Patent Publication Number: US-2005120075-A1

Title: Method, system and agent for transmitting information over a communication network

Description:
BACKGROUND  
      The invention relates to a method for transmitting information over a communication network. In particular, the invention relates to a method for transmitting information between a server and at least one client, whereby the server has agent functionality. The invention further relates to a system and agent for exchanging information over a communication network.  
      Communication networks can roughly speaking be divided into fixed networks and wireless networks. The functionality of such communication networks is definable in terms of client-server relations. A communication network in this context is understood to be any network that consists of at least one server and at least one client over which information is transmittable. Note with regard to the terms client and server that, in this context, there is only a functional difference. A device can, if it allows, perform both server and client functions in a communication network. Devices can accommodate several clients. A client retrieves information from a server through a request. The server waits for requests from clients and executes the instruction of the request. Such an instruction may consist of asking for information. An instruction may also concern the manipulation of information, such as modification of a database or schedule, or the retrieval of messages (such as email). Information in the present context includes data, whereby the difference may consist of the meaning in a certain context. Information has a meaning for the recipient, while data often requires a certain conversion or transformation before the data obtains a meaning within the recipient&#39;s context. This information may be located at the server in question, in a server cache or on other servers. In the latter case, the server retrieves the information from the other server. The servers are usually interconnected by always-on connections with a large bandwidth. The server sends the requested information to the client, where the information is deliverable in a form useful for the user. In a typical constellation, several clients will be connected to a server. The client may be a browser on a device like a mobile telephone, PDA or personal computer, for example. A problem with such constellations is the circumstance that connections between the server and client have a limited bandwidth. Another problem is that the client is not always “connected” (online) to the server but must set up the connection. As a result of this situation, the information the client requests from the server is delivered to the client with a significant delay. This delay (“latency”) obviously becomes longer according as the quantity of requested information increases, the bandwidth on the link is smaller or the load on the server is greater.  
      A method is known from the applicant&#39;s non-prepublished patent application EP 00201214.4 (“Method and system for retrieving data of a data network”) for getting information to a user via a network by providing the user with an adjustable means of navigation by means of which information pages retrieved by the user can be analyzed, whereby the retrieved pages are stored in a personal client proxy and associated client cache, with the information pages in the cache being updated by fetching information pages via that network. Through the application of this method and system, the user has the impression that in many cases an up-to-date information page from the server is being displayed to him quickly (i.e. without a significant latency) when he requests the information. In reality, however, the page is fetched from the personal client proxy. The user is less aware of the problems concerning limited bandwidth in the communication network between server and client, the server capacity and the circumstance that numerous clients are not continuously online. However, all information must still be sent to the cache/personal client proxy, where the information relevant to the user is retained through filtering. This is disadvantageous for clients in portable equipment, for example, where the available memory space (cache) is limited.  
     SUMMARY  
      The method, system and agent according to the invention offer a new and inventive solution to the matters discussed above and other problems associated with the prior art. According to the method and system, the server side of a communication network has an agent that keeps information in a cache of the server up to date. At a suitable time, relevant information can be sent to the client and/or device of the user. The relevance of the information to the user is determined preferably by user profiles entered by or associated with the user. These profiles may differ according to the client and/or according to the user&#39;s device. An advantage of this personalization possibility is that the user is able to determine which information he wishes to receive and/or how he wishes the information to be presented on his device connected to the communication network. The user can, for example, let the method of presentation depend upon the display capabilities of his device. Additionally, this method of applying usage profiles provides an important marketing information source for the manager of the server on which the agent runs. The profiles can be set in various ways. The user can create or modify the profile settings by means of his mobile device; it is also possible for the user to create or modify the settings by means of a network other than the communication network referred to above. This could be, for example, a desktop personal computer that by means of a fixed line establishes contact with the server, where the user creates or modifies via his PC the user profile stored in a database on the server for his other devices (and possibly also for the PC itself).  
      The agent can perform various roles and possess properties in a variety of variants according to the invention. In a preferred embodiment, the agent is capable of serving several clients, both in series and in parallel. The number of clients the agent serves can be considerable (for example, many hundreds/thousands on a single server). It is advantageous to allow the agent to combine the usage profiles of the often large numbers of users that correspond with the various clients. The agent ensures that the information is always kept up-to-date.  
      In one embodiment, the agent can use usage profiles defined by or associated with the user to select information the user finds relevant. As a filter, the user can for example compose a predefined list of favorites (“bookmarks”). The usable filters are described in earlier non-prepublished patent applications of the applicant, EP 00201214.4 (“Method and system for retrieving data of a data network”) and EP 00201214.4 (“Method and system for creating a button type bookmark”) and according to an embodiment of the invention will be used mutatis mutandis in or near the server. In another embodiment of a filter, the agent filters using the user profile in a page to select the relevant information for a certain client and sends that information to the client that satisfies that profile, possibly depending upon the type of device the user uses. The rest of the page is preferably not sent, so as to make a smaller claim on the limited bandwidth available in at least part of the communication network. The filtering of pages and the filtering in pages are combinable.  
      The agent sends the information to the client at a suitable time; this time is preferably a time when the load on the communication network between server and client is low.  
      The agent uses parameters to determine the suitable time for sending relevant information from server to client.  
      In a preferred embodiment, a parameter is the load on the communication network. If the load on the communication network is high, only information that ages relatively quickly will be sent, such as stock market prices, road traffic information or the latest news. If the load on the communication network is lower, information that changes less frequently will be sent, such as an electronic newspaper or sports results. Another example of a parameter for sending relevant information from server to client is the time when the user generally retrieves certain information. If the user seldom retrieves information during the night, the information in the cache of the user&#39;s device will be refreshed at these times less frequently or not at all. In an embodiment, it is possible by means of the agent ( 10 ) to determine, on the basis of information about the user&#39;s whereabouts, which parts of the current information are relevant to the user.  
      In a preferred embodiment, the agent is capable of learning the user&#39;s behavioral pattern. The agent is capable, for example, of learning the time at which the user retrieves certain information in a certain form and/or uses a certain device. To allow the agent to learn the user&#39;s behavioral pattern, it is advantageous if the device that the user uses informs the agent via the client which information the user retrieves from the cache of a certain device at a certain time. The advantage of this learning functionality of the agent is that the agent becomes increasingly better geared to the user&#39;s information retrieval behavior, which means the user increasingly often immediately gets the information he requires.  
      In a preferred embodiment, the agent waits until the last moment before bundling and sending to a certain client the information relevant to a user, possibly using a suitable form of compression. An advantage of this method is that, in practice, a considerable degree of similarity exists between the information that the various users retrieve. This makes it efficient to bundle and compress the information per user, per client and/or per device only at the moment the information will be sent. When the times of sending the information to clients are close to each other, it is advantageous to use multicast techniques for such information. This further reduces the load on the server and certain network parts. Until such time as the information is sent, it is possible to suffice with keeping the information up to date. This method is further advantageous for maintaining control over the server memory space necessary to store the information for the typically large numbers of clients to be served.  
      System  
      The system is arranged such that it can execute one on more aspects of the method in a new and inventive way. In various preferred embodiments, the system is arranged such that variants of the method are executable.  
      The device of which the client forms part is preferably of the “always on” type or has an automatic answering mode. An example of a device of the “always on” type is a GPRS mobile phone. The advantage of the device being “always on” is that the agent can actually send the relevant information to the device at a suitable time and the device can store the information in its cache.  
      In one embodiment of the invention, the agent is not located in the server, but somewhere in a network that has contact with the server with which contact is sought. The role of the agent is particularly important for, although not confined to, communication networks that at least in part have only limited bandwidth, such as a wireless communication network.  
      Note that the various preferred embodiments or aspects thereof are combinable according to the invention. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       FIG. 1  shows a diagrammatic representation of a system for sending information over a communication network using an agent.  
       FIG. 2  shows an example of an embodiment of the functioning of the agent in a situation with several clients and usage profiles and several networks. 
    
    
     DESCRIPTION  
      Based on an example, a few preferred embodiments of the method, the system and the agent functionality according to the invention will be described below. It will be clear to the person skilled in the art that alternative or equivalent embodiments of the invention are conceivable and practicable, without departing from the fundamentals of the invention; the fundamentals of the invention will be limited only by the claims as ultimately granted.  
       FIG. 1  presents a diagrammatic representation of a communication network over which information or data can be sent. The shown communication network includes both a fixed communication network ( 3 ,  6   a ) and a wireless network ( 6   b ). In the embodiment, there is an architecture ( 1 ), for example the World Wide Web (WWW). The architecture ( 1 ) includes a number of servers ( 2 ) connected by means of communication lines ( 3 ). The servers ( 2 ) possess a certain memory capacity (not shown) for storing information that users/clients can retrieve by means of a request. If the information requested by the user is not present on the server concerned, the server will seek contact with a server on which the requested information is known to be present. The communication network ( 3 ) between servers ( 2 ) preferably has a large bandwidth (in the order of Mbits). Information located on one or more of the servers ( 2 ) is accessible to users in possession of a device or terminal ( 4 ) via a gateway server ( 5 ). Such a gateway server ( 5 ) can also store information itself in the cache ( 11 ). Examples of devices or terminals ( 4 ) are personal computers, mobile phones or other handheld devices like PDAs. These devices contain one or more means, known to the average person skilled in the art, for more or less optimum operation of the device ( 4 ) of the user. These means (not shown) concern among other things an input unit, a display unit and similar.  
      Part  6   a ,  6   b  of the communication network between this server ( 5 ) or the base station ( 7 ) and the device of the user ( 4 ) in practice often has a smaller bandwidth than, for example, the bandwidth of the connections ( 3 ) between the servers ( 2 ) mutually. This part  6   a ,  6   b  of the communication network is formed, for example, by PSTN, ISDN, ADSL and GSM connections.  
      The user&#39;s devices have at least a client ( 8 ) and a cache ( 9 ). A client ( 8 ) is a software module that enables the user&#39;s device ( 4 ) to communicate with one or more servers ( 2 ,  5 ) in order to retrieve information. In the shown situation, the user obtains access to the servers via the gateway server ( 5 ). This is achievable by recording in the user&#39;s device the IP address of the gateway server. In the present case, the cache ( 9 ) of the device means a memory module on which the requested information is storable for a shorter or longer period of time and is quickly retrievable whenever the user wishes. At present, the memory space for such caches ( 9 ), particularly for mobile devices ( 4 ), is not very large and memory sticks of, for example, 32 MB are used. In such a situation, it is particularly advantageous if the memory module is, with a great degree of probability, filled with information the user actually wants. This desired situation, whereby the cache ( 9 ) is filled with information required by the user, is achieved by giving the gateway server ( 5 ) the agent functionality ( 10 ) according to the invention.  
      According to invention, the agent functionality ( 10 ) is created at the server ( 5 ) that is connected to a part ( 3 ) of the communication network that possesses a large bandwidth. The user&#39;s device ( 4 ) is preferably of the “always on” type (for example, a mobile device ( 4 ) that communicates via a GPRS network) or, in an alternative case, possesses an automatic answer mode. This property enables the agent ( 10 ) at the server ( 5 ) to send relevant information to the user&#39;s device ( 4 ) at a suitable time determined by the agent ( 10 ), whereby the relevant information is received by the device ( 4 ) and is storable in the cache ( 9 ).  
      The agent ( 10 ) includes a software module that is preferably located at the server ( 5 ) and arranged such that it can optimally serve the user. Such an agent ( 10 ) is preferably capable of serving a large number of clients simultaneously. For this purpose, the agent maintains a cache ( 11 ) with information that is kept up-to-date all the time and that is relevant to the clients ( 8 ) and/or devices ( 4 ) of the users associated with the agent ( 10 ). This is achievable by combining the usage profiles of the various users and, depending on this combination, retrieving the information from servers ( 2 ) and storing it in the cache ( 11 ) associated with the agent ( 10 ). For this purpose, it is unnecessary for this cache and the agent ( 10 ) to be in each other&#39;s physical proximity. The only important matter is that the gateway server ( 5 ) possesses agent functionality. The usage profiles and/or device profiles are stored in a database ( 12 ) that is, for example, located at the gateway server ( 5 ). The usage profiles and/or device profiles in the database ( 12 ) can be created and kept up-to-date via the devices ( 4 ) of the users. It is also possible for the settings not to be entered via the network part  6   a ,  6   b , but for contact to be sought with the profiles database ( 12 ) via another network. In this way, it is possible, for example, for the user to use a personal computer and ISDN line to create the profiles for his mobile device ( 4 ) that communicates with the gateway server ( 5 ). The new or modified settings of the profiles subsequently determine how the agent deals with sending information to the user&#39;s mobile device ( 4 ).  
      To serve the user optimally, the agent ( 10 ) can possess one or more of the functionalities described below.  
      In a preferred embodiment, the agent ( 10 ) executes on cache ( 11 ) a filter operation related to the client ( 8 ) and/or device ( 4 ) and/or user, with up-to-date information enabling determination of which information is relevant to the user and/or which settings of the device ( 4 ) must be offered on presentation of the information.  
      A predefined list of favorites (“bookmarks”) can be used to select the up-to-date information from information relevant to the user. The predefined list of favorites is stored in the database ( 12 ). The information may concern, for example, business or personal interests. The working and method of defining such filters on the client side have already been defined in the aforementioned non-prepublished applications and can be applied mutatis mutandis at or by the agent ( 10 ). Besides determining for example the relevant web pages via the predefined bookmarks, the agent ( 10 ) can send only parts of these pages that are relevant to the user. The other parts of the page will, so to speak, be “stripped” from the web page to leave in place the relevant information, such relevant information subsequently being sent at a suitable time to the client ( 8 ). This is particularly advantageous if the connection between the server containing the information and the user&#39;s device ( 4 ) concerns a network part ( 6   a ,  6   b ) with limited bandwidth. An extra advantage is achievable in this situation by applying state-of-the-art compression techniques to the relevant information before sending it.  
      In a preferred embodiment, the agent ( 10 ) possesses the functionality to use certain parameters to determine which information must be sent when to which user device ( 4 ) and/or client ( 8 ). An example of a parameter the agent ( 10 ) can use to determine when the information must be sent to the user&#39;s device ( 4 ) is the network load on network part  6   a ,  6   b . At such a suitable time, the information will be pushed to the client ( 8 ) of the device ( 4 ). To avoid overloading the communication network, it is advantageous at time of high load to send only frequently changing information, while less frequently changing information can be sent to the user&#39;s device ( 4 ) at times when there is a lower load on the network.  
      In one embodiment, a parameter used is the time at which the user of the device ( 4 ) normally retrieves his information. If the user of the device ( 4 ) seldom retrieves information at night, for example, the agent ( 10 ) will need to refresh the information in the cache ( 9 ) of the user&#39;s device ( 4 ) less regularly during the night. If the user regularly consults stock market prices in the afternoon, however, and in the evening retrieves certain sites concerning a hobby, the agent will ensure that this information is present in the cache ( 9 ) of the device ( 4 ) at those times and is regularly refreshed. For the purpose of this functionality, whereby the information is sent to the cache ( 9 ) of the user&#39;s device ( 4 ) depending on the user&#39;s behavioral pattern, the agent ( 10 ) possesses an embodiment of a learning function. To this end, the user&#39;s device ( 4 ) is preferably capable of communicating with the server ( 5 ), whereby the client ( 8 ) informs the agent ( 10 ) of when the user consults the information and which device ( 4 ) is associated with the client ( 8 ). The agent saves this information in the database ( 12 ) and by means of state-of-the-art learning methods is capable of learning the behavioral pattern of the user regarding the retrieval of information. This could include, for example, a statistical analysis of the data that the user&#39;s device ( 4 ) sends to the agent ( 10 ). Summarizing the learning by the agent happens through an interactive process between the client ( 8 ) and the agent ( 10 ).  
      The information relevant to a specific client ( 8 ) is preferably bundled from the up-to-date information at the latest possible moment and sent over the network part ( 6 ) to the client. This promotes efficient working of the system in general and the agent ( 10 ) in particular. The user of a device ( 4 ) can obviously also use that same device to “just” retrieve information at the gateway server ( 5 ) or the servers ( 2 ), without the agent ( 10 ) being involved in the first instance. If the user retrieves for the first time a page that is not known to the agent, this information will be fetched from a different server ( 2 ) and forwarded to the client ( 8 ). In this situation, the agent signals only the retrieval of the page. If the user subsequently consults this page more frequently, the agent will, via the learning mechanism, keep the page available for the user at the determined times. By now it will be clear that the user is capable of making changes or additions to the usage profiles and is capable of including the page in question in such a profile.  
      In an embodiment, the agent ( 10 ) is capable of determining, based on information about the user&#39;s whereabouts, which part of the up-to-date information is relevant to the user. The user can be sent, for example, information about a traffic jam on a certain route in the motorway network only if the user with his device ( 4 ) is located in the vicinity of that route. Similarly, the agent ( 10 ) can send from the up-to-date information only relevant information about special offers of certain shops in the vicinity of the user with his device. It will be clear that the learning function of the agent ( 10 ) can also concern places the user visits or which the user indicates that he visits. A combination of sending the relevant information at certain times and sending this information when the user is or will be located at a certain place is another of various possibilities.  
       FIG. 2  shows an example of an embodiment of the application of the agent ( 10 ) in a more complex situation with several clients  8   a . . . d  and network parts ( 6   a  and  6   b ). Although not elaborated any further here, the clients ( 8   a . . . d ) are contained in various devices ( 4 ) (for example  8   a  in a PDA,  8   b  and  8   c  in a mobile phone and  8   d  in a personal computer). The agent can fetch from the database ( 12 ) data regarding the way the relevant information for the user must be presented on the various devices of the user(s). Additionally, it is also possible for various clients ( 8 ) to be associated with the various devices of one and the same user and for the agent ( 10 ) to know (for example through the learning function) when this user uses a particular device and which information he generally consults on it.  
       FIG. 2  shows the situation where a usage profile is associated with each client ( 8   a . . . d ) in the way shown for the various clients ( 8   a . . . d ) in the figure. In the case of client  8   a , it is known, for example because agent ( 10 ) possesses the aforementioned learning function or because the user has entered a predefined usage profile, that at time ta 1  the part of the information page of a newspaper that contains financial information must be available at the client ( 8   a ). The rest of the information page of the newspaper will not be sent to client ( 8   a ). Time ta 1  is, for example, 07:30 hrs. It is also known that the client ( 8   a ) must be in possession of the sports information at time ta 2 . Ta 2  is, for example, 22:00 hrs. Further, the latest stock market prices must be available every hour at client ( 8   a ). For the usage profile of client ( 8   a ), the agent ( 10 ) keeps a cache ( 11 ) that contains the latest information about the financial section of the newspaper in question, sports information and stock market prices. In the database ( 12 ) it is known which usage profile belongs to the client ( 8   a ) and over what type of network part ( 6   a ) the client communicates with the server ( 5 ). Clients  8   a  and  8   c  have a similar profile; however, they expect this information at different times (Tb 1 , Tb 2  and Tc, respectively). Because of the similarity of the profiles, it is sufficient for the agent ( 10 ) to combine the usage profiles and not to bundle the relevant information for clients  8   a . . . c  for a specific client until such time as the information must be sent over the network part  6   a  or  6   b . Client ( 8   d ) has a deviating usage profile. In this situation, the agent ( 10 ) maintains for this client ( 8   d ) the latest information about sports and hobbies and sends it to the client, depending on the network load on network part  6   b  and/or the desired moment Td. Td is, for example, 16:00 hrs on Saturday afternoon. The agent ( 10 ) uses different parameters for the corresponding sports information for transmission to the client ( 8   a ). For the client ( 8   a ) the parameters in question concern the network load of network part  6   a  and the desired moment Ta 2 .