WO2001080094A2 - A system for integrating diverse databases and maintaining their consistency - Google Patents
A system for integrating diverse databases and maintaining their consistency Download PDFInfo
- Publication number
- WO2001080094A2 WO2001080094A2 PCT/US2001/012352 US0112352W WO0180094A2 WO 2001080094 A2 WO2001080094 A2 WO 2001080094A2 US 0112352 W US0112352 W US 0112352W WO 0180094 A2 WO0180094 A2 WO 0180094A2
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- database
- update
- arrangement
- target
- materialized
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
Definitions
- This invention relates to databases, and more particularly to a plurality of databases that are logically combined to form a meta-database, such as a meta-directory .
- a great deal of corporate data is buried in network devices, such as PBXs, messaging platforms, email platforms, etc.
- network devices such as PBXs, messaging platforms, email platforms, etc.
- each of these devices possesses only the information that is needed for its specialized need, maintains it in a database, and possesses means for administering this information.
- the means for administering typically must deal either with a proprietary interface, or a standard protocol against a proprietary schema; but typically that presents no problems, as long as one does not want to employ the data in an inter-platform manner.
- Efforts to use, modify, and update such data in an inter-platform manner leads to many problems, including the need for data replication and difficult interoperation problems with diverse devices and applications.
- a data integration system provides uniform and transparent access to multiple data sources, making information more readily accessible and allowing users to pose queries without having to interact with a specific source, using the proper interface.
- Autonomy relates to the fact that some systems operate under separate and independent control, using their own data model and Application Programming Interface (API). Heterogeneity can arise at different levels. For instance, different systems may use different APIs, different vocabularies, (e.g., use the same term for different concepts or different terms for the same concept) different schemas, etc.
- API Application Programming Interface
- mediator systems provide an intermediate layer between the user and the data sources.
- Each data source is wrapped by software that translates local terms, values and concepts into global concepts shared by some or all sources, thereby smoothing the semantic heterogeneity among the various integrated sources.
- the mediator then obtains information from one or more wrapped components, and exports the information to other components. Queries to the mediator are in a uniform language, independent of the distribution of data over sources and the APIs of the source. Another thing that can be said about mediators is that they concentrate on read-only queries.
- LDAP Lightweight Directory Access Protocol
- LDAP can be thought of as a very simple query and update protocol.
- Directory entries are stored hierarchically in a tree fashion, which makes the arrangement easily scalable. Each entry in the tree is identified by a
- DN Distinguished Name
- RDN Relative Distinguished Name
- the RDN for an entry is set at creation time and consists of an attribute name/value pair - or in more complicated cases, a collection of these pairs.
- the RDN of an entry must be unique among the children (i.e., lower branches) of a particular parent entry in the tree.
- LDAP has the Modify command, and the ModifyRDN command.
- the Modify command modifies any field of an entry except the RDN field
- ModifyRDN modifies the RDN field.
- Another limitation is that while individual update commands are atomic, one cannot group several update commands into a transaction. For example, one cannot atomically change a person's name and telephone number if the name is part of the person's RDN but the telephone number is not.
- An improvement in the art is realized with an arrangement that maintains consistency among satellite databases and a materialized database that maintains data that corresponds to the union of data stored in the satellite databases, and is accessible to all users. Consistency is maintained by all modifications (to any and all of the databases that are coupled to the system) being sent to a queue following a conversion to a global database schema; for example the schema of the materialized, integrated, database. Modification requests are fetched from the queue on a first come - first serve basis are applied, seriatim, to each of the different (target) databases that are coupled to the system. In the embodiment illustrated, the integrated database is modified last. In applying a modification request to a target database, a filter is used that comprises two components.
- the first component processes the modification request submitted by the queue to a modification request that is appropriate for the schema of the target database and that is based on the data that is already present in the target database.
- the first component also creates an update request that is sent to the queue, to achieve transitive closure.
- the processing in the first component is assisted by a specification module that comprises simple declarative statements that define the schema translations, alternative attribute mappings, and pattern matching.
- the second component communicates with the target database, using the API and protocols of the target database.
- FIG. 1 presents an illustrative example of an arrangement where system 100 is charged with maintaining consistency between the databases of a PBX and a messaging platform, and a materialized database within system 100;
- FIG. 2 illustrates a flowchart of the process carried out by update manager 120 in FIG. 1.
- diverse database sources are maintained consistent with each other by means of a system that integrates the information of the diverse database sources into a single database, applies appropriate updates to each of the diverse databases to maintain consistency, and allows remote users to access the integrated database.
- the databases that are updated by the system disclosed herein provide write- rite consistency; that is, the system insures that values for an object attribute that is present in multiple objects (perhaps after an appropriate transformation) eventually converge to the same value after an update. Discussions on write-write consistency are found in an article by A. Demers et al, titled “Epidemic algorithms for replicated database maintenance," Proceedings of ACM Symposium on the Principles of Distributed Computing, p. 1-12 (1987), and an article by L. Seligman et al "A mediator for approximate consistency: Supporting 'good enough' materialized views," Journal of
- FIG. 1 presents a block diagram of an illustrative system that comports with the principles disclosed herein. It comprises a DEFI ⁇ ITYTM PBX 10 with database 11 (including database manager 12), and messaging platform 20 with database 21 (including database manager 22) -- which are the aforementioned diverse databases of the illustrative system. It also comprises a system 100 with database 121 (including database manager 122) — which is the materialized, integrated, database of the illustrative system.
- PBX 10 PBX 10 is a conventional PBX with an administrative port 15 and an operating system (OS) 13. Database 11 can be independently updated through port 15, via OS 13 and database manager (DBM) 12.
- OS operating system
- DBM database manager
- the program in DBM 12 that finally commits updates to database 11 is augmented with a call to a conventional two-way communication module in OS 13.
- the communication module is adapted to interact with a preselected port of PBX 100; i.e., the port through which PBX 11 connects to system 100.
- the communication module is triggered by an interrupt from system 100 and is thereby enabled to receive information from system 100 and to provide responsive information to system 100.
- This is a conventional communication module and is not explicitly shown in FIG. 1. It acknowledges the receipt of the information and treats the received information as input to its operating system. This includes accepting input from system 100 that is directed to DBM 12.
- the input may comprise a query of database 11, or an update of database 11 (which includes adding to, deleting from the database).
- the communication module is adapted to trigger execution of a program module within system 100 and to interact with that program module, for example, passing information from DBM 12.
- That program module is represented in FIG. 1 by filter 113.
- Platform 20 Platform 20 is a conventional messaging platform that includes an operating system (OS) 23, and port 25 through which an administrator can update database 21.
- OS operating system
- OS 23 includes a communication module that is identical to the one described in connection with PBX 11 and, also like in connection with PBX 11 , database manager (DBM) 23 is augmented to request its communication module to trigger filter 114 in system 100 whenever an update to database 21 is being committed.
- DBM database manager
- system 100 includes an update manager (UM) 120, a queue 124, and an operating system 123 that allows communication between UM 120, DBM 122, and queue 124, as well as communication with filters 111-114.
- the function of UM 120 is to update database 121 as well as all of the external databases (e.g., database 11 and database 21) in response to each request that is stored in queue 124.
- the update from system 100 to database 11 in PBX 10 is via filter 111, and the update from system 100 to database 21 in platform 20 is via filter 112.
- System 100 typically includes its own administration path; for example, administrator 32 that is connected to OS 123 through Internet 30.
- Update requests arriving from administrator 32 are placed in queue 124 just like update requests from database 11 of PBX 10 (via filter 113) and from database 21 of platform 20 (via filter 114).
- system 100 is typically realized in a stored-program controlled computer that includes a processor and memory that includes the operating system, the update manager, the queue the database manager and the database itself.
- Database modification requests are handled by queue 124 on a First-In-First-Out (FIFO) basis, and can be structured in various ways.
- each request is a string (e.g., terminated by the "line feed" character ⁇ LF>) that specifies the source of the request and information about the data modification that is sought to be effected.
- the specification of the source is not a requirement of this invention, but typically one would want to have the source specified (if the source of the update request is other than administrator 32) so that updating of the source can be skipped during the updating process.
- a database 11 that comprises two database tables, and a database 21 that comprises one table.
- the illustrative database base arrangement are relational, but it should be noted that the principles disclosed herein are not dependent on the database being relational and that, for example, the databases can be hierarchical.
- LDAP provides a hierarchical database that can be modeled as relational by treating each LDAP object class as a separate relation that also includes the distinguished name of the object.
- the illustrative database 11 tables are
- the ⁇ symbol indicates that the field is a primary key field (or key field, for short).
- Key fields are fields through which the database manager insures uniqueness of records. This is enforced by the database manager refusing to accept new records, or changes to records, which have a value that is already present in the database.
- a field exists that can naturally serve the function of the key, and the database designer can choose that field as the key field. See, for example, the SS field in the "people" table of database 11.
- a field exists that can naturally serve the function of the key but the designer does not choose that field as the key field, allowing the database to effectively create a dummy field whose sole purpose is to insure uniqueness of records.
- Each record in the "communication” table is related to one record in the "people” table, and each record in the “people” table is related to zero, one, or more records in the “communication” tables.
- the fields that establish this relationship are the (SS) and (SSN) fields in the "people” and “communication” tables, respectively.
- the records in table "subscribers" contain information about stored messages that are destined to a particular login name and that are associated with a particular person.
- a person is associated with each login name, and the persons identified in the subscriber table of database 21 may be the same persons that are specified in the "people" table of database 11, i.e., persons who have the same social security number, in a field named "SOC.” Also, a person can have a number of logins.
- database 121 may be structured to have the following tables and relationships:
- the "comm” table of database 121 is essentially identical to the "communication” table of database 11, and the “messages” table of database 121 is essentially identical to the "subscribers” table of database 21 (though both include a Record ID that is not included in the "communication” and “subscribers” tables), and the "names” table is identical to the "people” table. Note that an alternate representation of the information in database 11 and database 21 within system 100 would eliminate redundant fields, such as messages. sn, which can be constructed from the "names" tables. Moreover, database 121 might also include information that its not found in either database 11 or database 21.
- an update in database 21 (e.g., by operation of its administrator at port 25) might be a string such as (Example 1)
- a "subscribers" table includes a field labeled "SOC”,
- a more complicated transformation from database 21 to database 121 might set name.cn, name.mn and na e.sn appropriately from messages.sn.
- a merit of the system disclosed herein is that even though this relationship is only described implicitly through other attribute mappings, notable the ones between database 21 to database 121, described below, the transitive closure techniques eventually cause the attributes in database 121 to change appropriately.
- An update request that is triggered by an add in database 21 might be a string such as: (Example 3)
- UM 120 carries out the updates specified by entries in queue 124 that arrive from filter 113, filter 114, administrator 32, and/or possibly from DBM 122. The latter might occur when OS 123/DBM 122 self-triggers an update in database 121 (for example, through action of the cron in a UNIXTM-based system).
- FIG. 2 presents a flow chart of the update sequencing process carried out in UM 120.
- Step 101 determines whether queue 124 is empty. If it is not, step 102 fetches the next request in queue 124 and erases the request from the queue, sets indexy to J, and passes control to step 103.
- the updating carried out in step 104 comprises a call to the filter that is appropriate for the database that is being updated.
- filter 111 is called when updating database 11
- filter 112 is called when updating database 21.
- Each filter is simply a call to a TranslateUpdate Function followed by a call to CommunicateUpdate Function.
- the TranslateUpdate Functions of different filters vary in the details, but structurally they are the same.
- the CommunicatetUpdate Functions of different filters vary in the details, but structurally they are the same.
- Filter 111 for example, is simply:
- the PortID parameter identifies the port that is used to communicate with the target system
- the InUpdate parameter is the update request structure/string that is fetched from queue 124
- the OutUpdate parameter is an update request string that is sent to queue 124 in consequence of information gained from the process of updating the databases based on the update request of the InUpdate parameter (i.e., complying with transitive closure requirements).
- the effUpdate parameter of TranslateUpdate_l 11 is the output structure/string of the TranslateUpdate_l 11 Function. It is the update information, developed in response to the InUpdate string and translated to the schema of database 11 , which system 100 wishes to impart to database 11.
- the TranslateUpdate Function is thus the module that overcomes the structural and semantic differences between the source and the target of the filter.
- the RC parameter is a Return Code, indicating whether an update message should, in fact, be sent to PBX 10, or whether an error indicates that an update of database 11 should not take place.
- the CommunicateUpdate Function communicates the effUpdate information to the PBX10 via the PortID, using the API and protocols specific to PBX10.
- the CommunicateUpdate Function is thus the module that overcomes the communication protocol differences between the filter's source and the target systems, and interacts with the target system to actually implement the requested database modification. It may be noted that the same CommunicationUpdate module may be used in more than one filter, for example if system 100 were interacting with another DEFINITN PBX satellite system. That is, the CommunicationUpdate module is target-centric. For example, satellite systems that employ different communication APIs require a CommunicationUpdate module that is different in its particulars.
- each TranslateUpdate Function is to overcome the structural and semantic differences between a specific source and a specific target. It accepts a structure/string that specifies the action to be done (InUpdate), and outputs a translated structure/string (effUpdate) that is aimed at the target database, and a return code (RC). In addition, it outputs an OutUpdate string that is returned, illustratively to queue 124, to update the databases in conformance with transitive closure.
- the TranslateUpdate Function comprises three sections of simple declarative specification sections, and a processing section. The following illustrates the three specification sections for the TranslateUpdate_l 11 Function of the database 121 that is illustrated above.
- Source name DB_121; # Specifies that database 121 is the source SourceObjects names.SS, # Potentially relevant fields of the "names' names.cn, table; names. mn, names, sn, names.org, comm.SS ⁇ , # Potentially relevant fields of the "comm” comm.ID, table; comm.ph, comm.typ, messages. SOC, # Potentially relevant fields of the messages. sn, "messages" table;
- Target name DB_l 1 ; TargetObjects people. SS, people.cn, people. mn, people.sn, people.org, communication. S SN, communication.ID communication.ph, communication, typ;
- TargetJoin people.SS # Reference fields ⁇ used in "add”s; communication. S SN; TargetUpdate people.SS, # Reference fields — used in "update”s; communication.ID;
- This section identifies database 121 as the source, specifies the fields (objects) found in the tables of database 121, identifies database 11 as the target database, and specifies the fields (objects) found in the tables of database 11. It is noted that in specifying the source objects, objects that cannot contribute information to the target database are not included; for example, the (messages.al) object. Correspondingly, target fields that cannot be generated from information from the source are also not included.
- the TargetJoin subsection is used in "add"-type modifications to insure that update requests that are structured in the form of an "add,” add a record to database 11 only if necessary.
- the earlier illustrated add request (Example 3)
- the database manager of database 11 would not allow it.
- the TargetJoin subsection specifies the fields that uniquely identify the record that is sought to be inserted. That is, fields specified in the TargetJoin subsection identify the key fields in the target database that are used when an add request is attempted to insure that it should not be converted to an update request.
- those fields are the people.SS field for updates to the "people" table, and communication. SSN field for updates to the "communication" table.
- the TranslateUpdate Function ought to perform a query on database 11, such as SELECT names.*, communication.* FROM names, communication WHERE names.
- SS messages. SOC and communication.
- SSN messages. SOC, analyze the query results, and determine how the "names” and "communication" tables of database 11 need to be updated, if at all.
- the * symbol in a query designates all fields. In the illustrated case, for example, the "names" table needs to be updated (because the query would reveal the fact that the surname Jones does not match surname Miller -- which is surname stripped off from Susan Miller), but the "communication" table does not need to be updated.
- the query can be performed on corresponding tables and fields in database 121, as described in more detail below.
- the TargetUpdate subsection specifies the target fields that uniquely identify records in the target database that are used for updates to the target tables. That is, as with add requests, update requests ought be performed intelligently, which means that a field should not be updated if the update would result in no change. Accordingly, a query is performed by the TranslateUpdate Function, effectively as described above, the query results are analyzed, and an update request is constructed accordingly. Thus, the TargetUpdate subsection specifies the key fields for update requests and, in the illustrated example, those fields are the people.SS field for updates to the "people" table, and communication.ID field for updates to the "communication" table.
- TargetDelete subsection specifies the target fields that uniquely identify records in the target database that are to be deleted.
- the TargetDelete fields are always the same as the TargetUpdate fields, so only the TargeUpdate fields are specified.
- the second section of the TranslateUpdate_l 11 Function of the above-illustrated database 121 may be of the form: Section II
- Constraint sn " ⁇ [A-Z][a-z]*", # imposed constraints; org "[0-9][0-9][0-9]” Where the * symbol in a string means 0 or more repetitions of the immediately previous character.
- This section specifies whatever constraints are sought to be imposed on data that is entered into the target database. If the constraints are not met, a Return Code indicative of an error is generated. Otherwise, a "successful execution" Return Code is generated.
- the listing above illustrates two constraints; that being that the surname must begin with a capital letter followed by at least one lower case letter, and the organization has precisely three digits. Generally, there may be many more constraints. In particular, the constraints may be used to accept or ' exclude otherwise valid data based on the distribution scheme of the data (illustrated below in the discussion of storing phone number information in different databases depending on the area code and exchange in the number).
- the third section of the TranslateUpdate_ l 11 Function of the above-illustrated database 121 may be of the form:
- Section III people.SS names.SS, # single, or alternative, definitions for people.
- SS comm.SSN; objects in the names table of database 11 ; people.
- S S- messages . SOC people.
- S S names . S S, # single, or alternative, definitions for communication.
- S S comm. S SN; objects in the communication table of communication.
- This section specifies the correspondences that are enforced in placing data in the target database; i.e., this section produces the information that forms the effUpdate structure/string.
- this section produces the information that forms the effUpdate structure/string.
- it provides for multiple mappings as a sequence of alternate mappings. The first mapping in the sequence is executed if the required source attribute is present. Otherwise, the next mapping in the sequence is executed, etc. Of course, if the source attribute is not present for any of the alternative mappings, no mapping is effected at all. In the case of the first entry, for example, it states that if names.SS attribute is present in the InputString, then the people.SS field for database 11 is made equal to the provided names.SS attribute.
- the pattern accepts the full name, strg, as an argument.
- the pattern includes two columns and two rows. It matches strgagainst the regular expression in the first column in sequence.
- the first matching regular expression causes the mapping in the second column to be executed.
- the mappings use the function "part": part(strg, ⁇ ,b,c).
- the function "part” breaks the input string strg into parts separated by one or more of the delimiter characters in c.
- the delimiters are either a signal comma or from the set including a blank, a tab, and a new line. Counting from 1 , "part” returns parts a through b (with enclosed delimited characters present).
- the first row matches names that include a comma, and the associated mapping returns the first word after the comma as the first name. If the regular expression in the first row does not match, the regular expression in the second row matches any non-null string. The associated mapping returns the first word of strg as the fist name. If neither regular expression matches, the original string (in this case, null) is returned.
- the source attributes are used in the correspondences in Section III to generate target attributes that are added, modified, deleted, used as keys, or used in constraints. Since some attributes that can be generated by the correspondences may not be permitted in add or modify requests, at the target, or must not be deleted from the target database, it is useful to note this in the TargetObjects section. Such attributes are preceded by a "noadd,” "noupdate,” and/or "nodelete” qualifier. If the communication.ID for database 11 is generated by the target as a unique key and cannot be changes but can be deleted with the record, it would be represented in the following way in TargetObjects: . noadd nodelete communication.ID
- a delete request for the target replaces all attributes that can be deleted with nulls and leaves the "nodelete" attributes unchanged.
- database 121 this has the effect of allowing information specific to one of the integrated database to be deleted while still maintaining information required by the other integrated databases.
- the global database can remove the record.
- the processor section creates the effUpdate structure/string, and the Return Code.
- TranslateUpate (filterlD, InUpdate, effUpdate, OutUpdate, RC)
- the first update is messages.
- lgn smiller.
- Searching through the TargetObjects portion of the Section III specification of file identified by filterlD reveals that there are no messages.lgn entries and, therefore, the conclusion is reached that the messages, lgn update has a null effect.
- the second update is messages. sn-Susan Miller. Searching through Section III specification reveals that the "people" table is affected and, in particular that the messages, sn update can affect people, en, people, mn, and people, sn. From the TargetUpdate portion of Section I specification, the key field people.SS is also identified.
- the above illustrative example demonstrates a situation where an add request is converted to an update request.
- Other database modification changes can also occur, for example, where an update request changes to a delete request vis-a-vis one database, and to an add request vis-a-vis another database.
- a first database contains records for individuals with assigned telephone numbers from exchange (908)-582, e.g., all individuals working company A in state X
- a second database contains records for individuals with assigned telephone numbers from exchange (973)-386, e.g., all individuals working for company B in state X
- a third database contains records of all individuals with telephones in state X.
- records in the target database are read and compared to incoming request before being updated. Reading target records that match the TargetJoin key fields on an add is necessary to permit combining existing data with additional data from new sources.
- the filter may optionally raise an error to indicate that the databases are out of synchronization if an add request attempts to change preexisting data (rather than modify it). If the source field in the add request is identical to the target, then raising an error is not appropriate because the add is being re-executed to ensure consistency across all of the databases (as explained further below). In such a case, the add request is always converted to an update request. When an update request is made, the constraints can often be used to avoid the cost of the read at the target.
- the previously described algorithms for creating target attributes from the source attributes are used to create values for constrain attributes that may already exist in the target (ore old attributes) as well as their values at the target after any modification (the new attributes).
- the following rules for changing an update request to some other modification request can be used:
- the resulting operation fails at the target, it may indicate that the source and target databases are no longer synchronized.
- a delete request is made, it is not necessary to read the target database unless the target delete key needs to be found.
- the OutUpdate string provides a mechanism for sending back to queue 124 modification requests that, in conformance with transitive closure, are found to be needed though the process of preparing a modification request for the target database. At times, the same mechanism must take place, but after a modification is effected in the target database.
- an individual's surname is modified in the "names" table of database 11
- an update request is sent to queue 124, which later is converted to an update request for the "subscribers" table of database21.
- database 21 develops the Login name of individuals algorithmically, and that, consequently, an individual name Susan Ann Jones would have the Login name sajones.
- database 21 When the names of Susan Ann Jones is updated to Susan Ann Miller (e.g., following a marriage), database 21 automatically changes the Login name from sajones to samiller (assuming that samiller is unique). To satisfy transitive closure, database 21 needs to create and send an update request to queue 124 to reflect the change from sajones to samiller.
- database 21 needs to create and send an update request to queue 124 to reflect the change from sajones to samiller.
- An update request must be created and sent to queue 124 to impart to system 100 the created Record ID (or some other object) information.
- the update request that is communicated to queue 124 and that is propagated identifies the source database.
- the sequencing described above, and depicted in FIG. 2 does not treat the source database any differently than any other database.
- the need for the sequencing to treat the source database in the same manner as non-source databases is made clear by considering a situation where a first database sends an update request to queue 124 to modify attribute A to B, and a short time later a second database sends an update request to queue 124 to modify the same attribute from A to C.
- the first update request results in both databases assigning the value B to the attribute
- the second update request results in both databases assigning the value C to the attribute.
- An update that results from a modification triggered from system 100 is sent back with a repetition flag that is incremented by 1.
- Setting a threshold at some selected arbitrary value permits breaking the endless loop.
- the above description coveres the outbound filters, such as filter 111, and the inbound filters are quite similar.
- a satellite database triggers execution of an inbound filter (such as database 11 triggering execution of filter 113), and that filter comprises a call to a source-centric CommunicateUpdate module, followed by a TranslatelnUpdate function.
- the InUpdate structure represents the information that the CommunicateUpdate function outputs, in the API of system 100 in response to update communication from system 10.
- the TranslateUpdate function converts that structure to an update on database 121, i.e., from the schema of database 11 to the schema of database 121.
- the conversion is carried out in a manner that is effectively the same as described above for conversions from the schema of database 121 to that of database 10.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
Claims
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
AU2001257062A AU2001257062A1 (en) | 2000-04-17 | 2001-04-10 | A system for integrating diverse databases and maintaining their consistency |
EP01930534A EP1405210A2 (en) | 2000-04-17 | 2001-04-10 | A system for integrating diverse databases and maintaining their consistency |
CA002398426A CA2398426A1 (en) | 2000-04-17 | 2001-04-10 | A system for integrating diverse databases and maintaining their consistency |
US09/979,197 US7660830B2 (en) | 2000-04-17 | 2001-04-10 | System for integrating diverse database and maintaining their consistency |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US19787800P | 2000-04-17 | 2000-04-17 | |
US60/197,878 | 2000-04-17 |
Publications (2)
Publication Number | Publication Date |
---|---|
WO2001080094A2 true WO2001080094A2 (en) | 2001-10-25 |
WO2001080094A3 WO2001080094A3 (en) | 2004-01-29 |
Family
ID=22731104
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2001/012352 WO2001080094A2 (en) | 2000-04-17 | 2001-04-10 | A system for integrating diverse databases and maintaining their consistency |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP1405210A2 (en) |
AU (1) | AU2001257062A1 (en) |
CA (1) | CA2398426A1 (en) |
WO (1) | WO2001080094A2 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2431022A (en) * | 2005-10-06 | 2007-04-11 | Avaya Tech Llc | Transferring data between databases |
GB2446723A (en) * | 2005-10-06 | 2008-08-20 | Avaya Tech Llc | Database data extensions |
US8891747B2 (en) | 2003-09-26 | 2014-11-18 | Avaya Inc. | Method and apparatus for assessing the status of work waiting for service |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7567653B1 (en) | 2005-03-22 | 2009-07-28 | Avaya Inc. | Method by which call centers can vector inbound TTY calls automatically to TTY-enabled resources |
US8938063B1 (en) | 2006-09-07 | 2015-01-20 | Avaya Inc. | Contact center service monitoring and correcting |
US8856182B2 (en) | 2008-01-25 | 2014-10-07 | Avaya Inc. | Report database dependency tracing through business intelligence metadata |
US9516069B2 (en) | 2009-11-17 | 2016-12-06 | Avaya Inc. | Packet headers as a trigger for automatic activation of special-purpose softphone applications |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5933837A (en) * | 1997-05-09 | 1999-08-03 | At & T Corp. | Apparatus and method for maintaining integrated data consistency across multiple databases |
-
2001
- 2001-04-10 AU AU2001257062A patent/AU2001257062A1/en not_active Abandoned
- 2001-04-10 CA CA002398426A patent/CA2398426A1/en not_active Abandoned
- 2001-04-10 EP EP01930534A patent/EP1405210A2/en not_active Withdrawn
- 2001-04-10 WO PCT/US2001/012352 patent/WO2001080094A2/en active Application Filing
Non-Patent Citations (1)
Title |
---|
FREIRE J ET AL.: "MetaComm: a meta-directory for telecommunications", DATA ENGINEERING, 2000, 2281220, pages 211 - 219 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8891747B2 (en) | 2003-09-26 | 2014-11-18 | Avaya Inc. | Method and apparatus for assessing the status of work waiting for service |
GB2431022A (en) * | 2005-10-06 | 2007-04-11 | Avaya Tech Llc | Transferring data between databases |
GB2446723A (en) * | 2005-10-06 | 2008-08-20 | Avaya Tech Llc | Database data extensions |
Also Published As
Publication number | Publication date |
---|---|
AU2001257062A1 (en) | 2001-10-30 |
EP1405210A2 (en) | 2004-04-07 |
CA2398426A1 (en) | 2001-10-25 |
WO2001080094A3 (en) | 2004-01-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7660830B2 (en) | System for integrating diverse database and maintaining their consistency | |
US11216422B2 (en) | Universal data management interface | |
EP0955761B1 (en) | Method and server for accessing a network directory | |
US7774368B2 (en) | Contact management update protocols | |
US6633872B2 (en) | Extendible access control for lightweight directory access protocol | |
JP4771321B2 (en) | Method and data format for exchanging data between Java system database entries and LDAP directory services | |
US5930350A (en) | System, method and computer program for automated speed dialing | |
JP2001282594A (en) | Corporate work integration system and method for integrating a plurality of data sources | |
US20050165754A1 (en) | Method and system for data retrieval from heterogeneous data sources | |
JP2002108683A (en) | Light weight directory access protocol interface for directory assistance system | |
EP1405210A2 (en) | A system for integrating diverse databases and maintaining their consistency | |
US7734611B2 (en) | Dynamic views based on LDAP | |
US20030135479A1 (en) | Method and system for providing access to a database | |
US20080104069A1 (en) | Deriving cross-organizational relationships from LDAP source data | |
JP2002049641A (en) | Multiple profile management device, management method, multiple profile management program recording medium, and multiple profile management program | |
JPH07239816A (en) | Agent system | |
CN113868477A (en) | Search prompting method under complex data | |
JP2002132809A (en) | Character string search method, device for executing the method, and recording medium storing the processing program | |
Fessy et al. | Object query services for telecommunication networks | |
Argerich et al. | LDAP | |
WO2002021332A2 (en) | System and method for central user management and authentication, authorization and accounting based on directory services and standard protocols | |
JP2001306565A (en) | Method for retrieving/updating general information utilizing web | |
JPH0269871A (en) | Query processing methods for distributed database systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A2 Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZW |
|
AL | Designated countries for regional patents |
Kind code of ref document: A2 Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG |
|
WWE | Wipo information: entry into national phase |
Ref document number: 09979197 Country of ref document: US |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
WWE | Wipo information: entry into national phase |
Ref document number: 2001930534 Country of ref document: EP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2398426 Country of ref document: CA |
|
WWP | Wipo information: published in national office |
Ref document number: 2001930534 Country of ref document: EP |
|
NENP | Non-entry into the national phase |
Ref country code: JP |