WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
System and method for providing interoperability among heterogeneous object systems    
United States Patent5732270   
Link to this pagehttp://www.wikipatents.com/5732270.html
Inventor(s)Foody; Daniel M. (Montreal, CA); Foody; Michael A. (Nunn's Island, CA)
AbstractA system and method in accordance with a preferred embodiment enable objects from two or more heterogeneous object systems in a digital computer to interoperate and be combined in the creation of a larger object-oriented software project, as well as uses of such system and method. Objects from a foreign object system are unmodified, yet appear to be native to the object system in which they are used or accessed. A native proxy object (indistinguishable from other native objects) is constructed for the real foreign object. The proxy object contains an identifier to the real object, as well as a pointer to a software description of how to access and manipulate the object--e.g. how to call its methods, set its properties, and handle exceptions. When the proxy object is manipulated, it follows the instructions in the software description which, in turn, results in the corresponding manipulation of the foreign object.
   














 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Drawing from US Patent 5732270
System and method for providing interoperability among heterogeneous

     object systems - US Patent 5732270 Drawing
System and method for providing interoperability among heterogeneous object systems
Inventor     Foody; Daniel M. (Montreal, CA); Foody; Michael A. (Nunn's Island, CA)
Owner/Assignee     Visual Edge Software Limited (Ville St. Laurent, CA)
Patent assignment
All assignments
Publication Date     March 24, 1998
Application Number     08/306,481
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     September 15, 1994
US Classification     719/316
Int'l Classification     G06F 009/44
Examiner     Kriess; Kevin A.
Assistant Examiner     Courtenay III; St.-John
Attorney/Law Firm     Fitzpatrick, Cella, Harper & Scinto
Address
Parent Case    
Priority Data    
USPTO Field of Search     395/700 395/683 395/200.01
Patent Tags     providing interoperability among heterogeneous object
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
5511197
Hill
719/328
Apr,1996

[0 after 0 votes]
5481721
Serlet
719/315
Jan,1996

[0 after 0 votes]
5475845
Orton

Dec,1995

[0 after 0 votes]
5437025
Bale
707/103R
Jul,1995

[0 after 0 votes]
5432925
Abraham

Jul,1995

[0 after 0 votes]
5428792
Conner
717/143
Jun,1995

[0 after 0 votes]
5278978
Demers
707/101
Jan,1994

[0 after 0 votes]
5274821
Rouquie
717/139
Dec,1993

[0 after 0 votes]
5210876
Uchida
717/139
May,1993

[0 after 0 votes]
5187787
Skeen
719/314
Feb,1993

[0 after 0 votes]
5146593
Brandle
719/328
Sep,1992

[0 after 0 votes]
5097533
Burger
719/328
Mar,1992

[0 after 0 votes]
4924384
Hao
712/200
May,1990

[0 after 0 votes]
4736321
Brown
719/313
Apr,1988

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


We claim:

1. A device, for use in a digital computer system which provides for objects of first and second object models and corresponding first and second object systems using respective first and second implementations to implement, respectively, the first and second object models, the device for enabling the first object system to use objects of the second object model, the device comprising:

description means for providing a description of an object of the second object model;

proxy means for creating a proxy object that is an object of the first object system and that corresponds to the object of the second object model;

receiving means for receiving a manipulation of the proxy object, the maximum rotation conforming to the first implementation; and

forwarding means for forwarding the manipulation of the proxy object to the corresponding object of the second object model by utilizing the description.

2. A device according to claim 1, for enabling the first object system to use objects of a plurality of object models, wherein:

(a) the proxy means comprises means for creating a plurality of proxy objects, each proxy being an object of the first object system and corresponding with an object of one of the plurality of object models; and

(b) the forwarding means comprises means for forwarding manipulations of one of the proxy objects to its corresponding object.

3. A device according to claim 2, wherein the device includes means for adding or removing support for object systems and object models, said means for adding or removing support adding or removing support without compiling the device.

4. A device according to claim 2, further comprising a traditional application or object class construction environment, said environment comprising at least one of:

means for subclassing from object classes of a plurality of object systems;

means for utilizing or incorporating object classes of a plurality of object systems;

means for instantiating and embedding object instances of a plurality of object systems;

means for constructing objects which can be used according to implementations of a plurality of object systems;

means for relocating object classes and objects among application processes, server processes and object systems.

5. A device according to claim 1, wherein the forwarding means further comprises:

means for transferring control flow from the digital computer system to the device;

means for retrieving semantic information from a call stack of the digital computer system, the semantic information and call stack being in accordance with the proxy object and the first implementation;

means for placing the semantic information on a second call stack in accordance with the description of the object of the second object model;

means for manipulating the corresponding object in accordance with the manipulation of the proxy object;

means for retrieving semantic return information from the second call stack in accordance with the description of the object of the second object model; and

means for placing the semantic return information on the call stack of the digital computer in accordance with the proxy object and the first implementation.

6. A device according to claim 5, wherein the means for retrieving semantic information further comprises means for associating the proxy object with the description of the object of the second object model.

7. A device according to claim 6, wherein the means for placing semantic information on the call stack further comprises means for traversing the description of the object of the second object model, the description of the object not being compiled into the device.

8. A device according to claim 5, wherein the means for placing semantic information on the call stack further comprises means for converting semantic types and language types from those used in the first implementation to corresponding semantic types and language types of the second implementation.

9. A device according to claim 8, wherein the means for converting semantic types and language types further comprises:

means for converting between object types; and

means for triggering creation of a new proxy object.

10. A device according to claim 1, wherein the device further comprises at least one of:

means for mapping between fundamental calling mechanisms; and

means for mapping between low-level calling conventions, wherein said means for mapping between low-level calling conventions is used in combination with at least one of:

means for mapping between differences in semantic types;

means for dynamically constructing proxy objects when required;

means for mapping between differences in errors and exceptions; and

means for mapping between differences in querying for object information.

11. A device according to claim 1, wherein the device further comprises means for mapping between different fundamental calling mechanisms of different object systems.

12. A device according to claim 1, wherein the device further comprises means for mapping between fundamental calling mechanisms and means for mapping between differences in language types.

13. A device according to claim 1, further comprising means for enabling the first object system to use features that are provided by the second object system, but are not provided by the first object system.

14. A device according to claim 1, further comprising means for using features provided by the first object system which require functionality of the proxy object, where such functionality is not implemented by the second object system.

15. A device according to claim 14, wherein the means for using features further comprises:

means for associating an object with one or more elements of the description; and

means for delegating execution of a feature by the proxy object to the associated object either before responding to a manipulation, instead of responding to a manipulation, or after responding to a manipulation.

16. A device according to claim 1, where the corresponding object is implemented using an interpreted language environment or runtime.

17. A method, for use in a digital computer system which provides for objects of first and second object models and corresponding first and second object systems using respective first and second implementations to implement, respectively, the first and second object models, said method for enabling the first object system to use objects of the second object model, the method comprising:

providing a description of an object of the second object model;

creating a proxy object that is an object of the first object system and that corresponds to the object of the second object model;

receiving a manipulation of the proxy object, the manipulation conforming to the first implementation; and

forwarding the manipulation of the proxy object to the corresponding object of the second object model by utilizing the description.

18. A method according to claim 17, for enabling the first object system to use objects of a plurality of object models, wherein:

the creating step comprises creating a plurality of proxy objects, each one being an object of the first object system and corresponding with an object of one of the plurality of object models; and

the forwarding step comprises forwarding a manipulation of one of the proxy objects to its corresponding object.

19. A method according to claim 18, further comprising the step of organizing objects and classes from a plurality of object systems into a unified namespace.

20. A method according to claim 18, further comprising at least one of the steps of:

subclassing from object classes of a plurality of object systems;

utilizing or incorporating object classes of a plurality of object systems;

instantiating and embedding object instances of a plurality of object systems;

relocating object classes and objects among application processes, server processes and object systems; and

constructing objects which can be used by implementations of a plurality of object systems.

21. A method according to claim 17, wherein the forwarding step further comprises:

transferring control flow from the digital computer system to the device;

retrieving semantic information from a call stack of the digital computer system, the semantic information and the call stack being in accordance with the proxy object and the first implementation;

placing the semantic information on a second call stack in accordance with a description of the object of the second object model;

manipulating the corresponding object in accordance with the manipulation of the proxy object;

retrieving semantic return information from the second call stack in accordance with the description of the object of the second object model; and

placing the semantic return information on the call stack of the digital computer in accordance with the proxy object and the first implementation.

22. A method according to claim 21, wherein the creating step further comprises associating the proxy object with the description of the object of the second object model.

23. A method according to claim 21, wherein the placing step further comprises converting semantic and language types from the first object system to the second object system.

24. A method according to claim 23, wherein the step of converting semantic and language types further comprises:

converting between object types; and

triggering a creation of a new proxy object.

25. A method according to claim 17, further comprising:

mapping between fundamental calling mechanisms; and

mapping between low-level calling conventions, wherein said mapping between low-level calling conventions is performed in combination with at least one of the steps of:

mapping between differences in semantic types;

dynamically constructing proxy objects when required;

mapping between differences in errors and exceptions; and

mapping between differences in querying for object information.

26. A method according to claim 17, further comprising mapping between different fundamental calling mechanisms of different object systems.

27. A method according to claim 17, further comprising the steps of mapping between fundamental calling mechanisms and mapping between differences in language types.

28. A method according to claim 17, further comprising the step of enabling the first object system to use features that are provided by the second object system, but are not provided by the first object system.

29. A method according to claim 17, further comprising the step of using features provided by the first object system which require functionality of the proxy object in the case that such functionality is not implemented by the second object system.

30. A method according to claim 29, wherein the step of using features comprises:

associating an object with one or more elements of the description; and

delegating execution of a feature by the proxy object to the associated object either before responding to a manipulation, instead of responding to a manipulation, or after responding to a manipulation.

31. A method according to claim 17, wherein the corresponding object is implemented using an interpreted language environment or runtime.

32. Computer-executable process steps stored on a computer-readable medium, the steps for use in a digital computer system which provides for objects of first and second object models and corresponding first and second object systems using respective first and second implementations to implement, respectively, the first and second object models, the steps for enabling the first object system to use objects of the second object model, the steps comprising:

a providing step to provide a description of an object of the second object model;

a creating step to create a proxy object that is an object of the first object system and that corresponds to the object of the second object model;

a receiving step to receive a manipulation of the proxy object, the manipulation conforming to the first implementation; and

a forwarding step to forward the manipulation of the proxy object to the corresponding object of the second object model by utilizing the description.

33. Computer-executable process steps according to claim 32, wherein the creating step further comprises an associating step to associate the proxy object with the description of the object of the second object model.

34. Computer-executable process steps according to claim 32, for enabling the first object system to use objects of a plurality of object systems, wherein:

the creating step comprises a creating step to create a plurality of proxy objects, each proxy being an object of the first object system and corresponding to an object of one of the plurality of object models, and

the forwarding step comprises a forwarding step to forward a manipulation of one of the proxy objects to its corresponding object.

35. Computer-executable process steps according to claim 34, further comprising the step of organizing objects and classes from a plurality of object systems into a unified namespace.

36. Computer-executable process steps according to claim 34, further comprising at least one of the steps of:

a subclassing step to subclass from object classes of a plurality of object systems;

a utilizing step to utilize or incorporate object classes of a plurality of object systems; and

an instantiating step to instantiate and embed object instances of a plurality of object systems;

a relocating step to relocate object classes and objects among application processes and object systems;

a constructing step to construct objects which can be used by implementations of a plurality of object systems.

37. Computer-executable process steps according to claim 36, wherein the corresponding object is implemented using an interpreted language environment or runtime.

38. Computer-executable process steps according to claim 32, wherein the forwarding step further comprises:

a transferring step to transfer control flow from the digital computer system to the device;

a first retrieving step to retrieve semantic information from a call stack of the digital computer system, the semantic information and the call stack being in accordance with the proxy object and the first implementation;

a first placing step to place the semantic information on a call stack in accordance with a description of the object of the second object model;

a manipulating step to manipulate the corresponding object in accordance with the manipulation of the proxy object;

a second retrieving step for retrieving semantic return information from the second call stack in accordance with the description of the object of the second object model; and

a second placing step for placing the semantic return information on the call stack of the digital computer in accordance with the proxy object and the first implementation.

39. Computer-executable process steps according to claim 32, wherein the first placing step further comprises a converting step to convert semantic types and language types from the first object system to the second object system.

40. Computer-executable process steps according to claim 32, wherein the converting step to convert semantic types and language types further comprises:

a converting step to convert between object types; and

a triggering step to trigger creation of a new proxy object.

41. Computer-executable process steps according to claim 32, further comprising:

a mapping step to map between fundamental calling mechanisms; and

a mapping step to map between low-level calling conventions, wherein said mapping between low-level calling conventions is performed in combination with at least one of the steps of:

a mapping step to map between differences in semantic types;

a constructing step to dynamically construct proxy objects when required;

a mapping step to map between differences in errors and exceptions; and

a mapping step to map between differences in querying for object information.

42. Computer-executable process steps according to claim 32, further comprising a mapping step to map between different fundamental calling mechanisms of different object systems.

43. Computer-executable process steps according to claim 32, further comprising a mapping step to map between fundamental calling mechanisms and a mapping step to map between differences in language types.

44. Computer-executable process steps according to claim 32, further comprising a using step to use features that are provided by the second object system but are not provided by the first object system.

45. Computer-executable process steps according to claim 32, further comprising a using step to use features provided by the first object system which require functionality of the proxy object in the case that such functionality is not implemented by the second object system.

46. Computer-executable process steps according to claim 45, wherein the step of using features comprises:

an associating step to associate an object with one or more elements of the description; and

a delegating step to delegate execution of a feature by the proxy object to the associated object either before acting on a manipulation, instead of acting on a manipulation, or after acting on a manipulation.

47. A device, for use in a digital computer system providing objects of first and second object systems using respective first and second implementations which implement respective first and second object models, the device for enabling the first object system to use an object of the second object system, the device comprising:

description means for providing a description of object aspects, object system aspects and object manipulations, said description describing first semantic types, first aspects, or first implementations that are supported by the first object system and not by the second object system and describing second semantic types, second aspects or second implementations supported by the second object system and not by the first object system; and

forwarding means for forwarding a manipulation of a first object, the manipulation in accordance with the first implementation, to the second object by utilizing the description,

wherein the first object corresponds to the second object.

48. A device according to claim 47, wherein the forwarding means comprises mapping means to map the first semantic types and the first implementations to the second semantic types and the second implementations dynamically during execution of the device.

49. A device according to claim 47, wherein the forwarding means comprises mapping means to build steps for mapping the first semantic types and first implementations to the second semantic types and second implementations and execution means for executing the steps for mapping.

50. A method, for use in a digital computer system providing objects of first and second object systems using respective first and second implementations which implement respective first and second object models, the method for enabling the first object system to use an object of the second object system, the method comprising the steps of:

providing a description of object aspects, object system aspects and object manipulations, said description describing first semantic types or first implementations that are supported by the first object system and not by the second object system and describing second semantic types or second implementations supported by the second object system and not by the first object system; and

forwarding a manipulation of a first object, the manipulation conforming to the first implementation, to the second object by utilizing the description,

wherein the first object corresponds to the second object.

51. A method according to claim 50, wherein the forwarding step comprises mapping the first semantic types and the first implementations to the second semantic types and the second implementations dynamically during execution of the method.

52. A method according to claim 50, wherein the forwarding step comprises building steps for mapping the first semantic types and first implementations to the second semantic types and second implementations and executing the steps for mapping.

53. Computer-executable process steps stored on a computer-readable medium, the steps for use in a digital computer system providing objects of first and second object systems using respective first and second implementations which implement respective first and second object models, the steps for enabling the first object system to use an object of the second object system, the steps comprising the steps of:

a providing step to provide a description of object aspects, object system aspects and object manipulations, said description describing first semantic types or first implementations that are supported by the first object system and not by the second object system and describing second semantic types or second implementations supported by the second object system and not by the first object system; and

a forwarding step to forward a manipulation of the first object, the manipulation conforming to the first implementation, to the second object by utilizing the description,

wherein the first object corresponds to the second object.

54. Computer-executable process steps according to claim 53, wherein the forwarding step comprises mapping the first semantic types and the first implementations to the second semantic types and the second implementations dynamically during execution of the method.

55. Computer-executable process steps according to claim 53, wherein the forwarding step comprises building steps for mapping the first semantic types and first implementations to the second semantic types and second implementations and executing the steps for mapping.

56. A method for utilizing a foreign object of a foreign object model implemented by a foreign object system in the case that the foreign object is called by a native object system implementing a native object model, the method comprising the steps of:

creating a proxy object of the native object model, said proxy object corresponding to the foreign object;

extracting semantically meaningful information from a call stack of the native system;

transferring the semantically meaningful information to a call stack of the foreign system; and

calling the foreign object.

57. A method according to claim 56, wherein

said extracting step comprises utilizing a description of the foreign object to determine steps required to extract semantically meaningful information from a call stack of the native object system in accordance with the description of the proxy object, and

wherein said transferring step comprises performing the steps required to extract the semantically meaningful information and transferring the semantically meaningful information to a call stack of the foreign object system in accordance with the description of the foreign object.

58. A method according to claim 57, wherein said extracting step further comprises dynamically loading a device in order to utilize the description.

59. A method according to claim 57, wherein, in the transferring step, the semantically meaningful information is transferred to a call stack of any of a plurality foreign object systems.

60. A method according to claim 57, wherein said transferring step further comprises converting data types of the semantically meaningful information extracted from the call stack of the native system to data types of the foreign object model before transferring the semantically meaningful information to the call stack of the foreign system.

61. A method according to claim 57, further comprising extracting semantically meaningful return information from the call stack of the foreign system by utilizing a description of the foreign object and transferring the return information from the foreign object to the call stack of the native system.

62. A method according to claim 57, wherein the foreign object provides functionality to the native object system which cannot be provided by an object of the native object system.

63. A device for utilizing a foreign object of a foreign object model implemented by a foreign object system in the case that the foreign object is called by a native object system implementing a native object model; comprising;

creating means for creating a proxy object of the native object model, said proxy object corresponding to the foreign object;

extracting means for extracting semantically meaningful information from a call stack of the native system;

transferring means for transferring the semantically meaningful information to a call stack of the foreign system; and

calling means for calling the foreign object.

64. A device according to claim 63, wherein

said extracting means comprises utilizing means for utilizing a description of the foreign object to determine steps required to extract semantically meaningful information from a call stack of the native object system in accordance with the description, and

wherein said transferring means comprises performing means for performing the steps required to extract the semantically meaningful information and transferring means for transferring the semantically meaningful information to a call stack of the foreign object system in accordance with the description of the foreign object.

65. A device according to claim 64, wherein said extracting means further comprises loading means for dynamically loading a device in order for the utilizing means to utilize the description.

66. A device according to claim 64, wherein said transferring means transfers the semantically meaningful information to a call stack of any of a plurality foreign object systems.

67. A device according to claim 64, wherein said transferring means further comprises converting means for converting data types of the semantically meaningful information extracted from the call stack of the native system to data types of the foreign object model before transferring the semantically meaningful information to the call stack of the foreign system.

68. A device according to claim 64, wherein said extracting means extracts semantically meaningful return information from the call stack of the foreign system by utilizing a description of the foreign object and said transferring means transfers the return information from the foreign object to the call stack of the native system.

69. A device according to claim 64, wherein the foreign object provides functionality to the native object system which cannot be provided by an object of the native object system.

70. Computer-executable process steps stored on a computer-readable medium, the steps for utilizing a foreign object of a foreign object model implemented by a foreign object system in the case that the foreign object is called by a native object system implementing a native object model, the steps comprising:

a creating step to create a proxy object of the native object model, said proxy object corresponding to the foreign object;

an extracting to extract semantically meaningful information from a call stack of the native system;

a transferring step to transfer the semantically meaningful information to a call stack of the foreign system; and

a calling step to call the foreign object.

71. Computer-executable process steps according to claim 70, wherein

said extracting step comprises a utilizing step to utilize a description of the proxy object so as to determine steps required to extract semantically meaningful information from a call stack of the native object system in accordance with the description of the foreign object, and

wherein said transferring step comprises a performing step to perform the steps required to extract the semantically meaningful information and to transfer the semantically meaningful information to a call stack of the foreign object system in accordance with the description of the foreign object.

72. Computer-executable process steps according to claim 71, wherein said extracting step further comprises a loading step to dynamically load a device in order to utilize the description.

73. Computer-executable process steps according to claim 71, wherein, in the transferring step, the semantically meaningful information is transferred to a call stack of any of a plurality foreign object systems.

74. Computer-executable process steps according to claim 71, wherein said transferring step further comprises a converting step to convert data types of the semantically meaningful information extracted from the call stack of the native system to data types of the foreign object model before transferring the semantically meaningful information to the call stack of the foreign system.

75. Computer-executable process steps according to claim 71, further comprising a second extracting step to extract semantically meaningful return information from the call stack of the foreign system by utilizing a description of the foreign object and a second transferring step to transfer the return information from the foreign object to the call stack of the native system.

76. Computer-executable process steps according to claim 71, wherein the foreign object provides functionality to the native object system which cannot be provided by an object of the native object system.

77. A device, for use in a digital computer system providing a plurality of processes and object systems, the device for enabling a native object system having a native implementation for implementing a native object model and located in a first process to use an object located in a second process via a foreign object system using a foreign object model, the device comprising:

description means for providing a description of the object;

proxy means for creating a proxy object conforming to the native object system that corresponds with the object located in the second process;

receiving means for receiving a manipulation of the proxy object, the manipulation conforming to the native implementation; and

forwarding means for forwarding the manipulation of the proxy object to the corresponding object by utilizing the description and the foreign object system.

78. A method, for use in a digital computer system providing a plurality of processes and object systems, the method for enabling a native object system having a native implementation and located in a first process to use an object located in a second process via a foreign object system using a foreign object model, the method comprising:

providing a description of the object;

creating a proxy object conforming to the native object system that corresponds with the object located in the second process;

receiving a manipulation of the proxy object, the manipulation conforming to the native implementation; and

forwarding the manipulation of the proxy object to the corresponding object by utilizing the description and the foreign object system.

79. Computer-executable process steps stored on a computer-readable medium, the steps for use in a digital computer system providing a plurality of processes and object systems, the steps for enabling a native object system having a native implementation and located in a first process to use an object located in a second process via a foreign object system using a foreign object model, the steps comprising:

a providing step to provide a description of the object;

a creating step to create a proxy object conforming to the native object system that corresponds with the object located in the second process;

a receiving step to receive a manipulation of the proxy object, the manipulation conforming to the native implementation; and

a forwarding step to forward the manipulation of the proxy object to the corresponding object by utilizing the description and the foreign object system.

80. A device according to claims 1, 47 or 77, wherein an implementation includes fundamental calling conventions and low-level calling conventions.

81. (Amended) A method according to claims 17, 50 or 78 wherein an implementation includes fundamental calling conventions and low-level calling conventions.

82. Computer-executable process steps according to claims 32, 53 or 79, wherein an implementation includes fundamental calling conventions and low-level calling conventions.

83. A device according to claims 1, 47, 64, or 77, wherein a description describes both semantic information and implementation information.

84. A device according to claim 83, wherein the device provides an application programming interface to enable a system or an object to be described to the device.

85. A device according to claim 83, wherein the device provides an application programming interface to a plurality of programming languages, the application programming interface enabling elements of a programming language to emulate an object of an object system.

86. A method according to claims 17, 50, 57, or 78, wherein a description describes both semantic information and implementation information.

87. A method according to claim 86, further comprising providing an application programing interface to enable an object system or an object to be described.

88. A method according to claim 86, further comprising providing an application programming interface to a plurality of programing languages, the application programming interface enabling elements of a programing language to emulate an object of an object system.

89. Computer-executable process steps according to claims 32, 53, 71, or 79, wherein a description describes both semantic information and implementation information.

90. Computer-executable process steps according to claim 89, further comprising a providing step to provide an application programming interface to enable an object system or an object to be described.

91. A method according to claim 90, further comprising a providing step to provide an application programming interface to a plurality of programming languages, the application programming interface enabling elements of the language to emulate an object of an object system.

92. A device according to claims 47, 63, or 77, further comprising means for organizing objects from a plurality of object systems into a unified namespace.

93. A method according to claims 50, 57, or 78, further comprising organizing objects from a plurality of object systems into a unified namespace.

94. Computer-executable process steps according to claims 53, 70 or 79, further comprising an organizing step to organize objects from a plurality of object systems into a unified namespace.

95. A device according to claims 47, 63, or 77, further comprising means for dynamically relocating objects among application processes, server processes or object systems.

96. A method according to claims 50, 57, or 78, further comprising dynamically relocating objects among application processes, server processes or objec