WO2000007120A1 - Object to relational database mapping infrastructure in a customer care and billing system - Google Patents
Object to relational database mapping infrastructure in a customer care and billing system Download PDFInfo
- Publication number
- WO2000007120A1 WO2000007120A1 PCT/US1999/016765 US9916765W WO0007120A1 WO 2000007120 A1 WO2000007120 A1 WO 2000007120A1 US 9916765 W US9916765 W US 9916765W WO 0007120 A1 WO0007120 A1 WO 0007120A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- mapping
- objects
- database
- node
- data
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M15/00—Arrangements for metering, time-control or time indication ; Metering, charging or billing arrangements for voice wireline or wireless communications, e.g. VoIP
- H04M15/80—Rating or billing plans; Tariff determination aspects
- H04M15/8083—Rating or billing plans; Tariff determination aspects involving reduced rates or discounts, e.g. time-of-day reductions or volume discounts
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/289—Object oriented databases
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M15/00—Arrangements for metering, time-control or time indication ; Metering, charging or billing arrangements for voice wireline or wireless communications, e.g. VoIP
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M15/00—Arrangements for metering, time-control or time indication ; Metering, charging or billing arrangements for voice wireline or wireless communications, e.g. VoIP
- H04M15/43—Billing software details
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M15/00—Arrangements for metering, time-control or time indication ; Metering, charging or billing arrangements for voice wireline or wireless communications, e.g. VoIP
- H04M15/44—Augmented, consolidated or itemized billing statement or bill presentation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M15/00—Arrangements for metering, time-control or time indication ; Metering, charging or billing arrangements for voice wireline or wireless communications, e.g. VoIP
- H04M15/49—Connection to several service providers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M15/00—Arrangements for metering, time-control or time indication ; Metering, charging or billing arrangements for voice wireline or wireless communications, e.g. VoIP
- H04M15/51—Arrangements for metering, time-control or time indication ; Metering, charging or billing arrangements for voice wireline or wireless communications, e.g. VoIP for resellers, retailers or service providers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M15/00—Arrangements for metering, time-control or time indication ; Metering, charging or billing arrangements for voice wireline or wireless communications, e.g. VoIP
- H04M15/70—Administration or customization aspects; Counter-checking correct charges
- H04M15/745—Customizing according to wishes of subscriber, e.g. friends or family
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M15/00—Arrangements for metering, time-control or time indication ; Metering, charging or billing arrangements for voice wireline or wireless communications, e.g. VoIP
- H04M15/80—Rating or billing plans; Tariff determination aspects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M15/00—Arrangements for metering, time-control or time indication ; Metering, charging or billing arrangements for voice wireline or wireless communications, e.g. VoIP
- H04M15/80—Rating or billing plans; Tariff determination aspects
- H04M15/8044—Least cost routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M2215/00—Metering arrangements; Time controlling arrangements; Time indicating arrangements
- H04M2215/01—Details of billing arrangements
- H04M2215/0104—Augmented, consolidated or itemised billing statement, e.g. additional billing information, bill presentation, layout, format, e-mail, fax, printout, itemised bill per service or per account, cumulative billing, consolidated billing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M2215/00—Metering arrangements; Time controlling arrangements; Time indicating arrangements
- H04M2215/01—Details of billing arrangements
- H04M2215/0108—Customization according to wishes of subscriber, e.g. customer preferences, friends and family, selecting services or billing options, Personal Communication Systems [PCS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M2215/00—Metering arrangements; Time controlling arrangements; Time indicating arrangements
- H04M2215/01—Details of billing arrangements
- H04M2215/0152—General billing plans, rate plans, e.g. charge rates, numbering plans, rate centers, customer accounts
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M2215/00—Metering arrangements; Time controlling arrangements; Time indicating arrangements
- H04M2215/01—Details of billing arrangements
- H04M2215/0168—On line or real-time flexible customization or negotiation according to wishes of subscriber
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M2215/00—Metering arrangements; Time controlling arrangements; Time indicating arrangements
- H04M2215/01—Details of billing arrangements
- H04M2215/0184—Details of billing arrangements involving reduced rates or discounts, e.g. time-of-day reductions, volume discounts, cell discounts, group billing, frequent calling destination(s) or user history list
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M2215/00—Metering arrangements; Time controlling arrangements; Time indicating arrangements
- H04M2215/42—Least cost routing, i.e. provision for selecting the lowest cost tariff
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M2215/00—Metering arrangements; Time controlling arrangements; Time indicating arrangements
- H04M2215/46—Connection to several service providers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M2215/00—Metering arrangements; Time controlling arrangements; Time indicating arrangements
- H04M2215/54—Resellers-retail or service providers billing, e.g. agreements with telephone service operator, activation, charging/recharging of accounts
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M2215/00—Metering arrangements; Time controlling arrangements; Time indicating arrangements
- H04M2215/74—Rating aspects, e.g. rating parameters or tariff determination apects
- H04M2215/745—Least cost routing, e.g. Automatic or manual, call by call or by preselection
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/953—Organization of data
- Y10S707/954—Relational
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/953—Organization of data
- Y10S707/96—Object-relational
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99942—Manipulating data structure, e.g. compression, compaction, compilation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99943—Generating database or data structure, e.g. via user interface
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99944—Object-oriented database structure
Definitions
- Another problem is how to store objects that are contained within lists in a parent object.
- a possible approach is to store the list object in a separate table and associated to the parent object using foreign key relationship. This approach does not provide the performance necessary for high volume data processing since for each object containing an object list, a second table needs to be accessed.
- Another possible approach is to store the list objects within the parent object's storage table. This results in having to provide columns to store all possible entries. This results in large storage tables within many of the columns remaining empty when the lists are not full. What is needed is a system which will allow storage of an optimum number of list entries within the parent object's table. The optimum number has to be determined on a case by case basis and solely depends on the business scenario.
- the above objects can be attained by a system that uses an infrastructure to map objects and their associations to and from a relational database.
- the mapping is facilitated by metadata or scripts in the form of mapping files which describe how an object corresponds to a table in the database.
- To facilitate speed and efficiency overflow tables are provided in the database when an object is associated with more than a predetermined number of other objects.
- a reflection layer is provided that allows particular attributes and methods of the objects to be resolved at run time. Mapped data is also buffered during the operation of transferring data to and from the database.
- Figure 1 depicts a hardware and software architecture of the present invention.
- Figure 2 depicts an example object model.
- Figure 3 depicts an example table layout.
- Figure 4A-4F shows example mapping files.
- Figure 5 depicts a node structure
- Figure 6 depicts a process of mapping from an object to a database.
- Figure 7 depicts a process of mapping from a database to an object.
- the present invention provides an infrastructure to facilitate mapping of objects to and from relational database tables.
- the invention provides a combination of a C++ reflection layer, a mapping mechanism that is configured by metafiles, the use overflow tables and buffered database input-output (IO). This combination provides the flexibility and performance necessary for high volume transactions.
- the ORDMI can insert or retrieve objects from a relational database table where the class to which the object belongs is not known until run time.
- ORDMI allows changes to the actual mapping at run-time. This provides the flexibility to adjust to new or modified classes, to new or modified associations and to new or modified database tables. Furthermore, it achieves this flexibility for high volume transactions by utilizing overflow tables and IO buffering to reduce the database load.
- the ORDMI uses mapping files that describe how objects are mapped to and/or from relational database tables.
- the mapping files are read and interpreted at initialization time. No mapping information is hard coded in the application code.
- the information in the mapping files is used to initialize utility objects and buffers used for the database IO process.
- the infrastructure framework utilizes a C++ reflection layer to access the object's attributes. All database IO operations performed are buffered in memory to gain additional performance enhancements.
- the size of the buffer area can be configured for each table separately. The optimal size of the buffer area is solely dependent on the business scenario the application is used for.
- the size of the buffer area can be configured in the mapping files (see also figure 4A, line 02), independent for each database table.
- the ORDMI also allows storage of the optimum number of list entries within the parents object's table. Any extra entries, referred to as overflow objects, are stored in a secondary table designed for that list object. These tables are called overflow tables. After an overflow object has been inserted, the object needs to be related back to the parent object and vice- versa. For this reason, a unique identifier of the parent object is added to the overflow object when it is stored in the overflow table to establish a foreign key relationship.
- the parent object's storage table also contains an entry count field for every list. This count makes it possible to speed up performance on retrieval of the parent object, as it can be checked to see if the overflow table needs to be accessed to retrieve any overflow objects and return them to the calling process.
- Class is a program module that combines logic and state.
- An Object is a specific instance of a class.
- An attribute is part of an object's state.
- a method is part of a class or object and performs operations. Methods can be called by other objects or by the object itself.
- a Reflection Layer or Run-Time Type Information (RTTI) provides a mechanism to browse objects at run-time for their type, attributes and methods. This facilitates late binding where it is determined at run-time what operations are executed.
- Persistent Storage is storage residing on a persistent medium, usually a database or file.
- a Persistent Object is an object where the state can be stored and retrieved from a persistent storage.
- the ORDMI is preferably implemented using C++ running on a HP-UNIX application server platform 12, as depicted in figure 1.
- the system uses an Oracle database system in a database server 14 to store persistent objects.
- the ORDMI uses a C++ reflection layer (RTTI) 16 to access the objects' attributes and the Oracle Call Interface (OCI) to access the database.
- the reflection layer 16 allows for access to attributes and methods of C++ objects by name as required by the scripting layer or mapping files.
- a reflection layer is a conventional mechanism for changing structure and behavior of software systems dynamically.
- the reflection layer provides information and access to system properties and makes the software self-aware.
- Programming languages, such as JAVA contain reflection layers as a feature of the language itself. Implementation of reflection layers is described in A SYSTEM OF PATTERNS, by Frank Buschman et. al., Wiley and Sons, ISBN 0 471 95869 7, incorporated by reference herein.
- the ORDMI uses a series of mapping files (see figures 4A - 4F for an example) to describe an object and how the object corresponds to a specific table(s) within the database.
- An information file (see figure 4 A for an example) exists for each database table listing all mapping files applicable for the database table. This provides the ability to store multiple classes in the same table.
- Each mapping file (see figure 4B for example) lists a parent mapping file and describes the mapping of the object's attributes and related objects.
- the parent mapping file is used to include the parent's class attribute mapping for a derived class.
- Each class can contain basic attributes, other objects, pointers to objects and lists of objects. Examples of these files will be discussed later herein.
- mapping information On initialization the system reads and parses the mapping information for each table that is used in processing.
- mapping files When the mapping files are parsed, a tree of node objects is created in memory (see figure 5 for an example)
- mapping information When the mapping information is read a Mappinglnformation object is created that contains references to the tree root node objects.
- mappinglnformation object is used to create the TableManager object.
- Each tree represents the mapping structure for a particular class.
- the mapping information for a particular table can contain multiple trees if multiple classes are stored in the same table.
- a tree can be a subsection of another tree. An example for this are two subclasses where both mapping trees refer to the parent class mapping tree to include the mapping for the inherited attributes.
- Each node in turn represents the mapping information of a primitive attribute (numeric, string, date) or complex data structure (object, list).
- the tree is used at run-time to map the object to and from the database.
- Each node in the tree can refer to a child node that is to be processed next after the node has been processed.
- node types are used: Primitive Nodes, Object Nodes, Pointer Nodes, List Nodes and Key Nodes.
- Primitive Nodes represent low-level types of attributes (such as numerics, dates or strings) that can be mapped directly to a database column (see 104 of figure 5 for an example).
- the primitive nodes provide the link to the database table layout.
- a DBField object is created that provides the buffering for each database column.
- Object Nodes represent objects related to the class described in the mapping file (see 1 16 of figure 5 for an example). The related class can either be contained in the same table or be described in a separate mapping file and be mapped into a different table.
- Pointer Nodes are used for optional zero to one relationships (pointer nodes are not included in the example since they function very similar to object nodes).
- the related class can either be contained in the same table or be described in a separate mapping file and be mapped into a different table.
- an additional database column is used to indicate whether the pointer is NULL. If the related object can be of different classes, an additional database column containing the class identifier is used. This provides ORDMI with the ability to handle different classes of objects at run- time.
- List Nodes represent a list of objects contained in the class described in the mapping file (see 122 of figure 5 for an example). For performance reasons, all objects in the list up to a determined number are stored within the table of the class containing the list. The remaining objects in the list are considered overflow objects and are stored in a separate table. For a list node, a second mapping file is provided that is used to map the overflow objects.
- Key Nodes are used for foreign-key relationships and refer to the attribute used as the foreign-key (see 144 of figure 5 for an example).
- ORDMI can handle lists within lists (i.e. overflows within overflows), lists of pointers to an abstract base, pointers to objects containing lists or pointers to other objects, etc.
- the object When an object has to be mapped to the database layout, the object is passed to the root node of the tree representing the mapping information for the corresponding class. Each primitive node in the tree then extracts the data from the object, using the reflection layer, into a database buffer in memory. This process is a collaboration of the Primitive Node object extracting the attribute from the object and the field object copying the attribute to the buffer area. The buffer is then written to the database if it is full. The buffer size is defined in the mapping file (see figure 4A, line 02). The array insert function provided by OCI is used to transfer the data efficiently to the database.
- This scenario consists of five classes of which four are being stored in the relational database.
- An object model 40 depicts the classes, the class attributes and the class relationships.
- the Customer class 42 is an abstract class and is not saved to the database. In this context "abstract" means that no objects of this class are ever instantiated, the class serves as a common base class for further specialization.
- the Customer class contains the attributes and functionality common to all customer types.
- the Customer class contains a customer identifier and references to related classes.
- the particular scenario discussed here contains two specialized subclasses of the Customer class 42, although others are possible. These are the ResidentialCustomer class 44 and the BusinessCustomer class 46.
- the ResidentialCustomer class 44 adds an attribute for a residential customer's last name.
- the BusinessCustomer class 46 adds an attribute for a business customer's company name.
- the abstract Customer class 42 has relationships to two classes. A one-to-one relationship to an Address object 48 that contains an attribute for the street name and a zero-to-many relationship to the Account class 50 that contains an account identifier where m can be zero to an arbitrary large number.
- the database operation of storing and retrieving Customer objects 42 and the related Address 48 and Account objects 50 needs to be as fast as possible. For this example, it is assumed that on average a Customer object 42 does not have more than two associated Account objects 50, but the case where more than two Accounts 50 exist for a Customer 42 cannot be ruled out.
- Figure 3 depicts the database layout chosen to store the persistent objects described above.
- the database layout has been designed to meet the given performance requirements. It has been optimized so that in most cases only a single database table needs to be accessed.
- the database layout contains two tables the Customer table 62 and the AccountOverflow table 64.
- the Customer table 62 is the main table and stores combined customer, address and account data.
- the Customer subclasses, ResidentialCustomer 44 and BusinessCustomer 46, are both mapped to the Customer table 62.
- the columns that are not applicable for an object of a specific subclass are left blank (NULL).
- NULL For example, the LAST NAME column 66 is not applicable for objects of the BusinessCustomer class 46 and is not populated.
- the CLASS_ID column 68 contains the class identifier of the object stored in the database row.
- the class identifier is needed to distinguish between ResidentialCustomer and BusinessCustomer objects when reading a row from the database.
- the address object associated with the Customer object is stored in the STREET column 70.
- the Customer table 62 provides storage 72 and 74 for two account objects. If a customer object is associated with more than two account objects, the remaining account objects are stored in the AccountOverflow table 64.
- the AccountOverflow table 64 contains a foreign key column (CUSTOMER_ID - 76 ) used to link the accounts stored in the overflow table 64 to the customer object stored in table 62.
- the Customer table 62 contains a column 78 capturing how many accounts are associated a customer object. This column 78 can be used to determine whether overflow objects need to be retrieved for a Customer object.
- the tables in figure 3 have been populated with example data.
- the data set contains includes two ResidentialCustomer objects and one BusinessCustomer object.
- the Customer object with the identifier 100 is a
- the object has one associated Account object with the identifier of 101.
- the associated Account object is stored in the Customer table.
- the column providing storage for a potential second Account is left empty (NULL). All storage and retrieval operations for Customer 100 with it's associated Address and
- Account objects can take place by accessing one single database row.
- the Customer object with the identifier 200 is a ResidentialCustomer object as indicated by the CLASS_ID of 1.
- the object has two associated Account objects, 201 and 202.
- the associated Accounts' data is stored in the database row of the customer object. All storage and retrieval operations for Customer 200 with it's associated objects can take place by accessing a single database row.
- the next child node is a Object Node 116 that contains the mapping information for the Address object contained in the Customer object.
- the node object 116 refers to a sub-node object 118 that provides the mapping information for an attribute contained in the Address object.
- the node object 118 is a primitive node and refers to a corresponding CdoDbField object 120.
- the node object 118 provides the functionality to map from and to the Street attribute in Address objects.
- the associated database field object 120 provides the functionality to map to and from the buffer of the STREET column of the CUSTOMER table.
- the next child node to be processed is the List Node object
Abstract
Description
Claims
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CA002302286A CA2302286A1 (en) | 1998-07-29 | 1999-07-26 | Object to relational database mapping infrastructure in a customer care and billing system |
EP99937431A EP0996907A1 (en) | 1998-07-29 | 1999-07-26 | Object to relational database mapping infrastructure in a customer care and billing system |
AU52270/99A AU5227099A (en) | 1998-07-29 | 1999-07-26 | Object to relational database mapping infrastructure in a customer care and billing system |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US9445998P | 1998-07-29 | 1998-07-29 | |
US60/094,459 | 1998-07-29 | ||
US09/353,591 US6240422B1 (en) | 1998-07-29 | 1999-07-15 | Object to relational database mapping infrastructure in a customer care and billing system |
US09/353,591 | 1999-07-15 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2000007120A1 true WO2000007120A1 (en) | 2000-02-10 |
Family
ID=26788909
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US1999/016765 WO2000007120A1 (en) | 1998-07-29 | 1999-07-26 | Object to relational database mapping infrastructure in a customer care and billing system |
Country Status (5)
Country | Link |
---|---|
US (1) | US6240422B1 (en) |
EP (1) | EP0996907A1 (en) |
AU (1) | AU5227099A (en) |
CA (1) | CA2302286A1 (en) |
WO (1) | WO2000007120A1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108614687A (en) * | 2018-04-20 | 2018-10-02 | 苏州蜗牛数字科技股份有限公司 | A kind of method that realizing reflection in C++ programs, storage medium and computing device |
Families Citing this family (77)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6865576B1 (en) * | 1999-05-21 | 2005-03-08 | International Business Machines Corporation | Efficient schema for storing multi-value attributes in a directory service backing store |
CA2281331A1 (en) * | 1999-09-03 | 2001-03-03 | Cognos Incorporated | Database management system |
US7000183B1 (en) * | 1999-09-27 | 2006-02-14 | John M. Crawford, Jr. | Method and apparatus for viewer-specific presentation of information |
US6353820B1 (en) * | 1999-09-29 | 2002-03-05 | Bull Hn Information Systems Inc. | Method and system for using dynamically generated code to perform index record retrieval in certain circumstances in a relational database manager |
US6353819B1 (en) * | 1999-09-29 | 2002-03-05 | Bull Hn Information Systems Inc. | Method and system for using dynamically generated code to perform record management layer functions in a relational database manager |
US6675157B1 (en) * | 1999-11-01 | 2004-01-06 | International Business Machines Corporation | System and method for balancing binary search trees |
US6754670B1 (en) * | 1999-12-17 | 2004-06-22 | International Business Machines Corporation | Mapping relational tables to object oriented classes |
US6791585B1 (en) * | 2000-01-21 | 2004-09-14 | International Business Machines Corporation | Computer method and system for reconciling disparate data archival mediums |
US6826583B1 (en) | 2000-05-15 | 2004-11-30 | Sun Microsystems, Inc. | Local allocation buffers for parallel garbage collection |
US6823351B1 (en) * | 2000-05-15 | 2004-11-23 | Sun Microsystems, Inc. | Work-stealing queues for parallel garbage collection |
US7620665B1 (en) * | 2000-11-21 | 2009-11-17 | International Business Machines Corporation | Method and system for a generic metadata-based mechanism to migrate relational data between databases |
US7107595B2 (en) * | 2001-04-05 | 2006-09-12 | Hewlett-Packard Development Company, L.P. | Mechanism for mapping Java objects onto an LDAP repository |
US7103887B2 (en) * | 2001-06-27 | 2006-09-05 | Sun Microsystems, Inc. | Load-balancing queues employing LIFO/FIFO work stealing |
US7606881B2 (en) * | 2002-04-25 | 2009-10-20 | Oracle International Corporation | System and method for synchronization of version annotated objects |
US7076567B1 (en) * | 2002-04-25 | 2006-07-11 | Oracle International Corporation | Simplified application object data synchronization for optimized data storage |
US7047259B1 (en) | 2002-06-25 | 2006-05-16 | Oracle International Corporation | Rich cross object navigation in mobile applications |
US20040010498A1 (en) * | 2002-07-10 | 2004-01-15 | Lin Tser Yeng | Object persistence to relational database within run-time environment supporting attributes and reflection |
US7787489B2 (en) * | 2002-10-07 | 2010-08-31 | Oracle International Corporation | Mobile data distribution |
EP1482406A1 (en) * | 2003-05-28 | 2004-12-01 | Sap Ag | A method of customizing an object by parametrising an application program |
WO2004114160A2 (en) * | 2003-06-13 | 2004-12-29 | Equifax, Inc. | Systems and processes for automated criteria and attribute generation, searching, auditing and reporting of data |
CA2536097A1 (en) * | 2003-08-27 | 2005-03-10 | Equifax, Inc. | Application processing and decision systems and processes |
US11132183B2 (en) | 2003-08-27 | 2021-09-28 | Equifax Inc. | Software development platform for testing and modifying decision algorithms |
US20050187888A1 (en) * | 2004-02-19 | 2005-08-25 | William Sherman | Method for associating information pertaining to a meter data acquisition system |
US7685008B2 (en) * | 2004-02-20 | 2010-03-23 | Accenture Global Services Gmbh | Account level participation for underwriting components |
US8225221B2 (en) * | 2004-04-12 | 2012-07-17 | Microsoft Corporation | Method and apparatus for constructing representations of objects and entities |
US7464375B2 (en) * | 2004-06-24 | 2008-12-09 | International Business Machines Corporation | Method for flattening hierarchically structured flows |
US20060064395A1 (en) * | 2004-09-23 | 2006-03-23 | Seguin Christopher A | Data element storage method |
US9110712B2 (en) * | 2005-06-10 | 2015-08-18 | International Business Machines Corporation | Method for encapsulating logical units of work using business objects |
US7831629B2 (en) * | 2006-01-06 | 2010-11-09 | Microsoft Corporation | Method for building data encapsulation layers for highly variable schema |
US8313005B2 (en) * | 2006-08-03 | 2012-11-20 | Kraft Foods Global Brands, Llc | Plastic coffee container with pinch grip |
US8214797B2 (en) * | 2007-02-01 | 2012-07-03 | Microsoft Corporation | Visual association creation for object relational class development |
CA2921562C (en) * | 2007-08-07 | 2017-11-21 | Equifax, Inc. | Systems and methods for managing statistical expressions |
US10114840B2 (en) * | 2009-09-29 | 2018-10-30 | Sap Se | Customer data separation in a service provider scenario |
US10705802B2 (en) * | 2013-03-20 | 2020-07-07 | Microsoft Technology Licensing, Llc | Extensible and queryable strong types |
US20220164840A1 (en) | 2016-04-01 | 2022-05-26 | OneTrust, LLC | Data processing systems and methods for integrating privacy information management systems with data loss prevention tools or other tools for privacy design |
US11438386B2 (en) | 2016-06-10 | 2022-09-06 | OneTrust, LLC | Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods |
US11481710B2 (en) | 2016-06-10 | 2022-10-25 | OneTrust, LLC | Privacy management systems and methods |
US11461500B2 (en) | 2016-06-10 | 2022-10-04 | OneTrust, LLC | Data processing systems for cookie compliance testing with website scanning and related methods |
US11625502B2 (en) | 2016-06-10 | 2023-04-11 | OneTrust, LLC | Data processing systems for identifying and modifying processes that are subject to data subject access requests |
US11544667B2 (en) | 2016-06-10 | 2023-01-03 | OneTrust, LLC | Data processing systems for generating and populating a data inventory |
US11651106B2 (en) | 2016-06-10 | 2023-05-16 | OneTrust, LLC | Data processing systems for fulfilling data subject access requests and related methods |
US11392720B2 (en) | 2016-06-10 | 2022-07-19 | OneTrust, LLC | Data processing systems for verification of consent and notice processing and related methods |
US11636171B2 (en) | 2016-06-10 | 2023-04-25 | OneTrust, LLC | Data processing user interface monitoring systems and related methods |
US10997318B2 (en) | 2016-06-10 | 2021-05-04 | OneTrust, LLC | Data processing systems for generating and populating a data inventory for processing data access requests |
US10318761B2 (en) | 2016-06-10 | 2019-06-11 | OneTrust, LLC | Data processing systems and methods for auditing data request compliance |
US10846433B2 (en) | 2016-06-10 | 2020-11-24 | OneTrust, LLC | Data processing consent management systems and related methods |
US11188862B2 (en) | 2016-06-10 | 2021-11-30 | OneTrust, LLC | Privacy management systems and methods |
US11227247B2 (en) | 2016-06-10 | 2022-01-18 | OneTrust, LLC | Data processing systems and methods for bundled privacy policies |
US11475136B2 (en) | 2016-06-10 | 2022-10-18 | OneTrust, LLC | Data processing systems for data transfer risk identification and related methods |
US11222142B2 (en) | 2016-06-10 | 2022-01-11 | OneTrust, LLC | Data processing systems for validating authorization for personal data collection, storage, and processing |
US11188615B2 (en) | 2016-06-10 | 2021-11-30 | OneTrust, LLC | Data processing consent capture systems and related methods |
US11520928B2 (en) | 2016-06-10 | 2022-12-06 | OneTrust, LLC | Data processing systems for generating personal data receipts and related methods |
US11727141B2 (en) | 2016-06-10 | 2023-08-15 | OneTrust, LLC | Data processing systems and methods for synching privacy-related user consent across multiple computing devices |
US10284604B2 (en) | 2016-06-10 | 2019-05-07 | OneTrust, LLC | Data processing and scanning systems for generating and populating a data inventory |
US11675929B2 (en) | 2016-06-10 | 2023-06-13 | OneTrust, LLC | Data processing consent sharing systems and related methods |
US11586700B2 (en) | 2016-06-10 | 2023-02-21 | OneTrust, LLC | Data processing systems and methods for automatically blocking the use of tracking tools |
US11562097B2 (en) | 2016-06-10 | 2023-01-24 | OneTrust, LLC | Data processing systems for central consent repository and related methods |
US11354435B2 (en) | 2016-06-10 | 2022-06-07 | OneTrust, LLC | Data processing systems for data testing to confirm data deletion and related methods |
US11354434B2 (en) | 2016-06-10 | 2022-06-07 | OneTrust, LLC | Data processing systems for verification of consent and notice processing and related methods |
US10437564B1 (en) | 2016-09-16 | 2019-10-08 | Software Tree, LLC | Object mapping and conversion system |
US10013577B1 (en) | 2017-06-16 | 2018-07-03 | OneTrust, LLC | Data processing systems for identifying whether cookies contain personally identifying information |
US11544409B2 (en) | 2018-09-07 | 2023-01-03 | OneTrust, LLC | Data processing systems and methods for automatically protecting sensitive data within privacy management systems |
US11113253B2 (en) * | 2018-10-30 | 2021-09-07 | Sap Se | Template-based synchronized customization deployment on database systems |
US11061881B2 (en) * | 2018-11-08 | 2021-07-13 | Vmware, Inc. | Bounding cost of flushes in buffer trees |
US11100075B2 (en) * | 2019-03-19 | 2021-08-24 | Servicenow, Inc. | Graphical user interfaces for incorporating complex data objects into a workflow |
KR20200139034A (en) * | 2019-06-03 | 2020-12-11 | 삼성에스디에스 주식회사 | Blockchain based computing system and method for managing transaction thereof |
US11500815B2 (en) * | 2020-03-26 | 2022-11-15 | EMC IP Holding Company LLC | Dual relationship-based hash structure for non-volatile memory technology |
KR20210140851A (en) * | 2020-05-14 | 2021-11-23 | 삼성에스디에스 주식회사 | Method for associating data between a plurality of blockchain networks and apparatus thereof |
EP4179435A1 (en) * | 2020-07-08 | 2023-05-17 | OneTrust LLC | Systems and methods for targeted data discovery |
US11436373B2 (en) | 2020-09-15 | 2022-09-06 | OneTrust, LLC | Data processing systems and methods for detecting tools for the automatic blocking of consent requests |
WO2022061270A1 (en) | 2020-09-21 | 2022-03-24 | OneTrust, LLC | Data processing systems and methods for automatically detecting target data transfers and target data processing |
WO2022099023A1 (en) | 2020-11-06 | 2022-05-12 | OneTrust, LLC | Systems and methods for identifying data processing activities based on data discovery results |
WO2022178089A1 (en) | 2021-02-17 | 2022-08-25 | OneTrust, LLC | Managing custom workflows for domain objects defined within microservices |
WO2022178219A1 (en) | 2021-02-18 | 2022-08-25 | OneTrust, LLC | Selective redaction of media content |
EP4305539A1 (en) | 2021-03-08 | 2024-01-17 | OneTrust, LLC | Data transfer discovery and analysis systems and related methods |
US11562078B2 (en) | 2021-04-16 | 2023-01-24 | OneTrust, LLC | Assessing and managing computational risk involved with integrating third party computing functionality within a computing system |
US11620142B1 (en) | 2022-06-03 | 2023-04-04 | OneTrust, LLC | Generating and customizing user interfaces for demonstrating functions of interactive user environments |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5295256A (en) * | 1990-12-14 | 1994-03-15 | Racal-Datacom, Inc. | Automatic storage of persistent objects in a relational schema |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5291583A (en) * | 1990-12-14 | 1994-03-01 | Racal-Datacom, Inc. | Automatic storage of persistent ASN.1 objects in a relational schema |
US5448727A (en) * | 1991-04-30 | 1995-09-05 | Hewlett-Packard Company | Domain based partitioning and reclustering of relations in object-oriented relational database management systems |
US5426780A (en) * | 1992-02-28 | 1995-06-20 | Intergraph Corporation | System for dynamic segmentation analysis using conversion of relational data into object-oriented data |
US5504885A (en) * | 1993-06-29 | 1996-04-02 | Texas Instruments Incorporated | O-R gateway: a system for connecting object-oriented application programs and relational databases |
JPH07295815A (en) * | 1994-04-26 | 1995-11-10 | Internatl Business Mach Corp <Ibm> | Mapping system and method of permanence object |
US5873093A (en) * | 1994-12-07 | 1999-02-16 | Next Software, Inc. | Method and apparatus for mapping objects to a data source |
US5809505A (en) * | 1996-06-14 | 1998-09-15 | Lo; Thomas | System and method for relational to object mapping |
US6038566A (en) * | 1996-12-04 | 2000-03-14 | Tsai; Daniel E. | Method and apparatus for navigation of relational databases on distributed networks |
US5937409A (en) * | 1997-07-25 | 1999-08-10 | Oracle Corporation | Integrating relational databases in an object oriented environment |
US6108664A (en) * | 1997-10-31 | 2000-08-22 | Oracle Corporation | Object views for relational data |
US6154748A (en) * | 1998-04-07 | 2000-11-28 | International Business Machines Corporation | Method for visually mapping data between different record formats |
-
1999
- 1999-07-15 US US09/353,591 patent/US6240422B1/en not_active Expired - Lifetime
- 1999-07-26 WO PCT/US1999/016765 patent/WO2000007120A1/en not_active Application Discontinuation
- 1999-07-26 EP EP99937431A patent/EP0996907A1/en not_active Withdrawn
- 1999-07-26 AU AU52270/99A patent/AU5227099A/en not_active Abandoned
- 1999-07-26 CA CA002302286A patent/CA2302286A1/en not_active Abandoned
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5295256A (en) * | 1990-12-14 | 1994-03-15 | Racal-Datacom, Inc. | Automatic storage of persistent objects in a relational schema |
Non-Patent Citations (3)
Title |
---|
BOREHAM B: "What's my line? runtime type information in C++", APPLICATION DEVELOPMENT ADVISOR, MAY-JUNE 1998, SIGS, UK, vol. 1, no. 5, pages 66, 68 - 69, XP000856296, ISSN: 1369-4200 * |
BRUN R ET AL: "ROOT - An object oriented data analysis framework", NUCLEAR INSTRUMENTS & METHODS IN PHYSICS RESEARCH, SECTION - A: ACCELERATORS, SPECTROMETERS, DETECTORS AND ASSOCIATED EQUIPMENT,NL,NORTH-HOLLAND PUBLISHING COMPANY. AMSTERDAM, vol. 389, no. 1-2, pages 81-86, XP004082428, ISSN: 0168-9002 * |
KLEISSNER C: "ENTERPRISE OBJECTS TM FRAMEWORK. A SECOND GENERATION OBJECTS-RELATIONAL ENABLER", SIGMOD RECORD,US,ASSOCIATION FOR COMPUTING MACHINERY, NEW YORK, vol. 24, no. 2, pages 455-459, XP002047857 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108614687A (en) * | 2018-04-20 | 2018-10-02 | 苏州蜗牛数字科技股份有限公司 | A kind of method that realizing reflection in C++ programs, storage medium and computing device |
Also Published As
Publication number | Publication date |
---|---|
AU5227099A (en) | 2000-02-21 |
CA2302286A1 (en) | 2000-02-10 |
US6240422B1 (en) | 2001-05-29 |
EP0996907A1 (en) | 2000-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6240422B1 (en) | Object to relational database mapping infrastructure in a customer care and billing system | |
US7809768B2 (en) | Method and apparatus for object oriented storage and retrieval of data from a relational database | |
US7599948B2 (en) | Object relational mapping layer | |
US7136873B2 (en) | Dynamic filtering in a database system | |
US7478087B2 (en) | Translation of object queries involving inheritence | |
US7162469B2 (en) | Querying an object for properties | |
US6356913B1 (en) | Generic (database-independent) and dynamically-modifiable schema | |
US7779386B2 (en) | Method and system to automatically regenerate software code | |
US7096216B2 (en) | Performing operations on a set of objects in a database system | |
US7188116B2 (en) | Method and apparatus for deleting data in a database | |
US5555409A (en) | Data management systems and methods including creation of composite views of data | |
US7412436B2 (en) | System and interface for manipulating a database | |
US7024656B1 (en) | Persistent agents | |
US5442779A (en) | System and method for enabling an interpreted programming language to be executed in a database management system environment | |
US7895226B2 (en) | System and method for translating and executing update requests | |
US7480661B2 (en) | Query services for database system | |
US9171036B2 (en) | Batching heterogeneous database commands | |
JPH06175906A (en) | Information accumulation system and method | |
KR20060045622A (en) | Extraction, transformation and loading designer module of a computerized financial system | |
US7254808B2 (en) | Method for specifying and parsing expressions | |
US6941309B2 (en) | Object integrated management system | |
US5890160A (en) | Object representation of relational database cells having nontraditional large object datatypes | |
EP1383055A2 (en) | Map and data location provider | |
CN103809944A (en) | Web database development component processing method based on JDBC | |
US6460028B1 (en) | System and method for data organization |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A1 Designated state(s): AL AM AT AU AZ BA BB BG BR BY CA CH CN CU CZ DE DK EE ES FI GB GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT UA UG US UZ VN YU ZW |
|
AL | Designated countries for regional patents |
Kind code of ref document: A1 Designated state(s): GH GM KE LS MW SD SL SZ 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 BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG |
|
ENP | Entry into the national phase |
Ref document number: 2302286 Country of ref document: CA Ref country code: CA Ref document number: 2302286 Kind code of ref document: A Format of ref document f/p: F |
|
WWE | Wipo information: entry into national phase |
Ref document number: 1999937431 Country of ref document: EP |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
DFPE | Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101) | ||
WWP | Wipo information: published in national office |
Ref document number: 1999937431 Country of ref document: EP |
|
REG | Reference to national code |
Ref country code: DE Ref legal event code: 8642 |
|
WWW | Wipo information: withdrawn in national office |
Ref document number: 1999937431 Country of ref document: EP |