Dispatcher framework to provide inter-application communication

US9304841B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9304841-B2
Application numberUS-201514697116-A
CountryUS
Kind codeB2
Filing dateApr 27, 2015
Priority dateJun 20, 2013
Publication dateApr 5, 2016
Grant dateApr 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.

A dispatcher framework to provide non-blocking inter-application communication is disclosed. In various embodiments, a call to a service that is blocking with respect to the service is received from a calling process. The service is called on behalf of the calling process in a manner that does not require the calling process to remain blocked during at least a portion of a time during which the call to the service is performed.

First claim

Opening claim text (preview).

What is claimed is: 1. A method, comprising: receiving from a calling process a call to a service; generating a proxy instance for the call to the service; calling, using the proxy instance, the service on behalf of the calling process in a manner that does not require the calling process to remain blocked during at least a portion of a time during which the call to the service is performed; starting a timer in response to receiving the call from the calling process; and in response to the proxy instance receiving a result for the call or the timer having expired, returning, by the proxy instance, at least one of the result or a status of the call to the calling process. 2. The method of claim 1 , further comprising receiving, by the proxy instance, a response to the call from the service. 3. The method of claim 2 , further comprising returning, by the proxy instance, the response is to the calling process. 4. The method of claim 3 , wherein the response is returned to the calling process in response to a poll or other communication from the calling process. 5. The method of claim 3 , wherein the response is returned to the calling process at least in part by calling a function associated with the calling process. 6. The method of claim 5 , wherein the function associated with the calling process was indicated by the calling process in the call. 7. The method of claim 1 , wherein the receiving of the call to the service includes receiving one or more calls to one or more services, and wherein the generating of the proxy instance includes generating, for each of the one or more calls to the one or more services, a proxy instance that is specific to a corresponding one of the one or more calls to the one or more services. 8. The method of claim 1 , wherein the generating of the proxy instance comprises spawning a dispatcher thread to handle the call. 9. The method of claim 1 , wherein the generating of the proxy instance comprises spawning a service binary instance to handle the call. 10. The method of claim 9 , wherein the service binary instance is specific to the service associated with the calling process. 11. The method of claim 9 , wherein the service binary instance is specific to the service. 12. The method of claim 11 , wherein the service comprises a first service, the service binary instance comprises an instance of a first service binary, and further comprising receiving from the calling process a second call to a second service; and invoking a second service binary instance, comprising an instance of a second service binary associated with the second service, to call the second service on behalf of the calling process in response to the second call. 13. The method of claim 9 , wherein the service binary instance is specific to the calling process. 14. The method of claim 13 , wherein the calling process is a first calling process, the call comprises a first call, and the service binary instance comprises a first service binary instance; and the method further includes receiving from a second calling process a second call to the service, and invoking a second service binary instance to call the service on behalf of the second calling process to satisfy the second call. 15. The method of claim 1 , further comprising serving as a proxy between the calling process and the service binary instance. 16. The method of claim 1 , wherein the calling process comprises a backup process. 17. The method of claim 1 , wherein the service is associated with a data storage node. 18. The method of claim 17 , wherein the calling process comprises a backup process configured to backup data stored on the storage node, at least in part by making the call to the service. 19. The method of claim 1 , wherein the proxy instance resides in a first device and the calling process resides in a second device. 20. The method of claim 1 , wherein the proxy instance manages a set of connections between a first device on which the proxy instance resides and a second device that is remote in relation to the first device and that provides the service. 21. The method of claim 1 , further comprising: in the event that the calling process sends the call to the service, performing, by the calling process, other work while the calling process awaits at least one of the result or the status of the call. 22. The method of claim 1 , further comprising: crashing, by the service, on a remote system; and in the event the service crashed, performing, by the calling process, other work such that the calling process is not affected by the crashing of the service other than not receiving performance of the service in response to the call to the service. 23. A system, comprising: a communication interface; and a processor coupled to the communication interface and configured to: receive from a calling process a call to a service; generate a proxy instance for the call to the service; call, using the proxy instance, the service on behalf of the calling process, via the communication interface, in a manner that does not require the calling process to remain blocked during at least a portion of a time during which the call to the service is performed; start a timer in response to receiving the call from the calling process; and in response to the proxy instance receiving a result for the call or the timer having expired, return at least one of the result or a status of the call to the calling process. 24. The system of claim 23 , wherein the processor is further configured to receive from the service a response to the call and to return the response to the calling process at least in part by calling a function associated with the calling process. 25. The system of claim 23 , wherein the processor is further configure to spawn a service binary instance to handle the call. 26. A computer program product, embodied in a tangible, non-transitory computer readable storage medium, comprising computer instructions for: receiving from a calling process a call to a service; generating a proxy instance for the call to the service; calling, using the proxy instance, the service on behalf of the calling process in a manner that does not require the calling process to remain blocked during at least a portion of a time during which the call to the service is performed; starting a timer in response to receiving the call from the calling process; and in response to the proxy instance receiving a result for the call or the timer having expired, returning, by the proxy instance, at least one of the result or a status of the call to the calling process.

Assignees

Inventors

Classifications

  • G06F9/541Primary

    via adapters, e.g. between incompatible applications · CPC title

  • Hypervisors; Virtual machine monitors · CPC title

  • G06F9/547Primary

    Remote procedure calls [RPC]; Web services · CPC title

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 US9304841B2 cover?
A dispatcher framework to provide non-blocking inter-application communication is disclosed. In various embodiments, a call to a service that is blocking with respect to the service is received from a calling process. The service is called on behalf of the calling process in a manner that does not require the calling process to remain blocked during at least a portion of a time during which the…
Who is the assignee on this patent?
Emc Corp
What technology area does this patent fall under?
Primary CPC classification G06F9/541. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Apr 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).