The described the technology relates generally to data modeling and particularly to modeling of business relationships.
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.
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 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 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 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 5 lists the data elements of the person class in one embodiment. The person class inherits the party class as indicated by line 1.
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
where “custom:” specifies a file that contains the definition of PersonCustomDataType, which may be
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.
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.
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.
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 |
Number | Date | Country |
---|---|---|
2001 256308 | Sep 2001 | JP |
WO 0143031 | Jun 2001 | WO |
WO 0188759 | Nov 2001 | WO |
WO 03003641 | Jan 2003 | WO |
Number | Date | Country | |
---|---|---|---|
20070250408 A1 | Oct 2007 | US |
Number | Date | Country | |
---|---|---|---|
60435566 | Dec 2002 | US |