Data model for business relationships

Information

  • Patent Grant
  • 7856454
  • Patent Number
    7,856,454
  • Date Filed
    Monday, March 24, 2003
    21 years ago
  • Date Issued
    Tuesday, December 21, 2010
    13 years ago
Abstract
A data model that allows for relationships between entities, also referred to as parties, to be modeled as attributes of an entity and for customization of the data model in a manner that facilitates upgrading of the data model. The data model defines a party class that includes a party identifier and a list of relationships of that party with other parties. The relationships may include represented-by relationships, customer-of relationships, contact-of relationships, or employee-of relationships. The party class can be sub-classed (i.e., be a base class for a derived class) depending on the type of party that is being model.
Description
TECHNICAL FIELD

The described the technology relates generally to data modeling and particularly to modeling of business relationships.


BACKGROUND

Various business entities, such as companies, store information electronically in furtherance of their business needs. These companies may have extensive databases of information that include customer tables, supplier tables, employee tables, and so on. The schemas and data models associated with these databases may be customized to help meet the business needs of the company. For example, an automotive manufacturer may organize information about its customers in a way that is very different from the way that an online bookstore may organize information about its customers. Even within a single company, that company may use many different application programs that employ very different schemas and data models. For example, a customer relationship management application program may use a data model that is very different from the data model used by an accounting program. The use of customized data models by a company and by applications within the company has the advantage that it allows information to be modeled in a way that is appropriate for business needs of the company. Unfortunately, because of this diversity in the data models, it is not easy for the company to share its information with other companies or for applications to share their information.


Various attempts have been made to define standard data models so that information can be more easily shared between companies and applications. For example, the Open Applications Group has defined a standard data model that can be used by companies and applications when sharing information. A problem with such data models is that they did not provide effective ways to model relationships between various parties, such as a person or a company. In addition, if a company or an application developer wants to customize the standard data model, the customized data model may not be compatible with future upgrades of the standard data model. It would be desirable to have a data model that would more effectively model relationships and facilitate the upgrading of customizations of the data model.





BRIEF DESCRIPTION OF THE DRAWINGS


FIG. 1 illustrates the highest level data elements of the party class.



FIG. 2 illustrates the data elements of the listOfRelationship class in one embodiment.



FIG. 3 illustrates the data elements of the RepresentedBy class in one embodiment.



FIG. 4 illustrates the data elements of the customerOf class in one embodiment.



FIG. 5 illustrates the data elements of the contactOf class in one embodiment.



FIG. 6 illustrates the data elements of the employeeof class in one embodiment.



FIG. 6A illustrates the data elements of the relatedTo class in one embodiment.



FIG. 6B illustrates the data elements of the licenseData class in one embodiment.



FIG. 7 illustrates the data elements of the org class.



FIG. 8 illustrates the data elements of the baseData data element of the org class in one embodiment.



FIG. 9 illustrates the data elements of the person class.



FIG. 10 illustrates a data elements of the baseData data element of the person class in one embodiment.



FIG. 11 illustrates the data elements of the busUnit class in one embodiment.



FIG. 12 illustrates the data elements of the baseData element of the busUnit class in one embodiment.



FIG. 13 is a block diagram illustrating the interconnection between business various systems and a universal business application network.



FIG. 14 is a block diagram illustrating the overall architecture of a universal business application network in one embodiment.



FIG. 15 is a flow diagram illustrating the process of adding custom data to a party class.



FIG. 16 is a flow diagram illustrating the process of creating a customer relationship for a party in one embodiment.





DETAILED DESCRIPTION

A data model that allows for relationships between entities, also referred to as parties, to be modeled as attributes of an entity and for customization of the data model in a manner that facilitates upgrading of the data model is provided. In one embodiment, the data model defines a party class that includes a party identifier and a list of relationships of that party with other parties. The relationships may include represented-by relationships, customer-of relationships, contact-of relationships, or employee-of relationships. The party class can be sub-classed (i.e., be a base class for a derived class) depending on the type of party that is being model. The types of parties may include a business unit, household, organization, person, and so on. A business unit is generally a corporation, division, or group of individuals that provides services or products for the organization (e.g., company) that is using the data model. A household is a group of individuals who commonly share the same dwelling and compose a family or social unit. An organization is an institution, corporation, an administrative and functional structure with the common purpose, or other grouping of people. A person is an individual. A customer is a person, organization, or household who uses products or services provided by a business unit. An employee is a person employed by an organization. A contact is a person serving as a representative, messenger, or liaison for an organization or another person. A representative is a person who represents an organization or another person. The data model models the relationships as attributes associated with a party. For example, a person may have a customer relationship with several different business units. In such a case, the data model specifies that information relating into each business unit would be associated with that person. In one embodiment, the data model is specified using a schema language such as XML Schema.


In one embodiment, the data model defines a hierarchy of the data elements for describing a party. The data model may define data elements that are complex. A complex data element is a data element that comprises data sub-elements. For example, an address data element may be a complex data element that includes street, city, and state data sub-elements. The data model may specify custom data elements at various places within the hierarchy of data elements. A custom data element is of a custom data element type. The custom data element type initially defines no data elements. The data model can be customized by defining custom data elements for the custom data element type. For example, the data elements relating to the relationship of an employee of an organization may have a custom data element through which data elements relating to the salary history of the employee can be defined. Because the custom data elements are defined at various places within the hierarchy, the customizations of the data model can be associated with related data elements within the hierarchy.


Table 1 lists the data elements of a party class in one embodiment. The indentation of the data element names indicates data sub-elements of complex data elements. For example, the addressRelationshipData data element of line 10 includes the data sub-elements of endDate, occupancyTypeCode, startDate, and typeCode. Although not shown in the table, these data sub-elements may themselves be complex data elements with data sub-elements. For example, the startDate data element of line 13 could have data sub-elements of year, month, and day. Lines 28-85 list the data elements that define the various relationships of the party. Lines 15, 35, 57, 63, 70, 84, 85, and 86 list customData elements of a type appropriate for the enclosing complex data element. For example, the customData element defined at line 35 allows for custom data to be defined that relates to the enclosing representedBy complex data element.










TABLE 1







1.
party


2.
 id


3.
 communicationData


4.
 . . .


5.
 dataCleansingData


6.
 . . .


7.
 listOfAddress


8.
 address


9.
  id


10.
  baseData


11.
  . . .


12.
  addressRelationshipData


13.
  endDate


14.
  occupancyTypeCode


15.
  startDate


16.
  typeCode


17.
  customData


18.
 listOfAlternateId


19.
 alternateId


20.
 listOfLicenseData


21.
 classCode


22.
 countryCode


23.
 expiryDate


24.
 issueDate


25.
 number


26.
 province


27.
 stateCode


28.
 suspensionEndDate


29.
 typeCode


30.
 listOfRelationship


31.
 listOfRepresentedBy


32.
  representedBy


33.
  person


34.
  relationshipData


35.
   jobTitle


36.
   statusCode


37.
  customData


38.
 listOfCustomerOf


39.
  customerOf


40.
  busUnit


41.
  relationshipData


42.
   historyCode


43.
   satisfactionRatingCode


44.
   statusCode


45.
   typeCode


46.
   listOfBillingProfile


47.
   id


48.
   basedData


49.
    billTypeCode


50.
    billFrequencyCode


51.
    billDay


52.
    budgetBillFlag


53.
    mediaTypeCode


54.
    manualBillCount


55.
    manualBillVerificationReason


56.


57.
   paymentMethodData


58.
   relatedparty


59.
   customData


60.
  householdCustomerData


61.
   demographicSegmentCode


62.
   lifecycleStatusCode


63.
   marketSegmentCode


64.
   annualRevenue


65.
  customData


66.
 listOfContactOf


67.
 contactOf


68.
  org


69.
  relationshipData


70.
  jobTitle


71.
  statusCode


72.
  customData


73.
 listOfEmployeeOf


74.
 employeeOf


75.
  org


76.
  relationshipData


77.
  buildingNumber


78.
  classCode


79.
  cubicleNumber


80.
  currentEmployerFlag


81.
  endDate


82.
  jobTitle


83.
  number


84.
  occupationCode


85.
  shiftCode


86.
  startDate


87.
  statusCode


88.
  typeCode


89.
  userName


90.
  yearsEmployed


91.
  yearsWithEmployer


92.
  methodOfContract


93.
  listOfEmploymentDate


94.
  listOfPositions


95.
  listOfJobs


96.
  customData


97.
 customData


98.
 customData









Table 2 lists the data elements of the business unit class in one embodiment. The business unit class inherits the party class as indicated by line 1.










TABLE 2







1.
busunit:party


2.
 baseData


3.
 name


4.
 customData









Table 3 lists the data elements of the household class in one embodiment. The household class inherits the party class as indicated by line 1.










TABLE 3







1.
household:party


2.
 base data


3.
 name


4.
 familyTypeCode


5.
 numberOfPeople


6.
 annualIncome


7.
 netWorth


8.
 uniqueName


9.
 customData









Table 4 lists the data elements of the organization class in one embodiment. The organization class inherits the party class as indicated by line 1.










TABLE 4







1.
org:party


2.
 baseData


3.
 name


4.
 dunsNumber


5.
 customData









Table 5 lists the data elements of the person class in one embodiment. The person class inherits the party class as indicated by line 1.










TABLE 5







1.
person:party


2.
 baseData


3.
 firstName


4.
 lastName


5.
 fullName


6.
 middleName


7.
 shortName


8.
 nameSuffix


9.
 titleCode


10.
 genderCode


11.
 maritalStatusCode


12.
 birthDate


13.
 annualIncomeAmount


14.
 dependents


15.
 ethnicityCode


16.
 homeOwnerFlag


17.
 customData









Each of the types of a party specify a custom data element for that type. For example, the customData data element of the person Class Table 5 may be defined as being a PersonCustomDataType. If so, the person class can be customized by adding data elements to the definition of the PersonCustomDataType. The definition may be stored in a file that is separate from the file in which the person Class is defined. A portion of an XML schema that defines the custom data a personClass is

















<xs:element name = “customData” type =









“custom:PersonCustomDataType” minOccurs = “0” />











where “custom:” specifies a file that contains the definition of PersonCustomDataType, which may be

















<xs:complexType name = “PersonCustomDataType”>









<xs:annotation









<xs:documentation>









Define the custom data element for this



type following this annotation









<xs:documentation>









</xs:annotation>









</xs:complexType>











FIGS. 1-12 are block diagrams illustrating the data model in one embodiment. One skilled in the art will appreciate that the names of each data element is descriptive of the information stored in the data element FIG. 1 illustrates the highest level data elements of the party class in one embodiment. The highest level data elements include id 101, communicationData 102, dataCleansingData 103, listOfAddress 104, listOfRelationship 105, listOfAlternateld 106, listOfLicenseData 107, and customPartyData 108 data elements. The id data element may be a unique identifier of a party. The communicationData data element includes listOfPhoneNumber, listOfEmail, and listOfWebPage data elements that provides communication information relating to the party. The dataCleansingData data element indicates data cleansing for the party is enabled. Data cleansing typically relates to ensure that data of the party is valid and in a correct format. The listOfAddress data element contains a list of addresses for the party (e.g., P.O. box and residence address for a household). The listOfRelationship data element defines data elements for describing various types of relationships. The listOfAlternateld data element contains a list of alternate identifiers (e.g., social security number and tax number) for the party. The listOfLicenseData data element contains a list of various licenses of the party (e.g., driver's license and professional license). The customPartyData data element initially contains no data elements, but custom data elements can be added by defining data elements in the PartyCustomDataType.



FIG. 2 illustrates the data elements of the listOfRelationship class in one embodiment. The listOfRelationship class includes listOfRepresentedBy 201, listOfCustomerOf 203, listOfContactOf 205, listOfEmployeeOf 207, and listOfRelatedTo 209 data elements that contain zero or more instances of the corresponding data sub-elements 202, 204, 206, 208, and 210. The listOfRelationship class also includes a customData 211 data element with a type of listOfRelationshipCustomDataType that initially is defined to have no data elements.



FIG. 3 illustrates the data elements of the representedBy class in one embodiment. The representedBy class includes person 301, relationshipData 302, and customData 303 data elements. The relationshipData data element includes the jobTitle 304 and statuscode 305 data elements. Each of the customData data elements described in FIGS. 1-12 have a unique type that initially has no data elements defined.



FIG. 4 illustrates the data elements of the customerOf class in one embodiment. The customerOf class includes busUnit 401, relationshipData 402, householdCustomerData 403, and customData 404 data elements. The busUnit data element identifies the business unit of which the party is a customer. The relationshipData data element includes historyCode 405 (e.g., new, existing, or returning), satisfactionRatingCode 406 (e.g., good or bad), statusCode 407 (i.e., current status of a customer in a business unit), typeCode 408 and listOfBillingProfile 409 (e.g., customer or federal) data elements. The householdCustomerData data element includes demographicSegmentCode 411 (e.g., blue collar), lifecycleStatusCode 412 (i.e., the status of the household relative to business unit, e.g., qualified), marketSegmentCode 413 (e.g., platinum or gold), and annualRevenue 414 (e.g., derived from business or household) data elements.



FIG. 5 illustrates the data elements of the contactOf class in one embodiment. The contactOf class includes org 501 (i.e., organization in which the party is a contact), relationshipData 502, and customData 503 data elements. The relationshipData data element includes jobTitle 504 and statusCode 505 (i.e., current status of a contact) data elements.



FIG. 6 illustrates the data elements of the employeeOf class in one embodiment. The employeeOf class includes org 601, relationshipData 602, and customData 603 data elements. The relationshipData data element includes buildingNumber 604 (i.e., building in which the employee works), classCode 605 (e.g., employee or contractor), cubicleNumber 606 (i.e., cubicle in which the employee works), currentEmployerFlag 607, employmentEndDate 608, jobTitle 609 (i.e., business title to be used for external purposes such as business cards), number 610 (i.e., employee number), occupationCode 611 (e.g., lawyer or teacher), shiftCode 612 (i.e., employee's normal work shift), startDate 613 (i.e., start date of employment), statusCode 614 (e.g., active or terminated), typeCode 615 (e.g., part time), userName 616 (i.e., login of employee), yearsEmployed 617 (i.e., total number of years employed), yearsWithEmployer 618 (i.e., total number of years employed by current employer), methodOfContact 619, listOfEmploymentDate 620, listOfPosition 621, and listOfJob 622.



FIG. 6A illustrates the data elements of the relatedto class in one embodiment. The relatedto class represents any generic relationship between a party and another party. The relatedTo class includes person 601 (i.e., person to which this party is related), org 602 (i.e., organization to which this party is related), relationshipData 603, and customData 604 data elements. The relationshipData data element includes a typecode 605 (i.e., type of relationship, such as personal or professional) data element.



FIG. 6B illustrates the data elements of the licenseData class in one embodiment. The licenseData class includes a class code 631 (e.g., professional), countryCode 632, expiryDate 633, issueDate 634, number 635 (e.g., driver's license number), province 636, statecode 637, suspensionEndDate 638, and typeCode 639 (e.g., driver's license and physician's license).



FIGS. 7-12 illustrates the inheritance of the party class by the classes of the entities. Each of these classes inherit the party class and defines a baseData element that is specific to that class and a customData data element. FIG. 7 illustrates the data elements of the org class in one embodiment. The org class inherits the party class 701 and includes baseData 702 and customData 703 data elements. FIG. 8 illustrates the data elements of the baseData data element of the org class in one embodiment. The base data element includes name 801 and dunsNumber 802 data elements.



FIG. 9 illustrates the data elements of the person class. The person class inherits the party class 901 and includes baseData 902 and customData 903 data elements. FIG. 10 illustrates a data elements of the baseData data element of the person class in one embodiment. The baseData element includes firstName 1001, lastName 1002, fullName 1003, middleName 1004, shortName 1005, nameSuffix 1006, titleCode 1007, gendercode 1008, maritalStatusCode 1009, birthDate 1010, annuallncomdAmount 1011, dependents 1012, ethnicityCode 1013, and homeOwnerFlag 1014 data elements.



FIG. 11 illustrates the data elements of the busUnit class in one embodiment. The busUnit class inherits the party class 1101 and includes baseData 1102 and customData 1103 data elements. FIG. 12 illustrates the data elements of the baseData element of the busUnit class in one embodiment. The baseData data element includes name 1201 data element.



FIG. 13 is a block diagram illustrating the interconnection between business various systems and a universal business application network. The universal business application network 1301 serves as an integration hub for the business systems 1302. The architecture of the universal business application network allows new business applications that access legacy business systems to be developed with minimum customization. The legacy business systems can be provided by a single business organization or by different business organizations. The universal business application network also allows the business applications to exchange information using the party class. In one embodiment, the universal business application network uses the XML and Web services standards.



FIG. 14 is a block diagram illustrating the overall architecture of a universal business application network in one embodiment. The hub of the universal business application network is the business integration server 1410 that connects to the various business systems 1401 via adapters 1402. The business integration server includes a transport layer 1411, an object model 1412, a transformation store 1413, a business process controller 1414, and a business process store 1415. The transport layer is a mechanism through which business information is exchanged between the business systems and the business integration server. Each business system may have an adapter that is appropriate to the protocol of the transport layer. For example, the transport mechanism may use communications protocols such as TCP/IP. The transport layer may provide a messaging service for queuing, for guaranteeing delivery of messages, and for handling both synchronous and asynchronous messaging, such as provided by IBM MQSeries and TIBCO Rendezvous. The adapters relay events from the business systems to the integration server and can import configurations of the business systems into the business integration server. In addition, the universal business application network may include encryption and authentication mechanisms to ensure the security and integrity of the information. For example, authentication will help ensure that a business process is accessing the intended business system, rather than an impostor business system. The object model or data model may contain the definition of various business-related objects such as a party, a business unit, a household, an organization, and a person. The objects may be defined using standard object definition tools such as an XML schema definition tool. The transformation store contains transformations for transforming information received from the business systems to the format used by the object model, and vice versa. For example, a person object may include a globally unique identifier for each person. A transformation for a business system that does not use globally unique identifiers may need to access an identification server to determine the globally unique identifier for each person. The transformations may be specified as a computer program, an XML Stylesheet Language Transform (“XSLT”), etc. The business process store contains the business processes that have been defined. A business process may be specified as a script, a process flow, an executable program, etc. In one embodiment, the business processes are defined using the Web Services Flow Language (“WSFL”). The business processes orchestrate a sequence of steps across multiple applications provided by the business systems to achieve a business objective. The business process controller coordinates the execution of the business processes. The business process controller may instantiate objects and invoke functions of the objects in accordance with the various business processes. The business process controller may also initiate the execution of business processes based on predefined conditions and events. For example, the business process controller may launch a certain business process each time an alert is received. Although not shown, the business integration network may provide a standard library of business routines that may be invoked by the business processes. For example, a standard business routine might be to identify whether two person objects represent the same individual or to apply business rules to various objects and take the appropriate action as defined by those rules. The business integration server may also include various tools to facilitate the development of business processes. These tools may aid in the development of transformations, the defining of common objects, and the writing of process flows.


The computers (e.g., universal business application network computer and business systems computer) may include a central processing unit, memory, input devices (e.g., keyboard and pointing devices), output devices (e.g., display devices), and storage devices (e.g., disk drives). The memory and storage devices are computer-readable media that may contain instructions that implement the security system. In addition, the data structures and message structures may be stored or transmitted via a data transmission medium, such as a signal on a communications link.



FIG. 15 is a flow diagram illustrating the process of adding custom data to a party class. In block 1501, the schema for the party class is retrieved. The schema may be an XML schema file that include a customData data element of a type that is defined in another file. In block 1502, the schema for the types of custom data is retrieved. The schema may be stored in an XML schema file that contains the definition for each type of custom data. In block 1503, the custom data schema is opened. In block 1504, the tags relating to the custom data type of interest are located. In block 1505, the custom data elements are added to the located tags. In block 1506, the custom data schema with the newly defined data elements to the custom data type is closed.



FIG. 16 is a flow diagram illustrating the process of creating a customer relationship for a party in one embodiment. In block 1601, the component creates party objects for various parties. In block 1602, the component identifies the customer relationships between parties. In block 1603, the component selects a party that is a customer in a customer relationship. In decision block 1604, if all such customers have already been selected, then the component completes, else component continues at block 1605. In block 1605, the component selects the next customer relationship for that party. In block 1606, if all the customer relationships for the selected party and party been selected, then the component loops to block 1603 to select the next party that has a customer relationship, else the component continues at block 1607. In block 1607, the component adds to the party object of the selected party the identifier of the party that the selected party is a customer of. The component than loops to block 1605 to select the next customer relationship for the selected party.


From the foregoing, it will be appreciated that although specific embodiment of technology have been described herein for purposes of illustration, various modifications may be made without deviating from the spirit and scope of the invention. For example, the class definitions that have been described using XML schema can be equivalently described using other class definition tools such as a C++ class. The classes described can be instantiated in memory and be initialized with information. Accordingly, the invention is not limited except by the appended claims.

Claims
  • 1. A method in a computer system, the method comprising: defining a customizable data model, comprising defining a class,defining a plurality of derived classes, wherein each of the plurality of derived classes are derived from the class, andat least two of the plurality of derived classes are directly derived from the class,creating a hierarchy of data elements, using a processor of the computer system, wherein the hierarchy of data elements comprises the class and the plurality of derived classes,the hierarchy of data elements comprises one or more levels of data elements, andthe hierarchy of data elements is configured to facilitate an upgrade operation, anddefining each data element of the one or more levels of data elements in the hierarchy of data elements as comprising a non-customizable portion and a customizable portion, wherein the customizable portion is configured to support additional data elements,the non-customizable portion is configured to support data elements other than the additional data elements, andthe additional data elements are configured to permit customization of the customizable data model;storing the customizable data model;generating a definition of a derived class of the plurality of derived classes, wherein the definition defines a custom data element of the hierarchy of data elements, andthe custom data element is configured to allow customization of a data element of the customizable data model;storing the definition; andcustomizing the customizable data model, wherein the customizing comprises retrieving the customizable data model,retrieving the definition, andadding the custom data element to the customizable portion of the data element of the customizable data model.
  • 2. The method of claim 1 further comprising: upgrading the customizable data model by performing the upgrade operation, wherein the upgrading results in an upgraded customizable data model,the customization is maintained after the upgrading, wherein maintaining the customization comprises retrieving the upgraded customizable data model,retrieving the definition, andadding the custom data element to the customizable portion of the data element of the customizable data model, andthe custom data element of the upgraded customizable data model corresponds to the custom data element of the customizable data model.
  • 3. The method of claim 2 further comprising: defining a relationship between a first entity and a second entity,whereinthe relationship is defined using the non-customizable portion and the customizable portion of one level of data elements from the one or more levels of data elements, andthe relationship is maintained after the upgrading.
  • 4. The method of claim 1 wherein the customizable portion of the each of the one or more levels of data elements is created by adding data elements defining an entity.
  • 5. The method of claim 1 wherein the hierarchy of data elements is specific to an entity type.
  • 6. The method of claim 1 wherein one of the one or more levels of data elements comprises a party type corresponding to an entity.
  • 7. The method of claim 6 wherein the non-customizable portion of the each of the one or more levels of data elements comprising a party type comprises: a party identifier for the party type, anda list of relationships of the party type.
  • 8. The method of claim 1 further comprises: defining a plurality of party types, wherein each party type of the plurality of party types corresponds to a derived class of the plurality of derived classes, andeach party type of the plurality of party types is associated with at least one level of the one or more levels of data elements;creating a plurality of parties using the plurality of party types; anddefining a relationship between a first party and a second party, wherein the defining the relationship is performed using the non-customizable portion and the customizable portion of the at least one level of the one or more levels of data elements associated with the first party, andusing the non-customizable portion and the customizable portion of the at least one level of the one or more levels of data elements associated with the second party.
  • 9. A non-transitory computer-readable storage medium storing computer instructions, wherein the computer instructions, when executed, perform a method comprising: defining a customizable data model, comprising defining a class,defining a plurality of derived classes, wherein each of the plurality of derived classes are derived from the class, andat least two of the plurality of derived classes are directly derived from the class, andcreating a hierarchy of data elements for representing the entity, wherein the hierarchy of data elements comprises the class and the plurality of derived classes,the hierarchy of data elements comprises one or more levels of data elements, andthe hierarchy of data elements is configured to facilitate an upgrade operation, anddefining each data element of the one or more levels of data elements in the hierarchy of data elements comprises a non-customizable portion and a customizable portion, wherein the customizable portion is configured to support additional data elements,the non-customizable portion is configured to support data elements other than the additional data elements, andthe additional data elements are configured to permit customization of the customizable data model;storing the customizable data model;generating a definition of a derived class of the plurality of derived classes, wherein the definition defines a custom data element of the hierarchy of data elements, andthe custom data element is configured to allow customization of a data element of the customizable data model;storing the definition; andcustomizing the customizable data model, wherein the customizing comprises retrieving the customizable data model,retrieving the definition, andadding the custom data element to the customizable portion of the data element of the customizable data model.
  • 10. The non-transitory computer-readable storage medium of claim 9 further comprising: upgrading the customizable data model by performing the upgrade operation, wherein the upgrading results in an upgraded customizable data model,the customization is maintained after the upgrading, wherein maintaining the customization comprises retrieving the upgraded customizable data model,retrieving the definition, andadding the custom data element to the customizable portion of the data element of the customizable data model, andthe custom data element of the upgraded customizable data model corresponds to the custom data element of the customizable data model.
  • 11. The non-transitory computer-readable storage medium of claim 10 further comprising: a relationship between a first entity and a second entity, wherein the relationship is defined using the non-customizable portion and the customizable portion of one level of data elements from the one or more levels of data elements, andthe relationship is maintained after the upgrading.
  • 12. The non-transitory computer-readable storage medium of claim 9 wherein the customizable portion of the each of the one or more levels of data elements is created by adding data elements defining an entity.
  • 13. The non-transitory computer-readable storage medium of claim 9 wherein the hierarchy of data elements is specific to an entity type.
  • 14. The non-transitory computer-readable storage medium of claim 9 wherein one of the one or more levels of data elements comprises a party type corresponding to an entity.
  • 15. The non-transitory computer-readable storage medium of claim 14 wherein the non-customizable portion of the each of the one or more levels of data elements comprising a party type comprises: a party identifier for the party type, anda list of relationships of the party type.
  • 16. The non-transitory computer-readable storage medium of claim 9 further comprising: defining a plurality of party types, wherein each party type of the plurality of party types corresponds to a derived class of the plurality of derived classes, andeach party type of the plurality of party types is associated with at least one level of the one or more levels of data elements;creating a plurality of parties using the plurality of party types; anddefining a relationship between a first party and a second party, wherein the defining the relationship is performed using the non-customizable portion and the customizable portion of the at least one level of the one or more levels of data elements associated with the first party, andusing the non-customizable portion and the customizable portion of the at least one level of the one or more levels of data elements associated with the second party.
CROSS-REFERENCE TO RELATED APPLICATION(S)

This application claims the benefit of U.S. Provisional Patent Application No. 60/435,566, filed Dec. 20, 2002, which is incorporated herein in its entirety by reference.

US Referenced Citations (119)
Number Name Date Kind
4714995 Materna et al. Dec 1987 A
5220500 Baird et al. Jun 1993 A
5311438 Sellers et al. May 1994 A
5349643 Cox et al. Sep 1994 A
5416917 Adair et al. May 1995 A
5446880 Balgeman et al. Aug 1995 A
5566332 Adair et al. Oct 1996 A
5646862 Jolliffe et al. Jul 1997 A
5699527 Davidson Dec 1997 A
5708828 Coleman Jan 1998 A
5724575 Hoover et al. Mar 1998 A
5727158 Bouziane et al. Mar 1998 A
5742588 Thornberg et al. Apr 1998 A
5758355 Buchanan May 1998 A
5806075 Jain et al. Sep 1998 A
5930764 Melchione et al. Jul 1999 A
5953710 Fleming Sep 1999 A
5970490 Morgenstern Oct 1999 A
6032136 Brake et al. Feb 2000 A
6053947 Parson Apr 2000 A
6178418 Singer Jan 2001 B1
6216130 Hougaard et al. Apr 2001 B1
6226649 Bodamer et al. May 2001 B1
6233566 Levine et al. May 2001 B1
6236997 Bodamer et al. May 2001 B1
6275812 Haq et al. Aug 2001 B1
6336124 Alam et al. Jan 2002 B1
6341289 Burroughs et al. Jan 2002 B1
6343275 Wong Jan 2002 B1
6377952 Inohara et al. Apr 2002 B1
6385620 Kurzius et al. May 2002 B1
6434567 De La Huerga Aug 2002 B1
6463430 Brady et al. Oct 2002 B1
6556950 Schwenke et al. Apr 2003 B1
6591260 Schwarzhoff et al. Jul 2003 B1
6631382 Kouchi et al. Oct 2003 B1
6668253 Thompson et al. Dec 2003 B1
6754679 Oheda Jun 2004 B2
6778651 Jost et al. Aug 2004 B1
6792431 Tamboli et al. Sep 2004 B2
6826542 Virgin et al. Nov 2004 B1
6826568 Bernstein et al. Nov 2004 B2
6828963 Rappoport Dec 2004 B1
6883004 Bahl et al. Apr 2005 B2
6889260 Hughes May 2005 B1
6898783 Gupta et al. May 2005 B1
6912719 Elderon et al. Jun 2005 B2
6944514 Matheson Sep 2005 B1
6947947 Block et al. Sep 2005 B2
6996776 Makely et al. Feb 2006 B1
7043687 Knauss et al. May 2006 B2
7099350 Peterson Aug 2006 B2
7111010 Chen Sep 2006 B2
7111077 Starkovich et al. Sep 2006 B1
7124112 Guyan et al. Oct 2006 B1
7133882 Pringle et al. Nov 2006 B1
7139766 Thomson et al. Nov 2006 B2
7143100 Carlson et al. Nov 2006 B2
7257594 Tamboli et al. Aug 2007 B2
7287041 Barnes-Leon et al. Oct 2007 B2
7337192 Stark et al. Feb 2008 B2
20010011245 Duhon Aug 2001 A1
20010051907 Kumar et al. Dec 2001 A1
20020007343 Oyama et al. Jan 2002 A1
20020019765 Mann et al. Feb 2002 A1
20020023004 Hollander et al. Feb 2002 A1
20020035431 Ell Mar 2002 A1
20020035488 Aquila et al. Mar 2002 A1
20020040313 Hunter et al. Apr 2002 A1
20020040339 Dhar et al. Apr 2002 A1
20020085020 Carroll, Jr. Jul 2002 A1
20020095456 Wensheng Jul 2002 A1
20020116234 Nagasawa Aug 2002 A1
20020123983 Riley et al. Sep 2002 A1
20020138582 Chandra et al. Sep 2002 A1
20020169867 Mann et al. Nov 2002 A1
20020174417 Sijacic et al. Nov 2002 A1
20020178077 Katz et al. Nov 2002 A1
20020184085 Lindia et al. Dec 2002 A1
20020184148 Kahn et al. Dec 2002 A1
20020188513 Gil et al. Dec 2002 A1
20020188538 Robertson et al. Dec 2002 A1
20030023580 Braud et al. Jan 2003 A1
20030051047 Horel et al. Mar 2003 A1
20030071852 Stimac Apr 2003 A1
20030088442 Michael et al. May 2003 A1
20030097642 Arai et al. May 2003 A1
20030131018 Godoy et al. Jul 2003 A1
20030163597 Hellman et al. Aug 2003 A1
20030163603 Fry et al. Aug 2003 A1
20030229529 Mui et al. Dec 2003 A1
20040015515 Beisiegel et al. Jan 2004 A1
20040034661 Barron et al. Feb 2004 A1
20040039576 He et al. Feb 2004 A1
20040093351 Lee et al. May 2004 A1
20040122826 Mackie Jun 2004 A1
20040128188 Leither et al. Jul 2004 A1
20040162773 Del Rey et al. Aug 2004 A1
20040199536 Barnes-Leon et al. Oct 2004 A1
20040215503 Allpress et al. Oct 2004 A1
20040249854 Barnes-Leon et al. Dec 2004 A1
20050021391 Lu et al. Jan 2005 A1
20050091249 Hanson et al. Apr 2005 A1
20050160361 Young Jul 2005 A1
20060271446 Leon et al. Nov 2006 A1
20070033531 Marsh Feb 2007 A1
20070203710 Habichler et al. Aug 2007 A1
20070208577 Leon et al. Sep 2007 A1
20070208878 Barnes-Leon et al. Sep 2007 A1
20070214020 Srinivasan et al. Sep 2007 A1
20070214063 Kahlon et al. Sep 2007 A1
20070214064 Kahlon et al. Sep 2007 A1
20070214065 Kahlon et al. Sep 2007 A1
20070226037 Garg et al. Sep 2007 A1
20070226049 Muralitharan et al. Sep 2007 A1
20070226093 Chan et al. Sep 2007 A1
20070250408 Barnes-Leon et al. Oct 2007 A1
20070250419 Kumar et al. Oct 2007 A1
20070265944 Catahan, Jr. et al. Nov 2007 A1
Foreign Referenced Citations (4)
Number Date Country
2001 256308 Sep 2001 JP
WO 0143031 Jun 2001 WO
WO 0188759 Nov 2001 WO
WO 03003641 Jan 2003 WO
Related Publications (1)
Number Date Country
20070250408 A1 Oct 2007 US
Provisional Applications (1)
Number Date Country
60435566 Dec 2002 US