Composition model for cloud-hosted serving applications

US9229980B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9229980-B2
Application numberUS-71114610-A
CountryUS
Kind codeB2
Filing dateFeb 23, 2010
Priority dateFeb 23, 2010
Publication dateJan 5, 2016
Grant dateJan 5, 2016

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Methods and apparatus for executing an application are disclosed. In accordance with one embodiment, a request is received. One or more of a plurality of module types are instantiated such that a plurality of module objects are generated. A query plan linking the plurality of module objects is executed such that a response to the request is generated. The response is then returned.

First claim

Opening claim text (preview).

What is claimed is: 1. A method, comprising: instantiating a plurality of module types such that a plurality of module objects are generated, wherein the plurality of module types include a request module type and a response module type, wherein each of the plurality of module objects is defined by a corresponding interface definition, wherein the plurality of module types are different classes; instantiating, by middleware, a query plan linking the plurality of module objects, wherein the plurality of module objects includes an instance of the request module type and an instance of the response module type; receiving, at the middleware from a horizontal container, a request, wherein the horizontal container provides a context object to the middleware to be passed between the plurality of module objects during execution of the query plan; receiving, at the middleware from the horizontal container, abstract endpoints corresponding to endpoints in a cloud; executing, by the middleware, the query plan linking the plurality of module objects such that a response to the request is generated, wherein the instance of the request module type processes the request and wherein the response is formed by the instance of the response module type, wherein the middleware communicates with the endpoints in the cloud via the abstract endpoints; and returning, by the middleware, the response to the horizontal container. 2. The method as recited in claim 1 , wherein the plurality of module types further include an asynchronous module type such that the plurality of module objects include an asynchronous module, wherein the asynchronous module type invokes a network service, wherein the asynchronous module includes a callback method that is called by the horizontal container when a response is received from the network service. 3. The method as recited in claim 1 , wherein the plurality of module types further includes a branch module type or a multibranch module type, wherein the branch module type determines one of two or more child modules to invoke, and wherein the multibranch module type selects one or more branch modules of two or more branch modules to invoke. 4. The method as recited in claim 1 , wherein the plurality of module types further includes a fork module type whose child nodes are to be executed in parallel. 5. The method as recited in claim 1 , wherein the plurality of module types further includes a join module type that performs synchronization for module objects executing simultaneously on independent execution paths, wherein the module objects are associated with different forks of a multi-branch module. 6. The method as recited in claim 1 , wherein the plurality of module types further includes a termination module type that is executed when an error occurs during execution of the query plan. 7. The method as recited in claim 6 , wherein the response is an error response. 8. The method as recited in claim 1 , wherein the request is a search query. 9. The method as recited in claim 8 , wherein the response includes search results. 10. The method as recited in claim 1 , wherein the request initiates selection of one of a plurality of advertisements, and wherein the response includes a selected one of the plurality of advertisements. 11. The method as recited in claim 1 , wherein the interface definition of each of the plurality of module objects declares one or more methods of the corresponding one of the plurality of module objects. 12. The method as recited in claim 1 , wherein the interface definition of each of the plurality of module objects identifies one or more attributes that the corresponding one of the plurality of module objects accesses. 13. The method as recited in claim 1 , wherein the query plan is executed via the interface definition of each of the plurality of module objects. 14. The method as recited in claim 1 , wherein for each of the plurality of module objects, the interface definition is associated with a corresponding one of the plurality of module types. 15. A method, comprising: generating, by middleware, one or more query plans by instantiating a plurality of module types such that a plurality of module objects are generated for each of the query plans, wherein the plurality of module types are different classes, wherein each of the plurality of module objects is defined by a corresponding interface definition; receiving, at the middleware from a horizontal container, a request; receiving, at the middleware from the horizontal container, abstract endpoints corresponding to endpoints in a cloud; identifying, by the middleware, one of the query plans to process the request; executing, by the middleware, the identified query plan such that a response to the request is generated, wherein the horizontal container provides a context object to the middleware to be passed between the plurality of module objects of the query plan during execution of the query plan, wherein the middleware communicates with the endpoints in the cloud via the abstract endpoints; and returning, by the middleware to the horizontal container, the response. 16. The method as recited in claim 15 , wherein the plurality of module types include at least one of a branch module type, a multibranch module type, a fork module type, a join module type, or a termination module type. 17. The method as recited in claim 15 , further comprising: validating input and output dependencies of the plurality of module objects within the query plan based upon the interface definition for each of the plurality of module objects. 18. The method as recited in claim 15 , wherein the request is a search query. 19. The method as recited in claim 18 , wherein the response includes search results. 20. The method as recited in claim 15 , wherein the request initiates selection of one of a plurality of advertisements, and wherein the response includes a selected one of the plurality of advertisements. 21. The method as recited in claim 15 , wherein the query plan is associated with a service being requested, wherein identifying one of the query plans to process the request comprises: identifying a service associated with the request; and identifying one of the query plans providing the service. 22. The method as recited in claim 15 , wherein the request is received via a web server and the response is returned via the web server. 23. The method as recited in claim 15 , wherein the request is one of a plurality of requests processed in parallel, wherein each of the plurality of requests is processed within one of a plurality of threads. 24. A system, comprising: means for instantiating, by middleware, one or more query plans such that each of the query plans links a corresponding plurality of module objects; means for instantiating a plurality of module types such that a plurality of module objects are generated, wherein each of the plurality of module objects is defined by a corresponding interface definition; means for receiving, by the middleware, a request from a horizontal container; means for receiving, by the middleware, abstract endpoints corresponding to endpoints in a cloud; means for executing, by the middleware, at least one of the query plans linking a corresponding plurality of module objects such that a response to the request is generated, wherein the horizontal container provides a context object to the middleware to be passed between t

Assignees

Inventors

Classifications

  • Plan optimisation · CPC title

  • Remedial or corrective actions (recovery from an exception in an instruction pipeline G06F9/3861; by retry G06F11/1402; for recovering from a failure of a protocol instance or entity H04L69/40) · CPC title

  • in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems · CPC title

  • in a system implementing multitasking (multitasking per se G06F9/46) · CPC title

  • Physics · mapped topic

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9229980B2 cover?
Methods and apparatus for executing an application are disclosed. In accordance with one embodiment, a request is received. One or more of a plurality of module types are instantiated such that a plurality of module objects are generated. A query plan linking the plurality of module objects is executed such that a response to the request is generated. The response is then returned.
Who is the assignee on this patent?
Feng Andrew An, Makeev Evgeniy, Budzinski Jeffrey, and 5 more
What technology area does this patent fall under?
Primary CPC classification G06F16/24542. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jan 05 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).