The present invention provides a method and apparatus for the distribution of objects and the sending of messages between objects that are located in different processes. Initially, a "proxy" object is created in the same process as a sender object. This proxy acts as a local receiver for all objects in the local program. When the proxy receives a message, the message is encoded and transmitted between programs as a stream of bytes. In the remote process, the message is decoded and executed as if the sender was remote. The result follows the same path, encoded, transmitted, and then decoded back in the local process. The result is then provided to the sending object. |
Citations|
| US5060150 | Jan 31, 1991 | Oct 22, 1991 | Motorola, Inc. | Process creation and termination monitors for use in a distributed message-based operating system | | US5230051 | Sep 4, 1990 | Jul 20, 1993 | Hewlett-Packard Company | Distributed messaging system and method | | US5305461 | Apr 3, 1992 | Apr 19, 1994 | International Business Machines Corporation | Method of transparently interconnecting message passing systems |
Referenced by|
| US5613148 | Oct 19, 1995 | Mar 18, 1997 | International Business Machines Corporation | Method and apparatus for activating and executing remote objects | | US5659727 | Jun 7, 1995 | Aug 19, 1997 | International Business Machines Corporation | Computer program product and program storage device for encoding, storing, and retrieving hierarchical data processing information for a computer system | | US5673322 | Mar 22, 1996 | Sep 30, 1997 | Bell Communications Research, Inc. | System and method for providing protocol translation and filtering to access the world wide web from wireless or low-bandwidth networks | | US5687365 | Oct 17, 1996 | Nov 11, 1997 | International Business Machines Corporation | System and method for creating a data dictionary for encoding, storing, and retrieving hierarchical data processing information for a computer system | | US5687370 | Jan 31, 1995 | Nov 11, 1997 | NeXT Software, Inc. | Transparent local and distributed memory management system | | US5721895 | Jun 7, 1995 | Feb 24, 1998 | International Business Machines Corporation | Computer program product and program storage device for a data transmission dictionary for encoding, storing, and retrieving hierarchical data processing information for a computer system | | US5732270 | Sep 15, 1994 | Mar 24, 1998 | Visual Edge Software Limited | System and method for providing interoperability among heterogeneous object systems | | US5745703 | Jul 18, 1995 | Apr 28, 1998 | NEC Research Institute, Inc. | Transmission of higher-order objects across a network of heterogeneous machines | | US5754774 | Feb 15, 1996 | May 19, 1998 | International Business Machine Corp. | Client/server communication system | | US5758074 | Nov 4, 1994 | May 26, 1998 | International Business Machines Corporation | System for extending the desktop management interface at one node to a network by using pseudo management interface, pseudo component interface and network server interface | | US5781633 | Jul 1, 1996 | Jul 14, 1998 | Sun Microsystems, Inc. | Capability security for transparent distributed object systems | | US5793965 | Mar 22, 1995 | Aug 11, 1998 | Sun Microsystems, Inc. | Method and apparatus for determining the type of an object in a distributed object system | | US5794039 | Dec 18, 1996 | Aug 11, 1998 | Unisys Corp. | Method for abstracting messages of various protocols into objects for storage in a database | | US5898834 | Aug 16, 1996 | Apr 27, 1999 | Starwave Corporation | System, method, and medium for control of objects in a multi-platform environment | | US5913025 | Nov 14, 1996 | Jun 15, 1999 | Novell, Inc. | Method and apparatus for proxy authentication | | US5931919 | Nov 7, 1997 | Aug 3, 1999 | Xerox Corporation | State-based object transition control and attribute-based locking | | US5948072 | Oct 31, 1996 | Sep 7, 1999 | International Business Machines Corporation | Method and apparatus for defining the scope of a CORBAservices factory finder | | US5953527 | Apr 23, 1996 | Sep 14, 1999 | Sun Microsystems, Inc. | Method and apparatus for mixing objective-C and C++ objects | | US5969967 | Dec 31, 1997 | Oct 19, 1999 | Sun Microsystems, Inc. | Methods and apparatus for conspiracy between objects | | US6003087 | Oct 3, 1997 | Dec 14, 1999 | International Business Machines Corporation | CGI response differencing communication system | | US6009464 | Oct 16, 1995 | Dec 28, 1999 | Sun Microsystems, Inc. | Method and apparatus for enabling application programs to communicate with network clients and servers | | US6018805 | Dec 15, 1997 | Jan 25, 2000 | Recipio | Transparent recovery of distributed-objects using intelligent proxies | | US6026415 | Nov 11, 1997 | Feb 15, 2000 | NeXT Software, Inc. | Transparent local and distributed memory management system | | US6032201 | Jun 19, 1997 | Feb 29, 2000 | Cirrus Logic, Inc. | Plug and play system using proxy for retrieving correct information about current device from system registry when current device is not the newly installed device | | US6035324 | Aug 28, 1997 | Mar 7, 2000 | International Business Machines Corporation | Client-side asynchronous form management | | US6041383 | Jul 22, 1996 | Mar 21, 2000 | Cabletron Systems, Inc. | Establishing control of lock token for shared objects upon approval messages from all other processes | | US6049673 | Feb 13, 1998 | Apr 11, 2000 | Organicnet, Inc. | Organicware applications for computer systems | | US6070184 | Aug 28, 1997 | May 30, 2000 | International Business Machines Corporation | Server-side asynchronous form management | | US6138269 | May 20, 1998 | Oct 24, 2000 | Sun Microsystems, Inc. | Determining the actual class of an object at run time | | US6157960 | May 7, 1997 | Dec 5, 2000 | International Business Machines Corporation | Technique for programmatically creating distributed object programs | | US6158045 | Nov 13, 1995 | Dec 5, 2000 | Object Technology Licensing Corporation | Portable debugging services utilizing a client debugger object and a server debugger object with flexible addressing support | | US6173327 | Jul 11, 1996 | Jan 9, 2001 | | Object-oriented method and apparatus for information delivery | | US6182154 | Apr 7, 1997 | Jan 30, 2001 | International Business Machines Corporation | Universal object request broker encapsulater | | US6192419 | Jun 18, 1997 | Feb 20, 2001 | International Business Machines Corporation | Collaborative framework for disparate application programs | | US6195709 | Mar 2, 1998 | Feb 27, 2001 | International Business Machines Corporation | Method of providing persistency for transient objects in object oriented technology | | US6219717 | Nov 20, 1996 | Apr 17, 2001 | Merrill Lynch & Co., Inc. | Method and apparatus for implementing object transparent invocation | | US6223227 | Apr 9, 1997 | Apr 24, 2001 | NeXT Software, Inc. | Method for providing stand-in objects | | US6226690 | Jun 14, 1993 | May 1, 2001 | International Business Machines Corporation | Method and apparatus for utilizing proxy objects to communicate with target objects | | US6226746 | Mar 20, 1998 | May 1, 2001 | Sun Microsystems, Inc. | Stack-based system and method to combine security requirements of methods | | US6237009 | Jun 14, 1999 | May 22, 2001 | Sun Microsystems, Inc. | Lease renewal service | | US6237024 | Mar 20, 1998 | May 22, 2001 | Sun Microsystem, Inc. | Method and apparatus for the suspension and continuation of remote processes | | US6243716 | Aug 20, 1999 | Jun 5, 2001 | Sun Microsystems, Inc. | Methods and systems for distributed failure detection and recovery using leasing | | US6247026 | Mar 20, 1998 | Jun 12, 2001 | Sun Microsystems, Inc. | Method, apparatus, and product for leasing of delegation certificates in a distributed system | | US6253252 | Jul 11, 1996 | Jun 26, 2001 | | Method and apparatus for asynchronously calling and implementing objects | | US6253253 | Aug 25, 1997 | Jun 26, 2001 | International Business Machines Corporation | Method and apparatus for optimizing references to objects in a data processing system | | US6253256 | Oct 15, 1997 | Jun 26, 2001 | Sun Microsystems, Inc. | Deferred reconstruction of objects and remote loading in a distributed system | | US6263350 | Mar 20, 1998 | Jul 17, 2001 | Sun Microsystems, Inc. | Method and system for leasing storage | | US6263485 | Jul 11, 1996 | Jul 17, 2001 | | Method and apparatus for describing an interface definition language-defined interface, operation, and data type | | US6272559 | Mar 20, 1998 | Aug 7, 2001 | Sun Microsystems, Inc. | Deferred reconstruction of objects and remote loading for event notification in a distributed system | | US6300946 | May 29, 1998 | Oct 9, 2001 | Palm, Inc. | Method and apparatus for interacting with a portable computer | | US6304884 | Feb 14, 2000 | Oct 16, 2001 | NeXT Software, Inc. | Transparent local and distributed memory management system | | US6314435 | Sep 11, 1998 | Nov 6, 2001 | Sun Microsystems, Inc. | Methods, apparatus, and product for distributed garbage collection | | US6324682 | Mar 27, 2000 | Nov 27, 2001 | Velocity.com | Organicware applications for computer systems | | US6327596 | Jul 27, 1999 | Dec 4, 2001 | Sun Microsystems, Inc. | Methods, apparatus, and product for distributed garbage collection | | US6343318 | May 29, 1998 | Jan 29, 2002 | Palm, Inc. | Method and apparatus for communicating information over low bandwidth communications networks | | US6347342 | Jul 15, 1996 | Feb 12, 2002 | NeXT Software, Inc. | Method and apparatus for dynamically brokering object messages among object models | | US6349343 | Nov 18, 1997 | Feb 19, 2002 | Visual Edge Software Limited | System and method for providing interoperability among heterogeneous object systems | | US6353860 | Dec 23, 1997 | Mar 5, 2002 | Sun Microsystems, Inc. | Methods and apparatus for managing collections of objects | | US6360272 | May 28, 1999 | Mar 19, 2002 | Palm, Inc. | Method and apparatus for maintaining a unified view of multiple mailboxes | | US6378001 | Jun 18, 1997 | Apr 23, 2002 | International Business Machines Corp. | Collaborative framework with shared objects | | US6389452 | Nov 25, 1998 | May 14, 2002 | Recursion Software, Inc. | Method of communicating between objects and agents across a computer network | | US6389540 | Mar 30, 2000 | May 14, 2002 | Sun Microsystems, Inc. | Stack based access control using code and executor identifiers | | US6393497 | Mar 20, 1998 | May 21, 2002 | Sun Microsystems, Inc. | Downloadable smart proxies for performing processing associated with a remote procedure call in a distributed system | | US6397259 | May 29, 1998 | May 28, 2002 | Palm, Inc. | Method, system and apparatus for packet minimized communications | | US6401135 | Jun 21, 1996 | Jun 4, 2002 | Sun Microsystems, Inc. | Translator object for testing an interface to a server object | | US6415279 | Mar 11, 1999 | Jul 2, 2002 | Telefonaktiebolaget LM Ericsson (publ) | Method and access means for determining the storage address of a data value in a memory device | | US6421704 | Mar 20, 1998 | Jul 16, 2002 | Sun Microsystems, Inc. | Method, apparatus, and product for leasing of group membership in a distributed system | | US6438614 | Mar 20, 1998 | Aug 20, 2002 | Sun Microsystems, Inc. | Polymorphic token based control | | US6446070 | Feb 26, 1998 | Sep 3, 2002 | Sun Microsystems, Inc. | Method and apparatus for dynamic distributed computing over a network | | US6449648 | Oct 19, 2000 | Sep 10, 2002 | Sun Microsystems, Inc. | Lease renewal service | | US6463446 | Mar 20, 1998 | Oct 8, 2002 | Sun Microsystems, Inc. | Method and apparatus for transporting behavior in an event-based distributed system | | US6466947 | Mar 20, 1998 | Oct 15, 2002 | Sun Microsystems, Inc. | Apparatus and method for dynamically verifying information in a distributed system | | US6466992 | Feb 2, 2001 | Oct 15, 2002 | Next Computer, Inc. | Method for providing stand-in objects | | US6467085 | Jul 16, 1999 | Oct 15, 2002 | Telefonaktiebolaget L M Ericsson (Publ) | System and method for reducing coupling in an object-oriented programming environment | | US6480863 | Oct 12, 2000 | Nov 12, 2002 | Sun Microsystems, Inc. | Method and system for multi-entry and multi-template matching in a database | | US6487607 | Mar 20, 1998 | Nov 26, 2002 | Sun Microsystems, Inc. | Methods and apparatus for remote method invocation | | US6519615 | Oct 18, 2000 | Feb 11, 2003 | Sun Microsystems, Inc. | Method and system for leasing storage | | US6519653 | Nov 25, 1998 | Feb 11, 2003 | Recursion Software, Inc. | Method of communicating between agent objects in a computer network | | US6560656 | Mar 20, 1998 | May 6, 2003 | Sun Microsystems, Inc. | Apparatus and method for providing downloadable code for use in communicating with a device in a distributed system | | US6564240 | Feb 20, 2002 | May 13, 2003 | Sun Microsystems, Inc. | Method, apparatus, and product for leasing of group membership in a distributed system | | US6567861 | Sep 17, 1997 | May 20, 2003 | International Business Machines Corporation | Method and apparatus for remotely running objects using data streams and/or complex parameters | | US6571262 | Oct 15, 2001 | May 27, 2003 | Apple Computer, Inc. | Transparent local and distributed memory management system | | US6578044 | Mar 20, 1998 | Jun 10, 2003 | Sun Microsystems, Inc. | Method and system for typesafe attribute matching | | US6598094 | Mar 20, 1998 | Jul 22, 2003 | Sun Microsystems, Inc. | Method and apparatus for determining status of remote objects in a distributed system | | US6604127 | Jul 27, 2001 | Aug 5, 2003 | | Dynamic lookup service in distributed system | | US6629154 | Oct 12, 2000 | Sep 30, 2003 | Sun Microsystems, Inc. | Method and system for deterministic hashes to identify remote methods | | US6643650 | Sep 12, 2000 | Nov 4, 2003 | Sun Microsystems, Inc. | Mechanism and apparatus for using messages to look up documents stored in spaces in a distributed computing environment | | US6654793 | Jun 30, 1998 | Nov 25, 2003 | Sun Microsystems, Inc. | System and method for facilitating dynamic loading of stub information to enable a program operating in one address space to invoke processing of a remote method or procedure in another address space | | US6697848 | Sep 14, 1999 | Feb 24, 2004 | Sun Microsystems, Inc. | Method and apparatus for enabling application programs to communicate with network clients and servers | | US6704756 | May 14, 2001 | Mar 9, 2004 | Sun Microsystems, Inc. | Methods, apparatus, and product for distributed garbage collection | | US6708171 | Jun 14, 1999 | Mar 16, 2004 | Sun Microsystems, Inc. | Network proxy | | US6714942 | Jul 28, 2000 | Mar 30, 2004 | E-Volve Incorporated | Method of creating and using a sub-classed object that spans multiple computers in a networked computing system | | US6728737 | Feb 15, 2002 | Apr 27, 2004 | Sun Microsystems, Inc. | Method and system for leasing storage | | US6748403 | Jan 13, 2000 | Jun 8, 2004 | PalmSource, Inc. | Method and apparatus for preserving changes to data | | US6760736 | Dec 20, 2000 | Jul 6, 2004 | Sun Microsystems, Inc. | Methods and systems for distributed failure detection and recovery using leasing techniques | | US6760815 | Jun 2, 2000 | Jul 6, 2004 | Sun Microsystems, Inc. | Caching mechanism for a virtual heap | | US6763440 | Jun 2, 2000 | Jul 13, 2004 | Sun Microsystems, Inc. | Garbage collection using nursery regions for new objects in a virtual heap | | US6789077 | Aug 31, 2000 | Sep 7, 2004 | Sun Microsystems, Inc. | Mechanism and apparatus for web-based searching of URI-addressable repositories in a distributed computing environment | | US6789126 | Oct 19, 2000 | Sep 7, 2004 | Sun Microsystems, Inc. | Addressing message gates in a distributed computing environment | | US6792466 | Sep 12, 2000 | Sep 14, 2004 | Sun Microsystems, Inc. | Trusted construction of message endpoints in a distributed computing environment | | US6799320 | Dec 16, 1998 | Sep 28, 2004 | Microsoft Corporation | Providing binding options for component interfaces | | US6816875 | Jun 19, 2003 | Nov 9, 2004 | | Methods, apparatus, and product for distributed garbage collection | | US6820267 | Jun 30, 1998 | Nov 16, 2004 | Microsoft Corporation | Method and system for remote automation of object oriented applications | | US6832223 | Mar 20, 1998 | Dec 14, 2004 | Sun Microsystems, Inc. | Method and system for facilitating access to a lookup service | | US6834389 | Nov 25, 1998 | Dec 21, 2004 | Recursion Software, Inc. | Method of forwarding messages to mobile objects in a computer network | | US6850979 | Aug 31, 2000 | Feb 1, 2005 | Sun Microsystems, Inc. | Message gates in a distributed computing environment | | US6854115 | Jun 2, 2000 | Feb 8, 2005 | Sun Microsystems, Inc. | Process persistence in a virtual machine | | US6862594 | Aug 31, 2000 | Mar 1, 2005 | Sun Microsystems, Inc. | Method and apparatus to discover services using flexible search criteria | | US6865657 | Jun 2, 2000 | Mar 8, 2005 | Sun Microsystems, Inc. | Garbage collector for a virtual heap | | US6868447 | Sep 12, 2000 | Mar 15, 2005 | Sun Microsystems, Inc. | Mechanism and apparatus for returning results of services in a distributed computing environment | | US6874066 | Feb 20, 2004 | Mar 29, 2005 | Sun Microsystems, Inc. | Caching mechanism for a virtual heap | | US6877163 | Jun 14, 1999 | Apr 5, 2005 | Sun Microsystems, Inc. | Method and system for dynamic proxy classes | | US6898618 | Oct 19, 2000 | May 24, 2005 | Sun Microsystems, Inc. | Client-specified display services in a distributed computing environment | | US6901518 | Apr 6, 2000 | May 31, 2005 | Sun Microsystems, Inc. | Method and system for establishing trust in downloaded proxy code | | US6917976 | Aug 31, 2000 | Jul 12, 2005 | Sun Microsystems, Inc. | Message-based leasing of resources in a distributed computing environment | | US6918084 | Aug 31, 2000 | Jul 12, 2005 | Sun Microsystems, Inc. | Spawning new repository spaces using information provided in advertisement schema messages | | US6925644 | Jan 31, 2003 | Aug 2, 2005 | Sun Microsystems, Inc. | Method, apparatus, and product for leasing of group membership in a distributed system | | US6934758 | May 13, 2002 | Aug 23, 2005 | Sun Microsystems, Inc. | Stack-based access control using code and executor identifiers | | US6938263 | Apr 23, 1996 | Aug 30, 2005 | Sun Microsystems, Inc. | SYSTEM AND METHOD FOR FACILITATING DYNAMIC LOADING OF “STUB” INFORMATION TO ENABLE A PROGRAM OPERATING IN ONE ADDRESS SPACE TO INVOKE PROCESSING OF A REMOTE METHOD OR PROCEDURE IN ANOTHER ADDRESS SPACE | | US6941410 | Jun 2, 2000 | Sep 6, 2005 | Sun Microsystems, Inc. | Virtual heap for a virtual machine | | US6941561 | Oct 20, 2000 | Sep 6, 2005 | International Business Machines Corporation | Method and apparatus for remotely running objects using data streams and/or complex parameters | | US6950875 | Oct 19, 2000 | Sep 27, 2005 | Sun Microsystems, Inc. | Message conductors in a distributed computing environment | | US6952706 | Sep 5, 2002 | Oct 4, 2005 | Apple Computer | Method for providing stand-in objects | | US6957237 | Jun 2, 2000 | Oct 18, 2005 | Sun Microsystems, Inc. | Database store for a virtual heap | | US6957427 | Oct 15, 1997 | Oct 18, 2005 | Sun Microsystems, Inc. | Remote object activation in a distributed system | | US6970869 | Aug 31, 2000 | Nov 29, 2005 | Sun Microsystems, Inc. | Method and apparatus to discover services and negotiate capabilities | | US6973493 | Aug 31, 2000 | Dec 6, 2005 | Sun Microsystems, Inc. | Mechanism and apparatus for security of newly spawned repository spaces in a distributed computing environment | | US6993561 | Jan 10, 2002 | Jan 31, 2006 | PalmSource, Inc. | Method and apparatus for maintaining a unified view of multiple mailboxes | | US7010573 | Oct 19, 2000 | Mar 7, 2006 | Sun Microsystems, Inc. | Message gates using a shared transport in a distributed computing environment | | US7016966 | Oct 19, 2000 | Mar 21, 2006 | Sun Microsystems, Inc. | Generating results gates in a distributed computing environment | | US7025209 | May 29, 1998 | Apr 11, 2006 | PalmSource, Inc. | Method and apparatus for wireless internet access | | US7051342 | Oct 22, 2004 | May 23, 2006 | Microsoft Corporation | Method and system for remote automation of object oriented applications | | US7058954 | May 22, 1998 | Jun 6, 2006 | Sun Microsystems, Inc. | System and method for facilitating dynamic loading of stub information to enable a program operating in one address space to invoke processing of a remote method or procedure in another space | | US7065574 | Sep 11, 2000 | Jun 20, 2006 | Sun Microsystems, Inc. | Messaging system using pairs of message gates in a distributed computing environment | | US7072967 | Sep 12, 2000 | Jul 4, 2006 | Sun Microsystems, Inc. | Efficient construction of message endpoints | | US7080078 | Aug 31, 2000 | Jul 18, 2006 | Sun Microsystems, Inc. | Mechanism and apparatus for URI-addressable repositories of service advertisements and other content in a distributed computing environment | | US7188251 | Aug 31, 2000 | Mar 6, 2007 | Sun Microsystems, Inc. | System and method for secure message-based leasing of resources in a distributed computing environment | | US7200848 | Sep 15, 2000 | Apr 3, 2007 | Sun Microsystems, Inc. | Migrating processes using data representation language representations of the processes in a distributed computing environment | | US7203769 | Mar 14, 1997 | Apr 10, 2007 | International Business Machines Corporation | Bootstrapping technique for distributed object client systems | | US7210148 | Mar 16, 2001 | Apr 24, 2007 | Sun Microsystems, Inc. | Method and apparatus for dynamic distributed computing over a network | | US7243356 | Sep 27, 2000 | Jul 10, 2007 | Sun Microsystems, Inc. | Remote method invocation with secure messaging in a distributed computing environment | | US7260543 | Sep 11, 2000 | Aug 21, 2007 | Sun Microsystems, Inc. | Automatic lease renewal with message gates in a distributed computing environment | | US7266586 | Nov 4, 2005 | Sep 4, 2007 | Access Systems Americas, Inc. | Method and apparatus for maintaining a unified view of multiple mailboxes | | US7269664 | Jan 12, 2001 | Sep 11, 2007 | Sun Microsystems, Inc. | Network portal system and methods | | US7296275 | Jan 4, 2001 | Nov 13, 2007 | Sun Microsystems, Inc. | Method and system for passing objects in a distributed system using serialization contexts | | US7305538 | Apr 10, 2003 | Dec 4, 2007 | Apple Inc. | Transparent local and distributed memory management system | | US7340772 | Jun 20, 2005 | Mar 4, 2008 | Citrix Systems, Inc. | Systems and methods for continuing an operation interrupted from a reconnection between a client and server | | US7370091 | Oct 27, 2000 | May 6, 2008 | Sun Microsystems, Inc. | Method and apparatus for obtaining space advertisements | | US7395333 | Aug 31, 2000 | Jul 1, 2008 | Sun Microsystems, Inc. | Method and apparatus to obtain negotiated service advertisement | | US7395539 | Apr 4, 2000 | Jul 1, 2008 | Gateway Inc. | Transaction control in an information appliance management system | | US7398533 | Sep 27, 2000 | Jul 8, 2008 | Sun Microsystems, Inc. | Remote function invocation with messaging in a distributed computing environment | | US7412518 | Sep 7, 2000 | Aug 12, 2008 | Sun Microsystems, Inc. | Method and apparatus for proximity discovery of services | | US7426721 | Sep 15, 2000 | Sep 16, 2008 | Sun Microsystems, Inc. | Transformation of objects between a computer programming language and a data representation language | | US7444644 | Sep 15, 2000 | Oct 28, 2008 | Sun Microsystems, Inc. | Secure access of objects generated from data representation language representations of the objects in a distributed computing environment | | US7458082 | Oct 19, 2000 | Nov 25, 2008 | Sun Microsystems, Inc. | Bridging between a data representation language message-based distributed computing environment and other computing environments using proxy service | | US7467375 | Jan 13, 2003 | Dec 16, 2008 | Computer Associates Think, Inc. | Method and system for transforming legacy software applications into modern object-oriented systems | | US7484218 | Feb 7, 2002 | Jan 27, 2009 | NeXT Software, Inc. | Method and apparatus for dynamically brokering object messages among object models | | US7502726 | Jun 20, 2005 | Mar 10, 2009 | Citrix Systems, Inc. | Systems and methods for maintaining a session between a client and host service | | US7509360 | Jul 12, 2004 | Mar 24, 2009 | Sun Microsystems, Inc. | Methods, apparatus, and product for distributed garbage collection | | US7523146 | Jun 21, 2005 | Apr 21, 2009 | Apple Inc. | Apparatus and method for peer-to-peer N-way synchronization in a decentralized environment | | US7548946 | Sep 12, 2000 | Jun 16, 2009 | Sun Microsystems, Inc. | Pre-generated message endpoints | | US7562146 | Oct 10, 2003 | Jul 14, 2009 | Citrix Systems, Inc. | Encapsulating protocol for session persistence and reliability | | US7577834 | Aug 31, 2000 | Aug 18, 2009 | Sun Microsystems, Inc. | Message authentication using message gates in a distributed computing environment | | US7657769 | Jan 8, 2007 | Feb 2, 2010 | | N-way synchronization of data | | US7660887 | Mar 19, 2003 | Feb 9, 2010 | Sun Microsystems, Inc. | Systems and methods for providing dynamic quality of service for a distributed system | | US7661129 | Feb 26, 2002 | Feb 9, 2010 | Citrix Systems, Inc. | Secure traversal of network components | | US7716450 | Nov 28, 2007 | May 11, 2010 | Apple Inc. | Transparent local and distributed memory management system | | US7716492 | Aug 31, 2000 | May 11, 2010 | Oracle America, Inc. | Method and apparatus to obtain service capability credentials | | US7730026 | Jul 1, 2004 | Jun 1, 2010 | Apple Inc. | Method and system using reusable state information for synchronization and maintenance of data | | US7734747 | Sep 25, 2003 | Jun 8, 2010 | Oracle America, Inc. | Dynamic lookup service in a distributed system | | US7756969 | Jan 30, 2004 | Jul 13, 2010 | Oracle America, Inc. | Dynamic provisioning of identification services in a distributed system | | US7760767 | Jan 5, 2007 | Jul 20, 2010 | Apple Inc. | Wide area peer-to-peer synching in a decentralized environment | | US7792874 | Jun 7, 2005 | Sep 7, 2010 | Oracle America, Inc. | Dynamic provisioning for filtering and consolidating events | | US7860826 | Aug 4, 2006 | Dec 28, 2010 | Apple Inc. | Method and system for using global equivalency sets to identify data during peer-to-peer synchronization | | US7984157 | Sep 30, 2004 | Jul 19, 2011 | Citrix Systems, Inc. | Persistent and reliable session securely traversing network components using an encapsulating protocol | | US8001232 | Oct 19, 2000 | Aug 16, 2011 | Oracle America, Inc. | Event message endpoints in a distributed computing environment | | US8082491 | Oct 19, 2000 | Dec 20, 2011 | Oracle America, Inc. | Dynamic displays in a distributed computing environment | | US8090874 | Jun 20, 2005 | Jan 3, 2012 | Citrix Systems, Inc. | Systems and methods for maintaining a client's network connection thru a change in network identifier | | US8135796 | Sep 12, 2000 | Mar 13, 2012 | Oracle America, Inc. | Mechanism and apparatus for accessing and addressing services in a distributed computing environment | | US8174503 | May 17, 2008 | May 8, 2012 | David H. Cain | Touch-based authentication of a mobile device through user generated pattern creation | | US8205213 | Dec 15, 2008 | Jun 19, 2012 | NeXT Software, Inc. | Method and apparatus for dynamically brokering object messages among object models | | USRE40459 | Jan 29, 2004 | Aug 12, 2008 | PalmSource, Inc. | Method and apparatus for communicating information over low bandwidth communications networks | | USRE41706 | Jan 13, 2006 | Sep 14, 2010 | | Moving objects in a distributed computing environment | | USRE43247 | Apr 29, 2005 | Mar 13, 2012 | Access Co., Ltd. | Method and apparatus for communicating information over low bandwidth communications networks | | USRE43375 | Sep 20, 2007 | May 8, 2012 | Reware Asset Group, L.L.C. | System and method for communications in a distributed computing environment |
Claims1. A method for sending an object oriented programming language based message having dynamic binding from a first object in a first process to a second object in a second process, said method comprising the steps of: - transmitting, using a first processing means, said object oriented programming language based message to a first proxy in said first process;
- using said first proxy and said first processing means, encoding said object oriented programming language based message into an operating system based message at run time;
- transmitting said operating system based message to said second process in said second processing means at run time;
- decoding, using a second process, said operating system based message into a language based message;
- transmitting, using said second processing means, said object oriented programming language based message to said second object in said second process;
- executing said object oriented programming language based message by said second object in said second process.
2. The method of claim 1 further including the steps of: - said second object in said second process and generating an object oriented programming language based result;
- encoding, using said second processing means, said object oriented programming language based result into an operating system based result at run time;
- transmitting, using said second processing means, said operating system based result to said first process at run time;
- decoding said operating system based result into an object oriented programming language based result at run time, using said first processing means;
- transmitting, using said first processing means, said object oriented programming language based result to said first object.
3. The method of claim 1 wherein said object oriented programming language based message comprises a method and an argument. 4. The method of claim 1 wherein said second object executes said method on said argument when executing said message. 5. The method of claim 1 wherein the step of executing said object oriented programming language based message further includes the steps of: - said second object determining, using said second processing means, whether additional information is needed to execute said object oriented programming language based message;
- said second object generating, using said second processing means, an object oriented programming language based query if it is determined that additional information is needed;
- encoding, using said second processing means, said object oriented programming language based query into an operating system based query at run time if it is determined that additional information is needed;
- transmitting said operating system based query to said first process at run time, using said second processing means if it is determined that additional information is needed;
- decoding, using said first processing means, said operating system based query into an object oriented programming language based query at run time if it is determined that additional information is needed;
- transmitting, using said first processing means, said object oriented programming language based query to said first object if it is determined that additional information is needed.
6. The method of claim 5 further including the steps of: - said first object generating, using said first processing means, an object oriented programming language based reply to said object oriented programming language based query;
- encoding said object oriented programming language based reply into an operating system based reply at run time, using said first processing means;
- transmitting, using said first processing means, said operating system based reply to said second process at run time;
- decoding, using said second processing means, said operating system based reply into an object oriented programming language based reply at run time;
- transmitting, using said second processing means, said object oriented programming language based reply to said second object.
7. The method of claim 6 wherein said first processing means and said second processing means are the same processing means. 8. The method of claim 1 wherein said object oriented programming language based message comprises an objective C message. 9. The method of claim 1 wherein said operating system based message comprises a Mach message. 10. The method of claim 1 wherein said first proxy represents said second object. 11. A method for sending an object oriented programming language based message having dynamic binding from a first object in a first process to a second object in a second process, said method comprising the steps of: - transmitting, using a first processing means, said object oriented programming language based message to a first proxy in said first process;
- using said first proxy and said first processing means, encoding said object oriented programming language based message into an operating system based message at run time;
- transmitting, using said first processing means, said operating system based message to said second process at run time;
- decoding, using said second processing means, said operating system based message into an object oriented programming language based message at run time;
- transmitting, using said second processing means, said object oriented programming language based message to said second object;
- said second object generating an object oriented programming language based query, using said second processing means;
- creating, using said second processing means, a second proxy in said second process;
- transmitting, using said second processing means, said object oriented programming language based query to said second proxy;
- using said second proxy and said second processing means, encoding said object oriented programming language based query into an operating system based query at run time;
- transmitting, using said second processing means, said operating system based query to said first process at run time;
- decoding, using said first processing means, said operating system based query into an object oriented programming language based query at run time;
- transmitting, using said first processing means, said object oriented programming language based query to said first object;
- said first object generating an object oriented programming language based reply, using said first processing means;
- encoding, using said first processing means, said object oriented programming language based reply into an operating system based reply at run time;
- transmitting, using said first processing means, said operating system based reply to said second process at run time;
- decoding, using a second processing means, said operating system based reply into an object oriented programming language based reply at run time;
- transmitting, using said second processing means, said object oriented programming language based reply, using said second processing means, and generating an object oriented programming language based result;
- encoding, using said second processing means, said object oriented programming language based result into an operating system based result at run time;
- transmitting, using said second processing means, said operating system based result to said first process at run time;
- decoding, using said first processing means, said operating system based result into an object oriented programming language based result;
- transmitting, using said first processing means, said object oriented programming language based result to said first object.
12. The method of claim 11 wherein said object oriented programming language based message comprises a method and an argument. 13. The method of claim 12 wherein said second object executes said method on said argument when executing said message. 14. The method of claim 11 wherein said first process and said second process are located on first and second computers respectively. 15. The method of claim 11 wherein said object oriented programming language based message comprises an objective C message. 16. The method of claim 11 wherein said operating system based message comprises a Mach message. 17. The method of claim 11 wherein said first proxy represents said second object. 18. The method of claim 11 wherein said second proxy represents said first object. 19. A method for sending, in a C environment with minimal run time support, an object oriented programming language based message having dynamic binding from a first object in a first process to a second object in a second process, said method comprising the steps of: - transmitting, using a first processing means implementing said C environment, said object oriented programming language based message to a first proxy in said first process;
- using said first proxy and said first processing means, encoding said object oriented programming language based message into an operating system based message at run time;
- transmitting said operating system based message to said second process at run time;
- decoding, using a second processing means implementing said C environment, said operating system based message into a language based message;
- transmitting, using said second processing means, said object oriented programming language based message to said second object.
20. The method of claim 19 further including the steps of: - said second object executing said object oriented programming language based message, using said second processing means, and generating an object oriented programming language based result;
- encoding, using said second processing means, said object oriented programming language based result into an operating system based result at run time;
- transmitting, using said second processing means, said operating system based result to said first process at run time;
- decoding said operating system based result into an object oriented programming language based result at run time, using said first processing means;
- transmitting, using said first processing means, said object oriented programming language based result to said first object.
21. The method of claim 20 wherein the step of executing said object oriented programming language based message further includes the steps of: - said second object determining, using said second processing means, whether additional information is needed to execute said object oriented programming language based message;
- said second object generating, using said second processing means, an object oriented programming language based query if it is determined that additional information is needed;
- encoding, using said second processing means, said object oriented programming language based query into an operating system based query at run time if it is determined that additional information is needed;
- transmitting said operating system based query to said first process at run time, using said second processing means if it is determined that additional information is needed;
- decoding, using said first processing means, said operating system based query into an object oriented programming language based query at run time if it is determined that additional information is needed;
- transmitting, using said first processing means, said object oriented programming language based query to said first object if it is determined that additional information is needed.
22. The method of claim 21 further including the steps of: - said first object generating, using said first processing means, an object oriented programming language based reply to said object oriented programming language based query;
- encoding said object oriented programming language based reply into an operating system based reply at run time, using said first processing means;
- transmitting, using said first processing means, said operating system based reply to said second process at run time;
- decoding, using said second processing means, said operating system based reply into an object oriented programming language based reply at run time;
- transmitting, using said processing means, said object oriented programming language based reply to said second object.
23. The method of claim 21 wherein said operating system based message comprises a Mach message. 24. The method of claim 21 wherein said first processing means and said second processing means are the same processing means. |