Source: http://www.google.com/patents/US6393497?dq=7,194,691
Timestamp: 2014-12-20 14:37:28
Document Index: 762794694

Matched Legal Cases: ['application No. 60', 'application No. 09', 'art 1', 'art 2', 'art 1', 'art 2']

Patent US6393497 - Downloadable smart proxies for performing processing associated with a ... - Google PatentsSearch Images Maps Play YouTube News Gmail Drive More »Sign inAdvanced Patent SearchPatentsUse of a smart proxy as a wrapper around a stub in a distributed system. Instead of receiving a stub as a result of a remote procedure call, a caller receives a smart proxy including the stub as an embedded object. The smart proxy performs predefined processing associated with a remote procedure call,...http://www.google.com/patents/US6393497?utm_source=gb-gplus-sharePatent US6393497 - Downloadable smart proxies for performing processing associated with a remote procedure call in a distributed systemAdvanced Patent SearchPublication numberUS6393497 B1Publication typeGrantApplication numberUS 09/044,930Publication dateMay 21, 2002Filing dateMar 20, 1998Priority dateMar 20, 1998Fee statusPaidAlso published asUS20020199036Publication number044930, 09044930, US 6393497 B1, US 6393497B1, US-B1-6393497, US6393497 B1, US6393497B1InventorsKenneth C. R. C. Arnold, James H. Waldo, Robert Scheifler, Ann M. WollrathOriginal AssigneeSun Microsystems, Inc.Export CitationBiBTeX, EndNote, RefManPatent Citations (106), Non-Patent Citations (98), Referenced by (43), Classifications (7), Legal Events (4) External Links: USPTO, USPTO Assignment, EspacenetDownloadable smart proxies for performing processing associated with a remote procedure call in a distributed systemUS 6393497 B1Abstract Use of a smart proxy as a wrapper around a stub in a distributed system. Instead of receiving a stub as a result of a remote procedure call, a caller receives a smart proxy including the stub as an embedded object. The smart proxy performs predefined processing associated with a remote procedure call, the processing possibly occurring before, during, or after a response to the call.
REFERENCE TO RELATED APPLICATIONS Provisional U.S. patent application No. 60/076,048, entitled �Distributed Computing System,� filed on Feb. 26, 1998.
U.S. patent application No. 09/030,840, entitled �Method and Apparatus for Dynamic Distributed Computing Over a Network, � and filed on Feb. 26, 1998.
U.S. patent application Ser. No. 09/044,934, entitled �Polymorphic TokenBased Control,� filed on the same date herewith.
U.S. patent application Ser. No. 09/044,915, entitled �Stack-Based Access Control,� filed on the same date herewith.
FIELD OF THE INVENTION The present invention relates to a system and method for transmitting objects between machines in a distributed system and more particularly relates to transmission of a representation of a remote object including code for local processing.
SUMMARY OF THE INVENTION A method consistent with the present invention transmits a request for a particular object. A response to the request is received, the response including code used to construct a representation of the requested object, the construction creating an object for processing calls to the object, local to the requesting object, using the representation.
DETAILED DESCRIPTION Overview Instead of receiving a proxy that only makes network requests to the object for which it is a surrogate, a machine in a distributed system receives a smart proxy. Such a proxy can respond to calls on the object for which it is a surrogate without making any network calls to increase program efficiency, or perform processing before making a network call or after the completion of the network call to increase program functionality. The term proxy generally refers to code or other mechanism used to act as a surrogate for a remote object in the address space of a machine.
Systems transferring stubs and associated smart proxies may use a variant of an RPC or RMI, passing arguments and return values from one process to another process each of which may be on different machines. The term �machine� is used in this context to refer to a physical machine or a virtual machine. Multiple virtual machines may exist on the same physical machine. Examples of RPC systems include distributed computed environment (DCE) RPC and Microsoft distributed common object model (DCOM) RPC. A memory stores the stub and associated smart proxy, and this memory may include secondary sources such as a disk or receiving objects from the Internet.
Data Flow in a Distributed Processing System FIG. 6 is a block diagram of an object-oriented distributed network 600 connecting machines 601 and 606, such as computers or virtual machines executing on one or more computers, or the machines described with reference to FIGS. 3, 4, and 5. Network 600 transmits proxies, some of which may be smart proxies. A smart proxy includes code for performing processing associated with a call. For example, a smart proxy may perform a caching operation for read-only data for later reference. When a call is made for that data, the smart proxy may obtain it locally and provide it to a user without making another call for the data, which may occur transparent to the user. An example of such read-only data is a particular installation time. The first time a call is made for the installation time, for example, a smart proxy locally caches that value, and when a subsequent call is made for the installation time, the smart proxy locally retrieves the value.
Other examples of uses of smart proxies include processing for debugging, call logging, and monitoring system performance. Another example involves the use of a smart proxy for local data verification, as explained in the U.S. patent application filed on the same date herewith, assigned to a common assignee, and entitled �Apparatus and Method for Dynamically Verifing Information in a Distributed System,� which is incorporated herein by reference. Many other uses for smart proxies are possible for performing processing associated with a call.
Network 600 includes a client machine 601 containing RMI 602 and associated code 603. A server machine 606 includes RMI 607 and remote object 608. In operation, RMI 602 transmits a call or request 609 to RMI 607, requesting a particular stub object. RMI 607 returns a response 610 including requested stub 605 embedded within a smart proxy 604. The response may be transmitted as a stream. Streams used in the Java programming language, including input and output streams, are known in the art and an explanation, which is incorporated herein by reference, appears in, for example, a text entitled �The Java Tutorial: Object-Oriented
Programming for the Internet,� pp. 325-53, by Mary Campione and Kathy Walrath, Addison-Wesley, 1996.
The response may include information so that client machine 601 can reconstruct the stub object in smart proxy 604. When a set of object types is limited and is the same on machines 601 and 606, a receiving machine typically requires the object's state and a description of its type because the object's code is already present on all network machines. Alternatively, machine 606 uses RMI 607 to provide more flexibility, allowing code to be moved when necessary along with information or the object's state and type. Additionally, a transmitting machine may include in the object an identification of the type of object transmitted, the data constituting the state of the object, and a network-accessible location in the form of a URL for code that is associated with the object. URLs are known in the art and an explanation, which is incorporated herein by reference, appears in, for example, a text entitled �The Java Tutorial: Object-Oriented Programming for the Internet,� pp. 494-507, by Mary Campione and Kathy Walrath, Addison-Wesley, 1996.
When creating stub object 605, RMI 602 does not necessarily know that the stub is itself a smart proxy 604. Smart proxy 604 may perform processing at client machine 601 before or after response 610 and may supply all processing without resorting to call 609 to the object for which the proxy acts. Therefore, smart proxy 604 may perform all processing locally when client machine 601 makes a call or request 611 to invoke a method on smart proxy 604. These proxies are downloadable by the same methods as disclosed in U.S. patent application Ser. No. 08/950,756, filed on Oct. 15, 1997, and entitled �Deferred Reconstruction of Objects and Remote Loading in a Distributed System,� which is incorporated herein by reference.
Transmission of Smart Proxies FIG. 7 is a flow chart of a process 700 for downloading and using smart proxies within, for example, the distributed network shown in FIG. 6. A client machine transmits a call or request for a particular object (step 701), and a server machine receives the call (step 702). In response, the server machine returns a smart proxy with an embedded stub (step 703), and the proxy acts as a representation of the requested object. After receiving the smart proxy, the client machine invokes a method on it (step 704). According to the code within the smart proxy, the client machine containing the smart proxy determines if preprocessing is required (step 705). If so, the processing is performed locally by the client machine using the smart proxy (step 706).
Patent CitationsCited PatentFiling datePublication dateApplicantTitleUS4491946Mar 9, 1981Jan 1, 1985Gould Inc.Multi-station token pass communication systemUS4713806Mar 14, 1986Dec 15, 1987American Telephone And Telegraph Company, At&T Bell LaboratoriesCommunication system control arrangementUS4809160Oct 28, 1985Feb 28, 1989Hewlett-Packard CompanyPrivilege level checking instruction for implementing a secure hierarchical computer systemUS4823122Aug 24, 1987Apr 18, 1989Digital Equipment CorporationLocal area network for digital data processing systemUS4939638Feb 23, 1988Jul 3, 1990Stellar Computer Inc.Time sliced vector processingUS4956773Mar 28, 1989Sep 11, 1990Hitachi, Ltd.System and method of generating a source program from inputted schematic informationUS5088036Jan 17, 1989Feb 11, 1992Digital Equipment CorporationReal time, concurrent garbage collection system and methodUS5109486Jan 6, 1989Apr 28, 1992Motorola, Inc.Distributed computer system with network and resource status monitoringUS5187787Jul 27, 1989Feb 16, 1993Teknekron Software Systems, Inc.Apparatus and method for providing decoupling of data exchange details for providing high performance communication between software processesUS5218699Jun 8, 1992Jun 8, 1993International Business Machines CorporationRemote procedure calls in heterogeneous systemsUS5257369Oct 22, 1990Oct 26, 1993Skeen Marion DApparatus and method for providing decoupling of data exchange details for providing high performance communication between software processesUS5293614Apr 8, 1991Mar 8, 1994Texas Instruments IncorporatedSystem and method for hard real-time garbage collection requiring a write barrier but no read barrierUS5297283Oct 16, 1992Mar 22, 1994Digital Equipment CorporationObject transferring system and method in an object based computer operating systemUS5307490Aug 28, 1992Apr 26, 1994Tandem Computers, Inc.Method and system for implementing remote procedure calls in a distributed computer systemUS5311591Jun 3, 1993May 10, 1994Fischer Addison MComputer system security method and apparatus for creating and using program authorization information data structuresUS5339435Nov 24, 1993Aug 16, 1994Hewlett-Packard CompanyHeterogenous software configuration management apparatusUS5386568Dec 1, 1992Jan 31, 1995Yamaha CorporationApparatus and method for linking software modulesUS5390328Mar 30, 1992Feb 14, 1995International Business Machines CorporationData processing system and method for providing notification in a central processor of state changes for shared data structure on external storageUS5423042Oct 23, 1992Jun 6, 1995International Business Machines CorporationRemote procedure executionUS5440744Nov 15, 1994Aug 8, 1995Digital Equipment CorporationMethods and apparatus for implementing server functions in a distributed heterogeneous environmentUS5448740Oct 1, 1993Sep 5, 1995International Business Machines CorporationGeneration of a user interface code from a corresponding declarative language programUS5452459Jan 8, 1993Sep 19, 1995Digital Equipment CorporationMethod and apparatus for allocating server access in a distributed computing environmentUS5455952Mar 28, 1995Oct 3, 1995Cardinal Vision, Inc.Method of computing based on networks of dependent objectsUS5471629Jul 20, 1992Nov 28, 1995Hewlett-Packard CompanyMethod of monitoring changes in an object-oriented database with tuned monitorsUS5475792Feb 24, 1994Dec 12, 1995International Business Machines CorporationTelephony channel simulator for speech recognition applicationUS5475817Nov 30, 1993Dec 12, 1995Hewlett-Packard CompanyObject oriented distributed computing system processing request to other object model with code mapping by object managers located by manager of object managersUS5481721Oct 31, 1994Jan 2, 1996Next Computer, Inc.Method for providing automatic and dynamic translation of object oriented programming language-based message passing into operation system message passing using proxy objectsUS5504921May 16, 1994Apr 2, 1996Cabletron Systems, Inc.Network management system using model-based intelligenceUS5511197Nov 29, 1993Apr 23, 1996Microsoft CorporationMethod and system for network marshalling of interface pointers for remote procedure callsUS5524244Feb 15, 1994Jun 4, 1996Logic Devices, Inc.System for dividing processing tasks into signal processor and decision-making microprocessor interfacing therewithUS5548726Dec 17, 1993Aug 20, 1996Taligeni, Inc.System for activating new service in client server network by reconfiguring the multilayer network protocol stack dynamically within the server nodeUS5553282Dec 9, 1994Sep 3, 1996Taligent, Inc.Software project history database and method of operationUS5555367Sep 30, 1994Sep 10, 1996General Electric CompanyMethod and system for generating computer programs for queries formed by manipulating object-oriented diagramsUS5555427 *Dec 21, 1990Sep 10, 1996Fujitsu LimitedDistributed processing in a system of computers at terminals connected by a communication networkUS5557798Dec 21, 1990Sep 17, 1996Tibco, Inc.Apparatus and method for providing decoupling of data exchange details for providing high performance communication between software processesUS5560003Dec 21, 1992Sep 24, 1996Iowa State University Research Foundation, Inc.System and hardware module for incremental real time garbage collection and memory managementUS5561785Oct 29, 1992Oct 1, 1996International Business Machines CorporationSystem for allocating and returning storage and collecting garbage using subpool of available blocksUS5577231Dec 6, 1994Nov 19, 1996International Business Machines CorporationStorage access authorization controls in a computer system using dynamic translation of large addressesUS5594921Dec 17, 1993Jan 14, 1997Object Technology Licensing Corp.Authentication of users with dynamically configurable protocol stackUS5603031Jul 8, 1993Feb 11, 1997General Magic, Inc.System and method for distributed computation based upon the movement, execution, and interaction of processes in a networkUS5617537Oct 3, 1994Apr 1, 1997Nippon Telegraph And Telephone CorporationMessage passing system for distributed shared memory multiprocessor system and message passing method using the sameUS5628005Jun 7, 1995May 6, 1997Microsoft CorporationSystem and method for providing opportunistic file access in a network environmentUS5640564Jun 6, 1995Jun 17, 1997Sun Microsystems, Inc.Computer systemUS5644768Dec 9, 1994Jul 1, 1997Borland International, Inc.In a client-server database systemUS5652888Jun 7, 1995Jul 29, 1997Microsoft CorporationSystem for interconnecting software components in an object oriented programming environment using a separate editor object for each run-time object instantiated for each selected componentUS5655148Dec 13, 1994Aug 5, 1997Microsoft CorporationMethod for automatically configuring devices including a network adapter without manual intervention and without prior configuration informationUS5659751Dec 3, 1992Aug 19, 1997Apple Computer, Inc.Apparatus and method for dynamic linking of computer software componentsUS5671225Sep 1, 1995Sep 23, 1997Digital Equipment CorporationDistributed interactive multimedia service systemUS5675796Aug 16, 1996Oct 7, 1997Microsoft CorporationConcurrency management component for use by a computer program during the transfer of a messageUS5680573Jul 12, 1994Oct 21, 1997Sybase, Inc.Method of buffering data objects in a databaseUS5680617May 16, 1994Oct 21, 1997Apple Computer, Inc.Computer-human interface which provides for user customization of object behaviorUS5684955Jun 30, 1992Nov 4, 1997Siemens AktiengesellschaftProcess for distributing an object-oriented program over a plurality of operating system processes of a computer systemUS5689709Feb 1, 1996Nov 18, 1997Microsoft CorporationMethod and system for invoking methods of an objectUS5706435Jul 26, 1996Jan 6, 1998Panasonic Technologies, Inc.System for maintaining data coherency in cache memory by periodically broadcasting a single invalidation report from server to clientsUS5706502Mar 25, 1996Jan 6, 1998Sun Microsystems, Inc.Internet-enabled portfolio manager system and methodUS5724588Jun 7, 1995Mar 3, 1998Microsoft CorporationMethod and system for network marshalling of interface pointers for remote procedure callsUS5727145Jun 26, 1996Mar 10, 1998Sun Microsystems, Inc.In a distributed objectUS5737607Sep 28, 1995Apr 7, 1998Sun Microsystems, Inc.Computer systemUS5745678Aug 18, 1997Apr 28, 1998International Business Machines CorporationMethod and system for the secured distribution of multimedia titlesUS5745695Jan 16, 1996Apr 28, 1998Motorola Inc.Radio system with suspension of packet data service during non-data service connectionUS5745703Jul 18, 1995Apr 28, 1998Nec Research Institute, Inc.Transmission of higher-order objects across a network of heterogeneous machinesUS5745755Apr 19, 1996Apr 28, 1998Covey; Peter J.Method for creating and maintaining a database for a dynamic enterpriseUS5748897 *Jul 2, 1996May 5, 1998Sun Microsystems, Inc.Apparatus and method for operating an aggregation of server computers using a dual-role proxy server computerUS5754849Jan 30, 1996May 19, 1998Wayfarer Communications, Inc.Self-describing object providing dynamic manipulation of heterogeneous data values and semantic identity between memory and transmission representationsUS5757925Jul 23, 1996May 26, 1998Faybishenko; YaroslavSecure platform independent cross-platform remote execution computer system and methodUS5761656Jun 26, 1995Jun 2, 1998Netdynamics, Inc.Interaction between databases and graphical user interfacesUS5764897Oct 28, 1996Jun 9, 1998Sun Microsystems, Inc.In a distributed computing systemUS5768532Jun 17, 1996Jun 16, 1998International Business Machines CorporationMethod and distributed database file system for implementing self-describing distributed file objectsUS5774551Aug 7, 1995Jun 30, 1998Sun Microsystems, Inc.Computer systemUS5778187May 9, 1996Jul 7, 1998Netcast Communications Corp.Multicasting method and apparatusUS5778228Aug 16, 1994Jul 7, 1998International Business Machines CorporationMethod and system for transferring remote procedure calls and responses over a networkUS5778368May 3, 1996Jul 7, 1998Telogy Networks, Inc.For storing and retrieval of real-time embedded softwareUS5787425Oct 1, 1996Jul 28, 1998International Business Machines CorporationObject-oriented data mining framework mechanismUS5787431Dec 16, 1996Jul 28, 1998Borland International, Inc.Database development system with methods for java-string reference lookups of column namesUS5790548Apr 18, 1996Aug 4, 1998Bell Atlantic Network Services, Inc.Universal access multimedia data networkUS5802367Jan 16, 1996Sep 1, 1998Microsoft CorporationMethod and system for transparently executing code using a surrogate processUS5808911Jun 19, 1997Sep 15, 1998Sun Microsystems, Inc.Computer systemUS5809507Jul 1, 1996Sep 15, 1998Sun Microsystems, Inc.Method and apparatus for storing persistent objects on a distributed object network using a marshaling frameworkUS5812819Jun 5, 1995Sep 22, 1998Shiva CorporationRemote access apparatus and method which allow dynamic internet protocol (IP) address managementUS5813013Jun 6, 1996Sep 22, 1998Microsoft CorporationRepresenting recurring eventsUS5815149Feb 19, 1997Sep 29, 1998Unisys Corp.In a computing systemUS5815709Apr 23, 1996Sep 29, 1998San Microsystems, Inc.Fingerprint generating systemUS5815711Nov 6, 1995Sep 29, 1998Hitachi, Ltd.Apparatus and method for program generationUS5818448 *Jul 2, 1996Oct 6, 1998Sun Microsystems, Inc.Apparatus and method for identifying server computer aggregation topologiesUS5829022Apr 15, 1996Oct 27, 1998Fuji Xerox Co., Ltd.Method and apparatus for managing coherency in object and page cachesUS5832219Dec 20, 1995Nov 3, 1998Object Technology Licensing Corp.Distributed object networking serviceUS5832529Oct 11, 1996Nov 3, 1998Sun Microsystems, Inc.Methods, apparatus, and product for distributed garbage collectionUS5832593Apr 22, 1997Nov 10, 1998Minnesota Mining And Manufacturing CompanySplice head for insulated telecommunication wiresUS5835737May 10, 1996Nov 10, 1998Apple Computer, Inc.Method and apparatus for arbitrating access to selected computer system devicesUS5842018Jun 6, 1995Nov 24, 1998Microsoft CorporationMethod and system for referring to and binding to objects using identifier objectsUS5844553Mar 29, 1996Dec 1, 1998Hewlett-Packard CompanyMechanism to control and use window events among applications in concurrent computingUS5845129Mar 22, 1996Dec 1, 1998Philips Electronics North America CorporationMethod for use in controlling memory accessUS5860004Jul 3, 1996Jan 12, 1999Sun Microsystems, Inc.Computer-implemented methodUS5860153Nov 22, 1995Jan 12, 1999Sun Microsystems, Inc.Memory efficient directory coherency maintenanceUS5864862Sep 30, 1996Jan 26, 1999Telefonaktiebolaget Lm Ericsson (Publ)System and method for creating reusable components in an object-oriented programming environmentUS5864866Mar 26, 1997Jan 26, 1999International Business Machines CorporationApparatus and method for providing externalization in an object-oriented environmentUS5872928May 25, 1995Feb 16, 1999Cabletron Systems, Inc.Method and apparatus for defining and enforcing policies for configuration management in communications networksUS5872973 *Oct 26, 1995Feb 16, 1999Viewsoft, Inc.Method for managing dynamic relations between objects in dynamic object-oriented languagesUS5875335Sep 30, 1996Feb 23, 1999Apple Computer, Inc.Parameter marshaling techniques for dynamic object-oriented programming languagesUS5878411Jun 27, 1997Mar 2, 1999International Business Machines CorporationDependent object class and subclass mapping to relational data storeUS5884024Dec 9, 1996Mar 16, 1999Sun Microsystems, Inc.Secure DHCP serverUS5884079Jun 12, 1997Mar 16, 1999Yamatake-Honeywell Co., Ltd.Design part reusing method in configuration toolUS5887134Jun 30, 1997Mar 23, 1999Sun MicrosystemsSystem and method for preserving message order while employing both programmed I/O and DMA operationsUS6026414 *Mar 5, 1998Feb 15, 2000International Business Machines CorporationSystem including a proxy client to backup files in a distributed computing environmentUS6223217 *Oct 26, 1998Apr 24, 2001Object Technology Licensing CorporationDistributed object networking serviceUS6260076 *Nov 12, 1997Jul 10, 2001Ricoh Company, Ltd.Method of using an object-oriented communication system with support for multiple remote machine types* Cited by examinerNon-Patent CitationsReference1Agha et al., Actorspaces: An Open Distributed Programming Paradigm, University of Illinois, Report No. UIUCDCS-R-92-1766, Open Systems Laboratory TR No. 8, Nov. 1992, pp. 1-12.2Ahmed et al., A Program Building Tool for Parallel Applications, Yale University, Dec. 1, 1993, pp. 1-23.3Aldrich et al., "Providing Easier Access to Remote Objects in Client-Server Systems," System Sciences, 1998, Proceedings of the 31st Hawaii Internat'l. Conference, Jan. 6-9, 1998, pp. 366-375.4Aldrich et al., "Providing Easier Access to Remote Objects in Distributed Systems," Calif. Institute of Technology, www.cs.caltech.edu/%7Ejedi/paper/jedipaper.html, Nov. 21, 1997.5Alexander, et al., "Active Bridging", Proceedings of the ACM/SIGCOMM'97 Conference, Cannes, France, 9/97.6Anderson et al., Persistent Linda: Linda + Transactions + Query Processing, Proceedings of the 13th Symposium on Fault Tolerant Systems, 1994, pp. 93-109.7Anonymous: "Change-Notification Service for Share Files", IBM Technical Disclosure Bulletin, vol. 36, No. 8, pp. 77-82, Aug. 1993, XP002108713, New York, US.8Anonymous: "Resource Preemption for Priority Scheduling." Nov. 1973. IBM Technical Disclosure Bulletin, vol. 16, No. 6, p. 1931 XP002109435 New York, US.9Beech et al., "Object Databases as Generalizations of Relational Databases," Computer Standards & Interfaces, vol. 13, Nos. 1/3, pp. 221-230, (Jan. 1991) Amsterdam, NL.10Bertino et al., "Object-Oriented Database Management Systems: Concepts and Issues," Computer, vol. 24, No. 4, pp. 33-47, (Apr. 1991), Los Alamitos, CA.11Betz, Mark; "Interoperable objects: laying the foundation for distributed object computing"; Dr. Dobb's Journal, vol. 19, No. 11, p. 18(13); (Oct. 1994).12Bevan, D.I., "An Efficient Reference Counting Solution To The Distributed Garbage Collection Problem", Parall Computing, NL, Elsevier Publishers, Amsterdam, vol. 9, No. 2, pp. 179-192, Jan. 1989.13Birrell et al., "Implementing Remote Procedure Calls", ACM Transactions on Computer Systems, vol. 2, No. 1, Feb. 1984, pp. 39-59.14Birrell et al., Distributed Garbage Collection for Network Objects, DEC SRC Research Report 116, Dec. 15, 1993.15Birrell et al., Grapevine: An Exercise in Distributed Computing, Communications of the ACM, vol. 25, No. 4, Apr. 1982, pp. 260-274.16Birrell et al., Implementing Remote Procedure Calls, ACM Transactions on Computer Systems, vol. 2, No. 1, Feb. 1984, pp. 39-59.17Birrell et al., Network Objects, DEC SRC Research Report 115, Feb. 28, 1994.18Burns et al., "An Analytical Study of Opportunistic Lease Renewal," Distributed Computing Systems, 21st International Conference, pp. 146-153, Apr. 2000.19Cannon et al., Adding Fault-Tolerant Transaction Processing to LINDA, Software-Practice and Experience, vol. 24(5), May 1994, pp. 449-466.20Cardelli, Obliq, A lightweight language for network objects, Nov. 5, 1993, pp. 1-37.21Carriero et al, Distributed Data Structures in Linda, Yale Research Report YALEU/DCS/RR-438, Nov. 1985.22Carriero et al., Distributed Data Structures in Linda, Principals of Programming Language, 1986, pp. 1-16.23Chung et al., A "Tiny' Pascal Compiler: Part 1: The P-Code Interpreter, BYTE Publications, Inc., Sep. 1978.24Chung et al., A "Tiny' Pascal Compiler: Part 2: The P-Compiler, BYTE Publications, Inc., Oct. 1978.25Chung et al., A �Tiny� Pascal Compiler: Part 1: The P-Code Interpreter, BYTE Publications, Inc., Sep. 1978.26Chung et al., A �Tiny� Pascal Compiler: Part 2: The P-Compiler, BYTE Publications, Inc., Oct. 1978.27Coulouris et al., Distributed Systems Concepts and Designs, Second Edition, Addison-Wesley, 1994.28Dave A et al: "Proxies, Application Interface, and Distributed Systems", Proceedings International Workshop on Object Orientation in Operating Systems, Sep. 24, 1992, pp. 212-220.29Deux O et al: "The 02 System" Communications of the Association for Computing Machinery, vol. 34, No. 10, Oct. 1, 1991, pp. 34-48.30Dijkstra, Self-stabilizing Systems in Spite of Distributed Control, Communications of the ACM, vol. 17, No. 11, Nov. 1974, pp. 643-644.31Dolev et al., On the Minimal Synchronism Needed for Distributed Consensus, Journal of the ACM, vol. 34, No. 1, Jan. 1987, pp. 77-97.32Dollimore et al., "The Design of a System for Distributing Shared Objects," The Computer Journal, No. 6, Cambridge, GB, Dec. 1991.33Dourish, A Divergence-Based Model of Synchrony and Distribution in Collaborative Systems, Xerox Technical Report EPC-1194-102, 1994, pp. 1-10.34Drexler, K. Eric, et al., "Incentive Engineering for Computational Resource Management," The Ecology of Computation, Elsevier Science Publishers B.V., 1988, pp. 231-266.35Droms, R., "RFC 1541 Dynamic Host Configuration Protocol", HTTP://WWW.CIS.OHIO-STATE.EDU/HTBIN/RFC/RFC1541.HTML, Oct. 1993, pp. 1-33.36Emms J: "A Definition of an Access Control Systems Language" Computer Standards and Interfaces, vol. 6, No. 4, Jan. 1, 1987, pp. 443-454.37Fleisch et al., "High Performance Distributed Objects Using Distributed Shared Memory & Remote Method Invocation," System Sciences, 1998, Proceedings of the 31st Hawaii Internat'l. Conference, Jan. 6-9, 1998, pp. 574-578.38Gelernter et al., Parallel Programming in Linda, Yale University, Jan. 1985, pp. 1-21.39Gelernter, Generative Communication in Linda, ACM Transactions on Programming Languages and Systems, vol. 7, No. 1, Jan. 1985, pp. 80-112.40Gosling et al., "The Java (TM) Language Specification", Addison-Wesley, 1996.41Gottlob et al., "Extending Object-Oriented Systems with Roles," ACM Transactions on information systems, vol. 14, No. 3, pp. 268-296 (Jul. 1996).42Gray et al., "Leases: An Efficient Fault-Tolerant Mechanism for Distributed File Cache Consistency," Proceedings of the 12th ACM Symposium on Operating Systems Principles, pp. 202-210, 1989.43Gray et al., Leases: An Efficient Fault-Tolerant Mechanism for Distributed File Cache Consistency, ACM, 1989, pp. 202-210.44Guth, Rob: "JavaOne: Sun to Expand Java Distributed Computing Effort", "HTTP://WWW.SUNWORLD.COM/SWOL-02-1998/SWOL-02-SUNSPOTS.HTML," XP-002109935, p. 1, Feb. 20, 1998.45Guyennet et al., "A New Consistency Protocol Implemented in the CAliF System," IEEE, 1094-7256/97, pp. 82-87, 1997.46Guyennet et al., "Distributed Shared Memory Layer for Cooperative Work Applications," IEEE, 0742-1303/97, pp. 72-78, 1997.47Hamilton et al., "Subcontract: a flexible base for distributed programming"; Proceedings of 14th Symposium of Operating System Principles; (Dec. 1993).48Hamilton, Java and the Shift to Net-Centric Computing Computer, Aug. 1996, pp. 31-39.49Harris et al., Proposal for a General Java Proxy Class for Distributed Systems and Other Uses, Netscape Communications Corp., Jun. 25, 1997.50Hartman, J., Manber, U., et al., Liquid Software: A new paradigm for networked systems, Technical Report 96-11, Department of Comp. Sci., Univ. of Arizona, 6/96.51Hoshi et al., "Allocation of the Cross-Connect Function in Leased Circuit Networks," 1992, ICC'92, conference record, SUPERCOMM/ICC '02, D a New World of Communications, IEEE International Conference, pp. 1408-1412.52Howard et al., Scale and Performance in a Distributed File System, ACM Transactions on Computer Systems, vol. 6, No. 1, Feb. 1988, pp. 51-81.53Hunt, N., "IDF: A Graphical Data Flow Programming Language for Image Processing and Computer Vision", Proceedings of the International Conference on Systems, Man, and Cybernetics, Los Angeles, Nov. 4-7, pp. 351-360, (1990).54IBM (TM) Technical Disclosure Bulletin, "Object Location Algorithm," vol. 36, No. 09B, pp. 257-258, Sep. 1993.55IBM (TM) Technical Disclosure Bulletin, "Retrieval of Qualified Variables Using Extendible Hashing," vol. 36, No. 12, pp. 301-303, Dec. 1993.56IBM Technical Disclosure Bulletin, "Local Network Monitoring to Populate Access Agent Directory," vol. 36, No. 09A, pp. 403-405, Sep. 1993.57IBM: Somobjects Developer Toolkit Users Guide, Version 2.1, "Chapter 6 Distributed SOM (DSOM)," pp 6-1-6-90, Oct. 1994.58Jaworski, Java 1.1 Developer's Guide, Sams.net, 1997.59Jones, Richard, et al., "Garbage Collection: Algorithms for Automatic Dynamic Memory Management," pp. 165-175, John Wiley & Sons, 1996.60Kambhatla et al., Recovery with Limited Replay: Fault-Tolerant Processes in Linda, Oregon Graduate Institute, Technical Report CSIE 90-019, Sep. 1990, pp. 1-16.61Kay, Michael H. et al., "An Overview of the Raleigh Object-Oriented Database System", ICL Technical Journal, vol. 7, No. 4, pp. 780-798, (Nov. 1991), Oxford, GB.62Kougiouris et al.; "Support for Space Efficient Object Invocation in Spring"; (Sep. 1994).63Krasner, The Smalltalk-80 Virtual Machine, BYTE Publications Inc., Aug. 1991, pp. 300-320.64Lamport et al., The Byzantine Generals Problem, ACM Transactions on Programming Languages and Systems, vol. 4, No. 3, Jul. 1982, pp. 382-401.65Linda Database Search, Jul. 20, 1995, pp. 1-68.66Lindholm et al., "The Java (TM) Virtual Machine Specification", Addison Wesley, 1996.67Liskov et al., Distributed Object Management in Thor, International Workshop on Distributed Object Management, 1992, pp. 12.68McDaniel, An Analysis of a Mesa Instruction Set, Xerox Corporation, May 1982.69McGrath, "Discovery and Its Discontents: Discovery Protocols for Ubiquitous Computing," Presented at Center for Excellence in Space Data and Information Science, NASA Goddard Space Flight Center, Apr. 5, 2000.70Mitchell et al., Mesa Language Manual, Xerox Corporation.71Mitchell et al.; "An Overview of the Spring System"; (Feb. 1994).72Mullender, Distributed Systems, Second Edition, Addison-Wesley, 1993.73Mummert et al., Long Term Distributed File Reference Tracing: Implementation and Experience, Carnegie Mellon University School of Computer Science, Nov. 1994, pp. 1-28.74MUX-Elektronik, Java 1.1 Interactive Course, www.IIs.se/~mux/javaic.html, 1995.75MUX-Elektronik, Java 1.1 Interactive Course, www.IIs.se/�mux/javaic.html, 1995.76Operating Systems Review, ACM Press, vol. 27, No. 5, Dec. 1993, pp. 217-230.77Orfali R. et al., "The Essential Distributed Objects Survival Guide," Chapter 11: Corba Commercial ORBs, John Wiley & Sons, Inc., (1996).78Ousterhout et al., The Sprite Network Operating System, Computer, IEEE, Feb. 1988, pp. 23-36.79Pier, A Retrospective on the Dorado, A High-Performance Personal Computer, IEEE Conference Proceedings, The 10th Annual international Symposium on Computer Architecture, 1983.80Pier, A Retrospective on the Dorado, A High-Performance Personal Computer, Xerox Corporation, Aug. 1983.81Pinakis, Using Linda as the Basis of an Operating System Microkernel, University of Western Australia, Department of Computer Science, Aug. 1993, pp. 1-165.82Remote Method Invocation Specification, Sun Microsystems, Inc., (1997), http://java.sun.com/products/jdk/1.1/docs/guide/rmi/spec/rmiTOC.doc.html.83Riggs Roger et al., "Picking State in the Java (TM) System," USENIX Association Conference on Object-Oriented Technologies and Systems, XP-002112719, Jun. 17-21, 1996, pp. 241-250.84Rosenberry et al., "Understanding DCE"; Chapters 1-3, 6; (1992).85Sharrott et al., ObjectMap: Integrating High Performance Resources into a Distributed Object-oriented Environment, ICODP, 1995.86Stevenson, "Token-Based Consistency of Replicated Servers," IEEE, CH2686-4/89/0000/0179, pp. 179-183, 1989.87 *Sun Microsystems, Java Remote Method Invocation Specification, Feb. 10, 1997, pp. 18-23.*88Thompson, Regular Expression Search Algorithm, Communications of the ACM, vol. II, No. 6, p. 149 et seq., Jun. 1968.89Transparent Network Computing, Locus Computing Corporation, Jan. 5, 1995.90Venners, B., "Jini Technology, Out of the Box", Javaworld, Online!, pp 1-4, Dec. 1998.91Waldo J et al: "Events in an RPC based distributed system" Proceedings of the 1995 USENIX Technical Conference, Proceedings USENIX Winter 1995 Technical Conference, New Orleans, LA. USA, Jan. 16-20, 1995, pp. 131-142.92Wilson, P.R., et al., "Design of the Opportunistic Garbage Collector," Proceedings of the Object Oriented Programming Systems Languages And Applications Conference, New Orleans, vol. 24, No. 10, Oct. 1989.93Wollrath et al., A Distributed Object Model for the Java(TM) System, USENIX Association, Conference on Object-Oriented Technologies and Systems, Jun. 17-21, 1996.94Wollrath et al., A Distributed Object Model for the Java� System, USENIX Association, Conference on Object-Oriented Technologies and Systems, Jun. 17-21, 1996.95Wu, Xuequn, "A Type system for an Object-Oriented Database System," Proceedings of the International Computer Software and Applications Conference (COMPSAC), pp. 333-338, Sep. 11-13, 1991, Tokyo, Japan.96Yemini, Y. and S. da silva, "Towards Programmable Networks" IFIP/IEEE International Workshop on Distributed Systems: Operations and Management, L'Aquila, Italy, 10/96.97Yin et al., "Using Leases to Support Server Driven Consistency in Large-Scale Systems," Computer Services Department, University of Texas at Austin, pp. 285-294, May 26-28, 1998.98Yin et al., "Volume Leases for Consistency in Large-Scale Systems," IEEE Transactions on Knowledge & Data Engineering, vol. 11, No. 4, pp. 563-576, Jul./Aug. 1999.* Cited by examinerReferenced byCiting PatentFiling datePublication dateApplicantTitleUS6516427 *Nov 5, 1999Feb 4, 2003Hewlett-Packard CompanyNetwork-based remote diagnostic facilityUS6728788 *Dec 16, 1999Apr 27, 2004International Business Machines CorporationMethod and system for converting a remote procedure call to a local procedure call when the service is on the same device as the calling clientUS6851118 *Jun 27, 2000Feb 1, 2005Sun Microsystems, Inc.Remote object accessUS6920444 *Sep 26, 2001Jul 19, 2005Sun Microsystems, Inc.Accessing relational database using an object-oriented languageUS6944827 *Jul 30, 2001Sep 13, 2005Appeon CorporationSystem and method of data transmission for computer networks utilizing HTTPUS6952715Dec 12, 2003Oct 4, 2005Amazon.Com, Inc.Universal protocol for enabling a device to discover and utilize the services of another deviceUS6980997 *Jun 28, 2001Dec 27, 2005Microsoft CorporationSystem and method providing inlined stubUS7174380 *Oct 11, 2001Feb 6, 2007Canon Kabushiki KaishaCommunication terminal, service providing system, service use method, storage medium, and programUS7340748 *Dec 21, 2000Mar 4, 2008GemplusAutomatic client proxy configuration for portable servicesUS7546611 *Dec 13, 2004Jun 9, 2009Elecronics And Telecommunications Research InstituteDriver agent device for supporting remote device driver development environment in embedded system and operation method thereofUS7549151Jun 3, 2005Jun 16, 2009Qnx Software SystemsFast and memory protected asynchronous message scheme in a multi-process and multi-thread environmentUS7647597Jul 13, 2005Jan 12, 2010Microsoft CorporationTransparent and sub-classable proxiesUS7680096Oct 28, 2005Mar 16, 2010Qnx Software Systems Gmbh & Co. KgSystem for configuring switches in a networkUS7680762Dec 5, 2005Mar 16, 2010Microsoft CorporationSystem and method providing inlined stubUS7743149 *Mar 7, 2000Jun 22, 2010Nortel Networks LimitedSIP messages carrying executable computer software codeUS7765310 *Jul 22, 2005Jul 27, 2010International Business Machines CorporationOpaque cryptographic web application data protectionUS7840682Jun 3, 2005Nov 23, 2010QNX Software Systems, GmbH & Co. KGDistributed kernel operating systemUS7881957Sep 29, 2006Feb 1, 2011Amazon Technologies, Inc.Identifying tasks for task performers based on task subscriptionsUS7885844Sep 29, 2006Feb 8, 2011Amazon Technologies, Inc.Automatically generating task recommendations for human task performersUS7886312 *Nov 27, 2008Feb 8, 2011International Business Machines CorporationCommunicating with remote objects in a data processing networkUS7899694Jun 30, 2006Mar 1, 2011Amazon Technologies, Inc.Generating solutions to problems via interactions with human respondersUS7945469Nov 16, 2004May 17, 2011Amazon Technologies, Inc.Providing an electronic marketplace to facilitate human performance of programmatically submitted tasksUS7945470Sep 29, 2006May 17, 2011Amazon Technologies, Inc.Facilitating performance of submitted tasks by mobile task performersUS8005697Jan 17, 2006Aug 23, 2011Amazon Technologies, Inc.Performing automated price determination for tasks to be performedUS8024211Mar 31, 2006Sep 20, 2011Amazon Technologies, Inc.Automatically generating assessments of qualification relevance and qualification issuer credibilityUS8032657Dec 27, 2005Oct 4, 2011Microsoft CorporationPreservation of type information between a client and a serverUS8046250Sep 29, 2006Oct 25, 2011Amazon Technologies, Inc.Facilitating performance by task performers of language-specific tasksUS8078716Oct 25, 2010Dec 13, 2011Qnx Software Systems LimitedDistributed kernel operating systemUS8121879Feb 19, 2010Feb 21, 2012Amazon Technologies, Inc.Automatically generating assessments of qualification relevance and qualification issuer credibilityUS8121888Dec 14, 2007Feb 21, 2012Amazon Technologies, Inc.Facilitating improvement of results of human performance of tasksUS8170897Sep 26, 2006May 1, 2012Amazon Technologies, Inc.Automated validation of results of human performance of tasksUS8219432Jun 10, 2008Jul 10, 2012Amazon Technologies, Inc.Automatically controlling availability of tasks for performance by human usersUS8255258Dec 22, 2010Aug 28, 2012Amazon Technologies, Inc.Identifying tasks for task performers based on task subscriptionsUS8306840Jul 27, 2009Nov 6, 2012Amazon Technologies, Inc.Providing an electronic marketplace to facilitate human performance of programmatically submitted tasksUS8386302Jan 26, 2012Feb 26, 2013Amazon Technologies, Inc.Facilitating improvement of results of human performance of tasksUS8386586Nov 9, 2011Feb 26, 2013Qnx Software Systems LimitedDistributed kernel operating systemUS8392235Jul 20, 2011Mar 5, 2013Amazon Technologies, Inc.Performing automated price determination for tasks to be performedUS8458010Oct 13, 2009Jun 4, 2013Amazon Technologies, Inc.Monitoring and enforcing price parityUS8498892Mar 26, 2012Jul 30, 2013Amazon Technologies, Inc.Automated validation of results of human performance of tasksUS8667184Jun 3, 2005Mar 4, 2014Qnx Software Systems LimitedDistributed kernel operating systemUS8694350Dec 30, 2010Apr 8, 2014Amazon Technologies, Inc.Automatically generating task recommendations for human task performersEP1924924A1 *Aug 22, 2006May 28, 2008Microsoft CorporationPreservation of type information between a client and a serverWO2007032870A1Aug 22, 2006Mar 22, 2007Microsoft CorpPreservation of type information between a client and a server* Cited by examinerClassifications U.S. Classification719/330, 719/315International ClassificationG06F9/46Cooperative ClassificationG06F9/547, G06F9/548European ClassificationG06F9/54P, G06F9/54P1Legal EventsDateCodeEventDescriptionOct 23, 2013FPAYFee paymentYear of fee payment: 12Oct 21, 2009FPAYFee paymentYear of fee payment: 8Oct 28, 2005FPAYFee paymentYear of fee payment: 4Jun 23, 1998ASAssignmentOwner name: SUN MICROSYSTEMS, INC., CALIFORNIAFree format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:ARNOLD, KENNETH C.R.C.;WALDO, JAMES H.;SHEIFLER, ROBERT;AND OTHERS;REEL/FRAME:009286/0164Effective date: 19980609RotateOriginal ImageGoogle Home - Sitemap - USPTO Bulk Downloads - Privacy Policy - Terms of Service - About Google Patents - Send FeedbackData provided by IFI CLAIMS Patent Services©2012 Google