`Devarakonda et al.
`
`(10) Patent N0.:
`(45) Date of Patent:
`
`US 6,757,729 B1
`*Jun. 29, 2004
`
`US006757729B1
`
`(54) VIRTUAL ENVIRONMENT MANAGER FOR
`NETWORK COMPUTERS
`
`(75) Inventors: Murthy Devarakonda, Briarcliff
`Manor, NY (US); Ajay Mohindra,
`Yorktown Heights, NY (US); Deborra
`Jean Zukowski, Yorktown Heights, NY
`(Us)
`International Business Machines
`Corporation, Armonk, NY (US)
`
`Assignee:
`
`(73)
`
`Notice:
`
`This patent issued on a continued pros
`ecution application ?led under 37 CFR
`1.53(d), and is subject to the tWenty year
`patent term provisions of 35 U.S.C.
`154(a)(2).
`
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 0 days.
`
`(21)
`(22)
`(51)
`
`(52)
`(58)
`
`(56)
`
`Appl. No.: 08/722,434
`Filed:
`Oct. 7, 1996
`
`Int. Cl.7 ..................... .. G06F 15/173; G06F 15/16;
`G06F 9/00
`US. Cl. ...................... .. 709/226; 709/229; 718/104
`Field of Search ..................... .. 395/200.02, 200.06,
`395/20009, 200.2, 694, 680, 682, 683;
`718/100, 104; 719/330, 310, 315; 709/200—226,
`229
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`FOREIGN PATENT DOCUMENTS
`
`EP
`W0
`W0
`W0
`W0
`W0
`W0
`
`12/1995
`0780778
`W0 95 17064 A1 * 6/1995
`W0 9944124 A1 * 9/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
`.... .. G06F/9/46
`.... .. G06F/9/46
`.... .. G06F/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
`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 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 2.0, Aug. 1994.*
`
`Primary Examiner—LeWis 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 con?gures the default client services and
`stores information about these services. When an application
`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
`
`5,187,787 A *
`5,261,044 A *
`5,287,507 A *
`5,341,477 A *
`5,408,619 A
`*
`5,426,421 A
`5,442,791 A
`(List continued on neXt page.)
`
`Skeen et al. .............. .. 709/314
`
`Dev et al. . . . . . . . . . . .
`
`Hamilton et al.
`Pitkin et al.
`
`Oran . . . . . . .
`
`Gray ......... ..
`
`. . . .. 345/855
`
`719/315
`709/226
`
`. . . . .. 707/10
`
`340/3.32
`
`WrabetZ et al. ........... .. 709/330
`
`2/1993
`11/1993
`2/1994
`8/1994
`4/1995
`6/1995
`8/1995
`
`*
`
`*
`
`SERVICE DIRECTURV HMAGER
`SERVICE DIRECTORY IABLE
`AHRIBUTE
`SERVICE PRUVIUER
`
`llJElll
`
`10B
`
`NETHJW CWPUTER
`
`vrmua ENVIRWENI
`HANAGER
`
`/ murmurs
`mm‘ “
`SERVICES
`
`trim EOHFUIER
`
`HBLE 0F
`murmurs
`
`~112K11
`
`vmuu ENVIMNHEM
`MNABER
`
`‘'55
`
`~~~1nsm
`
`CDNFIEURED
`SERVICES
`
`10m)
`
`"\wsm
`
`'\1|1Bl?l
`\num
`“1W1
`
`Lmm
`
`TABLEUF \
`wucmms
`
`“5
`
`~~~1os121
`
`APPL-1009 / Page 1 of 10
`Apple v. Uniloc
`
`
`
`US 6,757,729 B1
`Page 2
`
`US. PATENT DOCUMENTS
`
`5,475,819 A * 12/1995 Miller et a1. .............. .. 709/203
`5,483,652 A
`1/1996 Sudama et a1. ........... .. 395/600
`5734828 A * 3/1998 Pendse ct a1~
`709/203
`5,748,896 A * 5/1998 Daly et a1. ................ .. 709/223
`5,802,530 A * 9/1998 Van Hoff .................. .. 345/835
`5,826,000 A * 10/1998 Hamilton
`714/4
`5,838,906 A * 11/1998 Doyle et a1. .............. .. 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 a1. ........ .. 345/473
`6,009,464 A * 12/1999 Hamilton et a1. ......... .. 709/219
`
`6,012,100 A * 1/2000 Frailong et a1. .......... .. 709/250
`6,073,172 A * 6/2000 Frailong et a1. .......... .. 709/222
`6,131,116 A * 10/2000 Rigging et a1_ ___________ __ 709/203
`6,144,960 A * 11/2OOO Okada et a1'
`“ 707/10
`6,185,611 B1 * 2/2001 Waldo e161. ............. .. 709/221
`6,266,774 B1 * 7/2OO1 Sampath et a1' """"""" “ 713/201
`6,449,642 B2 * 9/2002 BOurke_Dunphy et a1~ ' 709/222
`6,496,858 B1 * 12/2002 Frailong e161. .......... .. 709/221
`6,560,656 B1 * 5/2003 O’Sullivan et a1' ~~~~~~~ n 709050
`6,591,290 B1 * 7/2003 Clarisse etaL
`709/205
`6,604,127 B2 * 8/2003 Murphy 6161. ........... .. 709/203
`
`* cited by examiner
`
`APPL-1009 / Page 2 of 10
`
`
`
`U.S. Patent
`
`Jun. 29, 2004
`
`Sheet 1 0f 5
`
`US 6,757,729 B1
`
`FIG. 1
`
`SERVICE DIRECTORY MANAGER
`Rv
`R THYT
`SE ICE n1 ECO
`ABLE \102
`ATTHIBUTE
`SERVICE PR0vI0ER
`
`’\114
`
`mix PROVIDER?
`
`[104m
`
`SERVICE
`PROVIDER 1
`
`SERVICE
`
`SERVICE
`PROVIDER 3
`
`(104(3)
`
`NETWORK COMPUTER
`
`10am
`
`j
`
`105“ ’ f
`VIRTUAL ENVIRONMENT 7
`MANAGER
`
`110(1)_//~ CONFIGURED
`SERVICES
`
`NETWORK COMPUTER
`
`TABLE OF ’\
`APPLICATIONS
`~ 112(1)
`
`VIRTUAL ENVIRONMENT
`MANAGER
`
`’\106(2)
`
`VES
`
`\~"“109(1)
`
`r\108(21
`CONFIGUHED
`SERVICES ’\
`
`Lmm
`
`TABLE OF 7
`APPLICATIONS
`
`\-112(2)
`
`VES
`
`\ "109(2)
`
`BROWSER
`L114(2)
`
`APPL-1009 / Page 3 of 10
`
`
`
`U.S. Patent
`
`Jun. 29,2004
`
`Sheet 2 of5
`
`US 6,757,729 B1
`
`FIG. 2
`
`TURN ON THE
`NETWORK COMPUTER
`
`f2”
`
`I
`THE NETWORK COMPUTER GOES
`THROUGH A BOOT SEOUENCE /204
`
`PROMPT USER FOR <USER
`NAME> AND <PASSWORD>
`
`IS THE <USER
`NAME> AND PASSWORD
`VALID?
`
`LOAD USER‘SDESKTOP few
`ALONG WITH THE VEM
`
`FIG. 3
`
`IDENTIFY SERVICES THAT WILL BE
`OFFERED BY THIS ‘SERVICE PROVIDER
`
`f302
`
`T
`
`IDENTIFY THE SERVICE DIRECTORY MANAGER THAT IS
`RESPONSIBLE FOR MAINTAINING THE LIST OF SERVICES
`IN OUR NETWORK. CALL THIS MANAGER AS DIRECTORY M
`
`ANY MORE
`SERVICES IN LIST
`SERVICELIST?
`
`INITIALIZATION /31°
`COMPLETE
`
`SEND REGISTER MESSAGE TO SERVICE
`DIRECTORY MANAGER. DIRECTORY M
`
`APPL-1009 / Page 4 of 10
`
`
`
`U.S. Patent
`
`Jun. 29, 2004
`
`Sheet 3 0f 5
`
`US 6,757,729 B1
`
`FIG. 4
`
`SERVICE DIRECTORY MANAGER
`SERVICE DIRECTORY TABLE
`AIIRIBUIE
`SERVICE PROVIDER
`
`PRIMIER
`FAX
`
`NUDE 1
`NODE 2
`NODE 3
`
`’\_ 403
`
`4
`12
`
`1/
`
`MEIM0R|< COMPUTER
`
`APl
`AP .
`.
`APM
`
`.
`
`\\ 414
`
`VES
`PRIMI CLIENT STUB
`FAX CLIENT STUB
`MAIL cLIEMI STUB “'\
`oIRER STUBS
`415
`
`I 410
`
`PRIMI
`SERVER STUB
`
`‘
`
`FRXST B
`sERvE
`u
`
`sERvER sIuB
`L
`405
`
`APPL-1009 / Page 5 of 10
`
`
`
`
`
` SAOWSY0$$JNOQ_N3HMSNOILVH3d0se...SSSWHOH3dSL————————
`
` tay' YSOVNYH!OARS©AMOLOSUTGS3A:NOLIVOIIdd¥
`
` 0310.0TAN3S3H:(,S2}0N,)89{AsaSOn400]NTSIDTAUESdlSI001“*(.c3qN.)30TAsaGuajSToy::31)00)¥SNELIE!NOLWRHO-NTVIS414009
`
`
`
`FIONVHJDTAWSS3HLS3H01SOOoOVSNHALSHONYJICNVHSNHNLIH!JOTANSS
`
`JOIANISG9fI4
`$$$
`_——JTN009
`(#}Jod‘aweuéyaAvas)U01}JauUO}dN}agHIGIAOHd
`
`
`
`
`
`!UIQWIIN140dONY
`
`
`SWYNUSAUSSSNUNLIY
`ey'''
`—_—————
`,JOIAW3SJLHLIM:NOTLJSNNODdf135
`
`
`
`
`
`
`
`(a[PUeYadTAUaS)a[PUEYaITAUas1aq
`
`U.S. Patent
`
`Jun. 29, 2004
`
`Sheet 4 of 5
`
`US 6,757,729 BI
`
`
`
`dVSHIdf138()J4yvays
`
`
`
`JTN009FTGNVH49TAUAS
`
`
`
`JIGNVHJITAWAS
`
`NOTIVWUO-NIiAMISTOSYSHSSAQWSY
`TS
`
`()UO1}IauU0IaSO[I
`
`NOITL94NNO)38019
`
`
`
`(Jaa[AsagayonayW3A
`
`JOTAWSS
`
`
`
`WOUSAWISTIIY
`
`APPL-1009 / Page 6 of 10
`
`APPL-1009 / Page 6 of 10
`
`
`
`U.S. Patent
`
`Jun. 29, 2004
`
`Sheet 5 0f 5
`
`US 6,757,729 B1
`
`FIG. 5
`
`VEM DESKTOP
`
`D15
`
`ADD
`
`DELETE
`
`
`HELP
`
`DESKTOP
`
`NOTESLITE
`
`CALENDAR
`
`
`LIST OF APPLICATIONS
`
`OFFICE APPLICATIONS
`PERSONAL PRODUCTIVITY APPLICATIONS
`SYSTEM SERVICES
`
`B06
`—
`
`APPL-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
`speci?cally, 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,
`simpli?ed 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
`
`15
`
`25
`
`35
`
`40
`
`It is an object of the present invention to provide a
`?exible, 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
`(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
`
`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 How chart for the boot phase of the
`netWork computer;
`FIG. 3 shoWs the How chart for initial steps taken by each
`service provider;
`FIG. 4 shoWs an instance of the system state With the
`VEM con?gured;
`
`55
`
`65
`
`2
`FIG. 5 shoWs the How 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.
`The NetWork Computers 106 can be embodied, for
`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 de?ning 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 con?gured services 110(1), 110(2)
`and a table of active applications 112(2), 112(2). Both the
`table of con?gured 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
`identi?cation. The identi?cation process can be, for
`example, typing in the user name and a passWord. After user
`
`APPL-1009 / Page 8 of 10
`
`
`
`US 6,757,729 B1
`
`3
`identity veri?cation, 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 con?guration ?le for the user from a
`Service Provider. The VES uses the con?guration ?le 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 con?guration ?le 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 speci?c, 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 con?guration ?le.
`When a VES is downloaded for a user, it initiates con
`?guration of all services that are in the con?guration ?le.
`The con?guration ?le can be of a conventional ?at ?le
`format. For example, the con?guration ?le can be in the
`form of a Bookmarks ?le of the type used by Netscape
`Navigator 3.0. This con?guration 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 con?gured 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 con?guration ?le.
`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 identi?es the SDM that is responsible
`
`15
`
`25
`
`35
`
`40
`
`55
`
`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 con?gured 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 de?nitions for the VEM include the VEM
`CLASS and the client and server interfaces. FIG. 5 shows
`the How 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 Con?gured 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 ?le.
`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 ?rst 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 I.ookupService( ) 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 Con?gured Services
`Table 112) that includes the service’s handle and, if
`
`APPL-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
`identi?able With just a name), or Whether a more custom
`service is needed (eg one that is identi?ed 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 re?ect 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 ?rst 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 modi?cations 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 de?ned 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
`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:
`
`10
`
`15
`
`25
`
`35
`
`40
`
`45
`
`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 environment management softWare sys
`tem of the netWork client, the code being capable of
`local processing, and enabling the application to inter
`act With the at least one remote netWork service on
`demand based on the executable code processing.
`2. The method of claim 1 Wherein the doWnloading
`comprises the step of contacting an appropriate service
`provider and doWnloading a client stubs for the remote
`netWork service.
`3. The method of claim 1 Wherein the doWnloading
`comprises the step of contacting an appropriate service
`provider and doWnloading a client handle for the remote
`netWork service.
`4. The method of claim 1 comprising the further step of
`providing a user of the netWork client With a visual display
`of available netWork services to Which access has been
`previously enabled.
`5. The method of claim 1 Wherein the netWork client is a
`NetWork Computer.
`6. The method of claim 1 Wherein the netWork client is a
`JAVA terminal.
`7. The method of claim 1 Wherein the netWork client is a
`personal digital assistant.
`8. The method of claim 1 Wherein the netWork service is
`a system service.
`9. The method of claim 8 Wherein the system service is a
`printing service.
`10. The method of claim 8 Wherein the system service is
`persistent storage.
`11. The method of claim 8 Wherein the system service is
`system monitoring.
`12. The method of claim 8 Wherein the system service is
`system management.
`13. The method of claim 1 Wherein the environment
`management softWare system runs on a virtual machine
`instantiated on the netWork client.
`14. The method of claim 1 comprising the further step of
`determining When access to the netWork service is no longer
`needed; and, initiating a removal of the object from the
`memory of the netWork node.
`15. The method of claim 1 comprising the further steps of
`registering by remote service providers With a third party
`directory, a set of services available to netWork clients,
`Wherein the object obtains access to the service by reference
`to the directory.
`16. The method of claim 1 comprising the further step of
`sharing access to the service by a plurality of application
`executing on the netWork node.
`17. The method of claim 1 comprising the further step of
`isolating the service needed by an application from other
`applications by providing access to the service only by Way
`of a unique key knoWn only to the application.
`
`APPL-1009 / Page 10 of 10
`
`