Abstract:
Technique for reducing start-up time of a computerized system comprising a computer application with a data base DB and one or more functional blocks with respective memories; the system comprises a communication network being managed by the computer application. The technique comprises providing each of said functional blocks with basic information about the communication network; updating the functional blocks about changes whenever take place in the network; updating objects in the base DB by the updated functional blocks; creating an image of at least one functional block of the blocks in a persistent memory, building a changes log and to in case of failure of the mentioned functional block, promptly restoring thereof by using the image in the persistent memory and the changes log.

Description:
FIELD OF THE INVENTION 
       [0001]    The present invention relates to the field of operating computerized systems, especially—distributed systems which comprise computer programs responsible for treatment/monitoring/controlling of some underlying network elements. In one implementation, the invention may relate to management systems for telecommunication networks. 
       BACKGROUND OF THE INVENTION 
       [0002]    The topic of monitoring and/or controlling of real objects in real time by computerized systems is quite well known, and problems related to such applications have been studied at least during the recent decade. 
         [0003]    Some known solutions are as follows: 
         [0004]    U.S. Pat. No. 4,905,196β In order to reduce the down time of a computer caused by a fault or interrupt in the program run, program recovery points are provided which are time-dependent or can be preset in the main program of a useful program, and when these recovery points are reached, the computer status is stored in at least one fault-tolerant archival memory. The computer status includes the status of the variables of a useful program being executed, the register status of the processor and the register status of the input/output devices of the computer. During execution of the useful program, at least a part of the current computer status is stored in a main memory and copied into an archival memory when a program recovery point is reached. By using a small, fast cache memory between the processor and the main memory, the write cycles in the archival memories may be reduced since a variable is replaced in the main memory only when it is displaced from the cache memory by a variable which may have been updated several times. A further improvement is achieved by using an associative stack on the bus) as the main and the two archival memories. All modifications in the main memory) are simultaneously entered into the stack and into an archival memory without involving the processor. In the stack, address data pairs are entered in the order of occurrence, a character recording the respective state of the stack and allocating locations to new address/data pairs. At the recovery point, only updated data need to be transferred into the archival memory. The main memory can be integrated into an archival memory having a read/write memory area and a fault-tolerant tributary memory area. A cascaded memory or a virtual memory of the computer can also be used for saving the computer status. 
         [0005]    US2006085418β describes a system and method for providing a shared RAM cache of a database, accessible by multiple processes. By sharing a single cache rather than local copies of the database, memory is saved and synchronization of data accessed by different processes is assured. Synchronization between the database and the shared cache is assured by using a unidirectional notification mechanism between the database and the shared cache. Client APIs within the processes search the data within the shared cache directly, rather than by making a request to a database server. Therefore server load is not affected by the number of requesting applications and data fetch time is not affected by Inter-Process Communication delay or by additional context switching. A new synchronization scheme allows multiple processes to be used in building and maintaining the cache, thus reducing the start up time. 
         [0006]    To the best of the Applicant&#39;s knowledge, there is no suitable and effective techniques for shortening start-up time of a computerized system that performs monitoring/control of a real (i.e., large and complex) communication network. Still, there is a long felt need in such a technique. 
       SUMMARY OF THE INVENTION 
       [0007]    The Inventors propose a new technique for reducing start up time of a computer application, such as a computerized control and/or management system—for example a network management system (NMS). 
         [0008]    A method for reducing start-up time of a computerized system including a computer application (for example, such as a Network Management System NMS) comprising its data base DB and one or more functional blocks (such as executable software processes) with respective memories and also including a communication network interacting with and being controlled/managed by the computer application, the method comprising:
       providing each of said functional blocks with basic information about the communication network, required for performing functions of said functional block, —updating each of said functional blocks (for example by collecting and processing notifications issued from said communication network) about changes whenever take place in the network;   updating objects (records) in said data base DB by the updated functional blocks; the method further comprises performing the following operations:   periodically (or from time to time) creating an image of at least one functional block of said blocks in a persistent memory, by mapping at least the memory of said at least one functional block in said persistent memory;   building a changes log by immediately logging to it updates of the updated objects of the data base DB; and   in case of failure of said at least one functional block, promptly restoring thereof by using said image in the persistent memory and said changes log, thereby safely maintaining control/management of the communication network.       
 
         [0014]    It should be explained that the memory of each specific functional block is intended for in-memory data storage where its data is a part of the information stored in the application&#39;s disk storage (such as database DB of the NMS). The data is initially loaded from that storage, while is suitably transformed to become part of the specific functional block. It should be kept in mind that loading and transforming of the information when loading to the functional block(s) usually takes quite a lot of time, and the proposed invention is going to solve such a problem in cases when one or more of the functional blocks fail, or the whole application has to be restarted for any reason—and therefore require reloading of the suitable data. 
         [0015]    For example, the functional blocks with their in-memory data are responsible for respective physical/technological processes for control and/or management of an under-laying communication network comprising network elements. 
         [0016]    The step of providing each of said functional blocks with basic information may comprise an operation of loading topological data about the network to the functional blocks and, there-from, to the data base DB of the computerized application. 
         [0017]    In case of restarting the application due to crash of one of its functional blocks, the method may comprise loading, to the memory of the failed functional block, said image of the failed functional block, and correcting the loaded image using changes stored in said changes log, including changes induced by other functional blocks if remain alive during the crash. 
         [0018]    Updating the functional blocks comprises updating of their memory and may comprise one or more of the following: collecting and processing the notifications, exchanging information concerning the changes, such as the processed notifications, between the functional blocks. Exchange of the information may allow updating of the functional blocks not only about direct changes in the networks but also about some relations/updates which have been altered due to the changes. However, update of the functional blocks may be caused by other reasons/orders, for example by the computerized application itself (say, by orders within NMS or from an operator). As has been mentioned, updates of the functional blocks are quite immediately reflected in the data base DB. 
         [0019]    The mentioned image should be created in some persistent memory block which does not drop data when detached from a power source, and may be created by
       mapping or serializing data of said at least one functional block from time to time, and by building a backup (a backup file or a memory dump/section) using the serialized representation of the data, thus obtaining the mentioned image;   providing said image with time indication of last update of the memory of the functional block.       
 
         [0022]    When speaking about serializing data of the functional block, we mean at least serializing the data from memory of the functional block. 
         [0023]    The operation of building the changes log comprises providing each entry to the log with a timestamp (say, in the form of indication of time or in the form of counter of updates) and identification of the relevant objects (i.e., of the DB records) which is/are affected by the specific entry concerning the change. 
         [0024]    When re-loading the memory of the functional block, all such objects should be identified using the log, and the functional block&#39;s memory should be then updated using the identified objects, up to the latest update of the data base. 
         [0025]    In case of an expected or unexpected shutdown of a specific functional block in the system (i.e., said at least one functional block which has been provided with backup according to the proposed invention), the method further comprises:
       restoring said specific functional block by using said image having the latest timestamp (time indication/counter of updates, in the preferred case, since the last serialization) and by updating said image by utilizing objects of the DB which IDs are registered in the changes log since the time indicated as the latest time indication of said image.       
 
         [0027]    It is understood to those skilled in the art that, during a normal course of operation, the computer application is being dynamically updated due to dynamic processes taking place in the under-laying communication network. Actually, the authors propose periodically serializing memory of the functional blocks while registering the dynamic changes/updates in the changes log in a systematic manner, with indication of time and relevant objects in the DB, to allow using these updates for accelerating restart of the computerized application. 
         [0028]    In other words, to achieve decreasing the computerized application&#39;s start-up time upon failure of the application, when re-staring the application, the method may comprise the following practical steps:
       1. Loading so-called main required data (say, all topological data about the network) to the memory of functional blocks from a regular data base DB of the computerized application); the data may be transformed while loading;
 
Dynamically managing changes of the main data by updating the functional blocks and then saving the updates in the changes log (a block of persistence memory), with a “timestamp”/index of each change. The log of changes can be fed/maintained by more than one functional blocks (i.e., software supported processes, executable processes) in the system, or other components of the system (such as NMSTM, NMSTO, NMSEvMS) NMSEvMS—is a process that serves as the interface to notifications received from EMSs (Element Management systems), being responsible for writing the network changes to the DB. NMSTM/NMSTO—examples of processes that write, for example, so-called top down changes to the DB (i.e., changes that are triggered by the operator).
   2. Dynamically managing changes of the main data by updating the functional blocks, the DB and then saving the updates in the changes log (say, a block of persistence memory), with a “timestamp”/index of each change. The log of changes can be fed/maintained by participation of more than one functional blocks (i.e., software supported processes, executable processes such as TM, TO, EvMS), or other components of the system.   3. When saving some changes in the memory of functional blocks (in the course of the above-mentioned managing and updating), performing the following operations by the functional blocks:
           Registering these changes in the regular DB of the application by updating suitable objects (records) in the DB;   Saving identification of the changed objects/records, with their suitable timestamps, in the changes log;   sending updates from a specific functional block to other functional block(s) if appropriate.   
           4. Periodically mapping/serializing the main data (located at least in the memory of the functional block) with a current “timestamp”/index to create the image of the functional block in the mentioned backup file or in another persistent memory device (file or DB, disc, etc.);   5. Reloading the stored image (i.e., the last serialized data) in case of the application&#39;s (NMS) or the functional block&#39;s crash, when restart is required;   6. Updating the reloaded data by the logged changes, beginning from the latest “timestamp”/index of the serialized/stored image and updating it with all relevant changes available in the changes log, beginning from the timestamp of the last serialization up to the latest timestamp of the changes. These updates may be stored in the changes log by participation of other functional blocks as well as by components/processes of the system, which remain alive during the crash.       
 
         [0038]    The inventive concept covers the above-described method, its various versions, a computerized application capable of implementing the inventive method, a combined system comprising the computerized system and a communication network controlled and maintained by the computerized system, and a suitable software product. 
         [0039]    Namely, the proposed computerized application comprises a data base DB and one or more functional blocks (such as executable software processes or the like with respective memories) responsible for control or management of an under-laying communication network composed from network elements, the computerized application being designed so that: 
         [0000]    each of said functional blocks is adapted to be preliminarily provided with main information about the communication network, for performing functions of said block,
 
each of said functional blocks being updatable about changes whenever take place in the network;
 
the DB being adapted to reflect updates of said functional blocks;
 
the computerized application further comprising an additional persistent memory and a changes log, for fast re-start—for example in case of failure of at least one functional block; and
 
         [0040]    the computerized application being adapted for 
         [0041]    periodically creating image of at least one of said functional blocks in said persistent memory; 
         [0042]    immediately updating said change log about updates taking place in the DB (for example, updates resulted from processing said notifications in said respective functional blocks, exchange of information between the blocks, and/or other events such as commands), 
         [0000]    the computerized application being also adapted, in case of failure of said at least one functional block or restart of the application, to allow fast restoration of the functional block by using said image and said changes log, thus rendering fast re-start of the computerized application. 
         [0043]    The proposed system may comprise the above-described application (preferably NMS) and an underlying communication network which is being controlled/managed by the application (NMS). 
         [0044]    A software product proposed by the Inventors comprises computer implementable instructions and/or data for carrying out operations according to the above-described method, stored on an appropriate computer readable storage medium so that the software is capable of enabling operations of said method when used on a computer (processor). The software product is accommodated in the computerized application, in a specific example—in NMS. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0045]    The above invention will be further described and illustrated with reference to the following non-limiting drawings, in which 
           [0046]      FIG. 1  schematically illustrates a computerized system (for example, NMS) being part of the newly proposed technique. 
           [0047]      FIG. 2  schematically illustrates the system proposed by the inventors, capable of urgently self-recovering in case of failure of one or more elements thereof. 
       
    
    
     DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS 
       [0048]      FIG. 1  shows an example where a network management system NMS  10 , comprising a Data Base  12  and a number of functional blocks shown as software processes/programs (four of them P 1 -P 4  are shown), interacts with a number of Element Management Systems (EMS 1 -EMS 100  are shown). Each of the EMSs governs one or more network elements NEs of an under-laying communication network (not shown). Let all the processes P 1 -P 4  run independently from one another and interact with the Data Base DB  12 . Note that each EMS receives from the NMS commands (downstream arrows between NMS and EMS, such as commands “set”, “get”, etc), and sends to the NMS all required information about EMSs and the whole network of NEs, and also sends notifications about changes in its under-laying network of NEs. The notifications arrive to the NMS and are directed to one or more respective processes P 1 -P 4 , and each of the P 1 -P 4  may forward a specific notification to a suitable another process, thereby selectively exchanging notifications there-between. Notifications are shown by dashed arrows in  FIG. 1 . From time to time, processes write down their internal updates to the DB  12  (see solid arrows towards the DB shown in  FIG. 1 ). 
         [0049]    All required information collected from the EMS-s is sufficient to form an image of topology of the network (sometimes not only of topology, for example—of states of the network elements NEs), and is stored in the data base DB  12 . In case of any failure in the NMS or one or more of its processes P 1 -PN, followed by restarting the failed process or the whole system, —upload of the information from DB  12  will take quite a lot of time. It should be noted that data stored in and utilized by any one of the processes P 1 -P 4  cannot be recovered when the process is crashed—in other words, the memory of the software process is normally not persistent and drops data when the software application is shutdown. It should be noted, that the process(es) may update themselves (see dashed arrows closed to their own blocks Pi). 
         [0050]    Prior art references recognize that changes in a network which are reported by notifications should be stored as well, but such a process may be performed in many different ways, and not all are effective. 
         [0051]    The Inventors propose an effective new method. The process/technique for performing the above task is schematically illustrated in  FIG. 2 . 
         [0052]      FIG. 2  schematically illustrates a sub-system  20  proposed by the Inventors, which comprises a so-called regular mode plane  22  and a so-called backup memory  24 . 
         [0053]    Actually, the sub-system  20  comprises the discussed computer application such as a Network Management System NMS, and the complete proposed computerized system also includes a communication network (not shown but comprising network elements NEs and their management systems EMSs similar to those shown in  FIG. 1 ). The regular mode plane  22  comprises at least one first (main) functional block, for example the software process P 1  described above in  FIG. 1 . The process communicates with the above-mentioned network (N) by obtaining notifications about changes there-from. Upon processing the notifications inside the functional blocks, and upon processing their own changes/updates, the processed changes may be written down in a changes log  26 , wherein each such entry in the log  26  should be accompanied with an indication of time/time counter/timestamp and an indication (ID) of the relevant object in the DB. The Inventors propose that the log  26  be a part of the data base  12 ′, but log  26  may be a separate memory unit. 
         [0054]    The application object/process/block P 1  is initially fed by so-called main data of the network (data about network elements and connections there-between which forms a so-called “image of the network”  25  in the application P 1 . For the first time, the main data (say, on topology) is provided to P 1  directly from EMSses or preferably, via the data base DB; connections/rules are created in each of the Pi for its own purposes. 
         [0055]    (As we remember, in the prior art data base DB served as backup for information used by the software processes. In case of any crash in the system, recovery of information from the DB was usually very slow). 
         [0056]    In our proposed case, when the processes/applications (P 1 -PN in this example) and the whole NMS work without problems, notifications  27  about changes in the network will reach the relevant processes P 1 -PN and then, upon processing in the P 1 -PN, will be posted in DB and there-from—the changes log  26 . Each entry in the log  26  will be provided with a timestamp and indication (ID) of the relevant object in the DB. This will allow, if recovery becomes necessary, reading from the DB only the objects which have been changed according to the information posted in the log  26 . It should be noted that the processes (functional blocks P 1 -PN) should be updatable also by exchange of information there-between and by commands of the NMS and/or of the operator. DB of the application should also be updated about such changes in the P 1 -PN. 
         [0057]    The second plane  24 —a so-called backup memory—comprises a persistent (temporary or constant) memory  28  for providing quick backup to one or more application objects/processes of the NMS. 
         [0058]    All information from at least one (and preferably, each) specific block/process P 1  is stored from time to time (say, periodically mapped) to the persistent shared memory  28  (log, file) which cannot be erased when the process P 1  is shutdown. Preferably, the information is stored in the serialized form, and the information—each time when being stored—is accompanied with a suitable timestamp (indication of the time of 
         [0059]    storing/save, or just a number of the change in the relevant counter) for the process P 1 . 
         [0060]    The memory  28  accommodates so-called reflection  25 ′ which is something like a mirrored image  25 ′ of the first process P 1 ; actually, it may be a second process P 1 - 2  being a copy of the application P 1  stored in the persistent shared memory  28 . The reflected/mirrored image  25 ′ in  28  is preferably formed by periodically serializing and storing image  25  in the memory  28 . The data is just streamed to be stored in the P 1 - 2 . In  28 , the whole process P 1  or at least its memory is stored. The process of “mirroring” may be performed, for example, according to a previous Applicant&#39;s invention (US2002059414 AA or EA004193 B1, EP1213651 B1), which documents are incorporated herein by reference. 
         [0061]    Since the reflected information is transferred and preferably stored in a serialized form, it can be restored from the persistent memory  28  quite fast, —in any case, much faster than from the DB  12 . 
         [0062]    The changes which continue taking place in the network, and due to that (but not only due to that) also in the functional blocks P 1 -PN between such “serialization and storing actions”, are to be preserved in the above-mentioned persistent log  26  of changes. Changes in the network are notified to the blocks P 1 -PN by network notifications  27  ( 27 ′ . . . , dashed arrows), and processed therein. The blocks may exchange information about various changes there-between (dashed arrows between the blocks). The updates/changes are entered by the blocks P 1 -PN into the DB  12 ′, from the DB—into the log  26 , and each change is provided with its ID (indicating the object in the DB in which the change is reflected), and with its unique timestamp indicating time or serial number of the change. 
         [0063]    It should be mentioned, that the discussed changes of the P 1 -PN are either periodically (or quite immediately) entered into the regular DB ( 12 ′) of the computer application. 
         [0064]    Owing to that, if a system crash happens between two updates of the Data Base  12  and even between two adjacent “serialization moments” performed for a specific application object/software process P 1 -PN, the persistence log of changes will be capable to store the latest changes available for any of the processes. When the serialized data about a specific process Pi (having the latest timestamp, i.e., the latest stored version) is to be recovered from the serialized image, the Inventors suggest updating it with the last changes indicated in the persistence log  26  and having timestamps later than the latest timestamp of the relevant serialization/storage. Thus all available (stored) changes will be taken into account for maximally full restoration of the status of a specific software process, the NMS and finally, of the network status in the NMS. 
         [0065]    If one of the processes fails, receipt of notifications to the log  26  from the underlying network may still be continued (since other processes will store any changes to the DB and the log), so that record of changes in the network will still be performed. 
         [0066]    We consider that the log L ( 26 ) is part of the backup memory. In the drawing, log  26  is shown a part of the Data Base  12 , but it may be a separate persistent memory for registering network/elements/process changes. The log always collects data from the network and stores any changes in its memory. The log is intended for updating the main data in the processes, but when, say the application process P 1  is shut down for any reason, or when changes were not processed before P 1  failed, or when they were not saved to the image, the stored/reflected or “mirrored” copy of the information in the  28  is re-loaded to the process P 1  upon its restart, and thereupon the log L is being used to find out which changes had occurred from the time of the last saved image, in order to reload these changes from the DB. 
         [0067]    It should be noted that when Application P 1  is shut down, the log  26  should still be capable of receiving and storing changes. The log will still be able to work and can always be recovered from the memory of DB when trying to restart the NMS. Even if a number of processes/functional blocks of the computer application (say, such as NMS) fail, the proposed invention allows collecting (in the changes log) of information about notifications relevant to the failed blocks. Since the blocks exchange data about notifications there-between, the DB will be at least partially updated about the failed blocks. The process of handling change notifications is shown in  FIG. 2  by dashed arrows, and the process of updating DB and the changes log  26  is shown by solid arrows (write). Stages of updating the functional block P 1  are shown by the arrow READ 1  (reading changes IDs from the changes log  26 ), and by the arrow READ 2  (reading actual changes from identified objects in the data base  12 ′). 
         [0068]    It should be understood that other embodiments and versions of the described technique can be proposed and that such modifications should be considered part of the invention as far as being covered by the claims which follow.