Communication between application components distributed among devices

US9184979B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9184979-B2
Application numberUS-201313750342-A
CountryUS
Kind codeB2
Filing dateJan 25, 2013
Priority dateJan 25, 2013
Publication dateNov 10, 2015
Grant dateNov 10, 2015

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.

Disclosed are various embodiments for facilitating communications between application components that are distributed among many devices across a network. This allows for the application to execute as if on one device even though the application components are on many devices. A component interface is generated for the application components. The component interface intercepts communications sent from an application component, locates the intended receiving application component, and generates a component interface packet with the location. The component interface packet is then put into a network stream. The receiving component listens to the stream to obtain component interface packets that indicate the location of the device running the receiving application component. The component interface decodes the component interface packets intended for components associated with the component interface and sends communications encoded in the packet to the application components.

First claim

Opening claim text (preview).

Therefore, the following is claimed: 1. A non-transitory computer-readable medium embodying a program executable in at least one computing device, comprising: code that intercepts a first communication from a first component of an application executing on a server computing device to a second component of the application executing on a client computing device, wherein the first component and the second component of the application are extracted from a version of the application configured to execute on a single computing device; code that determines that a function requested in the first communication is provided by the second component of the application; code that generates a first packet based at least in part on a destination of the first communication and a payload of the first communication; code that sends the first packet to the client computing device; code that obtains a second packet from the network, wherein the second packet is received from the second component; code that extracts a second communication from the second packet; and code that sends the second communication to the first component. 2. The non-transitory computer-readable medium of claim 1 , wherein at least one of the first component or the second component comprises at least one of a data structure in a library, a subroutine, a function, or an externally identified component. 3. The non-transitory computer-readable medium of claim 1 , wherein the second communication comprises a call to a function of the first component. 4. A system, comprising: at least one computing device; and a first application executable in the at least one computing device, the first application comprising: logic that intercepts a communication from a first component of a second application to a second component of the second application, wherein the first component of the second application and the second component of the second application are extracted from a version of the second application configured to execute on a single computing device; logic that determines that a function requested in the communication is provided by the second component of the second application; logic that generates a packet based at least in part on a location of the second component of the second application within a network environment and the intercepted communication; and logic that forwards the packet to the second component of the second application. 5. The system of claim 4 , wherein the at least one computing device comprises a first computing device and the first application further comprises logic that identifies a network address for the location of a second computing device executing the second component of the second application. 6. The system of claim 4 , wherein the packet comprises a function call for a function provided by the second component. 7. The system of claim 4 , wherein at least one of the first component or the second component comprises a data structure in a library. 8. The system of claim 4 , wherein at least one of the first component or the second component comprises a subroutine. 9. The system of claim 4 , wherein at least one of the first component or the second component comprises a function. 10. The system of claim 4 , wherein at least one of the first component or the second component comprises an externally identified component. 11. The system of claim 4 , wherein the communication comprises a first communication, the packet comprises a first packet, and the first application further comprises: logic that obtains a second packet from the network environment, wherein the second packet is received from the second component of the second application; logic that extracts a second communication from the second packet; and logic that sends the second communication to the first component of the second application. 12. The system of claim 4 , wherein the packet comprises at least one value to be passed to the function provided by the second component of the second application. 13. A method, comprising: intercepting, in a first computing device, a first communication from a first component of an application executing on the first computing device to a second component of the application executing on a second computing device, wherein the first component and the second component of the application are extracted from a version of the application configured to execute on a single computing device; determining, in the first computing device, that a function requested in the first communication is provided by the second component of the application; generating, in the first computing device, a first packet based at least in part on a destination of the first communication and a first payload of the first communication; sending, via the first computing device, the first packet to the second computing device; obtaining, in the first computing device, a second packet from a network, wherein the second packet is sent from the second component; extracting, in the first computing device, a second payload from the second packet; and providing, in the first computing device, the second payload to first component of the application. 14. The method of claim 13 , wherein the first payload comprises a message from the first component of the application to the second component of the application. 15. The method of claim 13 , wherein the first payload comprises a function call from the first component of the application for a function provided by the second component of the application. 16. The method of claim 13 , wherein at least one of the first component or the second component comprises a data structure in a software library. 17. The method of claim 13 , wherein at least one of the first component or the second component comprises a subroutine. 18. The method of claim 13 , wherein at least one of the first component or the second component comprises a function. 19. The method of claim 13 , wherein at least one of the first component or the second component comprises an externally identified division of the application. 20. The method of claim 13 , further comprising: analyzing, in the first computing device, the application to identify a plurality of components; and splitting, in the first computing device, the application into the plurality of components, wherein the plurality of components comprises the first component and the second components.

Assignees

Inventors

Classifications

  • Electricity · mapped topic

  • H04L67/10Primary

    in which an application is distributed across nodes in the network (software deployment G06F8/60; multiprogramming arrangements G06F9/46) · CPC title

  • Intercept · CPC title

  • H04L67/00Primary

    Network arrangements or protocols for supporting network services or applications (user-to-user messaging H04L51/00; network arrangements, protocols or services for supporting real-time applications in data packet communications networks H04L65/00) · 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 US9184979B2 cover?
Disclosed are various embodiments for facilitating communications between application components that are distributed among many devices across a network. This allows for the application to execute as if on one device even though the application components are on many devices. A component interface is generated for the application components. The component interface intercepts communications se…
Who is the assignee on this patent?
Amazon Tech Inc
What technology area does this patent fall under?
Primary CPC classification H04L29/06047. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Nov 10 2015 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).