Claims
- 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 that implements a source-specific data transfer protocol for communicating with a data source component; 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.
- 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, a 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 prior to obtaining the transfer session object from the data source component, the 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.
- 5. The method of claim 3, wherein the client additionally subscribes to receive transfer status information from the transfer session object.
- 6. 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.
- 7. The method of claim 1, 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.
- 8. 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.
- 9. The method of claim 8, wherein the transfer session object is leased for as long as the data sink component continues to access the transfer session object.
- 10. The method of claim 8, wherein the transfer session object is leased for as long as the data sink component continues to renew the lease.
- 11. 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.
- 12. 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.
- 13. 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.
- 14. The method of claim 1, wherein the mobile code can include proxy code that communicates with a remote implementation of the transfer session object.
- 15. 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.
- 16. 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 that implements a source-specific data transfer protocol for communicating with a data source component; 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.
- 17. The computer-readable storage medium of claim 16, 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.
- 18. The computer-readable storage medium of claim, 16 wherein prior to the data sink component receiving the transfer session object, a 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.
- 19. The computer-readable storage medium of claim 18, wherein prior to obtaining the transfer session object from the data source component, the 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.
- 20. The computer-readable storage medium of claim 18, wherein the client additionally subscribes to receive transfer status information from the transfer session object.
- 21. The computer-readable storage medium of claim 18, 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.
- 22. The computer-readable storage medium of claim 16, 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.
- 23. The computer-readable storage medium of claim 16, 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.
- 24. The computer-readable storage medium of claim 23, wherein the transfer session object is leased for as long as the data sink component continues to access the transfer session object.
- 25. The computer-readable storage medium of claim 23, wherein the transfer session object is leased for as long as the data sink component continues to renew the lease.
- 26. The computer-readable storage medium of claim 16, 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.
- 27. The computer-readable storage medium of claim 16, 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.
- 28. The computer-readable storage medium of claim 16, 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.
- 29. The computer-readable storage medium of claim 16, wherein the mobile code can include proxy code that communicates with a remote implementation of the transfer session object.
- 30. The computer-readable storage medium of claim 16, wherein the mobile code can include a programmatic interface associated with an object that is a proxy for a remotely implemented networked service.
- 31. 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 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 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.
- 32. The apparatus of claim 31, 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.
- 33. The apparatus of claim 31, further comprising a client, which is separate from the data source component and the data sink component, 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.
RELATED APPLICATION
[0001] This application is a continuation-in-part of, and hereby claims priority under 35 U.S.C. § 120 to, U.S. patent application Ser. No. 10/058,268, entitled, “System And Method For Enabling Arbitrary Components To Transfer Data Between Each Other,” by inventors Warren Keith Edwards, Mark Webster Newman and Jana Zdislava Sedivy, filed 29 Jan. 2002 (pending).
Continuation in Parts (1)
|
Number |
Date |
Country |
Parent |
10058268 |
Jan 2002 |
US |
Child |
10732700 |
Dec 2003 |
US |