# US 8,788,631 B2 · Add-ins dynamically extending display targets and business-logic programming model

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 8,788,631 B2
- Document ID: US8788631B2
- Status: Granted
- Kind: B2
- Application number: 13/216,143
- Filed: 2011-08-23
- Published: 2012-03-01
- Granted: 2014-07-22
- Earliest claimed: 2009-06-03
- Assignees: Microsoft Corporation
- Applicants: Christian Olaf Abeln; Mehmet Kerem Kiziltunc; Stuart Glasson; Thomas Sondergaard Jensen; Uffe Kjall
- Inventors: Christian Olaf Abeln; Mehmet Kerem Kiziltunc; Stuart Glasson; Thomas Sondergaard Jensen; Uffe Kjall
- Web page: https://patentgrep.com/patent/US8788631B2

## CPC

- G06F 21/51: at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
- G06F 9/44526: {Plug-ins; Add-ons}
- H04L 67/125: involving control of end-device applications over a network
- H04L 67/34: {involving the movement of software or configuration parameters (network booting or remote initial program loading [RIPL] G06F9/4416)}
- H04L 63/123: {received data contents, e.g. message integrity}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A system for extending an enterprise resource planning application is provided. The system employs “Add-ins” that each have a functional behavior that is independent of the client on which it executes and a user interface behavior that is dependent on the characteristics of the display, and other characteristics, of the client (i.e., a display target). When a user attempts to invoke an Add-in via the client runtime, the client runtime determines whether the Add-in is available at the user's computer. If not, the client runtime downloads the appropriate artifact for execution at the user's computer. In this environment, neither the client runtime nor the server-side business logic contains the logic used to implement a particular Add-in behavior on the supported display targets. Instead, this logic is contained within separate artifacts associated with a single Add-in having a particular behavior, each artifact implementing the behavior for a specific display target.

## Claims

### Claim 1

A method performed by a client computer having a memory and a processor, the method comprising:
generating by the processor a request for display target-specific code implementing behavior of an Add-in, the Add-in for extending business logic of a business application;
sending to another computer from the client computer the request for the display target-specific code implementing behavior of the Add-in; and
receiving from the other computer a response to the request, the response including the display target-specific code that implements behavior of the Add-in that is specific to a display target
wherein the Add-in includes a plurality of implementations, each implementation including display target-specific code that implements behavior of the Add- in that is specific to a different display target and
wherein each implementation provides a common interface for interacting with business logic of the business application.

### Claim 2 (depends on 1)

The method of claim 1 wherein the request specifies the display target.

### Claim 3

A method performed by a client computer having a memory and a processor, the method comprising:
generating by the processor a request for display target-specific code implementing behavior of an Add-in, the Add-in for extending business logic of a business application;
sending to another computer from the client computer the request for the display target-specific code implementing behavior of the Add-in;
receiving from the other computer a response to the request, the response including the display target-specific code that implements behavior of the Add-in that is specific to a display target;
invoking by a client-side component of the business application the display target-specific code; and
under control of the invoked display target-specific code,
sending to the other computer a message generated by the invoked display target-specific code; and
in response to sending the message, receiving from the other computer a response sent using a common interface of the Add-in.

### Claim 4 (depends on 3)

The method of claim 3 wherein the response is generated by the other computer executing business logic of a server-side component of the business application that is independent of the display target of the client computer.

### Claim 5

A computer-readable storage device storing computer-executable instructions for controlling a client to extend a business application, by a method comprising:
generating a request for an implementation of an Add-in that extends behavior of the business application, the implementation providing code that is specific to a display target of the client;
sending to a server from the client the generated request for the implementation;
receiving from the server a response to the request that includes the implementation of the Add-in that is specific to the display target; and
executing at the client the implementation of the Add-in to extend the behavior of the business application in a manner that is specific to the display target
wherein the Add-in includes a plurality of implementations, each implementation including display target-specific code that implements behavior of the Add-in that is specific to a different display target and
wherein each implementation provides a common interface for interacting with business logic of the business application.

### Claim 6

A computer-readable storage device storing computer-executable instructions for controlling a client to extend a business application, by a method comprising:
generating a request for an implementation of an Add-in that extends behavior of the business application, the implementation providing code that is specific to a display target of the client;
sending to a server from the client the generated request for the implementation;
receiving from the server a response to the request that includes the implementation of the Add-in that is specific to the display target;
executing at the client the implementation of the Add-in to extend the behavior of the business application in a manner that is specific to the display target; and
under control of the executing implementation,
sending to the server a message generated by the implementation; and
in response to sending the message, receiving from the server a response sent using a common interface of the Add-in.

### Claim 7 (depends on 6)

The computer-readable storage device of claim 6 wherein the response is generated by the server executing business logic of a server-side component of the business application that is independent of the display target of the client.

### Claim 8

A computing device comprising:
a memory storing computer-executable instructions of:
a component that generates a request for an implementation of an Add-in that extends behavior of a business application, the implementation providing code that is specific to a display target of a client, the business application having a client-side component and a server-side component;
a component that sends to a server the generated request for the implementation;
a component that receives from the server a response to the request that includes the implementation of the Add-in; and
a component that executes the implementation of the Add-in to extend the behavior of the business application in a manner that is specific to the display target; and
wherein the Add-in includes a plurality of implementations, each implementation including display target-specific code that implements behavior of the Add-in that is specific to a different display target and
wherein each implementation provides a common interface for interacting with business logic of the business application; and
a processor that executes the computer-executable instructions stored in the memory.

### Claim 9

A computing device comprising:
a memory storing computer-executable instructions of:
a component that generates a request for an implementation of an Add-in that extends behavior of a business application, the implementation providing code that is specific to a display target of a client, the business application having a client-side component and a server-side component;
a component that sends to a server the generated request for the implementation;
a component that receives from the server a response to the request that includes the implementation of the Add-in, the implementation providing code that is specific to one or more characteristics of the display target;
a component that executes the implementation of the Add-in to extend the behavior of a user interface of the business application in a manner that is dependent on one or more characteristics of the display target; and
a component that, under control of the executing implementation, sends to the server-side component a message generated by the implementation; and in response to sending the message, receives from the server-side component a response sent using a common interface of the Add-in; and
a processor that executes the computer-executable instructions stored in the memory.

### Claim 10 (depends on 9)

The computing device of claim 9 wherein the response is generated by the server-side component executing business logic that is independent of the display target of the client.
