Search Images Maps Play YouTube News Gmail Drive More »
Sign in
Screen reader users: click this link for accessible mode. Accessible mode has the same essential features but works better with your reader.

Patents

  1. Advanced Patent Search
Publication numberWO2001069382 A1
Publication typeApplication
Application numberPCT/US2000/027390
Publication date20 Sep 2001
Filing date5 Oct 2000
Priority date10 Mar 2000
Also published asWO2001069382A9
Publication numberPCT/2000/27390, PCT/US/0/027390, PCT/US/0/27390, PCT/US/2000/027390, PCT/US/2000/27390, PCT/US0/027390, PCT/US0/27390, PCT/US0027390, PCT/US027390, PCT/US2000/027390, PCT/US2000/27390, PCT/US2000027390, PCT/US200027390, WO 0169382 A1, WO 0169382A1, WO 2001/069382 A1, WO 2001069382 A1, WO 2001069382A1, WO-A1-0169382, WO-A1-2001069382, WO0169382 A1, WO0169382A1, WO2001/069382A1, WO2001069382 A1, WO2001069382A1
InventorsAnthony C. Fascenda
ApplicantAether Systems, Inc.
Export CitationBiBTeX, EndNote, RefMan
External Links: Patentscope, Espacenet
System, method and apparatus for initial configuration of a client device
WO 2001069382 A1
Abstract
A system, method and apparatus for initially configuring a client device in a client-server system including a client device and a server both coupled to a communication network. The server includes a server template database for storing a plurality of templates defining client device configurations. The client device detects an absence of a predetermined home template at the client device, and in response, sends a client request to the server. The client request includes a unique client device identifier and a template identifier corresponding to the home template. The server receives the client request, and sends a server response to the client device. The server response includes the home template corresponding to the unique client device identifier and the template identifier. The client device stores the home template in the client device to thereby initially configure the client device, wherein the home template permits a user to access data services.
Claims  (OCR text may contain errors)
What Is Claimed Is:
1. In a system including a client device and a server both coupled to a communication network, the server including a server template database for stoπng a plurality of templates defining client device configurations, a method of initially configuπng the client device, compπsmg the steps of: a. detecting an absence of a home template at the client device; b. sending a client request from the client device; c. receiving said client request at the server; d. sending a server response to the client device; and e. stoπng said home template in the client device, to thereby initially configure the client device, wherein said home template permits a user to access data services.
2. The method of claim 1, wherein step b. compπses the step of sending the client request including a unique client device identifier and a template identifier corresponding to said home template, and step d. compπses the step of sending the server response including said home template coπespondmg to said unique client device identifier and said template identifier.
3. The method of claim 2, further compπsmg the steps of: pπor to step d., determining whether said client device is an authoπzed user of said home template based on said unique client identifier and entπes in said server template database; and if the client device is authoπzed, retπeving said home template from said server template database.
4. The method of claim 1, wherein the client device includes a client template database for stoπng templates defining a client device configuration, the method further compπsmg pπor to step a., the step of executing a default branch to said client template database to retπeve said home template.
5. The method of claim 4, further compπsing the step of initiating said executing step by poweπng-on the client device.
6. The method of claim 1, wherein the client device includes a client template database for stoπng templates defining a client device configuration, wherein step e. further compπses stoπng said home template in said client template database.
7. The method of claim 1, wherein said home template includes one or more definitions defining one or more user actions selectable by a user when presented on a home page associated with said home template, the method further compπsing the steps of: executing a branch to said home template; displaying said home page in response to executing said branch; and responding when the user selects one of said one or more actions from said home page in accordance with said one or more template definitions.
8. The method of claim 1 , wherein said home template includes one or more definitions defining one or more user actions selectable by a user when presented on a home page associated with said home template, said one or more user actions being associated with one or more data services, the method further compπsing the steps of: executing a branch to said home template; displaying said home page in response to executing said branch; and accessing one of said one or more data services when the user selects one of said one or more actions from said home page.
9. The method of claim 1, wherein step b further compπses the step of sending a command indicating an absence of said home template from said client device, and the method further compπses the step of detecting said command at said server.
10. The method of claim 9, wherein said client request includes a unique client device identifier and a template identifier corresponding to said home template, the method further compπsing the steps of: prior to step d., determining whether said client device is an authoπzed user of said home template based on said unique client identifier and entπes said server template database; and if the client device is authoπzed, retπeving said home template from said server template database.
11 The method of claim 1, wherein said home template includes a content portion defining one or more labels and an arrangement of said labels on a displayable home page associated with said home template, and an action portion defining one or more user actions selectable by a user when said home page is presented to the user, the method further compπsing the steps of executing a branch to said home template; displaying said home page in response to executing said branch; and responding when the user selects said one or more actions from said home page in accordance with said one or more template definitions.
12. A client apparatus for communicating with a server via a communication network, the server including a server template database for stoπng home templates defining client apparatus initial configurations, the client apparatus compπsing: a client template database for stoπng templates defining a configuration of said client apparatus; a controller adapted to detect an absence of a home template from said client template database, and to compose a client request when said home template is absent, a transmitter adapted to transmit said client request over the communication network, and a receiver adapted to receive a server response over the communication network, said server response including said home template, wherein said controller is adapted to store said home template in said client template database, to thereby initially configure the client apparatus
13 The apparatus of claim 12, wherein said client request includes a unique client device identifier and a template identifier corresponding to said home template
14 The apparatus of claim 12, wherein said controller is adapted to execute a branch to said client template database to retπeve said home template, to thereby detect said absence of said home template from said client template database
15 The apparatus of claim 12, wherein poweπng-on said client apparatus causes said controller to execute said branch to said client template database to retπeve said home template.
16 The apparatus of claim 12, further compπsing a display, wherein said home template includes one or more definitions defining one or more user actions selectable by a user when presented on a home page associated with said home template, and wherein said controller is adapted to- execute a branch to said home template, provide said home page to said display in response to executing said branch; and respond when the user selects said one or more actions from said home page in accordance with said one or more template definitions.
17. The apparatus of claim 12, further comprising a display, wherein said home template includes one or more definitions defining one or more user actions selectable by a user when presented on a home page associated with said home template, said one or more user actions being associated with one or more data services, and wherein said controller is adapted to: execute a branch to said home template, provide said home page to said display in response to executing said branch; and access one of said one or more data services when the user selects one of said one or more actions from said home page.
18. The apparatus of claim 12, wherein said client request includes a command indicating an absence of said home template from said client template database
19. The apparatus of claim 12, further compπsing a display device, wherein said home template includes a content portion defining one or more labels and an aπangement of said labels on a displayable home page associated with said home template, and an action portion defining one or more user actions selectable by a user when said home page is presented to the user on said display device, and wherein the controller is adapted to execute a branch to said home template, provide said home page to said display in response to executing said branch; and respond when the user selects said one or more actions from said home page m accordance with said one or more template definitions. 20 A server apparatus for initially configuπng a client device over a communications network, the client device including a client template database for stoπng templates defining a client device configuration, compπsing- a server template database for stoπng templates defining client device configurations; a receiver adapted to receive a client request including a template identifier corresponding to a home template absent from said client device; a server controller adapted to retπeve a home template from said server template database based on said template identifier, and to compose a server response including said home template; and a server transmitter adapted to send said server response to said client device over the communications network, wherein said home template defines an initial data services configuration of said client device.
21 The apparatus of claim 20, wherein said client request includes a unique client device identifier and said server controller retπeves said home template based on said unique client device identifier.
22 The apparatus of claim 21, wherein said server controller is adapted to determine whether the client device is an authoπzed user of said home template based on said unique client identifier and entπes in said server template database.
23 The apparatus of claim 20, wherein said client request includes a command indicating an absence of said home template from the client device, and wherein said server controller is adapted to detect said command and to retπeve said home template from said server template database when said command is detected
24 The apparatus of claim 20, wherein said home template compπses: a content portion defining one or more labels and an aπangement of said labels on a displayable home page associated with said home template, and an action portion defining one or more user actions selectable by a user when said home page is presented to the user on a client device display
25 A system for providing data services to a user over a communication network, compπsing- a client device including a client template database for stoπng templates defining a configuration of said client device, said client device including a client controller adapted to detect an absence of a predetermined home template from said client template database client device, and to compose a client request when said home template is absent, said client request including a unique client device identifier and a template identifier coπesponding to said home template, said client controller being adapted to transmit said client request over the communication network; and a server including a server template database for stoπng a plurality of templates defining client device configurations, said server including a server controller adapted to receive said client request and to compose a server response, said server response including said home template corresponding to said unique client device identifier and said template identifier, said server controller being adapted to transmit said server response to said client device over the communication network, wherein said client controller is adapted to receive said client server response and to store said home template in said client template database, to thereby establish an initial data services configuration of said client device
Description  (OCR text may contain errors)

System, Method and Apparatus for Initial Configuration of a

Client Device

Background of the Invention

Field of the Invention The present invention relates generally to a system including intercommunicating client and server applications, and more particularly, to such a system, a method, and an apparatus for initially configuring a client device.

Related Art

A typical client-server environment includes a client application, such as an Internet web-browser, and a server application respectively executing on independent computer based platforms and communicating with one another. The client application submits information requests to the server application in response to user input at the client end. In response, the server transmits information responses to the client application. The user interacts with the client- server environment using a Graphical User Interface (GUI) of the client application.

The client application typically includes many environment dependent parameters. However, the client application is initially provided to the user in a default configuration, wherein the parameters are set to default values. As a result, the user suffers the burden of initially configuring/customizing the many parameters before the user can effectively use the client application, for example, to access data services. Examples of such parameters or settings include a "home page", an account name and a password, temporary file locations, service dependent options and features, etc. Often, a large number of client or browser applications operate in a distributed service environment. A distributed service environment is one in which the numerous client applications interact with one or more server applications, each of the server applications hosting a wide vaπety of data services provided by a vaπety of "pπvate" and possibly public service providers. In such a distπbuted environment, it is burdensome to deploy, install, and initially configure each of the numerous client applications. It is also burdensome to manage the configurations of each client application at the user level, and at the server application level.

Wireless client devices including the above mentioned client applications can operate in the distπbuted service environment. One conventional approach for initially configuπng such "wireless" client applications inconveniently requires the user to transport the wireless device to a service center for initial set-up and configuration. Another inconvenient approach requires the user to enter large amounts of configuration data at the wireless client device, in accordance with a complicated user manual.

There is therefore a need to remove from a user the burden of initially configuπng/customizmg a client application. There is also a need in a distπbuted environment to relieve the burden of managing client application configurations at the user, server application, and client application levels.

There is a further need to initialize and configure a plurality of wireless client devices operating m a distπbuted environment, without burdening the users of such devices.

Summary of the Invention

The present invention is directed to a system, a method, and an apparatus for initially configuπng a client device, to thereby enable the client device to access one or more data services. In the present invention, the client device is initially configured to enable a user of the client device to access one or more data services in a distπbuted service environment, or to at least provide the user with a starting point for accessing such data services. The present invention advantageously removes the burden of initially configuπng/customizing the client device from the user. The present invention is used in a distπbuted environment to advantageously relieve the burden of managing client device configurations at the user level and a server level. In the present invention a plurality of wireless client devices operating in a distπbuted environment are initially configured, in a manner that is transparent to the user One embodiment of the present invention is a method of initially configuπng a client device in a client-server system including a client device and a server both coupled to a communication network The server includes a server template database for stoπng a plurality of templates defining client device configurations. The method includes the steps of detecting an absence of a predetermined home template at the client device, and in response, sending a client request from the client device. The client request includes a unique client device identifier and a template identifier corresponding to the home template. The method further includes receiving the client request at the server, and sending a server response to the client device The server response includes the home template coπesponding to the unique client device identifier and the template identifier. The client device stores the home template in the client device, to thereby initially configure the client device, wherein the home template permits a user to access data services.

Other embodiments of the present invention include a system, a client apparatus and a server apparatus for effecting the above descπbed methods

Additional features and advantages of the present invention, as well as the structure and operation of vaπous embodiments of the present invention, are descπbed in detail below with reference to the accompanying drawings. Brief Description of the Figures

The features, objects, and advantages of the present invention will become more apparent from the detailed descπption set fourth below when taken in conjunction with the drawings in which like reference characters identify corresponding elements throughout and wherein:

FIGS. 1A and IB illustrate exemplary communications systems in which the present invention is useful;

FIG. 2A illustrates an exemplary two-way communications client device for use with the present invention; FIG. 2B is an illustration of a paging device manufactured by Research In

Motion (RIM), Limited, of Waterloo, Ontario, Canada.

FIG. 3 is an illustration of a logical architecture corresponding to the communication system of FIGs. 1A and IB and the communications device of FIG. 2A. FIG. 4A is an illustration at a high level of an embodiment of a template used in the logical architecture of FIG. 3.

FIG.4B is a diagrammatic representation of an exemplary content portion of a template used in the logical architecture of FIG. 3.

FIG. 4C is an illustration of a completed template or display page corresponding to the template of FIG. 4B.

FIG.4D is an illustration of a list of exemplary definitions or descπptors defining the template of FIG. 4B and the display page of FIG. 4C.

FIG. 5 is an illustration of an exemplary hierarchy of display pages

FIG. 6A is an illustration of an exemplary user interface including linked pages defined by a hierarchy of templates, before a template update in accordance with the present invention.

FIG. 6B is an illustration of the exemplary user interface of FIG. 6B, after the template update. FIG. 7A is an illustration of an exemplary information table stored in a server transaction database used in the logical architecture of FIG. 3.

FIG. 7B is an illustration of an exemplary information table stored in a server template database used in the logical architecture of FIG. 3. FIG. 8 is an illustration of an exemplary information table stored in a client transaction database of the client device of FIG. 2A.

FIG. 9A is an illustration of an exemplary information request message transmitted by a client application used in the logical architecture of FIG. 3.

FIG. 9B is an illustration of an exemplary information response message transmitted by a server application used in the logical architecture of FIG. 3.

FIG. 9C is an illustration of another exemplary information response message including a template update, in accordance with the present invention.

FIG. 10 is a flow chart of an exemplary method of requesting information at a client in the logical architecture of FIG. 3, according to an embodiment of the present invention.

FIG. 10A is a flow chart of an exemplary method of receiving and responding to an information response at a client in the logical architecture of FIG. 3, according to an embodiment of the present invention.

FIG. 11 is a flow chart of an exemplary method of responding to an information request of FIG. 10 at a server in the logical architecture of FIG. 3, according to an embodiment of the present invention.

FIG. 11A is a flow chart of an exemplary method of responding to an information request of FIG. 10 including a Get_template command at a server in the logical architecture of FIG. 3, according to an embodiment of the present invention.

FIG. 12 is a flow chart of exemplary method steps expanding on the method of FIG. 11.

FIG. 13 is a illustration of exemplary display pages at a client device before and after receipt of an information response at the client device. FIG. 14 is a flow chart of an exemplary method of initially configuπng a client device in the logical architecture of FIG 3, according to an embodiment of the present invention.

FIG. 15 is an exemplary computer system, which may be used to perform the operations of the present invention.

Detailed Description of the Preferred Embodiments

I. Introduction

The present invention relates to a method and system for automatically initializing and configuπng a client device (e.g., a two-way paging device, a wireless phone, a personal data assistant, or a desk top computer). The present invention can be used in a two-way wireless communications system. Additionally, the present invention can be used in various other types of communications system. For example, the present invention can be used with the Internet. In an embodiment where the present invention is used with the Internet, a client device can be, for example, a wireless device that wirelessly accesses the

Internet (e.g., a PalmPilot® or a wireless phone) or a personal computer that is wired to the Internet.

Preferred embodiments of the present invention are discussed in detail below. While specific steps, configurations and arrangements are discussed, it should be understood that this is done for illustrative purposes only

//. Exemplary Communications Systems

An exemplary wireless communication system 100 in which the present invention is useful is illustrated in FIG. 1A. Communications system 100 includes a plurality of cell sites 102 each having a coverage area that is typically about 5 to 10 miles in diameter. A coverage area of one cell site often overlaps a portion of a coverage area of another cell site, which are illustrated for exemplary purposes by the hexagonal regions. Each cell site 102 includes an antenna 104 for transmitting and receiving messages to and from two-way wireless client devices 108 (e.g., a two-way pager, a wireless phone, a hand held computing device) that are located within a geographic coverage area of the cell site 102. Alternatively, separate antennas may be used for sending and receiving messages, as would be apparent to a person skilled in the relevant art Each cell 102 is coupled to communications network 110, which can be, for example, an X.25 packet switched network Communications network 110 may include, but is not limited to, land based links such as fiber optics or terrestπal microwave, and/or satellite based links, as would also be apparent to a person skilled m the relevant art

Each cell site 102 is in communications with a message system center (MSC) 120 that includes a subscπber database (also referred to as a user database) that maintains records of all subscnbers (also referred to as users) on the system, a unique identity sequence for the subscnber's client device, and an indication of the cell site from which the client device last sent a message (such as an acknowledgment message or a request message). Preferably, communications between each cell cite 102 and MSC 120 is accomplished through communications network 110. Alternatively, each cell site 102 can have a dedicated link to MSC 120.

Communications network 110 can be coupled to a public switched telephone network (PSTN) 112 so that a message can be sent to and from client device 108 via PSTN 112.

A message can also be sent from one client device 108 to another client device 108 using communications system 100.

In one embodiment, communications system 100 is the Bell South Wireless Data network (also known as the RAM Mobile Data network) or the ARDIS network, which are both well known two-way nationwide wireless packet data networks. A client device (e g , two-way wireless communications device) 108 typically identifies itself to MSC 120 by sending a registration or identification signal Such signals include a data field including at least one unique identifier, such as a Mobile Identification Number (MIN) and/or Electronic Seπal Number (ESN) A MLN, which can be reprogrammed, is analogous to a telephone number An ESN is hard-coded and fixed such that it difficult, if not impossible to change Some devices include both a MTN and an ESN The client device used in an embodiment of the present invention, discussed in more detail below, only includes one unique identifier, known as a Mobile Access Number (MAN), which is similar to an ESN in that it is hard-coded and fixed The identification signal sent by client device 108 can include one or more of the above discussed unique identifiers, or any other similar unique identifier Such identification information can be peπodically transmitted by client device 108 and/or included with other types of messages sent by client device 108 Such unique identifiers are also sent with each request sent by a client device 108

An optional function of MSC 120 is to determine whether the unique identifier of a client device is valid A received unique identifier, such as a unique identity sequence compnsing a stπng of digitally represented alphanumeπc characters, can be compared to a maintained database of unique identifiers (i e , MLNs, ESNs, MANs) to detect fraud

MSC 120 can keep track of the approximate whereabouts of each client device 108 by keeping track of which cell site 102 a message, sent by a client device 108, oπginated When MSC 120 is thus informed of the approximate whereabouts of each individual client device 108, it can later limit the number of cell sites 102 from which it transmits a message addressed to a particular client device 108 MSC 120 can even limit the transmission of a message to only one cell site 120 having a coverage area within which the particular client device 108 is believed to be located The coverage area of a limited number of cell cites 102 (possibly only a single cell site or a last know site and its adjacent sites) shall be referred to as a targeted coverage area Thus, the targeted area can be the area covered by a single cell site or a slightly larger area that is also covered by a few adjacent cell sites. This limited or "targetted" transmission is much more efficient than broadcast-type transmission where a message is transmitted from every cell site, regardless of a location of a client device 108 to which the message is addressed.

Servers 114 (typically controlled by a service provider) are supported by communications system 100. That is, communications system 100 provides for message delivery between a server 114 and one or more client devices 108. Servers 114 can communicate directly with client devices 108 or indirectly with client devices 108 via communications network 110. Alternatively, servers 114 can communicate with communications network 110 through PSTN 112. In one embodiment, a server 114 provides information to a client device 108 upon receiving a request from the client device 108. Additionally, servers 114 can initiate the sending of information (e.g., unsolicited information) to a client device 108. This can be done peπodically or upon a tπggeπng event. Additional details about the types of services and the information provided by services providers 114 are discussed below.

The present invention is also useful in data networks such as a local area network (LAN), a home area network (HAN), and a wide area network (WAN) For example, the present invention is useful in the largest present day WAN, known as the Internet, and in smaller WANs. The Internet is a world-wide set of interconnected computer networks that can be used to access a growing amount and vaπety of information electronically. One method of accessing information on the Internet is known as the World Wide Web (www, or the "web"). The web is a distπbuted, hypermedia system, and functions as a client-server based information presentation system. Information that is intended to be accessible over the web is generally stored in the form of "pages" on servers (e.g., general purpose computers). Users can access a web site using general-purpose computers, wireless hand held computing devices, Internet capable wireless phones (e.g., a Wireless Application Protocol (WAP) Internet enable telephone), an d the like, referred to as clients, by specifying the uniform resource locator (URL) of the site. FIG. IB is a network block diagram showing a plurality of clients 108 and servers 114 connected to the Internet 118.

When a client sends a request to a server the request specifies, among other things, a destination address (e.g., a URL) and a source address that can be used to identify a user. A part of the URL known as the Domain Name is passed to a domain server (DNS) to be translated to a network address. The network address specifies the Internet protocol (IP) address of the intended server. The client request is passed to the server having the network address. Servers 114 maintain or otherwise have access to local or remote databases that store and/or provide vaπous types of data. For example, referπng to FIG. 1A, remote databases 130 are maintained by data sources 132. FIG. 1A also shows a local database 116 that is maintained by server 114. Servers 114 can communicate with data sources 132 through dedicated links or through communications network 110, for example. The type and number of databases, and the form of communication of data between the servers 114 and the databases, is implementation specific.

The invention covers the ability of a server system to provide information to client devices via a wireless communications system, which typically has a plurality of cell sites that are coupled to a communications network The invention also covers the ability of a server system to provide information to client devices via a wired communications system, or via a communications system consisting of a combination of wired and wireless links. The functions performed by the server system can compπse software running on one or more general purpose computers or on telecommunications-specific hardware. Alternatively, the combination of the software and hardware to accomplish the functions of the present invention can be conceptualized as a union of server controllers that each perform a discrete task, such as: sending a request from a client device in response to user input at the client device; receiving the request at a server over the communications network; identifying a user based on the request; determining a response based on the request; sending the response to the client device of the user, or the like. One, two, or more of these discrete tasks can be performed by a single server controller. That is, the tasks performed by a first server controller and a second server controller can be performed by a single server controller and still be within the spiπt and scope of the present invention. Alternatively, the discrete tasks can be performed by any number of server controllers. A further descπption of exemplary software and hardware controllers is provided below.

///. Exemplary Client Devices

An exemplary two-way wireless communications client device 108 is illustrated in FIG. 2A. Client device 108 includes an antenna 202, a transmitter

204, a receiver 206, a microprocessor 208, a display 210 and a keypad 212. Transmitter 204 is controlled by microprocessor 208 and transmits messages using antenna 202. Messages received from a transmitter of the communications system 100 are received through antenna 202 or a separate antenna (not shown). The received messages are routed from antenna 202 to receiver 206 and processed by microprocessor 208, for example. Display 210 can be a liquid crystal display and is used for displaying, to a user (also referred to as subscπber) of client device 108, information received via communications system 100. Display 210 can also display lists and/or menus from which a subscπber can make selections and perform vaπous functions. Other methods of presenting the received information, such as aurally through a speaker or through another type of display, are not precluded. Keypad 212 can include as few as one button, but may also include an entire alphanumeπc keypad, touch pad, or can be integrated with a display, such as a touch-screen display. Client device 108 also includes a memory 214 that can store software and/or data. Microprocessor 208 can wπte to and read from memory 214.

In one embodiment, client device 108 is an Inter@ctιve™ Pager 950 manufactured by Research In Motion (R M), Limited, of Waterloo, Ontaπo, Canada. The RIM Inter@ctιve pager (RLM pager) is a commercially available device that provides for two-way wireless communications The RIM pager, shown m FIG. 2B, includes a 31-key keypad 212, roller wheel 214 that is similar to a mouse, and screen display 210 with 8 lines of text by approximately 28 characters per line. The RLM page also includes a built-in internal radio modem for two-way wireless communications over a cellular network such as the BellSouth network. In another embodiment, client device 108 is a Palm Pilot™ computing device, manufacture by 3Com Corporation, of Santa Clara, California. Client device 108 can also be a wireless communication device such as, but not limited to, a wireless telephone, a data transceiver, and a paging receiver Client device 108 can be fixed, portable, or mobile, such as a mobile telephone. Of course the use of other two-way communications devices is within the spiπt and scope of the present invention.

For some embodiments, client device 108 can be a personal computer that, for example, communicates with servers 114 via a network such as the Internet

118. Client device 108 can also be a personal computing device that wirelessly accesses the Internet. Those of ordinary skill in the art will envision other implementations of client device 108 and appreciate that they are encompassed by the present invention.

IV. Embodiments of the Invention

A.I. Client-Server Architecture

The system descπbed in connection with FIGs. 1A, IB, 2A and 2B provides a plurality of ever expanding information services to a user of client device 108. In an example application, a user requests stock pπces from server 114, using client device 108. In response, server 114 transmits the requested stock pπces to client device 108. Client devιcel08 then displays the stock pπces to the user on display 210. A logical architecture 300 of an embodiment of the present invention is depicted in FIG. 3. Logical architecture 300 corresponds to the system of FIGs. 1A and IB. Logical architecture 300 includes a client application 304 residing in client device 108, and a server application 306 residing in server 114. Client application 304 (also referred to as client 304) and server application 306 are, for example, computer programs respectively supported by computer controllers and memories of client device 108 and server 114.

Server 114 (also referred to as server controller 114) comprises the hardware and/or software required to accomplish specific functions of the present invention. Server 114 can be conceptualized as a union of servers that each perform a discrete task. One, two, or more of these discrete tasks can be performed by a single server 114. That is, the tasks performed by a first server 114 and a second server 114 can be performed by a single server 114 and still be within the spirit and scope of the present invention. Alternatively, the discrete tasks can be performed by any number of servers 114. That is, the task performed by a single server 114 can be performed by a plurality of servers.

Similarly, client device 108 comprises the hardware and/or software (for example, client 304) required to accomplish specific functions of the present invention. In client device 108, client 304 (also referred to as client controller 304) can be conceptualized as a union of clients that each perform a discrete task.

One, two, or more of these discrete tasks can be performed by a single client 304. That is, the tasks performed by a first client 304 and a second client 304 can be performed by a single client 304 and still be within the spirit and scope of the present invention. Alternatively, the discrete tasks can be performed by any number of clients 304. That is, the task performed by a single client 304 can be performed by a plurality of clients.

A.2. Client Overview C ent 304 includes a user interface 308 at client device 108 for allowing a user to interact with one or more information services supported by the system of the present invention. User interface 308 displays formatted information pages on display 210 and permits the user to navigate between such display pages. User interface 308 also provides the user with a mechanism to enter requests and/or commands using, for example, keypad 212 (see FIG. 2B).

Client 304 interfaces with a client template database 310 and a client transaction database 312 stored in a memory of client device 108. Client template database 310 includes a plurality of individual templates 314, typically associated with one or more information services provided by the system of the present invention. In the present invention, client device 108 (for example, client 304 and user interface 308) is configured, and can be updated or reconfigured, in accordance with individual templates 314. As will be further descπbed below, each template 314 is typically associated with a display page, and uniquely defines the type of information and a layout or format of information presented to the user on the display page. Each template 314 can also define a set of available actions a user can initiate when viewing an associated display page, thereby allowing, for example, the user to request information from the display page and to navigate between display pages. Client device 108 can transmit information request message 316 to server

114 when appropπate. Client device 108 also receives response message 318 (transmitted by server 114) and can store information in the response message in client transaction database 312, so as to preserve the information for later retπeval. Also, user interface 308 can display requested information to the user.

A.3. Server and Server Database Overview

Server 114 can communicate with aplurahty of clients, e.g., client device 108, associated with a plurality of client devices 108. Server 114 distπbutes requested information to client devices 108, and maintains configuration control over the client devices. To perform such tasks, server 114 interfaces with a plurality of information stores, including a server template database 330, a server transaction database 332, and an exemplary service information store 334.

Service information store 334 includes real-time data from data sources 132 (not shown in FIG. 3; see FIG. 1A). Service information store 334 can include data relating to finance and stocks, sports, weather, airline schedules, and the like. Service information store 334 can be a local database 116 or a remote database 130. When server 114 receives information request 316 from client device 108, server 114 retπeves the requested information from information store 334, and transmits the information to client device 108 using information response message 318. Since this information in response message 318 can include information relating to one or more data services, it is also referred to herein as "data service information".

Server transaction database 332 stores past transaction event data thereby enabling server 114 to track information server 114 has previously transmitted to each client device 108. Server transaction database 332 can include tables mapping individual client device unique identifiers (for example, MANs, MLNs, or ESNs) to authoπzed services and associated templates. Server 1 14 can use such mapping tables to vahdate/authoπze client requests. Server 114 maintains transaction event data for past and on-gomg transactions between server 114 and client devices 108 in server transaction database 332. Such data is used to track and control the vaπous transactions in the system of the present invention and to build transaction history tables for each of the client devices 108.

Server template database 330 includes the latest or most current versions of the available templates in the system of the present invention. Server template database 330 can also include tables mapping individual client device unique identifiers to the most current template versions authoπzed for client devices 108 associated with the unique identifiers. As new services, features and options are added to the system of the present invention, new templates are stored in server template database 330 and/or existing stored templates are updated, to reflect the additions. Therefore, at any given time, it is possible a client device 108 includes an old version of a template, that is, an out-of-date template that requires updating. When server 114 receives information request message 316 from client device 108, server 114 determines whether the template (at client device 108) associated with the request message is the most current template (for example, an updated template). If the template is an old version, server 114 retπeves the most current template from server template database 330, and then transmits an appropπate template update, along with the requested information, to client device 108 using response message 318. In this manner, server 114 distπbutes the most current template versions to client devices 108 on a per access and an as needed basis. Thus, server 114 efficiently distπbutes template updates to client devices 108 to render new service features and options available to the users, and maintain configuration control over the clients. Further details regarding reconfiguπng a client device with template updates are provided in related U.S. Patent Application No. 09/523,168, entitled "System, Method and Apparatus for

Automatically and Dynamically Updating Options, Features, and/or Services Available to a Client Device," incorporated herein m its entirety by reference.

B.L Template Overview

In the present invention, the templates stored in client device 108 define a configuration of the client device. The configuration of client device 108 can determine the data services a user can access using client device 108, including vanous data service options and/or features. Also, the configuration can determine the way which client device 108 interacts with the user to provide data services to the user. This can include, but is not limited to, the types of pages displayed to the user, the appearance of the display pages, the types and/or arrangements of information displayed on the pages, the navigable hierarchy of display pages presented to the user, the types and/or operations of actions the user can initiate when the user is presented with the display pages, the types of requests a user can enter via client device 108 and/or the content of client requests resulting from such entered user requests. The configuration of client device 108 can also determine how client device 108 responds to vaπous user requests. FIG. 4A is an illustration at a high level of an exemplary embodiment of template 314 Template 314 includes a template header 400 having a template identifier 400a, a template version identifier or number 400b, and an optional template title 400c. Template 314 also includes a content portion 402 and an action portion 404 Content portion 402 includes definitions or descπptors (such as textual, symbolic and/or graphical descπptors) that define a layout and appearance of an associated display page on display 210. In other words, content portion 402 specifies an arrangement of information fields on the associated display page.

On the other hand, action portion 404 includes definitions (such as textual, symbolic, and/or graphical descπptors) specifying a set of actions a user can initiate with respect to the associated display page. For instance, action portion 404 can include: menu action definitions 404a, such as menu pull-down actions and scroll-wheel shortcuts; keyboard action definitions 404b, such as keyboard shortcuts (e.g., press "W" for weather service requests); branching action definitions 404c, allowing the user to branch from the current template and display page to a next template and display page linked with the current template; and external references 404d, such as URLs. Such actions are available to the user at the display page associated with template 314.

Content portion 402 is now further descπbed. Content portion 402 typically includes text (for example, field labels) and vaπable descπptors (for example, stock quote information). Content portion 402 defines a format for the vaπable information and text within the display page Content portion 402 can also include references to tables and graphical entities stored in the client device memory. A diagrammatic representation of the content portion of an exemplary template 406 is depicted in FIG. 4B. Template 406 includes a title 410 (that is part of the header of the template) for displaying the text "PRECIOUS

METALS". The content portion of template 406 includes the following definitions: a field 412 for displaying current time; a plurality of information field identifiers or labels 414 arranged in a column; and a first set of information fields 416 for displaying vaπable information (such as stock pπces) and a second set of vaπable fields 418 for displaying further vaπable information corresponding to the information field identifiers.

Template 406 is incomplete because none of the information fields are populated with the specified vaπable information. When client device 108 receives requested information corresponding to template 406, client device 108 populates an instance of template 406 with the requested information, thereby creating a completed template. User interface 308 displays the completed template to the user as a display page. A display page/completed template 420 corresponding to template 406, is depicted in FIG. 4C. In display page 420, field 412, fields 416, and fields 418 are respecti vely populated with current time, hi/low stock pπces, and stock pπce deviations.

In the present invention, each template can incorporate a unique set of actions available to the user when the template is displayed as a display page, as mentioned above. In other words, actions can vary from template to template and page to page in the present invention. Template actions are further descπbed below.

FIG. 4D is an illustration of a list of exemplary definitions or descnptors that define template 406 (FIG. 4B), and thus display page 420 (FIG 4C), as the template can be stored in either client or server template databases 310 or 330 The illustrated list of definitions correspond to a data service for precious metal pπces. In header 400, "NT", "VERSION", and "TI" respectively specify the template name "tempi", version "1.1", and title "PRECIOUS METALS".

Content portion 402 (corresponding to labels 414, and fields 416 and 418 of FIG. 4B) includes a plurality of content definitions 436 for metal pπcing information A spaced pair of percent symbols (%) delimits each information field. For example, the definition "<SILVER%0: 11 %% 1 :6%" causes two vaπable fields of information to be displayed after the text "SILVER" on the display of client device 108. Action portion 404 includes exemplary action definitions 442 and 444 The actions defined by action definitions 442 and 444 are available to the user when the display page associated with the template (for example, display page 420 of FIG. 4C) is being displayed.

Action definition 442 defines a menu choice "refresh" in a list of displayed menu items When "refresh" is selected in one embodiment, client device 108 retπeves the most recently received information relating to template temp, from client transaction database 312, and refreshes the display with the retπeved data

In another embodiment, selecting "refresh" causes client device 108 to first update the display with information retπeved form client transaction database 312 as just descπbed, and then transmit an information request for new information to refresh the displayed information. In still another embodiment, the first step is omitted from the just descπbed two-step embodiment

Action definition 444 defines a shortcut key as "SP", the "space bar" key (also referred to as the "symbol key") on keypad 212, which when pressed, causes a branch to a predetermined home template or page called temphome. Client device 108 then displays the home page associated with temphome. The templates of the present invention provide a powerful and convenient mechanism for configuπng, reconfiguπng, and updating client device 108 (including, for example, client 304 and user interface 308). As the system of the present invention adds new services and/or expands existing service options and features, correspondingly new and/or updated templates are automatically distπbuted to and stored in client devices 108 The new and/or updated templates correspondmgly expand the service features and options available to the user so that the user can access the new and expanded services. In the present invention, the new and/or updated templates are transmitted from server 114 in such a way as to be transparent to the user. Advantageously, the user is no longer burdened with physically returning the user device to a service center for such an update or with enteπng configuration data at client device 108. Also, developers are freed from the burden of redeveloping (and then distπbutmg to many users) new versions of complex client application software and user interface software to accommodate every new feature or service upgrade. Instead, users can advantageously compose new and or updated templates in a convenient development environment (for example, on a personal computer) at the server end of the system. Advantageously, the templates are then automatically distπbuted to the users on a per user basis, as needed, as will be descπbed further below.

In the present invention, templates 314 stored m template data base 310, and the actions specified in each of the templates, define an interconnected hierarchy of user navigable display pages at client device 108. FIG. 5 is an illustration of an exemplary hierarchy of display pages 502. In the example hierarchy, user interface 308 displays a home or welcome page 504 to the user when client device 108 is first powered-on. Home page 504 is a service starting page. Using actions, represented by connectors 506, defined for the home page by the associated home page template, the user can branch to a quote request page 508, a portfolio page 510, an informative "about" page 512, and a set-up page 514. The user can navigate between the aforementioned pages and a quote display page 516, a chart page 518, a user alert page 520, user page 522 and an add symbol page 524.

Templates and the actions defined thereby advantageously provide a convenient mechanism for alteπng user interface 308 and associated applications in accordance with expanding services, without changing the underlying user interface or client computer programs. An exemplary update to user interface 308 is now descπbed with reference to FIGs. 6A and 6B. With reference to FIG. 6A, a user interface 602 is defined by a quote entry page 604, a quote display page 606, a portfolio page 608 and an FxAlert page 610 (for precious metal pπces) linked together by actions 612.

With reference to FIG. 6B, to add a new service or user capability, for example, the ability of obtaining the latest news for a particular stock, a new template, defining a new page 614 called "Equity News," can be composed for accessing such latest new stock information. New page/template 614 can be linked to and thus only accessible from quote display page 606, assuming new page 614 should be accessible only after a particular stock quote is displayed on quote display page 606. To effect such a link, an action 616 can be added to quote display page (template) 606. For example, the added action 616 can define a branch key N, which when pressed, causes a branch from quote display page 606 to Equity News page 614 in accordance with the above assumption.

C.l. Server Transaction Database

As descπbed above in connection with FIG. 3, server 114 accesses server transaction database 330 to manage transactions with numerous client devices 108. FIG. 7A is an illustration of an exemplary transaction table 700 stored in server transaction database 330 Exemplary table 700 includes a client identification column 702, atemplate identifier column 703, an optional template title column 704, a template version column 706, an index column 708, a date column 710, a time column 712, and a parameters column 714. Each row of client identification column 702 includes a unique identifier of a client device 108 (e.g., MAN, ESN, MIN). Each row of template identifier column 703 includes a unique identifier of a template (e.g., temp,, temp2, temp3). Each row of template version column 706 specifies the version of the template in the corresponding row of column 703. Accordingly, entπes in template version column 706 specify the version of a template (i.e., identified in column 703) that a specific client (i.e., identified in column 702) currently has stored in its client template database 310. Each row of index column 708 identifies the data type that is used to populate the corresponding template in column 703 The data included m parameters column 714 is the data that was sent to the corresponding client (in column 702) the last time server 114 provided that client with the data type of column 708 Each row of date column 710 and time column 712 specifies when server 114 last provided the client device of column 702 with the data included in parameters column 714

C.2. Server Template Database

As descπbed above in connection with FIG. 3, server 114 accesses server template database 330 to maintain configuration control over client devices 108.

FIG. 7B is an illustration of an exemplary table 750 stored in server template database 330. Table 750 includes a column 754 listing the identifiers of current templates stored m database 330, a column 756 listing template version numbers for the identified templates, and a column 758 listing the definitions of the identified templates. Each row 760 coπesponds to an identified template, for example, template temp,. In another embodiment, where each template includes a version identifier (see FIG. 4A, header 400 of template 314), version column 756 is deleted since a template version can be determined from the template header (e.g., header 400) included in the template definition.

C.3. Client Transaction Database

FIG. 8 is an illustration of an exemplary table 800 stored in client transaction database 312 of client device 108. Table 800 is essentially the same as server transaction table 700 of FIG 7 A and discussed above, except that table 800 does not include a client identifier column (e.g., column 702). This is because client transaction database 312, and thus table 800, are specific to only one client device 108. D.l. Information Request and Response Messages

FIG. 9A is an illustration of an exemplary information request message 900 (corresponding to information request message 316 of FIG. 3) transmitted by client device 108. The information request message (e.g., 900) is also referred to as a client request, since it is initiated by client device 108 The fields of message

900 are arranged in accordance with an exemplary message format, and it is to be understood that message 900 can be arranged in other formats. Message 900 includes a client device identifier (such as a MAN) 902, transaction information 904 used by client device 108 and server 114 to track the cuπent transaction, a template identifier or name 906, a template version identifier 908 identifying the version of the named template stored in template database 310, and a specific information request 910.

In one embodiment, transaction information 904 includes a transaction number 912 and a client state 914. Client 108 tracks each request using transaction number 912, which only client 108 can increment. Client state number

914 specifies the last successfully received update for the template identified by template identifier 906. In one embodiment, client 108 can store transaction number 912 and client state number 914 in, and retπeve transaction number 912 and client state number 914 from, additional columns (not shown) of server transaction database table 700. Use of transaction number 912 and client state number 914 are discussed below.

Client device 108 increments transaction number 912 every time it sends a client request to server 114. Only client device 108 can increment transaction number 912. However, client device 108 never increments client state number 914. Rather, server 114 increments client state number 914 when it sends a server response to client device 108.

If client device 108 issues multiple client requests (e.g., multiple requests for stock quotes AAPL, MSFT, GE, LNTC, etc.), each request (e.g., 900) includes a transaction number 914. Server 114 responds to each request individually and echoes back the appropπate transaction number 914 in each server response (e.g., 920). Each server response received by client device 108 is stored in client transaction database 310 Additionally, in one embodiment, a display page associated with the server response to the last (i.e., in time) client request is displayed to the user.

Client state 914 is used by server 114 to determine the last successfully received (by client device 108) server response to a particular client request. This is important because client device 108 may fail to receive a server response sent by server 114 Thus, server 114 should save the last sent server response in, for example, a suspense file. Only when sever 114 receives a new client request (i.e., for the same information) with the same state number does it wπte the data of the last server response (which was stored in the suspense file) to server transaction database 332. For example, server 114 may receive a "state 6" client request and return a new "state 7" server response to client device 108. If client device 108 never receives the server response with "state 7", then the next time client device

108 makes the same client request it will again be a "state 6" client request In this manner, server 114 will know that client device 108 never received the "state 7" server response. This enables server 114 to use old "state 6" data (rather than the data last sent to client device 108, that is associated with "state 7") when performing a compaπson of old data to new data to thereby produce a server response.

In one embodiment, either client device 108 or server 114 can reset client state 914 to zero when a server response includes a full update (as opposed to a server response that only includes changes). FIG. 9B is an illustration of an exemplary information response message

920 (coπesponding to information response message 318) transmitted by server 114. The information response message (e.g., 920) is also refeπed to as a server response, since it is initiated by server 114. Message 920 (also referred to as server response 920) includes requested information 922, provided in response to specific information request 910 of information request message 900. E.l. Client Requests Information and Issues a Getjemplate Command

Exemplary methods of requesting and responding to information requests are now described. FIG. 10 represents a series of method steps 1000 performed by client device 108 in response to a request for information from a user. The method begins at a step 1002 when the user of client device 108 issues a request for information from a displayed page, via user interface 308. This request can be thought of as a "display information" request, and is associated with a stored template 314. Atanext step 1004, client device 108 queries client template database 310 to determine whether an appropriate template 314 associated with the request is locally available. If client device 108 determines that the appropriate template is not locally available (i.e., if the answer to step 1004 is NO), then, at a step 1005, client device 108 sends a get_template command to server 114. This can occur, for example, if client device 108 was initially configured with a single template, such as a home template (e.g., temphome) associated with a home page, and no other templates have since been supplied to the client device. In such a situation, the home page can allow branch actions to other named templates not resident in client template database 310. Thus, at step 1004, client device 108 detects an absence of one of these other named templates from template database 310 when the user initiates a branch action to the missing template. In turn, client device

108 sends the get_template command. Further method steps related to the get_template command are discussed below in connection with FIGs. 10A and 11.

If the appropriate template is locally available, then at a step 1006, the appropriate template is retrieved from client template database 310. At a next step 1008, there is a determination whether data associated with the appropriate template is available from client transaction database 312. If the answer to step 1008 is YES, then flow continues to a step 1010, where the template is populated with data from client transaction database 312. The data retrieved from client transaction database 312 is the data last received from server 114 to populate the retπeved template (e.g., data from an earlier transaction). If the answer to step 1008 is NO, then flow jumps directly to a step 1016, which is discussed below In one embodiment, after step 1010, in a step 1012, the populated template is displayed (i.e., an associated page) on display 210 of client device 108.

Preferably a status (e.g., date and time) of the displayed information is also displayed. Accordingly, the appropπate template preferably includes a status field that can be populated with status data (e.g., date and time) The information displayed to the user can be stale, for example, the data can be days, hours, or seconds old, depending on when client 108 last received the information to populate the appropπate template.

If the user directs client device 108 to do something other than refresh the information (i.e , if the answer to step 1014 is NO), then client device 108 functions accordingly. For example, the user may initiate a branch action that causes client device 108 to display a different page.

At a decision step 1014, if the user requests that the information (i.e., that populates the template) be refreshed with "new" information (i.e., if the answer to step 1014 is YES), client device 108 composes and transmits an appropπate information request message to server 114, at a step 1016. In one embodiment, a user can request refreshed information by pressing a predefined action key, such as the "enter" key or "space bar" key. An example request message 900 is descπbed above in connection with FIG. 9A

In an alternative embodiment, flow jumps directly from step 1008 to step 1016, such that client device 108 sends a request message to server 114 after client device 108 retπeves data from client transaction database 312. In another embodiment, flow jumps directly from step 1006 to step 1016, such that client device 108 sends a request message to server 114 after client 204 retπeves the appropπate template from client template database 310. E.2. Server Responds to an Information Request and Provides a Template Update

FIG. 11 represents a seπes of method steps 1100 performed by server 114 in response to a request for information from client device 108 The process begins at a step 1102 when server 114 receives a request message (e.g., request

900) sent from client device 108. At a step 1104, server 114 identifies client device 108. This is accomplished using a unique identifier (e.g. 902) included in the request In this example, server 114 recognizes that the client device 108 that sent the request message has a template for displaying the requested information, because the request (e.g.. 900) includes a template identifier (e.g., 906). At this point, server 114 can also determine whether the specific information request is authoπzed for the requesting MAN.

At a next step 1106, server 114 retπeves the latest (i.e., most cuπent or up-to-date) version of the identified template (e.g., the template identified by template identifier 906) from server template database 330. At a step 1108, server

114 retneves/deπves the requested information required to populate the data fields of the template that was retπeved at step 1106. For example, at step 1108, server 114 retneves the requested information from information store 334 in accordance with the most current template definition. In a step 1110, server 114 determines whether client 108 has the most current template. To make this determination, server 114 compares template version identifier 906 of the template named in information request message 900 against the version identifier for the same named template just retπeved from server template database 330 (e.g., in column 756 of table 750 of FIG. 7B) at step 1106.

If server 114 determines that the identified client device 108 does not have the latest version of the appropπate template (I e , the answer to step 1110 is NO), then client device 108 has an "old" template that requires updating with a "new" template, namely, the template just retπeved from server template database 330. Accordingly, at a step 1112, server 114 composes an information response message (e.g., message 930) including: a) information retπeved from information store 334 at step 1108; and b) template update information from the "new" template. In one embodiment, server 114 includes the entire "new" template in the information response message. In another embodiment, server 114 compares the "old" template to the "new" template to determine changes between the two templates. Server 114 then includes only these changes in the response message, to thereby shorten the response message and reduce required transmission bandwidth when the response message is transmitted. In a further embodiment, particularly if the "new" template includes a large amount of information, server 114 partitions the "new" template into a series of consecutive but separate messages.

On the other hand, if server 114 determines at step 1110 that client device 108 does not require a template update (i.e., the answer to step 1110 is YES), then server 114 composes an information response message using only the information retπeved from information store 334 (e.g., message 920), since a template update is unnecessary. At a next step 1116, server 114 transmits the composed information response message to client 108. For example, server 114 transmits response message 920 or 930 composed respectively at steps 1114 or

1112.

In one embodiment, the message that server 114 composes at step 1114 or 1112 (and sends at step 1116) includes all the data necessary to populate a template. In another embodiment, the message that server 114 composes at step

1114 (and sends at step 1116) includes the information that has changed since client device 108 last successfully received a server response (i.e., to populate the particular template) from server 114, but does not include the information that has not changed since server 114 last sent a successfully received server response message. Accordingly, an advantage of this embodiment is that the size of the response message (or messages) is further reduced.

An advantage of the present invention is that if the client device 108 (to which the response message is being sent) has the most current template, then the composed and transmitted response message (e.g., message 920 composed at step

1114) only includes the information required to populate and thus refresh a template. This significantly reduces the size of the response message (or messages) that is transmitted from server 114 to client device 108. Minimizing the size of response messages reduces the cost and/or response time (also referred to as latency) for providing information services. For example, where a communications system provider charges on a volume basis, the less data transmitted means less cost to the user. Additionally, since latency is typically proportional to the amount of data being transmitted, the less data transmitted means lower latency. A further advantage is the reduction in a system transmission bandwidth, such that more users can be supported by the services of the system.

Further details of step 1114, according to an embodiment of the present invention, are now discussed with reference to FIG. 12. In a step 1202, server 114 queries server transaction database 332 to determine the information, for the particular template, that client device 108 has stored in client transaction database

312. For example, server 114 searches table 700, of FIG. 7A, based on client identifier 902 and template identifier 906 to determine what information was last sent to client device 108 for the identified template.

In a step 1204, server 114 then compares the information in each data field (i.e., the information retrieved in step 1108 of FIG. 11) against the record of what was last successfully received by client device 108 (i.e., determined in step 1202), to thereby determine the information that has changed (also refeπed to as the changed fields).

Steps 1202 and 1204 can be illustrated with reference to FIG. 13. An "old" page 1302 represents the information (populating a precious metals template) that client device 108 has stored m client transaction database 312 (i.e., at step 1202). Server 114 determines that client device 108 has such an old page of information using server transaction database 332. A "new" page 1304 represents up-to-date or current information (populating the same precious metals template) retπeved by server 114 at step 1108. A change definition 1306 represents a change in information between old page 1302 and new page 1304. Server 114 determines change definition 1306 by compaπng the information in old page 1302 to the information in new page 1304. Server 114 can compress change definition 1306 using a data compression technique to produce a compressed change definition 1308, thereby further reducing the size of the response message.

In one embodiment, at step 1202, server 114 queπes server transaction database 332, based also on client state number 912 (i.e, in addition to client identifier 902 and template identifier 906) to ensure that server 114 actually compares the up-to-date information (i.e., the information retπeved in step 1108) against what client device 108 actually has stored in its client transaction database

312. If this query is not based also on client state number 912, there is a possibility that server 114 will perform the compaπson using information that was last sent to client device 108, but never received by client device 108.

E.3. Client Receives an Information Response and a Template

Update

FIG. 10A represents a seπes of method steps 1050 performed by client device 108 when the client receives a response message from server 114. The process begins at a step 1052 when client device 108 receives a response message

(e.g., message 920 or 930) from server 114 (see FIG. 11, step 1116).

At a decision step 1054, client device 108 determines whether the response message includes a template update. If the response message includes a template update for an identified template, at a step 1056, client device 108 updates the ldentified template in client template database 310 using template update information from the response message. Then flow proceeds to a step 1058.

On the other hand, if the response message does not include a template update, then flow proceeds directly from decision step 1054 to step 1058. At step 1058, client device 108 updates client transaction database 312 with information from the response message For example, client device 108 replaces a row of client transaction table 800 containing "old" information with "new" information received from the response message.

At a next step 1060, client device 108 refreshes the current display page, if appropπate, by retπeving the "new" information from client transaction database

312. If a template update was received, and it is appropπate to update the cuπent display page, then the current display page is updated to reflect a designated display arrangement, information fields, actions and refreshed data associated with the "new" or updated template.

E.4. Server Receives an Information Request Including a

Getjemplate Command From the Client

FIG. 11 A represents an exemplary seπes of method steps 1150 performed by server 114 when the server receives a get_template command from client device 108 (see FIG. 10, step 1005). The process begins at a step 1152 when server 114 receives an information request message from client device 108

At a decision step 1154, server 114 determines whether the request message includes the get_template command. The get_template command includes a template identifier identifying a template required by the requesting client device 108. If the request message does not include a get_template command, flow control branches to step 1158, descπbed below, and the method continues from step 1158.

On the other hand, if the request message includes a get_template command, then at a step 1156, server 114 validates the requested template. To vahdate the requested template, server 114 queπes server template database 330 using the requested template identifier in the get_template command to determine whether the requesting client device 108 is an authorized user of the requested template and its associated services. If the requesting client device 108 is not an authoπzed user of the requested template, server 114 transmits an error message to the requesting client, and the process terminates Otherwise, server 114 retπeves the requested template from server template database 330

At next step 1158, server 114 collects data in accordance with the retπeved template, as descπbed above in connection with step 1108 of FIG. 11. At a next step 1160, server 114 composes an information response message including a template update, as descπbed above in connection with step 1112 of FIG. 11. In this case, the template update includes the retπeved template in its entirety. At a next step 1162, server 114 transmits the information response/template update, as descπbed above in connection with step 1116 of FIG. 11. When client device 108 receives the information response message, client device 108 executes the method steps descπbed above in connection with FIG. 10A.

In another embodiment for updating templates, client device 108 sends a get_template command to server 114, but no template definitions, such as vaπable (field) definitions, etc, are associated with the get_template command This get_template command is not considered a request for any information other than an absent template. Server 114 determines whether this get_template command or a client request for information has been received. If a client request for information is received, then server 114 executes method steps 1104 - 1116, as descπbed above connection with FIG. 11. On the other hand, if a get_template command is received, server 114 returns only the requested template, if authoπzed, to client device 108 without collecting data service information. In other words, m this embodiment, both of the above descπbed steps 1158 and 1160 are omitted. The above descπbed embodiments "automatically" update templates in client device 108 because the updates occur without requiπng any predetermined, update-specific actions from the user. The user need only submit information requests in the normal course of client device operation, such as from a system services display page, and in response, the system of the present invention automatically effects the necessary template update. As descπbed above, such a template update correspondingly updates options, features, and/or services available to the client device and the user thereof. The update of the options, features, and or services available to the client device corresponds to a reconfiguration of the client device.

E.5. Initially Configuring a Client Device

Exemplary method 1000 descnbed above in connection with FIG. 10 assumes client device 108 has been initially configured to include at least one template when the method begins at step 1002. This means it is likely that client device 108 includes a hierarchy of templates and associated pages (such as hierarchy 502 descπbed in connection with FIG. 5), or at least a home page providing service functionality to the user. In the present invention, client device 108 is automatically initialized and self-configured, that is, without necessitating user interaction, as descπbed below.

FIG. 14 is a flow chart of an exemplary method 1400 of initially configuπng client device 108. At the start of method 1400, it is assumed that client device 108 is unconfigured, that is, there is no starting point "home" or "index" template (e.g., temphome), stored in client template database 310. However, a unique client device identifier, such as an ESN, MLN, or MAN, is stored in client device 108. Such a circumstance can aπse when client device is first sold to the user.

At a first step 1402, the unique client device identifier (ESN, MTN, or MAN) corresponding to client device 108 is entered into server template database 330. Also, a default home or index template associated with the unique client device identifier is entered into server template database 330 These actions establish client device 108 as an authoπzed user ofthe home template Such entry of the home template and unique identifier can be performed at any time, but preferably before programming the client application computer program into the memory of client device 108.

The home template stored in server template database 330 identifies the data services available to the user of client device 108. For example, if a company wishes to use the system of the present invention as an application platform for a medical service, the users (associated with client devices 108) of the medical service have respective medical service home templates entered into server template database 330. An exemplary home template includes a content portion defining one or more labels and an arrangement of the labels on a displayable home page associated with the home template. The exemplary home template also includes an action portion defining one or more user actions (such as branch actions to other data services pages) selectable by the user when the home page is presented to the user on the display of client device 108. These home templates are returned or transmitted to the respective clients as descπbed below.

When client device 108 is initially deployed with a user, client device 108 is unaware of the service or services for which it is intended because it has not been initially configured. Accordingly, at a step 1410, on initial startup of client device 108, for example, when the user first powers-on client device 108, client device 108 attempts a default power-on branch (or jump) to a home or index template stored in client template database 310. The home template is designated to be stored in a predetermined portion of client template database 310, and client device 108 branches to this portion of the template database each time the user powers-on client device 108. However, in this case, the home template does not exist because client device 108 has not yet been initially configured.

At a step 1415, client device 108 detects the absence of the home template. In response, at a next step 1420, client device 108 composes an lnfoπriation request message (also referred to as a client request) The client request message includes the unique client device identifier, a template identifier corresponding to the home template, and a get_template command. As descπbed above in connection with FIGs. 10 and 11 A, the get_template command exists for the purpose of fetching (from server 114) a template required by but absent from client device 108, such as the home template in connection with the present invention

At a next step 1423, client device 108 transmits the client request including the get_template command to server 114. The client request can be formatted in accordance with information request message 900, wherein the get_template command can be embedded in information request 910.

When server 114 receives the client request transmitted at a step 1425, server 114 executes all of the method steps 1152 to 1162 descπbed previously in connection with FIG. 11A To avoid unnecessary repetition, the steps are not reproduced in their entirety in FIG. 14. Instead, single representative step 1425 in FIG. 14 collectively represents all of method steps 1152 to 1162 in FIG. 11 A. Bπefly, these method steps, server 114 retπeves and validates the home template requested by client device 108. Server 114 then transmits the home template to client device 108. For example, if the user of client device 108 subscπbes to a medical application, such as "Rx-Prescπption," server 114 returns an index template associated with "Rx-Prescπption" services.

At a next step 1435, client device 108 receives the home template At a next step 1440, client device 108 stores the home template in the predetermined portion of client template database 310 designated for the home template. At a next step 1445, client device 108 branches or jumps to the home template. The order of steps 1440 and 1445 can be modified without departing from the spiπt and scope of the present invention.

In response to the branch at step 1445, a home page corresponding to the home template is displayed to the user on the client device display. The user can then select user actions at the home page to access data services. Client device 108 is now initially configured. From this point on, each time the user powers-on client device 108, client device 108 branches first to the home page, which serves as an access point for data services. In other words, the method of FIG 14 establishes an initial data services configuration of client device 108.

F.l. Hardware and Software Implementations

Server 114 can perform specific features of the present invention using server controllers, which in effect compπse a computer system. Although communication-specific hardware can be used to implement the present invention, the following descπption of a general purpose computer system is provided for completeness. The present invention is preferably implemented in software.

Alternatively, the invention may be implemented using hardware or a combination of hardware and software. Consequently, the invention may be implemented in a computer system or other processing system. An example of such a computer system 1500 is shown m FIG. 15. In the present invention, for example, client and server applications 304 and 306 each executes on distinct computer systems 1500.

The computer system 1500 includes one or more processors, such as processor 1504. The processor 1504 is connected to a communication infrastructure 1506 (for example, a bus or network). Vaπous software implementations are descπbed in terms of this exemplary computer system. After reading this descπption, it will become apparent to a person skilled in the relevant art how to implement the invention using other computer systems and/or computer architectures.

Computer system 1500 also includes a main memory 1508, preferably random access memory (RAM), and may also include a secondary memory 1510. The secondary memory 1510 may include, for example, a hard disk dπve 1512 and/or a removable storage dπve 1514, representing a floppy disk dπve, a magnetic tape dπve, an optical disk dπve, etc. The removable storage dn ve 1514 reads from and/or wπtes to a removable storage unit 1518 in a well known manner. Removable storage unit 1518, represents a floppy disk, magnetic tape, optical disk, etc. which is read by and wπtten to by removable storage dπve 1514. As will be appreciated, the removable storage unit 1518 includes a computer usable storage medium having stored therein computer software and/or data

In alternative implementations, secondary memory 1510 may include other similar means for allowing computer programs or other instructions to be loaded into computer system 1500. Such means may include, for example, a removable storage unit 1522 and an interface 1520. Examples of such means may include a program cartπdge and cartπdge interface (such as that found in video game devices), a removable memory chip (such as an EPROM, or PROM) and associated socket, and other removable storage units 1522 and interfaces 1520 which allow software and data to be transferred from the removable storage unit 1522 to computer system 1500.

Computer system 1500 may also include a communications interface 1524. Communications interface 1524 allows software and data to be transferred between computer system 1500 and external devices Examples of communications interface 1524 may include a modem, a network interface (such as an Ethernet card), a communications port, a PCMCIA slot and card, etc Software and data transferred via communications interface 1524 are in the form of signals 1528 which maybe electronic, electromagnetic, optical or other signals capable of being received by communications interface 1524. These signals 1528 are provided to communications interface 1524 via a communications path 1526. Communications path 1526 carπes signals 1528 and may be implemented using wire or cable, fiber optics, a phone line, a cellular phone link, an RF link and other communications channels. In this document, the terms "computer program medium" and "computer usable medium" are used to generally refer to media such as removable storage dπve 1514, a hard disk installed in hard disk dπve 1512, and signals 1528 These computer program products are means for providing software to computer system 1500. Computer programs (also called computer control logic) are stored in main memory 1508 and/or secondary memory 1510. Computer programs may also be received via communications interface 1524. Such computer programs, when executed, enable the computer system 1500 to implement the present invention as discussed herein. In particular, the computer programs, when executed, enable the processor 1504 to implement the process of the present invention Accordingly, such computer programs represent controllers of the computer system 1500. By way of example, in a preferred embodiment of the invention, the processes performed by server 114 and server application 306, and by client device 108 and client application 304, can be performed by computer control logic

(e.g., called "controllers") Also, client and server template databases 310 and 330, and client and server transaction databases 312 and 332 are stored in respective memoπes 1508 and/or respective memoπes 1510. Where the invention is implemented using software, the software may be stored in a computer program product and loaded into computer system 1500 using removable storage dπve

1514, hard dπve 1512 or communications interface 1524.

In another embodiment, features of the invention are implemented pnmaπly in hardware using, for example, hardware components such as application specific integrated circuits (ASICs). Implementation ofthe hardware state machine so as to perform the functions descπbed herein will be apparent to persons skilled in the relevant art(s).

V. Conclusion

While vaπous embodiments ofthe present invention have been descπbed above, it should be understood that they have been presented by way of example, and not limitation. It will be apparent to persons skilled in the relevant art that vaπous changes in form and detail can be made therein without departing from the spiπt and scope of the invention. The present invention has been descπbed above with the aid of functional building blocks illustrating the performance of specified functions and relationships thereof The boundaπes of these functional building blocks have been arbitraπly defined herein for the convenience of the descπption. Alternate boundaπes can be defined so long as the specified functions and relationships thereof are appropπately performed Any such alternate boundaπes are thus within the scope and spiπt of the claimed invention One skilled in the art will recognize that these functional building blocks can be implemented by discrete components, application specific integrated circuits, processors executing appropπate software and the like or any combination thereof Thus, the breadth and scope of the present invention should not be limited by any of the above- descπbed exemplary embodiments, but should be defined only in accordance with the following claims and their equivalents.

All cited patent documents and publications in the above descπption are incorporated herein by reference.

Patent Citations
Cited PatentFiling datePublication dateApplicantTitle
EP1041794A2 *10 Dec 19994 Oct 2000Fujitsu LimitedNetwork-device control apparatus and communication system
US5596723 *23 Jun 199421 Jan 1997Dell Usa, LpMethod and apparatus for automatically detecting the available network services in a network system
US5619716 *6 Jun 19958 Apr 1997Hitachi, Ltd.Information processing system having a configuration management system for managing the software of the information processing system
US5889942 *18 Dec 199630 Mar 1999Orenshteyn; Alexander S.Secured system for accessing application services from a remote station
US6029196 *18 Jun 199722 Feb 2000Netscape Communications CorporationAutomatic client configuration system
Referenced by
Citing PatentFiling datePublication dateApplicantTitle
WO2005013119A2 *22 Jul 200410 Feb 2005International Business Machines CorporationMethod, system and program product for preserving mobile device user settings
WO2005013119A3 *22 Jul 200413 Apr 2006IbmMethod, system and program product for preserving mobile device user settings
WO2009092666A1 *16 Jan 200930 Jul 2009Amadeus S.A.S.Method and system for deploying non-backward compatible server versions in a client/server computing environment
CN101925878B *16 Jan 200914 Jan 2015阿玛得斯两合公司Method and system for deploying non-backward compatible server versions in client/server computing environment
EP2083354A1 *22 Jan 200829 Jul 2009Amadeus S.A.S.Method and system for deploying non-backward compatible server versions in a client/server computing environment
US782283131 Jul 200326 Oct 2010International Business Machines CorporationMethod, system and program product for preserving and restoring mobile device user settings
US909837116 Jan 20094 Aug 2015Amadeus S.A.S.Method and system for deploying non-backward compatible server versions in a client/server computing environment
Classifications
International ClassificationG06F9/46, G06F9/445
Cooperative ClassificationG06F9/54, G06F9/44505
European ClassificationG06F9/54, G06F9/445C
Legal Events
DateCodeEventDescription
20 Sep 2001ALDesignated countries for regional patents
Kind code of ref document: A1
Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG
20 Sep 2001AKDesignated states
Kind code of ref document: A1
Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW
14 Nov 2001121Ep: the epo has been informed by wipo that ep was designated in this application
22 Aug 2002REGReference to national code
Ref country code: DE
Ref legal event code: 8642
5 Dec 2002AKDesignated states
Kind code of ref document: C2
Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW
5 Dec 2002ALDesignated countries for regional patents
Kind code of ref document: C2
Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG
15 Jan 2003122Ep: pct application non-entry in european phase
8 Jul 2004NENPNon-entry into the national phase in:
Ref country code: JP