Patent Publication Number: US-2004054751-A1

Title: Method for processing and accessing data in a computerised reservation system and system therefor

Description:
[0001] The present invention relates first of all to a process for processing and accessing data in a computer preservation system.  
       [0002] It also relates to a computer reservation system adapted to use this process.  
       [0003] Computer reservation systems at present are used particularly in the field of travel, air transport or else for lodging reservations.  
       [0004] In this field, there exist one or several inventory bases corresponding to the condition of reservations at each of the service providers such as the airline or the car rental company. A central system permits accessing different inventory bases for processing the information and to respond to the requirements of users. These latter can thus interrogate the central system by the use of client applications to obtain data particularly as to availability, cost, and types of service offered.  
       [0005] The whole of this access and data transfer takes place by a communication network.  
       [0006] According to the present state of the art, the central system receives multiple requests from a plurality of users and, to respond to them, directly interrogates one or several inventory bases.  
       [0007] This principle of operation has the drawback of rendering more cumbersome and difficult the communication network, principally in connection with inventory bases. This point is the more damaging as certain requests of users do not require direct access in a synchronous manner to the inventory databases.  
       [0008] For example, users connecting by means of a wide extension network such as the Internet sometimes interrogate the reservation system for the sole purpose of learning the types of reservations and the costs. It is thus not strictly necessary to give them at the same time certain information as to availability of reservations.  
       [0009] The present state of the art comprises particularly U.S. Pat. No. 5,570,283. This latter discloses a computer system provided with modular software permitting, both to travelers electronically accessing an inventory to obtain airfares very rapidly in a convivial software environment, and agents or professional to make reservations and to access specific databases connected with their professional activities.  
       [0010] This document relates essentially to the problem of the price of the items offered. Thus, it seeks to have prices completely up to date for agents and other professionals.  
       [0011] However, according to this document, it is still necessary to have direct access to the inventory bases for the condition of reservations for any type of request.  
       [0012] The present invention overcomes the drawbacks of the present techniques.  
       [0013] It permits decreasing the volume of direct access to the inventory bases of the condition of reservations by providing a database of the “CACHE” type adapted to respond to the first interrogations of the users.  
       [0014] Moreover, the access to this cache has the advantage of being able to be carried out by means of a communication network of the wide extension type such as the Internet for which the cost of communication is very small.  
       [0015] Other objects and advantages will become apparent from the description which follows, which describes a preferred embodiment of the invention but however is not limiting.  
       [0016] The present invention relates to a process for processing and accessing data in a computer reservation system, comprising a server portion provided with a central system and at least one inventory base of the condition of registrations, and a client portion comprising at least one client application, the server and client portions being connected by a communication network, characterized by the fact that:  
       [0017] there is created at least one cache in the server portion, said cache containing reservation data;  
       [0018] there are added data to the cache by transfer from at least one inventory base;  
       [0019] there is created an application interface between the cache and the client application or applications so that the user can address requests to the cache and receive data in response.  
       [0020] This process can be present in the modifications set forth as follows:  
       [0021] if, during a request to the cache from an application client, the cache does not contain the data requested:  
       [0022] the request is processed in the central system by access to the inventory bases of the condition of registrations to find the requested data;  
       [0023] said data are added to the cache;  
       [0024] the requested data are returned, in response, to the application client.  
       [0025] the data contained in the cache are cleaned by the use of the following procedure:  
       [0026] assigning a maximum duration of retention to each datum contained in the cache;  
       [0027] period search of the data contained in the cache to detect the data whose maximum duration of preservation has expired;  
       [0028] deletion of the data whose maximum duration of preservation has expired.  
       [0029] the data contained in the cache are cleaned by the following procedure:  
       [0030] assignment of a limit size and a threshold size to the cache, said threshold size having a value lower by a predetermined margin than said limit value;  
       [0031] when the limit size is reached, deletion of the data contained in the cache by decreasing order of last time used, to reach the threshold size.  
       [0032] the data are arranged in the cache by:  
       [0033] assignment of a key to each datum to be stored;  
       [0034] transformation of the key into a numerical value;  
       [0035] creation of a vector of lists comprising a series of compartments adapted to contain a list of several data;  
       [0036] assignment, to each compartment, of a whole number index starting from zero;  
       [0037] determination, for each datum, of the index of the storage compartment by modulation of the numerical value of the key of the data by the number of compartments;  
       [0038] storage of the data in the compartment thus determined.  
       [0039] data are searched in the cache by transformation of the key to a numerical value and determination of the index of the storage compartment by modulation of the numerical value of the key by the number of compartments and by the fact that:  
       [0040] if a single datum is present in the compartment, the sought datum is retrieved;  
       [0041] if no datum is present in the compartment, an absence of information is returned;  
       [0042] if several data are present in the compartment, their keys are compared to determine that which is effectively sought.  
       [0043] Access is blocked only of the compartments in the course of processing a request to permit other processing of requests simultaneously in other compartments.  
       [0044] The invention moreover relates to a computer reservation system comprising a server portion provided with a central system and at least one inventory base of the condition of reservations, and a client portion comprising at least one client application, the server portions and client portions being connected by a communication network, adapted to use the process according to the invention.  
       [0045] Characterized by the fact that it comprises  
       [0046] at least one cache in the server portion, said cache containing reservation data;  
       [0047] at least one application interface between the cache and the client application or applications so that its user can address requests to the cache and receive data in response.  
       [0048] According to modifications:  
       [0049] at least one cache block provided with a cache and an application of management of the cache;  
       [0050] at least one entry management block provided with a plurality of entry management modules each receiving requests from one or several client applications and controlled by an inlet control.  
       [0051] each inlet management module is assigned to a single client application.  
       [0052] inlet management modules are assigned to several client applications and their cache block comprises:  
       [0053] a file adapted to receive requests from client applications and to redistribute them by order of entry upon demand of the cache;  
       [0054] the cache or caches comprise a vector of lists comprising a suite of compartments adapted to contain a list of several data and to which is assigned an index, for searching of data by the index of the compartment where it is stored.  
       [0055] it comprises a cleaning tool adapted to address the cleaning commands to the cache according to a predetermined procedure. 
     
    
    
     [0056] The accompanying drawings are given by way of examples. They show embodiments which permit easy comprehension of the invention.  
     [0057]FIG. 1 shows an example of processing requests from clients according to the present state of the art.  
     [0058]FIG. 2 schematically shows the members of the system of the invention in a particular embodiment.  
     [0059]FIG. 3 is another schematic drawing of the embodiment of the system according to the invention which specifies certain members.  
     [0060]FIG. 4 is a synoptic diagram of the phases of interrogation and of display of the cache in the system and according to the present invention.  
     [0061]FIG. 5 shows an example of cleaning data contained in the cache, whilst FIG. 6 shows a modification of arrangement of the data in the cache.  
    
    
     [0062] Finally, FIG. 7 is a modification of the invention in which several clients access the system by means of a same inlet management module.  
     [0063] As shown very schematically in FIG. 1, according to the present state of the art, the client can address to a central system (CS) requests to obtain data concerning reservations for example of aircraft, or else the availability of places in all types of service.  
     [0064] This request can be represented by a “GET” operation sent to the central system (CS). This latter is connected to one or several inventory bases (I) of the condition of reservations in which the sought datum is located. By interrogation of these inventory bases (I), the central system (CS) can return a response to the client.  
     [0065] More precisely, according to the present state of the art, the different clients send an interrogation message to a member currently called “FRONT END” and said “FRONT END” member relays the demand to the client in the central system called “BACK END”. The FRONT END member thus constitutes an intermediary between the clients and the core of the central system. It is at this level that are sent the different message of the clients before their transmission. This type of organization generates a multiplicity of communications between the different members of the system and a large size of the assembly of the central system.  
     [0066] The reservation system according to the invention avoids such drawbacks.  
     [0067] In a way known per se, it integrates into a structure comprising a client portion with several client applications ( 19 ) and a server portion provided with a central portion (CS) and one or several inventory bases (I).  
     [0068] Processing requests according to the invention can take place in a complementary manner or by replacing the present process, as is previously described.  
     [0069] The inventory bases are generally databases made available by the provider of the service such as the aircraft company and it has updating of the condition of the reservations.  
     [0070] Again according to the present state of the art, and possibly in the structure of the invention, the server portion and the client portion communicate by means of a communication network  5 .  
     [0071] Within the scope of the invention, the communication network  5  can include a wide-ranging network such as the Internet.  
     [0072] Characteristically, and as shown in FIG. 2, the system according to the invention comprises at least one cache ( 9   a ,  9   b ).  
     [0073] The cache is located in the server portion and contains reservation data. The caches ( 9   a ,  9   b ) are integrated into cache blocks ( 3   a ,  3   b ,  3   c ) shown in FIG. 2. In a manner known per se, the caches ( 9   a ,  9   b ) could be constituted by a volatile memory of the RAM type (Random Access Memory). Of course, a periodic safeguard of the data contained in these caches ( 9   a ,  9   b ) can be carried out with a non-volatile memory, on a disc.  
     [0074] In a manner intermediate between the different client applications ( 19 ) and the cache or caches ( 9   a ,  9   b ), the system here shown comprises interface applications ( 18 ). They permit the user to address requests to the cache and to receive data in response.  
     [0075] Again with reference to FIG. 2, the system comprises preferably one or several inlet management blocks ( 2   a ,  2   b ).  
     [0076] The intake management blocks ( 2   a ,  2   b ) communicate with the interface applications ( 18 ) by routing means ( 4 ). Any type of routing can be used according to the invention, which is not limited to a particular modification.  
     [0077] The structure comprised of intake management blocks ( 2   a ,  2   b ) of the routing means ( 4 ) of the interface applications ( 18 ) and the different cache blocks ( 3   a ,  3   b ,  3   c ) permit the formation of a functional unit called a server cache ( 1 ).  
     [0078] More precisely, in the server cache ( 1 ), the blocks are articulated preferably in the following manner.  
     [0079] As to the intake management blocks ( 2   a ,  2   b ), they comprise a plurality of intake modules ( 8   a ,  8   b ) in connection with the applications client ( 19 ) by means of the communication network ( 5 ).  
     [0080] According to a first modification, each input management module is connected to a single client application ( 19 ). There are thus as many modules ( 8   a ,  8   b ,  8   c ) as client applications ( 19 ) connected to the input management block ( 2   a ,  2   b ). To administer each input management module ( 8   a ,  8   b ), each input management block ( 2   a ,  2   b ) comprises an input manager ( 7   a ,  7   b ). It permits applying operating parameters to each input management module ( 8   a ,  8   b ).  
     [0081] An input management block ( 2   a ,  2   b ) can be connected to a cache block ( 3   a ,  3   b ) or to several, according to suitable routing conditions.  
     [0082] According to the example of FIG. 3, the input management block ( 2   a ) communicates with the cache block ( 3   a ).  
     [0083] This latter comprises a cache ( 9   a ) as described above which operates by means of a cache management application ( 10   a ).  
     [0084] This cache application ( 10   a ) provides the interface between the input management block and the cache block.  
     [0085] In the example of this figure, each client application ( 19 ) corresponds to an input management module ( 8   a ,  8   b ). According to a modification, several clients ( 19 ) can address their requests to a single input management module.  
     [0086] Thus, in the case of FIG. 7, the modules ( 8   a ,  8   b ) are connected to a file ( 16 ) operating according to the (first in, first out) logic adapted to receive the requests and to redistribute them in the order of input.  
     [0087] In this connection, at the output of the file ( 16 ) is a line group ( 17 ) transmitting requests to the cache ( 9   a ,  9   b ). The number of input management modules ( 8   a ,  8   b ) of the system can thus be limited.  
     [0088]FIG. 5 shows a preferred embodiment for cleaning the data contained in the cache ( 9   a ,  9   b ). To this effect, the system comprises a cleaning tool ( 11 ) addressing cleaning commands ( 12 ) to the different caches ( 9   a ,  9   b ). The procedures illustrated for this cleaning will be described later.  
     [0089] There will be set forth hereafter the operation of the system according to the invention and the process for processing and access which forms an integral part of it.  
     [0090] In this connection, one or several caches ( 9   a ,  9   b ) are created in the server portion to contain reservation data. The clients can access this to respond rapidly to requests without encumbering the rest of the central system as is explained above.  
     [0091] To expose data contained in the cache or caches ( 9   a ,  9   b ), there are added data to the cache ( 9   a ,  9   b ) by transfer from at least one inventory base (I).  
     [0092] An example of the successive operations permitting the addition of data to the cache ( 9   a ,  9   b ) is shown in FIG. 4.  
     [0093] According to this diagram, the client addresses a request generating a “GET” operation for interrogation of the cache ( 9   a ,  9   b ). If a positive response can be supplied by the cache ( 9   a ,  9   b ) to the “GET” interrogation, the data contained in the cache is returned to the client as a response.  
     [0094] If the cache does not contain the response requested by the client, the latter is addressed to the central system (CS) which is adapted to generate the response, by connection with the inventory bases (I). The data in response are returned by the central system (CS) and are added to the cache ( 9   a ,  9   b ) by a “PUT” operation.  
     [0095] In this way, a datum not previously contained in the cache will be memorized.  
     [0096] This series of operations can be carried out at the startup of the system according to the invention from a cache not containing any data but in which will be successively memorized the data according to the interrogations of the clients.  
     [0097] To avoid the cache being overloaded and so as to optimize the operation, it is important to proceed to an updating of the data which it contains.  
     [0098] In this connection, the process according to the invention proposes two separate procedures but which can be used simultaneously to effect cleaning of the data.  
     [0099] According to a first procedure, there is assigned to each datum a maximum duration of preservation. Periodically, the data contained in the cache ( 9   a ,  9   b ) are scrutinized to detect those whose retention time limit is exceeded.  
     [0100] These data are then deleted from the cache.  
     [0101] In this way, data that are too old and that no longer have a real and reliable character, are deleted.  
     [0102] Of course, the period of exposure according to this procedure is variable according to the nature of the contained data. By way of example, the time interval between two cleaning commands could be 60 seconds.  
     [0103] A second cleaning procedure can be used according to the process of the invention by replacing or complementing that of the first.  
     [0104] In this connection, there is assigned a size limit to the cache corresponding to the maximum size that it is desired to give to the cache. Moreover, there is assigned to it a threshold size of a value less than the limit size and corresponding to a size that is admissible for the good operation of the cache. For example, the threshold size could be fixed at 80% of the limit size.  
     [0105] When the limit size is reached, the contained data are deleted ( 9   a ,  9   b ) by decreasing order of age of use, until the threshold size is reached.  
     [0106] In this way, the very old data used are deleted to the extent necessary to reach an acceptable size for the cache.  
     [0107] Again so as to optimize the operation of the caches ( 9   a ,  9   b ), a particular mode of filing the data in the cache ( 9   a ,  9   b ) will be given hereafter.  
     [0108] Generally speaking, there is assigned to each datum to be memorized in the cache a key.  
     [0109] This key can be transformed in numerical value, commonly called “HASH CODE” according to hashing algorithms used at present.  
     [0110] There is moreover created a vector of lists  14  shown in FIG. 6 and comprising a series of compartments ( 13 ) generally called “BUCKET”. Each compartment ( 13 ) is adapted to contain one or several data.  
     [0111] There is assigned to each compartment ( 13 ) a numerical index which is a whole number extending from zero.  
     [0112] By way of example, a number of 20 011 compartments could be formed for a cache with a size limit of 51 200 Kilo Octets.  
     [0113] There is then carried out a correspondence between the key assigned to each datum and the numerical index of each compartment ( 13 ). This establishment of correspondence can be carried out by a modulation of the numerical key of the datum by the number of compartments ( 13 ) of the vector of lists ( 14 ).  
     [0114] The object of this correspondence is to memorize the data in a compartment ( 13 ) with a particular index and not to carry out a comparison of the data contained in the cache only for the data of a compartment ( 13 ) having the same index as that of the datum sought by the client.  
     [0115] In this way, the number of operations of comparison that are necessary is greatly reduced.  
     [0116] The number of values contained in a compartment ( 13 ) is not limited. It should be understood however that the fewer the values, the more the performance is good.  
     [0117] Again so as to optimize the operation of the cache ( 9   a ,  9   b ), only the access of the compartments ( 13 ) that are used could be blocked during processing of the requests. In this way, the processing of a request assigned to a compartment ( 13 ) does not block the operation of the other compartments ( 13 ). To do this, there are used selective access blocking means ( 15 ) also called semaphores or “MUTEX”.  
     [0118] A better management of concurrent requests is thus effected, fewer simultaneous requests being in danger of being processed in a same compartment ( 13 ).  
     REFERENCES  
     [0119] 1 —Cache server  
     [0120] 2   a ,  2   b —Input management block  
     [0121] 3   a ,  3   b ,  3   c —Cache block  
     [0122] 4 —Routing means  
     [0123] 5 —Communication network  
     [0124] 6   a ,  6   b —Input port  
     [0125] 7   a ,  7   b —Input manager  
     [0126] 8   a ,  8   b —Input management modules  
     [0127] 9   a ,  9   b ,  9   c —Cache  
     [0128] 10   a ,  10   b —Cache management application  
     [0129] 11 —Cleaning tool  
     [0130] 12 —Cleaning command  
     [0131] 13 —Compartments  
     [0132] 14 —Vector of lists  
     [0133] 15 —Selective access blocking means  
     [0134] 16 —File  
     [0135] 17 —Group of lines  
     [0136] 18 —Interface application  
     [0137] 19 —Client application  
     [0138] CS—Central system  
     [0139] I—Inventory base