`US 6,854,009 BI
`(10) Patent No.:
`Feb. 8, 2005
`(45) Date of Patent:
`Hughes
`
`US006854009B1
`
`NETWORKED COMPUTER SYSTEM
`
`OTHER PUBLICATIONS
`
`(54)
`
`(75)
`
`(73)
`
`Inventor: Trevor Hughes, Mt. Laurel, NJ (US)
`
`Assignee: Tacit Networks, Inc., South Plainfield,
`NJ (US)
`
`(*)
`
`Notice:
`
`Subject to any disclaimer, the term ofthis
`patent is extended or adjusted under 35
`US.C. 154(b) by 0 days.
`
`(21)
`
`(22)
`
`61)
`
`(52)
`
`(58)
`
`(56)
`
`Appl. No.: 09/469,834
`
`Filed:
`
`Dec. 22, 1999
`
`Int. C17 veces G06F 15/177; GO6F 15/16;
`GO6F 9/44; GOOF 9/445
`US. Che eccceecnees 709/220; 709/219; 717/176;
`TAT/171; 717/173
`Field of Search ..............0ccceecceeeee TAV/ATI, 174,
`717/173, 176; 709/220, 219, 106; 711/100
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`eeaa Eo
`
`5,442,771
`5,475,819
`5,675,800
`5,765,205
`5,790,753
`
`5,826,000
`5,842,011
`5,852,722
`5,870,554
`5,889,990
`5,919,247
`5,925,103
`5,926,631
`5,935,249
`5,944,608
`
`6,640,334
`
`8/1995
`12/1995
`10/1997
`6/1998
`8/1998
`
`10/1998
`11/1998
`12/1998
`2/1999
`3/1999
`7/1999
`7/1999
`7/1999
`8/1999
`8/1999
`10/1999
`5/2001
`5/2002
`9/2002
`10/2002
`4/2003
`10/2003
`
`
`
`Filepp et al. oo... 709/219
`Miller et al.
`........... 395/200.03
`Fisher, Jr. et al.
`.......... 395/700
`Breslau et al.
`.............. 711/103
`Krishnamoorthy
`... 395/200.33
`etal. wu...
`.. 395/180.02
`Hamilton ..
`Basu.
`....ceeeeececcceeeeeeneeee 395/652
`Hamilton ............ 395/200.51
`Grossmanetal. ..... 395/200.52
`Colemanet al.
`............ 395/682
`........... 709/217
`Van Hoff et al.
`
`Magallanes et al.
`........ 709/230
`McGarvey ..... cece 395/500
`
`. 713/201
`...
`Stern et al.
`
`......
`Reed et al.
`463/40
`
`..
`Amberget al.
`FAT/AT4
`Deo et al.
`.....ceeeeeeeeee 709/106
`Doran et al. 0... FAT/174
`
`Toorians .........ceeeeeeeeeee 711/100
`Kato et al. voces T17/173
`
`.............00 717/173
`Erpeldinger
`Rasmussen ...............65 FAFATAL
`
`Andersonet al., “A Case for NOW (Networks of Worksta-
`tions)”, Dec. 9, 1994, p 1-20.
`Culler et al., “Parallel Computing on the Berkeley NOW”,
`p 1-11.
`The Berkeley NOW Project, p 1-2.
`SETI @home, “How SETI@home works”, p 1-16.
`CITRIX, “Citrix and Windows 2000 Positioning Points”, p
`1-3.
`StorageTek, Level 3 make storage pact, p 1-3.
`Sun Ray™ 1 Enterprise Appliance, “IJot Desk Architec-
`ture”, p 1-19.
`
`* cited by examiner
`
`Primary Examiner—William A. Cuchlinski, Jr.
`Assistant Examiner—Michael Delgado
`(74) Attorney, Agent, or Firm—Norris, McLaughlin &
`Marcus
`
`(57)
`
`ABSTRACT
`
`Anetworked computer system has a plurality of servers and
`a plurality of distributed clients, which may be devices or
`computers. Each client has a boot operating system (OS).
`Upon startup,
`the boot OS in each client automatically
`initiates a connection to one of the servers via the Internet.
`The boot OS can detect the type of medium (e.g., cable
`modem, DSL) to which the client is connected. The server
`automatically downloads a base OS and dynamically con-
`figures a suite of applications on the client without running
`the standard installation programs. One included application
`is an Internet telephony application, allowing a user to plug
`a standard telephone into the client appliance or computer,
`pick up the telephone, and automatically dial out using long
`distance Internet
`telephony. Optionally,
`the server may
`download a plurality of operating systemsthat are automati-
`cally initiated to run concurrently on the client. The clients
`use a random access memory (RAM)caching technique. A
`first portion of each OS or application is downloaded at
`startup and maintained in the client RAM, containing the
`files needed to launch the OS or application. If the client
`processes a request for an OSorapplication program file not
`in the client’s RAM,
`the requested file is automatically
`downloaded from the server.
`
`8 Claims, 18 Drawing Sheets
`
`¥
`
`toe
`
`
`‘TURN CLIENTON L-- 100
`
`
`
`¥
`BOOT PROM SEQUENCE |“lO.
`
`We
`
`lot
`‘LANOR WAN)
` x
`BOOT SERVER
`oor |*
`UND
`
`
`N
`BOOTMINIOS FROM
`BOOTABLESOLID STATE
`PERSISTENT STORAGE
`
`
`
`
`LOGINAUTHENTICATION
`
`)NFIGURED.eee=
`
`uz
`SELECTBOOT OR
`DIAL OUTTO.
`SERVER OVERPSTN
`FPS
`
`CONFIGURATIONS
`
`
`
`
`DOWNLOAD&
`
`INSTALLCONFIGURATION
`
`ONTO SOLID STATE
`‘BOOTCONFIGURATION |“ 1+
`
`STORAGE (BASEDON
`
`USER ACCOUNT INFO)
`‘CONNECTTOSERVER
`AUTHENTICATION Lr lite
`
`
`
`DOWNLOADFULLBASEOs }~ 116
`
`
`Ln 1120
`
`
`SELECTErrENVIRONMENT J 1122
`
`
`
`INSTALL/ACTIVATEENVIRONMENT | 24
`
`
`“USE SYSTEM
`
`bo 126.
`
`
`
`Google Exhibit 1127
`Google v. VirtaMove
`
` +
`
`
`130]
`
`
`
`Google Exhibit 1127
`Google v. VirtaMove
`
`
`
`U.S. Patent
`
`Feb. 8, 2005
`
`Sheet 1 of 18
`
`US 6,854,009 B1
`
`
`Household
`
`~)
`S
`
`
`
`Average
`
`x
`_
`.
`O
`=
`LL
`
`5o
`
`f
`=y
`ge
`4
`
`ServerFarm
`
`
`
`U.S. Patent
`
`Feb. 8, 2005
`
`Sheet 2 of 18
`
`US 6,854,009 B1
`
`QS
`
`E
`Nw ic
`
`>w
`
`yman ”n
`
`Bs
`
`3
`=
`
`Ia
`
`j
`Am
`
`OX SS
`=
`wr
`
`z od
`20
`Ss >
`
`a ve
`Hl
`
`e
`
`3
`No
`a
`
`9
`-
`
`LANMWAN/VPN Device aory
`
`
`
`mJ1F20
`
`StandardPBX Teleph
`
`142%
`\__NN
`HILO
`HOODOO
`LisiILLeI4
`DIDO
`
`
`
`
`Server
`Local
`
`
`5
`3
`
`
`
`=
`5
`3
`
`oO
`
`o
`LN
`
`UM”
`
`aa
`=
`
`O
`VY
`i
`
`
`
`
`
`
`
`
`OfficeBuilding
`
`
`
`
`
`
`U.S. Patent
`
`Feb. 8, 2005
`
`Sheet 3 of 18
`
`US 6,854,009 B1
`
`
`
` ServerFarm
`
`121
`
`
`
`Special purpose
`
`
`
`
`| “backend:servers:
` aC AlLivenseiAccounting
`pe Server
`
`a
`
`OSsserver.
`
`
`
`
`Onthe-lyod.
`“configurationserver ©
`
`>
`
` Figure 2
`
`
`
`U.S. Patent
`
`Feb. 8, 2005
`
`Sheet 4 of 18
`
`US 6,854,009 B1
`
`.
`
`De ice/Appliance >; [age
`
`
`
`Tye
`
`|” USB
`
`[IP
`-
`Rpes oe Pas
`| phone.
`{| Sound |
`_
`Chipset’!|chipset
`
`Figure 3
`
`1
`34071
`
`HardDrive
`(Optional)
`
`;
`|
`
`
`
`U.S. Patent
`
`Feb. 8, 2005
`
`Sheet 5 of 18
`
`US 6,854,009 B1
`
`132
`
`Thin Client
`Device/Appliance
`
`Boot OS on Solid State Disk
`
`f
`
`Compression Layer
`
`BAM Disks Secondary||Secondary
`RAM Disks
`OS
`OS
`Mis
`os Boot.
`Application
`
`408
`
`404
`
`Figure 4
`
`406
`
`410
`
`412
`
`Files
`
`
`
`BaseApplications
`
`Seconda
`
`Files
`
`
`
`U.S. Patent
`
`Feb. 8, 2005
`
`Sheet 6 of 18
`
`US 6,854,009 B1
`
`
`
`Thin Client
`
`Device/Appliance
`
`
`
`
`
`Chipset
`
`Standard
`Telaphone
`Equipment
`
`Figure 5
`
`
`
`U.S. Patent
`
`Feb. 8, 2005
`
`Sheet 7 of 18
`
`US 6,854,009 B1
`
`_ THINCLIENTDEVICE/APPLIANCE©.
`Base Os _.
`"Secondary
`
`"IP Phone
`Chipset. ee
`‘Device Drivers}:.-
` ) |
`
`Os"
`
`"ReplicatorsES Applications. ree
`
`-Base:os. +}“fe :eS‘Secondaryos5|°[oe
`
`Figure 6
`
`
`
`U.S. Patent
`
`Feb. 8, 2005
`
`Sheet 8 of 18
`
`US 6,854,009 B1
`
`Base OSLinux’ *~
`
`° .
`S
`z.
`So
`2
`Ol
`oo
`Cc .
`=||vooD,
`
`~ Thin Client/Device/Appliance< |
`
`LE:,
`
`Figure 7a
`
`
`
`U.S. Patent
`
`Feb. 8, 2005
`
`Sheet 9 of 18
`
`US 6,854,009 B1
`
`(34
`
`120
`
`WINDOWS98 V7 22
`
`WINDOW
`
`WINDOWSNT
`
`WINDOW
`
`
`
`yl 24
`
`LINUX
`WINDOW
`
`7126
`
`UNIX
`WINDOW
`
`122
`
`FIG. 78
`
`
`
`U.S. Patent
`
`Feb.8, 2005
`
`Sheet 10 of 18
`
`US 6,854,009 B1
`
`DRWE
`
`SEML- PERSISTENT
`Boor
`IMAGE
`
`7GOL
`
`BOF
`
`SEM\ ~ PERSISTENT
`“PERMANENT “ STORAGE
`806
`COMPRESSED
`SEMI- PERSISTENT
`
`DISK IMAGE
`RAM oR
`HARD
`
`COMPUTER
`
`a
`
`508
`
`NETWORK
`CARD
`7 B10
`| 8 ot
`ROOT
`
`|
`
`EWERNET
`
`.
`
`FIG, ©
`
`
`
`U.S. Patent
`
`Feb.8, 2005
`
`Sheet 11 of 18
`
`US 6,854,009 BI
`
`410
`
`Secondary
`Os
`
`Application
`Segment
`
`
`
`
`
`Application
`Segment
`
`Application
`Segment
`
`Application
`Segment
`
`Application
`Segment
`
`Application
`Segment
`
`
`
`Virtual Machine
`
`132
`
`DEVICE
`
`C
`
`
`
` 410
` 410,
`
`&&
`
`Secondary
`OS and Apps
`
`Secondary
`OS and Appa
`
`608
`
`Figure 9
`
`
`
`U.S. Patent
`
`Feb. 8, 2005
`
`Sheet 12 of 18
`
`US 6,854,009 BI
`
`
`
`
`
`
`
`
`ce“adninwsosejnBurs‘sq/suonerydde:ajyoidsasoay10ye1ad9
`
`
`
`
`eaSonespue(ssQJuadNIUO?ajdiyjnuYIM)DdPJEPUe}sBay!|ADAPSazZII}N10JeIadG
`
`
`
`
`
`
`es“S31ASP0}UO|SsasxnuljaseqpueNusWsuONdoOjeRIU!speojUMOpJanuas
`
`=eS1JOAIIS0}ELEP
`
`
`
`
` cSSs*(sasoduindBulljiq4oyaBesni0jejn>)/e>savuas
`
`
`
`
`
`
`
`size)‘Burysoyuoleryddejosasuejsutut)suoissasaunyny104ajyoudsojesadosulejazJaAles
`
`
`
`
`
`‘WVY3219p0}550puesuoleriddejouoqodAiessazauSpeo|UMOPJdAIaS
`
`cS
`
`eS
`
`cS
`
`bsEnSacDee‘AyjerJLWOINEJaAgasay}$3>e},U02ad1AaG
`
`
`
`
`
`
`
`‘JaAJa58}OWA!0}dnBuiyyuanasyoegJavlas
`
`yo!’9|4
`
`AON'O)4
`
`201°914
`
`
`
`Gol°9)4
`
`30]“94
`
`4o|94
`
`90)94
`
`
`
`
`
`U.S. Patent
`
`Feb.8, 2005
`
`Sheet 13 of 18
`
`US 6,854,009 B1
`
`FIG. Lt
`
`lO
`
`TURN CLIENT ON
`
`
`
`_-~ ((00
`
`
`
`
`
`BOOT PROM SEQUENCE
`
`Woe
`
`lOF
`
`
`
`
`
`LAN OR WAN
`BOOT SERVER
`
`OUND ?
`
`PERSISTENT STORAGE
`
`BOOT MINI OS FROM
`BOOTABLESOLID STATE
`
`11038
`
`HU2B
`
`DIAL OUT TO
`SERVER OVER PSTN
`
`
`
`DOWNLOAD &
`INSTALL CONFIGURATION
`ONTO SOLID STATE
`STORAGE (BASED ON
`USER ACCOUNT INFO)
`
`Lo
`
`
`CONNECTIONS
`
`
`SELECT BOOT OR
`EDIT LIST OF
`
`CONFIGURATIONS
`
`BOOT CONFIGURATION L~ HWE4
`
`(( 40
`
`CONNECT TO SERVER
`AUTHENTICATION
`
`(ilo
`
`DOWNLOAD FULL BASE OS
`
`18
`
`LOGIN AUTHENTICATION
`
`2
`(eo
`
`SELECT EDIT ENVIRONMENT
`
`li22
`
`INSTALL/ACTIVATE ENVIRONMENT
`
`L124
`
`USE SYSTEM
`
`26
`
`
`
`U.S. Patent
`
`Feb.8, 2005
`
`Sheet 14 of 18
`
`US 6,854,009 B1
`
`
`
`STORE CODE FOR
`EACH CONNECTION
`
`METHODIN CLIENT
`
`% 1 ( ' i ’ 4’
`
`[ttreeewneneee
`
`
`
`
`
`
`
`
`
`AUTOMATICALLY
`
` REQUEST FOR
`DOWNLOAD
`2ND PORTION
`2ND PORTION
`
`OF BASE OS
`
`
`OF BASE OS
`
`
`
`OVERWRITE
`
`
`1ST PORTION
`
`USE 2ND PORTION OF BASE OS
`1220
`
`
`DOWNLOAD REPLACEMENT CONNECTION COD
`
`~~ ze d
`
`IL 24
`
`
`
`U.S. Patent
`
`Feb. 8, 2005
`
`Sheet 15 of 18
`
`US 6,854,009 B1
`
`FG.
`
`(3
`
`SELECT FREQUENTLY USED PROGRAM FILES|_/— { 4 O 0
`FOR FIRST PORTION
`
`SELECT INFREQUENTLY USED PROGRAM FILES
`FOR SECOND PORTION
`
`wv (302
`
`
`
`START CLIENT
`
`[304
`
`DOWNLOAD IST PORTION OF BASEOS AND |_~ | 30G
`1ST PORTION OF EACH APPLICATION
`
`(508
`
`REQUEST FOR
`DOWNLOAD
`2ND PORTION
`2ND PORTION
`
`OF APPLICATION ?
`OF APPLICATION
`
`
`
`USE 1ST PORTION OF APPLICATION
`
`OVERWRITE
`1ST PORTION
`
`USE 2ND PORTION OF APPLICATION
`
`
`
`
`
`
`
`LAUNCH BASE OS AND APPLICATION
` AUTOMATICALLY
`
`
`
` | 31¢
`
`
`
`
`U.S. Patent
`
`Feb.8, 2005
`
`Sheet 16 of 18
`
`US 6,854,009 B1
`
`IDENTIFY DEPENDENCIES AMONG
`POPULATION OF APPLICATIONS
`
`| 4 0 D
`
`STORE DEPENDENCIES|~| 4-7.
`IN A DATABASE CODES
`
`
`
`
`
`rlo.14
`
`404
`Paascrmoms}- “Oo
`
`
`
`QUERY DATABASE
`FOR DEPENDENCIES
`AMONGUSER’S PROGRAMS
`
`
`
`W/ DEPENDENCIES
`INCLUDED?
`
`
`
`
`GENERATE CONFIGURATION
`GENERATE CONFIGURATION
`
`FILES REFLECTING
`FILES REFLECTING
`NO DEPENDENCIES
`
`
`DEPENDENCIES
`
`
`
`
`
`DOWNLOADPROGRAMFILES
`FOR APPLICATIONS IN PROFILE
`
`It(®
`
`
`
`
`
`U.S. Patent
`
`Feb. 8, 2005
`
`Sheet 17 of 18
`
`US 6,854,009 B1
`
`LAUNCH BASE OSNeu71590
`
`(507%.
`
`TRACK LENGTH OF
`TIME OS RUNNING
`
`
`
`
`
` |50
`
`LAUNCH APPLICATION
`
`IN CLIENTS
`
`TRACK LENGTH OF TIME
`APPLICATIONS RUN
`
`(SO
`
`DEBIT CLIENT OWNER
`ACCOUNTSFOR OS TIME
`
`|SO%
`
`DEBIT CLIENT OWNER
`ACCOUNTS FOR APPLICATION TIME
`
`15(0
`
`GENERATE REPORT OF
`TOTAL OS TIME FOR ALL CLIENTS
`
`rISt@
`
`GENERATE REPORT OF
`TOTAL APPLICATION TIME FOR ALL CLIENTS
`
`(5(4+
`
`CREDIT LICENSOR ACCOUNTS
`FOR OS TIME, APPLICATION TIME
`
`iS 16
`
`INITIATE ELECTRONIC FUNDS
`TRANSFER TO LICENSOR ACCOUNTS
`
`518
`
`CREDIT CUSTOMER FOR CPU TIME
`USED / JOBS COMPLETED
`
`iSzo
`
`
`
`U.S. Patent
`
`Feb.8, 2005
`
`Sheet 18 of 18
`
`US 6,854,009 B1
`
`FIG.
`
`IO
`
`DOWNLOADTHIRD PARTY CODE
`AND DATA TO CLIENT»
`
`
`
`
`
`
`APPLY CREDIT
`PAY OWNER
`
`
`OF CLIENT
`AGAINST USER
`
`ACCOUNT BALANCE
`
`
`
`US 6,854,009 B1
`
`1
`NETWORKED COMPUTER SYSTEM
`
`FIELD OF THE INVENTION
`
`The present invention relates to the field of telecommu-
`nications generally, and more specifically to networked
`computer systems including server processors and thin cli-
`ents.
`
`DESCRIPTION OF THE RELATED ART
`
`In recent years, acceptance of computer technology and
`use by both consumer and commercial customers has been
`greatly hindered by several factors relating to maintenance
`and difficulty of configuring computer software and hard-
`ware. Traditionally, both private and commercial users of
`computers have been plagued by maintenance and configu-
`ration problemsthat have required the attention of an on-site
`technician. For commercial users of computers and
`software, this tends to be a tremendous addition to the cost
`of doing business and clearly affects the rate at which many
`companies can grow and ultimately compete in industry. For
`consumers, the need for expert assistance in maintaining and
`installing software and hardware used for household com-
`puting is rather intimidating and thus inhibits the average
`consumer’s ability to fully use currently available technolo-
`gies. The high price of PCs (personal computers) and
`software is also a factor in discouraging complete market
`penetration and subsequent use of the latest available tech-
`nologies on both commercial and consumerfronts.
`At the same time, software companies’ inability to protect
`proprietary programsand affordably distribute and support
`their products negatively impacts their bottom line
`profitability, thus slowing the advance of new technologies.
`Software pirating is a rampant problem worldwide, and
`international law has not yet given software development
`companies the tools they need to effectively discourage the
`most significant overseas offenders. The advent of writable
`CD ROMshas made software copying a more threatening
`problem than ever before, both in the US and abroad.
`Additionally,
`recently developed technologies have
`allowed the transport of voice transmissions over the Inter-
`net in much the same manneras other data. Some companies
`have begun to provide hop-off points from the Internet onto
`the public switched telephone network. This allows a user
`the ability to make telephone calls from anywhere in the
`world when connected to the Internet. These telephonecalls
`are now localcalls if the call destination is within the local
`
`calling area of one of these companies. While this has
`resulted in the ability of individuals and industry to greatly
`reduce their long distance phone bills,
`the complicated
`configuration issues surrounding this technology have con-
`tributed to low levels of market penetration. In addition,
`many implementations are substandard and have led to
`customer dissatisfaction.
`
`10
`
`15
`
`30
`
`35
`
`40
`
`45
`
`50
`
`2
`that are connected to each other by a type of
`a client
`connection. The method comprises the steps of: starting the
`client with a boot operating system; automatically establish-
`ing a communications session corresponding to the type of
`connection between the server and the client; downloading
`at least a first portion of a base operating system from the
`server to the client; and automatically launching the base
`operating system in the client after the downloading.
`Another aspect of the invention is a method and apparatus
`for operating a computer system including a server and a
`client. The method includes downloadinga first portion of
`an application program from theserverto the client. The first
`portion of the application program containsa first plurality
`of program files. The application program further includes a
`second portion containing a second plurality of program
`files. The second plurality of program files is not included in
`the first plurality of program files. The application program
`is designed to operate only withthefirst plurality of program
`files stored locally and the second plurality of program files
`stored locally. The application program is launched in the
`client, while the first portion of the application program is
`stored locally in the client, but the second portion of the
`application program is not stored locally in the client. A
`request for one of the second plurality of program files is
`processed in the client. At least one of the second plurality
`of program files is automatically downloaded from the
`server to the client. The at least one of the second plurality
`of program files is used in the client.
`Anotheraspect of the invention is a method and apparatus
`for operating a computer system including a server and a
`client. The method includesthe steps of downloadingat least
`a first portion of a base operating system from the serverto
`the client upon startup of the client, the first portion of the
`base operating system including a plurality of operating
`system files that are not stored locally in the client before the
`downloading; launching the base operating system in the
`client after downloading the first portion; downloading at
`least a first portion of a second operating system from the
`server to the client; and spawning the second operating
`system from the base operating system in the client, the base
`and second operating systems running concurrently in the
`client.
`
`Anotheraspect of the invention is a method and apparatus
`for operating a computer system including a server and at
`least one client. The method comprises the steps of: down-
`loading at least a first portion of a base operating system
`from the server to the client after startup of the client;
`launching the base operating system in the client; automati-
`cally tracking a first length of time during which the client
`runs the base operating system; and automatically debiting
`a first account record in the server by a first amount based
`on the first length of time, the first account record being
`associated with an ownerof the client.
`
`the number of households/businesses that
`In the U.S.,
`Still another aspect of the invention is a method and
`have not yet embraced the latest computer and software
`system for configuring computer programsona clientthat is
`technologyis remarkably high.It is a widely accepted belief
`coupled to a server. The method comprises identifyingafirst
`that, as the cost of computers and software falls, the number
`of users will increase in direct relation to the increased
`plurality of computer programs that are listed in a user
`profile associated with a user of the client. Thefirst plurality
`of computer programs are associated with the user. A data-
`base is queried. The database identifies dependencies among
`a second plurality of computer programs that are stored on
`the server. The first plurality of computer programs is a
`subsetof the second plurality of computer programs. Depen-
`dencies are identified amongthefirst plurality of computer
`programs based on the querying. Configurationfiles that are
`required to execute any of the first plurality of computer
`programsin the client are automatically generated, without
`
`affordability of these technologies.
`Consequently, a need exists for a new apparatus and
`method by which both commercial and consumer computer
`and software users can alleviate the exorbitant costs and
`downtime associated with software and hardware
`
`installation, configuration and maintenance.
`SUMMARYOF THE INVENTION
`
`Oneaspect of the invention is a method and apparatus for
`operating a computer system including at least a server and
`
`55
`
`60
`
`65
`
`
`
`US 6,854,009 B1
`
`3
`executing any installation programs associated with any of
`the first plurality of computer programs.
`The above and other features of the present invention will
`be better understood from the following detailed description
`of the exemplary embodiment of the invention which is
`provided in connection with the accompanying drawings.
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`FIGS. 1A and 1Bare block diagrams showing respective
`portions of an exemplary networked computer system
`according to the present invention.
`FIG. 2 is a block diagram showing the exemplary server
`farm of FIGS. 1A and 1B.
`
`FIG. 3 is a block diagram of the hardware in exemplary
`thin client appliance of FIGS. 1A and 1B.
`FIG. 4 is a block diagram of the exemplary computer
`shown in FIG. 1B.
`
`FIG. 5 is a block diagram showing an exemplary tele-
`phone interface according to the invention.
`FIG. 6 is a block diagram showing an Internet telephone
`software configuration in the appliance of FIG. 3.
`FIG. 7A is a block diagram showing an exemplary con-
`figuration of base and secondary operating systems in the
`appliance of FIG. 3.
`FIG. 7B is an exemplary display including a plurality of
`windowsrunning respective operating systems, in the moni-
`tor shown in FIG. 1A.
`
`FIG. 8 is a block diagram showing the software configu-
`ration of the device of FIG. 3.
`
`FIG. 9 is a block diagram showing remoteprofiling in the
`system of FIGS. 1A and 1B.
`FIGS. 10A-10G are diagrams showing activities per-
`formed during a user session in the system shown in FIGS.
`1A and 1B.
`
`FIG. 11 is a flow chart diagram showing a method for
`configuring the appliance shown in FIGS. 1A and 1B.
`FIG. 12 is a flow chart diagram showing a method for
`forming a connection between the client and server of FIG.
`1A, and downloadingthe base operating system to the client.
`FIG. 13 is a flow chart diagram showing a method for
`configuring the application software in the appliance of FIG.
`1A.
`
`FIG. 14 is a flow chart diagram showing a method for
`generating configuration files for the clients shown in FIGS.
`1A and 1B “on the fly” without running installation pro-
`grams.
`FIG. 15 is a flow chart diagram showing a method for an
`exemplary chargeback system suitable for use in the system
`shown in FIGS. 1A and 1B.
`
`FIG. 16 is a flow chart diagram showing a method for
`applying credits for third party calculations performed on
`client processors.
`
`OVERVIEW
`
`FIGS. 1A and 1B show two portions of an exemplary
`networked computer system according to the present inven-
`tion. The system includes a server farm 100 which includes
`a plurality of fileservers. A plurality of clients 132, 141a,
`141b can be connected to the server farm 100 by way of the
`Internet 110. The clients may include thin client appliances
`(devices) 132 and/or personal computers 141a, 1415 in any
`combination. The clients connect to a site on the Internet to
`establish a session with one of the servers of the server farm
`100.
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`4
`FIG. 1A shows exemplary consumer users connected to
`the system, and FIG. 1B shows exemplary commercial
`users. The exemplary embodiment includes a new scaled
`down version of a computer that requires no manualsoft-
`ware installation or maintenance to be performed locally.
`This new PIA/PNA(Personal Internet Appliance/Personal
`Network Appliance, hereinafter referred to as “appliance
`132”) offers users the ability to use the same variety of
`programs currently available for traditional PCs 141a, 141b
`today. The appliance 132 is able to operate like a full scale
`computer 141a.
`A typical consumer user can connect to the network via
`one of two different mechanisms. The very first time a user
`connects to the system, an initial connection is formed over
`a telephone line or Ethernet connection to a local server
`(discussed in greater detail below) whenthe client 132, 141a
`is started up, and may use virtual private network (VPN)
`tunneling. Preferably, the initial connection provides secu-
`rity by encryption, and on-the-fly compression. (The type of
`compression may vary depending on the type of files
`downloaded,and is determined by the server). Compression
`may be used on anylink betweenthe server farm 200 and the
`client 132, 141, as described below with reference to FIG.
`1B. This initial connection may be formed using a reduced
`version of the operating system (OS), referred to hereinafter
`as the “boot operating system.”
`Subsequent connections to the network are preferably
`formed using Internet Protocol (IP) on a high speed com-
`munications link, such as an Ethernet coupled to a cable
`modem,satellite link, or digital subscriber line (DSL). These
`connections may be made with the
`server farm 100, or with a regional server 122, described
`below with reference to FIG. 1B. Alternatively, low speed
`(dial-up) connections may be used for subsequent
`connections, although performance is not as good with a
`dial-up connection. Performance using a low-speed dial-up
`connection may be improved by using an external hard drive
`for local caching of program files and data, as described
`below.
`
`Referring again to FIG. 1A, appliance 132 may include a
`mother board and sound card, a video card, ports to plug in
`a keyboard and a monitor as well as some other digital
`equipment, but need not have a hard drive installed in it.
`Upon startup, appliance 132 automatically calls up the
`server farm 100 through either a telephone wire 112 or a
`cable modem, a digital subscriber line (DSL) or a network
`cable 111 on either a wide area network (WAN)ora local
`area network (LAN) to one of the remote servers in the
`server farm 100. The remote server acts as an application
`host and allowsthe user of the appliance 132 to choose from
`a numberof operating systems offered by the remote server.
`For example, the user can choose to operate in WindowsNT,
`Windows 95, Windows 98, or Linux. Once the automatic
`download of the OS is completed, the user is then able to
`choose from a numberof applications. The applications may
`be the same applications that are commonly locally
`installed. The applications can be downloaded whenthey are
`to be used, without incurring large delays. The downloaded
`software is stored in random access memory (RAM), atleast
`until the user logs out of the system. User data are stored on
`one of the severs of the server farm 100. No results have to
`be stored locally. Because all software is downloaded from
`the network, and all work is remotely saved in the server
`farm 100, the appliance 132 need not have a hard drive. The
`appliance can thus be less expensive than a conventional
`computer.
`Alternative local computing devices may include micro-
`computers 141a, 141b (e.g., desktop, laptop and the like).
`
`
`
`US 6,854,009 B1
`
`5
`The software needed to form the initial connection to the
`servers in the server farm 100 may be provided in a
`removable, bootable medium (e.g., floppy disk). Because the
`system does not require any local permanent storage, a
`computer 141a can be used to provide the same functions as
`the appliance 132 without changing the computer’s configu-
`ration. As another alternative, a boot ROM maybeinstalled
`in a card in a conventional computer to convertit to operate
`like appliance 132. The term “client” is used herein to refer
`to either a diskless appliance 132 or a fully configured
`computer 141a, 1415 that is used to access the system.
`FIG. 1B showsanother part of the same network shown
`in FIG. 1A. Commercial enterprises may be connected to the
`system, preferably via a local area network (LAN) server
`140. The server 140 may conveniently be used to download
`the boot OS, base OS and applications to all of the local
`clients 141a, 141b. As in the case of the consumer, a
`commercial user mayaccess the system via an appliance 132
`or acomputer 141a. The local server 140 allows any number
`of clients in the enterprise to connect to the server farm 100
`via a single cable modem, DSL,or satellite link, to which
`server 140 is connected. The clients 132, 141 are in turn
`connected to the local server 140 by a LAN connection
`method, such as Ethernet.
`The local server 140 acts as a local cache for the server
`farm. Each user that accesses the system 100 through the
`server 140 has at least one profile identifying any OS or
`application program that is required by that user. When the
`user’s profile is first identified to the local server 140, the
`server 140 requests (from server farm 100) the applications
`and imagesthat are required to service that user. The local
`server 140 also receives a mirrored copy of the on-the-fly
`configuration server 204. Subsequently, when the user logs
`on to the system 100 by way of client appliance 132 and the
`local server 140, any OS or application images, databases,
`electronic mail or other data required by the user can be
`downloaded from the server 140, which reduces latencies
`that would be encountered if the software were downloaded
`
`directly from the server farm 100. The on-the-fly configu-
`ration server program in the local server can download
`necessary program files and data files from the local server
`140 to the client 132, and passes authentication and tokening
`back to the server farm 100. Thus, the program files and data
`are mirrored down through local servers to be close to the
`clients (in terms of communications latencies).
`Preferably, the server 140 is administered by the owner of
`the system. The local server 140 may be connected to the
`server farm 100 via a direct leased line or the Internet.
`
`Because the local server 140 pre-fetches or downloadsfiles
`from the server farm 100 before they are required to be
`downloaded to the clients 132, 141a, an Internet link is
`expected to provide adequate bandwidth between the local
`server 140 and the server farm 100.
`
`In addition to the local server(s) 140, the system may
`include one or more regional servers 122. The regional
`servers 122 perform a function similar to the local servers
`140, namely caching program files and data for all
`the
`applications required by any local server(s) 140 that are
`connected to the regional server 122. Whena local server
`140is first registered with a regional server 122, the regional
`server identifies any program files and data that are needed
`by the local server 140. Anyof these files not already present
`in the regional server 122 are downloaded from the server
`farm 100 to the regional server 122. All of the neededfiles
`are downloaded from the regional server 122 to the local
`server 140.
`
`Preferably, the regional servers 122 are co-located at the
`central switch locations for telecommunications companies.
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`6
`For example, a regional server 122 maybe located at the
`facility of a regional cable company. Any local server 140
`(or consumer client 132) that is connected to that cable
`companyby a cable modem link can downloadfiles from the
`regional server 140 veryrapidly, without the need to down-
`load directly from the server farm 100. Similarly, telecom-
`munications companies providing DSLorsatellite links to
`businesses and/or consumers may have a co-located regional
`server 122 for all of the clients 132 and local servers that
`
`subscribe to the DSL orsatellite services provided by the
`telecommunications companies. The regional server(s) 122
`may be connected to the local server 140 and server farm
`100 via direct leased lines or via the Internet.
`
`Using the regional server(s) 122 and local server(s) 140,
`the on-the-fly-configuration server 214, OS server 210 and
`application server 212 are mirrored downthe chain,as close
`to the clients 132, 141a as possible. Nevertheless, regardless
`of where a client 132, 141¢@ downloadsa file from, authen-
`tication and tokening are passed back to the authentication
`server 216 in the server farm 100, to ensure proper security
`and configuration management, and prevent software pirat-
`ing.
`As noted above, compression may be used on any link
`between the server farm 100 and the client 132. However, in
`the exemplary embodiment, compression is not used
`between the clients 132 and the local server 140, because the
`speed of the Ethernet is so high that compression could
`actually slow downthe transmission between the server and
`the client. The exemplary embodiment uses two public
`domain software methods for transmission between the local
`
`regional server 122, and server farm 100:
`server 140,
`Blowfish is used for encryption, and LZO is used for
`compression.
`The system allows users the opportunity to travel without
`carrying a specialized appliance or smart card. The system
`can be accessed from anywhere in the world via the Internet
`(for a consumer or commercial user) or via a LAN or WAN
`that may be available for commercial users. Regardless of
`the local client device used, the user can log in and enter a
`password; access is automatically provided to all the user’s
`personalarray of files and applications. Appliance 132 offers
`unprecedented data portability and security through the use
`of remote data storage and access. By using remote boot
`technology, this software/hardware system allowsthe user’s
`personal data/software to be non-specific to any appliance
`132, PC or traditional computer 141a, yet to be accessible
`through any hardware that can be linked to the remote server
`200 or applications hosting site 100. Ultimately, a user’s
`data/software follows the user wherever he or she goes and
`alleviates the need for data/software to be specific to any
`particular hardware.
`The appliance 132 has an RJ11 connector, so that a user
`can plug a standard telephone handset into the appliance
`132. The appliance is pre-configured to automatically allow
`plug-n-play Internet phone access. The user connects to a
`server in the server farm 100 and automatically, the tele-
`phoneis available to make phonecalls via the Internet. The
`system owner maintains local hopoffs 120 to public
`switched telephone networks (PSTN) 121,so that users can
`use the Internet telephone capability to reach people whoare
`not subscribers of the system. Because every call madeis a
`local call to the server farm 100, large savings are obtainable
`for long distance calls.
`The users can buy or lease appliance 132, or, in some
`cases, enter into a long-term service agreement with the
`system owner to obtain the appliance for free. The user
`
`
`
`US 6,854,009 B1
`
`7
`uplinks to the system applications hosting server and has
`access to both the OS (or multiple OS’s) and applications of
`her choice on a pay-as-you-go basis, so that no up-front
`heavy charges are required for the software packages that
`she is using. Instead, the clients can download and use OS
`and application software whenever th