WO2001069444A2 - Systeme, procede et dispositif permettant de fournir a des utilisateurs particuliers des services a valeur ajoutee - Google Patents

Systeme, procede et dispositif permettant de fournir a des utilisateurs particuliers des services a valeur ajoutee Download PDF

Info

Publication number
WO2001069444A2
WO2001069444A2 PCT/US2000/041060 US0041060W WO0169444A2 WO 2001069444 A2 WO2001069444 A2 WO 2001069444A2 US 0041060 W US0041060 W US 0041060W WO 0169444 A2 WO0169444 A2 WO 0169444A2
Authority
WO
WIPO (PCT)
Prior art keywords
template
server
client
client device
special service
Prior art date
Application number
PCT/US2000/041060
Other languages
English (en)
Other versions
WO2001069444A3 (fr
Inventor
Anthony C. Fascenda
Original Assignee
Aether Systems, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Aether Systems, Inc. filed Critical Aether Systems, Inc.
Priority to AU2001216303A priority Critical patent/AU2001216303A1/en
Publication of WO2001069444A2 publication Critical patent/WO2001069444A2/fr
Publication of WO2001069444A3 publication Critical patent/WO2001069444A3/fr

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0621Item configuration or customization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0641Shopping interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context

Definitions

  • the present invention relates to a system including inter-communicating client and server applications, and more particularly, to such a system, a method, and an apparatus for providing special or value added services to specific users.
  • 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.
  • the server transmits information responses to the client application.
  • the user interacts with the client- server environment using a Graphical User Interface (GUT) of the client application.
  • GUT Graphical User Interface
  • a large number of client and browser applications can operate in a distributed service environment.
  • a distributed service environment i ⁇ one in which the numerous client applications interact with one or more server applications, each of the server applications hosting a wide variety of data services provided by a variety of "private" and possibly public service providers.
  • Wireless client devices including the above mentioned client applications can operate in such a distributed service environment.
  • the user interacts with available services via the client application user interface. It may be desirable to provide special or value added services to a specific user or a specific group of users. Such special services can be additions to existing services such as new service options and features. It is important that such special services be made available to those users that are, for example,
  • both the server and client applications must be reconfigured in accordance with the service changes or upgrades.
  • One burdensome approach includes tediously redeveloping both server and client applications (for example, computer programs).
  • Redeveloping a client application can be particularly difficult when the client application executes on a custom device, such as a wireless pager, instead of a well-known development platform, such as a personal computer.
  • developing the client application for a pager requires knowledge of custom circuitry in the pager.
  • reconfiguring numerous geographically distributed client devices with a redeveloped client application typically entails a large expense and presents many logistical difficulties.
  • One disadvantageous approach to reconfiguring service capable pagers requires the user to return the client device to a service center or dealer. Therefore, there is a need for an efficient way to provide special services to a specific user, or a specific group of users.
  • Such special services can be, for example, value added services that are supplied to specific users that pay for the value added services.
  • the special services can also be specific services that are desired by a specific user or a specific group of users.
  • Such a system, method, and apparatus for providing value added services should be easily modifiable so that services can be easily added and/or deleted. Additionally, it should be easy to specify which users receive which specific special services.
  • the present invention is directed to a system, a method, and an apparatus for providing special services to specific client devices in a client-server communications system including one or more client devices having unique client identifiers and a server having a server template database for storing a plurality of templates.
  • the method includes the step of receiving a client request from a client device, wherein the client request includes a template identifier corresponding to a template and a unique client identifier corresponding to the client device.
  • the method also includes the step of determining, based on the template identifier, whether the template is associated with a special service identifier.
  • the template is associated with the special service identifier, then there is a determination, based on the client identifier, whether the client device should receive a special service. This determination can also be based on the special service identifier. If it is determined that the client device should receive the special service, then a special template is retrieved from the server template database and a special server response is determined based on the special template. The special server response is then sent to the client device, if it was determined that the client device should receive the special service. If there is no special service identifier associated with the template identifier, or if the user is not to receive the special service, then a different template is used to determine a basic response that is sent to the client device.
  • This different template can be the template associated with the template identifier in the request.
  • the determination of whether the client device should receive the special service is determined by searching a special service table, based on the client identifier, and possibly also the special service identifier.
  • the special template is identified in the special service table.
  • the present invention includes the step of associating a first template in a server template database with a special service identifier, wherein the special service identifier is associated with a second template in the server template database.
  • This embodiment also includes the step of receiving a client request from a client device, wherein the client request includes a first template identifier corresponding to a first template and a unique client identifier corresponding to the client device.
  • a server template database is then searched, based on the first template identifier, to determine that the first template is associated with the special service identifier.
  • a special service table is then searched, based on the special service identifier and the unique client identifier, to determine whether the client device should receive the special service. If it is determined that the client device should receive the special service, then the second template is retrieved from the server template database and a second server response based on the second template is determined. The second server response is then sent to the client device, if it is determine that the client device should receive the special service. If it is determined that the client device should not receive the special service, then the first template is retrieved from the server template database and a first server response is determined based on the first template. The first server response is then sent to the client device, if it is determined that the client device should not receive the special service. Additional related embodiments of the present invention directed to a systems and server apparatuses are also provided.
  • FIGS. 1 A 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
  • 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 descriptors 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. 7C is an illustration of another exemplary table stored in a server template database used in the logical architecture of FIG. 3.
  • FIG. 7D is an illustration of an exemplary special service table used to provide special services in an embodiment of the present invention.
  • 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. 1 1 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. 1 1A 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. 1 1.
  • 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 providing special services to specif users, 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.
  • the present invention relates to a method and system for automatically initializing and configuring a client device (e.g., a two-way paging device, a wireless phone, a personal data assistant, or a desk top computer).
  • 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.
  • the present invention can be 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.
  • Communications system 100 includes a plurality of cell sitesl02 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.
  • two-way wireless client devices 108 e.g., a two-way pager, a wireless phone, a hand held computing device
  • 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 1 10, which can be, for example, an X.25 packet switched network.
  • Communications network 1 10 may include, but is not limited to, land based links such as fiber optics or terrestrial microwave, and/or satellite based links, as would also be apparent to a person skilled in the relevant art.
  • Each cell site 102 is in communications with a message system center (MSC) 120 that includes a subscriber database (also referred to as a user database) that maintains records of all subscribers (also referred to as users) on the system, a unique identity sequence for the subscriber'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).
  • MSC message system center
  • subscriber database also referred to as a user database
  • MSC 120 message system center
  • communications between each cell cite 102 and MSC 120 is accomplished through communications network 1 10.
  • each cell site 102 can have a dedicated link to MSC 120.
  • Communications network 1 10 can be coupled to a public switched telephone network (PSTN) 1 12 so that a message can be sent to and from client device 108 via PSTN 1 12.
  • PSTN public switched telephone network
  • a message can also be sent from one client device 108 to another client device 108 using communications system 100.
  • 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 Serial Number (ESN).
  • MIN Mobile Identification Number
  • ESN Electronic Serial Number
  • a MIN 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 MIN and an ESN.
  • the client device used in an embodiment of the present invention 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.
  • MAN Mobile Access Number
  • 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 periodically 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 comprising a string of digitally represented alphanumeric characters, can be compared to a maintained database of unique identifiers ⁇ i.e., MINs, 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, originated. 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 shall be referred to as a targeted coverage area.
  • 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 1 14 (typically controlled by a service provider) are supported by communications system 100.
  • communications system 100 provides for message delivery between a server 1 14 and one or more client devices 108.
  • Servers 1 14 can communicate directly with client devices 108 or indirectly with client devices 108 via communications network 1 10.
  • servers 1 14 can communicate with communications network 1 10 through PSTN 1 12.
  • a server 1 14 provides information to a client device 108 upon receiving a request from the client device 108.
  • servers 1 14 can initiate the sending of information (e.g., unsolicited information) to a client device 108. This can be done periodically or upon a triggering event. Additional details about the types of services and the information provided by services providers 1 14 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).
  • LAN local area network
  • HAN home area network
  • WAN wide area network
  • the Internet is a world-wide set of interconnected computer networks that can be used to access a growing amount and variety 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 distributed, 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 enabled telephone), and the like, referred to as clients, by specifying the uniform resource locator
  • WAP Wireless Application Protocol
  • FIG. IB is a network block diagram showing a plurality of clients 108 and servers 1 14 connected to the Internet 118.
  • 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 destination address e.g., a URL
  • 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.
  • DNS domain server
  • the network address specifies the Internet protocol (IP) address of the intended server.
  • IP Internet protocol
  • Servers 1 14 maintain or otherwise have access to local or remote databases that store and/or provide various types of data.
  • remote databases 130 are maintained by data sources 132.
  • FIG. 1A also shows a local database 1 16 that is maintained by server 1 14.
  • Servers 1 14 can communicate with data sources 132 through dedicated links or through communications network 1 10, for example.
  • the type and number of databases, and the form of communication of data between the servers 1 14 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 comprise software running on one or more general purpose computers or on telecommunications-specific hardware.
  • 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 spirit and scope of the present invention. Alternatively, the discrete tasks can be performed by any number of server controllers.
  • a further description of exemplary software and hardware controllers is provided below.
  • Client device 108 includes an antenna 202, a transmitter
  • 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 subscriber) of client device 108, information received via communications system 100.
  • Display 210 can also display lists and/or menus from which a subscriber can make selections and perform various 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 alphanumeric 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 write to and read from memory 214.
  • client device 108 is an Inter@ctiveTM Pager 950 manufactured by Research In Motion (RIM), Limited, of Waterloo, Ontario,
  • the RIM Inter@ctive pager (RIM pager) is a commercially available device that provides for two-way wireless communications.
  • the RIM pager shown in 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 RIM page also includes a built-in internal radio modem for two-way wireless communications over a cellular network such as the BellSouth network.
  • client device 108 is a Palm Pilot 1 M 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.
  • the use of other two-way communications devices is within the spirit and scope of the present invention.
  • client device 108 can be a personal computer that, for example, communicates with servers 1 14 via a network such as the
  • 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. V. Embodiments of the Invention
  • the system described in connection with FIGs. 1A, IB, 2A and 2B provides a plurality of ever expanding information services to a user of client device 108.
  • a user requests stock prices from server
  • server 1 14 uses client device 108.
  • server 1 14 transmits the requested stock prices to client device 108.
  • Client devicel 08 displays the stock prices to the user on display 210.
  • Logical architecture 300 corresponds to the system of FIGs.
  • Logical architecture 300 includes a client application 304 residing in client device 108, and a server application 306 residing in server 1 14.
  • Client application 304 also referred to as client 304
  • server application 306 are, for example, computer programs respectively supported by computer controllers and memories of client device 108 and server 1 14.
  • Server 1 14 (also referred to as server controller 1 14) comprises the hardware and/or software required to accomplish specific functions of the present invention.
  • Server 1 14 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 1 14. That is, the tasks performed by a first server
  • client device 108 comprises the hardware and/or software (for example, client 304) required to accomplish specific functions of the present invention.
  • client 304 also referred to as client controller 304
  • 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.
  • 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.
  • 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.
  • Client device 108 includes a user interface 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
  • 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.
  • 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.
  • 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 1 14 when appropriate. Client device 108 also receives response message 318 (transmitted by server 1 14) and can store information in the response message in client transaction database 312, so as to preserve the information for later retrieval. Also, user interface 308 can display requested information to the user.
  • Server 1 14 can communicate with a plurality of clients, e.g.. client device
  • Server 1 14 distributes requested information to client devices 108, and maintains configuration control over the client devices. To perform such tasks, server 1 14 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 1 16 or a remote database 130.
  • server 1 14 receives information request 316 from client device 108, server 1 14 retrieves 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 1 14 to track information server 1 14 has previously transmitted to each client device 108.
  • Server transaction database 332 can include tables mapping individual client device unique identifiers (for example, MANs, MINs, or ESNs) to authorized services and associated templates. Server 1 14 can use such mapping tables to validate/authorize client requests.
  • Server 1 14 maintains transaction event data for past and on-going transactions between server 1 14 and client devices 108 in server transaction database 332. Such data is used to track and control the various 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 authorized for client devices 108 associated with the unique identifiers.
  • 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.
  • server 1 14 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 1 14 retrieves the most current template from server template database 330, and then transmits an appropriate template update, along with the requested information, to client device 108 using response message 318. In this manner, server 1 14 distributes the most current template versions to client devices 108 on a per access and an as needed basis. Thus, server 1 14 efficiently distributes 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 initially configuring a client device with templates is provided in U.S. Patent Application No. 09/523,170. entitled “System, Method and Apparatus for Initial Configuration of a Client Device", which was wholly incorporated herein by reference above. B.l. Template Overview
  • 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 various data service options and/or features. Also, the configuration can determine the way in 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 various 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 descriptors (such as textual, symbolic and/or graphical descriptors) 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.
  • action portion 404 includes definitions (such as textual, symbolic, and/or graphical descriptors) specifying a set of actions a user can initiate with respect to the associated display page.
  • 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 described.
  • Content portion 402 typically includes text (for example, field labels) and variable descriptors (for example, stock quote information). Content portion 402 defines a format for the variable 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.
  • Template 406 includes a title 410 (that is part of the header of the template) for displaying the text "PRECIOUS
  • 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 variable information (such as stock prices) and a second set of variable fields 418 for displaying further variable information corresponding to the information field identifiers.
  • Template 406 is incomplete because none of the information fields are populated with the specified variable information.
  • 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.
  • field 412, fields 416, and fields 418 are respectively populated with current time, hi/low stock prices, and stock price deviations.
  • 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 described below.
  • FIG. 4D is an illustration of a list of exemplary definitions or descriptors 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 prices.
  • "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 pricing information.
  • the definition " ⁇ SILVER%0:1 1%%1 :6%” causes two variable 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.
  • client device 108 retrieves the most recently received information relating to template temp, from client transaction database 312, and refreshes the display with the retrieved data.
  • selecting "refresh" causes client device
  • 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 temp home .
  • Client device 108 then displays the home page associated with temp home .
  • the templates of the present invention provide a powerful and convenient mechanism for configuring, reconfiguring, and updating client device 108 (including, for example, client 304 and user interface 308).
  • new and/or updated templates are automatically distributed to and stored in client devices 108.
  • the new and/or updated templates correspondingly expand the service features and options available to the user so that the user can access the new and expanded services.
  • the new and/or updated templates are transmitted from server 1 14 in such a way as to be transparent to the user.
  • the user is no longer burdened with physically returning the user device to a service center for such an update or with entering configuration data at client device 108.
  • developers are freed from the burden of redeveloping (and then distributing to many users) new versions of complex client application software and user interface software to accommodate every new feature or service upgrade.
  • 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.
  • the templates are then automatically distributed to the users on a per user basis, as needed, as will be described further below.
  • templates 314 stored in 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.
  • 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.
  • 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.
  • 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 prices) linked together by actions 612.
  • a new template defining a new page 614 called "Equity News”
  • 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.
  • an action 616 can be added to quote display page (template) 606.
  • 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.
  • 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,, temp 2 , temp 3 ).
  • Each row of template version column 706 specifies the version of the template in the corresponding row of column 703. Accordingly, entries 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 in parameters column 714 is the data that was sent to the corresponding client (in column 702) the last time server 1 14 provided that client with the data type of column 708.
  • Each row of date column 710 and time column 712 specifies when server 1 14 last provided the client device of column 702 with the data included in parameters column 714.
  • 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 in 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 corresponds to an identified template, for example, template temp, .
  • 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.
  • FIG. 7C is an illustration of another exemplary table 770 that can be stored be in server template database 330. Similar to table 750 discussed above, table 770 includes column 754 listing the identifiers of current templates stored in server template database 330, column 756 listing version numbers for the identified templates, and column 758 listing the definitions of the identified templates. Each row 760 corresponds to an identified template, for example, temp metals . Additionally, server template database table 770 includes a special service column 772 (also referred to as a value added service column). As shown in FIG. 7C. each row of table 770 need not include an entry in the special service column 772. Rather, in this example, only the temp quote row and the temp mela , s row include entries in special service column 772.
  • special service column 772 also referred to as a value added service column
  • a special service identifier " ⁇ quote” is included in cell 774; and a special service identifier “ ⁇ metals” is included in cell 776.
  • Such special service identifiers (e.g., “ ⁇ quote” and “ ⁇ metals”) indicate that specific users (or client devices) are to receive special or value added service when they send a request message (e.g., message 900) identifying a specific template (e.g., temp quotc and temp me . a , s ). Additional details of how special service column 772 is used are discussed below in section E.5 of this specification.
  • FIG. 7D shows an exemplary special service table 780
  • Special service table 780 is maintained by server 1 14, and includes a special service column 782, a client identification column 784 and a special template column 786. Additional details of how special service template 782 is used are also discussed below in section
  • 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. 7A 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.
  • 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 1 14 to track the current 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.
  • 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.
  • client 108 can store transaction number 912 and client state number 914 in, and retrieve 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 1 14. Only client device 108 can increment transaction number 912. However, client device 108 never increments client state number
  • server 1 14 increments client state number 914 when it sends a server response to client device 108.
  • each request (e.g., 900) includes a transaction number 914.
  • Server 1 14 responds to each request individually and echoes back the appropriate 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 1 14 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 1 14. Thus, server 1 14 should save the last sent server response in, for example, a suspense file. Only when sever 1 14 receives a new client request (i.e., for the same information) with the same state number does it write the data of the last server response (which was stored in the suspense file) to server transaction database 332. For example, server 1 14 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
  • server 1 14 will know that client device 108 never received the "state 7" server response. This enables server 1 14 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 comparison of old data to new data to thereby produce a server response.
  • either client device 108 or server 1 14 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 (corresponding to information response message 318) transmitted by server 1 14.
  • the information response message (e.g., 920) is also referred to as a server response, since it is initiated by server 1 14.
  • 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.
  • FIG. 9C is an illustration of another exemplary information response message 930 (also corresponding to message 318 of FIG. 3).
  • Response message 930 includes template update information 932 to update a template, in client device 108, identified by template identifier 906.
  • 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.
  • 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 1 14. This can occur, for example, if client device 108 was initially configured with a single template, such as a home template (e.g., temp horne ) 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.
  • a home template e.g., temp horne
  • 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
  • step 1006 the appropriate template is retrieved from client template database 310.
  • 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 1 14 to populate the retrieved 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.
  • the populated template is displayed (i.e., an associated page) on display 210 of client device 108.
  • a status e.g., date and time
  • the appropriate 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 appropriate template.
  • client device 108 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.
  • client device 108 composes and transmits an appropriate information request message to server 1 14, at a step 1016.
  • 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 described above in connection with FIG. 9A.
  • flow jumps directly from step 1008 to step
  • step 1016 such that client device 108 sends a request message to server 1 14 after client device 108 retrieves data from client transaction database 312.
  • flow jumps directly from step 1006 to step 1016, such that client device 108 sends a request message to server 1 14 after client 204 retrieves the appropriate template from client template database 310.
  • FIG. 1 1 represents a series of method steps 1 100 performed by server 1 14 in response to a request for information from client device 108.
  • the process begins at a step 1 102 when server 1 14 receives a request message (e.g., request
  • server 1 14 identifies client device 108. This is accomplished using a unique identifier (e.g. 902) included in the request.
  • server 1 14 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).
  • server 1 14 can also determine whether the specific information request is authorized for the requesting MAN.
  • server 1 14 retrieves the latest (i.e., most current or up-to-date) version of the identified template (e.g., the template identified by template identifier 906) from server template database 330.
  • server 1 14 retrieves/derives the requested information required to populate the data fields of the template that was retrieved at step 1 106. For example, at step
  • server 1 14 retrieves the requested information from information store 334 in accordance with the most current template definition.
  • server 1 14 determines whether client 108 has the most current template. To make this determination, server 1 14 compares template version identifier 906 of the template named in information request message 900 against the version identifier for the same named template just retrieved from server template database 330 (e.g., in column 756 of table 750 of FIG. 7B) at step 1 106.
  • server 1 14 determines that the identified client device 108 does not have the latest version of the appropriate template (i.e., the answer to step 1 1 10 is NO), then client device 108 has an "old" template that requires updating with a "new" template, namely, the template just retrieved from server template database 330. Accordingly, at a step 1 1 12, server 1 14 composes an information response message (e.g., message 930) including: a) information retrieved from information store 334 at step 1 108; and b) template update information from the "new" template.
  • an information response message e.g., message 930
  • server 1 14 includes the entire "new" template in the information response message. In another embodiment, server 1 14 compares the "old" template to the "new” template to determine changes between the two templates. Server 1 14 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 1 14 partitions the "new" template into a series of consecutive but separate messages.
  • server 1 14 determines at step 1 1 10 that client device 108 does not require a template update (i.e., the answer to step 1 1 10 is YES), then server 1 14 composes an information response message using only the information retrieved from information store 334 (e.g., message 920), since a template update is unnecessary.
  • server 1 14 transmits the composed information response message to client 108. For example, server 1 14 transmits response message 920 or 930 composed respectively at steps 11 14 or 1 1 12.
  • the message that server 1 14 composes at step 1 1 14 or 1 1 12 (and sends at step 1 1 16) includes all the data necessary to populate a template. In another embodiment, the message that server 1 14 composes at step
  • 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 1 1 14) 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 1 14 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.
  • step 1 1 14 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 1 14 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.
  • server 1 14 compares the information in each data field (i.e., the information retrieved in step 1 108 of FIG. 1 1) 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 referred 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 in client transaction database 312 (i.e., at step 1202).
  • Server 1 14 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) retrieved by server 1 14 at step 1 108.
  • a change definition 1306 represents a change in information between old page 1302 and new page 1304.
  • Server 1 14 determines change definition 1306 by comparing the information in old page 1302 to the information in new page 1304. Server 1 14 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.
  • server 1 14 queries 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 1 14 actually compares the up-to-date information (i.e., the information retrieved in step 1 108) 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 1 14 will perform the comparison using information that was last sent to client device 108, but never received by client device 108.
  • client state number 912 i.e, in addition to client identifier 902 and template identifier 906
  • FIG. 10A represents a series of method steps 1050 performed by client device 108 when the client receives a response message from server 1 14. The process begins at a step 1052 when client device 108 receives a response message
  • 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 identified template in client template database 310 using template update information from the response message. Then flow proceeds to a step 1058.
  • 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.
  • client device 108 refreshes the current display page, if appropriate, by retrieving the "new" information from client transaction database 312. If a template update was received, and it is appropriate to update the current 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.
  • Server Receives an Information Request Including a Get template Command From the Client
  • FIG. 1 1 A represents an exemplary series of method steps 1 150 performed by server 1 14 when the server receives a get_template command from client device 108 (see FIG. 10, step 1005).
  • the process begins at a step 1 152 when server 1 14 receives an information request message from client device 108.
  • server 1 14 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 1 158, described below, and the method continues from step 1 158.
  • server 1 14 validates the requested template. To validate the requested template, server 1 14 queries 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 authorized user of the requested template, server 1 14 transmits an error message to the requesting client, and the process terminates. Otherwise, server 1 14 retrieves the requested template from server template database 330.
  • server 1 14 collects data in accordance with the retrieved template, as described above in connection with step 1 108 of FIG. 1 1.
  • server 1 14 composes an information response message including a template update, as described above in connection with step 1 1 12 of
  • the template update includes the retrieved template in its entirety.
  • server 1 14 transmits the information response/template update, as described above in connection with step 1116 of FIG. 1 1.
  • client device 108 executes the method steps described above in connection with FIG. 10A.
  • client device 108 sends a get_template command to server 1 14, but no template definitions, such as variable (field) definitions, etc, are associated with the get template command.
  • Server 1 14 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 1 14 executes method steps 1 104 - 1 1 16, as described above connection with FIG. 1 1. On the other hand, if a get template command is received, server 1 14 returns only the requested template, if authorized, to client device 108 without collecting data service information. In other words, in this embodiment, both of the above described steps 1 158 and 1 160 are omitted.
  • the above described embodiments "automatically" update templates in client device 108 because the updates occur without requiring 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.
  • 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. Server Receives an Information Request Including a Template Identifier Associated with a Special Service Identifier
  • FIG. 14 represents an exemplary series of method steps 1400 performed by server 1 14 when the server receives an information request (e.g., request 900) that includes a template identifier associated with a special service. Accordingly, FIG. 14 shall be described with reference to FIGS. 7C and 7D briefly discussed above.
  • the process begins at a step 1402 when server 1 14 receives a request message (e.g., request 900) sent from client device 108.
  • the request message includes a unique client identifier (e.g., MAN, MIN, ESN) and a template identifier (e.g.. temp meta , s ).
  • Step 1402 is essentially the same as step 1 102 discussed above.
  • server 1 14 identifies client device 108. This is accomplished using the unique identifier (e.g., 902) included in the request, as in step 1 104 discussed above.
  • server 1 14 searches or queries server template database 330 (or more specifically, in this example, server template database table 770, shown in FIG.
  • step 7C determines whether the template identified in the request (e.g., temp me , a , s ) is associated with a special service identifier.
  • the template identifier is temp me . ais
  • server 1 14 searches server template database table 770
  • server 1 14 will determine that temp meta ⁇ s is associated with the special service identifier " ⁇ metals" (shown in cell 776). Accordingly, in this example, the answer to step 1408 (i.e., is the template associated with a special identifier?) is YES.
  • server 1 14 determines at step 1408 that the identified template (e.g., temp melai .) is associated with a special service, then flow continues to a step 1412.
  • the identified template e.g., temp melai .
  • server 1 14 searches a special service table (e.g., special service table 780) to determine whether the client device should receive a special service.
  • a special service table e.g., special service table 780
  • server 1 14 searches special service table 780 (shown in FIG. 7D), based on the special service identifier and the unique client identifier.
  • FIG. 7D shows a special service table 780, which is used for multiple special services (e.g., ⁇ metals and ⁇ quote).
  • a separate special service table exists for each special service.
  • step 1414 If the answer to a step 1414 (i.e., should the client device receive a special request?) is NO, then flow continues to step 1410, which is discussed below. However. if the client device should receive a special service (i.e., the answer to step 1414 is YES), then flow continues to a step 1416. This can occur, for example, if a match for the special service identifier (e.g., ⁇ metals) and the unique client identifier (e.g., MAN,) is found in special service table 780. When the answer to step 1414 is YES, a special template is identified (e.g, in special template column 786 of table 780). This identified template is used when preparing a server response to the requesting client device 108.
  • special service identifier e.g., ⁇ metals
  • MAN unique client identifier
  • the special template (e.g., temp mela , sMAN ,) is retrieved from server template database 330.
  • a special template can be unique to a specific client device 108 (e.g, temp rnela , sMAN , is unique to the client device corresponding to MAN , ).
  • a special template common to more than one user e.g., temp me . a
  • server 1 14 determines a server response based on the special template in a step 1418. Additional details of how a response is determined based on a template are discussed above.
  • server 1 14 sends the server response to client device 108. In this manner, those users who pay for special services (e.g., value added services), subscribe to specific services, or are associated with specific organizations, can receive a different response (and thus their client device 108 will display a different display page) than other users.
  • special services e.g., value added services
  • step 1410 if the identified template is associated with a special service but the identified client device should not receive the special service (i.e., if the answer to step 1414 is NO).
  • another template is retrieved from server template database 330.
  • the template retrieved in step 1412 is the actual template identified in the request received by server 1 14 from client device 108 (i.e., in step 1402).
  • the template retrieved in step 1412 is used to determine a server response, which is then sent to client device 108 in step 1420. In this manner, those users who should not receive special service can receive basic service.
  • server 1 14 can send client device 108 a response that defines the appropriate template. Server 1 14 can make this determination using server transaction database 332. Additionally, when necessary, server 1 14 can send updated versions of special templates to client device 108.
  • a special template e.g., temp meta , sMAN , or temp metals3
  • precious metals template 406 is used to provide basic service to users of client devices 108.
  • a special template can, for example, also provide information about additional and/or different metals. More generally, special templates can have unique headers, unique content portions and/or unique actions, depending on the specific implementation. In this manner, one or more specific actions and/or specific content can be provided to only a specific class of users.
  • a special template can be formatted per the desires of a specific user.
  • a special template can be formatted per the desires of a specific organization.
  • Such special templates can be designed by specific users using, for example, a web site, or through verbal conversations between a user and a service provider.
  • special templates are designed using client device 108.
  • a special template can be used to provide special services those users who pay for value added services (e.g., enhanced sports information, enhanced stock quote information, etc.). These are just a few example of how and why special templates may be used to provide special services (e.g., value added services) to specific users.
  • special templates are just a few example of how and why special templates may be used to provide special services (e.g., value added services) to specific users.
  • special templates are within the spirit and scope of the present invention.
  • special service column 772 and special service table 780 provide additional advantages. For one, a special service can be easily deleted by removing the corresponding special identifier (e.g., ⁇ metals) from special service column 772. Similarly, a special service can be easily added by adding a special identifier to special service column 772 and then adding one or more corresponding entries in special service table 780. Additionally, it is easy to alter which client devices 108 are to receive specific special services. That is, special services can easily be added or deleted for specific users by adding or deleting appropriate entries in special service table 780. For example, after a user subscribes to a value added service, an appropriate entry is added to special service table 780.
  • special service table 780 For example, after a user subscribes to a value added service, an appropriate entry is added to special service table 780.
  • the entry can include the unique client device identifier associated with that user's client device 108 (entered in column 784) a special template (entered in column 786) and a special service identifier (entered in column 782). Accordingly, the next time that client device 108 sends an appropriate request, server 1 14 will recognize that client device 108 should receive a special template and server 1 14 will provide it to client device 108. To discontinue providing a particular client device 108 with a special service, the appropriate entry for that client device 108 is simply removed from special service table 780. This may be done, for example, if a user decides he/she no longer wants to subscribe to a particular service, when a promotional offer expires, or if a user fails to pay for the service.
  • Server 1 14 can perform specific features of the present invention using server controllers, which in effect comprise a computer system.
  • server controllers which in effect comprise a computer system.
  • communication-specific hardware can be used to implement the present invention, the following description of a general purpose computer system is provided for completeness.
  • the present invention is preferably implemented in software.
  • 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 in FIG. 15.
  • 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).
  • 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 drive 1512 and/or a removable storage drive 1514, representing a floppy disk drive, a magnetic tape drive, an optical disk drive, etc.
  • the removable storage drive 1514 reads from and/or writes to a removable storage unit 1518 in a well known manner.
  • Removable storage unit 1518 represents a floppy disk, magnetic tape, optical disk, etc.
  • removable storage unit 1518 includes a computer usable storage medium having stored therein computer software and/or data.
  • 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 cartridge and cartridge 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 may be 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 carries 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.
  • computer program medium and “computer usable medium” are used to generally refer to media such as removable storage drive 1514, a hard disk installed in hard disk drive 1512, and signals 1528. These computer program products are means for providing software to computer system 1500.
  • Computer programs 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.
  • the processes performed by server 1 14 and server application 306, and by client device 108 and client application 304 are all performed by computer control logic.
  • client and server template databases 310 and 330, special service database table 780, and client and server transaction databases 312 and 332 can be stored in respective memories 1508 and/or respective memories 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 drive 1514, hard drive 1512 or communications interface 1524.
  • features of the invention are implemented primarily in hardware using, for example, hardware components such as application specific integrated circuits (ASICs).
  • ASICs application specific integrated circuits
  • features of the invention can be implemented using a combination of both hardware and software.

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Finance (AREA)
  • Accounting & Taxation (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Databases & Information Systems (AREA)
  • Development Economics (AREA)
  • Tourism & Hospitality (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Human Resources & Organizations (AREA)
  • Technology Law (AREA)
  • Primary Health Care (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

L'invention concerne un système, un procédé et un dispositif permettant de fournir des services spéciaux à des dispositifs clients particuliers dans un système de communication client-serveur composé d'un ou de plusieurs dispositifs clients comprenant des identifiants clients, et d'un serveur pourvu d'une base de données de modèles serveur permettant de stocker une multitude de modèles. Le procédé comprend les étapes consistant à recevoir une demande client transmise par un dispositif client, la demande client comprenant un identifiant de modèle correspondant à un modèle et un identifiant client unique correspondant à un dispositif client si le modèle est associé à un identifiant de service spécial, puis, à déterminer, en fonction de l'identifiant client, si le dispositif client peut recevoir un service spécial. S'il est déterminé que le dispositif client peut recevoir un service spécial, un modèle spécial est extrait de la base de données de modèles serveur et une réponse serveur spéciale est alors transmise au dispositif client.
PCT/US2000/041060 2000-03-10 2000-10-04 Systeme, procede et dispositif permettant de fournir a des utilisateurs particuliers des services a valeur ajoutee WO2001069444A2 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU2001216303A AU2001216303A1 (en) 2000-03-10 2000-10-04 System, method, and apparatus for providing value added services to specific users

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US52316600A 2000-03-10 2000-03-10
US09/523,166 2000-03-10

Publications (2)

Publication Number Publication Date
WO2001069444A2 true WO2001069444A2 (fr) 2001-09-20
WO2001069444A3 WO2001069444A3 (fr) 2003-12-04

Family

ID=24083918

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2000/041060 WO2001069444A2 (fr) 2000-03-10 2000-10-04 Systeme, procede et dispositif permettant de fournir a des utilisateurs particuliers des services a valeur ajoutee

Country Status (2)

Country Link
AU (1) AU2001216303A1 (fr)
WO (1) WO2001069444A2 (fr)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1745429A1 (fr) * 2004-05-06 2007-01-24 Siemens Corporate Research, Inc. Systeme et procede d'automatisation de gestion de travail dans un recueil de donnees de mobile
US7404140B2 (en) 2003-01-31 2008-07-22 Siemens Medical Solutions Usa, Inc. System for managing form information for use by portable devices
CN104580375A (zh) * 2014-12-11 2015-04-29 百度在线网络技术(北京)有限公司 确定目标应用的ui样式信息的方法与设备
CN104699501A (zh) * 2015-01-15 2015-06-10 腾讯科技(深圳)有限公司 一种运行应用程序的方法及装置
EP2782008A4 (fr) * 2011-11-18 2015-07-15 Tencent Tech Shenzhen Co Ltd Serveur d'applications java et procédé de traitement de services web
US20150244576A1 (en) * 2011-08-22 2015-08-27 At&T Intellectual Property I, L.P. Methods, Systems, and Products for Notifying of Enhancements to Quality of Service and Experience
US10403403B2 (en) 2012-09-28 2019-09-03 Cerner Innovation, Inc. Adaptive medical documentation system
US10424403B2 (en) 2013-01-28 2019-09-24 Siemens Aktiengesellschaft Adaptive medical documentation system
CN112306530A (zh) * 2020-11-10 2021-02-02 珠海格力电器股份有限公司 软件更新法、装置、电子设备和计算机可读介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998015925A2 (fr) * 1996-10-09 1998-04-16 Visa International Service Association Systeme de presentation electronique de releves comptables
WO1999063709A2 (fr) * 1998-05-29 1999-12-09 Research In Motion Limited Systeme et procede permettant de transferer des informations dans un dispositif de communication de donnees mobile a partir d'un systeme hote
EP0981232A2 (fr) * 1998-08-20 2000-02-23 Hitachi, Ltd. Procédé de communication mobile
WO2000022860A1 (fr) * 1998-10-12 2000-04-20 Janus Friis Degnbol Procede et systeme permettant de transmettre des donnees entre des unites
WO2000054537A2 (fr) * 1999-03-09 2000-09-14 Nokia Networks Oy Connexion sur liberation dans une cellule exclusive

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998015925A2 (fr) * 1996-10-09 1998-04-16 Visa International Service Association Systeme de presentation electronique de releves comptables
WO1999063709A2 (fr) * 1998-05-29 1999-12-09 Research In Motion Limited Systeme et procede permettant de transferer des informations dans un dispositif de communication de donnees mobile a partir d'un systeme hote
EP0981232A2 (fr) * 1998-08-20 2000-02-23 Hitachi, Ltd. Procédé de communication mobile
WO2000022860A1 (fr) * 1998-10-12 2000-04-20 Janus Friis Degnbol Procede et systeme permettant de transmettre des donnees entre des unites
WO2000054537A2 (fr) * 1999-03-09 2000-09-14 Nokia Networks Oy Connexion sur liberation dans une cellule exclusive

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7404140B2 (en) 2003-01-31 2008-07-22 Siemens Medical Solutions Usa, Inc. System for managing form information for use by portable devices
EP1745429A1 (fr) * 2004-05-06 2007-01-24 Siemens Corporate Research, Inc. Systeme et procede d'automatisation de gestion de travail dans un recueil de donnees de mobile
US20150244576A1 (en) * 2011-08-22 2015-08-27 At&T Intellectual Property I, L.P. Methods, Systems, and Products for Notifying of Enhancements to Quality of Service and Experience
US10491470B2 (en) * 2011-08-22 2019-11-26 At&T Intellectual Property I, L.P. Methods, systems, and products for notifying of enhancements to quality of service and experience
EP2782008A4 (fr) * 2011-11-18 2015-07-15 Tencent Tech Shenzhen Co Ltd Serveur d'applications java et procédé de traitement de services web
US10403403B2 (en) 2012-09-28 2019-09-03 Cerner Innovation, Inc. Adaptive medical documentation system
US10424403B2 (en) 2013-01-28 2019-09-24 Siemens Aktiengesellschaft Adaptive medical documentation system
CN104580375A (zh) * 2014-12-11 2015-04-29 百度在线网络技术(北京)有限公司 确定目标应用的ui样式信息的方法与设备
CN104699501A (zh) * 2015-01-15 2015-06-10 腾讯科技(深圳)有限公司 一种运行应用程序的方法及装置
CN104699501B (zh) * 2015-01-15 2018-02-16 腾讯科技(深圳)有限公司 一种运行应用程序的方法及装置
CN112306530A (zh) * 2020-11-10 2021-02-02 珠海格力电器股份有限公司 软件更新法、装置、电子设备和计算机可读介质
CN112306530B (zh) * 2020-11-10 2022-07-15 珠海格力电器股份有限公司 软件更新法、装置、电子设备和计算机可读介质

Also Published As

Publication number Publication date
WO2001069444A3 (fr) 2003-12-04
AU2001216303A1 (en) 2001-09-24

Similar Documents

Publication Publication Date Title
US6560604B1 (en) System, method, and apparatus for automatically and dynamically updating options, features, and/or services available to a client device
US6466937B1 (en) System, method and apparatus for utilizing transaction databases in a client-server environment
KR100309310B1 (ko) 무선데이터통신망및무선데이터통신망에서의송신기에의한데이터파일획득방법
US9842350B2 (en) Method and apparatus for forwarding media content interspersed with an advertisement
US9323849B2 (en) Personalising content provided to a user
US8819176B2 (en) Intelligent map results related to a character stream
US7392308B2 (en) System, method, and computer program product for placement of channels on a mobile device
US20020174110A1 (en) Method for maintaining remotely accessible information on personal digital devices
US6560454B2 (en) System and method for delivery and updating of data transmitted to a mobile terminal
WO2001069444A2 (fr) Systeme, procede et dispositif permettant de fournir a des utilisateurs particuliers des services a valeur ajoutee
US9060326B2 (en) RSS channel information provision method and system and portable device using the same
KR19990001061A (ko) 개선된 인터넷 정보 검색 방법
EP1410254A2 (fr) Procedes et appareil de mise en signets electronique d'emplacements de vendeur par le biais d'un assistant numerique personnel ou d'un autre dispositif d'utilisateur
WO2001069382A9 (fr) Systeme, procede et appareil pour la configuration initiale d'un dispositif client
WO2001069383A9 (fr) Procede et appareil pour fournir des services a un utilisateur d'un dispositif client configure par des modeles faisant reference a d'autres modeles
JP2003006499A (ja) 電子クーポンの配信方法、サーバ装置及びクライアント装置
WO2001069882A2 (fr) Systeme et procede permettant de fournir des informations repondant a une demande a structure libre
KR20020078309A (ko) 통신망을 이용한 자동차 관련정보 검색 서비스 시스템 및그 방법
JP2002149680A (ja) ブックマーク機能を利用した情報参照システムおよび情報参照方法
KR20030024234A (ko) 이동 휴대 단말기의 네트워크 접속 안정화 방법
JP2005079670A (ja) 電子カプセルを用いた情報提供システム、情報提供方法

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

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

AL Designated countries for regional patents

Kind code of ref document: A2

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

121 Ep: the epo has been informed by wipo that ep was designated in this application
REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP