`
`
`
`US 6,757,729 B1
`(10) Patent No.:
`a2) United States Patent
`
`
`
`
`
`
`
`
`
`
`
`
`
`(45) Date of Patent:
`Devarakondaetal.
`*Jun. 29, 2004
`
`
`US006757729B1
`
`
`
`(75)
`
`
`
`
`
`
`
`(54) VIRTUAL ENVIRONMENT MANAGER FOR
`
`
`NETWORK COMPUTERS
`Inventors: Murthy Devarakonda,Briarcliff
`
`
`
`
`.
`ae
`
`
`
`
`Manor, NY (US); Ajay Mohindra,
`
`
`
`
`Yorktown Heights, NY (US); Deborra
`
`
`
`
`Jean Zukowski, Yorktown Heights, NY
`
`(US)
`
`EP
`
`
`wo
`
`wo
`
`wo
`
`wo
`
`wo
`
`
`
`(73) Assignee:
`
`
`
`.
`
`(“) Notice:
`
`
`
`
`International Business Machines
`
`
`
`Corporation, Armonk, NY (US)
`.
`.
`.
`
`
`
`
`
`
`This patent issued on a continued pros-
`
`
`
`
`
`
`ecution application filed under 37 CFR
`
`
`
`
`
`
`1.53(d), and is subject to the twenty year
`
`
`
`
`
`
`term provisions of 35 U.S.C.
`patent
`
`154(a)(2).
`
`
`
`
`
`
`
`Subject to any disclaimer, the term ofthis
`
`
`
`
`patent is extended or adjusted under 35
`
`
`
`U.S.C. 154(b) by 0 days.
`
`
`
`
`
`
`
`
`
`
`(56)
`
`
`
`
`
`
`
`FOREIGN PATENT DOCUMENTS
`0780778
`12/1995
`
`
`
`
`
`
`
`
`seesstesnnneeereees 29/6
`Wroodatod “ : oDOS
`
`
`
`
`
`
`.. GO6F/9/46
`/1999
`eves GO06F/9/46
`WO 9944127 AL *
`9/1999
`
`
`
`
`
`
`
`ieee. GO6F/9/46
`WO 9944134 AL* 9/1999
`
`
`
`
`
`
`
`WO 0077635 Al * 12/2000 wee G06F/9/46
`
`
`
`
`
`
`
`acces H04Q/7/00
`WO 0223927 A2* 3/2002
`
`
`
`
`
`
`
`
`OTHER PUBLICATIONS
`(Berstein) Bernstein, Philip A. “Middleware: A Model for
`
`
`
`
`
`
`
`
`
`
`
`
`Distributed System Services”, pp. 86-98, Feb. 1996.*
`Zukowski et al. “Metis: A Thin—Client Application Frame-
`
`
`
`
`
`
`work” Jun. 1997, USENIX.*
`
`
`
`
`Waldo, Jim. “Object-oriented programming on the Net-
`
`
`
`
`
`
`
`work.” ECOOP’99. 1999.*
`
`
`
`Wollrath, Ann. et al. “Simple Activation for Distributed
`
`
`
`
`
`
`
`
`
`
`
`Objects”, USENIX, Conference on OO Technologies
`
`
`
`(COOTS), Jun. 1995.*
`
`
`
`
`
`
`
`
`Wollrath, Ann etal. “A Distributed Object Modelfor Java”,
`
`
`
`
`
`
`
`USENIX, Conference on OO Technologies and Systems
`
`
`
`(COOTS), Jun. 1996.*
`
`
`
`
`
`
`
`
`
`
`Sun Microsystems. “The Java Language Environment, A
`(21) Appl. No.: 08/722,434
`
`
`
`
`White Paper”, Oct. 1995.*
`
`
`
`
`Joint Submission, Interoperability Between Microsoft COM
`Oct. 7, 1996
`(22)
`Filed:
`
`
`
`
`
`
`
`
`
`
`
`
`(51) Int. C1.cece GO06F 15/173; GOGF 15/16;|and OMG CORBA2.0, Aug. 1994.*
`
`
`
`
`
`
`
`
`
`
`GO6F 9/00
`.
`.
`.
`
`
`
`Primary Examiner—Lewis A. Bullock,Jr.
`(52) US. Ch. eeeeee 709/226; 709/229; 718/104
`(74) ‘Aitorney, Agent, or Firm—Gail H. Zarich; Anne
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`(58) Field of Search ......... 395/200.02, 200.06,
`Vachon Dougherty
`
`
`
`
`
`
`
`
`395/200.09, 200.2, 694, 680, 682, 683;
`
`
`
`
`
`
`
`
`718/100, 104; 719/330, 310, 315; 709/200-226,
`ABSTRACT
`(57)
`
`A system and method for a downloadable just-in-time
`229
`
`
`
`
`
`
`
`
`
`
`
`
`
`middleware called VEM that provides access to network
`
`
`
`
`
`
`
`services,
`including system services such as printing and
`
`
`
`
`
`
`
`local storage, to applications that run on Network Comput-
`
`
`
`
`
`
`
`
`
`ers. The VEM configures the default client services and
`
`
`
`
`
`
`
`stores information about these services. When an application
`
`
`
`
`
`
`
`executing on the Network Computer wishesto use one of the
`
`
`
`
`
`
`
`
`services, it communicates with its local VEM. The VEM
`
`
`
`
`
`
`
`returns a handle to the appropriate service to complete the
`
`
`service request.
`
`
`References Cited
`
`
`
`U.S. PATENT DOCUMENTS
`2/1993 Skeen et al. ssc 709/314
`5,187,787 A *
`
`
`
`
`
`5,261,044 A * 11/1993 Dev et al. cccccceceeee 345/855
`
`
`
`
`
`
`
`5,287,507 A *
`2/1994 Hamilton et al. 0.0.0... 719/315
`
`
`
`
`
`
`5,341,477 A *
`8/1994 Pitkin et al... 709/226
`
`
`
`
`5,408,619 A *
`4/1995 Oram oe
`eeeteeeeeeees 707/10
`
`
`
`
`6/1995 Gray bteeeeeeeee
`5,426,421 A *
`sere 340/3.32
`
`
`8/1995 Wrabetz et al... 709/330
`5,442,791 A *
`
`
`
`
`
`
`
`
`(List continued on next page.)
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`17 Claims, 5 Drawing Sheets
`
`
`
`
`
`SERVICE DIRECTORY MANAGER
`
`‘SERVICE DIRECTORY TABLE
`
`
`
`ATTRIBUTE SERVICE PROVIDER
`
`
`
`
`
`
`i0BK1)
`
`
`1061)
`
`
`11011)
`
`
`
`NETWORK COMPUTER
`
`
`VIRTUAL ENVIRONMENT
`MANAGER
`
`
`
`CONFIGURED
`SERVICES
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
` CONFIGURED
`
`
`
`
`
`
`
`
`
`
`SERVICES
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`LGEExhibit-1009/Page 1 of 10
`LGEv. Uniloc
`
`LGE Exhibit-1009/Page 1 of 10
`LGE v. Uniloc
`
`
`
`
`
`US 6,757,729 B1
`
`
`Page 2
`
`
`
`
`U.S. PATENT DOCUMENTS
`
`
`
`
`
`
`
`5,475,819 A * 12/1995 Miller et al. 2... 709/203
`
`
`
`
`
`
`1/1996 Sudamaetal. ............. 395/600
`5,483,652 A
`
`
`
`
`
`
`5,734,828 A *
`3/1998 Pendse et al.
`.............. 709/203
`
`
`
`
`
`
`5,748,896 A *
`5/1998 Daly et al. 0. 709/223
`
`
`
`
`
`
`5,802,530 A *
`9/1998 Van Hoff oe 345/835
`
`
`
`
`
`5,826,000 A * 10/1998 Hamilton....
`ve T14/4
`
`
`
`
`
`
`5,838,906 A * 11/1998 Doyle etal. ee 709/202
`
`
`
`
`
`5,852,722 A * 12/1998 Hamilton occ 709/221
`
`
`
`
`
`5,870,544 A *
`2/1999 Curtis
`- 709/229
`
`
`
`
`
`
`5,886,697 A *
`3/1999 Naughton et al.
`.......... 345/473
`
`
`
`
`
`
`6,009,464 A * 12/1999 Hamilton et al. 0.0.0.0... 709/219
`
`
`
`
`
`
`
`1/2000 Frailong et al... 709/250
`6,012,100 A *
`
`
`
`
`
`
`6/2000 Frailong et al.
`............ 709/222
`6,073,172 A *
`
`
`
`
`
`
`.......... 709/203
`613L116 A * 10/2000 Riggins et al.
`
`
`
`
`
`
`6,144,960 A * 11/2000 Okadaet al. voces 707/10
`
`
`
`
`
`
`
`
`6,185,611 BL *
`2/2001 Waldo et al... 709/221
`
`
`
`
`
`
`
`6,266,774 Bl *
`7/2001 Sampathetal... 713/201
`
`
`
`
`
`
`
`6,449,642 B2 *
`9/2002 Bourke-Dunphyetal.
`. 709/222
`
`
`
`
`
`
`
`6,496,858 B1 * 12/2002 Frailong et al.
`............ 709/221
`
`
`
`
`
`
`
`6,560,656 B1 *
`5/2003 O’Sullivan et al.
`......... 709/250
`
`
`
`
`
`
`6.591.290 BL *
`7/2003 Clarisse et al.
`............. 709/205
`
`
`
`
`
`
`
`
`6,604,127 B2 *
`8/2003 Murphyet al. 0.0... 709/203
`
`
`
`* cited by examiner
`
`
`
`LGEExhibit-1009/Page 2 of 10
`
`LGE Exhibit-1009/Page 2 of 10
`
`
`
`
`
`
`
`U.S. Patent Jun. 29,2004—Sheet 1 of 5 US 6,757,729 B1
`
`
`
`
`
`
`
`
`FIG.
`
`
`
`
`
`1
`
`
`
`
`SERVICE DIRECTORY MANAGER
`
`
`
`
`
`
`
`
`
`
`SERVICE DIRECTORY TABLE
`102
`
`
`
`ATTRIBUTE|SERVICE PROVIDER
`
`
`
`
`
`
`
`
`
`He
`
`104(2)
`
`
`
`COMMUNICATION
`NETWORK
`
`
`SERVICE
`
`PROVIDER 1
`
`~\ SERVICE
`
`PROVIDER 2
`NETWORK COMPUTER
`
`
`
`
`VIRTUAL ENVIRONMENT|enue|MANAGER PROVIDER 3
`
`SERVICE
`
`
`
`104(3]
`
`CONFIGURED
`SERVICES
`
`
`10611)
`
`
`
`
`
`
`
`
`
`
`11004)
`
`
`
`
`
`TABLE OF
`APPLICATIONS
`
`
`
`
`BROWSER
`
`
`114(1)
`
`
`NETWORK {COMPUTER
`
`
`
`
`
`
`112(1)
`
`
`
`
`VIRTUAL ENVIRONMENT
`MANAGER
`
`
`
`
`10911)
`
`
`
`
`
`CONFIGURED
`
`SERVICES
`
`
`
`
`
`
`
`
`
`TABLE OF
`APPLICATIONS
`
`
`
`
`
`
`
`
`
`114(2)
`
`104(1)
`
`106(2)
`
`
`
`10812)
`
`
`
`1012)
`
`
`112(2)
`
`109(2)
`
`
`
`LGEExhibit-1009/Page3 of 10
`
`LGE Exhibit-1009/Page 3 of 10
`
`
`
`
`
`U.S. Patent Jun. 29,2004—-Sheet 2 of 5 US 6,757,729 B1
`
`
`
`
`
`
`
`
`
`
`FIG. 2
`
`
`
`
`
`
`
`
`
`
`
`
`
`202
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`204
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`206
`
`
`
`
`
`
`
`IS THE <USER
`
`
`
`NAME> AND. PASSWORD
`
`
`VALID?
`
`
`
`
`
`
`LOAD USER’ S DESKTOP
`
`
`
`
`ALONG WITH THE VEM
`
`210
`
`
`
`FIG.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`IDENTIFY THE SERVICE DIRECTORY MANAGER THAT IS
`
`
`
`
`
`
`
`RESPONSIBLE FOR MAINTAINING THE LIST OF SERVICES
`
`
`
`
`
`
`
`
`IN QUR NETWORK. CALL THIS MANAGER AS DIRECTORY M
`
`3
`
`
`
`
`
`
`
`ANY MORE
`
`
`SERVICES IN LIST
`
`SERVICELIST?
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`LGEExhibit-1009/Page4 of 10
`
`LGE Exhibit-1009/Page 4 of 10
`
`
`
`U.S. Patent
`
`
`
`
`Jun. 29, 2004
`
`
`
`
`
`Sheet 3 of 5
`
`
`US 6,757,729 B1
`
`
`
`FIG.
`
`
`
`
`
`4
`
`
`
`
`SERVICE DIRECTORY MANAGER
` SERVICE DIRECTORY TABLE
`
`
`
`
`
`
`
`
`ATTRIBUTE|SERVICE PROVIDER
`
`
`
`PRINTER
`
`
`
`
`
`
`FAX
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
` NETWORK COMPUTER PRINT CLIENT STUB
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`FAX CLIENT STUB
`
`
`
`
`MAIL CLIENT STUB
`
`
`
`
`OTHER STUBS
`
`
`
`
`LGEExhibit-1009/Page 5 of 10
`
`LGE Exhibit-1009/Page 5 of 10
`
`
`
`U.S. Patent
`
`Jun. 29, 2004
`
`Sheet 4 of 5
`
`US 6,757,729 BI
`
`
` SAOWSY0$$JNOQ_N3HMSNOTIVH3d0aWHOUIdSL————————
`
` ()J4yva1sBay‘_HSOYNVN!ne1AHOLISHIO!SSANOLIVOIIdd¥
`
`lOay!:31¥00)VSNUNLH!:!NOIVHUOANT3IVIS—|-411003
`JIONVH3OTAWSSSNUMLIU|JOIAWSSHIS3HO1S|24010310
`
`
`
`307AH3S>"VSNUIL3HCNYJ0NvH:JTONVHTASS
`
`
`3014035HL(.S8}0N,}891AJaSON4O0]“NTSIITANISddSNOOT“(eanp891AsaG0015
`
`
`SNUNLIY!UIQWIIN140dONYSWYNUSAUSS
`
`31N009JTONVH
`NOTIVWUO-NIiAMISTOSYSHSSAQWSY
`d¥3H!df148
`
`(a[PUEYa9TAJAS)a[PUeYaITAJag]ag$$$_____e~31009
`
`
`
`(#}Jod‘aweuéyaAvas)U01}JauUO}dN}agHIGIAOHd
`
`(Jaa[AsagayonayW3A
`
`()U01}IauU0IaS0[9
`
`NOITL94NNO)38019
`
`JOIAUIS
`
`S9I4
`
`
`
`
`
`NOTL9INNOdf13S
`
`
`
`JQIAUISJH!HLIM
`
`JOTAWSS
`
`
`
`WOUSAWISTIIY
`
`LGEExhibit-1009/Page6 of 10
`
`LGE Exhibit-1009/Page 6 of 10
`
`
`
`U.S. Patent
`
`
`
`
`Jun. 29, 2004
`
`
`
`
`Sheet 5 of 5
`
`
`US 6,757,729 B1
`
`
`
`FIG.
`
`
`
`
`
`6
`
`
`VEM DESKTOP
`
`
`
`
`
`
`
`
`
`oeveve||PRINT
`
`SYSTEM SERVICES
`
`om
`
`
`NOTESLITE
`
`DESKTOP
`
`
`
`Ly) 6
`
`CALENDAR
`
`
`
`
`
`
`
`LIST OF APPLICATIONS
`
`
`
`
`
`OFFICE APPLICATIONS
`
`
`PERSONAL PRODUCTIVITY APPLICATIONS
`
`
`
`
`
`
`
`
`LGEExhibit-1009/Page7 of 10
`
`LGE Exhibit-1009/Page 7 of 10
`
`
`
`
`
`US 6,757,729 B1
`
`
`1
`
`
`
`
`VIRTUAL ENVIRONMENT MANAGER FOR
`
`
`NETWORK COMPUTERS
`
`I. BACKGROUND OF THE INVENTION
`
`
`
`
`
`
`
`a. Field of the Invention
`
`
`
`
`
`
`
`
`
`
`This invention relates to network computing. More
`
`
`
`
`
`
`
`specifically, this invention relates to methods and means for
`
`
`
`
`
`
`
`providing access to network services (for example, system
`
`
`
`
`
`
`
`services such as printing and local storage) to applications
`
`
`
`
`executing on network connected computers.
`b. Related Art
`
`
`
`
`
`
`
`
`
`As the network computing paradigm becomes ubiquitous,
`
`
`
`
`
`
`simplified inexpensive desktop computers, known as the
`
`
`
`
`
`
`
`Network Computers, that have no means of independent
`
`
`
`
`
`
`
`
`existence will become commonplace. Such devices may run
`
`
`
`
`
`
`
`
`
`a low function operating system (for simplicity) and rely on
`
`
`
`
`
`
`
`
`servers for basic system services including local storage,
`
`
`
`
`
`
`
`printing, and monitoring. While traditional clients, such as
`
`
`
`
`
`
`
`
`
`
`PCs, provide their own basic system services they are also
`
`
`
`
`
`
`
`likely to seek additional services from the network.
`
`
`
`
`
`
`
`Existing approaches used to provide these basic system
`
`
`
`
`
`
`
`
`services to applications include the existence of a full-
`
`
`
`
`
`
`
`feature operating environment on the Network Computer
`
`
`
`
`
`
`
`
`and/or the requirment that each application provide its own
`
`
`
`
`
`
`
`
`set of needed services. The former approach is not feasible
`
`
`
`
`
`
`
`
`
`for network clients because these computers are not neces-
`
`
`
`
`
`
`
`sarily equipped with adequate physical resources such as
`
`
`
`
`
`
`
`
`physical memoryand attached peripheral devices(e.g., disk
`
`
`
`
`
`
`drives) to support a full-feature operating environment(e.g.,
`
`
`
`
`
`
`
`
`
`in the case of a Network Computer). The latter approach has
`
`
`
`
`
`
`
`
`the drawback of making each application aware of the
`
`
`
`
`
`
`
`
`platform and environmentit can be run underso that it can
`
`
`
`
`
`
`
`
`provide support for necessary basic system services. Further,
`
`
`
`
`
`
`
`
`
`the former approach addsto the cost of the network clients,
`
`
`
`
`
`
`
`
`while the latter approach adds to the complexity in the
`
`
`design of applications.
`
`II. SUMMARY OF THE INVENTION
`
`
`
`
`
`10
`
`15
`
`
`
`20
`
`25
`
`
`30
`
`35
`
`
`40
`
`
`
`
`
`
`
`
`
`
`
`
`
`invention to provide a
`is an object of the present
`It
`
`
`
`
`
`
`
`flexible, powerful, and portable means for enabling network
`based services forclients.
`
`
`
`
`
`
`
`
`
`In a preferred embodiment, a downloadable middleware
`
`
`
`
`
`
`
`called the Virtual Environment Manager (VEM)is provided.
`
`
`
`
`
`
`
`The VEM allowsapplications to be developed completely
`
`
`
`
`
`
`
`independently of the architecture and environment of a
`
`
`
`
`
`
`
`
`
`client computer and the servers it connects to. For a client
`50
`
`
`
`
`
`
`
`(i.e., a network computer) to access a service, the VEM
`
`
`
`
`
`
`
`queries a Service Directory Table available on one or more
`
`
`
`
`
`
`
`
`connected servers. The access to the Service Directory Table
`
`
`
`
`
`
`
`returns a handle, which is used to connect to the indicated
`
`
`service provider.
`
`45
`
`
`55
`
`
`III. BRIEF DESCRIPTION OF THE DRAWING
`
`
`
`
`
`
`
`
`
`
`
`
`The present invention will be understood by reference to
`
`
`
`the drawing, wherein:
`
`
`
`
`
`
`
`
`FIG. 1 depicts a loosely coupled system suitable for use
`
`
`
`
`with the present invention;
`
`
`
`
`
`
`
`
`
`
`
`FIG. 2 show the flow chart for the boot phase of the
`
`
`network computer;
`
`
`
`
`
`
`
`
`FIG. 3 showsthe flow chart for initial steps taken by each
`
`
`service provider;
`
`
`
`
`
`
`
`
`
`FIG. 4 showsan instance of the system state with the
`
`
`VEM configured;
`
`
`
`60
`
`65
`
`
`
`
`2
`
`
`
`
`
`
`
`
`FIG. 5 showsthe flow control process for an application
`
`
`
`
`
`
`when it wishes to use a network service; and,
`
`
`
`
`FIG. 6 shows an example desktop.
`
`
`
`
`
`IV. DETAILED DESCRIPTION OF THE
`
`
`
`PREFERRED EMBODIMENT
`
`
`
`
`
`
`
`
`
`
`
`
`A loosely coupled system suitable for use with the present
`
`
`
`
`
`
`
`invention is illustrated in FIG. 1. The system includes
`
`
`
`
`
`
`several computers 102-106 interconnected by way of a
`
`
`
`
`
`
`
`communication network 112. Of these computers, some are
`
`
`
`
`
`
`
`known as Network Computers 106(1), 106(2), because they
`
`
`
`
`
`
`
`
`rely on services available via the network to provide many
`
`
`
`
`
`
`
`
`
`of their basic functions. Others are known as service pro-
`
`
`
`
`
`
`
`
`viders 104(1), 104(2), 104(3) because they provide network
`
`
`
`
`
`
`
`
`services, such as basic system services,
`to the Network
`
`
`
`
`
`
`
`Computers. Some of the computers are also known as
`
`
`
`
`
`
`
`Service Directory Managers (SDMs) 102, because they
`
`
`
`
`
`
`
`
`maintain a list of services that are provided to network
`
`
`
`
`computers by the service providers.
`
`
`
`
`
`
`
`
`for
`The Network Computers 106 can be embodied,
`
`
`
`
`
`
`
`example, on a JAVA terminal, a personal digital assistant
`
`
`
`
`
`
`(PDA)or an internet terminal. The communication protocol
`
`
`
`
`
`
`
`
`
`
`is HTTP and TCP/IP. The network 112 can be, for example,
`
`
`
`
`
`
`
`
`
`a token ring. The service systems 102, 104(1), 104(2),
`
`
`
`
`
`
`
`
`
`104(3) can be embodied, for example, on IBM RISC
`
`
`
`
`System/6000 machines using AIX 4.2.
`
`
`
`
`
`
`
`
`
`A logical organization can be placed on the physical
`
`
`
`
`
`
`
`system described above. This organization can be described
`
`
`
`
`
`
`
`
`
`by a three tier client/server strategy. In this strategy, tier 1
`
`
`
`
`
`
`
`
`represents the client function, tier 2 represents the service
`
`
`
`
`
`
`
`
`
`provider and tier 3 represents the data object server (ie.,
`
`
`
`
`
`
`
`information storage). The system described in the present
`embodiment relates to tiers 1 and 2 and the interface in
`
`
`
`
`
`
`
`
`
`between. The interface in between tiers 2 and 3 is
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`unrestricted, so users can rely on conventional, tried and true
`
`
`
`
`
`
`
`
`data information access systems. Note that a service pro-
`
`
`
`
`
`
`
`vider can be designed to either reside completely on a tier 2
`
`
`
`
`
`
`
`server or to allocate its function between tiers 1 and 2 by
`
`
`
`
`providing a special service stub.
`
`
`
`
`
`
`Each Network Computer includes a Virtual Environment
`
`
`
`
`
`
`
`Manager (VEM) 108(1), 108(2) that is downloaded from a
`
`
`
`
`
`
`
`Service Provider by way of the communication network 112.
`
`
`
`
`
`
`
`The VEM is embodied as program code instantiated in the
`
`
`
`
`
`
`
`
`random access memory (not shown) of the Network Com-
`
`
`
`
`
`
`
`
`
`puter. In particular, the VEM provides a base class called
`
`
`
`
`
`
`
`VEMCLASSthat it relies on for defining a collection of
`
`
`
`
`
`
`
`
`objects (in the sense of “object oriented programming”).
`
`
`
`
`
`
`
`
`
`Oneof the objects included in each VEM is anactive entity
`
`
`
`
`
`
`
`called the Virtual Environment Superviser (VES) 109(1),
`
`
`
`
`
`
`
`
`
`109(2) that is responsible for maintaining the VEM state. In
`
`
`
`
`
`
`
`
`
`a preferred embodiment, the VES is an active JAVA object
`
`
`
`
`
`
`
`andis directly instantiated from the VEMCLASS. The VEM
`
`
`
`
`
`
`
`
`state includes a table of configured services 110(1), 110(2)
`
`
`
`
`
`
`
`
`
`and a table of active applications 112(2), 112(2). Both the
`
`
`
`
`
`
`
`
`table of configured services and the table of active applica-
`
`
`
`
`
`
`
`
`tions are also instantiated in the random access memory of
`
`
`
`
`
`
`
`each Network Computer. Applications inherit from the
`
`
`
`
`
`
`
`
`VEMCLASSin order to interact with the VES. The object
`
`
`
`
`
`
`
`
`
`class is compiled with the application and boundto the name
`
`
`
`space of the application.
`
`
`
`
`
`
`According to an embodiment of the present invention,
`
`
`
`
`
`
`
`when a network computer is switched on, it goes through a
`
`
`
`
`
`
`
`
`boot process in whichit readies itself for use. At the end of
`
`
`
`
`
`
`
`
`
`
`the boot process, the network computer prompts the user for
`
`
`
`
`
`
`
`identification. The identification process can be,
`for
`
`
`
`
`
`
`
`
`
`example, typing in the user name and a password. After user
`LGEExhibit-1009/Page8 of 10
`
`LGE Exhibit-1009/Page 8 of 10
`
`
`
`
`
`US 6,757,729 B1
`
`
`
`10
`
`15
`
`
`
`20
`
`
`
`3
`4
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`for maintaining the list of services in the network. In step
`identity verification, the network computer presents the user
`306 the Service Provider scans the list of services and
`
`
`
`
`
`
`
`
`
`
`
`
`
`with a desktop environment.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`determines the next service to be registered. If there is
`The desktop environmentis preferably a JAVA container.
`
`
`
`
`
`
`
`
`
`
`another service to be registered,
`in step 308 the Service
`
`
`
`
`
`
`
`
`The JAVA container runs on top of a JAVA virtual machine.
`
`
`
`
`
`
`
`Provider sends a REGISTER messageto the SDM (directory
`
`
`
`
`
`
`
`
`
`
`Both the container and the JAVA virtual machine are pro-
`
`
`
`
`
`
`
`
`
`M) and then returns to step 306. If there are no more services
`
`
`
`
`
`
`
`vided by a program such as a Web Browser 114(1), 114(2)
`
`
`
`
`
`
`
`
`in the list, initialization is completed in step 310. It should
`
`
`
`
`
`
`
`(e.g. Netscape Navigator) which executes on the Network
`
`
`
`
`
`
`
`
`
`
`be understood that steps 306 and 308 can be replaced with
`
`
`
`
`
`
`
`
`Computer. The browser can be downloaded during the
`
`
`
`
`
`
`
`
`
`
`
`
`
`a single step in which the entire list is read only once and
`
`
`
`
`
`
`
`
`Network Computer’s boot sequence or provided as an
`
`
`
`
`
`
`
`
`then sent to the appropriate SDMaspartof a single message
`
`
`
`
`
`integral part of the Network Computer.
`or message sequence.
`
`
`
`
`
`
`
`
`
`
`
`
`As part of the initialization process, the browser down-
`
`
`
`
`
`
`
`
`
`
`An instance of the system state in which various client
`
`
`
`
`
`
`
`
`
`
`loads the VES and a configuration file for the user from a
`
`
`
`
`
`
`
`
`stubs are located at the Network Computers is shown in FIG.
`
`
`
`
`
`
`
`
`
`Service Provider. The VES uses the configuration file to set
`
`
`
`
`
`
`
`
`
`4. The Figure showsthree Service Providers: a Print Server
`
`
`
`
`
`
`
`
`up the user’s desktop environment (desktop). An example
`
`
`
`
`
`
`
`
`
`
`402, a Fax Server 404 and a Mail Server 406. The SDT 408
`
`
`
`
`
`
`
`
`desktop (which can be in the form of a home page) is shown
`
`
`
`
`
`
`
`
`includes information about the three service providers. In
`
`
`
`
`
`
`
`
`
`in FIG. 6. The configurationfile containsalist of system and
`
`
`
`
`
`
`
`
`particular, the information describes the type (attribute) of
`
`
`
`
`
`
`
`application-services that the user accesses most frequently.
`service and the location of the Service Provider which
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`These system and application services can be embodied as
`
`
`
`
`
`
`
`
`provides the particular service. The particular instance of the
`
`
`
`
`
`
`
`
`
`icons 602 or buttons 604 and/or a textuallist 606 displayed
`
`
`
`
`
`
`
`Network Computer 410 includes various applications 412
`
`
`
`
`
`
`
`
`
`on the desktop. The system and application services can be
`
`
`
`
`
`
`
`
`(AP1-APn), an active VES object 414 which contains a table
`
`
`
`
`
`
`
`accessed as hyperlinksor as direct control buttons where the
`
`
`
`
`
`
`
`
`
`of configured services and passive stub objects 416 (Print
`
`
`
`
`
`
`
`
`appropriate JAVA code has been downloaded. The remain-
`
`
`
`
`
`
`
`
`
`
`Client Stub, Fax Client Stub, Mail Client Stub) that provide
`
`
`
`
`
`
`
`der of the VEM is downloaded with user applications.
`
`
`
`
`
`
`
`
`connections to the services. The VEM includes the VES, the
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`The initial logging and download of the home page is
`stubs and the VEMCLASSportion of each application.
`
`
`
`
`
`
`
`
`described in FIG. 2. In step 202 the Network Computeris
`The VEM will now be discussed in more detail. For
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`powered onorreset by a user. In response, in step 204 the
`
`
`
`
`
`
`
`
`
`reference, code definitions for the VEM include the VEM-
`
`
`
`
`
`
`Network Computer commences its machine specific, con-
`CLASSand the client and server interfaces. FIG. 5 shows
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`ventional boot sequence. This sequence can be extended to
`
`
`
`
`
`
`
`
`the flow control process for an application whenit wishes to
`
`
`
`
`
`
`
`
`include downloading of the Web browser. In step 206, the
`
`
`
`
`
`
`
`use a network service. As previously discussed, loading the
`
`
`
`
`
`
`
`
`Network Computer prompts the user for a username and
`
`
`
`
`
`VESinto a client is analogous to looking at an HTML page
`
`
`
`
`
`
`
`password. The Network Computer uses conventional meth-
`
`
`
`
`
`
`
`
`
`in a browser. The VES is downloadedand it’s init(}) method
`
`
`
`
`
`
`
`
`ods to determine if the username and passwordare valid in
`
`
`
`
`
`
`
`
`
`is called. The init() method synchronizesitself to ensure that
`
`
`
`
`
`
`
`
`
`
`
`step 208. Those of skill in the art will recognize that steps
`
`
`
`
`
`
`
`the class variable VE_supervisor is initialized only once.
`
`
`
`
`
`
`
`
`206 and 208 could alternatively be performedas part of step
`
`
`
`
`
`
`
`Any subsequent attempts to start a VES are disabled. The
`
`
`
`
`
`
`
`
`204. If step 208 determines that either the username or
`
`
`
`
`
`
`
`
`
`VESassigns itself id=0 by setting the VEM_id instance
`
`
`
`
`
`
`
`
`
`
`passwordare not valid, the method returns to step 206. If the
`
`
`
`
`
`
`
`variable. The class variable, num__AFE,
`is then incre-
`
`
`
`
`
`
`
`
`
`
`username and password are valid, in step 210 the Network
`
`
`
`
`
`
`
`mented. A registry (that contains the Configured Services
`
`
`
`
`
`
`
`Computer downloads the VES and the configurationfile.
`
`
`
`
`
`
`
`
`
`Table 110 and the Table of Applications 112) and a shared__
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`When a VES is downloaded for a user, it initiates con-
`services table are created. Finally, a directory services
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`figuration of all services that are in the configuration file.
`remote object is instantiated, using the DS_server param-
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`The configuration file can be of a conventional flat file
`eters passed in the htmlfile.
`
`
`
`
`
`
`
`
`format. For example, the configuration file can be in the
`
`
`
`
`
`
`
`Once the VEM has been downloaded and initialized,
`
`
`
`
`
`
`
`
`
`form of a Bookmarks file of the type used by Netscape
`
`
`
`
`
`
`
`applications (APs) can be downloaded. (Note that APs are
`
`
`
`
`
`
`Navigator 3.0. This configuration is performed by contacting
`
`
`
`
`
`
`
`assumed to be applets in this discussion. The VEM supports
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`the appropriate service providers andinitializing the client’s
`applications,
`though applets are preferred for improved
`table of services 110 with the server information. Stubs are
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`manageability.) In it’s init( ) method, an AP should call the
`also downloaded for those services that reside on both tiers
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`registerAFE( ) method. This call sets the AP’s instance
`1 and 2.
`
`
`
`
`
`
`
`
`
`variable, VEM_id, to the class variable num__AFE, and
`
`
`
`
`
`
`
`
`
`
`
`
`
`increments num_AFE. Since num_AFE is never
`In addition to the currently configured services, the VES
`has access to all services available on the network. This
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`decremented, the AP now has a unique id. The VESis then
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`enablesa userto add any available service to the desktop and
`called to create an entry for the AP in the registry (the Table
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`as a result to the user’s configuration file.
`of Applications 112). At this time, the entry contains only the
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Service access is provided by a Service Directory Man-
`applet object reference, id and name, but it can be expanded
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`ager (SDM)that maintains a table of services referred to as
`later as needed. The registerAFE( ) methodreturns a unique
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`the Service Directory Table (SDT) 114 (shown in FIG. 1).
`key, called a “cookie”, to the AP to ensure that access to the
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`The Service Directory Table contains information about
`AP information in the registry is controlled. The AP is now
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`system and application services offered by the Service
`fully integrated into the VEM environment and is now
`Providers on the network. It should be understood that there
`
`
`
`
`
`
`
`
`
`
`capable of VEM function.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`can be a plurality of SDMson the network, each maintaining
`When the AP needsa service,it first requests the VEM to
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`a SDTor accessing a single instance of the SDT.
`register the service using one of the registerService(_ )
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Whena Service Provider is connected to the network,it
`methods. On service registration the VES checks the direc-
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`tory service (the SDM) using the LookupService( ) method
`announcesthe set of servicesit offers to the SDM. The steps
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`taken by each Service Provider in announcing the set of
`to get the handle to the service and to see if the service has
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`a stub. If it does, the stub is downloaded. The VEM then
`servicesit offers are shownin FIG. 3. In step 302 the Service
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`adds a service entry to the registry (the Configured Services
`Provider generatesa list of servicesthatit offers. In step 304,
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Table 112)
`that
`includes the service’s handle and,
`if
`the Service Provider identifies the SDM that is responsible
`LGEExhibit-1009/Page 9 of 10
`
`55
`
`
`25
`
`
`30
`
`35
`
`
`40
`
`
`
`50
`
`60
`
`65
`
`
`
`LGE Exhibit-1009/Page 9 of 10
`
`
`
`
`
`US 6,757,729 B1
`
`
`5
`
`
`
`
`
`
`
`appropriate, a reference to the stub. A cookie is passed back
`
`
`
`
`
`
`
`
`
`to the AP. Oncethe service is in the registry, both the AP and
`the VES can access it as needed.
`
`
`
`
`
`
`
`
`
`
`
`
`The choice of which registerService( ) method is called
`
`
`
`
`
`
`
`
`
`depends on: (1) whether a generic service is needed(i.e. one
`
`
`
`
`
`
`
`identifiable with just a name), or whether a more custom
`
`
`
`
`
`
`
`
`
`service is needed (e.g. one that is identified with a list of
`
`
`
`
`
`
`
`
`
`attributes as well as a name); and (2) whether the service
`
`
`
`
`
`
`
`
`shared. If the service is not shared, then the AP registering
`
`
`
`
`
`
`
`
`
`
`the service is the only one that gets access to the cookie.
`
`
`
`
`
`
`
`Otherwise, if the service is present, a cookie is passed back
`
`
`
`
`
`
`
`
`
`that is the same as those given to other APs for the service.
`
`
`
`
`
`
`
`
`
`If a shared service is not yet available in the VEM,the
`
`
`
`
`
`
`shared_service variable is updatedto reflect the availability
`
`
`
`
`
`
`
`
`
`of a new,shared service, and a new cookieis passed back to
`the AP.
`
`
`
`
`
`
`
`
`
`
`
`Access to shared services can be controlled using an
`
`
`
`
`
`
`
`
`access control
`list. Alternatively, shared services can be
`
`
`
`
`
`
`
`
`
`globally available, i.e. any AP can receive the cookie for the
`
`
`
`
`
`
`
`
`
`
`service just by asking for the service. Shared services are
`
`
`
`
`
`
`
`
`useful for minimizing the numberofserver stubs resident on
`
`
`
`
`
`
`
`
`
`a client. They can also be useful if service behavior changes
`
`
`
`
`
`caused by one AP are used by another interactively.
`Shared services can be removed from the VEM in various
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`ways. According to a first embodiment, a reference count is
`
`
`
`
`
`
`
`
`
`
`kept for each service. The reference indicates how many APs
`
`
`
`
`
`
`
`currently have access to the service. When the reference
`
`
`
`
`
`
`
`
`count reaches zero,
`the service is removed by the VES.
`
`
`
`
`
`
`According to an alternative embodiment, only the AP that
`
`
`
`
`
`
`originally brought in the service is allowed to removeit.
`
`
`
`
`
`
`
`
`
`Once the VEM state has been updated to include the
`
`
`
`
`
`
`
`
`
`
`service,
`the AP can get
`the handle by issuing the
`
`
`
`
`
`
`
`
`getServiceHandle( ) method, or get the stub by using the
`
`
`
`
`
`
`getServiceInstance( ) method. The AP is then free to make
`
`
`
`
`
`
`
`
`
`
`a connection of any sort and use the service. The VEM can
`be embodiedto restrict how an AP and service communicate.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`When the service is no longer needed,
`the AP calls the
`
`
`
`
`
`
`
`
`RevokeService( ) method that updates the VEM state as
`
`
`
`
`
`
`
`
`follows:if the service is unique to the AP then the service is
`
`
`
`
`
`
`
`
`removed; if the service is a shared service then it is removed
`in accordance with the rules discussed above.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Nowthat the invention has been described by way of the
`
`
`
`
`
`
`preferred embodiment, various modifications and improve-
`
`
`
`
`
`
`
`
`
`
`ments will occur to those of skill in the art. Thus, it should
`
`
`
`
`
`
`
`
`be understood that
`the preferred embodiment has been
`
`
`
`
`
`
`
`provided as an example andnotasa limitation. The scope of
`
`
`
`
`
`
`the invention is defined by the appended claims.
`Whatis claimedis:
`
`
`
`
`
`
`
`
`
`1. A method for dynamically providing access to and
`
`
`
`
`
`
`
`
`interaction with a plurality of network system and applica-
`
`
`
`
`
`
`tion services to an application executing on a networkclient,
`
`
`
`
`
`
`
`said network client having an environment management
`
`
`
`
`
`
`software system, comprising the stepsof:
`
`
`
`
`
`automatically dynamically determining when the appli-
`
`
`
`
`
`
`
`cation requires access to at least one of a plurality of
`
`
`
`
`
`
`remote network system and application services;
`
`
`
`
`
`
`
`in response to a determination that
`the application
`
`
`
`
`
`
`
`requires access to at least one of a plurality of remote
`
`
`
`
`
`
`
`network system and application services said environ-
`
`
`
`
`
`
`
`ment management software system of said network
`
`
`
`
`
`client performing the steps of:
`
`
`
`wn
`
`10
`
`
`15
`
`
`
`20
`
`25
`
`
`30
`
`35
`
`
`40
`
`
`
`45
`
`
`50
`
`55
`
`
`
`6
`
`
`
`
`
`
`
`identifying a plurality of different potential service pro-
`
`
`
`
`
`
`
`
`
`viders for each particular one of the at least one remote
`
`
`
`
`
`network system and application services;
`
`
`
`
`
`
`
`
`locating at least one potential service provider from said
`
`
`
`
`
`
`plurality of different potential remote service providers
`
`
`
`
`
`
`
`
`for the at least one remote network service required by
`
`
`
`
`the application on demand; and
`
`
`
`
`
`
`downloading at least one object comprising executable
`
`
`
`
`
`
`
`code into the