`Riggins et al.
`
`19
`
`54 SYSTEM AND METHOD FOR GLOBALLY
`ACCESSING COMPUTER SERVICES
`
`75 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.
`This patent issued on a continued pros
`ecution application filed under 37 CFR
`1.53(d), and is subject to the twenty year
`patent term provisions of 35 U.S.C.
`154(a)(2).
`21 Appl. No.: 08/766,307
`22 Filed:
`Dec. 13, 1996
`
`Notice:
`
`*
`
`(51) Int. Cl." ...................................................... G06F 15/16
`52 U.S. Cl. ............................................. 709/219; 709/203
`
`58 Field of Search ......................... 395/200.33, 200.47,
`395/200.57, 200.49, 200.59; 709/203, 217,
`227, 229, 219
`
`56)
`
`References Cited
`U.S. PATENT DOCUMENTS
`
`4,831,582 5/1989 Miller et al. ............................ 707/104
`5,220,603 6/1993 Parker ....................................... 380/21
`5,263,157 11/1993 Janis .................
`... 707/9
`5,581,749 12/1996 Hossain et al. ............................. 707/1
`(List continued on next page.)
`FOREIGN PATENT DOCUMENTS
`
`2191505 6/1997 Canada ........................... HO4M 3/42
`
`USOO613111.6A
`Patent Number:
`11
`(45) Date of Patent:
`
`6,131,116
`*Oct. 10, 2000
`
`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 Traffic 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 Infinite
`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 confirm user access privileges before establishing a
`communications link between the client and the Server. The
`communications engine receives configuration data, and
`configures client attributes using the configuration data to
`provide a user-specific user interface to the client. It will be
`appreciated that the System may be Stored on a floppy disk
`or hard drive.
`
`43 Claims, 10 Drawing Sheets
`
`600
`
`C star )
`t
`
`C
`
`810
`
`OWIOa so
`
`
`
`680
`Selecta Service, which initiates
`Execution of the Appropriate
`Applet
`
`
`
`APPL-1008 / Page 1 of 18
`Apple v. Uniloc
`
`
`
`6,131,116
`Page 2
`
`U.S. 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
`Stefik ........................................ 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. ......................... 380/25
`Van Hoff ......
`... 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/javaf.htm 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.
`
`APPL-1008 / Page 2 of 18
`
`
`
`U.S. Patent
`
`Oct. 10, 2000
`
`Sheet 1 of 10
`
`6,131,116
`
`0 || ||
`
`9 || ||99 ||
`
`
`
`/9 ||
`
`99 ||
`
`Q)
`
`99 ||
`
`qÐNA
`
`J?SWOJE
`
`APPL-1008 / Page 3 of 18
`
`
`
`U.S. Patent
`
`Oct. 10, 2000
`
`Sheet 2 of 10
`
`6,131,116
`
`
`
`
`
`
`
`
`
`OZZ
`
`99 ||
`
`APPL-1008 / Page 4 of 18
`
`
`
`U.S. Patent
`
`Oct. 10, 2000
`
`Sheet 3 of 10
`
`6,131,116
`
`
`
`APPL-1008 / Page 5 of 18
`
`
`
`U.S. Patent
`
`Oct. 10, 2000
`
`Sheet 4 of 10
`
`6,131,116
`
`137
`
`/
`
`
`
`Preferences
`
`Services
`
`Service Addresses
`
`FIG. 3B
`
`APPL-1008 / Page 6 of 18
`
`
`
`U.S. Patent
`
`Oct. 10, 2000
`
`Sheet 5 of 10
`
`6,131,116
`
`0/17
`
`
`
`#787
`
`987
`
`| 87097
`
`087097
`
`APPL-1008 / Page 7 of 18
`
`
`
`U.S. Patent
`
`Oct. 10, 2000
`
`Sheet 6 of 10
`
`6,131,116
`
`500
`
`/
`
`
`
`Roam Page
`
`Calendaring
`
`Internet ACCess
`
`396
`
`Sending Faxes
`
`FIG. 5
`(Roam Page Screen Shot)
`
`APPL-1008 / Page 8 of 18
`
`
`
`U.S. Patent
`
`Oct. 10, 2000
`
`Sheet 7 of 10
`
`6,131,116
`
`600
`
`/
`
`Create Link Between Remote
`Client and Master Server
`
`Download Configuration Data
`
`Configure Remote Client
`
`Download Applets from Master
`Server to Remote Client
`
`Display Web Page on Remote
`Client Display
`
`
`
`Select a Service, which Initiates
`Execution of the Appropriate
`Applet
`
`Initiate Execution of the
`Appropriate Service
`
`Provide ACCeSS to Service to
`Remote Client User
`
`610
`
`62O
`
`630
`
`650
`
`660
`
`670
`
`680
`
`FIG. 6
`
`APPL-1008 / Page 9 of 18
`
`
`
`U.S. Patent
`
`Oct. 10, 2000
`
`Sheet 8 of 10
`
`6,131,116
`
`670
`
`/
`
`Applet Forwards Service Request to
`Corresponding Servlet
`
`Servlet Retrieves Service Address
`
`Servlet Forwards Service Request
`to Appropriate Service Interface
`
`Service Interface initiates Execution
`of Appropriate Service
`
`Service interface informs Servlet of
`Service initiation
`
`
`
`Servlet Configures itself to Act as
`Proxy for Applet
`
`Servlet Informs Applet of Service
`Initiation
`
`Applet Configures itself to Act as I/O
`Interface with Service Engine
`
`710
`
`720
`
`730
`
`740
`
`750
`
`760
`
`770
`
`780
`
`FIG. 7
`
`APPL-1008 / Page 10 of 18
`
`
`
`U.S. Patent
`
`Oct. 10, 2000
`
`Sheet 9 of 10
`
`6,131,116
`670 /
`
`Applet Requests the Master Server to
`Open a Direct Connection with the
`Service Engine
`
`Master Server Sends Service-Specific
`Configuration Data to the Applet
`
`Client Opens Direct Connection
`With Service
`
`Applet Forwards Service Request to
`Service Interface
`
`Service Interface initiates Execution
`of Appropriate Service
`
`Service Interface informs Applet of
`Service initiation
`
`Applet Configures itself to Act as I/O
`Interface with Service Engine
`
`
`
`
`
`810
`
`820
`
`830
`
`840
`
`850
`
`860
`
`870
`
`FIG. 8
`
`APPL-1008 / Page 11 of 18
`
`
`
`U.S. Patent
`
`Oct. 10, 2000
`
`Sheet 10 of 10
`
`6,131,116
`
`680 /
`
`
`
`
`
`Load Service Engine
`into RAM
`
`910
`
`Execute Service
`Engine
`
`920
`
`Send Display Data and I/O
`Requests as Responsive Data
`to Remote Client
`
`930
`
`Wait for an Instruction
`from Remote Client
`
`940
`
`
`
`Process Instruction and
`Repeat Steps 920-960 Until
`Instructed to Quit
`
`960
`
`End
`
`FIG. 9
`
`APPL-1008 / Page 12 of 18
`
`
`
`1
`SYSTEMAND 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
`finished, 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 files and programs a time-consuming process.
`Further, downloading files and programs acroSS insecure
`channels Severely threatens the integrity and confidentiality
`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 confidentiality of
`the data, and without compromising data consistency.
`
`15
`
`25
`
`35
`
`40
`
`50
`
`45
`
`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 confirm access privileges before allowing clients to
`access a Service. The communications engine receives con
`55
`figuration data which are used to configure 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-specific user interface to the
`client. It will be appreciated that the System may be Stored
`on a floppy 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
`
`60
`
`65
`
`6,131,116
`
`2
`ing a communications link may include confirming access
`privileges. The method may further include receiving con
`figuration data, and using the configuration data for config
`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-specific 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 confidentiality of the data, and without com
`promising data consistency. Still further, the System and
`method use configuration 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
`configuration 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 flowchart illustrating a method for globally
`accessing a particular computer Service;
`FIG. 7 is a flowchart illustrating details of the FIG. 6 step
`of initiating execution of a Service on the local client;
`FIG. 8 is a flowchart illustrating alternative details of the
`FIG. 6 Step of initiating execution of a Service on the local
`client; and
`FIG. 9 is a flowchart 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 first local client
`110 and a second local client 160 are addressably connected
`via the local network 120 to the master server 130. A remote
`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 first local client 110 includes a first service engine 115
`for providing a first 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 configured for communicating with the internet
`140 and for reading and executing applets. Examples of web
`
`APPL-1008 / Page 13 of 18
`
`
`
`6,131,116
`
`15
`
`25
`
`35
`
`40
`
`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. A user 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 configuration data
`137, which the remote client 150 can download to gain
`access to the desired Service and to configure the
`functionality, look and feel of the web browser 155. The
`configuration 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
`figuration 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 configuration 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.
`
`45
`
`50
`
`55
`
`60
`
`65
`
`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
`configuration 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. A user 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(R) microprocessor or an
`Intel Pentium(R) 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. A communications 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) configuration engine 284, which config
`ures the operating system 280 based on OS configuration
`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) configuration engine 288,
`which configures the web browser 155 based on WB con
`figuration 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 (AE) configuration engine 292, which con
`figures the applet engine 290 based on AE configuration data
`137 received from the master server 130. The applet engine
`
`APPL-1008 / Page 14 of 18
`
`
`
`6,131,116
`
`15
`
`25
`
`35
`
`40
`
`S
`290 further includes applet-specific configuration data 296
`received from the master server 130. For example, for the
`e-mail applet 294, e-mail applet configuration 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(R) microprocessor
`or an Intel Pentium(R) 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 configuration 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
`configuration data 137. Configuration 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
`configuration data 296 Such as the user's e-mail address,
`name and Signature block. It will be appreciated that applet
`Specific configuration data 296 is needed Since the Service
`may not be located on the user's own local client 110 or 160.
`Configuration data 137 further includes predetermined user
`preferences 394 Such as font, window size, text size, etc.
`Configuration 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.
`Configuration 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(R) microprocessor or an
`Intel Pentium(R) 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. A communications interface 450, a data
`storage device 460, such as Read Only Memory (ROM) and
`a magnetic disk, and a Random-Access Memory (RAM) 470
`
`45
`
`50
`
`55
`
`60
`
`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, QuickCard", etc. may
`be included on the web page.
`FIG. 6 is a flowchart 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 configuration data 388 from the master server
`130, which in step 630 the remote client 150 uses to
`configure itself. Step 630 includes using the OS configura
`tion engine 282 to configure the operating System 280, using
`the WB configuration engine to configure the web browser
`155, and using the AE configuration engine 288 to configure
`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 configuration 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.
`
`APPL-1008 / Page 15 of 18
`
`
`
`7
`FIG. 7 is a flowchart 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 servlet 384 in step 720 compares
`the service request with the service addresses 398 stored in
`the master server 130 to retrieve the service address 398
`corresponding to the requested service 396. The servlet 384
`in step 730 uses the service address 398 to forward the
`Service request to the Service interface 482 of the appropriate
`service engine 490. The service interface 482 in step 740
`receives and initiates execution of the service 396 by the
`appropriate Service engine 490.
`The service interface 482 in step 750 informs the servlet
`384 of the initiation of the service 396. Accordingly, the
`servlet 384 in step 760 acts as a proxy for the executing
`applet 294 and in step 770 informs the applet 294 of the
`initiation of the service 396. The applet 294 in step 780 acts
`as the Input/Output (I/O) interface to the service 396 (via the
`servlet 384). Acting as I/O interface includes using the
`remote client 150 output device 230 to display responsive
`data received from the Service engine 490, using remote
`client 150 input device 220 to forward instructions to the
`Service engine