throbber

`
`
`
`US 6,757,729 B1
`(10) Patent No.:
`(12) United States Patent
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Devarakonda et al.
`(45) Date of Patent:
`*Jun. 29, 2004
`
`U5006757729B1
`
`
`
`(75)
`
`
`(54) VIRTUAL ENVIRONMENT MANAGER FOR
`
`
`
`
`
`
`
`NETWORK COMPUTERS
`Inventors: Murthy Devarakonda, Briarcliff
`
`
`
`
`.
`.
`.
`
`
`
`
`Manon NY (Us) AJay M0hlndra>
`
`
`
`
`Yorktown Helgms, NY (Us); Deborra
`Jean Zukowskl, Yorktown Helghts, NY
`
`
`
`
`
`(US)
`
`
`
`International Business Machines
`
`
`
`Corporation, Armonk, NY (US)
`.
`.
`.
`
`
`
`
`
`
`Thls. patent 1.55uéd on a contmued pros-
`
`
`
`
`
`
`ecution apphcation filed under 37 CFR
`
`
`
`
`
`
`153(d)’ and IS “We?“ to the twenty year
`
`
`
`
`
`
`term prov151ons of 35 U.S.C.
`patent
`
`154(a)(2).
`
`
`(73) Assignee:
`
`
`
`.
`.
`
`( * ) Not1ce.
`
`
`
`
`
`
`
`Subject to any disclaimer, the term of this
`
`
`
`
`patent is extended or adjusted under 35
`
`
`
`U-S-C- 154(b) by0 days.
`
`
`(21) Appl. No.: 08/722,434
`
`
`
`.
`
`
`
`
`OCt' 7’ 1996
`(22) Flled'
`
`Int. Cl.7 ....................... G06F 15/173; G06F 15/16;
`(51)
`
`
`
`
`
`
`
`G06F 9/00
`
`
`.
`.
`
`
`
`
`
`
`........................ 709/226, 709/229, 718/104
`(52) U..S. Cl.
`
`(58)
`F1eld of Search ....................... 395/200.02, 200.06,
`
`
`
`
`
`395/200.09, 200.2, 694, 680, 682, 683;
`
`
`
`
`
`
`718/100, 104; 719/330, 310, 315; 709/200—226,
`
`
`
`
`
`
`229
`
`
`(56)
`
`
`
`References Cited
`
`
`
`
`
`
`
`US PATENT DOCUMENTS
`................ 709/314
`2/1993 Skeen et a1.
`5,187,787 A *
`
`
`
`
`
`5,261,044 A * 11/1993 Dev et a1. ................ 345/855
`
`
`
`5,287,507 A *
`2/1994 Hamilton et a1.
`..... 719/315
`
`
`
`
`
`
`5,341,477 A *
`8/1994 Pitkin et a1.
`..... 709/226
`
`
`
`
`
`
`5,408,619 A *
`4/1995 Oran ............. 707/10
`
`
`
`
`
`6/1995 Gray ...........
`5,426,421 A *
`340/3.32
`
`
`
`8/1995 Wrabetz et al.
`5,442,791 A *
`............. 709/330
`
`
`
`
`
`
`(List continued on next page.)
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`EP
`
`
`$8
`
`W0
`
`W0
`
`W0
`
`W0
`
`
`
`
`FOREIGN PATENT DOCUMENTS
`
`
`0780778
`12/1995
`
`
`
`
`
`
`‘22)99593232 :1 :
`3/1995
`/1999
`
`
`
`
`W0 9944127 A1 *
`9/1999
`
`
`
`
`W0 9944134 A1 *
`9/1999
`
`
`
`
`W0 0077635 A1 * 12/2000
`
`
`
`
`W0 0223927 A2 *
`3/2002
`
`
`
`
`
`
`
`""""""""""" 29/6
`
`G06F/9/46
`
`...... 006F/9/46
`
`
`
`...... 006F/9/46
`
`
`
`...... 006F/9/46
`
`
`
`............ H04Q/7/00
`
`
`
`
`
`
`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-
`
`
`
`
`
`
`wor ,, 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 00 Technologies
`
`
`
`
`
`(COOTS), Jun. 1995 .*
`
`
`
`Wollrath, Ann et al. “A Distributed Object Model for Java”,
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`USENIX, Conference on 00 Technologies and Systems
`(COOTS), Jun. 1996*
`
`
`
`Sun Microsystems. “The Java Language Environment, A
`
`
`
`
`
`
`White Paper”, Oct. 1995.*
`
`
`
`
`Joint Submission, Interoperability Between Microsoft COM
`
`
`
`
`
`
`
`
`
`
`and OMG CORBA 29, Aug. 1994*
`.
`.
`.
`
`
`
`Primary Exammer—Lew1s A. Bullock, Jr.
`(74) Attorney, Agent, or Firm—Gail H. Zarich; Anne
`
`
`
`
`
`
`
`Vachon Dougherty
`
`
`
`
`
`
`
`
`
`
`
`
`(57)
`
`ABSTRACT
`
`
`
`A system and method for a downloadable just-in-time
`
`
`
`
`
`
`
`
`
`
`
`
`
`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 Chem send“? and
`
`
`
`
`
`
`
`stores 1nf0rmat10n about these serv1ces. When an applicatlon
`executing on the Network Computer wishes to 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.
`
`
`
`17 Claims, 5 Drawing Sheets
`
`
`
`
`
`
`10?
`
`SERVICE DIREEIURV RMAGER
`SERVICE DIRECTORY IAELE
`
`AIIRIBUIE SERVICE PRUVIUER
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`105(1)
`
`11011!
`
`
`
`
`
`NEIHJW CWFUIER
`VIRIUAL ENVIRWENI
`
`
`MANAGER
`
`
`
`EONHGURED
`
`SERVICES
`HIABLE 0F
`
`APPLIEAIIOIE
`
`
`
`
`
`
`104(1)
`SERVICE
`PROVIDER 1
`
` CDNRUNICAIIDN
`SERVIEE
`10011!
`NETWK
`PROVIDER 2
`
`
`ERVICE
`
`
`PRUVIDER 3
`
`101(3)
`
`[INK EDRFUIER 105(2)
` VIRIUM ENVIMMRENI
`
`
`
`
`
`cmnauaw
`“1“?)
`
`
`SERVICES
`110(2)
`
`
`
`
`
`
`APPLIEAIIWS
`TABLE OF
`112(2)
`114(1)
`
`
`
`
`
`
`ERDWER
`
`
`11412]
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`LGE Exhibit-1009/Page 1 of 10
`LGE v. Uniloc
`
`LGE Exhibit-1009/Page 1 of 10
`LGE v. Uniloc
`
`

`

`
`
`US 6,757,729 B1
`
`Page 2
`
`
`US. PATENT DOCUMENTS
`
`
`
`
`................ 709/203
`5,475,819 A * 12/1995 Miller et al.
`
`
`
`
`
`
`............. 395/600
`5,483,652 A
`1/1996 Sudama et al.
`
`
`
`
`
`
`
`57347828 A *
`3/1998 Pendse etal-
`709/203
`
`
`
`
`
`5,748,896 A *
`5/1998 Daly et al. .................. 709/223
`
`
`
`
`
`
`5,802,530 A *
`9/1998 Van Hoff .................... 345/835
`
`
`
`
`
`
`
`57826000 A * 10/1998 Hamilton
`714/4
`
`
`
`
`5,838,906 A * 11/1998 D0y1.e et al.
`................ 709/202
`
`
`
`
`
`
`5,852,722 A * 12/1998 Hamllton .................... 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 a1.
`........... 709/219
`
`
`
`
`
`
`
`............ 709/250
`1/2000 Frailong et al.
`6,012,100 A *
`
`
`
`
`
`
`............ 709/222
`6/2000 Frailong et al.
`6,073,172 A *
`
`
`
`
`
`
`............. 709/203
`6,131,116 A * 10/2000 Rigging et a1.
`
`
`
`
`
`
`
`..... 707/10
`6,144,960 A * 11/2000 Okada et a1.
`
`
`
`
`
`
`............... 709/221
`6,185,611 B1 *
`2/2001 Waldo etal.
`
`
`
`
`
`
`
`............ 713/201
`6,266,774 B1 *
`7/2001 Sampath et a1.
`
`
`
`
`
`
`
`6,449,642 B2 *
`9/2002 Bourke—Dunphy et a1.
`. 709/222
`
`
`
`
`
`
`
`6,496,858 B1 * 12/2002 Frailong etal.
`............ 709/221
`
`
`
`
`
`
`
`6,560,656 B1 *
`5/2003 O’Sullivan et a1.
`......... 709/250
`
`
`
`
`
`
`
`
`6,591,290 B1 *
`7/2003 Clarisse et a1.
`709/205
`
`
`
`
`
`
`6,604,127 B2 *
`8/2003 Murphy etal.
`............. 709/203
`
`
`
`
`
`
`
`
`* cited by examiner
`
`
`
`
`
`LGE Exhibit-1009/Page 2 0f 10
`
`LGE Exhibit-1009/Page 2 of 10
`
`

`

`
`US. Patent
`
`
`
`Jun. 29,2004
`
`
`
`
`Sheet 1 0f5
`
`
`
`US 6,757,729 B1
`
`
`
`FIG.
`
`
`
`1
`
`
`
`
`
`
`
`SERVICE DIRECTORY MANAGER
`
`
`
`SERVICE DIRECTORY TABLE
`
`
`
`
`
`
`ATTRIBUTE
`SERVICE PROVIDER
`
`
`
`114
`
`
`
`102
`
`
`
`
`
`104(1)
`
`104‘2’
`
`112
`
`COMMUNICATION‘
`
`NETWORK
`
`108m
`
`
`
`
`NETNORK COMPUTER
`
`
`
`VIRTUAL ENVIRONMENT
`105(1)
`
`MANAOER
`
`
`
`
`110(1)
`
`
`
`
`CONFIGURED
`SERVICES
`
`
`NETMORK COMPUTER
`
`
`
`SERVICE
`
`PROVIDER 1
`
`SERVICE
`
`PH0VIDER 2
`
`
`-
`SERVICE
`PROVIDER 3
`
`104(3)
`
`
`
`
`
`
`VIRTUAL ENVIRONMENT
`
`
`
`
`
`
`SERVICES 105(2)
`
`
`
`
`
`
`
`112(1)
`
`109(1)
`
`
`
`
`TABLE OF
`
`
`
`APPLICATIONS
`
`
`
`
`I
`
`BRONSER
`
`11411)
`
`
`
`MANAGER
`
`CONEICUREO
`
`
`
`
`
`
`TABLE OF
`
`
`APPLICATIONS
`
`
`
`
`
`IIIIHRAHSETIIII
`
`
`
`
`
`
`108121
`
`
`
`110(2)
`
`112(2)
`
`
`
`109(2)
`
`
`
`114(2)
`
`
`
`LGE Exhibit-1009/Page 3 of 10
`
`LGE Exhibit-1009/Page 3 of 10
`
`

`

`
`US. Patent
`
`
`
`
`
`Jun. 29,2004
`
`
`Sheet 2 0f5
`
`
`
`
`
`US 6,757,729 B1
`
`
`FIG. 2
`
`
`
`
`
`
`TURN ON THE
`
`NETWORK COMPUTER
`
`
`
`
`
`
`
`
`THE NETWORK COMPUTER GOES
`
`
`
`THROUGH A BOOT SEOUENCE
`
`
`
`202
`
`
`
`
` 204
`
`
`
`
`
`
`
`PROMPT USER FOR <USER
`
`
`
`NAME> AND <PASSWORD>
`
`205
`
`208
`
`
`
`
`
`
`IS THE <USER
`
`
`
`NAME> AND PASSWORD
`
`
`VALID?
`
` LOAD USER'S DESKTOP
`
`
`
`
`
`
`ALONG WITH THE VEM
`
`
`210
`
`
`
`FIG.
`
`
`
`3
`
`
`
`
`
`
`
`
`IDENTIFY SERVICES THAT WILL BE
`
`
`
`OFFERED BY THIS SERVICE PROVIDER
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`IDENTIFY THE SERVICE DIRECTORY MANAGER THAT IS
`
`
`
`
`
`
`
`RESPONSIBLE FOR MAINTAINING THE LIST OF SERVICES
`
`
`
`
`
`
`
`
`
`IN OUR NETWORK. CALL THIS MANAGER AS DIRECTORY M
`
`302
`
`
`
`
`
`304
`
`
`
`
`
`
`
`
`
`
`ANY MORE
` 310
`
`
` INITIALIZATION
`
`
`
`SERVICES IN LIST
`
`
`
`
`COMPLETE
`
`
`SERVICELIST?
`
`
`
`
`YES
`
`
`
`
`
`
`SEND REGISTER MESSAGE TO SERVICE
`
`
`
`DIRECTORY MANAGER. DIRECTORY M
`
`
`
`
`
`LGE Exhibit-1009/Page 4 of 10
`
`LGE Exhibit-1009/Page 4 of 10
`
`

`

`
`US. Patent
`
`
`
`
`
`Jun. 29, 2004
`
`
`
`
`Sheet 3 0f 5
`
`
`
`US 6,757,729 B1
`
`FIG.
`
`
`
`4
`
`
`
`
`
`
`
`SERVICE DIRECTORY MANAGER
`
`
`
`SERVICE DIRECTORY TABLE
`SERVICE PRovIOER
`AIIRIBOIE
`
`
`
`
`
`
`I
`
`
`
`
`
`
`PRINTER
`
`
`
`
`408
`
`
`
`
`NAIL
`
`
`
`
`
`
`
`
`
`FAX
`
`
`
`
`
`
`
`NETWORK COMPUTER
`
`
`
`
`
`A‘U1
`
`
`
`COMMUNICATION 404
`NEIwORK
`
`402
`
`
`
`
`PRINT
`
`SERVER STUB
`
`
`
`
`
`
`
`FAX
`
`
`
`SERVER STUB
`
`
`
`MAIL
`
`SERVER STUB
`
`
`
`
`
`
`
`
`
`
`
`
`
`A_U D
`
`<rn CD
`
`
`
`
`
`
`PRINT CLIENT STUB
`
`
`
`FAX CLIENT STUB
`
`
`
`MAIL CLIENT STUB
`
`
`OTHER STUBS
`
`
`
`410
`
`
`
`
`
`
`
`LGE Exhibit-1009/Page 5 of 10
`
`LGE Exhibit-1009/Page 5 of 10
`
`

`

`US. Patent
`
`Jun. 29, 2004
`
`Sheet4 0f5
`
`US 6,757,729 B1
`
`‘|.||Jl||.|l
`
`
`
`:ta.memcdmzmm:5335.85%ESSE
`
`l|[u|.|ll|llll..ll|v_gamma
`
`
`__mmzszag
`
`on_umzzoum:Hmm
`
`muH>mmmMIRI_H3
`
`mmmzazHmomoz<
`
`
`
`
`
`mz<zmw>¢mmmzmzpmm
`H36%;
`mgzmsmscmzmébmzu
`
`‘lll.|ll|l|1|wzooET:
`
`__283888330
`
`
`
`onhumzzogmmO4u
`
`onH<zmomzH_>meHmmmmzhmm>ozmm_
`‘l
`
`:3€32;E,
`
`
`
`MQH>¢mwm>o=mm
`
`
`
`tom;>¢_mHmmm
`
`LGE Exhi
`
`it-1009/Page 6 of 10
`
`|le<ngmmea22%
`
`
`
`
`meoouwaoz<=wuH>mmmugaz<zmuH>mwm
`
`MH¥OOQ
`
`
`
`%:5;;ngmmm5;;ME3%;
`
`
`III_[gamma5:;ME
`
`
`rmsoz..8;._§e_§E322%.5was..§oz..§E€E§
`
`H5
`
`wH¥ooQ<mzmzhmm
`
`"¢<MEasEm:Effimamm
`ZOEEEZHwasAll.508
`
`WEE”
`
`
`mmm%Hw,>¢o%mm.Eozm—EQ_mm;"zongmnz
`$22;m"
`
`.mm
`
`m
`
`LGE Exhibit-1009/Page 6 of 10
`
`

`

`US. Patent
`
`
`
`
`Jun. 29, 2004
`
`
`
`
`Sheet 5 0f 5
`
`
`US 6,757,729 B1
`
`
`
`FIG.
`
`
`
`6
`
`
`
`
`VEM DESKTOP
`
`
`
`
`
`
`DELETE
`
`
`PRINT
`
`
`
`
`
`DESKTOP
`
`
`
`SYSTEM SERVICES
`
`5L2
`
`
`NOTESLITE
`
`fl
`
`CALENDAR
`
`
`
`MAIL
`
`
`
`
`
`LIST OF APPLICATIONS
`
`
`
`
`
`OFFICE APPLICATIONS
`
`
`PERSONAL PRODUCTIVITY APPLICATIONS
`
`
`
`
`
`
`
`
`LGE Exhibit-1009/Page 7 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 common place. 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 memory and 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 environment it can be run under so that it can
`
`
`
`
`
`
`
`
`provide support for necessary basic system services. Further,
`
`
`
`
`
`
`
`
`the former approach adds to the cost of the network clients,
`
`
`
`
`
`
`
`
`
`while the latter approach adds to the complexity in the
`
`
`
`
`
`
`
`
`
`
`design of applications.
`II. SUMMARY OF THE INVENTION
`
`
`
`
`
`5
`
`10
`
`15
`
`
`
`20
`
`25
`
`
`30
`
`35
`
`
`40
`
`
`
`45
`
`
`invention to provide a
`is an object of the present
`It
`
`
`
`
`
`
`
`
`
`
`flexible, powerful, and portable means for enabling network
`
`
`
`
`
`
`
`based services for clients.
`
`
`
`
`In a preferred embodiment, a downloadable middleware
`
`
`
`
`
`called the Virtual Environment Manager (VEM) is provided.
`
`
`
`
`
`
`
`The VEM allows applications 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.
`
`
`III. BRIEF DESCRIPTION OF THE DRAWING
`
`
`
`
`
`
`55
`
`
`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 shows the flow chart for initial steps taken by each
`
`
`
`
`
`
`
`
`service provider;
`
`
`FIG. 4 shows an instance of the system state with the
`
`
`
`
`
`
`
`
`
`VEM configured;
`
`
`
`
`
`60
`
`65
`
`
`
`
`
`
`
`2
`
`FIG. 5 shows the 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 (i.e.,
`
`
`
`
`
`
`
`
`
`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
`
`
`
`
`
`
`
`
`
`VEMCLASS that it relies on for defining a collection of
`
`
`
`
`
`
`
`objects (in the sense of “object oriented programming”).
`
`
`
`
`
`
`
`
`One of the objects included in each VEM is an active 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
`
`
`
`
`
`
`
`
`
`and is 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
`
`
`
`
`
`
`
`VEMCLASS in order to interact with the VES. The object
`
`
`
`
`
`
`
`
`class is compiled with the application and bound to 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 which it 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
`
`
`
`
`
`
`
`
`
`
`LGE Exhibit-1009/Page 8 of 10
`
`LGE Exhibit-1009/Page 8 of 10
`
`

`

`
`
`US 6,757,729 B1
`
`
`
`
`3
`identity verification, the network computer presents the user
`
`
`
`
`
`
`
`with a desktop environment.
`
`
`
`The desktop environment is preferably a JAVA container.
`
`
`
`
`
`
`The JAVA container runs on top of a JAVA virtual machine.
`
`
`
`
`
`
`
`
`Both the container and the JAVA virtual machine are pro-
`
`
`
`
`
`
`
`
`
`
`vided by a program such as a Web Browser 114(1), 114(2)
`
`
`
`
`
`
`
`(e.g. Netscape Navigator) which executes on the Network
`
`
`
`
`
`
`
`Computer. The browser can be downloaded during the
`
`
`
`
`
`
`
`
`Network Computer’s boot sequence or provided as an
`
`
`
`
`
`
`
`
`integral part of the Network Computer.
`
`
`
`
`
`As part of the initialization process, the browser down-
`
`
`
`
`
`
`
`
`
`loads the VES and a configuration file for the user from a
`
`
`
`
`
`
`
`
`
`
`Service Provider. The VES uses the configuration file to set
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`up the user’s desktop environment (desktop). An example
`desktop (which can be in the form of a home page) is shown
`
`
`
`
`
`
`
`
`in FIG. 6. The configuration file contains a list of system and
`
`
`
`
`
`
`
`
`
`application-services that the user accesses most frequently.
`
`
`
`
`
`
`
`These system and application services can be embodied as
`
`
`
`
`
`
`
`icons 602 or buttons 604 and/or a textual list 606 displayed
`
`
`
`
`
`
`
`
`
`on the desktop. The system and application services can be
`
`
`
`
`
`
`
`
`
`accessed as hyperlinks or as direct control buttons where the
`
`
`
`
`
`
`
`appropriate JAVA code has been downloaded. The remain-
`
`
`
`
`
`
`
`
`der of the VEM is downloaded with user applications.
`
`
`
`
`
`
`
`The initial logging and download of the home page is
`
`
`
`
`
`
`
`
`described in FIG. 2. In step 202 the Network Computer is
`
`
`
`
`
`
`
`
`powered on or reset by a user. In response, in step 204 the
`
`
`
`
`
`
`
`
`Network Computer commences its machine specific, con-
`
`
`
`
`
`
`ventional boot sequence. This sequence can be extended to
`
`
`
`
`
`
`
`include downloading of the Web browser. In step 206, the
`
`
`
`
`
`
`
`
`Network Computer prompts the user for a username and
`
`
`
`
`
`
`
`
`password. The Network Computer uses conventional meth-
`
`
`
`
`
`
`
`ods to determine if the username and password are valid in
`
`
`
`
`
`
`
`
`step 208. Those of skill in the art will recognize that steps
`
`
`
`
`
`
`
`
`
`
`
`206 and 208 could alternatively be performed as part of step
`
`
`
`
`
`
`
`
`204. If step 208 determines that either the username or
`
`
`
`
`
`
`
`
`password are not valid, the method returns to step 206. If the
`
`
`
`
`
`
`
`
`
`
`username and password are valid, in step 210 the Network
`
`
`
`
`
`
`
`
`
`
`Computer downloads the VES and the configuration file.
`
`
`
`
`
`
`
`When a VES is downloaded for a user, it initiates con-
`
`
`
`
`
`
`
`figuration of all services that are in the configuration file.
`
`
`
`
`
`
`
`
`
`The configuration file can be of a conventional flat file
`
`
`
`
`
`
`
`
`
`format. For example, the configuration file can be in the
`
`
`
`
`
`
`
`
`form of a Bookmarks file of the type used by Netscape
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Navigator 3.0. This configuration is performed by contacting
`the appropriate service providers and initializing the client’s
`
`
`
`
`
`
`
`
`table of services 110 with the server information. Stubs are
`
`
`
`
`
`
`
`
`
`
`also downloaded for those services that reside on both tiers
`
`
`
`
`
`
`
`
`
`1 and 2.
`
`
`In addition to the currently configured services, the VES
`
`
`
`
`
`
`
`
`has access to all services available on the network. This
`
`
`
`
`
`
`
`
`
`enables a user to add any available service to the desktop and
`
`
`
`
`
`
`
`
`
`as a result to the user’s configuration file.
`
`
`
`
`
`
`Service access is provided by a Service Directory Man-
`
`
`
`
`
`
`ager (SDM) that maintains a table of services referred to as
`
`
`
`
`
`
`
`
`the Service Directory Table (SDT) 114 (shown in FIG. 1).
`
`
`
`
`
`
`
`
`
`The Service Directory Table contains information about
`
`
`
`
`
`
`
`system and application services offered by the Service
`
`
`
`
`
`
`
`
`Providers on the network. It should be understood that there
`
`
`
`
`
`
`
`can be a plurality of SDMs on the network, each maintaining
`
`
`
`
`
`
`
`a SDT or accessing a single instance of the SDT.
`
`
`
`
`
`
`
`
`When a Service Provider is connected to the network, it
`
`
`
`
`
`
`announces the set of services it offers to the SDM. The steps
`
`
`
`
`
`
`
`
`
`taken by each Service Provider in announcing the set of
`
`
`
`
`
`
`
`
`
`services it offers are shown in FIG. 3. In step 302 the Service
`
`
`
`
`
`
`
`
`Provider generates a list of services that it offers. In step 304,
`
`
`
`
`
`
`
`
`the Service Provider identifies the SDM that is responsible
`
`
`
`
`
`
`
`
`10
`
`15
`
`
`
`20
`
`25
`
`
`30
`
`35
`
`
`40
`
`
`
`45
`
`50
`
`55
`
`
`60
`
`65
`
`
`
`4
`
`for maintaining the list of services in the network. In step
`
`
`
`
`
`
`
`
`
`306 the Service Provider scans the list of services and
`
`
`
`
`
`
`
`
`
`
`determines the next service to be registered. If there is
`
`
`
`
`
`
`
`
`
`
`another service to be registered,
`in step 308 the Service
`
`
`
`
`
`
`
`
`
`
`Provider sends a REGISTER message to the SDM (directory
`
`
`
`
`
`
`
`M) and then returns to step 306. If there are no more services
`
`
`
`
`
`
`
`
`
`in the list, initialization is completed in step 310. It should
`
`
`
`
`
`
`
`
`be understood that steps 306 and 308 can be replaced with
`
`
`
`
`
`
`
`
`
`
`a single step in which the entire list is read only once and
`
`
`
`
`
`
`
`
`
`
`
`
`
`then sent to the appropriate SDM as part of a single message
`
`
`
`
`
`
`
`
`or message sequence.
`
`
`
`An instance of the system state in which various client
`
`
`
`
`
`
`
`
`
`
`stubs are located at the Network Computers is shown in FIG.
`
`
`
`
`
`
`
`
`4. The Figure shows three Service Providers: a Print Server
`
`
`
`
`
`
`
`
`
`402, a Fax Server 404 and a Mail Server 406. The SDT 408
`
`
`
`
`
`
`
`
`
`
`includes information about the three service providers. In
`
`
`
`
`
`
`
`
`particular, the information describes the type (attribute) of
`
`
`
`
`
`
`
`
`service and the location of the Service Provider which
`
`
`
`
`
`
`
`
`
`provides the particular service. The particular instance of the
`
`
`
`
`
`
`
`
`Network Computer 410 includes various applications 412
`
`
`
`
`
`
`
`(AP1-APn), an active VES object 414 which contains a table
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`of configured services and passive stub objects 416 (Print
`Client Stub, Fax Client Stub, Mail Client Stub) that provide
`
`
`
`
`
`
`
`
`
`
`connections to the services. The VEM includes the VES, the
`
`
`
`
`
`
`
`
`stubs and the VEMCLASS portion of each application.
`
`
`
`
`
`
`
`The VEM will now be discussed in more detail. For
`
`
`
`
`
`
`
`
`reference, code definitions for the VEM include the VEM-
`
`
`
`
`
`
`
`
`
`CLASS and the client and server interfaces. FIG. 5 shows
`
`
`
`
`
`
`
`
`
`the flow control process for an application when it wishes to
`
`
`
`
`
`
`
`
`use a network service. As previously discussed, loading the
`
`
`
`
`
`
`
`VES into a client is analogous to looking at an HTML page
`
`
`
`
`
`in a browser. The VES is downloaded and it’s init() method
`
`
`
`
`
`
`
`
`
`is called. The init() method synchronizes itself to ensure that
`
`
`
`
`
`
`
`
`
`the class variable VEisupervisor is initialized only once.
`
`
`
`
`
`
`
`Any subsequent attempts to start a VES are disabled. The
`
`
`
`
`
`
`
`VES assigns itself id=0 by setting the VEMiid instance
`
`
`
`
`
`
`
`
`
`variable. The class variable, numiAFE,
`is then incre-
`
`
`
`
`
`
`
`mented. A registry (that contains the Configured Services
`
`
`
`
`
`
`
`Table 110 and the Table of Applications 112) and a sharedi
`
`
`
`
`
`
`
`
`
`services table are created. Finally, a directory services
`
`
`
`
`
`
`
`remote object is instantiated, using the DSiserver param-
`
`
`
`
`
`
`
`eters passed in the html file.
`
`
`
`
`
`Once the VEM has been downloaded and initialized,
`
`
`
`
`
`
`
`applications (APs) can be downloaded. (Note that APs are
`
`
`
`
`
`
`
`assumed to be applets in this discussion. The VEM supports
`
`
`
`
`
`
`
`applications,
`though applets are preferred for improved
`
`
`
`
`
`
`
`manageability.) In it’s init( ) method, an AP should call the
`
`
`
`
`
`
`
`registerAFE( ) method. This call sets the AP’s instance
`
`
`
`
`
`
`
`
`variable, VEMiid, to the class variable numiAFE, and
`
`
`
`
`
`
`
`increments numiAFE. Since numiAFE is never
`
`
`
`
`
`decremented, the AP now has a unique id. The VES is then
`
`
`
`
`
`
`
`called to create an entry for the AP in the registry (the Table
`
`
`
`
`
`
`
`
`
`of Applications 112). At this time, the entry contains only the
`
`
`
`
`
`
`
`
`
`
`applet object reference, id and name, but it can be expanded
`
`
`
`
`
`
`
`
`later as needed. The registerAFE( ) method returns a unique
`
`
`
`
`
`
`
`key, called a “cookie”, to the AP to ensure that access to the
`
`
`
`
`
`
`
`
`AP information in the registry is controlled. The AP is now
`
`
`
`
`
`
`
`fully integrated into the VEM environment and is now
`
`
`
`
`
`
`
`
`capable of VEM function.
`
`
`
`When the AP needs a service, it first requests the VEM to
`
`
`
`
`
`
`
`register the service using one of the registerService( )
`
`
`
`
`
`
`
`
`methods. On service registration the VES checks the direc-
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`tory service (the SDM) using the IlookupService( ) method
`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
`
`
`
`
`
`
`
`
`
`adds a service entry to the registry (the Configured Services
`
`
`
`
`
`
`
`
`Table 112)
`that
`includes the service’s handle and,
`if
`
`
`
`
`
`
`
`
`
`
`LGE Exhibit-1009/Page 9 of 10
`
`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. Once the 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
`
`
`
`
`
`
`
`
`
`sharediservice variable is updated to reflect the availability
`
`
`
`
`
`
`of a new, shared service, and a new cookie is 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 number of server 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 remove it.
`
`
`
`
`
`
`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 embodied to 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.
`
`
`
`
`
`
`
`Now that 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 and not as a limitation. The scope of
`
`
`
`
`
`
`
`the invention is defined by the appended claims.
`
`
`
`
`
`
`What is claimed is:
`
`
`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 network client,
`
`
`
`
`
`
`said network client having an environment management
`
`
`
`
`
`
`
`software system, comprising the steps of:
`
`
`
`
`
`
`
`
`
`
`
`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
`
`
`
`
`
`

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