Abstract:
A system for resolving addresses in an internet protocol based network. The system comprises an address resolving master database and a plurality of slave databases. A plurality of transfer agents are each allocated to one of the plurality of slave databases for reading data from the master database and writing it to the slave databases. A plurality of applications have read access to at least one of the plurality of slave databases.

Description:
FIELD OF THE INVENTION 
       [0001]    The invention relates to the field of routing databases in communications networks. More particularly it relates to DNS/ENUM routing databases. 
       BACKGROUND TO THE INVENTION 
       [0002]    Previous routing systems incorporate a single database that accepts configuration, provisioning, analysis and query actions. 
         [0003]    In a conventional system, as shown in  FIG. 1 , a server S hosts an address-resolving database. A provisioning tool PT is used to perform read/write (R/W) provisioning operations, such as maintaining the content of the database. Two DNS clients DC 1  and DC 2  exchange DNS queries Q with the database. The concurrent use of the database by the clients DC 1 , DC 2 , and the provisioning tool PT limits the performance of the routing system. 
         [0004]    It is an object of the present invention to obviate at least some of the above disadvantages and to provide an improved address resolving database. 
       SUMMARY 
       [0005]    According to a first aspect of the present invention, there is provided a system for resolving addresses in an internet protocol based network. The system comprises an address resolving master database and a plurality of slave databases. A plurality of transfer agents are provided, each allocated to one of the plurality of slave databases, for reading data from the master database and writing it to the slave databases. A plurality of applications have read access to at least one of the plurality of slave databases. 
         [0006]    At least one slave database may comprise a full set of the data in the master database. 
         [0007]    At least one of the slave databases may comprise a subset of the data in the master database. 
         [0008]    At least one of the slave databases may comprise an identical copy of the data in the master database. 
         [0009]    At least one of the slave databases may comprise a transformed copy of the data in the master database. 
         [0010]    The system may further comprise at least one master application interfacing with the master database and capable of reading and writing data to the master database. 
         [0011]    At least one of the transfer agents may be configured to transfer ENUM data from the master database to at least one of the slave databases. 
         [0012]    At least one of the slave applications may be an ENUM application. 
         [0013]    At least one of the transfer agents may be configured to transfer DNS data from the master database to at least one of the slave databases. 
         [0014]    At least one of the slave applications may be a DNS application. 
         [0015]    The system may further comprise a master application for maintaining the content of the master database. 
         [0016]    The system may further comprise at least one protocol server for co-hosting at least one of the transfer agents, the slave database allocated thereto, and at least one slave application. 
         [0017]    The system may further comprise at least one slave database server for hosting one of the slave databases and at least one protocol server for hosting a slave application separately from the corresponding slave database. 
         [0018]    The system may further comprise a plurality of slave database servers for hosting one of the slave databases and a plurality of protocol servers for hosting a slave application separately from the corresponding slave database, wherein at least one of the slave applications has read access to the plurality of slave databases hosted separately. 
         [0019]    At least one of the slave applications may be configured to receive queries from a plurality of application clients. 
         [0020]    According to a second aspect of the present invention there is provided a storage server for hosting a master database for resolving addresses in an internet protocol based network. The storage server comprises an address resolving master database and at least one master application interfacing with the master database and capable of reading and writing data to the master database. 
         [0021]    The storage server may further comprise at least one transfer agent allocated to a slave databases, for reading data from the master database and writing it to the slave database. 
         [0022]    At least one of the transfer agents may be configured to transfer ENUM data from the master database to at least one of the slave databases. 
         [0023]    At least one of the transfer agents may be configured to transfer DNS data from the master database to at least one of the slave databases. 
         [0024]    At least one master application may be configured for maintaining the content of the master database. 
         [0025]    According to a third aspect of the present invention there is provided a protocol server for hosting an application for resolving addresses in an internet protocol based network. 
         [0026]    The protocol server may comprise at least one application having read access to at least one of a plurality of slave databases; 
         [0027]    The protocol server may further comprise at least one slave database; at least one transfer agent, allocated to one of the at least one slave database(s), for reading data from the master database and writing it to the slave database. 
         [0028]    At least one slave database may comprise a full set of the data in the master database. 
         [0029]    At least one of the slave databases may comprise a subset of the data in the master database. 
         [0030]    At least one of the slave databases may comprise an identical copy of the data in the master database. 
         [0031]    At least one of the slave databases may comprise a transformed copy of the data in the master database. 
         [0032]    At least one of the transfer agents may be configured to transfer ENUM data from the master database to at least one of the slave databases. 
         [0033]    At least one of the slave applications may be an ENUM application. 
         [0034]    At least one of the transfer agents may be configured to transfer DNS data from the master database to at least one of the slave databases. 
         [0035]    At least one of the slave applications may be a DNS application. 
         [0036]    The protocol server may be configured for co-hosting at least one of the transfer agents, the slave database allocated thereto, and at least one slave application. 
         [0037]    At least one of the slave applications may be configured to receive queries from a plurality of application clients. 
         [0038]    According to a fourth aspect of the present invention there is provided a server for hosting a slave database for resolving addresses in an internet protocol based network. The server comprises at least one slave database. 
         [0039]    The at least one slave database may comprise a full set of the data in the master database. 
         [0040]    At least one of the slave databases may comprise a subset of the data in the master database. 
         [0041]    At least one of the slave databases may comprise an identical copy of the data in the master database. 
         [0042]    At least one of the slave databases may comprise a transformed copy of the data in the master database. 
         [0043]    At least one of the slave databases may comprise ENUM data. 
         [0044]    At least one of the slave databases may comprise DNS data. 
         [0045]    The present invention allows the processing load imposed by read operations on a particular slave database to be isolated from the master database and other slave databases. 
         [0046]    The processing load imposed on the master database during read/write operations may be isolated from the slave databases. 
         [0047]    The slave databases may be easily restored from the master database in case of slave database corruption or error. This could relax the requirements on the slave database for availability and data retainability, allowing for low complexity (cost) slave databases to be used. 
         [0048]    The present invention allows for corruption or errors in the slave database not to be propagated to the master database or the other slave servers, since the transfer agent only transfers data from the master to the slave databases. 
         [0049]    Both applications and slave databases may seamlessly be added or removed from the system. 
         [0050]    The centralized storage of all data in the master database allows for atomic, transaction safe backup/restore procedures. 
         [0051]    The centralized storage of all data in the master database allows for easy data restore, on both master and slave databases, in case of master database corruption or error. 
         [0052]    The way the data is structured may be different in the master database and the slave databases and between slave databases. This allows the data structure in a particular database to be tailored to the application that is using it. E.g. the master database may be structured for provisioning performance while the slave database may be structured for query performance. 
         [0053]    The data security of the system may be improved since a slave database may contain only a subset of the entire dataset. A security breach of that particular slave database may thus only expose the data that was available in the slave database. 
         [0054]    Denial of Service attacks on a particular protocol server may only affect that particular protocol server; the other parts of the system will be protected. 
         [0055]    Database redundancy and load sharing may be realized since one application may connect to several databases. 
         [0056]    Cost savings and database size scalability are enabled since several applications may be connected to a single, large database. 
         [0057]    The physical distance and connection quality dependency may be reduced since provisioning writes terminate in the master database and query reads terminate in the slave database. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0058]      FIG. 1  illustrates schematically a conventional database structure; 
           [0059]      FIG. 2  illustrates schematically a database server structure in accordance with the invention. 
           [0060]      FIG. 3  illustrates schematically a database structure with co-hosting of databases and applications. 
           [0061]      FIG. 4  illustrates schematically a database structure with separate hosting of databases and applications. 
       
    
    
     DETAILED DESCRIPTION 
       [0062]    The present invention proposes dividing the earlier monolithic system into a set of logical entities. The new system splits the earlier monolithic database into two logical parts. In the first part a master database is accessed by the operator of the system and used for configuration, provisioning and analysis. In the second part, at least one, but preferably several, slave databases receive their data from the master database and that are used for client query actions. The master database contains the entire dataset of the system. The slave databases may contain the full or partial dataset of the master database. The applications for performing configuration, provisioning, analysis and querying are also separated from their respective databases. 
         [0063]    The system consists of a number of logical entities that have different roles, as shown in  FIG. 2 . The system boundary is indicated as a dotted line. 
         [0064]    In the context of the present invention, an “application” is a computer program that interacts with its clients and with the database. It implements an interface towards the clients and an interface towards a database, either master or slave. 
         [0065]    A “master application” MA is an application that interfaces with the master database and it may both read (R) and write (W) data to the master database. 
         [0066]    A “slave application” SA is an application that interfaces with one or more slave databases. It primarily reads (R) from the dataset that has been transferred from the master database to the slave database. It may optionally write (W) to the master dataset in the slave database, but such changes are not propagated back to the master database by the transfer agent. 
         [0067]    The “master database” MDB is a single, unified database containing the entire dataset of the system. 
         [0068]    The “slave database” SDB is a database that contains a full set or subset of the data in the master database. The data in the slave database may be an identical copy or a transformed copy of the data in the master database MDB. 
         [0069]    The “transfer agent” TA is a computer program that reads data (R) from the master database MDB and subsequently writes it (W) to the slave database SDB. In the transfer process, the transfer agent TA may perform data transformation on the data before writing it to the slave database SDB. The transfer agent TA is also responsible for selecting what data should be transferred from the master database MDB to the slave database SDB. 
         [0070]    A “protocol server” PS is the physical realisation of an application. It consists of a computer that is running application server program (e.g. ENUM Server) (see  FIG. 3  and  FIG. 4 ). The slave database SDB may optionally be co-located on the protocol server PS  FIG. 3 ). 
         [0071]    The “storage server” SS is the physical realisation of the master database MDB. It consists of one or several computers running the master database program. An application server may optionally be co-located with the storage server (e.g. Storage Server Application SSA) (see  FIG. 3  and  FIG. 4 ). 
         [0072]      FIG. 3  depicts one physical realization of the system, wherein at least one of the slave databases SDB and at least one of the slave applications SA are co-hosted on the same protocol server. 
         [0073]    In this physical realization, the slave database SDB, transfer agent TA and enum application EA has been co-located on the same host. Multiple ENUM protocol server hosts EPS 1 , EPS 2  and multiple connections to the ENUM clients EC 1 , EC 2  are deployed in the system to provide redundant operation for ENUM. The slave databases SDB 1 , SDB 2  on the enum protocol servers store only the dataset related to ENUM. A DNS protocol server DPS is also deployed, and it stores only the dataset that is related to DNS in its slave database SDB 3 . For query performance, the slave databases SDB 1 , SDB 2 , SDB 3  are preferably implemented as RAM databases. 
         [0074]    The master database MDB and storage server application SSA are advantageously co-located on the same host, the storage server SS. The external provisioning/configuration and analysis system is connected to the storage server SS and allows the operator to control the full dataset of the system. 
         [0075]    The clients EC 1 , EC 2 , DC of the system are connected to their respective protocol server EPS 1 , EPS 2 , DPS. 
         [0076]    The transfer agents ETA 1 , ETA 2 , DTA transfer the relevant data from the master database MDB to the slave databases SDB 1 . SDB 2 , SDB 3 . 
         [0077]    Moreover, at least one of the slave databases SDB 1 , SDB 2 , SDB 3  may be hosted on physically separate servers SDBH 1 , SDBH 2  from the protocol servers EPS 1 , EPS 2  hosting at least one of the slave applications EA 1 , EA 2 . 
         [0078]    The storage server application SSA may provide a system for provisioning, configuration, and analysis of ENUM, DNS, and/or DHCP data. Accordingly the slave databases may comprise ENUM, DNS, and/or DHCP data. 
         [0079]    In the realisation illustrated in  FIG. 4 , the ENUM slave databases SDB 1 , SDB 2  are not co-located on the same host as the ENUM application. This adds the benefit of supporting a scalable slave database, which may be scaled over several hosts in order to achieve a larger database, improved redundancy and general improvements in characteristics. 
         [0080]    Moreover, with particular reference to  FIG. 4 , it is understood that any suitable combination of co-hosted databases and corresponding applications (e.g. DNS) with separately hosted databases and applications (e.g. ENUM) is possible. 
         [0081]    In one example, the present invention as shown in  FIGS. 3 and 4  may be applied to a source based routing (SBR) database to provide ENUM and DNS translation to SIP URI based on a multi-server based hierarchy. The SBR can also return translated numbers instead of or in addition to the SIP URI. This service is common to all call servers and management systems that wish to obtain a translation of URI to/from E.164 numbers and to determine the Call Server domain name for the call server that owns the user data. 
         [0082]    No doubt many other effective alternatives will occur to the skilled person. It will be understood that the invention is not limited to the described embodiments and encompasses modifications apparent to those skilled in the art lying within the spirit and scope of the claims appended hereto.