`Riggins et al.
`
`US006131116A
`Patent Number:
`Date of Patent:
`
`[11]
`[45]
`
`6,131,116
`*Oct. 10, 2000
`
`[54]
`
`[75]
`
`SYSTEM AND METHOD FOR GLOBALLY
`ACCESSING COMPUTER SERVICES
`
`Inventors: Mark D. Riggins, McLeansville, N.C.;
`R. Stanley Bailes, San Jose, Calif;
`Hong O. Bui, Cupertino, Calif; David
`I. CoWan, Menlo Park, Calif; Daniel I.
`Mendez; Mason Ng, both of Mountain
`View, Calif; Sean Michael Quinlan,
`San Francisco, Calif; Prasad Wagle,
`Santa Clara, Calif; Christine C. Ying,
`Foster City, Calif; Christopher R.
`Zuleeg, San Jose, Calif; Joanna A.
`Aptekar-Strober, Menlo Park, Calif.
`
`[73]
`
`Assignee: Visto Corporation, Mountain View,
`Calif.
`
`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).
`
`Appl. No.: 08/766,307
`Filed:
`Dec. 13, 1996
`
`Int. Cl.7 .................................................... .. G06F 15/16
`
`US. Cl. ........................................... .. 709/219; 709/203
`
`Field of Search ....................... .. 395/200.33, 200.47,
`395/200.57, 200.49, 200.59; 709/203, 217,
`227, 229, 219
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`4,831,582
`
`5/1989 Miller et al. .......................... .. 707/104
`
`. . . . .. 380/21
`5,220,603
`6/1993 Parker . . . . . .
`707/9
`5,263,157 11/1993 Janis ............... ..
`5,581,749 12/1996 Hossain et al. ........................... .. 707/1
`(List continued on neXt page.)
`
`FOREIGN PATENT DOCUMENTS
`
`OTHER PUBLICATIONS
`
`Article by Bellovin et al., entitled: “Network Firewalls”
`Published by IEEE Communications Magazine Sep. 1994,
`pp. 50—57.
`Article by Steffen Stempel, entitled: “IPAccess—An Internet
`Service Access System for Firewall Installations” Published
`by IEEE Communications Magazine Feb. 16, 1995, pp.
`31—41.
`Article by Braun et al., entitled: “Web Traf?c Characteriza
`tion: an assessment of the impact of caching documents
`from NCSA’s web server” Published by Elsevier Science
`B.V. 1995 pp. 37—51.
`Article by Nelson et al., entitled: “Security for In?nite
`Networks” Published by IEEE Communications Magazine
`on Aug. 22, 1995, pp. 11—19.
`Article by Greenwald et al., entitled: “Designing an Aca
`demic Firewall: Policy, Practice, and Experience with
`SURF” Published by IEEE Communications Magazine on
`Feb. 22, 1996, pp. 79—92.
`Article by Kiuchi et al., entitled: “C—HTTP—The Develop
`ment of a Secure, Closed HTTP—based Network on the
`Internet” Published by IEEE Proceedings of SNDSS on Feb.
`22, 1996, pp. 64—75.
`
`(List continued on neXt page.)
`
`Primary Examiner—Mehmet B. Geckil
`Attorney, Agent, or Firm—Graham & James LLP
`
`[57]
`
`ABSTRACT
`
`A system for communicating through a computer network.
`The system includes a communications engine for establish
`ing a communications link with a server, a browser, coupled
`to the communications engine, for receiving applet infor
`mation corresponding to a service from the server, and an
`applet engine for using the applet information to control user
`interface I/O of the service. The communications engine
`may con?rm user access privileges before establishing a
`communications link between the client and the server. The
`communications engine receives con?guration data, and
`con?gures client attributes using the con?guration data to
`provide a user-speci?c user interface to the client. It will be
`appreciated that the system may be stored on a ?oppy disk
`or hard drive.
`
`2191505 6/1997 Canada ......................... .. H04M 3/42
`
`43 Claims, 10 Drawing Sheets
`
`sun
`
`C 6T)
`1‘
`
`Create Lmk Between Remote
`6.... .m Mas... on...
`
`I
`
`L cun?gme Remme Chem
`
`51
`0
`
`530
`
`i 640
`Dcwmoad Applets trom Master \/
`Server to Female Chem
`
`Dtsp‘ay Web Page 0|! Remote
`Chant Dvsplay
`
`550
`
`VMware Exhibit 1009 Page 1
`
`
`
`6,131,116
`Page 2
`
`US. PATENT DOCUMENTS
`
`5,613,012
`5,627,658
`5,644,354
`5,657,390
`5,666,553
`5,682,478
`5,682,524
`5,684,990
`5,701,423
`5,706,502
`5,715,403
`5,754,830
`5,757,916
`5,768,510
`5,778,346
`5,784,463
`5,784,464
`5,802,530
`5,812,668
`5,815,683
`5,828,840
`
`3/1997
`5/1997
`7/1997
`8/1997
`9/1997
`10/1997
`10/1997
`11/1997
`12/1997
`1/1998
`2/1998
`5/1998
`5/1998
`6/1998
`7/1998
`7/1998
`7/1998
`9/1998
`9/1998
`9/1998
`10/1998
`
`Hoffman et al. ...................... .. 382/115
`
`Connors et al. ...................... .. 358/407
`Thompson et al.
`348/13
`Elgamal et al. ..
`380/49
`
`CroZier ............ ..
`
`395/803
`
`Watson et al. ................... .. 395/200.12
`
`Freund et al. ........................ .. 395/605
`
`Boothby ...... ..
`
`707/203
`
`CroZier .................................. .. 395/335
`
`Foley et al. ........................... .. 395/610
`
`Ste?k . . . . . . . . . . . .
`
`. . . . .. 705/44
`
`Butts et al. ..... ..
`
`. 3995/500
`
`MacDoran et al. ..................... .. 380/25
`
`Gish ................................. .. 395/200.33
`Frid-Nielsen et al.
`395/208
`
`Chen et al. . . . . . . . . . . .
`
`. . . .. 380/21
`
`Akiyama et al. .
`Van Hoff .... ..
`
`380/25
`707/513
`
`Weber . . . . . . .
`
`. . . . .. 380/24
`
`Vogler ................................... .. 395/500
`
`Cowan et al. ................... .. 395/200.33
`
`OTHER PUBLICATIONS
`Article by S. Cobb, entitled: “Establishing Firewall Policy”
`Published by National Computer Security Assn. on Jun.
`25—27, 1996, pp. 198—205.
`Tanenbaum, AndreW S., “Computer Network”, Third Edi
`tion, Prentice—Hall 1996, ISBN 0—13—349945—6, Chapter 7,
`Sections 7.1.4 to 7.1.6, pp. 597—618.
`Knudsen, Jonathan, “Java Cryptography”, First Edition,
`O’Reilly &Assoc. 1998, ISBN 1—56592—402—9, pp. 79—91.
`Web page: WWW.verisign.com/press/product/isv.html, Veri
`sign Press Release, “Versign Enhances Digital IDS to
`Enable Universal Website Login and One—Step Registra
`tion”, Nov. 3, 1998, 3 pages.
`Mark BroWn, “Using Netscape 2”, Que Corporation, 1995,
`pp. 885—907.
`Douglas Kramer, “The Java Platform,” Javas—Soft, May
`1996, pp. 1—25.
`Package java.applet; java.net http://WWW—nrg.ee.lbl.gov/jef/
`apibook/javafhtm javam.htm Apr. 22, 1996.
`Servlet Tutorial http://mech.postech.ac.kr/Java/java.sun
`.com/products/jeeves/current release//doc/servlet—tutorial/
`servlet—tutorial.html Aug. 20, 1996.
`
`VMware Exhibit 1009 Page 2
`
`
`
`US. Patent
`
`Oct. 10, 2000
`
`Sheet 1 0f 10
`
`6,131,116
`
`09
`
`
`835w®Emao>_wcommwmv@-“mmsmom
`
`:80w£2<@.ED9
` Mme®>_wcomwwm@A«mm:mommo_>._®m@$88:2:
`
`
`o:
`
`m:
`
`838m
`
`oEmcw
`
`om:
`
`mm?
`
`836w
`
`9:ma
`
`mmw
`
`
`
`hwaww.5”?me—
`
`
`
`moan.nm>>
`
`mEmcm
`
`ONF
`
`238255003
`
`one
`
`nmw
`
`wmw
`
`2mfia<
`
`cozfizmccoo
`
`Ema
`
`3559:3me
`
`om?
`
`mmw
`
`53mm650
`
`855833%
`
`
`
`Em__o905mm
`
`nm>>
`
`Lowsohm
`
`09.
`
`w.0E
`
`how
`
`mm:
`
`VMware Exhibit 1009 Page 3
`
`VMware Exhibit 1009 Page 3
`
`
`
`
`
`
`
`
`US. Patent
`
`Oct. 10, 2000
`
`Sheet 2 0f 10
`
`6,131,116
`
`
`
`
`
`om:EmzowHoEwm
`
`53:0
`
`oo_>mn_
`
`\‘
`
`0mm
`
`59:
`
`mo_>wn_
`
`CNN
`
`orN
`
`
`
`owN
`
`NwN
`
`va
`
`mmr
`
`
`
`@92onEma
`
`$250
`
`mcozmoEsEEoo
`
`momtmE.
`
`0:
`
`mm
`
`umumoanQ
`
`
`
`8:933:00vmm
`
`NGE
`
`VMware Exhibit 1009 Page 4
`
`VMware Exhibit 1009 Page 4
`
`
`
`
`
`
`
`US. Patent
`
`Oct. 10, 2000
`
`Sheet 3 0f 10
`
`6,131,116
`
`
`
`E996mczfimgo
`
`
`
`wcacmwcozmoEsEEoo
`
`
`
`mEmcwmoan.nm>>
`
`9:05501EEQ<
`
`o
`
`
`wv mmm
`
`wEmumoEBoQ
`
`3min?
`
`
`
`Ema:ozfismccoo
`
`
`
`mEmcm.moEmw
`
`Nwm
`
`
`
`$3..onEma
`
`wo_>mo
`
`mcozmoEzEEoo
`
`momtflE
`
`0mm
`
`com
`
`omw
`
`o:
`
`mmw
`
`<m.9“—
`
`VMware Exhibit 1009 Page 5
`
`own
`
`53:0
`
`.8st
`
`Sac.
`
`83mm
`
`0Vm
`
`3&0
`
`
`
`om?LmawmEma:
`
`\‘
`
`0mm
`
`own
`
`o—‘m
`
`VMware Exhibit 1009 Page 5
`
`
`
`
`
`
`
`
`
`
`U.S. Patent
`
`0a. 10, 2000
`
`Sheet 4 0f 10
`
`6,131,116
`
`’/137
`
`.m e .m d
`u a w A S m S .m
`S w 8 m 9 n e d
`
`S S
`
`P w
`
`2 4 6 00 9 9 9 9 3 3 3 3
`
`e 8
`
`S w
`
`FIG. 3B
`
`VMware Exhibit 1009 Page 6
`
`
`
`US. Patent
`
`Oct. 10, 2000
`
`Sheet 5 0f 10
`
`6,131,116
`
`
`
`oovEm=0.80..
`
`\‘
`
`omw
`
`ONV
`
`o;
`
`at“
`
`59:0
`
`83mm
`
`Sac.
`
`83mm.
`
`ovv
`
`310
`
`39onEma
`
`$250
`
`w:o:moE:EEoo
`
`womtwt:
`
`omw
`
`va
`
`va
`
`vwv
`
`owv
`
`Gov
`
`
`
`omvmEmcmmo_Ewm
`
`v.®_u_
`
`ONF
`
`omv
`
`VMware Exhibit 1009 Page 7
`
`VMware Exhibit 1009 Page 7
`
`
`
`
`
`
`U.S. Patent
`
`0a. 10, 2000
`
`Sheet 6 0f 10
`
`6,131,116
`
`500
`
`/
`
`5
`
`5 0
`
`M5 530
`5; 550
`
`396
`
`Roam Page
`
`1.
`
`
`2.
`
`Calendaring
`
`3.
`
`Internet Access
`
`‘ 570
`
`4.
`
`Paging
`
`5.
`
`Sending Faxes
`
`FIG. 5
`(Roam Page Screen Shot)
`
`VMware Exhibit 1009 Page 8
`
`
`
`U.S. Patent
`
`0a. 10, 2000
`
`Sheet 7 0f 10
`
`6,131,116
`
`600
`
`/
`
`610
`Create Link Between Remote /\/
`Client and Master Server
`
`620
`l
`Download Con?guration Data N
`
`630
`l
`Con?gure Remote Client N
`
`640
`L
`Download Applets from Master N
`Server to Remote Client
`
`650
`‘
`Display Web Page on Remote N
`Client Display
`
`l
`
`660
`Select a Service, which Initiates
`Execution of the Appropriate N
`Applet
`
`670
`¢
`Initiate Execution of the N
`Appropriate Service
`
`680
`¢
`Provide Access to Service to N
`Remote Client User
`
`FIG. 6
`
`VMware Exhibit 1009 Page 9
`
`
`
`U.S. Patent
`
`0a. 10, 2000
`
`Sheet 8 0f 10
`
`6,131,116
`
`670
`
`/
`
`710
`Applet Forwards Service Request to N
`Corresponding Servlet
`
`720
`l
`Servlet Retrieves Service Address N
`
`730
`i
`Servlet Forwards Service Request N
`to Appropriate Service Interface
`
`740
`l
`Service Interface Initiates Execution /\_/
`of Appropriate Service
`
`750
`L
`Service Interface Informs Servlet of N
`Service Initiation
`
`I
`
`760
`Servlet Configures Itself to Act as /-\/
`Proxy for Applet
`
`770
`l
`Servlet Informs Applet of Service N
`Initiation
`
`780
`l
`Applet Configures Itself to Act as l/O /\/
`Interface with Service Engine
`
`FIG. 7
`
`VMware Exhibit 1009 Page 10
`
`
`
`U.S. Patent
`
`0a. 10, 2000
`
`Sheet 9 0f 10
`
`6,131,116
`
`670
`
`310
`Applet Requests the Master Server to
`Open a Direct Connection with the N
`Service Engine
`
`820
`L
`Master Server Sends Service-Specific N
`Configuration Data to the Applet
`
`830
`L
`Client Opens Direct Connection N
`With Service
`
`840
`Applet Fonivards Service Request to /—\/
`Service Interface
`
`850
`Service Interface Initiates Execution N
`of Appropriate Service
`
`860
`Service Interface Informs Applet of N
`Service Initiation
`
`870
`¢
`Applet Configures itself to Act as l/O N
`Interface with Service Engine
`
`l
`End
`
`(
`
`3
`
`FIG. 8
`
`VMware Exhibit 1009 Page 11
`
`
`
`U.S. Patent
`
`Oct. 10, 2000
`
`Sheet 10 0f 10
`
`6,131,116
`
`680
`
`/
`
`L
`
`Start
`
`I
`
`3
`
`Load Service Engine A310
`into RAM
`
`Execute Service
`Engine
`
`Asa/20
`
`930
`Send Display Data and V0
`Requests as Responsive Data N
`to Remote Client
`
`Wait for an Instruction A540
`from Remote Client
`
`960
`Process Instruction and
`Repeat Steps 920-960 Until /\—/
`Instructed to Quit
`
`I
`
`End
`
`FIG. 9
`
`VMware Exhibit 1009 Page 12
`
`
`
`1
`SYSTEM AND METHOD FOR GLOBALLY
`ACCESSING COMPUTER SERVICES
`
`BACKGROUND OF THE INVENTION
`
`1. Field of the Invention
`This invention relates generally to computer networks,
`and more particularly to a system and method for globally
`accessing computer services.
`2. Description of the Background Art
`The internet currently interconnects about 100,000 com
`puter netWorks and several million computers. Each of these
`computers stores numerous application programs for pro
`viding numerous services, such as generating, sending and
`receiving e-mail, accessing World Wide Web sites, generat
`ing and receiving facsimile documents, storing and retriev
`ing data, etc.
`A roaming user, i.e., a user Who travels and accesses a
`Workstation remotely, is faced With several problems. Pro
`gram designers have developed communication techniques
`for enabling the roaming user to establish a communications
`link and to doWnload needed information and needed service
`application programs from the remote Workstation to a local
`computer. Using these techniques, the roaming user can
`manipulate the data on the remote Workstation and, When
`?nished, can upload the manipulated data back from the
`remote Workstation to the local computer. HoWever, sloW
`computers and sloW communication channels make doWn
`loading large ?les and programs a time-consuming process.
`Further, doWnloading ?les and programs across insecure
`channels severely threatens the integrity and con?dentiality
`of the doWnloaded data.
`The roaming user alternatively can carry a copy of all
`potentially needed information and all potentially needed
`application programs. HoWever, maintaining a true copy of
`a database is a cumbersome process Which often results in a
`data inconsistency problem. Therefore, a system and method
`are needed to enable multiple users to access computer
`services remotely Without consuming excessive time, With
`out severely threatening the integrity and con?dentiality of
`the data, and Without compromising data consistency.
`
`SUMMARY OF THE INVENTION
`
`The present invention provides a system and method for
`communicating through a computer netWork. The system
`includes a master server, service engines and clients, each
`equipped With a communication engine for establishing
`communications links. The system further includes a
`broWser for receiving applet information corresponding to a
`service performed by one of the service engines from the
`server, and an applet engine for using the applet information
`to control user interface I/O of the service. The master server
`may con?rm access privileges before alloWing clients to
`access a service. The communications engine receives con
`?guration data Which are used to con?gure the client com
`ponents such as the operating system, the Web broWser, the
`applets, etc. to enable communication With the service
`engine and to provide a user-speci?c user interface to the
`client. It Will be appreciated that the system may be stored
`on a ?oppy disk or hard drive.
`The method includes establishing a communications link
`betWeen a client and a server, receiving applet information
`by the client from the server, establishing a communications
`link betWeen the client and a service using the applet
`information, and directing user interface I/O control of the
`service to the client using the applet information. Establish
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`6,131,116
`
`2
`ing a communications link may include con?rming access
`privileges. The method may further include receiving con
`?guration data, and using the con?guration data for con?g
`uring the client components such as the operating system,
`the Web broWser, the applets, etc. to enable communication
`With the service engine and to provide a user-speci?c user
`interface to the client.
`The system and method use Web broWser technology to
`enable multiple users to access computer services remotely.
`Furthermore, the system and method use applet technology
`to enable users to access computer services Without con
`suming excessive time, Without severely threatening the
`integrity and con?dentiality of the data, and Without com
`promising data consistency. Still further, the system and
`method use con?guration data to enable users to obtain a
`consistent interface from any remote terminal.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`FIG. 1 is a block diagram illustrating a roaming-user
`netWork access system in accordance With the present inven
`tion;
`FIG. 2 is a block diagram illustrating details of the remote
`client of FIG. 1;
`FIG. 3A is a block diagram illustrating details of the
`master server of FIG. 1;
`FIG. 3B is a block diagram illustrating details of the
`con?guration data of FIG. 3A;
`FIG. 4 is a block diagram illustrating details of each local
`client of FIG. 1;
`FIG. 5 illustrates an example graphical user interface of
`Web page as maintained by the Web page engine of FIG. 1;
`FIG. 6 is a ?oWchart illustrating a method for globally
`accessing a particular computer service;
`FIG. 7 is a ?oWchart illustrating details of the FIG. 6 step
`of initiating execution of a service on the local client;
`FIG. 8 is a ?oWchart illustrating alternative details of the
`FIG. 6 step of initiating execution of a service on the local
`client; and
`FIG. 9 is a ?oWchart illustrating details of the FIG. 6 step
`of providing service access to the remote client user.
`
`DETAILED DESCRIPTION OF THE
`PREFERRED EMBODIMENT
`
`FIG. 1 is a block diagram illustrating a roaming-user
`netWork access system 100, in accordance With the present
`invention. System 100 includes a netWork of computers,
`referred to herein as an “internet” 140, connected via a
`master server 130 to a local netWork 120. A ?rst local client
`110 and a second local client 160 are addressably connected
`via the local netWork 120 to the master server 130. Aremote
`client 150 is connected via the internet 140 to the master
`server 130. Another server 166 is also connected via the
`internet 140 to the remote client 150, to the master server
`130 and to the local clients 110 and 160.
`The ?rst local client 110 includes a ?rst service engine 115
`for providing a ?rst computer service, such as calendaring,
`e-mail, paging, Word-processing or the like, to a user. The
`second local client 160 includes a second service engine 165
`for providing a second computer service to a user. Service
`engines 115 and 165 are described in greater detail With
`reference to FIG. 4. The remote client 150 includes a client
`engine, an example of Which is an applet-based Web broWser
`155 Which is con?gured for communicating With the internet
`140 and for reading and executing applets. Examples of Web
`
`VMware Exhibit 1009 Page 13
`
`
`
`3
`browsers 155 include the Netscape TM Web browser produced
`by the Netscape Corporation, the Internet ExplorerTM Web
`broWser produced by the Microsoft Corporation, or the
`JavaTM Developers Kit 1.0 Web broWser produced by Sun
`Microsystems, Inc. While the illustrated client engine is a
`Web broWser 155, those skilled in the art Will recognize that
`other client engines could be used in accordance With the
`present invention. Although the embodiment herein are
`being described With reference to the JavaTM distributed
`environment produced by Sun Microsystems, Inc., “DoWn
`loadables” herein correspond to all doWnloadable and
`executable or interpretable programs for use in a distributed
`environment such as ActiveXTM controls in the ActiveXTM
`distributed environment produced by the Microsoft Corpo
`ration.
`The master server 130 includes a Web page engine 133 for
`maintaining and providing access to an internet Web page
`Which is enabled to forWard applets 136 to the Web broWser
`155 of the remote client 150. Auser can select a particular
`service Which corresponds to one of the applets 136, thereby
`causing the Web broWser 155 of the remote client 150 to
`initiate execution of the corresponding applet 130. Execu
`tion of the applet 130 causes the appropriate service engine
`115 or 165 to execute the particular service or access an
`already executing service. It Will be appreciated that execut
`ing a service may include directing Input/Output (I/O)
`control of a service application program, such as an e-mail
`application program, a paging application program or a
`Word-processing application program, to the remote client
`150 user.
`The master server 130 further includes con?guration data
`137, Which the remote client 150 can doWnload to gain
`access to the desired service and to con?gure the
`functionality, look and feel of the Web broWser 155. The
`con?guration data 137 may include operating system set
`tings such as TCP protocol data and the domain name server
`address, user preferences, bookmarks, services, service
`addresses, etc. Each user preferably uploads unique con
`?guration data 137 to the master server 130 in order to
`obtain similar functionality, look and feel from any Web
`broWser 155.
`Similar to the local clients 110 and 160, the master server
`130 may include a service engine 138 for providing access
`to a third computer service, and server 166 may include a
`service engine 167 for providing access to a fourth computer
`service. Service engines 138 and 166 are described in greater
`detail With reference to FIG. 4. From the remote client 150
`user’s standpoint, the location of the service engine does not
`matter.
`As shoWn by line 1, the remote client 150 user inputs a
`predetermined Uniform Resource Locator (URL) address
`for opening the Web page managed by the Web page engine
`133 of the master server 130. As shoWn by line 2, the Web
`page engine 133 sends at least one of the applets 136 and
`Web broWser con?guration data 137 to the Web broWser 155.
`From the services offered by the Web page, the user selects
`a particular service corresponding to one of the applets 136.
`For example, to access e-mail services, the user selects an
`e-mail prompt corresponding to an e-mail applet 136.
`As shoWn by line 3, the Web broWser 155 forWards to the
`master server 130 a service request for initiating execution
`of the selected service. As shoWn by line 4, the master server
`130 determines the location of the service and sends the
`service request to the appropriate address, i.e., either to the
`service engine 115 of the local client 110, to the service
`engine 165 of the local client 160, to the service engine 138
`of the master server 130 or to service engine 167 of the other
`server 166.
`
`10
`
`15
`
`25
`
`35
`
`45
`
`55
`
`65
`
`6,131,116
`
`4
`To initiate execution of the service request, the master
`server 130 may use servlets or agents. The appropriate
`service engine 115, 138, 165 or 167 executes the service and
`generates responsive data accordingly. As shoWn by line 5,
`the service engine 115, 138, 165 or 167 sends the responsive
`data back to the master server 130 and, as shoWn by line 6,
`the master server 130 sends the responsive data back to the
`remote client 150.
`Since the master server 130 stores the applets 136 and the
`con?guration data 137, the roaming user can access a service
`via any computer 110, 130, 150 or 160 Which includes an
`applet-based Web broWser 155 and Which is connected to the
`master server 130. Further, because the master server 130
`maintains the netWork addresses of all services, the user
`need only maintain the URL address of the Web page
`maintained by the Web page engine 133. That is, the user
`need not maintain the current address of each service.
`Although not shoWn in FIG. 1, a Web broWser 155 may be
`placed on a local client 110 or 160. Auser can access the Web
`page engine 133 from the local client 110 or 160 to take
`advantage of the services provided by the master server 130,
`by the server 166 or even by the local clients 110 or 160. For
`example, the local client user may access the Web page
`engine 133 and select a particular service Which resides on
`the local client 110. Accordingly, the applets 136 Would
`launch the service on the local client 110 and Would provide
`direct I/O control of the service to the user. Those skilled in
`the art Will recogniZe that a particular service engine may
`require the services of other service engines. It Will be
`appreciated that the local client user need not knoW the
`location of each service. The local client user need only
`access the master server 130.
`FIG. 2 is a block diagram illustrating details of the remote
`client 150, Which includes a Central Processing Unit (CPU)
`210 such as a Motorola PoWer PC® microprocessor or an
`Intel Pentium® microprocessor. An input device 220 such as
`a keyboard and mouse, and an output device 230 such as a
`Cathode Ray Tube (CRT) display are coupled via a signal
`bus 240 to CPU 210. Acommunications interface 250, a data
`storage device 260, such as Read Only Memory (ROM) and
`a magnetic disk, and a Random-Access Memory (RAM) 270
`are further coupled via signal bus 240 to CPU 210. The
`communications interface 250 is coupled to the internet 140.
`An operating system 280 includes a program for control
`ling processing by CPU 210, and is typically stored in data
`storage device 260 and loaded into RAM 270 for execution.
`Operating system 280 further includes a communications
`engine 282 for generating and transferring message packets
`to and from the internet 140 via the communications inter
`face 250. Operating system 280 further includes an Oper
`ating System (OS) con?guration engine 284, Which con?g
`ures the operating system 280 based on OS con?guration
`data 137 such as TCP protocol data, domain name server
`addresses, etc. received from the master server 130.
`Operating system 280 further includes a Web broWser 155
`as described With reference to FIG. 1. The Web broWser 155
`includes a Web BroWser (WB) con?guration engine 288,
`Which con?gures the Web broWser 155 based on WB con
`?guration data 137 such as home page addresses,
`bookmarks, caching data, user preferences, etc. received
`from the master server 130. The Web broWser further
`includes an applet engine 290 for handling the execution of
`doWnloaded applets 294. The applet engine 290 includes an
`Applet Engine
`con?guration engine 292, Which con
`?gures the applet engine 290 based on AE con?guration data
`137 received from the master server 130. The applet engine
`
`VMware Exhibit 1009 Page 14
`
`
`
`6,131,116
`
`5
`290 further includes applet-speci?c con?guration data 296
`received from the master server 130. For example, for the
`e-mail applet 294, e-mail applet con?guration data 296 may
`include a user’s e-mail address, name, preferred signature
`block, as Well as customizable user interface parameters.
`FIG. 3A is a block diagram illustrating details of the
`master server 130, Which includes a Central Processing Unit
`(CPU) 310 such as a Motorola PoWer PC® microprocessor
`or an Intel Pentium® microprocessor. An input device 320
`such as a keyboard and mouse, and an output device 330
`such as a Cathode Ray Tube (CRT) display are coupled via
`a signal bus 340 to CPU 310. A communications interface
`350, a data storage device 360, such as Read Only Memory
`(ROM) and a magnetic disk, and a Random-Access Memory
`(RAM) 370 are further coupled via signal bus 340 to CPU
`310. The communications interface 350 is coupled betWeen
`the internet 140 and the local netWork 120.
`An operating system 380 includes a program for control
`ling processing by CPU 310, and is typically stored in data
`storage device 360 and loaded into RAM 370 for execution.
`Operating system 380 further includes a communications
`engine 382 for generating and transferring message packets
`via the communications interface 350 to and from the
`internet 140 and to and from local netWork 120. Operating
`system 380 also includes a Web page engine 133 for main
`taining a Web page and for forWarding the applets 136 and
`the con?guration data 137 to the remote client 150.
`Operating system 380 further includes an applet host
`engine 383 for managing and responding to the execution of
`doWnloaded applets 288. It Will be appreciated that, to
`respond to the execution of the applets 288, the applet host
`engine 383 may execute corresponding servlets 384 or
`forWard corresponding agents 386 for execution on the
`appropriate local client 110 or 160. Operating system 380
`may further include the service engine 138 for providing the
`third service to the user. Service engine 138 is described in
`greater detail With reference to FIG. 4.
`FIG. 3B is a block diagram illustrating details of the
`con?guration data 137. Con?guration data 137 includes
`operating system 280 settings 392 such as TCP protocol data
`and the domain name server address; Web broWser 155
`settings 392 such as home page address, bookmarks and
`caching data; applet engine 290 settings 392; and applet
`con?guration data 296 such as the user’s e-mail address,
`name and signature block. It Will be appreciated that applet
`speci?c con?guration data 296 is needed since the service
`may not be located on the user’s oWn local client 110 or 160.
`Con?guration data 137 further includes predetermined user
`preferences 394 such as font, WindoW siZe, text siZe, etc.
`Con?guration data 137 further includes the services 396
`Which Will be provided to the user. Services 396 include a
`list of registered user’s and each user’s desired services 396,
`Which specify each user’s set of doWnloaded applets 294.
`Con?guration data 137 further includes service addresses
`398 specifying the location of each of the services 396
`accessible via the master server 130.
`FIG. 4 is a block diagram illustrating details of a local
`client 400, Which includes a Central Processing Unit (CPU)
`410 such as a Motorola PoWer PC® microprocessor or an
`Intel Pentium® microprocessor. Local client 400 is illustra
`tive of local clients 110 and 160. An input device 420 such
`as a keyboard and mouse, and an output device 430 such as
`a Cathode Ray Tube (CRT) display are coupled via a signal
`bus 440 to CPU 410. Acommunications interface 450, a data
`storage device 460, such as Read Only Memory (ROM) and
`a magnetic disk, and a Random-Access Memory (RAM) 470
`
`10
`
`15
`
`35
`
`45
`
`55
`
`65
`
`6
`are further coupled via signal bus 440 to CPU 410. The
`communications interface 450 is coupled to the local net
`Work 120.
`An operating system 480 includes a program for control
`ling processing by CPU 410, and is typically stored in data
`storage device 460 and loaded into RAM 470 for execution.
`Operating system 480 also includes a communications
`engine 481 for generating and transferring message packets
`via the communications interface 450 to and from the
`internet 140 and to and from local netWork 120. Operating
`system 480 further includes a service engine 490, Which
`includes a service interface 482 for receiving and translating
`service requests generated by the applet 136 corresponding
`to the user-selected service, a service processor 484 and
`service data 484 for executing the service request. The
`service data 484 may include previously-generated
`documents, database information, etc. It Will be appreciated
`that service engine 490 is similar to the service engine 115,
`138, 165 or 167 of local client 110, of master server 130, of
`local client 160 or of other server 166. Those skilled in the
`art Will recogniZe that operating system 480 may optionally
`include a Web broWser similar to Web broWser 155 as
`described With reference to FIG. 2, even though no Web
`broWser is shoWn Within operating system 480.
`FIG. 5 illustrates an example graphical user interface 500
`of a URL-addressable HyperText Markup Language
`(HTML)-based Web page, as maintained by the Web page
`engine 133 of the master server 130. The graphical user
`interface 500 includes a title 510 “Roam Page,” a listing of
`the provided services 396 and a pointer 570 for selecting one
`of the provided services 396. As illustrated, the provided
`services may include an e-mail service 520, a calendaring
`service 530, an internet access service 540, a paging service
`550 and a fax sending service 560. Although not shoWn,
`other services such as bookmaking, QuickCardTM, etc. may
`be included on the Web page.
`FIG. 6 is a ?oWchart illustrating a method 600 for globally
`accessing a particular computer service. Method 600 begins
`With step 610 by the Web broWser 155 using a URL to open
`a communications link of the remote client 150 to the Web
`page engine 133 of the master server 130. Upon opening the
`communications link, the Web broWser 155 in step 620
`doWnloads con?guration data 388 from the master server
`130, Which in step 630 the remote client 150 uses to
`con?gure itself. Step 630 includes using the OS con?gura
`tion engine 282 to con?gure the operating system 280, using
`the WB con?guration engine to con?gure the Web broWser
`155, and using the AE con?guration engine 288 to con?gure
`the applet engine 290.
`The applet engine 290 of Web broWser 155 in step 640
`doWnloads at least one applet 294 from the applets 136 of
`master server 130. Based on the con?guration data 137 and
`on the doWnloaded applets 288, the Web broWser 155 in step
`650 generates and displays a Web page on the remote client
`output device 230. The remote client 150 user in step 660
`can use the remote client input device 220 to select a
`particular one of the services 396 offered by the Web page.
`Selection of a service causes the applet engine 290 to
`connect to or execute the applet 294 corresponding to the
`selected service 396.
`The corresponding applet 294 in step 670 causes the
`appropriate service engine 490 to execute the selected
`service 396. Step 670 is described in greater detail With
`reference to FIGS. 7 and 8. The appropriate service engine
`490 in step 680 executes the service request and accordingly
`provides service access to the remote client 150 user. Step
`680 is described in greater detail With reference to FIG. 9.
`
`VMware Exhibit 1009 Page 15
`
`
`
`6,131,116
`
`7
`FIG. 7 is a ?owchart illustrating details of step 670, Which
`begins With step 710 by the corresponding applet 294
`forwarding a service request to a corresponding servlet 384
`on master server 130. The serv