throbber
Ulllted States Patent [19]
`Himmel
`
`US006167441A
`[11] Patent Number:
`[45] Date 0f Patent:
`
`6 167 441
`9
`9
`Dec. 26, 2000
`
`[54] CUSTOMIZATION OF WEB PAGES BASED
`0N REQUESTER TYPE
`
`FOREIGN PATENT DOCUMENTS
`0851367A1 1/1998 European Pat. Off. .
`
`[75] Inventor: Maria Azua Himmel, Austin, Tex.
`
`10433973 5/1998 Japan '
`
`[73] Assignee: International Business Machines
`Corporation, Arm0nk> N~Y~
`
`[21] Appl. No.: 08/976,405
`
`OTHER PUBLICATIONS
`
`Digestor: Device—Independent Access To The World Wide
`Web, Timothy W. Bickmore and Bill N. Schilit. pp. 1—8,
`1997.
`
`NOV‘ 21’ 1997
`[22] Flled:
`[51] Int. Cl.7 .................................................... .. G06F 15/16
`[52] US. Cl. ........................ .. 709/217; 709/246; 709/219;
`707/104
`[58] Field of Search ................................... .. 709/217, 203,
`709/219, 206, 246; 707/104, 205, 100,
`101, 103
`
`[56]
`
`_
`References Clted
`U'S' PATENT DOCUMENTS
`
`5,442,749
`8/1995 Northcutt et al. .................... .. 709/219
`709/246
`5,727,159
`3/1998 Kikinis --------------- -
`707/103
`57947039 11/1998 Guck
`27802729?
`9/1998 Mogllll
`709/219
`5’848’41
`12/1998 Guc
`707/103
`,864,870
`1/1999 Guck
`707/104
`5,911,776
`6/1999 Guck .............. ..
`709/217
`5,918,013
`6/1999 Mighdoll et a1. ..................... .. 709/217
`
`Prim/1r Examiner—Glenton B. Bur ess
`y
`g
`Assistant Examiner—Chuong Ho
`Attorney, Agent, or Firm—J9ffr9y 5- LaBaW
`
`ABSTRACT
`
`57
`[
`1
`Customized Internet content is provided to a requesting
`client device using an intercepting agent based on the
`capabilities of the requesting client. The agent, typically at
`the Web server to Which the client request is directed
`intercepts a request made by a requesting client device for a
`?le from a Web server. The agent detects client device
`capability information about the requesting client device,
`such as display or memory capabilities. The client request is
`redirected to a Uniform Resource Locator (URL) according
`to the detected client device capability information to
`retrieve a version of the requested ?le.
`
`25 Claims, 5 Drawing Sheets
`
`INTERCEPT REQUEST
`I
`PARSE HEADER FOR BROWSER INFO
`
`221
`
`2&3
`
`I
`
`205
`
`YES
`
`NO
`
`DOWNLOAD SNOOPER
`I
`SNOOP FOR BROWSER, DEVICE INFO 229
`
`2L7
`
`I
`
`211
`
`NO
`
`YES
`
`SEND DIALOG PAGE
`I
`
`RECEIVE USER INPUT INFO I
`
`SELECT WEB PAGE
`I
`REFORMAT IF NEEDED
`I
`SEND PAGE TO CLIENT
`
`If
`
`I
`
`2_1_3 l
`
`2l7
`
`2l9
`
`2_21
`
`WHATSAPP INC.'S EXHIBIT NO. 1010
`
`001
`
`

`
`U.S. Patent
`
`Dec. 26,2000
`
`Sheet 1 0f5
`
`6,167,441
`
`BROwsER
`
`5
`
`CLIENT sMART
`AGENT
`5_°
`
`QUERY
`PAGE
`_
`
`SNOOP
`AGENT
`£12
`
`OS
`
`2
`
`?
`
`RAM
`
`%
`
`“F
`32°’
`
`DIGITAI.
`SIGNAL
`PRO
`OEssOR
`
`MEMORY
`MANAGEMENT
`%
`
`MICRO-
`PROCESSOR
`22
`
`ROM
`
`2
`
`I/O
`CONT.
`:19
`
`(21
`
`ODROM
`3_2
`
`vIDEO
`MOUSE
`HARD FLOPPY KEYBOARD
`DISK
`DISK
`CONTROL- CONTROL- OONTROL-
`@
`2_7
`LER gg
`LER @ I_ER 99
`A
`A
`
`AuDIO
`CONTROL
`LER 31
`
`MOUSE
`13 /
`
`KEYBOARD
`12/
`FIG I
`'
`
`14
`y
`GRAPHIO
`DISPLAY
`
`_ 0__|
`SPEAKER
`SPEAKER
`15A/
`158/
`
`WHATSAPP INC.'S EXHIBIT NO. 1010
`
`002
`
`

`
`U.S. Patent
`
`Dec. 26,2000
`
`Sheet 2 015
`
`6,167,441
`
`7_7
`
`AUTHORIZATION TRANSLATION E
`+
`NAME TRANSLATION
`@
`PATH CHECKS
`r
`RECOGNIZE MIME
`
`Q
`
`g1
`
`FIG. 2
`
`*
`SERVICE
`11
`ADD LOG
`
`5
`
`g
`
`.
`
`Cllent Browser
`
`151
`-
`
`157 “1
`/ Client-Snooper
`agent
`139/
`
`153
`
`Q HTTP Request ‘
`Download Process
`Client informatlon
`\
`>
`163
`
`cl'ent'sman
`Agent
`
`15
`
`l
`
`Page 131
`
`FIG. 4
`
`WHATSAPP INC.'S EXHIBIT NO. 1010
`
`003
`
`

`
`U.S. Patent
`
`Dec. 26,2000
`
`Sheet 3 0f5
`
`6,167,441
`
`WHATSAPP INC.'S EXHIBIT NO. 1010
`
`004
`
`

`
`U.S. Patent
`
`Dec. 26,2000
`
`Sheet 4 0f5
`
`6,167,441
`
`INTERCEPT REQUEST
`I
`PAFISE HEADER FOH BROWSER INFO
`
`2_01
`
`2:3
`
`I
`
`205
`
`YES
`
`NO
`
`DOWNLOAD SNOOPER
`I
`SNOOP FOR BROWSER, DEVICE INFO 229
`
`227
`
`T
`
`211
`
`YES
`
`SUCCESS
`
`SEND DIALOG PAGE
`I
`RECEIVE USER INPUT INFO
`I
`SELECT WEB PAGE
`I
`REFORMAT IF NEEDED
`
`I
`SEND PAGE TO CLIENT
`
`2l3
`
`2L5
`
`2L7
`
`‘
`
`2L9
`
`231
`
`:II
`
`V
`
`FIG. 5
`
`WHATSAPP INC.'S EXHIBIT NO. 1010
`
`005
`
`

`
`U.S. Patent
`
`Dec. 26,2000
`
`Sheet 5 0f5
`
`6,167,441
`
`Please select your computer
`
`Aptiva S38
`
`V \/ 251
`
`If not listed please enter computer name
`
`\/ 253
`
`Describe type of computer
`
`Palm Top-Color
`
`V \f 255
`
`Choose the picture that looks best
`
`
`
`is; Q ~23 K \ X
`
`
`
`
`
`X
`
`257
`
`259
`
`261
`
`FIG. 6
`
`WHATSAPP INC.'S EXHIBIT NO. 1010
`
`006
`
`

`
`1
`CUSTOMIZATION OF WEB PAGES BASED
`ON REQUESTER TYPE
`
`BACKGROUND OF THE INVENTION
`
`This invention relates generally to communication in a
`distributed network computing environment. More
`particularly, this invention relates to customizing the selec
`tion of Web pages in an Internet environment based on the
`requesting client device.
`The World Wide Web, or simply “the Web”, is the
`Internet’s multimedia information retrieval system. It is the
`most commonly used method of transferring data in the
`Internet environment. In the Web environment, clients
`request Web pages from Web servers using the Hypertext
`Transfer Protocol (HTTP). HTTP is a protocol Which pro
`vides users access to ?les Which include text, graphics,
`images, sound, using a standard page description language
`knoWn as the Hypertext Markup Language (HTML). HTML
`provides document formatting alloWing the developer to
`specify links to other servers in the netWork. The path to a
`particular Web server is de?ned by a Uniform Resource
`Locator (URL). Web pages are typically accessed using an
`HTML compatible broWser such as Netscape Navigator
`Which speci?es the link to the Web Server and particular
`Web page using the URL.
`With the popularity of World Wide Web, many companies
`are devoting a majority of their development effort to
`produce softWare applications running on the Internet using
`the Internet protocols such as HTTP and HTML. Other
`methods exist such as the File Transfer Protocol (FTP) and
`Gopher, but have not achieved the popularity of the Web.
`Retrieval of information is generally achieved by the use
`of an HTML-compatible “broWser”, e.g., Netscape
`Navigator, at a client machine. When the user of the broWser
`speci?es a link via a URL, the client issues a request to a
`naming service to map a hostname in the URL to a particular
`netWork IP address at Which the server is located. The
`naming service returns a list of one or more IP addresses that
`can respond to the request. Using one of the IP addresses, the
`broWser establishes a connection to a server. If the server is
`available, it returns a document or other object formatted
`according to HTML.
`As Web broWsers become the primary interface for access
`to many netWork and server services, Web applications in
`the future Will need to interact With many different types of
`client machines including the typical personal computer to
`“thin” clients. Thin clients can range betWeen 60 inch TV
`screens to handheld mobile devices. This large range of
`devices creates a need to customiZe the Web GUI to the type
`of device to Which the server is communicating. Using prior
`art technology one Would most likely need to Write different
`HTML pages or different Web programs, e.g., java, cgi, etc.,
`to handle the GUI and navigation requirements of each
`client environment.
`The client devices differ in their display capabilities, e.g.,
`monochrome, color, different color palettes, resolution, siZe.
`They also vary in the input devices Which may be attached,
`e.g., mouse and keyboard, touch sensor, remote control for
`a TV set-top box. Furthermore, the broWsers themselves can
`vary in the languages supported, e.g., HTML, dynamic
`HTML, XML, Java, JavaScript. Because of these
`differences, the Web broWsing experience of broWsing the
`same Web page may differ Wildly depending on the client
`device.
`This incapability to adjust to the client’s capabilities and
`environment causes a number of problems. The site may
`
`10
`
`15
`
`25
`
`35
`
`45
`
`55
`
`65
`
`6,167,441
`
`2
`simply be incapable of servicing a set of clients, or make the
`Web broWsing experience confusing or unsatisfactory in
`some Way. Even if the Web developers have made an effort
`to accommodate a range of client devices, the code for each
`application may need to be duplicated for each environment.
`Duplicated code consequently increases the maintenance
`cost for the Web site. Frequently, different URLs are
`required to be knoWn for different classes of clients for
`different HTML pages, CGI programs and so forth.
`This invention presents a novel solution for the problem.
`
`SUMMARY OF THE INVENTION
`
`Therefore, it is an object of the invention to support a
`multitude of different client devices for an Internet applica
`tion.
`It is another object of the invention to minimiZe additional
`product development effort in creating the support for a
`variety of client devices.
`It is another object of the invention to determine the type
`of client device Which is requesting services from a Web
`server.
`It is another object of the invention to customiZe an
`Internet application for a variety of client devices.
`These and other objects are accomplished by providing
`customiZed Internet content to a requesting client device
`using an intercepting agent. The agent, typically at the Web
`server to Which the client request is directed intercepts a
`request made by a requesting client device for a ?le from a
`Web server. The agent detects client device capability infor
`mation about the requesting client device, such as display or
`memory capabilities. The client request is redirected to a
`Uniform Resource Locator (URL) according to the detected
`client device capability information to retrieve a version of
`the requested ?le.
`The agent at a Web server can parse the header informa
`tion of the request for the client device capability informa
`tion. The header information sent in a typical request, e.g.,
`an HTTP request, includes a broWser identi?cation and
`broWser level from Which device capabilities can be
`inferred. If the header information can not be parsed, or does
`not contain the needed information, a snooping operation
`performed at the requesting client device can retrieve the
`needed client device information. The snooping operation
`can be performed remotely or can be performed by a
`snooping agent doWnloaded from a Web server. If snooping
`is unsuccessful, the client device information can be
`retrieved from user input to a doWnloaded page at the
`requesting client device. The doWnloaded page may include
`a set of images and the retrieved user input is a preferred
`image appearance on the requesting client device.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`These objects, features and advantages Will be more
`readily understood With reference to the attached ?gures and
`folloWing description.
`FIG. 1 depicts a computer system con?gured according to
`the teachings of the present invention.
`FIG. 2 is a How diagram of a Web request for a page in the
`Internet.
`FIG. 3 is a simpli?ed architectural diagram of an Internet
`including a plurality of client types and a Web server serving
`several sets of Web pages using the current invention.
`FIG. 4 is an architectural diagram shoWing the compo
`nents of needed to practice a preferred embodiment of the
`invention.
`
`WHATSAPP INC.'S EXHIBIT NO. 1010
`
`007
`
`

`
`6,167,441
`
`3
`FIG. 5 is a How diagram of the process for using the
`present invention.
`FIG. 6 is a partial Web page for making a choice of Web
`pages to be presented by an HTML compatible broWser at a
`client device.
`
`DETAILED DESCRIPTION OF THE DRAWINGS
`
`4
`addition, some devices, notably handheld devices, may lack
`some of the elements discussed above such as a keyboard
`and mouse, substituting them With a touch screen and stylus.
`These devices generally communicate With the netWork
`using a Wireless transmission means in the RF or IR spec
`trums. Set top boxes such as WebTV may lack the keyboard
`and mouse, substituting a handheld remote of limited capa
`bility. The use of a conventional television instead of a
`computer monitor also means that the display Will lack the
`resolution and addressable screen siZe assumed by the
`developers of user interfaces for computer interfaces. The
`present invention alloWs a customiZed user interface for
`these and other client devices.
`One of the preferred implementations of the invention is
`as sets of instructions 48—52 resident in the random access
`memory 24 of one or more computer systems con?gured
`generally as described above. Until required by the com
`puter system, the set of instructions may be stored in another
`computer readable memory, for example, in the hard disk
`drive 26, or in a removable memory such as an optical disk
`for eventual use in the CD-ROM 32 or in a ?oppy disk for
`eventual use in the ?oppy disk drive 27. Further, the set of
`instructions can be stored in the memory of another com
`puter and transmitted in a computer readable medium over
`a local area netWork or a Wide area netWork such as the
`Internet When desired by the user. One skilled in the art
`Would appreciate that the physical storage of the sets of
`instructions physically changes the medium upon Which it is
`stored electrically, magnetically, or chemically so that the
`medium carries computer readable information. While it is
`convenient to describe the invention in terms of instructions,
`symbols, characters, or the like, the reader should remember
`that all of these and similar terms should be associated With
`the appropriate physical elements.
`Further, the invention is often described in terms that
`could be associated With a human operator. While the
`operations performed may be in response to user input, no
`action by a human operator is desirable in any of the
`operations described herein Which form part of the present
`invention; the operations are machine operations processing
`electrical signals to generate other electrical signals.
`The invention enables a plurality of Web client types to be
`supported by an Internet application by creating a set of Web
`pages each of Which is formatted for readability for a
`particular supported device. In the preferred embodiment,
`there is one URL per supported application, although once
`at the Web server the request may be redirected to another
`URL Which contains the pages for the particular device. The
`returned HTML page contains the response from the server
`for the requested service customiZed according to the client
`device. Through the invention, the response data on the
`response HTML page is chosen for the best format and
`content to be optimally read, interpreted and displayed by
`the client device.
`In the Internet, the Web server accepts a client request and
`returns a response back to the client. A series of server
`computer may be involved in the retrieval of a speci?c Web
`page. The operation of the server program is governed by a
`number of server application functions (SAFs), each of
`Which is con?gured to execute in a certain stop of a
`sequence. This sequence, illustrated in FIG. 2, begins With
`the authoriZation translation step 75 during Which the Web
`server translates any authoriZation information sent by the
`Web client into a user and a group. If necessary, the step 75
`may decode a message to get the actual client request. At the
`name translation step 77, the URL associated With the
`request may or may not be translated into a system
`
`10
`
`15
`
`20
`
`25
`
`The invention may be run on a variety of computers or
`collection of computers under a number of different oper
`ating systems. The computer could be, for example, a hand
`held computer, a personal computer, a mini computer, main
`frame computer or a computer running in a distributed
`netWork of other computers. In fact the invention assumes
`that a variety of client devices running a variety of broWsers
`is in use in the Internet or intranet. Although the speci?c
`choice of computer is limited only by processor speed and
`disk storage requirements, computers in the IBM PC series
`of computers could be used in the present invention. One
`operating system Which an IBM personal computer may run
`is IBM’s OS/2 Warp 4.0. In the alternative, the computer
`system might be in the IBM RISC System/6000 (TM) line
`of computers Which run on the AIX (TM) operating system.
`In FIG. 1, a computer 10, comprising a system unit 11, a
`keyboard 12, a mouse 13 and a display 14 are depicted in
`block diagram form. The system unit 11 includes a system
`bus or plurality of system buses 21 to Which various com
`ponents are coupled and by Which communication betWeen
`the various components is accomplished. The microproces
`sor 22 is connected to the system bus 21 and is supported by
`read only memory (ROM) 23 and random access memory
`(RAM) 24 also connected to system bus 21. A micropro
`cessor in the IBM PC series of computers is one of the Intel
`family of microprocessors including the 386, 486 or Pen
`tium microprocessors. HoWever, other microprocessors
`including, but not limited to, Motorola’s family of micro
`processors such as the 68000, 68020 or the 68030 micro
`processors and various Reduced Instruction Set Computer
`(RISC) microprocessors such as the PoWerPC chip manu
`factured by IBM. Other RISC chips made by HeWlett
`Packard, Sun, Motorola and others may be used in the
`speci?c computer.
`The ROM 23 contains among other code the Basic
`Input-Output system (BIOS) Which controls basic hardWare
`operations such as the interaction of the processor and the
`disk drives and the keyboard. The RAM 24 is the main
`memory into Which the operating system and application
`programs are loaded. The memory management chip 25 is
`connected to the system bus 21 and controls direct memory
`access operations including, passing data betWeen the RAM
`50
`24 and hard disk drive 26 and ?oppy disk drive 27. The CD
`ROM 32 also coupled to the system bus 21 is used to store
`a large amount of data, e.g., a multimedia program or
`presentation.
`Also connected to this system bus 21 are various I/O
`controllers: The keyboard controller 28, the mouse control
`ler 29, the video controller 30, and the audio controller 31.
`As might be expected, the keyboard controller 28 provides
`the hardWare interface for the keyboard 12, the mouse
`controller 29 provides the hardWare interface for mouse 13,
`the video controller 30 is the hardWare interface for the
`display 14, and the audio controller 31 is the hardWare
`interface for the speakers 15. An I/O controller 40 such as a
`Token Ring Adapter enables communication over a netWork
`46 to other similarly con?gured data processing systems.
`Depending on the client device, there Will be differences
`in the capabilities of the display, memory and processor. In
`
`30
`
`35
`
`40
`
`45
`
`55
`
`60
`
`65
`
`WHATSAPP INC.'S EXHIBIT NO. 1010
`
`008
`
`

`
`6,167,441
`
`5
`dependent ?le name, a redirection URL or a mirror site. In
`the path checks step 79, the server performs various tests on
`the resulting path to ensure that the given client may retrieve
`the document.
`In step 81, Multipurpose Internet Mail Extension (MIME)
`type information, e.g., text/html, image/gif, for the given
`document is recogniZed. In the service step 83, the Web
`server routine selects an internal server function to send the
`retrieved information back to the requesting Web client. This
`function can run the normal server service routine to return
`a ?le or some other server function, such as a program to
`return to return a custom document or a CGI program. At the
`Add Log step 85, information about the transaction is
`recorded.
`AURL or “Uniform Resource Locator” is de?ned in RFC
`1945, Which is incorporated herein by reference. As is Well
`knoWn, the URL is typically of the format: http://somehost/.
`. .” Where “somehost” is the hostname position of the URL.
`The usual manner in Which a URL is resolved into an actual
`IP address for a Web server is through the use of a
`nameserver. In an Internet or intranet netWork, a nameserver
`42 maps hostnames in URLs to actual netWork addresses. An
`example of a nameserver is the Domain Name Service
`(DNS) currently implemented in the Internet. The process of
`having a Web client request a hostname and address from a
`nameserver is sometimes called resolution. In TCP/IP, the
`nameserver resolves the hostname into a list of one or more
`IP addresses Which are returned to the Web client on an
`HTTP request. Each IP address identi?es a server Which
`hosts the requested content made by the broWser.
`This invention includes a server application that
`intercepts, or otherWise handles, the HTML requests from
`requesting clients to a particular HTTP server or application
`thereon. This application, the “client-smart agent”, attaches
`itself to the HTTP server and redirects the server to the
`correct page depending on the client device. “Attaching” the
`server application to the HTTP server basically assures that
`the client-smart agent can communicate With the HTTP
`Server. The “attaching” can be done using interfaces (APIs)
`betWeen the HTTP server and the ClientiSmart agent.
`Alternatively, the ClientiSmart agent can be implemented
`as an application Which intercepts the HTTP requests before
`the HTTP server receives them. The application developer
`can use a commercial HTML server to Write the Web pages
`and then use additional utilities to con?gure the Internet
`application to the client-smart agent.
`The user can alWays use the same URL, but different
`pages Would be served depending on the client’s machine.
`The client-smart agent is con?gured for each of a plurality
`of supported client types.
`The client-smart agent Works in conjunction With the
`HTTP server to process the correct HTML con?guration for
`the speci?ed client. The client-smart agent reads from the
`HTTP header information the client broWser type and oper
`ating system in use. For example, the client-smart agent can
`easily discover that a client request originates at Netscape
`Navigator broWser for WindoWs 95 at a particular version
`level from the header information in the HTTP packet.
`Similar information is found in the header packets of other
`Internet protocols so that the invention is not limited to
`HTTP.
`If based on the HTTP header information, the client
`device can not be identi?ed, the client-smart agent Will send
`an applet, the client-snooper agent, over the netWork to the
`client machine to identify the client type. This client-snooper
`can be Written as a client side J avaScript HTML page, java
`
`10
`
`15
`
`35
`
`55
`
`65
`
`6
`program, or java applet to identify the client device. Once
`the client device has been identi?ed, the “client-smart agent”
`sends the correct HTTP request to the HTTP server. If the
`“client-snooper” is not able to identify the client’s device
`type, the “client-smart agent” can be con?gured to do any of
`the folloWing. The user receives an error, hoWever, this is not
`preferred. Alternatively, the user receives a Web page asking
`to identify his/her device from a list provided. The Web page
`may contain an entry ?eld for entry of an unlisted client
`device. The Web page may also include a several Web page
`samples, asking the user to select the Web page Which looks
`best. Further Web pages Would be selected from among the
`available Web pages at the server on the basis of this choice.
`Finally, the client-smart agent can use a default con?gura
`tion or make an educated guess on the client’s device to
`redirect a request to the appropriate page on the HTTP
`server.
`The client-smart agent is capable of analyZing the HTML
`code and Web applications and select the correct interface
`for a con?gured client type. Each supported client device
`type is con?gured in the smart-client agent by the developer
`of the Internet application. This con?guration process
`includes the description of the screen siZe, input devices,
`e.g., pen, touch-screen, mouse, TV remote control, softWare
`compatible With the broWser, i.e. the Java and HTML level
`supported on the client, amount of memory and other client
`device parameters.
`FIG. 3 shoWs a simpli?ed depiction of an Internet envi
`ronment in Which the invention may be implemented. A
`variety of client device types 101, 103, 105, 107 are coupled
`to the Internet 109 by Wired or Wireless means. The clients
`101—107 can make HTTP requests to a Web server 111 for
`one or more applications. The client-smart agent 113 redi
`rects the client request to the appropriate Web page depend
`ing on the detected client type. In the ?gure, four Web page
`functions are provided by a respective set of Web pages 115,
`117, 119, 121. Each set of Web pages has a respective Web
`page appropriate for a particular Web client device. Those
`skilled in the art Would recogniZe that a plurality of each
`type of client devices Would typically be connected to the
`Internet. Further, there may be a number of intermediary
`servers, gateWays and routers betWeen the clients and the
`Web server Which are not depicted.
`FIG. 4 is an architectural diagram of the components
`needed in the preferred embodiment of the invention. A
`client broWser 151 resident at one of the client devices issues
`an HTTP request 153 for an HTML page at a particular URL
`or for a Web application using Perl CGI, Java, JavaScript or
`other language. The request is directed to the client-smart
`agent 155 Which ?rst attempts to identify the client using the
`HTTP header information. If this is unsuccessful, the client
`smart agent doWnloads 157 a client-snooper agent 159 to the
`client to get the information necessary about the client
`device to choose an appropriate Web page. A variety of
`snooping techniques are available to the client snooper.
`Many client operating systems keep information on their
`attached devices. In WindoWs 95, for example, there is a
`registry in Which the hardWare devices are listed notably
`processor, processor speed, monitor, including siZe as Well
`as other information less directly applicable to the present
`invention. Detecting the type of operating system alone may
`be enough to choose the appropriate Web page. Examination
`of the system BIOS can provide useful information. Search
`routines for speci?c signatures for speci?c supported client
`devices are be incorporated in the client snooper agent 159.
`If the snooper agent is not successful, the snooper agent 159
`can present a page 161 Which queries the user for informa
`
`WHATSAPP INC.'S EXHIBIT NO. 1010
`
`009
`
`

`
`6,167,441
`
`7
`tion Which could be useful in selecting an appropriate Web
`page. Alternatively, the snooper agent 159 could report its
`failure to the client-srnart agent 155 and the client-srnart
`could issue a Web page for the user query. This interface is
`discussed beloW in greater detail With reference to FIG. 6.
`The client-snooper agent 159 returns the necessary infor
`rnation about the client device to the client-srnart agent 155.
`Using this information, the client-srnart agent selects the
`appropriate HTML page or Web application format for the
`client to Which to redirect the client request.
`A How diagram for this process is shoWn in FIG. 5. The
`process begins in step 201, Where the client-srnart agent
`intercepts an HTTP request directed to a supported server
`application. In step 203, the client-srnart agent parses the
`HTTP for the broWser information which can be used to
`infer the client device characteristics. Step 205 determines
`whether the parsing Was successful.
`If the parsing is unsuccessful due to an unknoWn broWser
`or broWser version level, in step 207, the client snooper is
`doWnloaded to the client machine. Alternatively, rnany oper
`ating systems have APIs Which may be queried remotely
`using an API. Of course, a remote snoop might involve
`several iterations until the operating Was identi?ed. In step
`209, the client device is snooped for device, operating
`system and/or broWser inforrnation. Step 211 determines
`whether the snooping Was successful.
`If the snooping Was not successful, a dialog page can be
`sent to the user, preferably in a language Which can be
`presented by the broWser. The page can originate With the
`snooper agent already at the client or from the client-srnart
`agent back at the server. In step 215, user input to the page
`is received and sent back to the client-srnart agent. Based on
`the information from the parsing, snooping or receiving
`steps, the client-srnart agent determines the appropriate page
`to send the HTTP request, step 217. The selected Web page
`is dynamically reforrnatted, if necessary, according to the
`detected client type. Finally, in step 221, the selected Web
`page is sent to the client machine.
`The invention provides that some of the customization of
`the page interface is static With prebuilt Web pages for a
`supported client device or set of client devices. Other aspects
`of the customization may be dynamic rnodi?cation of the
`Web page content performed on the ?y. Requests from
`clients having vastly different display siZes are likely to be
`directed to different Web pages on different URLs. Requests
`from clients with similar screen siZes, but different display
`characteristics such as color palettes may be directed to the
`same URL, hoWever, the embedded URLs Which point to
`image data Within the overall page may be dynarnically
`selected to provide the image Which Will look the best for the
`detected client device. Yet others such as font or font siZe
`can be dynarnically adjusted in the HTML on the ?y.
`In addition to the device type consideration, the invention
`can be used to deal With broWser considerations as Well. The
`invention preferably supports any broWser, even back level
`broWsers Which may not support a particular language or
`version of the language Which may have become prevalent
`since the broWser Was Written. Rather than forcing the user
`to upgrade to a neW broWser, the invention Will alloW the
`client-srnart agent to select a Web page Which is Within the
`parsing and presentation capabilities of the detected
`broWser.
`Typically, the client-srnart agent Would redirect the HTTP
`requests to the HTTP server using the HTTP Server APIs
`used by the particular server. KnoWn HTTP servers pro
`duced by the Netscape and Microsoft Corporations have this
`
`10
`
`15
`
`25
`
`35
`
`45
`
`55
`
`65
`
`8
`type of interfaces. Alternatively, the client-srnart agent could
`intercept the HTTP request and change the request to a neW
`URL before routing it back to the URL. On the server, the
`softWare that does the routing has a ONE to MANY rela
`tionship betWeen the URL given to the user (client) and the
`actual server addresses. For example, “http://GM/
`neWproducts” can be translated to “//GM/
`neWproducts.FloorApp” to display the car information on
`the PalrnTop cornputers available to the sale force on car
`dealers. The same URL can be translated to “//GM/
`neWproducts.WebTV” for WebTV applications. Further, the
`URL can be translated to “//GM/neWproducts.PC” for a
`broWser running on a personal computer.
`A default Web page can be developed When a device can
`not be identi?ed, hoWever, given the three techniques
`described herein, it is doubtful that a default Web page Would
`see much use unless one of the Web pages for a class of client
`devices was simply designated the default.
`As mentioned above, if the client snooper Was not able to
`identify the client, a Web page sent from the snooper or the
`client srnart agent can be sent asking the user to identify the
`machine type. Alternatively, but possibly in addition to, the
`user can be afforded an opportunity to select the “page
`forrnatting” from a list. A sample page is shoWn in FIG. 6.
`Those skilled in the art Would under stand that alternative
`formats are possible With different sets of controls. A dialog
`of several alternative pages could be presented Where the
`client broWser and server application try out different Web
`pages to see Which is best for the client device.
`ApulldoWn list boX 251 in Which various supported client
`devices are listed can be presented to the user. The user can
`select the client computer Which he is using. Both speci?c
`computers and computer models can be listed as Well as
`names of manufacturers or generic descriptions such as “486
`personal computer” might be listed in another pulldoWn list
`boX 255. There could be an additional ?eld for the broWser
`resident on the client system. If not found, the user can enter
`the computer name in entry ?eld 253. Alternatively, the user
`can be presented a set of images 257, 259, 261, 263 and be
`asked to select the image that looks best.
`The combination of entry ?eld 253 and image selection
`could be used in a regis

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket