IP Library Granted Patent US 7,523,461
Granted Patent B2
US 7,523,461 · App. 11/290,157 · Granted Apr 21, 2009

Modification of logic in an application

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,523,461
App. No.
11/290,157
Granted
Apr 21, 2009
Kind
B2
Abstract

An extensible architecture that allows the users to extend, change or replace the existing business logic of the business application is disclosed.

Claims (54)

1. A computer-implemented method of modifying business logic in a business application comprising:

receiving a request for a service description;

creating the service description on demand by referencing metadata about the service description wherein the metadata includes full type descriptions for a custom business entity and an existing business entity;

returning the service description wherein the service description is configured to be used to request user created functionality;

allowing the service description to be used to perform the user created functionality including at least one of:

defining a new custom business entity with new user created information;

modifying the existing business entity with new user created information;

defining a new message configured for use with the service description; or

plugging in new code to be executed as part of a web service call associated with the service description;

executing a dynamic service generator that generates the service description using the metadata to generate types and schemas required for the service description;

modifying or adding to existing business logic or processes by using a callout mechanism that exposes a number of events to which a user code can subscribe;

allowing a user to subscribe to an event; and

executing plug-in code provided by the user as part of the web service call when the event is invoked.

2. The method of claim 1 , wherein the metadata stores the modifications.

3. The method of claim 1 , further comprising handling the request through a service provider router that routes the request to a different service provider based on a type of a target business entity of the request.

4. The method of claim 3 , further comprising receiving the web service call through the service provider router and, based on the type information and description of available service providers that are registered in the metadata, routing the execution of the method to the appropriate service provider.

5. The method of claim 1 , further comprising using multiple interface inheritance to expose a common operation across multiple service providers to include names of supported interfaces in a class declaration.

6. The method of claim 1 , further comprising defining new service providers and messages by registering the service provider with the metadata and modifying the service description to map specific messages to the service provider.

7. The method of claim 1 , wherein user plug in code comprises pre-callout events wherein the pre-callout events allow execution of custom user code before an application operation.

8. The method of claim 1 , wherein user plug in code comprises post-callout events wherein the post-callout events allow execution of custom user code after an application operation.

9. The method of claim 1 , wherein the plug in user code can modify data passed to the application platform.

10. The method of claim 1 , wherein an error message is returned to the requestor in order to enable building business logic based on returned error messages.

11. A computer storage medium storing computer executable instructions executed by a processor for modifying business logic in a business application, the computer executable instructions for:

receiving a request for a service description;

creating the service description on demand by referencing metadata about the service description wherein the metadata includes full type descriptions for a custom business entity and an existing business entity;

returning the service description wherein the service description is configured to be used to request user created functionality;

allowing the service description to be used to perform the user created functionality including at least one of:

defining a new custom business entity with new user created information;

modifying the existing business entity with new user created information;

defining a new message configured for use with the service description; or

plugging in new code to be executed as part of a web service call associated with the service description;

executing a dynamic service generator that generates the service description using the metadata to generate types and schemas required for the service description;

modifying or adding to existing business logic or processes by using a callout mechanism that exposes a number of events to which a user code can subscribe;

allowing a user to subscribe to an event; and

executing plug-in code provided by the user as part of the web service call when the event is invoked.

12. The computer storage medium of claim 11 , further comprising computer code for handling the request through a service provider router that routes the request to different service providers based on at least one of:

a type of a target business entity of the request; or

the type information and description of available service providers that are registered in the metadata.

13. The computer storage medium of claim 11 , further comprising computer code for using multiple interface inheritance to expose a common operation across multiple service providers to include names of supported interfaces in a class declaration.

14. The computer storage medium of claim 11 , further comprising computer code for defining new service providers and messages by registering the service provider with the metadata and modifying the service description to map specific messages to the service provider.

15. A computer system comprising a processor adapted to execute computer executable code, a computer storage medium in communication with the processor and adapted to store computer executable code and an input-output device, the computer storage medium storing computer code for:

receiving a request for a service description;

creating the service description on demand by referencing metadata about the service description wherein the metadata includes full type descriptions for a custom business entity and an existing business entity;

returning the service description wherein the service description is configured to be used to request user created functionality;

allowing the service description to be used to perform the user created functionality including at least one of:

defining a new custom business entity with new user created information;

modifying an existing business entity with new user created information;

defining a new message configured for use with the service description; or

plugging in new code to be executed as part of a web service call associated with the service description;

executing a dynamic service generator that generates the service description using the metadata to generate types and schemas required for the service description;

allowing a user to subscribe to an event; and

executing plug-in code provided by the user as part of the web service call when the event is invoked wherein the user plug in code comprises one of:

pre-callout events wherein the pre-callout events allow execution of custom user code before an application operation; and

post-callout events wherein the post-callout events allow execution of custom user code after an application operation.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034543/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 13, 2006
From: GHANAIE-SICHANIE, ARASH; TKATCH, ALEXANDER; WHITTENBERGER, KEVIN M.; OTT, MICHAEL J.; MILLER, MICHAELJON; CHEN, XINGUANG ALBERT; LU, YONG; SILAT, MOHAMMAD MUSHTAQUE
To: MICROSOFT CORPORATION
Reel/Frame 017014/0540 →