Abstract:
The invention concerns a method of synchronizing a distributed system comprising a server ( 2 ) having a master data base ( 21 ) and a set of clients ( 31  to  35 ) having respective client data bases ( 41  to  45 ), as well as a server and a computer program product for executing this method. The client data bases ( 41  to  45 ) are incrementally updated from the master-data base ( 21 ) of the server ( 2 ). A trace of transaction ( 22 ) is maintained at the server ( 2 ) for recovery. The server ( 2 ) synchronizes the client data bases ( 41  to  45 ) in case of a failure by coordinated rollback transactions from the trace ( 22 ).

Description:
TECHNICAL FIELD  
       [0001]     The invention relates to a method of synchronizing a distributed system comprising a server having a master-data base and a set of clients having respective client data bases, as well as a server and a computer program product for executing this method.  
         [0002]     The invention is based on a priority application, EP 04290733.7, which is hereby incorporated by reference.  
       BACKGROUND OF THE INVENTION  
       [0003]     Today&#39;s telecommunications systems provide a plurality of complexed routing services, for example number portability services, and enhanced services, as IN based information services (IN=Intelligent Network). The telecommunication systems consist of various network elements, for example exchanges, signaling transfer points, service switching points and service control points which are interacting to provide these services to subscribers of the telecommunication system. In such distributed system, service data has to be accessed by various network elements which use different platforms and different data base management systems to administrate their view of the service data. Further, the consistency of the distributed service data has to be kept in such heterogeneous distributed system to ensure a proper provision of the services.  
         [0004]     In such environment it is a problem to keep the data of one or more remote data bases of network elements synchronous to one master-data base, where master-data base and remote data base are located on different platforms and using different data base management systems.  
         [0005]     Caused by customer requirements it is often not possible in such environment to work with remote data base management systems or to store data on the remote system due to the fact that communication is only possible via different protocols. Further, the response time of the remote systems are often about some seconds. To apply a “2-phase” commit algorithm used to ensure the integrity of a committing transaction and sometimes provided by the data base management system is not possible since each data base uses a different data base management system and this functionality is not supported by the communication protocols.  
       SUMMARY OF THE INVENTION  
       [0006]     It is the object of the present invention to provide an improved synchronization of a distributed system comprising a server having a master-data base and a set of clients having respective client data bases.  
         [0007]     The object of the present invention is achieved by a method of synchronizing such distributed system, the method comprising the steps of: incrementally updating client data basics of the clients from the master-data base of the server; maintaining a trace of transaction at the server for recovery; and synchronizing the client data bases in case of a failure by coordinated rollback transactions from the trace. The object of the present invention is further achieved by a server for synchronizing such distributed system, the server having a master-data base, a communication unit for communicating with a set of clients having respective client data bases, and a control unit for incrementally updating client data bases of the clients from the master data base of the server, maintaining a trace of transactions for recovery, and synchronizing the client data bases in case of a failure by coordinated rollback transactions from the trace. The object of the present invention is further achieved by a computer program product for synchronizing such distributed system, the computer program product, when executed by the server, performs the steps of: incrementally updating client data bases of the clients from the master-data base of the server, maintaining a trace of transactions at the server for recovery, and synchronizing the client data base in case of a failure by coordinated rollback transactions from the trace.  
         [0008]     The invention makes it possible to improve the performance and the throughput of the synchronization procedure compared with alternative approaches as long term replication transactions, workflow agents forcing distributed consistencies, lazy updates and incremental updates with locks. It becomes possible to already start the next transaction without waiting on the commitment of the previous transaction. The recovery responsibility is distributed between a mediator of the server and the clients. The mediator maintains a shallow copy of each replication transaction. In case of a failure detection the copy is used to enforce a distributed consistent rollback. The clients maintain the transaction properties within its respective view. This approach is well adapted to the specific constraints and requirements of a telecommunication system with a plurality of interacting network elements, wherein the response times of the remote systems are about some seconds and the use of a common data base management system is not possible due to the use of different platforms and different data base management systems at different network elements. Further, the invention integrates well in such existing telecommunication infrastructure. Therefore, the invention combines higher performant fail save robust operations with minimized integration costs.  
         [0009]     Further advantages are achieved by the embodiments of the invention indicated by the dependent claims.  
         [0010]     Preferably, the invention is applied to the synchronization of service data between a service provisioning system and various signaling transfer points, wherein the synchronization process implements number of portability functions within a telecommunication network. The telecommunication network has different network operators providing their services within the same area. To improve competitiveness between such providers, it is necessary that a subscriber may keep his telephone number when changing from one network operator to another network operator. Therefore, a fixed assignment of number ranges to network operator is not longer possible and exceptions, i.e. a change of a subscriber from one network operator to another network operator, has to be respected within the routing of the telecommunication network. To provide such functionality within a communication network, the routing tables of signaling transfer points of the telecommunication network are modified by the service provisioning system. The service provisioning system keeps a master-data base having the overview about the routing tables of the signaling transfer points. Each of the signaling transfer points has a client data base keeping the respective routing table and representing the view of the respective signaling transfer points. The invention is now applied to execute a change request requesting e.g. the portation of a specific subscriber from one network operator to another network operator. A master-data base of the service provisioning system is changed according to the update requests and the client data bases are incrementally updated according to this change request. The service provisioning system maintains a trace of these transactions and synchronizes the client data bases in case of a failure by coordinated rollback transactions from the trace.  
         [0011]     According to a preferred embodiment of the invention, the server has a mediator which maintains a trace of transactions. When starting a new transaction, the mediator of the server is triggered for maintaining the trace. The mediator stores reference data of the transaction and related meta-information including rollback information and information which clients have to process data of the transaction. Preferably, the mediator stores these data in a persistence replication queue. That concept guarantees high performance, fail save and robust operations.  
         [0012]     When all clients have confirmed the updates related to one request, a commit is done for the changes in the masterdatabase and the mediator(s) are informed about the final commit. Usually there is not transaction oriented interface to the clients but the clients can only perform each change request (e.g. command or CMISE operation; CMISE=Common Management Interaction Service Element) separately. Therefore in the replication queue for each request the actions to do as well as the actions to undo the changes in case of rollback are stored. A request in that sense means a list of change requests which shall be performed within one transaction, i.e. either completely perform all the changes or (if not possible) restore the situation as if no changed would have been done. When a rollback of a request becomes necessary for each operation of the request a client has performed until this time the corresponding undo change request (command or CMISE operation) has to be sent to the client. The latter task is performed by the mediator(s).  
         [0013]     Further, the server preferably removes the data relating to a transaction from the replication queue, if all clients involved in the transaction have returned an acknowledgement message confirming the execution of the respective update of the respective client data base. For example, the mediator removes, after a final commitment, the data associated with the concerned request from the replication queue if all clients have confirmed the execution of all updates corresponding to the request. This approach reduces the memory space that has to be reserved within the server for maintaining a trace of transactions.  
         [0014]     According to a preferred embodiment of the invention, the mediator sends a rollback message to all clients affected, if it detects a failure, e.g. a breakdown of the server, a breakdown of the client or a breakdown of the communication link between the server and the client. Such rollback message can consist of one or a set of single undo change request(s) (commands or CMISE operations) per action sent by the mediator to be undone for rollback of the request. In the following, the client undo the previous changes of the respective client data base indicated by the rollback message. But, it is also possible that the client keeps his own trace and the client uses the information of the rollback message as well as its own trace to undo the previous changes of its respective client data base.  
         [0015]     Preferably, the server accesses the client data bases through associated client data base adapters running on the system platform of the server. Client data base adapters manage a replication of the respective client data base and access the persistence replication-queue storing reference data of consecutive transactions linked with related dedicated meta-data including rollback information and information which client has to process data of the respective transaction. From logical point of view the handling is like there would be one replication queue per client. Physically this replication queues have been compressed into one replication queue by adding a piece of information (bitmap) indicating for which clients a certain entry in the replication queue is valid. The informations in the replication queue are stored in a client independent manner and the said adapters perform the necessary adaptions related to the protocol of the interface to the client (including the command set) and/or the database system of the clients. This approach increases the throughput of the synchronization system as well as reduces the implementation costs necessary for implementing the link with the client data bases. 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0016]     These as well as further features and advantages of the invention will be better appreciated by reading the following detailed description of presently preferred exemplary embodiments taken in conjunction with accompanying drawings in which:  
         [0017]      FIG. 1  is a block diagram showing a telecommunication system with a server for synchronizing a distributed system according to the present invention.  
         [0018]      FIG. 2  shows a block diagram of the server of  FIG. 1 .  
     
    
     DETAILED DESCRIPTION OF THE INVENTION  
       [0019]      FIG. 1  shows a telecommunication system with various terminals  51  to  54 , a server  55 , a telecommunication network  1  and a service provisioning system  2 .  
         [0020]     The telecommunication network  1  is a telephone network, e.g. a PSTN or ISDN network (PSTN=Public Switched Telecommunication Network; ISDN=Integrated Services Digital Network). It is possible that the telecommunication network  1  is a mobile telecommunication network, for example according to the GSM or UMTS standard (GSM=Global System for Mobile Communication; UMTS=Universal Mobile Telecommunications System) or is a telecommunication network which provides mobile and fixed telecommunication services. The telecommunication network  1  may be operated by different competing network operators. Further, it is possible that the telecommunication network  1  is a data network or provides beside telephone services data and video transmission services.  
         [0021]     The telecommunication network  1  is formed by a plurality of different network elements, e.g. exchanges, switches, routers, signaling transfer points, service control points and service switching points.  FIG. 1  exemplary shows five network elements of these network elements, namely the network elements  31 ,  32 ,  33 ,  34  and  35 .  
         [0022]     According to the embodiment of  FIG. 1 , the network elements  31  to  35  are signaling transfer points of the telecommunication network  1 . But, it is also possible that these network elements are constituted by a mixed set of different network elements of the telecommunication network  1 .  
         [0023]     Each of the network elements  31  to  35  has a respective data base  41 ,  42 ,  43 ,  44  and  45 . These data bases store service data of the respective network elements that control the routing or service provisioning behavior of the respective network element. Preferably, the data bases  41  to  45  are managed by at least two different kinds of data base management systems, i.e. we have a heterogeneous data base management system environment.  
         [0024]     The terminals  51  to  54  are operator terminals providing a human machine interface to agents of the network operators administrating the telecommunication network  1 . For example, the terminals  51  to  54  are respectively formed by a computer linked via a local area network with the service provisioning system  2 .  
         [0025]     The server  55  exemplifies a server connected with the service provisioning system  2  via a data network, wherein the server  55  automatically generates and/or forwards change requests to the service provisioning system  2 .  
         [0026]     The service provisioning system  2  is constituted by one or several interlinked computers, a software platform and various application programs executed on the system platform formed by the hardware and software platform. The functionalities of the service provisioning system  2  are performed by the execution of these application programs on the system platform. The application programs controlling in such way the provisioning of the functionalities of the service provisioning system  2  forms as such or stored on a computer readable storage medium a computer program product for synchronizing a distributed system.  
         [0027]     From functional point of view, the service provisioning system  2  has a master data base  21  and a trace keeping unit  22 . It plays a server role with regard to the network elements  31  to  35  which plays a client role.  
         [0028]     The service provisioning system  2  receives from the terminals  51  to  54  and from the server  55  change requests requesting the update of service data which are relevant for network element of the telecommunication network  1 . The service provisioning system  2  keeps in its master-data base  21  an overview of the service data stored in the data bases  41  to  45  of the network elements  31  to  35 . According to the received change requests, the service provisioning system incrementally updating its master-data base  21  and, in parallel, incrementally updating client data bases of the network elements  31  to  35  effected by the respective change of master data base  21 . When starting a new transaction, the service provisioning system  2  stores the data of the transaction in the master-data base, determines the potential clients of the transaction and contacts the respective ones of the network elements  31  to  35  for updating their respective client data base. Further, it maintains a trace of transactions for recovery. For example, it stores reference data of the transaction and related information including rollback information and information which clients have to process the data of the transactions within the trace keeping unit  22 .  
         [0029]     When having successfully executed the respective update of the respective client data base, the network elements  31  to  35  confirms this execution towards the service provisioning system  2  by returning a corresponding acknowledgment message. The service provisioning system  2  checks, whether all of the network elements contacted for a transaction return such acknowledgment messages. If it detects that all clients involved in the transaction have returned such acknowledgement message, it removes the data relating to the transaction from the trace keeping unit  22 . Further, it commits the change in the master-data base. In case it detects a failure, for example a breakdown of the service provisioning system  2  or a breakdown of one of the involved network elements, it sends one or a set of undo change requests to all clients affected to undo the previous changes of their respective client data bases. The breakdown of one of the network elements  31  to  35  is for example detected by a watch-dog-timer checking the response time of the acknowledgment messages expected from the involved network elements.  
         [0030]     Due to the above-specified mechanism, it is possible to execute further changes in the master-data base  21  and in the client data bases  41  to  45  without waiting on such final confirmation. Since the response time of the network elements  31  to  35  is in the range of some seconds, a plurality of subsequent change requests may already be executed in the master-data base  21  and in the client data bases  41  to  45 , before the execution of the first exchange is finally committed by the system. But, it is still possible to keep the consistency of the distributed system in case of a failure.  
         [0031]     In the following, details of the service provisioning system  2  are exemplified by means of  FIG. 2 .  
         [0032]      FIG. 2  shows the service provisioning system  2  and the network elements  31  to  35  with the data bases  41  to  45 . From functional point of view, the service provisioning system  2  has a control unit  23  and a communication unit  24 .  
         [0033]     The communication unit  24  comprises the necessary functionalities for communicating with the network elements  31  to  35 . For example, the communication unit  24  comprises functionalities for executing the necessary communication protocols, for example the OSI protocol stack or the TCP/IP protocol stack (TCP=Transmission Control Protocol, IP=Internet Protocol). Further, the communication unit  24  comprises data base adapters  61  to  65  that comprise the necessary functionalities for remotely accessing data of the data bases  41  to  45 . The data bases  41  to  45  are managed by different data base management systems. For example, the data bases  41  and  42  are managed by a first kind of data base management system, the data bases  43  and  44  are managed by a second kind of data base management system and the data base  45  is managed by a third kind of data base management system. The data base adapter  61  provides a remote access to the data base  41  of the network element  31  and the data base adapter  62  provides a remote access to the data base  42  of the network element  32 , wherein the data base  41  and  42  are both managed by the same kind of data base management system. The data base adapters  63  and  64  provide remote access to the data bases  43  and  44  of the network elements  33  and  34 , respectively, wherein the data bases  43  and  44  are managed by the same kind of data base management system. The data base adapter  65  provides a remote access to the data base  45  of the network element  35 .  
         [0034]     The control unit  23  comprises a mediator  26 , a data base control  25 , the master-data base  21  and the trace keeping unit  22  storing a persistent replication queue.  
         [0035]     The data base controller  25  receives change requests from the terminals  51  to  54  and from the server  55 . For example, the data base controller  25  receives the change request  7 .  
         [0036]     When receiving the change request  7 , the data base controller  25  starts a new transaction and writes the data specified in the change request into the master data base  21 . Further, it determines the potential clients of the transaction and the respective client data changes by means of the data stored in the master data base  21 . When starting the new transaction, the data base controller  25  further triggers the mediator  26 .  
         [0037]     The mediator  26  stores reference data of the transaction together with rollback information and the information which client has to process this data in the persistence replication queue of the trace keeping unit  22  and contacts the potential client of the transaction. For example, it contacts the data base adapters  61 ,  62 ,  63 ,  64  and  65  and specifies the requested update of the respective client data base towards these data base adapters.  
         [0038]     The data base adapters  61  to  65  sends the data to its network element to get the result of the respective remote data base management system handling the respective client data base  41 ,  42 ,  43 ,  44  and  45 . This can take several seconds. If the update of the respective remote data base was successful or if the network element was not responding, the data base adapter returns a kind of OK-message, i.e. data was not rejected by the network element, otherwise it returns a NOK-message, i.e. data has been rejected by network element.  
         [0039]     The further behavior of the control unit  23  depends on the messages received from the clients.  
         [0040]     If one of the clients has responded a NOK-Message to the mediator  26 , the data base adapters  61  to  65  performs a rollback on its respective data base. The mediator  26  sends rollback messages to all clients, to trigger this procedure. The data base adapters  61  to  65  use the rollback information from the replication queue of the trace keeping unit  22  to undo all previous changes.  
         [0041]     If all clients have responded an OK-message to the mediator  26 , the data base adapters  61  to  65  commit the changes in the master-data base  21 . If this was successful, the mediator  26  sends a final commitment to all data base adaptors involved to clear theirs resources. The adaptors will then clear their resources related to the concerned transaction. Furthermore the entry in the persistent replication queue will be deleted when all clients have responded an ok message.  
         [0042]     If a client has responded that he was unable to deliver the data, the mediator  26  updates all the meta-information in the replication queue of the trace keeping unit  22  and keeps the reference data. Otherwise, the whole entry is deleted. If a client reestablishes the connections to the network element later, the data base adapter can send the data from the persistent replication queue to the network element. After the successful update of the client data base of the respective network element, the data base adapter checks the meta-information concerning the point whether it was the last client of all this data. If it was the last one, the data base adapter removes the data from the replication queue of the trace keeping unit  22 . Otherwise, it modifies only the meta-information.  
         [0043]     If a failure occurs during the commitment of the master data base, a rollback message is sent to the clients like in the case specified above.  
         [0044]     Due to the long transfer time of the requests from the data base adapters  61  to  65  to the network elements  31  to  35 , it is possible that the system or a single module of the system is going down during one transaction. To prevent inconsistencies caused by the shut-down, different approaches may be used to resynchronizes the master-data base  21  and the client data bases  41  to  45  during startup of each module:  
         [0045]     In case the whole system falls down following steps are performed:  
         [0046]     The changes in the master-data base  21  are rolled back by help of the data base management system of the master-data base  21 . If the mediator detects an unfinished request in the replication-queue, it sends rollback messages to all affected clients and the clients undo the changes of the requests in the client data bases  41  to  45 .  
         [0047]     In case, one or all of the data base adapters  61  to  65  were down, following steps are performed:  
         [0048]     If the respective data base adapter detects unfinished requests in the data base, the data base adapter queries the dedicated client data base to detect which changes have already been done. Then, the data base adapter finishes the request.