throbber
(12) United States Patent
`Arnold et al.
`
`USOO6393497B1
`(10) Patent No.:
`US 6,393,497 B1
`(45) Date of Patent:
`May 21, 2002
`
`(54) DOWNLOADABLE SMART PROXIES FOR
`PERFORMING PROCESSING ASSOCATED
`WITH A REMOTE PROCEDURE CALL INA
`DISTRIBUTED SYSTEM
`(75) Inventors: Kenneth C. R. C. Arnold, Lexington;
`James H. Waldo, Dracut; Robert
`Scheifler, Somerville; Ann M.
`Wollrath, Groton, all of MA (US)
`(73) Assignee: Sun Microsystems, Inc., Palo Alto, CA
`(US)
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 0 days.
`
`(*) Notice:
`
`(21) Appl. No.: 09/044,930
`(22) Filed:
`Mar 20, 1998
`(51) Int. Cl." ................................................ G06F 13/00
`(52)
`... 709/330; 709/315
`(58) Field of Search ................................. 709/300, 303,
`709/310,315, 330
`
`a 1 vs
`
`EP
`E.
`EP
`
`2
`
`2
`
`C a
`
`et
`
`al.
`
`5,297.283 A 3/1994 Kelly, Jr. et al.
`5,307.490 A 4/1994 Davidson
`3. A SEC ES tal
`5,386,568 A 1/1995 Wold et al.
`(List continued on next page.)
`FOREIGN PATENT DOCUMENTS
`O3OO 516 A2
`1/1989
`s 3. 3. A.
`E.
`O 472 874 A1
`3/1992
`(List continued on next page.)
`OTHER PUBLICATIONS
`Sun Microsystems, Java Remote Method Invocation Speci
`fication, Feb. 10, 1997, pp. 18–23.*
`Aldrich et al., “Providing Easier Access to Remote Objects
`in Client-Server Systems.” System Sciences, 1998, Pro
`ceedings of the 31st Hawaii Internatl. Conference, Jan. 6-9,
`1998, pp. 366-375.
`(List continued on next page.)
`Primary Examiner Kenneth R. Coulter
`(74) Attorney, Agent, or Firm-Finnegan, Henderson,
`Farabow, Garrett & Dunner, L.L.P.
`(57)
`ABSTRACT
`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.
`s
`
`(56)
`
`References Cited
`U.S. PATENT DOCUMENTS
`4,491.946. A 1/1985 Kryskow, Jr. et al.
`4,713,806 A 12/1987 Oberlander et al.
`4,809,160 A 2/1989 Mahon et al.
`4,823,122 A 4f1989 Mann et al.
`4,939,638 A 7/1990 Stephenson et al.
`4.956,773 A 9/1990 Saito et al.
`5,088,036 A 2/1992 Ellis et al.
`5,109,486 A 4/1992 Seymour
`5,187,787 A
`2/1993 Skeen et al.
`5,218,699 A 6/1993 Brandle et al.
`5,257,369 A 10/1993 Skeen et al.
`5,293,614 A 3/1994 Ferguson et al.
`
`6O1
`
`
`
`CLIENT MACHINE
`
`18 Claims, 8 Drawing Sheets
`
`6OO
`
`SERVER MACHINE
`
`606
`
`REMOTE
`OBU.
`
`RESPONSE
`
`SMART PROXY
`
`APPL-1006 / Page 1 of 20
`Apple v. Uniloc
`
`

`

`US 6,393,497 B1
`Page 2
`
`U.S. PATENT DOCUMENTS
`
`2/1995 Frey et al.
`5,390,328 A
`5,423,042 A 6/1995 Jalili et al.
`5.440,744. A
`8/1995 Jacobson et al.
`5.448,740 A 9/1995 Kiri et al.
`5,452.459 A 9/1995 Drury et al.
`5,455,952 A 10/1995 Giovaag
`5,471,629 A 11/1995 Risch
`5,475,792 A 12/1995 Stanford et al.
`5,475,817 A 12/1995 Waldo et al.
`5,481,721 A 1/1996 Serlet et al.
`5,504,921 A 4/1996 Dev et al.
`5,511,197 A 4/1996 Hill et al.
`5,524.244. A 6/1996 Robinson et al.
`5,548,726 A 8/1996 Pettus
`5,553,282 A 9/1996 Parrish et al.
`5,555,367 A
`9/1996 Premerlani et al.
`5,555,427 A
`9/1996 Aoe et al. ................... 709/201
`5,557,798 A
`9/1996 Skeen et al.
`5,560.003 A 9/1996 Nilsen et al.
`5,561,785 A 10/1996 Blandy et al.
`5,577,231 A 11/1996 Scalzi et al.
`5594,921. A
`1/1997 Pettus
`5,603,031. A
`2/1997 White et al.
`5,617,537 A
`4/1997 Yamada et al.
`5,628,005 A
`5/1997 Hurvig
`5,640,564. A 6/1997 Hamilton et al.
`5,644,768 A 7/1997 Periwal et al.
`5,652,888 A 7/1997 Burgess
`5,655,148 A 8/1997 Richman et al.
`5,659.751 A 8/1997 Heninger
`5,671,225 A 9/1997 Hooper et al.
`5,675.796 A 10/1997 Hodges et al.
`5,680,573 A 10/1997 Rubin et al.
`5,680,617. A 10/1997 Gough et al.
`5,684.955 A 11/1997 Meyer et al.
`5,689,709 A 11/1997 Corbett et al.
`E. A 1/1998 Eas t al.
`706,502 A 1/1998 Foley et al.
`5,724,588 A
`3/1998 Hill et al.
`5,727,145 A 3/1998 Nessett et al.
`5,737,607 A
`4/1998 Hamilton et al.
`5,745,678 A 4/1998 Herzberg et al.
`5,745,695 A 4/1998 Gilchrist et al.
`5,745,703 A
`4/1998 Cejtin et al.
`5,745,755 A
`4/1998 Covey
`5,748.897 A * 5/1998 Katiyar ....................... 709,219
`5,754,849. A
`5/1998 Dyer et al.
`5,757,925 A
`5/1998 Faybishenko
`5,761,656 A 6/1998 Ben-Shachar
`5,764,897 A 6/1998 Khalidi
`5,768,532 A 6/1998 Megerian
`5,774,551 A
`6/1998 Wu et al.
`5,778,187 A
`7/1998 Monteiro et al.
`5,778,228 A 7/1998 Wei
`5,778,368 A
`7/1998 Hogan et al.
`5,787,425. A
`7/1998 Bigus
`5,787,431 A 7/1998 Shaughnessy
`5,790,548 A 8/1998 Sistanizadeh et al.
`5,802,367 A 9/1998 Held et al.
`5,808,911 A 9/1998 Tucker et al.
`5,809,507 A 9/1998 Cavanaugh, III
`5,812,819 A 9/1998 Rodwin et al.
`5,813,013 A 9/1998 Shakib et al.
`5,815,149 A 9/1998 Mutschler, III et al.
`5,815,709 A
`9/1998 Waldo et al.
`5,815,711 A 9/1998 Sakamoto et al.
`5,818,448 A * 10/1998 Katiyar ....................... 345/355
`5,829.022 A 10/1998 Watanabe et al.
`5,832.219 A 11/1998 Pettus
`5,832,529 A 11/1998 Wollrath et al.
`
`2Y- - - 2
`
`OWOW e a
`
`5,832,593 A 11/1998 Wurst et al.
`5.835,737 A 11/1998 Sand et al.
`5,842,018 A 11/1998 Atkinson et al.
`5,844,553 A 12/1998 Hao et al.
`5,845,129 A 12/1998 Wendorf et al.
`5860.004 A 1/1999 Fowlow etal
`5,860,153 A
`1/1999 Matena et al.
`5,864,862 A 1/1999 Kriens et al.
`5,864.866. A
`1/1999 Henckel et al.
`5,872,928 A 2/1999 Lewis et al.
`5,872,973 A * 2/1999 Mitchell et al. ............ 709/332
`5,875,335 A
`2/1999 Beard
`5,878.411 A 3/1999 Borroughs et al.
`5,884,024 A 3/1999 Lim et al.
`5,884,079 A 3/1999 Furusawa
`5,887,134 A 3/1999 Ebrahim
`5,889,951 A 3/1999 Lombardi
`5,890,158 A 3/1999 House et al.
`5,892.904 A 4/1999 Atkinson et al.
`5,933,497 A 8/1999 Beetcher et al.
`5,935,249 A 8/1999 Stern et al.
`5,940,827 A 8/1999 Hapner et al.
`5,944,793 A 8/1999 Islam et al.
`5,946,485 A 8/1999 Weeren et all
`5.946,694 A 8/1999 Copeland
`2- : */
`f
`opeland et al.
`5,956.509 A
`9/1999 Kevner
`5,966.531. A 10/1999 Skeen et al.
`5,969,967 A 10/1999 Aahladet al.
`5.987,506 A 11/1999 Carter et al.
`5.999,179 A 12/1999 Kekic et al.
`6,003,763 A 12/1999 Gallagher et al.
`6,009.103 A 12/1999 Woundy
`6,016,496 A 1/2000 Roberson
`6,026,414 A 2/2000 Anglin ....................... 707/204
`6,031,977 A 2/2000 Pettus
`6,061,699 A 5/2000 DiCecco et al.
`6,061,713 A 5/2000 Bharadhwaj
`6,223,217 B1
`4/2001 Pettus ........................ 709/219
`6,260,076 B1 * 7/2001 Savitzky et al. ............ 709/315
`
`FOREIGN PATENT DOCUMENTS
`
`EP
`EP
`EP
`EP
`EP
`EP
`EP
`EP
`EP
`EP
`EP
`EP
`EP
`EP
`EP
`EP
`EP
`EP
`EP
`EP
`EP
`EP
`GB
`GB
`GB
`JP
`
`O 474 340 A2 3/1992
`O 497 O22 A1
`8/1992
`O 555 997 A2
`8/1993
`O 565 849 A2 10/1993
`O 569 195 A3 11/1993
`O 625 750 A2 11/1994
`O 635 792 A2
`1/1995
`O 651 328 A1
`5/1995
`O 660 231 A2 6/1995
`O 697 655 A2
`2/1996
`O 718 761 A1
`6/1996
`O 767 432 A2
`4/1997
`O 778 520 A2
`6/1997
`0 794 493 A2
`9/1997
`O 803 810 A2 10/1997
`O 803 811 A 10/1997
`O 805 393 A2 11/1997
`O 810524. A 12/1997
`O 817 O2O A 1/1998
`O 817 O22 A2
`1/1998
`O 817 O25 A
`1/1998
`O 836 140 A2 4/1998
`2 253 O79 A 8/1992
`2 262 825. A 6/1993
`2305 O87 A 3/1997
`11-45187
`2/1999
`
`APPL-1006 / Page 2 of 20
`
`

`

`US 6,393,497 B1
`Page 3
`
`WO
`WO
`WO
`WO
`WO
`WO
`WO
`WO
`WO
`WO
`
`4/1992
`WO 92/07335
`6/1992
`WO 92/09948
`WO93/25962 A1 12/1993
`WO 94/03855
`2/1994
`WO 96/03692 A1
`2/1996
`WO 96/10787
`4/1996
`WO 96/18947
`6/1996
`Wo 96/24099
`8/1996
`WO 98/02814
`1/1998
`WO 98/04971
`2/1998
`
`OTHER PUBLICATIONS
`Aldrich et al., “Providing Easier Access to Remote Objects
`in Distributed Systems,” Calif. Institute of Technology,
`www.cs.caltech.edu/%7Ejedi/paper/edipaper.html,
`Nov.
`21, 1997.
`Burns et al., “An Analytical Study of Opportunistic Lease
`Renewal.” Distributed Computing Systems, 21st Interna
`tional Conference, pp. 146-153, Apr. 2000.
`Dollimore et al., “The Design of a System for Distributing
`Shared Objects.” The Computer Journal, No. 6, Cambridge,
`GB, Dec. 1991.
`Fleisch et al., “High Performance Distributed Objects. Using
`Distributed Shared Memory & Remote Method Invocation,”
`System Sciences, 1998, Proceedings of the 31st Hawaii
`Internatl. Conference, Jan. 6-9, 1998, pp. 574-578.
`Gray 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.
`Guyennet et al., “A New Consistency Protocol Implemented
`in the CAliF System,” IEEE, 1094-7256/97, pp. 82–87,
`1997.
`Guyennet et al., “Distributed Shared Memory Layer for
`Cooperative Work Applications," IEEE, 0742-1303/97, pp.
`72–78, 1997.
`Hoshi 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 Com
`munications, IEEE International
`Conference,
`pp.
`1408-1412.
`IBM Technical Disclosure Bulletin, “Local Network Moni
`toring to Populate Access Agent Directory, vol. 36, No.
`09A, pp. 403-405, Sep. 1993.
`McGrath, “Discovery and Its Discontents: Discovery Pro
`tocols for Ubiquitous Computing.” Presented at Center for
`Excellence in Space Data and Information Science, NASA
`Goddard Space Flight Center, Apr. 5, 2000.
`MUX-Elektronik, Java 1.1 Interactive Course, www.IIs.se/~
`mux/javaic.html, 1995.
`Stevenson, “Token-Based Consistency of Replicated Serv
`ers,” IEEE, CH2686–4/89/0000/0179, pp. 179–183, 1989.
`Yin et al., “Using Leases to Support Server Driven Consis
`tency in Large-Scale Systems,' Computer Services Depart
`ment, University of Texas at Austin, pp. 285-294, May
`26–28, 1998.
`Yin et al., “Volume Leases for Consistency in Large-Scale
`Systems.” IEEE Transactions on Knowledge & Data Engi
`neering, vol. 11, No. 4, pp. 563-576, Jul/Aug. 1999.
`Mullender, Distributed Systems, Second Edition, Addison
`-Wesley, 1993.
`Howard et al., Scale and Performance in a Distributed File
`System, ACM Transactions on Computer Systems, vol. 6,
`No. 1, Feb. 1988, pp. 51-81.
`
`Cardelli, Obliq, A lightweight language for network objects,
`Nov. 5, 1993, pp. 1–37.
`Dijkstra, Self-stabilizing Systems in Spite of Distributed
`Control, Communications of the ACM, Vol. 17, No. 11, Nov.
`1974, pp. 643–644.
`Ousterhout et al., The Sprite Network Operating System,
`Computer, IEEE, Feb. 1988, pp. 23–36.
`Dourish, A Divergence-Based Model of Synchrony and
`Distribution in Collaborative Systems, Xerox Technical
`Report EPC-1194-102, 1994, pp. 1-10.
`Sharrott et al., ObjectMap: Integrating High Performance
`Resources into a Distributed Object-oriented Environment,
`ICODP, 1995.
`Birrell et al., Grapevine: An Exercise in Distributed Com
`puting, Communications of the ACM, vol. 25, No. 4, Apr.
`1982, pp. 260–274.
`Transparent Network Computing, Locus Computing Corpo
`ration, Jan. 5, 1995.
`Gray et al., Leases: An Efficient Fault-Tolerant Mechanism
`for Distributed File Cache Consistency, ACM, 1989, pp.
`2O2-210.
`Lamport et al., The Byzantine Generals Problem, ACM
`Transactions on Programming Languages and Systems, Vol.
`4, No. 3, Jul. 1982, pp. 382–401.
`Dolev et al., On the Minimal Synchronism Needed for
`Distributed Consensus, Journal of the ACM, Vol. 34, No. 1,
`Jan. 1987, pp. 77–97.
`Mummert et al., Long Term Distributed File Reference
`Tracing. Implementation and Experience, Carnegie Mellon
`University School of Computer Science, Nov. 1994, pp.
`1-28.
`Gelernter et al., Parallel Programming in Linda, Yale Uni
`versity, Jan. 1985, pp. 1-21.
`Cannon et al., Adding Fault–Tolerant Transaction ProceSS
`ing to LINDA, Software-Practice and Experience, vol.
`24(5), May 1994, pp. 449-466.
`Kambhatla et al., Recovery with Limited Replay. Fault-Tol
`erant Processes in Linda, Oregon Graduate Institute, Tech
`nical Report CSIE 90-019, Sep. 1990, pp. 1-16.
`AnderSon et al., Persistent Linda: Linda + Transactions +
`Query Processing, Proceedings of the 13th Symposium on
`Fault Tolerant Systems, 1994, pp. 93-109.
`Gelernter, Generative Communication in Linda, ACM
`Transactions on Programming Languages and Systems, Vol.
`7, No. 1, Jan. 1985, pp. 80-112.
`Carriero et al., Distributed Data Structures in Linda, Prin
`cipals of Programming Language, 1986, pp. 1-16.
`Pinakis, Using Linda as the Basis of an Operating System
`Microkernel, University of Western Australia, Department
`of Computer Science, Aug. 1993, pp. 1-165.
`Linda Database Search, Jul. 20, 1995, pp. 1-68.
`Carriero et al, Distributed Data Structures in Linda, Yale
`Research Report YALEU/DCS/RR-438, Nov. 1985.
`Agha et al., Actorspaces. An Open Distributed Program
`ming Paradigm, University of Illinois, Report No.
`UIUCDCS-R-92–1766, Open Systems Laboratory TR No.
`8, Nov. 1992, pp. 1-12.
`Ahmed et al., A Program Building Tool for Parallel Appli
`cations, Yale University, Dec. 1, 1993, pp. 1-23.
`Liskov et al., Distributed Object Management in Thor,
`International Workshop on Distributed Object Management,
`1992, pp. 12.
`Coulouris et al., Distributed Systems Concepts and Designs,
`Second Edition, Addison-Wesley, 1994.
`
`APPL-1006 / Page 3 of 20
`
`

`

`US 6,393,497 B1
`Page 4
`
`Birrell et al., Network Objects, DEC SRC Research Report
`115, Feb. 28, 1994.
`Birrell et al., Distributed Garbage Collection for Network
`Objects, DEC SRC Research Report 116, Dec. 15, 1993.
`Jaworski, Java 1.1 Developer's Guide, Sams.net, 1997.
`Wollrath et al., A Distributed Object Model for the JavaTM
`System, USENIX Association, Conference on Object-Ori
`ented Technologies and Systems, Jun. 17-21, 1996.
`Harris et al., Proposal for a General Java Proxy Class for
`Distributed Systems and Other Uses, Netscape Communi
`cations Corp., Jun. 25, 1997.
`Hamilton, Java and the Shift to Net-Centric Computing
`Computer, Aug. 1996, pp. 31-39.
`Chung et al., A Tiny Pascal Compiler: Part 1: The P-Code
`Interpreter, BYTE Publications, Inc., Sep. 1978.
`Chung et al., A Tiny Pascal Compiler: Part 2: The P-Com
`piler, BYTE Publications, Inc., Oct. 1978.
`Thompson, Regular Expression Search Algorithm, Commu
`nications of the ACM, vol. II, No. 6, p. 149 et seq., Jun.
`1968.
`Mitchell et al., Mesa Language Manual, Xerox Corporation.
`McDaniel, An Analysis of a Mesa Instruction Set, Xerox
`Corporation, May 1982.
`Pier, A Retrospective On the Dorado, A High-Performance
`Personal Computer, Xerox Corporation, Aug. 1983.
`Pier, A Retrospective on the Dorado, A High-Performance
`Personal Computer, IEEE Conference Proceedings, The
`10th Annual international Symposium on Computer Archi
`tecture, 1983.
`Krasner, The Smalltalk-80 Virtual Machine, BYTE Publi
`cations Inc., Aug. 1991, pp. 300-320.
`Operating Systems Review, ACM Press, vol. 27, No. 5, Dec.
`1993, pp. 217-230.
`Remote Method Invocation Specification, Sun Microsys
`tems, Inc., (1997), http://java. Sun.com/products/dk/1.1/
`docs/guide/rmi/spec/rmiTOC.doc.html.
`Alexander, et al., “Active Bridging, Proceedings of the
`ACM/SIGCOMM 97 Conference, Cannes, France, 9/97.
`Anonymous: “Change-Notification Service for Share
`Files', IBM Technical Disclosure Bulletin, vol. 36, No. 8,
`pp. 77–82, Aug. 1993, XP002108713, New York, US.
`Anonymous: “Resource Preemption for Priority Schedul
`ing.” Nov. 1973. IBM Technical Disclosure Bulletin, vol. 16,
`No. 6, p. 1931 XP002109435 New York, US.
`Beech et al., “Object Databases as Generalizations of Rela
`tional Databases,” Computer Standards & Interfaces, vol.
`13, Nos. 1/3, pp. 221-230, (Jan. 1991) Amsterdam, NL.
`Bertino et al., “Object-Oriented Database Management Sys
`tems: Concepts and ISSues,' Computer, Vol. 24, No. 4, pp.
`33-47, (Apr. 1991), Los Alamitos, CA.
`Betz, Mark; “Interoperable objects: laying the foundation
`for distributed object computing”; Dr. Dobb's Journal, vol.
`19, No. 11, p. 18(13); (Oct. 1994).
`Bevan, D.I., “An Efficient Reference Counting Solution To
`The Distributed Garbage Collection Problem”, Parall Com
`puting, NL, Elsevier Publishers, Amsterdam, vol. 9, No. 2,
`pp. 179-192, Jan. 1989.
`Birrell et al., “Implementing Remote Procedure Calls”,
`ACM Transactions on Computer Systems, vol. 2, No. 1, Feb.
`1984, pp. 39–59.
`Dave A et al: “Proxies, Application Interface, and Distrib
`uted Systems”, Proceedings International Workshop on
`Object Orientation in Operating Systems, Sep. 24, 1992, pp.
`212-220.
`
`Deux O et al: “The 02 System' Communications of the
`Association for Computing Machinery, vol. 34, No. 10, Oct.
`1, 1991, pp. 34-48.
`Drexler, K. Eric, et al., “Incentive Engineering for Compu
`tational Resource Management,” The Ecology of Computa
`tion, Elsevier Science Publishers B.V., 1988, pp. 231-266.
`Droms, R., “RFC 1541 Dynamic Host Configuration Pro
`tocol”, HTTP://WWW.CIS.OHIO-STATE.EDU/HTBIN/
`RFC/RFC1541.HTML, Oct. 1993, pp. 1–33.
`Emms J: “A Definition of an Access Control Systems
`Language' Computer Standards and Interfaces, Vol. 6, No.
`4, Jan. 1, 1987, pp. 443-454.
`Gosling et al., “The Java (TM) Language Specification',
`Addison-Wesley, 1996.
`Gottlob et al., “Extending Object-Oriented Systems with
`Roles,” ACM Transactions on information systems, vol. 14,
`No. 3, pp. 268–296 (Jul. 1996).
`Guth, Rob: “JavaOne: Sun to Expand Java Distributed
`Computing Effort”, “HTTP://WWWSUNWORLD.COM/
`SWOL-02-1998/SWOL-02-SUNSPOTS.HTML,”
`XP-002109935, p. 1, Feb. 20, 1998.
`Hamilton et al., “Subcontract: a flexible base for distributed
`programming'; Proceedings of 14th Symposium of Operat
`ing System Principles; (Dec. 1993).
`Hartman, 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.
`Hunt, N., “IDF: A Graphical Data Flow Programming Lan
`guage for Image Processing and Computer Vision', Pro
`ceedings of the International Conference on Systems, Man,
`and Cybernetics, Los Angeles, Nov. 4-7, pp. 351-360,
`(1990).
`IBM (TM) Technical Disclosure Bulletin, “Object Location
`Algorithm.” vol. 36, No. 09B, pp. 257–258, Sep. 1993.
`IBM (TM) Technical Disclosure Bulletin, “Retrieval of
`Qualified Variables Using Extendible Hashing, vol. 36, No.
`12, pp. 301-303, Dec. 1993.
`Jones, Richard, et al., “Garbage Collection: Algorithms for
`Automatic Dynamic Memory Management,” pp. 165-175,
`John Wiley & Sons, 1996.
`Kay, 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.
`Kougiouris et al., “Support for Space Efficient Object Invo
`cation in Spring"; (Sep. 1994).
`Lindholm et al., “The Java (TM) Virtual Machine Specifi
`cation', Addison Wesley, 1996.
`Mitchell et al., “An Overview of the Spring System”; (Feb.
`1994).
`Riggs Roger et al., “Picking State in the Java (TM) System,”
`USENIX Association Conference on Object-Oriented Tech
`nologies and Systems, XP-002112719, Jun. 17–21, 1996,
`pp. 241-250.
`Rosenberry et al., “Understanding DCE"; Chapters 1-3, 6;
`(1992).
`Waldo Jet 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.
`Wilson, P.R., et al., “Design of the Opportunistic Garbage
`Collector,” Proceedings of the Object Oriented Program
`ming Systems Languages And Applications Conference,
`New Orleans, vol. 24, No. 10, Oct. 1989.
`
`APPL-1006 / Page 4 of 20
`
`

`

`US 6,393,497 B1
`Page 5
`
`Wu, Xuequn, “AType system for an Object-Oriented Data
`base System,” Proceedings of the International Computer
`Software and Applications Conference (COMPSAC), pp.
`333-338, Sep. 11–13, 1991, Tokyo, Japan.
`Yemini, Y. and S. da Silva, “Towards Programmable Net
`works” IFIP/IEEE International Workshop on Distributed
`Systems: Operations and Management, L'Aquila, Italy,
`10/96.
`Birrell et al., Implementing Remote Procedure Calls, ACM
`Transactions on Computer Systems, vol. 2, No. 1, Feb. 1984,
`pp. 39–59.
`
`IBM: Somobjects Developer Toolkit Users Guide, Version
`2.1, “Chapter 6 Distributed SOM (DSOM), pp 6–1–6–90,
`Oct. 1994.
`Orfali R. et al., “The Essential Distributed Objects Survival
`Guide,” Chapter 11: Corba Commercial ORBs, John Wiley
`& Sons, Inc., (1996).
`Venners, B., “Jini Technology, Out of the Box”, Javaworld,
`Online, pp. 1-4, Dec. 1998.
`
`* cited by examiner
`
`APPL-1006 / Page 5 of 20
`
`

`

`U.S. Patent
`
`May 21, 2002
`
`Sheet 1 of 8
`
`US 6,393,497 B1
`
`60||80||
`
`TTVO
`
`
`
`| 0 ||00||
`
`
`
`SSE OOHd
`
`| | |0||
`
`ESNOBSEH || ESNOc?SEH
`
`ººº
`
`
`
`
`
`€)NISSE OOHCH HEAHES
`
`– – – - - - - - - - --- – — - - - - - — —)
`
`APPL-1006 / Page 6 of 20
`
`

`

`U.S. Patent
`
`May 21, 2002
`
`Sheet 2 of 8
`
`US 6,393,497 B1
`
`
`
`s
`
`4.
`O
`CC
`>
`
`APPL-1006 / Page 7 of 20
`
`

`

`U.S. Patent
`
`May 21, 2002
`
`Sheet 3 of 8
`
`US 6,393,497 B1
`
`
`
`G6 S/WOC|N|NA'N?II LNECH
`
`
`
`XHOWNEW
`
`
`
`HOSSE OOHd
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`108’ SIHVIOS'OHve|SVHITn
`
`
`
`HOSSE OOHCH
`
`
`
`HOSSE OOHd
`
`WNELSÅS
`
`APPL-1006 / Page 8 of 20
`
`

`

`U.S. Patent
`
`May 21, 2002
`
`Sheet 4 of 8
`
`US 6,393,497 B1
`
`
`
`3.
`
`3
`
`
`
`S
`
`s
`
`APPL-1006 / Page 9 of 20
`
`

`

`U.S. Patent
`
`May 21, 2002
`
`Sheet 5 of 8
`
`US 6,393,497 B1
`
`ZZG
`
`909
`
`809
`
`EOLAEC
`
`
`
`BOVES WIVAV^
`
`OZG
`
`Z || G
`
`9 || G
`
`8 || G
`
`0 || G
`
`
`
`
`
`APPL-1006 / Page 10 of 20
`
`

`

`U.S. Patent
`
`May 21, 2002
`
`Sheet 6 of 8
`
`US 6,393,497 B1
`
`E_LOVNEH
`
`"[^EO
`
`
`
`ESNOCH SEH
`
`
`
`
`
`||SETTOEH HO-, TTV/O
`
`
`
`
`
`EN|HOW/W HEAHES
`
`| 09
`
`
`
`EN|HO\/WN ILNE ITO
`
`
`
`
`
`
`
`APPL-1006 / Page 11 of 20
`
`

`

`U.S. Patent
`
`May 21, 2002
`
`Sheet 7 of 8
`
`US 6,393,497 B1
`
`CLENT TRANSMITS ACALL OR REGUEST
`FOR A PARTICULAR OBJECT
`
`701
`
`
`
`SERVER RECEIVES THE CALL
`
`702
`
`703
`
`SERVER RETURNSA SMART PROXY WITH AN
`EMBEDDED STUBIN RESPONSE TO THE CALL
`
`CLIENT INVOKES METHOD ON SMART PROXY
`
`
`
`
`
`705
`
`PRE-PROCESSING
`REOURED?
`
`704
`7O6
`YES PERFORMLOCAL
`PRE-PROCESSENG
`
`
`
`707
`
`METHOD SERVICED
`LOCALY?
`
`YES
`
`709
`
`
`
`
`
`711
`
`PERFORMLOCAL
`PROCESSING
`
`708
`
`CALL REMOTE OBJECT
`
`PERFORMREMOTE
`PROCESSING
`
`RETURN RESULT
`OF REMOTE
`PROCESSSING
`
`
`
`712
`
`
`
`POST-PROCESSING
`REOURED?
`
`
`
`
`
`714
`
`NO
`RETURN METHOD
`CALL RESULT
`
`PERFORM (LOCAL)
`YES POST-PROCESSING
`
`713
`
`FIG. 7
`
`APPL-1006 / Page 12 of 20
`
`

`

`U.S. Patent
`
`May 21, 2002
`
`Sheet 8 of 8
`
`US 6,393,497 B1
`
`800
`
`PROCESSING
`NVOKED
`
`UPDATED
`PROCESSING
`REOURED?
`
`
`
`
`
`DOWNLOAD
`CODE AND
`UPDATE
`PROCESSING
`
`
`
`
`
`802
`
`
`
`804
`
`PERFORM
`PROCESSING
`
`FIG. 8
`
`APPL-1006 / Page 13 of 20
`
`

`

`US 6,393,497 B1
`
`1
`DOWNLOADABLE SMART PROXES FOR
`PERFORMING PROCESSING ASSOCATED
`WITH A REMOTE PROCEDURE CALL INA
`DISTRIBUTED SYSTEM
`
`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 Ser. No. 09/044,923, entitled
`“Method and System for Leasing Storage,” filed on the same
`date herewith.
`U.S. patent application Ser. No. 09/044,838, entitled
`"Method, Apparatus, and Product for Leasing of Delegation
`Certificates in a Distributed System,” filed on the same date
`herewith.
`U.S. patent application Ser. No. 09/044,834, entitled
`“Method, Apparatus and Product for Leasing of Group
`Membership in a Distributed System,” filed on the same date
`herewith.
`U.S. patent application Ser. No. 09/044,916, entitled
`“Leasing for Failure Detection,” filed on the same date
`herewith.
`U.S. patent application Ser. No. 09/144933, entitled
`“Method for Transporting Behavior in Event Based
`System,” filed on the same date herewith.
`U.S. patent application Ser. No. 09/044.919, entitled
`“Deferred Reconstruction of Objects and Remote Loading
`for Event Notification in a Distributed System,” filed on the
`Same date here with.
`U.S. patent application Ser. No. 09/044.938, entitled
`"Methods and Apparatus for Remote Method Invocation,”
`filed on the same date herewith.
`U.S. patent application Ser. No. 09/045,652, entitled
`“Method and System for Deterministic Hashes to Identify
`Remote Methods, filed on the same date herewith.
`U.S. patent application Ser. No. 09/044,790, entitled
`“Method and Apparatus for Determining Status of Remote
`Objects in a Distributed System,” filed on the same date
`herewith.
`U.S. patent application Ser. No. 09/044,917, entitled
`“Suspension and Continuation of Remote Methods,” and
`filed on the same date herewith.
`U.S. patent application Ser. No. 09/044,835, entitled
`“Method and System for Multi-Entry and Multi-Template
`Matching in a Database,” filed on the same date herewith.
`U.S. patent application Ser. No. 09/044,839, entitled
`“Method and System for In-Place Modifications in a
`Database,” filed on the same date herewith.
`U.S. patent application Ser. No. 09/044,945, entitled
`“Method and System for Typesafe Attribute Matching in a
`Database,” filed on the same date herewith.
`U.S. patent application Ser. No. 09/044,931, entitled
`“Dynamic Lookup Service in a Distributed System,” filed on
`the same date here with.
`U.S. patent application Ser. No. 09/044,939, entitled
`“ Apparatus and Method for Providing Downloadable Code
`for Use in Communicating with a Device in a Distributed
`System,” filed on the same date herewith.
`U.S. patent application Ser. No. 09/044,826, entitled
`“Method and System for Facilitating Access to a Lookup
`Service, filed on the same date herewith.
`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.
`
`2
`U.S. patent application Ser. No. 09/044.932, entitled
`“ Apparatus and Method for Dynamically Verifying Infor
`mation in a Distributed System,” filed on the same date
`herewith.
`U.S. patent application Ser. No. 09/044,936, entitled “An
`Interactive Design Tool for Persistent Shared Memory
`Spaces, filed on the same date herewith.
`U.S. patent application Ser. No. 09/044,934, entitled
`“Polymorphic Token Based 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 here
`with.
`U.S. patent application Ser. No. 09/044,944, entitled
`“Stack-Based Security Requirements, filed on the same
`date herewith.
`U.S. patent application Ser. No. 09/044,837, entitled
`“Per-Method Designation of Security Requirements, filed
`on the same date here with.
`
`15
`
`FIELD OF THE INVENTION
`The present invention relates to a System and method for
`transmitting objects between machines in a distributed Sys
`tem and more particularly relates to transmission of a
`representation of a remote object including code for local
`processing.
`
`25
`
`BACKGROUND OF THE INVENTION
`Distributed programs which concentrate on point-to-point
`data transmission can often be adequately and efficiently
`handled using Special-purpose protocols for remote terminal
`access and file transfer. Such protocols are tailored specifi
`cally to the one program and do not provide a foundation on
`which to build a variety of distributed programs (e.g.,
`distributed operating Systems, electronic mail Systems, com
`puter conferencing Systems, etc.).
`While conventional transport Services can be used as the
`basis for building distributed programs, these Services
`exhibit many organizational problems, Such as the use of
`different data types in different machines, lack of facilities
`for Synchronization, and no provision for a simple program
`ming paradigm.
`Distributed systems usually contain a number of different
`types of machines interconnected by communications net
`WorkS. Each machine has its own internal data types, its own
`address alignment rules, and its own operating System. This
`heterogeneity causes problems when building distributed
`Systems. As a result, program developerS must include in
`programs developed for Such heterogeneous distributed SyS
`tems the capability of ensuring that information is handled
`and interpreted consistently in different machines.
`However, one Simplification is afforded by noting that a
`large proportion of programs use a request and response
`interaction between processes where the initiator (i.e., pro
`gram initiating a communication) is blocked out until the
`response is returned and is thus idle during this time. This
`can be modeled by a procedure call mechanism between
`processes. One Such mechanism is referred to as the remote
`procedure call (RPC).
`RPC is a mechanism for providing Synchronized commu
`nication between two processes (e.g., program, applet, etc.)
`running on the same machine or different machines. In a
`Simple case, one process, e.g., a client program, Sends a
`message to another process, e.g., a Server program. In this
`case, it is not necessary for the processes to be Synchronized
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`APPL-1006 / Page 14 of 20
`
`

`

`3
`either when the a message is Sent or received. It is possible
`for the client program to transmit the message and then
`begin a new activity, or for the Server program's environ
`ment to buffer the incoming message until the Server pro
`gram is ready to process a new message.
`RPC, however, imposes constraints on Synchronism
`because it closely models the local procedure call, which
`requires passing parameters in one direction, blocking the
`calling process (i.e., the client program) until the called
`procedure of the Server program is complete, and then
`returning a response. RPC thus involves two message
`transfers, and the Synchronization of the two processes for
`the duration of the call.
`The R-PC mechanism is usually implemented in two
`processing parts using the local procedure call paradigm,
`one part being on the client Side and the other part being on
`the server side. Both of these parts will be described below
`with reference to FIG. 1.
`FIG. 1 is a diagram illustrating the flow of call informa
`tion using an RPC mechanism. As shown in FIG. 1, a client
`program 100 issues a call (step 102). The RPC mechanism
`101 then packs the call as arguments of a call packet (Step
`103), which the RPC mechanism 101 then transmits to a
`server program 109 (step 104). The call packet also contains
`information to identify the client program 100 that first sent
`the call. After the call packet is transmitted (step 104), the
`RPC mechanism 101 enters a wait state during which it
`waits for a response from the server program 109.
`The RPC mechanism 108 for the server program 109
`(which may be the same RPC mechanism as the RPC
`mechanism 101 when the server program 109 is on the same
`platform as the client program 100) receives the call packet
`(step 110), unpacks the arguments of the call from the call
`packet (step 111), identifies, using the call information, the
`server program 109 to which the call was addressed, and
`provides the call arguments to the server program 109.
`The server program receives the call (step 112), processes
`the call by invoking the appropriate procedure (Step 115),
`and returns a response to the RPC mechanism 108 (step
`116). The RPC mechanism 108 then packs the response in a
`response packet (Step 114) and transmits it to the client
`program 100 (step 113).
`Receiving the response packet (step 107) triggers the RPC
`mechanism 101 to exit the wait state and unpack the
`response from the response packet (step 106). RPC 101 then
`provides the response to the client program 100 in response
`to the call (step 105). This is the process flow of the typical
`RPC mechanism modeled after the local procedure call
`paradigm. Since the RPC mechanism uses the local proce
`dure call paradigm, the client program 100 is blocked at the
`call until a response is received. Thus, the client program
`100 does not continue with its own processing after Sending
`the call; rather, it waits for a response from the Server
`program 109.
`The Java" programming language is an object-oriented
`programming language that is typically compiled into a
`platform-independent format, using a bytecode instruction
`Set, which can be executed on any platform Supporting the
`Java virtual machine (JVM). This language is described, for
`example, in a text entitled “The Java Language Specifica
`tion” by James Gosling, Bill Joy, and Guy Steele, Addison
`Wesley, 1996, which is incorporated herein by reference.
`The JVM is described, for example, in a text entitled “The
`Java Virtual Machine Specification,” by Tim Lindholm and
`Frank Yellin, Addison Wesley, 1996, which is incorporated
`herein by reference. Java and Java-based trademarks are
`
`15
`
`25
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`US 6,393,497 B1
`
`4
`trademarks or registered trademarks of Sun MicroSystems,
`Inc. in the United States and other countries.
`Because the JVM may be implemented on any type of
`platform, implementing distributed progra

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket