throbber

`
`
`
`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
`
`
`
`
`
`MAIL
`
`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

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