Siebel Master Data Applications Reference for Industry Applications > Architecture and Framework > About Siebel Master Data Applications Architecture >

UCM Business Objects Layer


The business logic layer for Siebel Master Data Applications contains object abstractions of entities and represents internal and external data. The logic layer also allows for complex entity relationships. For further information about the business objects layer and how to customize it, see Configuring Siebel eBusiness Applications.

The business object manager consists of the Object Manager, Data Manager, and Siebel Master Data Applications Integration.

Object Manager and Data Manager

The object manager and data manager layer use:

  • Business Objects
  • Business Components
  • Virtual Business Components
  • External Business Components

These business objects are customizable. For further information about the business objects and data objects layer, see Configuring Siebel eBusiness Applications.

Siebel Industry eAI Architecture

Siebel Industry eAI architecture is built to work with the Siebel eBusiness Application Integration (eAI) architecture and to support XML-based messaging communication infrastructure. Different applications require integration using messaging mechanisms. Connectors must be built to support various industry standards.

Siebel eBusiness Applications allow you to build and deploy multiple connectors. For example, the Siebel Financial Services Application has built three connectors—Siebel Connector for Master Data Applications, Siebel Connector for ACORD XML, and Siebel Connector for IFX XML—based on the Siebel Industry eAI framework.

Figure 7 illustrates the high-level architecture of the Siebel Industry eAI and the standard connectors.

Figure 7.  High-Level Architecture of Siebel Industry eAI and Standard Connectors
Click for full size image

Siebel Connector for Master Data Applications is based on Siebel XML standards in addition to a predefined Universal Customer Master Application envelope, headers for identifying the sending system, and associated privileges information. It is designed to address the real-time requirement by defining business processes that include both a request and a response message. The Siebel Connector for Master Data Applications provides functions such as:

  • Handling message header
  • Handling heterogeneous objects in the body section of an XML message
  • Security checking for system registration
  • Privilege checking for customer business process management
  • Publishing customer information changes in both real and batch time processing

The Siebel Connector for Master Data Applications includes the UCM Dispatcher, UCM Converter, UCM Publish/Subscribe Service, UCM Security Manager, and UCM Transaction Manager.Master Data.

Business Process Flow

Each standard integration or custom integration is based on the creation of business process flows. A business process flow controls the entire business transaction instance. Figure 8 illustrates inbound (Receive-Send) business process flow. Some of the business flows might constitute messages published by Siebel Master Data Applications such as <InsertContactProduct>, <DeleteAccountAddress>, <UpdateContactProduct>, <UpdateHousehold>, <DeleteAccountAddressResponse>, <LookUpAccount>, <LookUpPersonalAddressByState>, and so on. These messages are included in Siebel Master Data Applications for Industry Applications.

The processing flow for each of these business process flows is largely contained within a Siebel workflow process. The workflow process is instantiated by the Business Integration Manager after receiving the inbound request from enterprise applications.

Figure 8.  Business Process Flow
Click for full size image
Inbound Data Flow

As illustrated in Figure 8, an inbound business process flow starts with a Receiver Server Component, such as the MQSeries or HTTP Receiver. The Receiver runs in the background, continuously waiting for messages to arrive from external applications. After receiving a CRMML message, the receiver then invokes the workflow process configured to handle and process the data.

The workflow dictates the business logic behind the Siebel Connector for Master Data Applications as follows:

  1. The raw XML text string passes through XML Hierarchy Converter and is converted into an XML integration object instance.
  2. The UCM Dispatcher traverses the XML instance and identifies the messages received according to the rule sets of the UCM Dispatcher Map. It then identifies the envelope, header, and body sections among the hierarchy nodes and sends it to the UCM Security Manager.

    NOTE:  The Dispatcher Map is shipped as a part of Siebel UCM Applications. For details, see UCM Dispatcher Map Integration Objects.

  3. The UCM Security Manager takes the XML instance, verifies the System for registration with Siebel Master Data Applications, checks the operation identified in each body section for privileges, and attaches any fail privilege bodies to the FailSecurityHierarchy before sending it to the UCM Converter.
  4. The UCM Converter takes the XML instance, and processes individual sections of the instance while converting each sub-tree into external integration object instances before sending it to the UCM Transaction Manager.
  5. The UCM Transaction Manager performs operations specified in the instance by invoking the services configured in its user properties. For Insertion messages, a Unique ID is generated and inserted into the <Party UId> tag prior to the operation, and a cross-reference record is created after a successful operation of the instance.
  6. If UCM Publish/Subscribe Service is configured for real-time publishing, then messages are sent to systems registered for the particular business objects executed.
Workflow Integration

Siebel Business Process Designer is the center of the business data flow. Workflow processes control the flow and transformation of data into and out of the Siebel eBusiness Applications. You create the workflow processes using a graphical user interface provided within Siebel eBusiness Applications, called the Siebel Business Process Designer.

For details on workflow and the Siebel Business Process Designer, see Siebel Business Process Designer Administration Guide.

Integration Objects

Integration objects are data containers used within the workflow environment. They represent the data structure of a Siebel Business Object or an external application's data object. You create integration objects with the Integration Object Builder provided in Siebel Tools. The Integration Object Builder creates Siebel Integration Objects from Siebel Business Objects, which are then used by components within the Siebel Master Data Applications Integration. Supporting integration objects for Siebel Master Data Applications business processes are shipped as part of the Siebel Master Data Applications.

For more information on Integration Objects, see Overview: Siebel eBusiness Application Integration Volume I.

Business Services

Business services execute predefined or custom actions in a workflow process. Examples of business services include the UCM Transaction Manager, the EAI Siebel Adapter, the UCM Converter, and so on. These business services act on property sets passed to them. They perform business logic operations such as interfacing with the database, interfacing to external systems, or transforming one integration object into another. Many business services are provided, but you can create your own. Although you can use business services to perform many different functions, they all have a standard interface. Business services have object-like qualities, such as methods, method arguments, and user properties. These elements define how a business service can be used. Business services are defined in Siebel Tools. This guide describes those business services used to interface to external systems within an organization's application network.

For more information on business services in general, Integration Platform Technologies: Siebel eBusiness Application Integration Volume II.

CRMML Standard

Customer Relationship Management Markup Language (CRMML) is a Siebel messaging system targeted for CRM data exchange and remote business process invocation. CRMML allows different applications with different data models to share information, or replicate data through document exchange and cross reference objects. It also allows multiple applications to share business logic and business processes through remote procedure calls.

CRMML is an extensible XML vocabulary. CRMML specification defines a set of syntax and rules to describe how to interpret messages and how to extend the messages beyond the current offer. CRMML messages contain a simple envelope, a header section, and a body section. The details are described in the following sections.

CRMML Syntax and Rules. CRMML messages contain an envelope, a header section, and a body section. The message specification focuses on the hierarchy and definitions of header elements. It allows users to extend the body section with user-defined elements as long as the object descriptors in the header section describe the usages of the elements in a body section. The following example illustrates the layers of a CRMML message:

<?xml version="1.0" encoding="UTF-8>

<CRMML>

<! CRMML Header section starts>

      <CRMHeader>

            <FromSystem>

                  <SystemInfo type="ID">

                  <SystemId>www.mycompany.com</SystemId>

                  <SystemRole>Insurance Application</SystemRole>

                  <SystemName>Client UI System</SystemName>

                  </SystemInfo>

            </FromSystem>

            <ToSystem>

                  <SystemInfo type="ID">

                  <SystemId>123-456-789</SystemId>

                  <SystemRole>Service Provider</SystemRole>

                  <SystemName>Siebel UCM System</SystemName>

                  </SystemInfo>

            </ToSystem>

            <MessageDescriptor>

                  <MessageId>11SC3I2002053116:43:45</MessageId>

                  <TransactionScope>any</TransactionScope>

                  <Timestamp>01/01/2001</Timestamp>

                  <TimeToLive>365</TimeToLive>

            </MessageDescriptor>

      </CRMHeader>

<!CRMML Header section ends>

      <CIFPartyPackage>

         <InsertContactProfile>

               <Contact>

                     <Id>ext2223</Id>

                     <EmailAddress>cifemail</EmailAddress>

                     <FaxPhone>5555555555</FaxPhone>

                     <FirstName>0099INFN</FirstName>

                     <HomePhone>1111111111</HomePhone>

                     <LastName>0099INLN</LastName>

               </Contact>

         </InsertContactProfile>

      </CIFPartyPackage>

</CRMML>

Envelope and Header Section. The CRMML message has one envelope element <CRMML>. <CRMML> is the root element for a message. It contains one optional header element <CRMHeader> and one or more body elements. The envelope has no attributes.

The header includes elements for sender and receiver. The following is an example for communication parties:

<! CRMML Header section starts>

<CRMHeader>

   <FromSystem>

      <SystemInfo type="ID">

            <SystemId>www.mycompany.com</SystemId>

            <SystemRole>Insurance Application</SystemRole>

         <SystemName>Client UI System</SystemName>

      </SystemInfo>

   </FromSystem>

   <ToSystem>

      <SystemInfo type="ID">

         <SystemId>123-456-789</SystemId>

         <SystemRole>Service Provider</SystemRole>

         <SystemName>Siebel UCM System</SystemName>

      </SystemInfo>

   </ToSystem>

   ...

<CRMHeader>

<FromSystem> is the sender and <ToSystem> is the receiver in this example. Both elements contain <SystemInfo> aggregate, which holds system ID, system role, and the name of the system. In the example, Sender's name is Client UI System and receiver is Siebel Master Data Applications System. Sender plays an insurance application role and receiver plays a service provider's role.

The header also contains a message descriptor that depicts the body of the message and objects inside the body sections. An example of the message descriptor follows:

<CRMML>

<! CRMML Header section starts>

      <CRMHeader>

            <MessageDescriptor>

                  <MessageId>11SC3I2002053116:43:45</MessageId>

                  <TransactionScope>any</TransactionScope>

                  <Timestamp>Sunday</Timestamp>

                  <TimeToLive>OneYear</TimeToLive>

            </MessageDescriptor>

      </CRMHeader>

The <MessageId> element can be unique to identify a single message, a pair of request or response messages, or a group of communication messages. Transaction scope can be any or all. <Timestamp> is the creation time of a message and <TimeToLive> is the expiration time of a message. Receiver should disregard a message if the message has expired.

The <MessageDescriptor> can have zero or more <ObjectDescriptor> child elements. The following object descriptor example illustrates a metadata for remote procedure call in a message header:

<CRMHeader>

      <MessageDescriptor>

      ...

      <ObjectDescriptor>

            <ObjectId type="HREF" sytem="this">p1</ObjectId>

            <ObjectUsage>SoftwarePackage</ObjectUsage>

      </ObjectDescriptor>

      <ObjectDescriptor>

            <ObjectId type="HREF" sytem="this">m1</ObjectId>

            <ObjectUsage>Method</ObjectUsage>

      </ObjectDescriptor>

      <ObjectDescriptor>

            <ObjectId type="HREF" sytem="this">a1</ObjectId>

            <ObjectUsage>Argument</ObjectUsage>

      </ObjectDescriptor>

      </MessageDescriptor>

</CRMHeader>

<CIFPartyPackage ID="p1">

      <InsertContactProfile ID="m1">

            <Contact ID="a1">

                  <Id>ext2223</Id>

The first <ObjectDescriptor> refers to <CIFPartyPackage> element in the message body by HREF. It indicates that <CIFPartyPackage> is a software package. In this example, it is the Siebel Universal Customer Master Application. The second descriptor indicates that <InsertContactProfile> is a method in the package that the message intends to invoke. The third descriptor shows that <Contact> aggregate is the input argument for <InsertContactProfile>. For UCM implementation, the default usages of the first three elements are package, method, and argument; therefore, no objective descriptor is required for Universal Customer Master Application specific messages.

Body Section. Body section contains user defined message elements. The following is an example body section and is one of the messages supported by the Siebel Master Data Applications.

<CRMML>

      <CRMHeader>

      ...

      </CRMHeader>

      <CIFPartyPackage ID="p1">

            <InsertContactProfile ID="m1">

                  <Contact ID="a1">

                        <Id>ext2223</Id>

                        ...

The example indicates that an external application requests to insert a contact profile to the Siebel Master Data Applications database. The contact detail information is contained within the <Contact> aggregate.

Siebel Master Data Applications Reference for Industry Applications