Systems and methods for creating web service compositions
AssigneeXerox Corporation
InventorsKovendhan Ponnavaikko, Ramsés V. Morales
Life of this patent
Estimating the term…
Abstract
Exemplary embodiments provide systems and methods for connecting services, including web services, using intermediate data exchange objects to create composition services. Data exchange objects may be service independent objects that represent the inputs and/or outputs of various services. The systems and methods may employ data exchange objects to determine whether two services are composable and to implement and execute composite services according to the data exchange objects.
Claims9
A method, implemented using a computing system, for composing compound services, the method comprising:
- creating, using an electronic processor, a first definition of a first service, the first service including a first interface object, wherein the first definition of the first service is service independent and comprises a pseudocode representation;
- creating, using an electronic processor, a data exchange object that represents the first interface object of the first service, wherein the data exchange object comprises a pseudocode representation;
- creating, using an electronic processor, an association between the first interface object of the first service with the data exchange object, wherein creating the association between the first interface object of the first service with the data exchange object comprises creating the association when the first interface object of the first service is syntactically compatible with the data exchange object and is semantically compatible with the data exchange object;
- storing, using an electronic processor, the data exchange object, wherein the storing the data exchange object comprises storing the association between the first interface object of the first service with the data exchange object as part of the data exchange object itself;
- creating, using an electronic processor, a second definition of a second service, the second service including a second interface object, wherein the second definition of the second service comprises a pseudocode representation;
- determining, using an electronic processor, that the second interface object associates to the data exchange object;
- connecting, using an electronic processor, the second service to the first service through the data exchange object, wherein an output of the first service connects to an input of the data exchange object, and wherein an output of the data exchange object connects to an input of the second service;
- storing, using an electronic processor, the first definition;
- providing, using an electronic processor, to a user, access to the first definition, the data exchange object, and the association;
- receiving a user request to identify data exchange objects that are associated with a service, including data that identifies the first service;
- and
- identifying the data exchange object in response to the request.
A system for composing compound services, the system comprising:
- a memory containing instructions;
- and
- a processor, operably connected to the memory, that executes the instructions to perform operations comprising:
- creating a first definition of a first service, the first service including a first interface object, wherein the first definition of the first service is service independent and comprises a pseudocode representation,
- creating a data exchange object that represents the first interface object of the first service, wherein the data exchange object comprises a pseudocode representation,
- creating an association between the first interface object of the first service with the data exchange object, wherein creating the association between the first interface object of the first service with the data exchange object comprises creating the association when the first interface object of the first service is syntactically compatible with the data exchange object and is semantically compatible with the data exchange object;
- storing, using an electronic processor, the data exchange object, wherein the storing the data exchange object comprises storing the association between the first interface object of the first service with the data exchange object as part of the data exchange object itself;
- creating a second definition of a second service, the second service including a second interface object, wherein the second definition of the second service comprises a pseudocode representation,
- determining that the second interface object associates to the data exchange object,
- connecting the second service to the first service through the data exchange object, wherein an output of the first service connects to an input of the data exchange object, and wherein an output of the data exchange object connects to an input of the second service,
- storing the first definition,
- providing, to a user, access to the first definition, the data exchange object, and the association;
- receiving a user request to identify data exchange objects that are associated with a service, including data that identifies the first service;
- and
- identifying the data exchange object in response to the request.
A non-transitory computer-readable medium containing instructions that when executed implement a method comprising:
- creating a first definition of a first service, the first service including a first interface object, wherein the first definition of the first service is service independent and comprises a pseudocode representation;
- creating a data exchange object that represents the first interface object of the first service, wherein the data exchange object comprises a pseudocode representation;
- creating an association between the first interface object of the first service with the data exchange object;
- wherein creating the association between the first interface object of the first service with the data exchange object comprises creating the association when the first interface object of the first service is syntactically compatible with the data exchange object and is semantically compatible with the data exchange object;
- storing, using an electronic processor, the data exchange object, wherein the storing the data exchange object comprises storing the association between the first interface object of the first service with the data exchange object as part of the data exchange object itself;
- creating a second definition of a second service, the second service including a second interface object;
- determining that the second interface object associates to the data exchange object;
- connecting the second service to the first service through the data exchange object, wherein an output of the first service connects to an input of the data exchange object, and wherein an output of the data exchange object connects to an input of the second service;
- storing the first definition;
- providing, to a user, access to the first definition, the data exchange object, and the association;
- receiving a user request to identify data exchange objects that are associated with a service, including data that identifies the first service;
- and
- identifying the data exchange object in response to the request.
Dependencies are inferred from the claim text.