ARRANGEMENT AND METHOD RELATED TO DISTRIBUTED CACHING

Abstract: The present invention relates to a communication system and a method for providing distributed caching of reply data objects (17) within a packet data network comprising network elements (14), a client terminal (10) and at least two intermediary Web caches (12). In order to improve performance and flexibility, each cache (12) is provided with information handling means for defining both object operation type and object context, the data in a request is separated into context defining data and pure information data and in the associations between context in requests and replies being used for discriminating between relevant and irrelevant reply data.

Description: Title: ARRANGEMENT AND METHOD RELATED TO DISTRIBUTED CACHING FIELD OF THE INVENTION The present invention relates to a communication system for providing distributed caching of reply data objects within a packet data network comprising network elements, a client terminal and at least two intermediary Web caches. The invention also relates to a method of providing distributed caching of reply data objects within a packet data network. STATE OF THE ART Distributed caching is a growing concern for World Wide Web technology solutions as increased usage raises the demand for higher performance. State of the art caching schemes are basically static in their nature which makes them somewhat in opposition to basic forces of Internet evolution. For example, in the caching process, a cache located within the Internet Access Service Provider network functions as an intermediary in transactions involving retrieval of Web objects from servers by a client terminal. Such an object may be one or more pages of textual information, a picture, a sound clip, a video clip, a JAVA applet or other software, or anything that is capable of being transmitted digitally over the Internet to a client terminal. When a request for an object is received from a client, unless the object is found on the cache to which the requesting client is connected, a query process is started which involves sending out a plurality of requests to neighboring caches asking them whether they have a copy of the desired object stored in their memory. The flooding of requests to all neighboring caches in response to each request for an object represents a load on the network bandwidth, as well as a drain of cache computing resources . There is a need for offering products with high performance that can evolve independently as well as being part of a big rapidly evolving network. In particular, there is a need for a distributed caching process that reduces network bandwidth load and promotes performance. A state of the art distributed caching solution includes caching of user session data (form data most recently fetched by same user) which gives very high performance for some very common use cases. It is focused on data related to caching operator interaction and uses the primary memory of the client as storage. This does not utilize the operations by other operators nor operations that have been performed at a previous login. There also exists a large number of caching schemes with algorithms for caching objects according to latest cached object, most frequently cached object etc. Several ways of distributing these caching have also been utilized as well as division and coordination schemes. These solutions have been very hard to adapt to a new and changing network configuration. For example, US Patent 5,787,470 addresses the problem of making Web caching more efficient. However, this solution involves exchange of information about contents of neighboring caches between these caches. US-A-5,305 389 describes a system with a separate caching wherein access patterns are used to improve the contents of the cache. It is further found that context can be a way to structure access patterns, but the main focus of this system deals with the issue of being able to predict what the caching needs will be based on historical data. SUMMARY OF THE INVENTION What is needed is therefore a communication system for providing distributed caching of reply data objects within a packet data network which offers high performance and which is flexible in an evolving environment. Furthermore, an arrangement is needed which avoids (reduces) synchronizing and exchange of data between caches . For these objects, the communication system according to the invention is characterized in that each cache is provided with information handling means for defining both object operation type and object context. This makes it possible to base caching on context associations between requests and replies. Moreover, the data in a request is separated into context defining data and information data. The context defining data may also contain information data. Furthermore, the associations between context in requests and replies are used for discriminating between relevant and irrelevant replies, most particularly between relevant and no longer relevant reply data. This will align the caching scheme with the URL format and allow for a server based caching which may be optimized for the most frequent use cases of several operators. Thereby, caching context scope may also be defined independently for a server in the network. Preferably, caching functionality is separated with reference to requesting and replying. Particularly, it is advantageous if the definition of the associations may be changed. Due to this, the associations between the requests and the reply data may both be very flexible and very specific as to the exact nature of the associations . The need for refreshing a cache is preferably determined by means of caching algorithms using information as to operation type. These types may include CREATE, -DELETE and LIST, and the operation type information may be packaged for easy access. A gradual pre-fetch of cache data may preferably be introduced and said pre-fetching of cache data may be based on read operations for data within the same context. Advantageously, this prefetching of data is performed at start-up. A part or parts of a cache is preferably also updated by an operator by manually choosing a context to up-date. In this way, a part or parts of a cache may be refreshed. A method of providing distributed caching of reply data objects within a packet data network is also provided comprising the steps of; using context associations between requests and replies in the object caching process; separating data in a request into context defining data and information data; using the associations between context in requests and replies to discriminate between relevant and irrelevant, particularly relevant and no longer relevant, reply data. Man Machine Language is preferably used for communication towards Network Elements. BRIEF DESCRIPTION OF THE DRAWINGS The invention will in the following be further described in a non- limiting way with reference to the accompanying drawings in which: Fig. 1 is a block diagram of a prior art network showing two caches connected in parallel within an IASP, interconnecting a client terminal and network elements within the Internet, Fig. 2 is a corresponding block diagram showing a network with two caches connected in series within an IASP. Fig. 3 illustrates the basic principle for the context based caching scheme according to the invention in a block diagram, Fig. 4 illustrates caching functionality of the caching scheme according to Fig. 3, Fig. 5 is a block diagram showing an implementation of the caching scheme according to the invention, Fig. 6 shows a three-layer management architecture relating to a further embodiment, Fig. 7 relates to the embodiment of Fig. 6 and is used to illustrate the problem of knowing when to refresh the cache due to distributed operations, and Fig. 8 illustrates an example on how to structure a refresh trigger mechanism. DETAILED DESCRIPTION OF THE INVENTION Fig. 1 shows a prior art network system where a number of clients 10, of which one is shown in Fig. 1, communicate via an IP network 11 with parallel service management cache nodes 12 which in turn communicates via second networks 13, for example X.25 networks, with a number of network elements 14. Fig. 2 shows a serial use of the caches 12. The network elements 14 may for example comprise telephone exchanges such as AXE' s or similar but also PBX's. In a more generalized form the network elements are managed systems managed by the managing system. The basic principle for the caching scheme according to the invention is illustrated in Fig. 2 and involves defining associations 15 between requests 16 and reply objects 17, based on context . The functionality for the cache is preferably separated and easily adapted. Fig. 3 illustrates a completely separated caching module receiving and sending replies 17 and requests 16 and storing reply data objects 17. The definition of the association is easily changed through a separate definition of the association. An implementation where the associations between replies and requests are defined using regular expressions is preferred in order to have the highest flexibility possible. A very simple example of implementation is a scheme where the MML commands are used towards NE and obtain both context and operation type from the five letter starting word, e.g. for command "BGBSL", "BGBS" is used for defining context and "I" for defining operation type. Based on this, information algorithms are made as to find out when to pre-fetch data and when to judge cache to be invalid. Another scheme can be having a context symbolic word as NUMBERING or EXTENSION somewhere in the data sent and received, or to have numbering schemes that provides the association between the data sent and data received. The cache should send appropriate printout commands at start-up. It may be appropriate to delay the initiation of the cache so that it is performed at a time when the traffic is low. There should also exist a possibility for the system administrator to schedule a forced refresh of the cache. For configuration management there exist a use where telephone numbers and corresponding information are stored in a table. This information is frequently updated and an important functionality is to give a high level operator support for easy operation and overview. This function has a central role in the service installation procedures since it gives an overview of installed objects. This functionality is preferably executed on the client where the operator is, and performance can be optimized through a client based caching regarding the context of operations that has been previously performed during the same user session. A server based cache is an improvement because it takes advantage of the operations of other operators. There also exists a very straightforward way of analyzing and finding out that the process is performed within the context of this numbering table as the commands sent are easy to analyze and use as a basis for caching. The very simple use case is described here below with reference to Fig. 4, where the caching is only distributed as to client and server, but the same use case is also applicable when caching is distributed onto several servers and the context is described as network element area plus case context. The simple variant where all reply data for a context is stored in a single file is also chosen although variants with other storage forms and other schemes for division of data is also possible. A cached data context is affected by an operator operation In this use case the appropriate file is in the system cache. Flow of events: a The user makes an operation as to change a data item. b A request for a change is sent to the Netscape Enterprise server, see arrow 18. c The server checks if there is a file 17 in the cache that is related to the same context and deletes it if it exists . Appropriate file is stored in cache In this use case the appropriate file is in the system cache. Flow of events: a The user makes an operation as to view the numbering data . b A request for a printout is sent to the Netscape Enterprise server, see arrow 18. The server checks if there is a file 17 in the cache for that Business Group, c The appropriate file is sent to the client that parses it and displays the data, see arrow 19. Appropriate file is not stored in cache The appropriate file is not in the system cache. Flow of events: a The user makes an operation as to view the numbering data, b A request for a printout is sent to the Netscape Enterprise server, see arrow 18. The server checks if there is a file in the cache for that Business Group, c The right MML commands are sent to the NE, see arrows 20. d The NE sends the right printouts back to the server. e The server sends the printouts to the client that parses them and displays them for the operator, see arrows 21. An URL allows applications to retrieve objects through many different channels from completely different sources by simply specifying a string. The URL mechanism is very flexible and it contains a protocol, e.g. HTTP although others also can be used, a host address with a port and a resource identifier on that host. The identifier may be a simple name, a path name on disk or a query. The information for building the Man Machine language strings in the URL is preferably divided into one primary string and a longer information string. The primary string is preferably five characters long and constructed according to specific criteria whereby it also can be used as a basis for checking on allowed operations in a distributed manner. Particularly the primary string may be constructed according to specific criteria making it useable as an addressing means as well. All types of network elements may be used and it is also possible to use the same network but different protocols for communication with a particular type of network element. The telephone exchanges do furthermore of course not have to be AXEs and PBXs (such as e.g. MD110 of Ericsson) but it may be any kind and any combination of telephone exchanges. It should however be clear that the invention is not limited to telephone exchange (here relating to public as well as private exchanges) but it applies just as well to other kinds of managed systems, e.g. Voice over IP gateway or network elements managed by a managing system receiving applications executed in a client. Below a further implementation of the inventive concept will be described with reference to Figs. 6-8. A three layered architecture of management applications is found to be a good solution for addressing different user/operator needs. The management applications are connected with a software bus e.g. CORBA (Common Object Request Broker Architecture) over TCP/IP. The data are presented in more and more sophisticated ways for higher and higher layers and different types of data course also mean a performance problem. A need for caching will arise for several applications. The caching needs are described below with reference to figure 6. Fig. 6 shows a three layer management architecture wherein CX is taken to mean different caching aggregates from sublevel sources. Examples thereon are Cl representing caching lists from several sources, C2 representing caching of network connection information from several nodes and C3 representing caching user information from whole network. The problem encountered is mainly the one of knowing when to refresh the cache due to operations made in a distributed way. This is further described in accordance with figure 7. There are two objects 01 and 02 with attributes Al, A2 and A3 in two applications on one management level. In two applications on a sublevel there are two objects 03 and 04 that also contain the same attributes. This will mean that the values of the attributes on the higher level need to be cached. An operation on Al in the first higher level application is directly changing Al in 03 in the lower level application but how should the second higher level application be aware of the change of 02. The same applies also if object 03 has a feature that makes an operation on A3 also indirectly changing Al . The solution according to the invention for this problem is a refresh trigger mechanism based on context, cf. Fig 8. An example of how to structure a refresh trigger mechanism is described in figure 8. In object 01 attribute A3 is modified and then a modification trigger 1 starts a context association procedure. This procedure can be a simple hardcoded table of attribute values and corresponding objects but may also be a sophisticated standalone program with database tables and communication with CORBA catalogue services etc. The DNS (Domain Name System) is a hierarchical structure that is a very suitable source for context associations 2. The procedure make a refresh triggering call 3 to the objects it has found to be affected. Thereby a very generic mechanism can be used to keep all objects updated. It should be clear that the invention is of course not limited to the particularly illustrated embodiments but that it can be varied in a number of ways within the scope of the appended claims.

Claims: CLAIMS 1. A communication system for providing distributed caching of reply data objects (17) within a packet data network comprising network elements (14), a client terminal (10) and at least two intermediary Web caches (12), c h a r a c t e r i z e d i n that each cache (12) is provided with information handling means for defining both object operation type and object context, that the data in a request is separated into context defining data and pure information data and in that the associations between context in requests and replies are used for discriminating between relevant and irrelevant reply data. 2. A communication system according to claim 1, c h a r a c t e r i z e d i n that the associations between context in requests and replies are used for discriminating between relevant and no longer relevant reply data. 3. A communication system according to claim 1 or 2, c h a r a c t e r i z e d i n that the context defining data contains information data. 4. A communication system according to any one of claims 1-3, c h a r a c t e r i z e d i n that caching context scope is defined independently for a server in the network. 5. A communication system according to any one of claims 1-4, c h a r a c t e r i z e d i n that caching functionality is separated with reference to requesting and replying. 6. A communication system according to any one of claims 1-5, c h a r a c t e r i z e d i n that the definition of the associations may be changed. 7. A communication system according to any one of claims 1-6, c h a r a c t e r i z e d i n that need for refreshing a cache is determined by means of caching algorithms using information as to operation type. 8. A communication system according to claim 7, c h a r a c t e r i z e d i n that the operation types include CREATE, DELETE and LIST. 9. A communication system according to claim 8, c h a r a c t e r i z e d i n that the operation type information is packaged for easy access. 10. A communication system according to any one of claims 1-9, c h a r a c t e r i z e d i n a gradual pre-fetch of cache data. 11. A communication system according to claim 10, c h a r a c t e r i z e d i n that said pre-fetching of cache data is based on read operations for data within the same context. 12. A communication system according to claim 10 or 11, c h a r a c t e r i z e d i n that said pre-fetching of data is performed at start-up. 13. A communication system according to any one of claims 10-12, c h a r a c t e r i z e d i n that a part or parts of a cache is updated by an operator by manually choosing a new context. 14. A method of providing distributed caching of reply data objects (17) within a packet data network (10, 11, 13, 14), c h a r a c t e r i z e d i n. that it comprises the steps of: - using context associations between requests and replies in the object (17) caching process; separating data in a request into context defining data and information data; using the associations between context in requests and replies for discriminating between relevant and irrelevant reply data. 15. A method according to claim 14, c h a r a c t e r i z e d i n that the discrimination is done between relevant and no longer relevant reply data. 16. A method according to any one of claims 14 or 15, c h a r a c t e r i z e d i n that it comprises the steps of: separating caching functionality with reference to requesting and replying. 17. A method according to any one of claims 14-16, c h a r a c t e r i z e d i n that it comprises the steps of: gradually pre-fetching cache data, and basing said pre-fetching of cache data on read operations for data within the same context. 18. A method according to any one of claims 14-17, c h a r a c t e r i z e d i n the it comprises the step of: using Man Machine Language for communication towards Network Elements .

Inventors: KRIENS PETER, LENANDER JAN, THOREN PATRICK, KRIENS, PETER, LENANDER, JAN, THOREN, PATRICK
Applicants: ERICSSON TELEFON AB L M, TELEFONAKTIEBOLAGET LM ERICSSON (PUBL)
Application year: 1999
Main classification: G06F12
IPC codes: G06F17