IP Library Granted Patent US 7,421,494
Granted Patent B2
US 7,421,494 · App. 10/732,700 · Granted Sep 2, 2008

Method and apparatus for facilitating data transfers between arbitrary components

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,421,494
App. No.
10/732,700
Granted
Sep 2, 2008
Kind
B2
Abstract

One embodiment of the present invention provides a system that facilitates transferring data between system components. During operation, the system receives a transfer session object at a data sink component through a universal data transfer interface, wherein the transfer session object contains mobile code that implements a source-specific data transfer protocol for communicating with a data source component. Next, the system retrieves data from the data source component through the transfer session object. In this way, the data sink component can retrieve data from the data source component without having to be preconfigured with the source-specific data transfer protocol for communicating with the data source component.

Claims (75)

1. A method for transferring data between system components, comprising:

receiving a transfer session object at a data sink component through a universal data transfer interface, wherein the transfer session object contains mobile code which includes executable content with a functionality that implements a source-specific data transfer protocol for communicating with a data source component;

executing the mobile code; and

retrieving data from the data source component through the transfer session object, whereby the data sink component can retrieve data from the data source component without having to be preconfigured with the source-specific data transfer protocol for communicating with the data source component;

wherein if the data sink component does not indicate continued proof of interest for a predetermined amount of time, the data source component and the data sink component automatically clean up their state, without the need for any ongoing communication;

wherein prior to obtaining the transfer session object from the data source component, a client:

performs a discovery operation to discover available components in the system;

inspects the available components to determine which universal interfaces are supported by each available component;

selects the data source component from the available components; and

selects the data sink component from the available components.

2. The method of claim 1 , wherein prior to the data sink component receiving the transfer session object, the data sink component requests to receive the transfer session object from the data source component through the universal data transfer interface.

3. The method of claim 1 , wherein prior to the data sink component receiving the transfer session object, the client sets up the data transfer between the data source component and the data sink component, by:

obtaining a transfer session object from the data source component through a universal data transfer interface; and

communicating the transfer session object to the data sink component through the universal data transfer interface.

4. The method of claim 3 , wherein the client additionally subscribes to receive transfer status information from the transfer session object.

5. The method of claim 3 , wherein prior to obtaining the transfer session object from the data source component, the client provides context information, which describes the client to the data source component, thereby enabling the data source component to perform an access control operation on the client prior to sending the transfer session object to the client.

6. The method of claim 1 , wherein retrieving data form the data source component through the transfer session object involves negotiating a physical transfer medium and/or a data transfer protocol for transferring the data between the data source component and the data sink component.

7. The method of claim 1 , wherein the transfer session object is leased to the data sink component, wherein at the end of the lease copies of the transfer session object are deactivated.

8. The method of claim 7 , wherein the transfer session object is leased for as long as the data sink component continues to access the transfer session object.

9. The method of claim 7 , wherein the transfer session object is leased for as long as the data sink component continues to renew the lease.

10. The method of claim 1 , wherein retrieving data from the data source component involves first communicating data type information to the data source component to facilitate retrieving the data in a specific data type format.

11. The method of claim 1 , wherein the data source component and the data sink component can be:

local components that reside within the same computer system; or

remote components that communicate with each other through a network.

12. The method of claim 1 , wherein the data sink component and the data source component can include:

a computing device;

a networked consumer electronics device;

a hardware component within a computer system;

a software module; or

a service.

13. The method of claim 1 , wherein the mobile code can include proxy code that communicates with a remote implementation of the transfer session object.

14. The method of claim 1 , wherein the mobile code can include a programmatic interface associated with an object that is a proxy for a remotely implemented networked service.

15. A computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method for transferring data between system components, the method comprising:

receiving a transfer session object at a data sink component through a universal data transfer interface, wherein the transfer session object contains mobile code which includes executable content with a functionality that implements a source-specific data transfer protocol for communicating with a data source component;

executing the mobile code; and

retrieving data from the data source component through the transfer session object, whereby the data sink component can retrieve data from the data source component without having to be preconfigured with the source-specific data transfer protocol for communicating with the data source component;

wherein if the data sink component does not indicate continued proof of interest for a predetermined amount of time, the data source component and the data sink component automatically clean up their state, without the need for any ongoing communication.;

wherein prior to obtaining the transfer session object from the data source component, a client;

performs a discovery operation to discover available components in the system;

inspects the available components to determine which universal interfaces are supported by each available component;

selects the data source component from the available components; and

selects the data sink component from the available components.

16. The computer-readable storage medium of claim 15 , wherein prior to the data sink component receiving the transfer session object, the data sink component requests to receive the transfer session object from the data source component through the universal data transfer interface.

17. The computer-readable storage medium of claim, 15 wherein prior to the data sink component receiving the transfer session object,the client sets up the data transfer between the data source component and the data sink component,by:

obtaining a transfer session object from the data source component through the universal data transfer interface; and

communicating the transfer session object to the data sink component through the universal data transfer interface.

18. The computer-readable storage medium of claim 17 , wherein the client additionally subscribes to receive transfer status information from the transfer session object.

19. The computer-readable storage medium of claim 17 , wherein prior to obtaining the transfer session object from the data source component, the client provides context information, which describes the client to the data source component, thereby enabling the data source component to perform an access control operation on the client prior to sending the transfer session object to the client.

20. The computer-readable storage medium of claim 15 , wherein retrieving data from the data source component through the transfer session object involves negotiating a physical transfer medium and/or a data transfer protocol for transferring the data between the data source component and the data sink component.

21. The computer-readable storage medium of claim 15 , wherein the transfer session object is leased to the data sink component, wherein at the end of the lease copies of the transfer session object are deactivated.

22. The computer-readable storage medium of claim 21 , wherein the transfer session object is leased for as long as the data sink component continues to access the transfer session object.

23. The computer-readable storage medium of claim 21 , wherein the transfer session object is leased for as long as the data sink component continues to renew the lease.

24. The computer-readable storage medium of claim 15 , wherein retrieving data from the data source component involves first communicating data type information to the data source component to facilitate retrieving the data in a specific data type format.

25. The computer-readable storage medium of claim 15 , wherein the data source component and the data sink component can be:

local components that reside within the same computer system; or

remote components that communicate with each other through a network.

26. The computer-readable storage medium of claim 15 , wherein the data sink component and the data source component can include:

a computing device;

a networked consumer electronics device;

a hardware component within a computer system;

a software module; or

a service.

27. The computer-readable storage medium of claim 15 , wherein the mobile code can include proxy code that communicates with a remote implementation of the transfer session object.

28. The computer-readable storage medium of claim 15 , wherein the mobile code can include a programmatic interface associated with an object that is a proxy for a remotely implemented networked service.

29. An apparatus for transferring data between system components, comprising:

a data sink component configured to receive a transfer session object through a universal data transfer interface, wherein the transfer session object contains mobile code which includes executable content with a functionality that implements a source-specific data transfer protocol for communicating with a data source component; and

wherein the data sink component is additionally configured to execute the mobile code to retrieve data from the data source component through the transfer session object, whereby the data sink component can retrieve data from the data source component without having to be preconfigured with the source-specific data transfer protocol for communicating with the data source component; wherein if the data sink component does not indicate continued proof of interest for a predetermined amount of time, the data source component and the data sink component automatically clean up their state, without the need for any ongoing communication; and wherein the apparatus further comprises a client which prior to obtaining the transfer session object from the data source component is configured to:

perform a discovery operation to discover available components in the system;

inspect the available components to determine which universal interfaces are supported by each available component;

selects the data source component from the available components; and

selects the data sink component from the available components.

30. The apparatus of claim 29 , wherein the data sink component is additionally configured to request to receive the transfer session object from the data source component through the universal data transfer interface.

31. The apparatus of claim 29 , wherein the client separate from the data source component and the data sink component, and wherein the client is configured to set up the data transfer between the data source component and the data sink component, by:

obtaining a transfer session object from the data source component through the universal data transfer interface; and

communicating the transfer session object to the data sink component through the universal data transfer interface.

Assignments (7)
RELEASE OF SECURITY INTEREST Recorded Aug 31, 2022
From: JPMORGAN CHASE BANK, N.A. AS SUCCESSOR-IN-INTEREST ADMINISTRATIVE AGENT AND COLLATERAL AGENT TO BANK ONE, N.A.
To: XEROX CORPORATION
Reel/Frame 061360/0501 →
MERGER Recorded Oct 29, 2015
From: YORANSO CONSULTING LIMITED LIABILITY COMPANY
To: GULA CONSULTING LIMITED LIABILITY COMPANY
Reel/Frame 036915/0190 →
CORRECTION TO THE RECORDATION COVER SHEET OF THE ASSIGNMENT RECORDED AT 015722/0119 ON 8/31/2004 Recorded Mar 16, 2011
From: XEROX CORPORATION
To: JPMORGAN CHASE BANK, AS COLLATERAL AGENT
Reel/Frame 025968/0515 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 22, 2011
From: XEROX CORPORATION
To: YORANSO CONSULTING LIMITED LIABILITY COMPANY
Reel/Frame 025845/0123 →
RELEASE OF SECURITY INTEREST Recorded Nov 4, 2010
From: JP MORGAN CHASE BANK, NA
To: XEROX CORPORATION
Reel/Frame 025316/0134 →
SECURITY AGREEMENT Recorded Aug 31, 2004
From: XEROX CORPORATION
To: JPMORGAN CHASE BANK, AS COLLATERAL AGENT
Reel/Frame 015722/0119 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 12, 2004
From: EDWARDS, WARREN KEITH; NEWMAN, MARK WEBSTER; SEDIVY, JANA ZDISLAVA
To: XEROX CORPORATION
Reel/Frame 015548/0675 →