WO2001003011A2 - Cross-media information server - Google Patents

Cross-media information server Download PDF

Info

Publication number
WO2001003011A2
WO2001003011A2 PCT/US2000/018443 US0018443W WO0103011A2 WO 2001003011 A2 WO2001003011 A2 WO 2001003011A2 US 0018443 W US0018443 W US 0018443W WO 0103011 A2 WO0103011 A2 WO 0103011A2
Authority
WO
WIPO (PCT)
Prior art keywords
information
client
server
message
format
Prior art date
Application number
PCT/US2000/018443
Other languages
French (fr)
Other versions
WO2001003011A3 (en
Inventor
Shyam Kamadolli
Rajeev Tipnis
Original Assignee
Netmorf, 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 Netmorf, Inc. filed Critical Netmorf, Inc.
Priority to AU59149/00A priority Critical patent/AU5914900A/en
Publication of WO2001003011A2 publication Critical patent/WO2001003011A2/en
Publication of WO2001003011A3 publication Critical patent/WO2001003011A3/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database

Definitions

  • This invention relates to access to information over a variety of communication media.
  • a variety of different communication infrastructures are available today over which users of personal client devices can access information from information services, such as from Internet-based server computers.
  • These personal devices include, for example, cellular telephones, personal digital assistants (PDAs), and pagers. These devices use a variety of communication protocols to access data from the information sources.
  • Some cellular telephones support data communication using the Wireless Application Protocol (WAP) and Wireless Markup Language (WML) to provide access to text-based information from the cellular telephones.
  • WAP Wireless Application Protocol
  • WML Wireless Markup Language
  • Some handheld devices such as the Palm VII computer made by Palm Inc., make use of a mobile radio communication infrastructure (SMR) and use a Palm Query Application (PQA) protocol to provide information access from the handheld device.
  • SMR mobile radio communication infrastructure
  • PQA Palm Query Application
  • HDML Handheld Device Markup Language
  • XML extensible Markup Language
  • Other devices use various other application protocols, such as the Handheld Device Markup Language (HDML) or specific versions of the extensible Markup Language (XML), to control how information is accessed and displayed, and use various communication protocols are used to pass information between the devices and information services.
  • HDML Handheld Device Markup Language
  • XML extensible Markup Language
  • the communication infrastructure for passing data to and from a personal device and the personal devices that make use of that infrastructure are referred to jointly as a client platform over which data is accessed.
  • Information services that are accessed from the personal devices generally use protocols that depend on the nature of the information services.
  • an electronic mail server may provide access to email using the Post Office Protocol (POP) application protocol using the Transport Control Protocol/Internet Protocol (TCP/IP) over the public Internet
  • POP Post Office Protocol
  • TCP/IP Transport Control Protocol/Internet Protocol
  • WWW World- Wide-Web
  • HTTP Hyper-text Markup Language
  • http hyper-text transport protocol
  • information services 110 include a Web server 112 and an Email server 114.
  • Client platforms 120 include a client computer 122, which executes software for interacting directly with both Web server 112 and Email server 114.
  • Client platforms 120 also includes a WML-based platform 124 and an SMS- based platform 127.
  • WML-based platform 124 includes a WAP infrastructure 127 for communicating with a WML device 128, such as a cellular telephone, over a wireless communication system over which data is passed using the WAP protocol.
  • SMS-based platform 127 includes a paging infrastructure 128 and a representative SMS device 128.
  • Content translators 130 include separate translation modules for coupling each of the information services 110 with the different of the client platforms 120 that do not directly support the protocols or formats of the information services.
  • a Web-WML module 132 converts HTML-based content into WML based content while a separate Web-SMS module 134 converts HTML-based content to an SMS-format.
  • One approach to this conversion is to configure the modules with data associated with particular Web pages that have been selected to be accessible from the client devices, and this data identifies the portions of the Web pages that should be translated into the target formats. For example, graphic components and long text sections may be ignored and only specific content may be extracted for translation into the target format.
  • This approach to translating HTML pages is often referred to as "scraping" the pages to extract the desired content. If the layout of an HTML page changes, both the Web-WML and the Web-SMS modules may have to be reconfigured to accept the changed layout.
  • Content translators 130 also include an email-WML module 136 and an email-SMS module 138 that provide translation services between email server 114 and WML-based platform 124 and SMS-based platform 127, respectively. Summary
  • the invention provides a system and method for coupling diverse client platforms and diverse information services without necessarily requiring separately configured modules to couple each combination of client platform and information service.
  • Content from any of the information services is first converted into a common format and then translated into a format suitable for the target platform.
  • the invention is a method for communicating between information services and client devices.
  • the method includes accepting a first request for information from a first of the client devices, which includes receiving a first identifier which identifies requested information.
  • the method then includes forming a message encoding the requested information. Forming this message includes (a) accessing a specification of the requested information based on the first identifier, (b) identifying a first of the information services from the accessed specification, (c) accessing the information service to retrieve a part of the requested from said information service, and (d) formatting the requested information according to a common format that is independent of the client device from which the first request was accepted.
  • the method then includes passing the requested information to the client _ 3 _
  • the device including translating the message from the common format into a format that is associated with the client device and that is different than the common format, and transmitting the translated message to the client device.
  • the method can include one or more of the following features: Accepting the first request, forming a message, and passing the requested information are repeated for requests from a number of the client devices, and passing the requested information to the client devices includes translating messages from the common format into a number of different formats each associated with different of the client devices.
  • the common format identifies layout elements, and the plurality of different formats associated with the client devices includes one or more markup formats.
  • the method further includes determining one or more parameter values associated with capabilities of the client device, and forming the message includes encoding the requested information using the parameter values to determine the content of the message.
  • Translating the message from the common format includes applying a translation procedure that is independent of the requested information.
  • Translating the message from the common format into the format associated with the client device includes translating from a first markup language to a second markup language.
  • the invention is a system for communicating between a number of information services and a number of client platforms.
  • the system includes an application server, which includes an interface to the information services, a storage coupled to the application server for holding configuration data, and a media server for communicating messages with the client platforms according to a number of message formats.
  • the media server includes a number of modules each associated with a different one of the client platforms and including an interface to the client platform for communicating with the client platform according to one of said message formats.
  • the system includes a communication path coupling the application server and the media server for passing information between the information services and the client platforms in a common format that is independent of which of the information services and client platforms are involved in the communication.
  • the system can include one or more of the following features:
  • Each module of the media server includes a translator for converting messages from the common format to the message format for communicating with the client platform associated with said module.
  • the system further includes an information server coupled between the application server and the information services.
  • the information server includes a number of modules, each . 4 .
  • a communication path couples the information server and the application server for passing information in a format that depends on a class of the information service involved in the communication.
  • the information server thereby provides a generic interface for the application server for classes of the information services.
  • the system also includes a configuration application for providing the configuration data based on input from an operator of the system.
  • the system also includes a cache storage for holding information received from the information services.
  • the invention includes on or more of the following advantages:
  • the invention enables easy addition of new information services or client platforms. For example, addition of a client platform does not have to address mapping multiple information services to that client platform since only mapping of the common format to that platform is required. Similarly, adding of modifying an information service does not require updating configurations for multiple client platforms.
  • FIG. 1 is a block diagram showing multiple information services coupled to multiple client platforms through content translators;
  • FIG. 2 is a block diagram showing multiple information services coupled to multiple client platforms through a media server according to the present invention
  • FIG. 3 is a block diagram of a communication server
  • FIG. 4 is a flowchart that illustrates processing of a client request
  • FIG. 5 is a block diagram that illustrates a cascaded arrangement of communication servers.
  • a communication server 230 provides communication and data translation services to couple information services 110, which includes a number of separate information services, and client platforms 120, which includes a number of separate client platforms, each of which typically supports a large number of personal client devices.
  • Communication server 230 is a programmable computer, or alternatively a system that includes a number of interconnected computers.
  • a storage device 210 such as a magnetic disk, holds software that when executed on the communication server implements a number of interrelated software modules that provide the communication and data conversion services that couple the information services and the client platforms.
  • Communication server 230 has communication links to information services 110 over a variety of communication channels, such as over the public Internet, over a private data network, or over a secure or dedicated communication link.
  • Communication server 230 also has a number of communication links to client platforms 120.
  • Communication server 230 hosts three principal modules: an information server 235, which communicates with the various information services 110; a media server 250, which communicates with the various client platforms 120; and an application server 240, which passes information between the information server and the media server.
  • the separate information services of information services 110 are grouped into a number of generic classes, such as database servers, file servers, messaging servers, and marked-up information servers.
  • Communication between information server 235 and application server 240 does not necessarily depend on a particular information service which is involved in the communication, but rather, in general, depends on the generic class of the information service.
  • Communication between application server 240 and media server 250 is largely independent of the particular information service or its generic class, and is independent of the particular client platform involved in the communication.
  • information is passed from application server 240 to media server 250 formatted ("marked-up") according to a specific instance of the extensible Markup Language (XML) in such a way that media server 250 does not, in general, have to deal with specific characteristics of the information services.
  • Media server 250 provides information to application server 240 regarding the capabilities of the client platform, such as the size of the graphical display on a client device or a maximum data size that can be transferred over the communication infrastructure of the client platform to the client device, and application server 240 provides information to media server 250 in a format that the media server can process .
  • Information server 235 is configured to interact with each of these services using interfaces that are native to those services and to interact with application server 240 according to the generic classes of those services.
  • Information services 110 include Web server 112 and Email server 114, as shown in FIG. 1.
  • Information services 110 also include a database server 212, such as an Oracle or Sybase SQL server, and a file server 214, for example, providing an interface using the File Transfer Protocol (FTP) over the Internet, or a software module which provides an interface to a local file system.
  • Information services 110 also includes a live data feed 216, such as a stock ticker, and a transaction processing system 218, such as a banking system. In alternative embodiments, not all these information services are necessarily present, and additional information services and generic classes of services may also be included.
  • client platforms 120 include an HDML-based platform 220, such as a cellular telephone platform in which HDML based browsers are supported.
  • HDML-based platform 220 such as a cellular telephone platform in which HDML based browsers are supported.
  • a single cellular telephone infrastructure supports multiple types of devices, such as WML and HDML based telephones, and communication server 230 supports both protocols through a common communication path.
  • Client platforms 120 also include a PDQ-based platform, which supports communication with PDAs, or alternatively a PQA, C-HTML, or Web Clipping Application based platform.
  • Client platforms 120 also optionally includes a voice-based platform 226.
  • the client device is a voice telephone and the communication infrastructure includes a speech recognition server.
  • the speech recognition server is configured to provide access to information.
  • the speech recognition server uses the VoXML markup language that specifies a spoken dialog using a text-based specification.
  • Client platforms 120 also optionally includes a Web-TV platform 228.
  • the client device is a set-top coupled to a television receiver. In alternative embodiments, not all these client platforms are necessarily present, and additional information services may also be included.
  • information server 235 includes a number of information modules
  • An information module 335 each associated with a different one of the separate information services of information services 110.
  • An information module 335 interacts with a separate information service using the native interface for that information service. For instance, in the case of database server 212 (shown in FIG. 2), the associated information module 335 makes native database queries to that database server and accepts responses using that native format. In another instance, in the case of email server 114 (see FIG. 2), the associated information module 335 uses a standard Internet -,
  • Each information module 335 interacts with application server 240 through an information interface 342 using a protocol that, in general, depends on the generic class of the information service associated with that information module. For instance, in this embodiment in the case of database information modules, application server 240 sends text-based commands or queries to the information module, and receives in return two-dimensional text-based tables of responses. In another instance, in the case of an information module 335 for a marked-up information service, application server 230 sends text- based requests to the information module and receives nested tagged text-based content, in this embodiment following an XML-based syntax.
  • Media server 250 includes a number of media modules 350, each associated with a different separate client platform of client platforms 120 (FIG. 2). Each media module 350 communicates with application server 240 over a media interface 344 using a protocol that is independent of the particular client platform associated with that media module, and communicates with its associated separate client platform according to the requirements of that client platform.
  • the requirements of a particular platform include both the format of information that it receives from communication server 230, and data channel requirements. With regard to data channel requirements, some media modules 350 communicate with their associated client platforms over the Internet, while others may use leased telecommunication lines, or other communication links.
  • Some client platforms may have a maximum message or packet size for communication, which is different from that of other client platforms.
  • each media module 350 formats information it receives from application server 240 into a specific format required by its associated client platform, and possibly a specific format required by the destination personal device being serviced on that platform.
  • one media module 350 may handle WML-based requests from a cellular telephone platform, while another module may handle PQA-based requests from a PDA platform.
  • a client platform that supports WML-based telephones may support a variety of models of telephones, each with slightly different capabilities, such as the number of lines or pixels of display, and media module 350, in general, formats the information based on the capabilities of that personal device.
  • Media server 250 also includes an additional module, trigger module 355, which is used by information services or other external systems to initiate asynchronous events that are not specifically initiated from the client devices, for example to push notification data to client devices.
  • Trigger module 355 communicates with application server 240 through a trigger interface 346.
  • data modules 335, media modules 350, and trigger module 355 are implemented as procedures that are invoked by application server 240. That is, information interface 342, media interface 344, and trigger interface 346 include application-programming o
  • APIs application-specific integrated circuits
  • DLLs dynamically-loadable libraries
  • other implementation approaches are used, such as a distributed implementation in which communication between the application server and the information and media modules passes over a data network.
  • Application server 240 makes use of configuration data 310 that provides information for use by the application server to process requests received from client platforms 120 and to access particular of the information services 110.
  • the range of information, or "content,” that application server 240 can access from information servrces 110 can be viewed as a single
  • configuration data 310 includes a number of view specifications 315, each of which has a distinct name in the naming scheme
  • view specifications 315 use an XML-based syntax, which is described more fully below, that allows application server 240 to identify and communicate with particular information services to retrieve the information requested from the client device
  • application server 240 aggregates content from the various information services and provides a uniform interface to the client devices
  • Communication server 230 also hosts a configuration application 320 that supports an operator or administrator of the system m specify
  • a view specification 315 acts somewhat as a template for forming a response that application server 240 passes to media server 250.
  • the view specification also includes procedural and conditional elements, and instructions related to how particular information services should be accessed
  • a view specification uses an XML markup syntax, which includes nested fields each identified by a tag
  • a set of predefined tags define an abstraction of a layout, or more generally a structure, of a response to a request as well as define methods of obtaining content for the response from the information services
  • a PAGE tag defines the top level of a view . 9 .
  • a PAGE field optionally includes a parameter which is a hint to application server 240 whether these portions should be presented in sequence, or in "parallel" using a top-level menu to select the portions when presented on the client device.
  • a PAGE can optionally include a TITLE element, which is a text string that may be used as a heading for the view when presented on the client device, or when used for navigating, for example, in a history of views visited by the client device.
  • a PAGE can include any number of TEXT, TABLE, FORM, or NA VBAR elements, which define displayable elements of a view.
  • a TEXT element includes a text specification, typically of a character sequence to display on the client device.
  • a TABLE element represents data in columns, where the data can be statically defined in the view specification, or can be obtained from an information service.
  • a FORM element is similar to an HTML FORM, and is used to retrieve input from a client device, and to display results on the client device in a row and column arrangement.
  • a NA VBAR element is used for a "navigation bar," which is a kind of menu.
  • a NA VBAR element includes a set of sub-elements, NA VBARITEM elements, each of which logically defines an action to be performed if the user of a client device selects that item from the navigation bar.
  • a CALLBACK element is used to specify data that is passed to a client platform and later may be passed back to application server 240.
  • the data is passed back when the user of the client device chooses the associated item in the navigation bar.
  • the data that is passed back to the application server can identify another of the view specifications 315, and optionally provides parameter values to the application server.
  • a PAGE can include one or more QUEURYSOURCE fields.
  • a QUERYSOURCE field identifies a particular one of the separate information services.
  • the individual information services are numbered, and the QUERYSOUCE element identifies the source information service by its number.
  • the QUERYSOURCE element also identifies the generic class of the information service, and includes one or more QUER Y elements, which define specific requests to be made of the information service.
  • the request might be one or more SQL statements that are used to access information in the database.
  • the request might be data that would be provided to a Web server in an http POST command.
  • the request might be a complete URL, optionally including both a pathname and variables to be used by a script executing at the information service.
  • the QUERY element also includes an identifier that is used to reference the results of the query elsewhere on the page. In this way, a page can include multiple QUERYSOURCE elements that are used to access data in different information services, and each QUERYSOURCE element can include several QUERY elements, thereby allowing application server 240 to aggregate multiple pieces of information onto one page.
  • Various sub-elements of a PAGE can reference a result returned from an information source, identified by the name of the query that generated the result, as well as a specification of a portion of the result.
  • the reference to the portion o the result is by row and column.
  • the rows and columns may be computed based on the positions within the populated table.
  • the reference to the portion of the result makes use of the nested tags in the result.
  • the form of the reference to the result depends on the structure of results associated with the generic class of the information service.
  • a view specification 315 can also reference variables passed from media server 250 to application server 240.
  • the values of these variables may come from the client devices, for instance through callback mechanisms.
  • Another type of variable is generated at media module 350.
  • An example of such a variable is a "hint" that the media module passes to the application server to characterize the capabilities of the client device.
  • These hint variables may identify the data format handled by the client device, and specific capabilities of the client device. For instance, the hint variable may identify that the client device accepts WML based data and that it has 4 lines of display.
  • Application server 240 based on a view specification 315, makes use of these hint variable to generate information that is suitable for essentially direct translation to the format handled by the client device with requiring that media module 350 perform complex translation that depends on the specific content being passed to the client device.
  • View specification also includes elements that allow conditional processing of a request from a media module 350 based on data from an information service or on data provided as a hint by the media module.
  • a CONDITIONS element within a page defines a set of one or more named or numbered Boolean expressions that the application server evaluates. Other elements on the page are conditionally inserted based on the value of the named or numbered Boolean expressions.
  • Application server 240 creates a formatted page in response to a request from a media module 350 using the referenced view specification 315 and content it receives from information services 110 through information modules 335, and passes this formatted page to the media . j j .
  • the formatted data uses an XML-based specification in which the elements generally correspond to the displayable elements of the view specification. That is, the XML that is generated can include elements that correspond to text blocks, tables, forms, navigation bars, and these elements can include callbacks that are used for navigation.
  • Application server #0240 tailors the XML it generates to the specific characteristics and requirements of the client platform using the hints passed to it from the media module.
  • a request for information from a client device is handled in several steps.
  • a user enters a request on the client device, for example, using an embedded browser application on the device to make a selection from a menu of possible sources of information (step 410).
  • an embedded browser application may be stored in ROM.
  • This browser application makes use of a limited- capability display on the phone to allow the user to navigate among the types of information available to the user.
  • each of the information services 110 are not necessarily distinguishable to the user since media server 230 performs an aggregation of those services and translates particular requests from a client device to access appropriate of the information services.
  • the request is then transmitted over the communication infrastructure associated with the client device (step 412).
  • the request is transmitted over a wireless communication infrastructure to a gateway server that provides a link between the wireless infrastructure and a wired data network infrastructure that is external to the client platform.
  • this gateway server may reformat the request to conform to a particular application protocol (step 414).
  • the gateway server may translate between a communication protocol supported by embedded micro browser in a client cellular telephone and a standard application protocol such as WML or HDML.
  • a standard protocol such as
  • the gateway server may simply provide a data routing function to pass data between the wired and wireless communication infrastructures.
  • the request is then transmitted from the client platform to communication server 230 (step 416).
  • the requests from various client platforms are transmitted to communication server 230 over the Internet.
  • other communication links such as dedicated communication links to particular client platforms are used.
  • Communication server 230 receives the request and passes it to media server 250, which is hosted on the communication server.
  • media server 250 Within media server 250, the media module 350 that is associated with the type of client device that made the request handles the request.
  • Media module 350 interprets the request according to the application format used by the client platform (step 418). In particular, the media module determines an identifier of a view _ 12 _
  • Media module 350 sends this identifier to application server 240 (step 420).
  • media module 350 optionally sends "hints" to application server 240 that are parameter values which relate various constraints and capabilities of the client platform. For instance, on an embedded browser of a cellular telephone, only a limited number or menu choices may be easily managed.
  • Media module 350 can optionally send a hint that specifies the maximum number of lines that is requests to be provided from the application server module. These hints may depend on the particular client device making the request. For example, in a cellular telephone environment, different models of telephone may be supported, and these various models may have different display capabilities.
  • the hints sent by media module 350 to application server 240 may depend on the model of client device.
  • the hints that the media module provides the application server may also depend on the nature of the communication infrastructure. For example, in a low-speed wireless environment, the media module may identify a maximum desired data size based on the data link speed.
  • application server 240 receives the request from media module 350 of media server 250.
  • the format of this request is generic in that it does not depend on the particular client platform involved in the communication.
  • the format of the requested view, and the format of any hints provided by the media module to the application server are essentially independent of the client platform, other than as encoded by the hints supplied to the application server.
  • Application server 240 accesses a view specification 315 in configuration data 310 to process the request (step 424). For each of queries in the view, application server 240 accesses the corresponding information service to retrieve data according to the data query component of the view element, and then formats the retrieved data according to the display template of the view element (step 426).
  • the specification of the view may include procedural components that are executed by the application server, for example to make use of hints that were provided by the media module.
  • Application server 240 then passes the formatted information to the media module 350 that made the request (step 428). If a complete result is too large to send at one time to the client device, application server #0240 sends a partial result to the client device while making the remainder of the result accessible.
  • Application server 240 includes a CALLBACK element, which is displayed to the user as a "more" choice for example.
  • the CALLBACK element includes sufficient information for the application server to later generate the remainder of the result. For example, if a query returns more rows than can be displayed on a client device, the callback includes information that allows application server #0240 to later query the information service to return the next "chunk" of data. Using this callback approach, application server 240 does not necessarily have to maintain a state of an interaction with a client device since the callback data encodes enough information to continue the interaction.
  • Media module 350 receives the formatted information, and translates the formatted information to a specific format for the client platform from which the request was received (step 430). For example, the media module translates the common XML-based format used in this embodiment to a WML-based format supported by the client platform. Media module 350 may optionally perform other operations on the information. For example, in the communication infrastructure of the client platform limits the size of messages, the media module may split, or "chunk," the message into smaller pieces for transmission to the client device. Media server 250 sends the result to the gateway system at the client platform (step 432) and the gateway system forward the result to the client device (step 434).
  • a client device requests information and that request is sent to the communication server and a response is sent back in a "pull" communication model.
  • Certain client platforms also (or exclusively) support a "push" communication model in which information is sent from information services to client devices without being specifically requested.
  • An example of such a system is a paging system, which may in fact not support any communication from the client device to the communication server.
  • an information service, or some other external system passes a signal to trigger module 355 in media server 250 (see FIG. 3).
  • the trigger module generates a request that it passes to application server 240 in much the same way that a media module 350 passes a request to the application server.
  • an external messaging service would pass a signal to trigger module 355. That signal identifies the destination client device, which directly o indirectly identifies the media module 350 and client platform in addition to the specific device, and identifies a view specification and optional parameters to request on behalf of the client device.
  • Application server 240 accepts the request through its trigger interface 346 and processes the request in much the same way that it processes requests from media modules 350. In particular, processing the request may result in accessing one or more information services through information server 235.
  • the request is a "pull" from a client device, while from the point of view of the client platform, the resulting response is an unsolicited "push" of data.
  • application server 240 has created the formatted XML in response to the request, it passes the response to the appropriate media module 350, which as identified using the data received from trigger module 355, and the media module passes the request after reformatting to the client platform.
  • communication server 230 can include a timer that signals trigger module 355, for example, periodically.
  • signals can be used to poll information services and if necessary push content to particular client devices.
  • communication servers can be arranged in a cascaded manner in which a communication server 230A serves as one of the information services HOB for a second communication server 230B.
  • Communication between communication server 230A and communication server 230B use the common XML-based format that is used to communicate internally between application server 240 and media server 250.
  • the two levels of aggregation of information services may be performed.
  • communication server 230B may be administered by a particular company and used for access to its internal information services.
  • general information that may not be specific to the company is provided through communication server 230A, which, for example, is administered by a service provider and provided on a subscription basis to the company.
  • the media module 350 at communication server 230A that communicates with communication server 230B performs a limited amount of processing on the formatted data it receives from the application server, with the majority of the translation into a device specific format being performed at communication server 230B.
  • communication server 230A is part of its information services HOB, while from the point of view of communication server 230A, communication server 230B is part of its client platforms 120A.
  • application server 240 includes a cache that it may use to avoid needing to perform queries through information modules 335 to the information services. In one such embodiment, the lifetime of a cache response is specified in a view specification 315.
  • a QUERY element identifies whether the result should be cached, and also identifies the lifetime that the cached result may be reused.
  • the information service itself does not necessarily have to identify a lifetime for the cached result, although in alternative embodiments, it may do so as well as or instead of specifying a lifetime in the view specification.
  • media modules 350 may also include caches that allow them to reduce the number of requests that must be made of application server 240.
  • the embodiments described above refer to a single communication server 230 that is coupled between information services 110 and client platforms 120.
  • communication server 230 is stateless. That is, communication server 230 does not necessarily keep information related to an interaction with a particular client device.
  • the single communication server 230 is replaced with a bank of multiple essentially identical communication servers, and a load balancing mechanism passes requests from client platforms to selected communication servers. In order to improve performance of caches, _ 15 _
  • repeated requests from a particular client device or a particular client platform may be steered preferentially to the same communication server, although such steering is not essential.
  • communication server 230 uses a user management information service to store session-related information about individual users of client devices uses.
  • This user management information service has several uses, including, holding server "cookies" and maintaining authentication information for users.
  • Certain information services operate under the assumption that a client of that information service can maintain a significant amount of state information, thereby allowing the information service itself to operate in a relatively stateless manner.
  • Web- based servers often rely on setting "cookie" data in a client to store information.
  • a typical application of cookies is to store a shopping cart of items for an on-line merchant Web site.
  • passing the cookie data back and forth to a client device may be prohibitive due to the amount of data that must be transferred, or the client may not have the capability to store cookie data or may have insufficient storage to store large amounts of cookie data.
  • cookie data is received by application server 240 from an information module 335, and rather than passing the cookie data to the media module, it stores the data in the user management information service.
  • the application service relies on a unique identifier of the client device to index the information it stores in the user management information service.
  • application server 240 essentially acts as a proxy for the client device for processing cookies.
  • the user management information service is used similarly for authentication data. For instance, certain information services may require a user to be authenticated before requests for that user will be processed.
  • temporary credentials may be generated by an information service, or internally in the application service, and stored in the user information management service. Then, these temporary credentials are provided to the information service on subsequent requests from that user, until those credentials have expired. Expiration can, for example, be based on a total elapsed time or on an elapsed period of inactivity from the client device.

Abstract

A system and method for coupling diverse client platforms and diverse information services without necessarily requiring separately configured modules to couple each combination of client platform and information service. Content from any of the information services is first converted into a common format and then translated into a format suitable for the target platform. The approach is applied to client platforms supporting wireless communication to personal devices such as cellular telephones and personal digital assistants, and to information services such as Internet-based servers, messaging servers, transactional systems, and live data feeds.

Description

,
CRO S S -MEDIA INFORMATION SERVER
Background
This invention relates to access to information over a variety of communication media. A variety of different communication infrastructures are available today over which users of personal client devices can access information from information services, such as from Internet-based server computers. These personal devices include, for example, cellular telephones, personal digital assistants (PDAs), and pagers. These devices use a variety of communication protocols to access data from the information sources. For example, some cellular telephones support data communication using the Wireless Application Protocol (WAP) and Wireless Markup Language (WML) to provide access to text-based information from the cellular telephones. Some handheld devices, such as the Palm VII computer made by Palm Inc., make use of a mobile radio communication infrastructure (SMR) and use a Palm Query Application (PQA) protocol to provide information access from the handheld device. Other devices use various other application protocols, such as the Handheld Device Markup Language (HDML) or specific versions of the extensible Markup Language (XML), to control how information is accessed and displayed, and use various communication protocols are used to pass information between the devices and information services. In the description that follows, the communication infrastructure for passing data to and from a personal device and the personal devices that make use of that infrastructure are referred to jointly as a client platform over which data is accessed.
Information services that are accessed from the personal devices generally use protocols that depend on the nature of the information services. For example, an electronic mail server may provide access to email using the Post Office Protocol (POP) application protocol using the Transport Control Protocol/Internet Protocol (TCP/IP) over the public Internet, while a World- Wide-Web (WWW) server may provide information using the Hyper-text Markup Language (HTML) and hyper-text transport protocol (http) using TCP/IP.
Referring to FIG. 1, an example of a prior approach to supporting various information services 110 and various client platforms 120 makes use of content translators 130 to couple the data sources to the client platforms. In the example shown in FIG. 1, information services 110 include a Web server 112 and an Email server 114. Client platforms 120 include a client computer 122, which executes software for interacting directly with both Web server 112 and Email server 114. Client platforms 120 also includes a WML-based platform 124 and an SMS- based platform 127. In this example, WML-based platform 124 includes a WAP infrastructure 127 for communicating with a WML device 128, such as a cellular telephone, over a wireless communication system over which data is passed using the WAP protocol. Only a single representative WML device 128 is shown in the figure, although it is understood that a client platform generally supports a large number of client devices. SMS-based platform 127 includes a paging infrastructure 128 and a representative SMS device 128. Content translators 130 include separate translation modules for coupling each of the information services 110 with the different of the client platforms 120 that do not directly support the protocols or formats of the information services. In this example, a Web-WML module 132 converts HTML-based content into WML based content while a separate Web-SMS module 134 converts HTML-based content to an SMS-format. One approach to this conversion is to configure the modules with data associated with particular Web pages that have been selected to be accessible from the client devices, and this data identifies the portions of the Web pages that should be translated into the target formats. For example, graphic components and long text sections may be ignored and only specific content may be extracted for translation into the target format. This approach to translating HTML pages is often referred to as "scraping" the pages to extract the desired content. If the layout of an HTML page changes, both the Web-WML and the Web-SMS modules may have to be reconfigured to accept the changed layout. Content translators 130 also include an email-WML module 136 and an email-SMS module 138 that provide translation services between email server 114 and WML-based platform 124 and SMS-based platform 127, respectively. Summary
In a general aspect, the invention provides a system and method for coupling diverse client platforms and diverse information services without necessarily requiring separately configured modules to couple each combination of client platform and information service. Content from any of the information services is first converted into a common format and then translated into a format suitable for the target platform.
In one aspect, in general, the invention is a method for communicating between information services and client devices. The method includes accepting a first request for information from a first of the client devices, which includes receiving a first identifier which identifies requested information. The method then includes forming a message encoding the requested information. Forming this message includes (a) accessing a specification of the requested information based on the first identifier, (b) identifying a first of the information services from the accessed specification, (c) accessing the information service to retrieve a part of the requested from said information service, and (d) formatting the requested information according to a common format that is independent of the client device from which the first request was accepted. The method then includes passing the requested information to the client _ 3 _
device, including translating the message from the common format into a format that is associated with the client device and that is different than the common format, and transmitting the translated message to the client device.
The method can include one or more of the following features: Accepting the first request, forming a message, and passing the requested information are repeated for requests from a number of the client devices, and passing the requested information to the client devices includes translating messages from the common format into a number of different formats each associated with different of the client devices.
The common format identifies layout elements, and the plurality of different formats associated with the client devices includes one or more markup formats.
The method further includes determining one or more parameter values associated with capabilities of the client device, and forming the message includes encoding the requested information using the parameter values to determine the content of the message.
Translating the message from the common format includes applying a translation procedure that is independent of the requested information.
Translating the message from the common format into the format associated with the client device includes translating from a first markup language to a second markup language.
The second markup language is WML, HDML, HTML, compact HTML, PQA, generic XML, or Avant.Go. In another aspect, in general, the invention is a system for communicating between a number of information services and a number of client platforms. The system includes an application server, which includes an interface to the information services, a storage coupled to the application server for holding configuration data, and a media server for communicating messages with the client platforms according to a number of message formats. The media server includes a number of modules each associated with a different one of the client platforms and including an interface to the client platform for communicating with the client platform according to one of said message formats. The system includes a communication path coupling the application server and the media server for passing information between the information services and the client platforms in a common format that is independent of which of the information services and client platforms are involved in the communication. The system can include one or more of the following features:
Each module of the media server includes a translator for converting messages from the common format to the message format for communicating with the client platform associated with said module. The system further includes an information server coupled between the application server and the information services. The information server includes a number of modules, each .4.
associated with a different one of the information services. A communication path couples the information server and the application server for passing information in a format that depends on a class of the information service involved in the communication. The information server thereby provides a generic interface for the application server for classes of the information services.
The system also includes a configuration application for providing the configuration data based on input from an operator of the system.
The system also includes a cache storage for holding information received from the information services. The invention includes on or more of the following advantages:
Multiple different types of client devices, each using a different message format, can be supported without having to specifically configure translators for each combination of information service and type of client device. Also, unlike many "scraping" approaches to format translation, translation from the common format to the format for a client device does not necessarily require configuration of the translator to be able to extract desired portions of particular messages, such as particular web pages, based on their location in the messages.
In versions of the system in which parameters associated with the capabilities of a client device are available while forming the message in the common format, that message can then be directly translated into the format for the client device without having to perform significant processing to match the message content with the capabilities of the client device. This simplifies the design of the format translators.
The invention enables easy addition of new information services or client platforms. For example, addition of a client platform does not have to address mapping multiple information services to that client platform since only mapping of the common format to that platform is required. Similarly, adding of modifying an information service does not require updating configurations for multiple client platforms.
Other features and advantages of the invention are apparent from the following description, and from the claims.
Description of Drawings FIG. 1 is a block diagram showing multiple information services coupled to multiple client platforms through content translators;
FIG. 2 is a block diagram showing multiple information services coupled to multiple client platforms through a media server according to the present invention; FIG. 3 is a block diagram of a communication server; FIG. 4 is a flowchart that illustrates processing of a client request; and FIG. 5 is a block diagram that illustrates a cascaded arrangement of communication servers.
Description
Referring to FIG. 2, according to this invention, a communication server 230 provides communication and data translation services to couple information services 110, which includes a number of separate information services, and client platforms 120, which includes a number of separate client platforms, each of which typically supports a large number of personal client devices. Communication server 230 is a programmable computer, or alternatively a system that includes a number of interconnected computers. A storage device 210, such as a magnetic disk, holds software that when executed on the communication server implements a number of interrelated software modules that provide the communication and data conversion services that couple the information services and the client platforms. Communication server 230 has communication links to information services 110 over a variety of communication channels, such as over the public Internet, over a private data network, or over a secure or dedicated communication link. Communication server 230 also has a number of communication links to client platforms 120.
Communication server 230 hosts three principal modules: an information server 235, which communicates with the various information services 110; a media server 250, which communicates with the various client platforms 120; and an application server 240, which passes information between the information server and the media server. The separate information services of information services 110 are grouped into a number of generic classes, such as database servers, file servers, messaging servers, and marked-up information servers. Communication between information server 235 and application server 240 does not necessarily depend on a particular information service which is involved in the communication, but rather, in general, depends on the generic class of the information service. Communication between application server 240 and media server 250 is largely independent of the particular information service or its generic class, and is independent of the particular client platform involved in the communication. In this embodiment, information is passed from application server 240 to media server 250 formatted ("marked-up") according to a specific instance of the extensible Markup Language (XML) in such a way that media server 250 does not, in general, have to deal with specific characteristics of the information services. Media server 250 provides information to application server 240 regarding the capabilities of the client platform, such as the size of the graphical display on a client device or a maximum data size that can be transferred over the communication infrastructure of the client platform to the client device, and application server 240 provides information to media server 250 in a format that the media server can process . 6
without having specific knowledge regarding a content-specific format or layout of the information.
In FIG. 2, a variety of separate information services of information services 110 are illustrated. Information server 235 is configured to interact with each of these services using interfaces that are native to those services and to interact with application server 240 according to the generic classes of those services. Information services 110 include Web server 112 and Email server 114, as shown in FIG. 1. Information services 110 also include a database server 212, such as an Oracle or Sybase SQL server, and a file server 214, for example, providing an interface using the File Transfer Protocol (FTP) over the Internet, or a software module which provides an interface to a local file system. Information services 110 also includes a live data feed 216, such as a stock ticker, and a transaction processing system 218, such as a banking system. In alternative embodiments, not all these information services are necessarily present, and additional information services and generic classes of services may also be included.
A variety of client platforms are also illustrated in FIG. 2. In addition to client computer 122, WML-based platform 124, and SMS-based platform 127, which were introduced in FIG. 1, client platforms 120 include an HDML-based platform 220, such as a cellular telephone platform in which HDML based browsers are supported. In some embodiments, a single cellular telephone infrastructure supports multiple types of devices, such as WML and HDML based telephones, and communication server 230 supports both protocols through a common communication path. Client platforms 120 also include a PDQ-based platform, which supports communication with PDAs, or alternatively a PQA, C-HTML, or Web Clipping Application based platform. Client platforms 120 also optionally includes a voice-based platform 226. In this platform, the client device is a voice telephone and the communication infrastructure includes a speech recognition server. The speech recognition server is configured to provide access to information. The speech recognition server uses the VoXML markup language that specifies a spoken dialog using a text-based specification. Client platforms 120 also optionally includes a Web-TV platform 228. In this platform, the client device is a set-top coupled to a television receiver. In alternative embodiments, not all these client platforms are necessarily present, and additional information services may also be included. Referring to FIG. 3, information server 235 includes a number of information modules
335, each associated with a different one of the separate information services of information services 110. An information module 335 interacts with a separate information service using the native interface for that information service. For instance, in the case of database server 212 (shown in FIG. 2), the associated information module 335 makes native database queries to that database server and accepts responses using that native format. In another instance, in the case of email server 114 (see FIG. 2), the associated information module 335 uses a standard Internet -,
protocols such as IMAP, POP, or SMTP. Each information module 335 interacts with application server 240 through an information interface 342 using a protocol that, in general, depends on the generic class of the information service associated with that information module. For instance, in this embodiment in the case of database information modules, application server 240 sends text-based commands or queries to the information module, and receives in return two-dimensional text-based tables of responses. In another instance, in the case of an information module 335 for a marked-up information service, application server 230 sends text- based requests to the information module and receives nested tagged text-based content, in this embodiment following an XML-based syntax. Media server 250 includes a number of media modules 350, each associated with a different separate client platform of client platforms 120 (FIG. 2). Each media module 350 communicates with application server 240 over a media interface 344 using a protocol that is independent of the particular client platform associated with that media module, and communicates with its associated separate client platform according to the requirements of that client platform. The requirements of a particular platform include both the format of information that it receives from communication server 230, and data channel requirements. With regard to data channel requirements, some media modules 350 communicate with their associated client platforms over the Internet, while others may use leased telecommunication lines, or other communication links. Some client platforms may have a maximum message or packet size for communication, which is different from that of other client platforms. With regard to data format requirements, each media module 350 formats information it receives from application server 240 into a specific format required by its associated client platform, and possibly a specific format required by the destination personal device being serviced on that platform. For example, one media module 350 may handle WML-based requests from a cellular telephone platform, while another module may handle PQA-based requests from a PDA platform. A client platform that supports WML-based telephones may support a variety of models of telephones, each with slightly different capabilities, such as the number of lines or pixels of display, and media module 350, in general, formats the information based on the capabilities of that personal device. Media server 250 also includes an additional module, trigger module 355, which is used by information services or other external systems to initiate asynchronous events that are not specifically initiated from the client devices, for example to push notification data to client devices. Trigger module 355 communicates with application server 240 through a trigger interface 346.
In this embodiment, data modules 335, media modules 350, and trigger module 355 are implemented as procedures that are invoked by application server 240. That is, information interface 342, media interface 344, and trigger interface 346 include application-programming o
interfaces (APIs) that define how information is passed between the application server and those modules Some of these procedures are implemented as dynamically-loadable libraries (DLLs), allowing additional modules to be added without necessarily changing the remaining portions of the system. In alternative embodiments, other implementation approaches are used, such as a distributed implementation in which communication between the application server and the information and media modules passes over a data network.
Application server 240 makes use of configuration data 310 that provides information for use by the application server to process requests received from client platforms 120 and to access particular of the information services 110. The range of information, or "content," that application server 240 can access from information servrces 110 can be viewed as a single
"address space" of content When a client device sends a request to access information through communication server 230, it sends an identifier of that information The identifier can be viewed as an address m the address space that is handled by application server 240, which is hosted on the communication server In this embodiment, these addresses take the form of text specifications of locations of information in a hierarchical naming scheme, in an approach that is similar to that used for Uniform Resource Locators (URLs) for Web-based content Within this hierarchical naming scheme, configuration data 310 includes a number of view specifications 315, each of which has a distinct name in the naming scheme In this embodiment view specifications 315 use an XML-based syntax, which is described more fully below, that allows application server 240 to identify and communicate with particular information services to retrieve the information requested from the client device Using configuration data 310, application server 240 aggregates content from the various information services and provides a uniform interface to the client devices Communication server 230 also hosts a configuration application 320 that supports an operator or administrator of the system m specifying configuration data 310. Alternatively, configuration application 320 can be hosted on another computer that communicates with the communication server.
Each request from a client platform, which is passed by the associated media module 335 to application server 240, is mapped by application server 240 to one of the view specifications 315. A view specification 315 acts somewhat as a template for forming a response that application server 240 passes to media server 250. In this embodiment, the view specification also includes procedural and conditional elements, and instructions related to how particular information services should be accessed
A view specification uses an XML markup syntax, which includes nested fields each identified by a tag A set of predefined tags define an abstraction of a layout, or more generally a structure, of a response to a request as well as define methods of obtaining content for the response from the information services A PAGE tag defines the top level of a view . 9 .
specification. Note that although the view specification refers to a "page," when presented on a client device, the presentation may span multiple screens. An example would be a page that includes a menu of choices, where the number of choices is greater than can be displayed at one time on the display of the client device. Another example is a presentation that includes multiple portions, which are often referred to as "frames." A PAGE field optionally includes a parameter which is a hint to application server 240 whether these portions should be presented in sequence, or in "parallel" using a top-level menu to select the portions when presented on the client device. A PAGE can optionally include a TITLE element, which is a text string that may be used as a heading for the view when presented on the client device, or when used for navigating, for example, in a history of views visited by the client device.
A PAGE can include any number of TEXT, TABLE, FORM, or NA VBAR elements, which define displayable elements of a view. A TEXT element includes a text specification, typically of a character sequence to display on the client device. A TABLE element represents data in columns, where the data can be statically defined in the view specification, or can be obtained from an information service. A FORM element is similar to an HTML FORM, and is used to retrieve input from a client device, and to display results on the client device in a row and column arrangement. A NA VBAR element is used for a "navigation bar," which is a kind of menu. A NA VBAR element includes a set of sub-elements, NA VBARITEM elements, each of which logically defines an action to be performed if the user of a client device selects that item from the navigation bar.
Within certain elements, including within NA VBARITEM and FORM elements, a CALLBACK element is used to specify data that is passed to a client platform and later may be passed back to application server 240. In the case of a CALLBACK element in a navigation bar, the data is passed back when the user of the client device chooses the associated item in the navigation bar. The data that is passed back to the application server can identify another of the view specifications 315, and optionally provides parameter values to the application server.
To support access to information services 110, a PAGE can include one or more QUEURYSOURCE fields. A QUERYSOURCE field identifies a particular one of the separate information services. In this embodiment, the individual information services are numbered, and the QUERYSOUCE element identifies the source information service by its number. The QUERYSOURCE element also identifies the generic class of the information service, and includes one or more QUER Y elements, which define specific requests to be made of the information service. For example, in the case of a database class of information service, the request might be one or more SQL statements that are used to access information in the database. In another example, in the case of an HTML-based information service, the request might be data that would be provided to a Web server in an http POST command. In the case of an XML- _ 10 _
based information service, the request might be a complete URL, optionally including both a pathname and variables to be used by a script executing at the information service. The QUERY element also includes an identifier that is used to reference the results of the query elsewhere on the page. In this way, a page can include multiple QUERYSOURCE elements that are used to access data in different information services, and each QUERYSOURCE element can include several QUERY elements, thereby allowing application server 240 to aggregate multiple pieces of information onto one page.
Various sub-elements of a PAGE can reference a result returned from an information source, identified by the name of the query that generated the result, as well as a specification of a portion of the result. In the case of a database information service, the reference to the portion o the result is by row and column. Also, in populating a table, the rows and columns may be computed based on the positions within the populated table. In a markup based information service, the reference to the portion of the result makes use of the nested tags in the result. In general, the form of the reference to the result depends on the structure of results associated with the generic class of the information service.
In addition to referencing content obtained from information services 110, a view specification 315 can also reference variables passed from media server 250 to application server 240. The values of these variables may come from the client devices, for instance through callback mechanisms. Another type of variable is generated at media module 350. An example of such a variable is a "hint" that the media module passes to the application server to characterize the capabilities of the client device. These hint variables may identify the data format handled by the client device, and specific capabilities of the client device. For instance, the hint variable may identify that the client device accepts WML based data and that it has 4 lines of display. Application server 240, based on a view specification 315, makes use of these hint variable to generate information that is suitable for essentially direct translation to the format handled by the client device with requiring that media module 350 perform complex translation that depends on the specific content being passed to the client device.
View specification also includes elements that allow conditional processing of a request from a media module 350 based on data from an information service or on data provided as a hint by the media module. A CONDITIONS element within a page defines a set of one or more named or numbered Boolean expressions that the application server evaluates. Other elements on the page are conditionally inserted based on the value of the named or numbered Boolean expressions.
Application server 240 creates a formatted page in response to a request from a media module 350 using the referenced view specification 315 and content it receives from information services 110 through information modules 335, and passes this formatted page to the media . j j .
module. The formatted data uses an XML-based specification in which the elements generally correspond to the displayable elements of the view specification. That is, the XML that is generated can include elements that correspond to text blocks, tables, forms, navigation bars, and these elements can include callbacks that are used for navigation. Application server #0240 tailors the XML it generates to the specific characteristics and requirements of the client platform using the hints passed to it from the media module.
Referring to the flowchart shown in FIG. 4, a request for information from a client device is handled in several steps. First, a user enters a request on the client device, for example, using an embedded browser application on the device to make a selection from a menu of possible sources of information (step 410). For instance, in a cellular telephone, an embedded "micro" browser application may be stored in ROM. This browser application makes use of a limited- capability display on the phone to allow the user to navigate among the types of information available to the user. Note that each of the information services 110 are not necessarily distinguishable to the user since media server 230 performs an aggregation of those services and translates particular requests from a client device to access appropriate of the information services.
The request is then transmitted over the communication infrastructure associated with the client device (step 412). In the case of a wireless device such as a cellular telephone, the request is transmitted over a wireless communication infrastructure to a gateway server that provides a link between the wireless infrastructure and a wired data network infrastructure that is external to the client platform. Depending on the client platform, this gateway server may reformat the request to conform to a particular application protocol (step 414). For example, the gateway server may translate between a communication protocol supported by embedded micro browser in a client cellular telephone and a standard application protocol such as WML or HDML. In other client platforms in which the client device itself supports a standard protocol, such as
HTML, the gateway server may simply provide a data routing function to pass data between the wired and wireless communication infrastructures.
The request is then transmitted from the client platform to communication server 230 (step 416). In this embodiment, the requests from various client platforms are transmitted to communication server 230 over the Internet. In alternative embodiments, other communication links, such as dedicated communication links to particular client platforms are used. Communication server 230 receives the request and passes it to media server 250, which is hosted on the communication server. Within media server 250, the media module 350 that is associated with the type of client device that made the request handles the request. Media module 350 interprets the request according to the application format used by the client platform (step 418). In particular, the media module determines an identifier of a view _ 12 _
specification 315 for generating the information being requested from the client device. Media module 350 sends this identifier to application server 240 (step 420). In addition to sending the identifier, depending on the particular client platform, media module 350 optionally sends "hints" to application server 240 that are parameter values which relate various constraints and capabilities of the client platform. For instance, on an embedded browser of a cellular telephone, only a limited number or menu choices may be easily managed. Media module 350 can optionally send a hint that specifies the maximum number of lines that is requests to be provided from the application server module. These hints may depend on the particular client device making the request. For example, in a cellular telephone environment, different models of telephone may be supported, and these various models may have different display capabilities. To the extent that information related to which model of client device is involved, the hints sent by media module 350 to application server 240 may depend on the model of client device. The hints that the media module provides the application server may also depend on the nature of the communication infrastructure. For example, in a low-speed wireless environment, the media module may identify a maximum desired data size based on the data link speed.
Next, application server 240 receives the request from media module 350 of media server 250. Note that the format of this request is generic in that it does not depend on the particular client platform involved in the communication. The format of the requested view, and the format of any hints provided by the media module to the application server are essentially independent of the client platform, other than as encoded by the hints supplied to the application server.
Application server 240 accesses a view specification 315 in configuration data 310 to process the request (step 424). For each of queries in the view, application server 240 accesses the corresponding information service to retrieve data according to the data query component of the view element, and then formats the retrieved data according to the display template of the view element (step 426). The specification of the view may include procedural components that are executed by the application server, for example to make use of hints that were provided by the media module.
Application server 240 then passes the formatted information to the media module 350 that made the request (step 428). If a complete result is too large to send at one time to the client device, application server #0240 sends a partial result to the client device while making the remainder of the result accessible. Application server 240 includes a CALLBACK element, which is displayed to the user as a "more" choice for example. The CALLBACK element includes sufficient information for the application server to later generate the remainder of the result. For example, if a query returns more rows than can be displayed on a client device, the callback includes information that allows application server #0240 to later query the information service to return the next "chunk" of data. Using this callback approach, application server 240 does not necessarily have to maintain a state of an interaction with a client device since the callback data encodes enough information to continue the interaction.
Media module 350 receives the formatted information, and translates the formatted information to a specific format for the client platform from which the request was received (step 430). For example, the media module translates the common XML-based format used in this embodiment to a WML-based format supported by the client platform. Media module 350 may optionally perform other operations on the information. For example, in the communication infrastructure of the client platform limits the size of messages, the media module may split, or "chunk," the message into smaller pieces for transmission to the client device. Media server 250 sends the result to the gateway system at the client platform (step 432) and the gateway system forward the result to the client device (step 434).
In the description above, a client device requests information and that request is sent to the communication server and a response is sent back in a "pull" communication model. Certain client platforms also (or exclusively) support a "push" communication model in which information is sent from information services to client devices without being specifically requested. An example of such a system is a paging system, which may in fact not support any communication from the client device to the communication server. In this push model, an information service, or some other external system passes a signal to trigger module 355 in media server 250 (see FIG. 3). The trigger module generates a request that it passes to application server 240 in much the same way that a media module 350 passes a request to the application server. For example, in the case of a notification that a particular user has received a message, an external messaging service would pass a signal to trigger module 355. That signal identifies the destination client device, which directly o indirectly identifies the media module 350 and client platform in addition to the specific device, and identifies a view specification and optional parameters to request on behalf of the client device. Application server 240 accepts the request through its trigger interface 346 and processes the request in much the same way that it processes requests from media modules 350. In particular, processing the request may result in accessing one or more information services through information server 235. From the point of view of application sever 240 and information server 235, the request is a "pull" from a client device, while from the point of view of the client platform, the resulting response is an unsolicited "push" of data. When application server 240 has created the formatted XML in response to the request, it passes the response to the appropriate media module 350, which as identified using the data received from trigger module 355, and the media module passes the request after reformatting to the client platform. In alternative embodiments, communication server 230 can include a timer that signals trigger module 355, for example, periodically. These _ 14 _
signals can be used to poll information services and if necessary push content to particular client devices.
Referring to FIG. 5, communication servers can be arranged in a cascaded manner in which a communication server 230A serves as one of the information services HOB for a second communication server 230B. Communication between communication server 230A and communication server 230B use the common XML-based format that is used to communicate internally between application server 240 and media server 250. In this arrangement, the two levels of aggregation of information services may be performed. For instance, communication server 230B may be administered by a particular company and used for access to its internal information services. In addition, general information that may not be specific to the company is provided through communication server 230A, which, for example, is administered by a service provider and provided on a subscription basis to the company. The media module 350 at communication server 230A that communicates with communication server 230B performs a limited amount of processing on the formatted data it receives from the application server, with the majority of the translation into a device specific format being performed at communication server 230B. Note that from the point of view of communication server 230B, communication server 230A is part of its information services HOB, while from the point of view of communication server 230A, communication server 230B is part of its client platforms 120A. In alternative embodiments of the system, application server 240 includes a cache that it may use to avoid needing to perform queries through information modules 335 to the information services. In one such embodiment, the lifetime of a cache response is specified in a view specification 315. That is, a QUERY element identifies whether the result should be cached, and also identifies the lifetime that the cached result may be reused. In this way, the information service itself does not necessarily have to identify a lifetime for the cached result, although in alternative embodiments, it may do so as well as or instead of specifying a lifetime in the view specification. In other alternative embodiments, media modules 350 may also include caches that allow them to reduce the number of requests that must be made of application server 240.
The embodiments described above refer to a single communication server 230 that is coupled between information services 110 and client platforms 120. As described above, communication server 230 is stateless. That is, communication server 230 does not necessarily keep information related to an interaction with a particular client device. In an alternative embodiment, the single communication server 230 is replaced with a bank of multiple essentially identical communication servers, and a load balancing mechanism passes requests from client platforms to selected communication servers. In order to improve performance of caches, _ 15 _
repeated requests from a particular client device or a particular client platform may be steered preferentially to the same communication server, although such steering is not essential.
In another alternative embodiment, communication server 230 uses a user management information service to store session-related information about individual users of client devices uses. This user management information service has several uses, including, holding server "cookies" and maintaining authentication information for users.
Certain information services operate under the assumption that a client of that information service can maintain a significant amount of state information, thereby allowing the information service itself to operate in a relatively stateless manner. For example, today, Web- based servers often rely on setting "cookie" data in a client to store information. A typical application of cookies is to store a shopping cart of items for an on-line merchant Web site. However, passing the cookie data back and forth to a client device may be prohibitive due to the amount of data that must be transferred, or the client may not have the capability to store cookie data or may have insufficient storage to store large amounts of cookie data. In this approach, cookie data is received by application server 240 from an information module 335, and rather than passing the cookie data to the media module, it stores the data in the user management information service. The application service relies on a unique identifier of the client device to index the information it stores in the user management information service. In this way, application server 240 essentially acts as a proxy for the client device for processing cookies. The user management information service is used similarly for authentication data. For instance, certain information services may require a user to be authenticated before requests for that user will be processed. In order to avoid having a user repeatedly have to re-authenticate himself, temporary credentials may be generated by an information service, or internally in the application service, and stored in the user information management service. Then, these temporary credentials are provided to the information service on subsequent requests from that user, until those credentials have expired. Expiration can, for example, be based on a total elapsed time or on an elapsed period of inactivity from the client device.
It is to be understood that the foregoing description is intended to illustrate and not to limit the scope of the invention, which is defined by the scope of the appended claims. Other embodiments are within the scope of the following claims.

Claims

_ 16 _What is claimed is:
1. A method for communicating between information services and client devices comprising: accepting a first request for information from a first of the client devices, including receiving a first identifier which identifies requested information; forming a message encoding the requested information, including
(a) accessing a specification of the requested information based on the first identifier,
(b) identifying a first of the information services from the accessed specification, (c) accessing said information service to retrieve a part of the requested from said information service, and
(d) formatting the requested information according to a common format that is independent of the client devices from which the first request was accepted; and passing the requested information to said client device, including translating the message from the common format into a format that is associated with said client device and that is different than the common format, and transmitting said translated message to said client device.
2. The method of claim 1 wherein accepting the first request, forming a message, and passing the requested information are repeated for requests from a plurality of the client devices, and wherein passing the requested information to the client devices includes translating messages from the common format into a plurality of different formats each associated with different of said client devices.
3. The method of claim 2 wherein the common format identifies layout elements, and the plurality of different formats associated with the client devices includes one or more markup formats.
4. The method of claim 1 further comprising determining one or more parameter values associated with capabilities of said client device, and wherein forming the message includes encoding the requested information includes using said parameter values to determine the content of said message.
5. The method of claim 4 wherein translating the message from the common format includes applying a translation procedure that is independent of the requested information.
6. The method of claim 1 wherein translating the message from the common format into the format associated with the client device includes translating from a first markup language to a second markup language.
7. The method of claim 6 wherein the second markup language is WML.
8. The method of claim 6 wherein the second markup language is HDML.
9. The method of claim 6 wherein the second markup language comprises XML, HTML, compact HTML, PQA, or Avant.Go.
10. Software stored on computer readable media comprising instructions for causing a computer system to perform functions of: accepting a first request for information from a first of the client devices, including receiving a first identifier which identifies requested information; forming a message encoding the requested information, including (a) accessing a specification of the requested information based on the first identifier,
(b) identifying a first of the information services from the accessed specification,
(c) accessing said information service to retrieve a part of the requested from said information service, and (d) formatting the requested information according to a common format that is independent of the client devices from which the first request was accepted; and passing the requested information to said client device, including translating the message from the common format into a format that is associated with said client device and that is different than the common format, and transmitting said translated message to said client device.
11. A system for communicating between a plurality of information services and a plurality of client platforms comprising: an application server, including an interface to the plurality of information services; a storage coupled to the application server for holding configuration data; a media server for communicating messages with the client platforms according to a plurality of message format, including a plurality of modules each associated with a different one of the plurality of client platforms and including an interface to said client platform for communicating with the said client platform according to one of said message formats; and a communication path coupling the application server and the media server for passing information between the information services and the client platforms in a common format that is independent of which of the information services and client platforms are involved in the communication.
12. The system of claim of claim 11 wherein each module of the media server includes a translator for converting messages from the common format to the message format for communicating with the client platform associated with said module.
13. The system of claim of claim 11 further comprising: an information server coupled between the application server and the information services, wherein the information server includes a plurality of modules, each associated with a different one of the information services; and a communication path coupling the information server and the application server for passing information in a format that depends on a class of the information service involved in the communication, whereby the information server provides a generic interface for the application server for classes of the information services.
14. The system of claim 1 1 further comprising a configuration application for providing the configuration data based on input from an operator of the system.
15. The system of claim 11 wherein the application server further includes a cache storage for holding information received from the information services.
PCT/US2000/018443 1999-07-01 2000-06-30 Cross-media information server WO2001003011A2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU59149/00A AU5914900A (en) 1999-07-01 2000-06-30 Cross-media information server

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US14199399P 1999-07-01 1999-07-01
US60/141,993 1999-07-01
US18560200P 2000-02-28 2000-02-28
US60/185,602 2000-02-28

Publications (2)

Publication Number Publication Date
WO2001003011A2 true WO2001003011A2 (en) 2001-01-11
WO2001003011A3 WO2001003011A3 (en) 2003-01-09

Family

ID=26839650

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2000/018443 WO2001003011A2 (en) 1999-07-01 2000-06-30 Cross-media information server

Country Status (2)

Country Link
AU (1) AU5914900A (en)
WO (1) WO2001003011A2 (en)

Cited By (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001031885A2 (en) * 1999-10-22 2001-05-03 Nomadix, Inc. Gateway device having an xml interface and associated method
WO2001076174A2 (en) * 2000-04-04 2001-10-11 Dimon-Hugbunadarhus Ehf. A system for wireless communication of data between a web server and a device using a wireless application protocol
EP1152600A2 (en) * 2000-04-18 2001-11-07 Sagem SA Television decoder and internet gateway and corresponding internet site
WO2002023909A1 (en) * 2000-09-11 2002-03-21 Mediabricks Ab Method and device for providing/receiving media content over a digital network
WO2002032070A2 (en) * 2000-10-11 2002-04-18 Dimon-Hugbunadarhus Ehf. A method for communicating between a transmitting device and a receiving device
EP1227646A1 (en) * 2001-01-24 2002-07-31 Realtime A/S Service platform and a telecommunication system, a method and use thereof
WO2002063471A2 (en) * 2001-02-02 2002-08-15 Opentv, Inc. A method and apparatus for the compilation of an interpretative language for interactive television
WO2002065682A2 (en) * 2001-02-12 2002-08-22 Siemens Information And Communication Mobile Llc Method and system for providing data applications for a mobile device
WO2002065278A2 (en) * 2001-02-12 2002-08-22 Lto Limited A presentation server which enables a client device to run a network based application
EP1241856A1 (en) * 2001-03-12 2002-09-18 März, Christian Method and device for wireless communications
WO2002075597A2 (en) * 2001-03-15 2002-09-26 Federation Web Inc. A method and system for providing a virtual unified product content repository
EP1271360A2 (en) * 2001-06-27 2003-01-02 Openwave Systems Inc. Universal data mapping system
DE10146878A1 (en) * 2001-09-24 2003-04-24 T Mobile Deutschland Gmbh Method for saving short messages
GB2382161A (en) * 2001-08-22 2003-05-21 Alexander Ujah Job vacancy data conversion
WO2004059905A1 (en) * 2002-12-30 2004-07-15 Bcp S/A Integrating, generating and managing services in a telecommunication network
EP1475975A1 (en) * 2003-05-08 2004-11-10 TeliaSonera Finland Oyj Method and system for transmitting messages in various formats
GB2405062A (en) * 2003-06-13 2005-02-16 Brian Bolam Protocol conversion via intermediate protocol with message storage and verification
US6912593B2 (en) * 2000-03-10 2005-06-28 Liming Network Systems Co., Ltd. Information switching platform
US7024209B1 (en) * 2000-12-20 2006-04-04 Cisco Technology, Inc. Unified messaging system configured for management of short message service-type messages
EP1645998A1 (en) * 2004-09-17 2006-04-12 Sap Ag Common transport logistics for software and content
US7143347B2 (en) 2001-02-02 2006-11-28 Opentv, Inc. Method and apparatus for reformatting of content for display on interactive television
EP1708470A3 (en) * 2001-10-03 2006-12-27 Accenture Global Services GmbH Multi-modal callback system
US7233655B2 (en) 2001-10-03 2007-06-19 Accenture Global Services Gmbh Multi-modal callback
GB2446654A (en) * 2007-02-16 2008-08-20 Radixs Pte Ltd Communications platform enabling multiple formats
US7441016B2 (en) 2001-10-03 2008-10-21 Accenture Global Services Gmbh Service authorizer
US7490346B2 (en) 2001-02-02 2009-02-10 Opentv, Inc. Digital television application protocol for interactive television
US7558257B2 (en) * 2000-03-10 2009-07-07 Liming Network Systems Co., Ltd. Information switch
US7613792B2 (en) 2000-09-11 2009-11-03 Handmark, Inc. Method for dynamic caching
US7689716B2 (en) 1998-12-08 2010-03-30 Nomadix, Inc. Systems and methods for providing dynamic network authorization, authentication and accounting
US7743344B2 (en) 2001-05-23 2010-06-22 Handmark, Inc. Method for optimizing utilization of client capacity
EP2251801A3 (en) * 2009-05-13 2010-12-29 Huawei Technologies Co., Ltd. Method, terminal and server for transcoding data
EP2367334A1 (en) * 2001-10-03 2011-09-21 Accenture Global Services GmbH Service authorizer
US8266266B2 (en) 1998-12-08 2012-09-11 Nomadix, Inc. Systems and methods for providing dynamic network authorization, authentication and accounting
US8527421B2 (en) 2001-10-03 2013-09-03 Accenture Global Services Limited Virtual customer database
US8713641B1 (en) 1998-12-08 2014-04-29 Nomadix, Inc. Systems and methods for authorizing, authenticating and accounting users having transparent computer access to a network using a gateway device
US8874677B2 (en) 2005-08-22 2014-10-28 Triplay Communications Ltd. Messaging system and method
US9369330B2 (en) 2001-02-02 2016-06-14 Opentv, Inc. Service gateway for interactive television
US9436749B2 (en) 2001-11-16 2016-09-06 At&T Intellectual Property I, L.P. System for the centralized storage of wireless customer information

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5701423A (en) * 1992-04-10 1997-12-23 Puma Technology, Inc. Method for mapping, translating, and dynamically reconciling data between disparate computer platforms
US5715397A (en) * 1994-12-02 1998-02-03 Autoentry Online, Inc. System and method for data transfer and processing having intelligent selection of processing routing and advanced routing features

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5701423A (en) * 1992-04-10 1997-12-23 Puma Technology, Inc. Method for mapping, translating, and dynamically reconciling data between disparate computer platforms
US5715397A (en) * 1994-12-02 1998-02-03 Autoentry Online, Inc. System and method for data transfer and processing having intelligent selection of processing routing and advanced routing features

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ABRAMS M ET AL: "UIML: an appliance-independent XML user interface language" COMPUTER NETWORKS, ELSEVIER SCIENCE PUBLISHERS B.V., AMSTERDAM, NL, vol. 31, no. 11-16, 17 May 1999 (1999-05-17), pages 1695-1708, XP004304584 ISSN: 1389-1286 *

Cited By (71)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7689716B2 (en) 1998-12-08 2010-03-30 Nomadix, Inc. Systems and methods for providing dynamic network authorization, authentication and accounting
US8713641B1 (en) 1998-12-08 2014-04-29 Nomadix, Inc. Systems and methods for authorizing, authenticating and accounting users having transparent computer access to a network using a gateway device
US10341243B2 (en) 1998-12-08 2019-07-02 Nomadix, Inc. Systems and methods for providing content and services on a network system
US10110436B2 (en) 1998-12-08 2018-10-23 Nomadix, Inc. Systems and methods for providing content and services on a network system
US8266266B2 (en) 1998-12-08 2012-09-11 Nomadix, Inc. Systems and methods for providing dynamic network authorization, authentication and accounting
US8190708B1 (en) 1999-10-22 2012-05-29 Nomadix, Inc. Gateway device having an XML interface and associated method
WO2001031885A2 (en) * 1999-10-22 2001-05-03 Nomadix, Inc. Gateway device having an xml interface and associated method
WO2001031885A3 (en) * 1999-10-22 2002-01-17 Nomadix Inc Gateway device having an xml interface and associated method
US7558257B2 (en) * 2000-03-10 2009-07-07 Liming Network Systems Co., Ltd. Information switch
US6912593B2 (en) * 2000-03-10 2005-06-28 Liming Network Systems Co., Ltd. Information switching platform
WO2001076174A3 (en) * 2000-04-04 2002-01-17 Dimon Hugbunadarhus Ehf A system for wireless communication of data between a web server and a device using a wireless application protocol
WO2001076174A2 (en) * 2000-04-04 2001-10-11 Dimon-Hugbunadarhus Ehf. A system for wireless communication of data between a web server and a device using a wireless application protocol
EP1152600A2 (en) * 2000-04-18 2001-11-07 Sagem SA Television decoder and internet gateway and corresponding internet site
EP1152600A3 (en) * 2000-04-18 2004-04-14 Sagem SA Television decoder and internet gateway and corresponding internet site
WO2002023909A1 (en) * 2000-09-11 2002-03-21 Mediabricks Ab Method and device for providing/receiving media content over a digital network
US7613792B2 (en) 2000-09-11 2009-11-03 Handmark, Inc. Method for dynamic caching
US7424708B2 (en) 2000-09-11 2008-09-09 Handmark, Inc. Method and device for providing/receiving media content over digital network
WO2002032070A2 (en) * 2000-10-11 2002-04-18 Dimon-Hugbunadarhus Ehf. A method for communicating between a transmitting device and a receiving device
WO2002032070A3 (en) * 2000-10-11 2002-10-31 Dimon Hugbunadarhus Ehf A method for communicating between a transmitting device and a receiving device
US7269432B2 (en) 2000-12-20 2007-09-11 Cisco Technology, Inc. Unified messaging system configured for management of short message service-type messages
US7024209B1 (en) * 2000-12-20 2006-04-04 Cisco Technology, Inc. Unified messaging system configured for management of short message service-type messages
EP1227646A1 (en) * 2001-01-24 2002-07-31 Realtime A/S Service platform and a telecommunication system, a method and use thereof
WO2002060167A1 (en) * 2001-01-24 2002-08-01 Realtime A/S Service platform and a telecommunication system, a method and use thereof
US7143347B2 (en) 2001-02-02 2006-11-28 Opentv, Inc. Method and apparatus for reformatting of content for display on interactive television
WO2002063471A3 (en) * 2001-02-02 2003-06-26 Opentv Inc A method and apparatus for the compilation of an interpretative language for interactive television
US7065752B2 (en) 2001-02-02 2006-06-20 Opentv, Inc. Method and apparatus compilation of an interpretative language for interactive television
US10826748B2 (en) 2001-02-02 2020-11-03 Opentv, Inc. Service gateway for interactive television
US9369330B2 (en) 2001-02-02 2016-06-14 Opentv, Inc. Service gateway for interactive television
US7490346B2 (en) 2001-02-02 2009-02-10 Opentv, Inc. Digital television application protocol for interactive television
WO2002063471A2 (en) * 2001-02-02 2002-08-15 Opentv, Inc. A method and apparatus for the compilation of an interpretative language for interactive television
WO2002065682A2 (en) * 2001-02-12 2002-08-22 Siemens Information And Communication Mobile Llc Method and system for providing data applications for a mobile device
WO2002065278A3 (en) * 2001-02-12 2004-01-08 Lto Ltd A presentation server which enables a client device to run a network based application
WO2002065682A3 (en) * 2001-02-12 2002-11-14 Opuswave Networks Inc Method and system for providing data applications for a mobile device
WO2002065278A2 (en) * 2001-02-12 2002-08-22 Lto Limited A presentation server which enables a client device to run a network based application
EP1241856A1 (en) * 2001-03-12 2002-09-18 März, Christian Method and device for wireless communications
WO2002075597A3 (en) * 2001-03-15 2004-03-04 Federation Web Inc A method and system for providing a virtual unified product content repository
WO2002075597A2 (en) * 2001-03-15 2002-09-26 Federation Web Inc. A method and system for providing a virtual unified product content repository
US7743344B2 (en) 2001-05-23 2010-06-22 Handmark, Inc. Method for optimizing utilization of client capacity
EP1271360A3 (en) * 2001-06-27 2004-07-21 Openwave Systems Inc. Universal data mapping system
EP1271360A2 (en) * 2001-06-27 2003-01-02 Openwave Systems Inc. Universal data mapping system
GB2382161A (en) * 2001-08-22 2003-05-21 Alexander Ujah Job vacancy data conversion
DE10146878B4 (en) * 2001-09-24 2005-04-07 T-Mobile Deutschland Gmbh Method for storing short messages
DE10146878A1 (en) * 2001-09-24 2003-04-24 T Mobile Deutschland Gmbh Method for saving short messages
US7299061B2 (en) 2001-09-24 2007-11-20 T-Mobile Deutschland Gmbh Method for storing short data
EP2367334A1 (en) * 2001-10-03 2011-09-21 Accenture Global Services GmbH Service authorizer
US8073920B2 (en) 2001-10-03 2011-12-06 Accenture Global Services Limited Service authorizer
EP1708470A3 (en) * 2001-10-03 2006-12-27 Accenture Global Services GmbH Multi-modal callback system
US8527421B2 (en) 2001-10-03 2013-09-03 Accenture Global Services Limited Virtual customer database
US7233655B2 (en) 2001-10-03 2007-06-19 Accenture Global Services Gmbh Multi-modal callback
US7441016B2 (en) 2001-10-03 2008-10-21 Accenture Global Services Gmbh Service authorizer
US9436749B2 (en) 2001-11-16 2016-09-06 At&T Intellectual Property I, L.P. System for the centralized storage of wireless customer information
WO2004059905A1 (en) * 2002-12-30 2004-07-15 Bcp S/A Integrating, generating and managing services in a telecommunication network
EP1475975A1 (en) * 2003-05-08 2004-11-10 TeliaSonera Finland Oyj Method and system for transmitting messages in various formats
GB2405062A (en) * 2003-06-13 2005-02-16 Brian Bolam Protocol conversion via intermediate protocol with message storage and verification
US7890475B2 (en) 2004-09-17 2011-02-15 Sap Ag Common transport logistics for software and content
EP1645998A1 (en) * 2004-09-17 2006-04-12 Sap Ag Common transport logistics for software and content
US9055416B2 (en) 2005-08-22 2015-06-09 Triplay, Inc. Messaging system and method
US9577968B2 (en) 2005-08-22 2017-02-21 Triplay, Inc. Messaging system and method
US9100806B2 (en) 2005-08-22 2015-08-04 Triplay, Inc. Messaging system and method
US9049574B2 (en) 2005-08-22 2015-06-02 Triplay, Inc. Messaging system and method
US9491134B2 (en) 2005-08-22 2016-11-08 Triplay, Inc. Messaging system and method
US9521107B2 (en) 2005-08-22 2016-12-13 Triplay, Inc. Messaging system and method
US9577977B2 (en) 2005-08-22 2017-02-21 Triplay, Inc. Messaging system and method
US9100807B2 (en) 2005-08-22 2015-08-04 Triplay, Inc. Messaging system and method
US9614809B2 (en) 2005-08-22 2017-04-04 Triplay, Inc. Messaging system and method
US9628432B2 (en) 2005-08-22 2017-04-18 Triplay, Inc. Messaging system and method
US9660945B2 (en) 2005-08-22 2017-05-23 Triplay, Inc. Messaging system and method
US10097486B1 (en) 2005-08-22 2018-10-09 Triplay, Inc. Messaging system and method
US8874677B2 (en) 2005-08-22 2014-10-28 Triplay Communications Ltd. Messaging system and method
GB2446654A (en) * 2007-02-16 2008-08-20 Radixs Pte Ltd Communications platform enabling multiple formats
EP2251801A3 (en) * 2009-05-13 2010-12-29 Huawei Technologies Co., Ltd. Method, terminal and server for transcoding data

Also Published As

Publication number Publication date
WO2001003011A3 (en) 2003-01-09
AU5914900A (en) 2001-01-22

Similar Documents

Publication Publication Date Title
WO2001003011A2 (en) Cross-media information server
US10142431B2 (en) Real-time information feed
US7072984B1 (en) System and method for accessing customized information over the internet using a browser for a plurality of electronic devices
US7739407B1 (en) Systems for customizing behaviors and interfaces in service invocations
JP2002539547A (en) How to provide clients with a service to retrieve data from data sources that do not necessarily support the format required by the client
US6941307B2 (en) Arrangement and a method relating to session management in a portal structure
US7500188B1 (en) System and method for adapting information content for an electronic device
US20040113938A1 (en) An arrangement and a method for presentation customization in a portal structure
US20050183061A1 (en) Arrangement and a method relating to access of applications/services
US20060168095A1 (en) Multi-modal information delivery system
US20060161685A1 (en) Client aware extensible markup language content retrieval and integration in a wireless portal system
US20100228880A1 (en) System and Method for Providing and Displaying Information Content
US20060064499A1 (en) Information retrieval system including voice browser and data conversion server
KR20000023151A (en) Method and Architecture for Interactive Two-Way Communication Devices to Interact with a Network
JP2004511856A (en) Smart agent that provides network content to wireless devices
WO2004040481A1 (en) A system and method for providing and displaying information content
KR20000071277A (en) Remote bookmarking for wireless client devices
US20080319994A1 (en) Method for registering a template message, generating an update message, regenerating and providing an application request, computer arrangement, computer program and computer program product
US8135860B1 (en) Content interpolating web proxy server
US20050188066A1 (en) Arragement and a method relating to end user station access of a portal
US20020133616A1 (en) Method and apparatus for using a known address to gain access to a service provider having an unknown address
US20020095475A1 (en) Frame handling for a thin client
US7801958B1 (en) Content converter portal
WO2001019065A1 (en) Method, system, and apparatus for interfacing a screen phone with the internet

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 US US 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
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
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 in:

Ref country code: JP