throbber
(12) United States Patent
`Wollrath et al.
`
`USOO6237024B1
`(10) Patent No.:
`US 6,237,024 B1
`(45) Date of Patent:
`May 22, 2001
`
`(54)
`
`(75)
`
`(73)
`
`(*)
`
`(21)
`(22)
`
`(51)
`(52)
`(58)
`
`(56)
`
`4,491.946
`4,713,806
`4,809,160
`4,823,122
`4,939,638
`4,956,773
`5,088,036
`5,109,486
`5,187,787
`5,218,699
`5,257,369
`5,293,614
`5,297.283
`5,311,591
`
`METHOD AND APPARATUS FOR THE
`SUSPENSION AND CONTINUATION OF
`REMOTE PROCESSES
`
`Inventors: Ann M. Wollrath, Groton; Kenneth C.
`R. C. Arnold, Lexington, both of MA
`(US)
`Assignee: Sun Microsystem, 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.
`Appl. No.: 09/044,917
`Filed:
`Mar 20, 1998
`
`Notice:
`
`Int. Cl. ............................................... G06F 13/38
`
`U.S. Cl. ............................................. 709/203; 709/224
`
`Field of Search ..................................... 709/238, 159,
`709/201, 227, 213, 220, 203, 224; 395/608,
`700, 650, 2.42, 610; 370/468, 58; 707/103,
`4; 364/559; 713/201; 379/201; 703/23
`References Cited
`U.S. PATENT DOCUMENTS
`1/1985 Kryskow, Jr. et al..
`12/1987 Oberlander et al. ................... 370/58
`2/1989 Mahon et al. .
`4/1989 Mann et al. .
`7/1990 Stephenson et al..
`9/1990 Saito et al. .
`2/1992 Ellis et al. ........................... 395/425
`4/1992 Seymour.
`2/1993 Skeen et al. ......................... 395/600
`6/1993 Brandle et al. .
`10/1993 Skeen et al. ......................... 395/650
`3/1994 Ferguson et al. .................... 395/600
`3/1994 Kelly, Jr. et al..
`5/1994 Fischer.
`(List continued on next page.)
`
`FOREIGN PATENT DOCUMENTS
`0300 516 A2
`1/1989 (EP).
`0.351536 A3
`1/1990 (EP).
`0384339 A3
`2/1990 (EP). ................................... (WO).
`(List continued on next page.)
`OTHER PUBLICATIONS
`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, Alightweight 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.
`(List continued on next page.)
`Primary Examiner Le Hien Luu
`Assistant Examiner Thong Vu
`(74) Attorney, Agent, or Firm-Finnegan, Henderson,
`Farabow, Garrett & Dunner, L.L.P.
`(57)
`ABSTRACT
`A method and apparatus is provided for enabling blocked
`remote methods to relinquish threads and other resources to
`other methods on a Server System. In a distributed computing
`environment, remote methods are allocated numerous net
`work resources but are blocked while they wait for
`operations, Such as a write operation from another process,
`to complete. When enough remote methods are blocked,
`threads and other network resources may run out. Client
`Systems requesting Server Services may experience slower
`response times. This method and System provides a tech
`nique for remote methods to relinquish network resources,
`Such as threads, for other methods to use while the methods
`are blocked. Once the conditions causing the remote meth
`ods to block is resolved, the remote methods continue
`execution. This technique enables high Volume client-server
`transaction Systems to utilize threads and other resources in
`a distributed computing environment more efficiently.
`
`39 Claims, 7 Drawing Sheets
`
`324
`
`322
`
`REMOTEMETHORESOURCES
`402
`
`REMOTEMETHODRESOURCE
`MANAGER
`410
`412
`
`48
`
`THREADPOOL
`-
`THREADS
`AVALABLE
`HREADS
`N-USE
`
`REMOTE
`PROCEURECALL
`(RPC) STATE
`
`SUSPEND
`METHOD
`
`CONTINUE
`METHOD
`
`44
`
`
`
`
`
`
`
`STATESORE
`
`RPCSTATE
`EXECUTIVESTAT
`8
`
`
`
`38
`
`ReMOE OBJECTA 4
`16
`
`REMOTEMETHOD
`
`EXECUTION
`STATE
`
`Ex.1026
`APPLE INC. / Page 1 of 22
`
`

`

`US 6,237,024 B1
`Page 2
`
`U.S. PATENT DOCUMENTS
`
`8/1994 Lubkin et al. ....................... 395/700
`5,339,435
`1/1995 Wold et al..
`5,386,568
`2/1995 Frey et al..
`5,390,328
`6/1995 Jalili et al..
`5,423,042
`8/1995 Jacobson et al. .................... 395/650
`5,440,744
`9/1995 Kiri et al..
`5,448,740
`10/1995 Giovaag.
`5,455,952
`11/1995 Risch.
`5,471,629
`12/1995 Stanford et al. .................... 395/2.42
`5,475,792
`12/1995 Waldo et al..
`5,475,817
`1/1996 Serlet et al..
`5,481,721
`4/1996 Dev et al..
`5,504,921
`4/1996 Hill et al..
`5,511,197
`6/1996 Robinson et al..
`5,524,244
`9/1996 Parrish et al..
`5,553,282
`9/1996 Premerlani et al..
`5,555,367
`9/1996 Skeen et al. ......................... 395/650
`5,557,798
`9/1996 Nilsen et al. ........................ 395/600
`5,560,003
`10/1996 Blandy et al. .................. 395/497.01
`5,561,785
`11/1996 Scalzi et al..
`5,577,231
`2/1997 White et al. ......................... 395/683
`5,603,031
`4/1997 Yamada et al. .
`5,617,537
`5,628,005 * 5/1997 Hurvig ................................. 395/608
`5,640,564
`6/1997 Hamilton et al. .
`5,652,888
`7/1997 Burgess.
`5,655,148
`8/1997 Richman et al. .................... 395/828
`5,659.751
`8/1997 Heninger ........
`... 395/685
`5,671,225
`9/1997 Hooper et al. .
`... 370/468
`5,675,796 * 10/1997 Hodges et al........................ 709/159
`5,680,573
`10/1997 Rubin et al..
`5,680,617
`10/1997 Gough et al..
`5,684.955
`11/1997 Meyer et al..
`5,689,709
`11/1997 Corbett et al..
`5,699,531
`12/1997 Skeen et al. .
`5,706.435
`1/1998 Barbar et al. .
`5,706,502 * 1/1998 Foley et al........................... 395/610
`5,724,588
`3/1998 Hill et al. .
`5,727,145
`3/1998 Nessett et al. .
`5,737,607
`4/1998 Hamilton et al. .
`5,745,678
`4/1998 Herzberg et al..
`5,745,695
`4/1998 Gilchrist et al. ..................... 709/227
`5,745,703 * 4/1998 Cetin et al. ......................... 709/238
`5,754,849
`5/1998 Dyer et al..
`5,757,925
`5/1998 Faybishenko.
`5,761,656
`6/1998 Ben-Shacher.
`5,764,897
`6/1998 Khalidi.
`5,768,532
`6/1998 Megerian.
`5,774,551
`6/1998 Wu et al. .
`5,778,228
`7/1998 Wei.
`5,778,368
`7/1998 Hogan et al..
`5,787,425
`7/1998 Bigus.
`5,787,431
`7/1998 Shaughnessy.
`5,808,911
`9/1998 Tucker et al. ........................ 364/559
`5,809,507
`9/1998 Cavanaugh, III.
`5,813,013
`9/1998 Shakib et al. .
`5,815,149
`9/1998 Mutschler, III et al..
`5,815,709
`9/1998 Waldo et al. .
`5,815,711
`9/1998 Sakamoto et al. .
`5,829,022
`10/1998 Watanabe et al..
`5,832,529
`11/1998 Wollrath et al..
`5,832,593
`11/1998 Wurst et al..
`5,835,737
`11/1998 Sand et al..
`5,842,018
`11/1998 Atkinson et al..
`5,844,553
`12/1998 Hao et al..
`5,845,129
`12/1998 Wendorf et al..
`5,860,004
`1/1999 Fowlow et al. .
`5,860,153
`1/1999 Matena et al. .
`5,864,862
`1/1999 Kriens et al. .
`5,864.866
`1/1999 Henckel et al. .
`5,872,928
`2/1999 Lewis et al. .
`
`2/1999 Beard.
`5,875,335
`3/1999 Burroughs et al. .
`5,878.411
`3/1999 Furusawa.
`5,884,079
`3/1999 Ebrahim ............................... 709/201
`5,887,134
`3/1999 House et al..
`5,890,158
`4/1999 Atkinson et al..
`5,892,904
`5,899,990 * 5/1999 Maritzen et al. ........................ 707/4
`5,933,497
`8/1999 Beetcher et al..
`5,935,249
`8/1999 Stern et al. .......................... 713/201
`5,940,827
`8/1999 Hapner et al..
`5,944,793
`8/1999 Islam et al. .......................... 709/220
`5,946,485
`8/1999 Weeren et al..
`5,946,694
`8/1999 Copeland et al..
`5,987,506
`11/1999 Carter et al. ......................... 709/213
`5,995,744 * 11/1999 Guccione ............................... 703/23
`6,003,763
`12/1999 Gallagher et al..
`6,016,496
`1/2000 Robertson ............................ 707/103
`6,041,111 * 3/2000 Shelton .......
`379/201
`6,073,174 * 6/2000 Montgomerie et al.
`709/224
`6,098,093 * 8/2000 Bayeh et al.......................... 709/203
`
`
`
`FOREIGN PATENT DOCUMENTS
`O 472 874 A1
`3/1992 (EP).
`O 474 340A2
`3/1992 (EP).
`O SSS 997 A2
`8/1993 (EP).
`O 565 849 A2 10/1993 (EP).
`O 569 195 A3 11/1993 (EP).
`O 625 7SOA2 11/1994 (EP).
`O 635 792 A2
`1/1995 (EP).
`O 651328A1
`5/1995 (EP).
`O 660 231 A2
`6/1995 (EP).
`O 718 761 A1
`6/1995 (EP).
`O 697 655 A2
`2/1996 (EP).
`O 767 432 A2
`4/1997 (EP).
`O 778 520 A2
`6/1997 (EP).
`O 794. 493 A2
`9/1997 (EP).
`O 803 810 A2 10/1997 (EP).
`O 803 811 A2 10/1997 (EP).
`O 805 393 A2 11/1997 (EP).
`O 810524A1 12/1997 (EP).
`O 817 O2O A2
`1/1998 (EP).
`O 817 O22 A2
`1/1998 (EP).
`O 817 O25 A2
`1/1998 (EP).
`O836 140A2
`4/1998 (EP).
`2 253 O79
`8/1992 (GB).
`2 262 825
`6/1993 (GB).
`WO 96/03692
`2/1996 (GB).
`2305 O87
`3/1997 (GB).
`11-45187
`2/1999 (JP).
`WO 92/07335
`4/1992 (WO).
`WO92/O9948
`6/1992 (WO).
`WO94/03855
`2/1994 (WO).
`WO96/10787
`4/1996 (WO).
`WO96/18947
`6/1996 (WO).
`WO96/24099
`8/1996 (WO).
`WO98/O2814
`1/1998 (WO).
`WO98/04971
`2/1998
`
`OTHER PUBLICATIONS
`
`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.
`
`Ex.1026
`APPLE INC. / Page 2 of 22
`
`

`

`US 6,237,024 B1
`Page 3
`
`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 Programming
`Paradigm,
`University
`of
`Illinois,
`Report
`No.
`UIUCDCS-R-92–1766, Open Systems Laboratory TR No.
`8, Nov. 1993, 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.
`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 I: 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/idk/1.1/
`docs/guide/rmi/spec/rmiTOC.doc.html.
`Alexander, et al., “Active Bridging, Proceedings of the
`ACM/SIGCOMM 97 Conference, Cannes, France, Sep.
`1997.
`Anonymous: “Change-Notification Service for Shared
`Files' IBM Technical Disclosure Bulletin, vol. 36, No. 8, pp.
`77–82, 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.
`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.
`
`Ex.1026
`APPLE INC. / Page 3 of 22
`
`

`

`US 6,237,024 B1
`Page 4
`
`COSC.
`
`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-2-SUNSPOTS.HTML,”
`XP-002109935, P 1, 1998.
`Aldrich et al., Providing Easier Access to Remote Objects in
`Distributed Systems, www.cs.caltech.edu/%7ejedi/paper/je
`dipaper.html, 1997.*
`1.1
`Java
`MUX-Elektronik,
`Interactive
`www.lls.se/-mux/javaic.html, 1995.*
`Fleisch et al, High performance distributed objects using
`distributed shared memory and remote method invocation.
`IEEE, Jan. 1998.*
`Aldrich et al., Providing access to remote objects in
`client-server systems. IEEE, Jan. 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, Jun. 1996.
`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.
`IBM: “Chapter 6–Distributed SOM (DSOM)” Somobjects
`Developer Toolkit Users Guide, Version 2.1, Oct. 1994
`(1994-10), pp. 6-1-6–90.
`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).
`Orfali R. et al., “The Essential Distributed Objects Survival
`Guide,” Chapter 11: Corba Commercial ORBs, pp.
`203-215, John Wiley & Sons, Inc., (1996).
`Riggs Roger et al., “Pickling State in the Java (TM) Sys
`tem,” USENIX Association Conference on Object-Oriented
`Technologies and Systems, XP-002112719, Jun. 17-21,
`1996, pp. 241–250.
`Rosenberry et al., “Understanding DCE"; Chapters 1-3, 6;
`(1992).
`Venners, B., “Jini Technology, Out of the Box”, Javaworld,
`Online, pp 1-4, Dec. 1998.
`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.
`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, Oct.
`1996.
`Yin J. et al., “Using Leases to Support Server Driven
`Consistency in Large-Scale Systems', Computer Services
`Department, University of Texas at Austin, p. 285-294.
`Birrell et al., Implementing Remote Procedure Calls, ACM
`Transactions on Computer Systems, vol. 2, No. 1, Feb. 1984,
`pp. 39–59.
`* cited by examiner
`
`Ex.1026
`APPLE INC. / Page 4 of 22
`
`

`

`U.S. Patent
`
`May 22, 2001
`
`Sheet 1 of 7
`
`US 6,237,024 B1
`
`
`
`s
`
`3
`
`
`
`S
`
`s
`
`Ex.1026
`APPLE INC. / Page 5 of 22
`
`

`

`U.S. Patent
`
`May 22, 2001
`
`Sheet 2 of 7
`
`US 6,237,024 B1
`
`
`
`Eº)\ /HOLS OES/\HOWNEW ÅHVOJNO
`
`
`
`
`
`
`
`
`
`8 || Z.
`
`Ex.1026
`APPLE INC. / Page 6 of 22
`
`

`

`U.S. Patent
`
`May 22, 2001
`
`Sheet 3 of 7
`
`US 6,237,024 B1
`
`CLIENT
`
`302
`
`CLIENT APPLICATION
`
`REMOTE METHOD CALL n STUB
`
`RUNTIME
`
`
`
`310
`
`306
`
`SERVER
`
`312
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`REMOTE
`METHOD
`RESOURCES
`
`REMOTE
`METHOD
`RUNTIME
`REMOTE
`METHOD
`SKELETON
`
`GENERAL
`RESOURCE
`MANAGER
`EVENT
`HANDLER
`
`REMOTE OBJECTA
`
`REMOTE OBJECTB
`
`
`
`
`
`REMOTE
`METHOD
`RESOURCE
`MANAGER
`REMOTE
`EVENT
`HANDLER
`
`
`
`
`
`Ex.1026
`APPLE INC. / Page 7 of 22
`
`

`

`U.S. Patent
`
`May 22, 2001
`
`Sheet 4 of 7
`
`US 6,237,024 B1
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`324
`
`322
`
`REMOTE METHOD RESOURCES
`402
`
`
`
`THREADPOOLao.
`
`406
`
`THREADS
`N-USE
`
`AVAILABLE
`THREADS
`
`
`
`
`
`REMOTE
`PROCEDURE CALL
`(RPC) STATE
`
`REMOTE METHOD RESOURCE
`MANAGER
`41 O
`412
`
`
`
`SUSPEND
`METHOD
`
`
`
`CONTINUE
`METHOD
`
`STATESTORE
`
`RPCSTATE
`
`EXECUTIVE STATE
`
`
`
`
`
`
`
`REMOTE OBJECTA 416
`
`REMOTE METHOD
`
`
`
`EXECUTION
`STATE
`
`418
`
`FIG. 4
`
`Ex.1026
`APPLE INC. / Page 8 of 22
`
`

`

`U.S. Patent
`
`May 22, 2001
`
`Sheet S of 7
`
`US 6,237,024 B1
`
`START
`
`SERVER SKELETON UNMARSHALLS
`DATA AND PARAMETERS FROM
`REMOTE METHOD CALL REGUEST
`SENT BY CLIENT
`
`REMOTE METHOD RUNTIME
`INDICATES TO CLIENT APPLICATION
`THAT REGUEST IS BEING
`PROCESSED
`
`
`
`
`
`
`
`
`
`REMOTE METHOD RESOURCE
`MANAGER ALLOCATES
`RESOURCES TO REMOTE
`METHOD
`
`506
`
`507
`
`508
`
`REMOTE METHOD INVOKED
`
`510
`
`516
`
`
`
`512
`
`
`
`
`
`SUSPEND
`CONDITION?
`
`514
`
`NO
`
`COMPLETE PROCESSING
`USING RESOURCES
`
`SUSPEND METHOD
`AND RELEASE
`RESOURCES
`
`
`
`518
`
`METHOD SUSPENDS
`WAITING FOR
`CONTINUATION EVENT
`
`RESOURCES ALLOCATED
`AND REMOTE METHOD
`RESUMES PROCESSING
`
`
`
`
`
`
`
`
`
`
`
`Ex.1026
`APPLE INC. / Page 9 of 22
`
`

`

`U.S. Patent
`
`May 22, 2001
`
`Sheet 6 of 7
`
`US 6,237,024 B1
`
`START
`
`METHOD DETECTS SUSPEND
`EVENT AND ELECTS TO
`RELINGUISH RESOURCES
`
`REMOTE METHOD RESOURCE
`MANAGER IS PROVIDED
`EXECUTION STATE AND
`RPC STATE
`
`STORE EXECUTION STATE AND
`RPC STATE FOR CONTINUATION
`OF PROCESSING REMOTE
`METHOD
`
`516
`
`
`
`
`
`
`
`SUSPEND PROCESSING OF
`REMOTE METHOD WAITING FOR
`CONTINUATION EVENT TO OCCUR
`
`602
`
`604
`
`608
`
`610
`
`
`
`
`
`
`
`
`
`
`
`
`
`FIG. 6
`
`Ex.1026
`APPLE INC. / Page 10 of 22
`
`

`

`U.S. Patent
`
`May 22, 2001
`
`Sheet 7 of 7
`
`US 6,237,024 B1
`
`702
`
`704
`
`7O6
`
`708
`
`710
`
`712
`
`714.
`
`START
`
`CONTINUATION METHOD RECEIVES
`INDICATION THAT PARTICULAR CONTINUATION
`EVENT ASSOCATED WITH A REMOTE
`METHOD HAS OCCURRED
`
`
`
`520
`
`REMOTE METHOD MANAGER DSCOVERS
`THAT REMOTE METHOD IS NOW RUNNABLE
`AND CAN CONTINUE PROCESSING
`
`REMOTE METHOD MANAGER ASSIGNS
`RESOURCES TO REMOTE METHOD
`
`REMOTE METHOD RUNTIME LOADS
`EXECUTION STATE WHICH CONTINUES
`EXECUTION OF REMOTE METHOD
`
`REMOTE METHOD CONTINUES PROCESSING
`ON SERVER USING RESOURCES
`
`RESULTS GENERATED BY METHOD PROVIDED
`TO REMOTE METHODSKELETON FOR
`ENCODING AND PACKAGING
`
`ENCODED RESULTS PROVIDED TO INVOKING
`METHOD ON CLIENT
`
`END
`
`Ex.1026
`APPLE INC. / Page 11 of 22
`
`

`

`1
`METHOD AND APPARATUS FOR THE
`SUSPENSION AND CONTINUATION OF
`REMOTE PROCESSES
`
`BACKGROUND OF THE INVENTION
`
`1. Field of the Invention
`This invention generally relates to distributed computing
`Systems and more particularly, to a method and apparatus for
`the Suspension and continuation of remote processes.
`2. Related Applications
`The following identified U.S. patent applications are
`relied upon and are incorporated by reference in this appli
`cation.
`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,930, entitled
`“Downloadable Smart Proxies for Performing Processing
`ASSociated with a Remote Procedure Call 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,” filed on
`the same date here with.
`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.
`
`15
`
`25
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`US 6,237,024 B1
`
`2
`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 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/030,840, entitled
`“Method and Apparatus for Dynamic Distributed Comput
`ing Over a Network,” and filed on Feb. 26, 1998.
`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. 07/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 herewith.
`3. Description of the Related Art
`A typical distributed computing System makes the Ser
`vices and computing power of many Servers available to
`many different clients over a network. Typically, a client
`machine accesses processing capabilities on a Server
`machine using a remote procedure call (RPC) System. The
`RPC system processes the request on the remote machine
`and returns the desired results to the requesting client. The
`network used to transmit the request and return the results
`can be a local area network (LAN), a wide area network
`(WAN), and can also include the Internet. Sophisticated
`distributed computing applications on the Internet offer
`electronic commerce (e-commerce), telecommuting, and
`interactive entertainment Services around the World using
`this client-server arrangement.
`AS the distributed computing paradigm grows in usage
`and popularity it is increasingly important that resources on
`the Server Systems are available to fulfill requests made by
`the client Systems. Each request from a client generally
`causes a Server process to designate resources, including one
`or more threads, to process the requests. A thread, Sometimes
`called a lightweight proceSS, is a separate Sequence of
`instructions within a process having a separate flow of
`control. The thread must carve out resources from the
`System as needed to fulfill the particular request. If resources
`Such as memory and data are available, multiple threads can
`be executed in parallel to fulfill multiple tasks.
`Thread Schedulers can be used by the process spawning
`the threads to coordinate parallel execution of the threads
`based on a thread's priority, State of execution (i.e. sleep,
`alive, dead, running), and dependencies among the various
`threads. A thread Scheduler on a single processor System
`distributes the processor's computing power among many
`
`Ex.1026
`APPLE INC. / Page 12 of 22
`
`

`

`3
`threads to provide the illusion that the threads are actually
`running in parallel. There are many different Scheduling
`techniques which can be used including first-come-first
`Served, shortest-thread-first, priority Scheduling, and pre
`emptive Scheduling techniques Such as round-robin. Hybrid
`Scheduling techniques which combine these techniques can
`also be used as needed by the particular implementation. On
`multiprocessor Systems, Schedulers associate different
`threads with different processors to execute threads in par
`allel and take advantage of the added computing power.
`Unfortunately, if these resources are not immediately
`available, the thread can not continue execution and is
`blocked from further processing. These blocked threads of
`execution hold on to Server resources, Such as memory, as
`well as the data and control Structures associated with the
`threads themselves. Eventually, the Server may run out of
`threads to allocate incoming client requests. Incoming client
`requests may be refused and the server will be effectively
`removed from the distributed computing environment. This
`blocking Scenario can also reduce a servers ability to Service
`existing requests due to overhead associated with denying
`Service to the incoming calls.
`Present distributed computing Systems are not designed to
`address this problem of allocating threads. These Systems do
`not release threads and associated resources when a remote
`Server proceSS is blocked waiting for a resource or particular
`event. Consequently, transaction intensive distributed com
`puting environments can Suffer from the blocking Scenario
`described above. For example, assume a server proceSS
`receives multiple requests to download a file from multiple
`clients over the Internet. The Server process receives mul
`tiple threads from the Server operating System to process the
`requests in parallel but the file requested is locked by another
`proceSS and is not available. A conventional System would
`block further processing on each thread and wait for the file
`to be unlocked. The threads on the server would remain idle
`even though other processes could utilize the thread
`resources to process other tasks. When the number of
`threads on a Server System are depleted, the Server proceSS
`will deny service to additional clients. Eventually, the server
`System will have difficulty processing general tasks.
`On many distributed computing Systems, the inability to
`allocate threads and other resources can negatively impact
`overall processing throughput. Even the high-Speed band
`width available on a distributed computing network will go
`unused if threads and other resources are not allocated
`efficiently on the Server System.
`Based on the above limitations found in conventional
`Systems, it is desirable to improve the allocation of threads
`and other resources used in a distributed computing envi
`rOnment.
`
`15
`
`25
`
`35
`
`40
`
`45
`
`50
`
`US 6,237,024 B1
`
`4
`Server System when the remote method depends on a general
`resource which is not available.
`Another method consistent with the present invention,
`enables a previously Suspended remote method to continue
`processing on the Server System and generate a result for a
`client application. This method comprises receiving an indi
`cation that a continuation event associated with a Suspended
`remote method has occurred. System resources and general
`resources are allocated to the remote method in preparation
`to continue processing the remote method. The remote
`method utilizes the combined allocated resources to con
`tinue execution and generate results. These results are trans
`mitted from the Server System to the client application on the
`client System

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