13 Annotating Composites

This chapter describes annotations and discusses how to annotate Service Element and Reference Element in Requester ABCS Composite, Provider ABCS Composite, Transport Adapter Composite, Enterprise Business Flow Composite, and Composite Business Process Composite. It also discusses valid values for annotation elements.

Note:

Composite Business Processes (CBP) will be deprecated from next release. Oracle advises you to use BPM for modeling human/system interactions.

This chapter includes the following sections:

13.1 Why Annotate a SOA Composite?

AIA recommends annotations in the composite XML file to provide detailed information about:

  • AIA artifacts and their relationships to other AIA artifacts.

  • Composite-level descriptor properties that are used to configure the component at deployment and runtime.

AIA architecture categorizes SOA composites further as adapter services, requester services, provider services, and so on based on their usage. The meta information of these AIA services is used in maintaining Oracle Enterprise Repository (OER) assets of AIA asset types and linking them to OER assets with native asset types; this is accomplished with the help of the AIA Harvester, which harvests the SOA composites.

13.1.1 What Elements of a Composite Must be Annotated?

You must provide annotations in the composites for the exposed services and for the referenced services, according to AIA guidelines, and you must insert these comments at development time.

In line with SOA modeling and development practices, these composites are expected to be harvested multiple times during the development cycle, from conception till deployment to production environment.

Embed annotations in the <svcdoc:AIA> element and place the <svcdoc:AIA> element itself inside the xml comments tags <!-- and -- > as shown below.

The first annotation element that should occur in every annotated composite.xml file is <svcdoc:ServiceSolutionComponentAssociation>. This element, shown in Example 13-1, describes the globally unique identifier (GUID) used for artifacts generation and should be placed under the root element <composite>. The value for this element is not provided by the composite developer and is left blank. The GUID is used to associate the PM-identified Solution Service Component with the implemented Application Business Connector Service (ABCS) Composite. This association enables autopopulation into the Bill Of Material user interface (UI). The GUID is first auto generated in the Solution Service Component UI and it is persisted in the AIA Project Lifecycle Workbench database.

Example 13-1 First Annotation Element for Every composite.xml File

<composite name="SamplesCreateCustomerPartyPortalProvABCSImpl">
........................
<!--<svcdoc:AIA>
            <svcdoc:ServiceSolutionComponentAssociation>
                        <svcdoc:GUID></svcdoc:GUID>
             </svcdoc:ServiceSolutionComponentAssociation>
 </svcdoc:AIA>-->
.....................................
</composite>

You must annotate the Service and Reference elements of the Composite.xml in the manner presented in Example 13-2 and Example 13-3.

Example 13-2 A Skeletal Service Element in a composite.xml with Annotations

<service ui:wsdlLocation .......>
<interface.wsdl ....... />
        <binding.ws ........... />
         <!-- <svcdoc:AIA>
                       <svcdoc:Service>
                        . . . . . . . . . . . .
                    </svcdoc:Service>    
          </svcdoc:AIA> -->
        </service>

Example 13-3 A Skeletal Reference Element in a composite.xml with Annotations

<reference ui:wsdlLocation ........">
            <interface.wsdl ............/>
            <binding.ws ................/>
            <!-- <svcdoc:AIA>
                        <svcdoc:Reference>
                           .................
                        </svcdoc:Reference>
                    </svcdoc:AIA> -->

    </reference>

As shown in Example 13-2 and Example 13-3 the root of the annotation element of the composite is <svcdoc:AIA>. Provide annotations for the Service and Reference elements of the Composite under xml comment tags using the annotation elements <svcdoc:Service> and <svcdoc:Reference>, respectively.

Figure 13-1 illustrates the annotations for Reference and Service elements.

Figure 13-1 Example of Annotations

The image is described in the surrounding text

13.1.2 Understanding the Service Annotation Element

The annotation element <svcdoc:Service> describes the details of the exposed service as denoted by the Service element of the Composite.xml. At a broader level, three annotation elements provide details about a service interface, its implementation, and the transport details (only if it is a transport adapter composite or if the composite contains as an adapter component).

These annotation elements are:

  • InterfaceDetails

    This element provides information about the service interface, such as the name of the service, the name of the operation defined on the service, and the type of the service artifact.

  • ImplementationsDetails

    This element provides information about the application with which the ABCS is interacting.

  • TransportDetails

    This element provides information about the transport adapters and their details, if the composite has any transport adapters.

Figure 13-2 illustrates the annotations for interface, implementation, and transport details.

Figure 13-2 Example Of Annotation Elements

The image is described in the surrounding text

Note:

Only when the Composite is that of an Adapter service are the Transport details provided.

For more information, see Section 13.1.4, "Understanding the TransportDetails Element."

13.1.2.1 InterfaceDetails

This element identifies the interface that is being implemented by the AIA service in consideration. The AIA service that implements an interface definition has these details annotated in its composite.xml. This element should provide details such as:

  • The name of the service

  • The name of the service operation

  • The type of the service artifact

The element InterfaceDetails is explained in detail in Table 13-1.

Table 13-1 Interface Details Elements

Element Description

ServiceName

Identifies the name of the AIA service whose interface is being implemented by the composite under consideration.

The Deployment Plan Generator uses this value.

Namespace

The namespace of the service whose interface is being implemented as defined in its WSDL.

ArtifactType

The type of service artifact, for example, an ABCS, and so on. The valid values are given here: Valid Values for Annotation Elements.

ServiceOperation/Name

The element that holds the complete service operation name in the format of verb + entity.

The name of the operation of the AIA service whose interface is being implemented by the composite under consideration.

AdditionalServiceInformation

This element can be used to provide the additional service information like the supported application versions along with the base version or any other service related information Example:- This service supports create customer or billing profile ABM coming out of Siebel 8.0.x and 8.2 versions


Example 13-4 shows a sample of the interface details annotation element.

Example 13-4 Interface Details Annotation Element Example

<svcdoc:InterfaceDetails>
<svcdoc:ServiceName>CustomerPartyEBS</svcdoc:ServiceName>
                         
<svcdoc:Namespace>http://xmlns.oracle.com/EnterpriseServices/Core/CustomerParty
/V2</svcdoc:Namespace>
         <svcdoc:ArtifactType>EnterpriseBusinessService</svcdoc:ArtifactType>
       <svcdoc:ServiceOperation>
       <svcdoc:Name>CreateCustomerPartyList</svcdoc:Name>
       </svcdoc:ServiceOperation>
<AdditionalServiceInformation>This service supports create customer or billing 
profile ABM coming out of Siebel 8.0.x and 8.2 
versions</AdditionalServiceInformation>
</svcdoc:InterfaceDetails>

Service Interface details are optional. The AIA artifacts that implement an interface definition have these details annotated. For example, a provider ABCS implements an interface defined by an Enterprise Business Service (EBS) operation, whereas a requester ABCS does not. So, annotations about the service interface will only be captured in the provider ABCS to identify which interface that particular ABCS is implementing.

Therefore, specify Service Interface details in the Composite.xml only if they are applicable.

13.1.2.2 ImplementationDetails

The annotation element ImplementationDetails describes the application for which the AIA service is being implemented. Table 13-2 lists the elements and provides a description for each element.

Table 13-2 ImplementationDetails Elements

Element Description

ApplicationName

The name of the participating application with which the service is interacting.

B2BDocument

For requester or provider B2B Connector Services, this element contains the name of the B2B document type that is supported by the B2B Connector Service. An example of a B2B document type is an 850 (EDI ORDER). The value in this field should also match the DocumentType name in Oracle B2B.

B2BDocumentVersion

Contains the version of the B2B document type that is supported by the B2B Connector Service, for example, 4010. The value in this field should also match the DocumentRevision in Oracle B2B.

B2BStandard

Contains the name of the B2B standard/protocol that is supported by the B2B Connector Service, for example, EDI_X12, OAG, or RosettaNet.

B2BStandardVersion

Contains the version of the B2B standard/protocol that is supported by the B2B Connector Service, for example, 1.0.

BaseVersion

The version of the participating application with which the service is interacting.

DevelopedBy

The name of the Business Unit that developed the service. A possible value is ABSG.

OracleCertified

Indicates whether it is tested by Oracle or not.

ArtifactType

Describes the type of the service artifact, for example, whether it is an ABCS, and so on. The valid values are given here: Valid Values for Annotation Elements.

AdditionalServiceInformation

Provide any additional service information.

ServiceOperation/Name

Holds the complete service operation name in the format of verb + entity.

The name of the operation defined in the WSDL of the AIA service that is being implemented.


Example 13-5 shows a sample of the ImplementationDetails annotation element.

Example 13-5 ImplementationDetails Annotation Element Example

<svcdoc:ApplicationName>BRM</svcdoc:ApplicationName>
<svcdoc:ImplementationDetails>
                <svcdoc:BaseVersion>7.3</svcdoc:BaseVersion>
                 <svcdoc:DevelopedBy>Oracle</svcdoc:DevelopedBy>
                 <svcdoc:OracleCertified>Yes</svcdoc:OracleCertified>
                 
<svcdoc:ArtifactType>ProviderABCSImplementation</svcdoc:ArtifactType>
                  <svcdoc:ServiceOperation>
                  <svcdoc:Name>CreateCustomer</svcdoc:Name>
                  </svcdoc:ServiceOperation>
   </svcdoc:ImplementationDetails>

13.1.3 Understanding the Reference Annotation Element

The annotation element <svcdoc:Reference> describes the Reference element of the composite. Figure 13-3 illustrates the Reference annotation element. The child elements of this element and their purpose are described below.

Figure 13-3 Reference Annotation Element Example

The image is described in the surrounding text

These annotation elements are:

  • ArtifactType

    Describes the type of AIA artifact used at the Reference service.

  • ServiceOperation/Name

    Holds the complete service operation name in the format of verb + entity, as defined on the Reference service.

  • TransportDetails

    Provides information about the transport adapters and their details, if the composite has any transport adapters. See Section 13.1.4, "Understanding the TransportDetails Element" for details about the TransportDetails element.

    Note:

    Only when the Composite is for an Adapter service would TransportDetails be provided.

  • AdditionalServiceInformation

    This element can be used to provide the additional service information like the supported application versions along with the base version or any other service related information. This provides more information about the service in the OER. Example:- This service supports EBiz 11.x and 12.x application adapters

13.1.4 Understanding the TransportDetails Element

Use the annotation element TransportDetails to provide details about a transport adapter in a composite if a nonSOAP transport is used to interface with an application, either using inbound or outbound connectivity.

The structure of the element TransportDetails is shown in Figure 13-4.

Figure 13-4 Example of the TransportDetails Element

The image is described in the surrounding text

13.1.4.1 Annotating DBAdapter

If you give ApplicationName details for DBAdapter and set the ResourceType value to Business Event, then the deployment plan generator executes the SQL scripts on the participating application layer and the data source is created for the database in the participating application. If not, then Deployment Plan Generator executes the SQL scripts on the middleware layer, that is, on the same server where Pre-Built Integration or project is to be deployed.

Table 13-3 lists the elements found in the DBAdapter element and provides a description for each.

Table 13-3 DBAdapter Elements

Element Description

ResourceProvider

Holds data about the Database Provider name. Examples: Oracle 10g, Oracle 11g, MS-SQL 9, MySQL 9.

Based on this tag, the Deployment Plan Generator identifies and generate the appropriate configurations for the database.

ConnectionFactory

Holds the name of the connection factory. Using this value, the AIA installation driver creates data sources during deployment. The DB Adapter.rar file is updated during deployment.

For example: eis/DB/AIASamplesDB

ApplicationName

The name of the source or target application, depending on whether it is an inbound or outbound adapter.

For example: EBizDB, SiebelDB

BaseVersion

The version of the application database with which the service is interacting.

XAEnabled

Used by the Deployment Plan Generator to decide if data source is to be configured using XA connection or not. Possible values are true and false.

Based on the whether the tag is true or false, the AIA installation driver selects the appropriate JDBC driver and other configurations.

ResourceTargetIdentifier

Identifier that is used as the element name in the AIAInstallProperties.xml to retrieve database information while running the deployment plan. The xpath to retrieve database details is presented in DP as xpath, for example, pips.<projectCode_fromBOM>.db.<ResourceTargetIdentifier>. The AIA installation driver uses this element during deployment. Examples: EBIZ1, EBIZ2, JMSUSER1, JMSUSER2

Resource Type

Identifies what type of resource must be configured.

ResourceName

Holds data about database table name. The Deployment Plan Generator uses this element to create and configure data sources.

ResourceFileName

Holds data about SQL file name of the database table creation script. The Deployment Plan Generator uses this element to create and configure data sources.

AdditionalResourceInformation

Provide additional resource information such as the supported adapter versions or specifications or any other resource related information.


13.1.4.2 Annotating JMSAdapter

Table 13-4 lists the elements found in JMSAdapter and provides a description for each.

Table 13-4 JMSAdapter Elements

Element Description

ResourceProvider

Holds data about JMS Provider name. Examples: WLSJMS, AQJMS, Tibco, MQ-Series, and SonicMQ.

Based on this tag, the Deployment Plan Generator identifies whether it is AQJMS or WLSJMS and generate the appropriate configurations for AQ or WLS.

ConnectionFactory

Holds the name of the connection factory. Using this value, the AIA installation driver creates JMS modules during deployment. The JMS Adapter.rar file is updated during deployment. Example: eis/jms/ AIA<Application Name>CF.

XAEnabled

The Deployment Plan Generator uses this element to decide whether the data source should be configured using XA connection. Possible values are true and false.

Based on the whether this tag is true or false, the AIA installation driver selects the appropriate JDBC driver and other configurations.

ResourceTargetIdentifier

Can be either blank or filled in. If blank, AIAJMSModule is used to create resources on WLS. If filled in, AIAJDBCJMSModule is used to create resources on WLS.

ResourceType

Identifies what type of the JMS resource must be configured. The value can be Queue or Topic.

ResourceName

Holds data about the Queue or Topic name. The AIA installation driver uses this element to create and configure data sources.

ResourceFileName

Holds data about the SQL file name of the database table creation script. The AIA installation driver uses the SQL file to create and configure data sources.

AdditionalResourceInformation

Provide the additional resource information such as the supported adapter versions or specifications or any other resource related information. This provides more information about the service in the OER.


13.1.4.3 Annotating AQJMS Adapter

Table 13-5 lists the elements found in AQJMSAdapter and provides a description for each.

Table 13-5 AQJMSAdapter Elements

Element Description

ResourceProvider

Holds data about AQJMS Provider name. Examples: AQJMS.Based on this tag, the Deployment Plan Generator generates the appropriate configurations for AQJMS.

ConnectionFactory

Holds the name of the connection factory. Using this value, the AIA installation driver creates AQJMS modules during deployment. The AQ Adapter .rar file is updated during deployment. Example: eis/aqjms/ AIA<Application Name>CF.

XAEnabled

The Deployment Plan Generator uses this element to decide whether the data source should be configured using XA connection. Possible values are true and false.

Based on the whether this tag is true or false, the AIA installation driver selects the appropriate JDBC driver and other configurations.

JMSForeignServerName

Value used to create JMSForeignServer under JMSModule

ResourceTargetIdentifier

Identifier used as the element name in the AIAInstallProperties.xml to retrieve database information while running the deployment plan. The xpath to retrieve database details is presented in DP as xpath, for example, pips.<projectCode_fromBOM>.db.<ResourceTargetIdentifier>.

ResourceType

Identifies what type of the AQ resource must be configured. The value can be Queue or Topic.

ResourceName

Holds data about the Queue or Topic name. The Deployment Plan Generator uses this element to create and configure data sources.

ResourceFileName

Holds data about the SQL file name of the database table creation script. The AIA installation driver uses to create and configure data sources.

AdditionalResourceInformation

Provide additional Resource information such as the supported adapter versions or specifications or any other resource related information. This provides more information about the service in the OER.


13.1.4.4 Annotating Other Resources

To use other resources like File or FTP adapters or any other resource, you must provide the following annotations. The Deployment Plan Generator does not have support for all the resource adapters.

For more information on supported resource adapters, see the Foundation Pack release notes.

Table 13-6 lists the elements used to annotate other resources and provides a description for each.

Table 13-6 Elements for Other Resources

Element Description

ResourceProvider

Holds data about Resource Provider name like FILE or FTP or AQ.

ConnectionFactory

Holds the name of the connection factory. Using this value, the AIA installation driver can create JNDI reference to the target URI.

BaseVersion

The version of the application with which the service is interacting. This provides more information about the service in the OER.

XAEnabled

The Deployment Plan Generator uses this element to decide whether the data source should be configured using XA connection. Possible values are true and false.

Based on the whether this tag is true or false, the AIA installation driver selects the appropriate JDBC driver and other configurations.

ResourceTargetIdentifier

The value of the application product code name. The AIA installation driver uses this element during deployment.

If ResourceTargetIdentifier is used for AQAdapter, then it is the identifier that is used as the element name in the AIAInstallProperties.xml to retrieve database information while running the deployment plan. The xpath to retrieve database details is presented in DP as xpath, for example, pips.<projectCode_fromBOM>.db.<ResourceTargetIdentifier>.

ResourceName

Holds data about the Queue or Topic name. The AIA installation driver use this element to create and configure data sources.

ResourceType

Identifies what type of the resource must be configured.

ResourceFileName

Holds data about the SQL file name of the database table creation script or Shall scripts to create the file folders at a specified location. The AIA installation driver uses to create and configure these sources.

AdditionalResourceInformation

Provide the additional Resource information like the supported adapter versions or specifications or any other resource related information. This provides more information about the service in the OER.

ResourceLocation

Provide the information about the location or relative path of the file. This is used to create the source or target folders at appropriate local or remote locations.


13.1.4.5 Annotating Application Adapter

If you give ApplicationName details for EBiz Adapter and set the ResourceType value to Business Event, then the deployment plan generator executes the SQL scripts on the edge application layer and the data source is created for the database in the participating application. If not, then Deployment Plan Generator executes the SQL scripts on the middleware layer, that is, on the same server where Pre-Built Integration/project is to be deployed.

Table 13-7 lists the elements found in ApplicationAdapter and provides a description for each.

Table 13-7 Application Adapter Elements

Element Description

ResourceProvider

Holds data about EBiz Provider name.

ConnectionFactory

Holds the name of the connection factory. Using this value, the AIA installation driver creates EBiz modules during deployment. The EBiz Adapter .rar file is updated during deployment.

Application Name

The name of the source or target application, depending on whether it is an inbound or outbound adapter.

BaseVersion

The version of the application with which the service is interacting. This provides more information about the service in the OER.

XAEnabled

The Deployment Plan Generator uses this element to decide whether the data source should be configured using XA connection. Possible values are true and false.

Based on the whether this tag is true or false, the AIA installation driver selects the appropriate JDBC driver and other configurations.

ResourceTargetIdentifier

The value of the application product code name. The AIA installation driver uses this element during deployment.

If ResourceType is blank, database information is retrieved from pip.<projectCode_fromBOM>.db.ResourceTargetIdentifier element in the AIAInstallProperties.xml during execution of deployment plan. If ResourceType is BusinessEvent or Procedure, database details are retrieved from participatingapplications.<ApplicationName>.db

ResourceName

Holds data about the Queue or Topic name. The AIA installation driver uses this element to create and configure data sources.

ResourceType

Identifies what type of the AQ resource must be configured. The value can be Queue or Topic.

If values are BusinessEvent or Procedure, dp retrieves database information from under participatingapplications.<ApplicationName>.db in AIAInstallProperties.xml

ResourceFileName

Holds data about the SQL file name of the database table creation script. The AIA installation driver uses to create and configure data sources.

AdditionalResourceInformation

Provide the additional Resource information such as the supported adapter versions or specifications or any other resource related information. This provides more information about the service in the OER.


13.2 How to Annotate the Service Element in a Requester ABCS Composite

To annotate the service element in a requester ABCS composite:

The details of the source participating application must be furnished in this element.

Annotating the Service element in the composite is explained using the Example 13-6:

Example 13-6 Service Element in Requester ABCS Composite Annotation Example

<service ui:wsdlLocation………..">
        <interface.wsdl ………………./>
        <binding.ws …………./>
         <!--<svcdoc:AIA>
                   <svcdoc:Service>
                        <svcdoc:ImplementationDetails>
                            
<svcdoc:ApplicationName>SampleSEBL</svcdoc:ApplicationName>
                            <svcdoc:BaseVersion>1.0</svcdoc:BaseVersion>
                            <svcdoc:DevelopedBy>Oracle</svcdoc:DevelopedBy>
                            <svcdoc:OracleCertified>Yes</svcdoc:OracleCertified>
                            
<svcdoc:ArtifactType>RequesterABCSImplementation</svcdoc:ArtifactType>  
                            <svcdoc:ServiceOperation>
                                <svcdoc:Name>CreateCustomer</svcdoc:Name>
                            </svcdoc:ServiceOperation>
                        </svcdoc:ImplementationDetails>
                    </svcdoc:Service>
                   
         </svcdoc:AIA>-->
    </service>

In Example 13-6, the value of the element, ArtifactType, is provided as RequesterABCSImplementation because the composite represents a Requester ABCS.

The value of the element, ServiceOperation/Name, should be same as the value defined for the operation in the WSDL of the ABCS.

13.3 How to Annotate the Reference Element in a Requester ABCS Composite

To annotate the Reference Element in a requester ABCS composite:

  1. Annotate the Reference Element in the composite, as shown in Example 13-7, providing the details of the Service being invoked.

    Example 13-7 Reference Element in Requester ABCS Composite Annotation Example

    <reference ui:wsdlLocation………………………………………….">
            <interface.wsdl ……………………………………………./>
            <binding.ws…………………………………………………../>
            <!--<svcdoc:AIA>
                        <svcdoc:Reference>
                            
    <svcdoc:ArtifactType>EnterpriseBusinessService</svcdoc:ArtifactType>
                            <svcdoc:ServiceOperation>
                            <svcdoc:Name>CreateCustomerPartyList</svcdoc:Name>
                            </svcdoc:ServiceOperation>
                        </svcdoc:Reference>
                    </svcdoc:AIA>-->
    </reference>
    
  • In Example 13-7, the value of the element, ArtifactType, is provided as EnterpriseBusinessService because it references an external service in the composite.

  • In cases when the external service is an infrastructure utility, such as AIAAsyncErrorHandlingBPELProcess, then the value should be UtilityService.

  • The value of the element, ServiceOperation/Name, should be the same as the value defined for the operation in the WSDL of the service being referenced.

13.4 How to Annotate the Service Element in a Provider ABCS Composite

To annotate the Service Element in a provider ABCS composite:

  1. Furnish the details of the interface that this ABCS is implementing.

  2. Match the values for elements ServiceName, Namespace, and ServiceOperation/name with the corresponding values defined in the interface service's WSDL target participating application as shown in Example 13-8.

    Example 13-8 Service Element in a Provider ABCS Composite Annotation Example

    <service ui:wsdlLocation=………………>
            <interface………………………………/>
            <binding.ws ………………………../>
            <!--<svcdoc:AIA>
                        <svcdoc:Service>
                          <svcdoc:InterfaceDetails>
                             
    <svcdoc:ServiceName>CustomerPartyEBS</svcdoc:ServiceName>
                             
    <svcdoc:Namespace>http://xmlns.oracle.com/EnterpriseServices/Core/CustomerParty
    /V2</svcdoc:Namespace>
                             
    <svcdoc:ArtifactType>EnterpriseBusinessService</svcdoc:ArtifactType>
                             <svcdoc:ServiceOperation>
                                <svcdoc:Name>CreateCustomerPartyList</svcdoc:Name>
                             </svcdoc:ServiceOperation>
                          </svcdoc:InterfaceDetails>
                          <svcdoc:ImplementationDetails>
                             
    <svcdoc:ApplicationName>SamplePortal</svcdoc:ApplicationName>
                             <svcdoc:BaseVersion>1.0</svcdoc:BaseVersion>
                             <svcdoc:DevelopedBy>Oracle</svcdoc:DevelopedBy>
                             <svcdoc:OracleCertified>Yes</svcdoc:OracleCertified>
                             
    <svcdoc:ArtifactType>ProviderABCSImplementation</svcdoc:ArtifactType>
                             <svcdoc:ServiceOperation>
                                <svcdoc:Name>CreateCustomer</svcdoc:Name>
                             </svcdoc:ServiceOperation>
                          </svcdoc:ImplementationDetails>
                       </svcdoc:Service>
                      
              </svcdoc:AIA>-->
        </service>
    
  • In Example 13-8, the value of the element, InterfaceDetails/ArtifactType, is provided as EnterpriseBusinessService because it defines the interface that is being implemented by the Provider ABCS.

  • ImplementationDetails/ArtifactType, is provided as ProviderABCSImplementation because the composite represents a provider ABCS.

  • The value of the element, ServiceOperation/Name, should be same as the value defined for the operation in the WSDL of the ABCS.

13.5 How to Annotate the Reference Element in a Provider ABCS

Annotate the Reference element in the composite, as shown in Example 13-9, Example 13-10, and Example 13-11 providing the details of the Service. The service being invoked can be a participating application, an adapter service, or a utility service.

Example 13-9 Reference Element in Provider ABCS Invoking Participating Web Service Annotation Example

                   <!--<svcdoc:AIA> ;
                           <svcdoc:Reference>
                                
<svcdoc:ArtifactType>UtilityService</svcdoc:ArtifactType>
                                <svcdoc:ServiceOperation>
                                    <svcdoc:Name>initiate</svcdoc:Name>
                                </svcdoc:ServiceOperation>
                            </svcdoc:Reference>
               </svcdoc:AIA>-->
<!--<svcdoc:AIA>
               <svcdoc:Reference>
                        
<svcdoc:ArtifactType>ApplicationWebService</svcdoc:ArtifactType>
                        <svcdoc:ServiceOperation>
                            <svcdoc:Name>insert</svcdoc:Name>
                        </svcdoc:ServiceOperation>
                    </svcdoc:Reference>
          </svcdoc:AIA>-->

Example 13-10 Reference Element in Provider ABCS Invoking Utility Service Annotation Example

<!--<svcdoc:AIA>
<svcdoc:Reference>
                                
<svcdoc:ArtifactType>UtilityService</svcdoc:ArtifactType>
                                <svcdoc:ServiceOperation>
                                    <svcdoc:Name>initiate</svcdoc:Name>
                                </svcdoc:ServiceOperation>
                            </svcdoc:Reference>
                     </svcdoc:AIA>-->

Example 13-11 Reference Element in Provider ABCS Invoking Non-SOAP Service Annotation Example

<!--<svcdoc:AIA>
<svcdoc:Reference>
                                                            
<svcdoc:ArtifactType>TransportAdapter</svcdoc:ArtifactType>
                                                            
<svcdoc:ServiceOperation>
                                                                        
<svcdoc:Name>process</svcdoc:Name>
                                                           
</svcdoc:ServiceOperation>
                                                 </svcdoc:Reference>
                    </svcdoc:AIA>-->

13.6 How to Annotate the Transport Adapter Composite

To annotate the Transport Adapter composite:

  1. For a Transport Adapter composite, populate the element, TransportDetails, under:

    • Service, if nonSOAP transport is used to interface with this service.

    • Reference, if the service uses nonSOAP transport to interface with participating applications /external systems.

  2. In both cases, the values for the element ArtifactType are provided as TransportAdapter.

    The artifact type TransportAdapter indicates that the service is responsible for transforming nonSOAP requests into SOAP requests and vice versa.

    Example 13-12 illustrates how transport details are populated in the section Service.

    Example 13-12 Transport Adapter Composite Annotation Example

    <!--<svcdoc:AIA>
    <svcdoc:Service>
          <svcdoc:ImplementationDetails>
    <svcdoc:ApplicationName>SamplePortal</svcdoc:ApplicationName>
              <svcdoc:BaseVersion>1.0</svcdoc:BaseVersion>
    
    <svcdoc:DevelopedBy>ABSG</svcdoc:DevelopedBy>
    
    <svcdoc:OracleCertified>Yes</svcdoc:OracleCertified>
    
    <svcdoc:ArtifactType>TransportAdapter</svcdoc:ArtifactType>  
              <svcdoc:ServiceOperation>
                  <svcdoc:Name>process</svcdoc:Name>
              </svcdoc:ServiceOperation>
          </svcdoc:ImplementationDetails>
       </svcdoc:Service> 
    </svcdoc:AIA>-->
    

    Example 13-13 depicts how transport details are populated in the section Reference.

    Example 13-13 Transport Details Populated in Reference Element Annotation Example

    <!--<svcdoc:AIA>
    <svcdoc:Reference>
    
    <svcdoc:ArtifactType>TransportAdapter</svcdoc:ArtifactType>
                <svcdoc:ServiceOperation>
                    <svcdoc:Name>insert</svcdoc:Name>
                </svcdoc:ServiceOperation>
                <svcdoc:TransportDetails>
                    <svcdoc:DBAdapter>
    
    <svcdoc:ResourceProvider>OracleDB</svcdoc:ResourceProvider>
    
    <svcdoc:ConnectionFactory>eis/db/AIASamplesDB</svcdoc:ConnectionFactory>
    
    <svcdoc:ApplicationName>SamplePortal</svcdoc:ApplicationName>
                            <svcdoc:XAEnabled>True</svcdoc:XAEnabled>
    
    <svcdoc:ResourceTargetIdentifier>AIASamplesDB</svcdoc:ResourceTargetIdentifier>
                <svcdoc:ResourceName>AIAS_PORTAL_ACC_CONTACT</svcdoc:ResourceName>
    
    <svcdoc:ResourceName>AIAS_PORTAL_ACCOUNT</svcdoc:ResourceName>
    
    <svcdoc:ResourceFileName>AIAS_PORTAL_ACCOUNT_CONTACT.sql
               </svcdoc:ResourceFileName>
             </svcdoc:DBAdapter>
           </svcdoc:TransportDetails>
         </svcdoc:Reference>
    </svcdoc:AIA>-->
    

In Example 13-13:

  • The element <svcdoc:ResourceTargetIdentifier> denotes the database schema used for the project.

  • The element <svcdoc:ResourceName> denotes the database table used. This element may be repeated for each database table when multiple tables are used.

  • The element <svcdoc:ResourceFileName> should have all the SQLs and sequences required included in the file. Also, it should provide the correct order for the SQLs, in which SQLs must be executed.

Example 13-14 shows the code when a JMS Adapter is used.

Example 13-14 Transport Details Populated in Reference Element Using JMS Adapter Annotation Example

<!--<svcdoc:AIA>
<svcdoc:Reference>

<svcdoc:ArtifactType>TransportAdapter</svcdoc:ArtifactType>
           <svcdoc:ServiceOperation>
               <svcdoc:Name>Produce</svcdoc:Name>
           </svcdoc:ServiceOperation>
           <svcdoc:TransportDetails>
           <svcdoc:JMSAdapter>

<svcdoc:ResourceProvider>WLSJMS</svcdoc:ResourceProvider>

<svcdoc:ConnectionFactory>eis/jms/AIASamplesCF</svcdoc:ConnectionFactory>
           <svcdoc:XAEnabled>True</svcdoc:XAEnabled>

<svcdoc:ResourceTargetIdentifier>JMSUSER1</svcdoc:ResourceTargetIdentifier>
     <svcdoc:ResourceType>Queue</svcdoc:ResourceType>
     <svcdoc:ResourceName>AIA_SiebelCustomerJMSQueue</svcdoc:ResourceName>
<svcdoc:ResourceFileName>AIASiebelCustomerJMSQueue.sql</svcdoc:ResourceFileName>
     </svcdoc:JMSAdapter>
   </svcdoc:TransportDetails>
  </svcdoc:Reference>
</svcdoc:AIA>-->

13.7 How to Annotate the Service Element in Enterprise Business Flow Composite

To annotate the Service Element in Enterprise Business Flow composite:

  1. Furnish the details of the EBS interface that the Enterprise Business Flow (EBF) implements.

  2. Match the values for elements - ServiceName, Namespace, ServiceOperation/name with the corresponding values defined in the interface service's WSDL as shown below.

    In Example 13-15 the value of the element:

    • InterfaceDetails/ArtifactType is provided as EnterpriseBusinessService because it defines the interface that is being implemented by the EBF.

    • ImplementationDetails/ArtifactType is provided as EnterpriseBusinessFlow because the composite represents an EBF.

    • ImplementationDetails/ApplicationName is provided as AIA because the composite is participating application-agnostic.

The value of the element, ServiceOperation/Name, should be same as the value defined for the operation in the EBS WSDL.

Example 13-15 Service Element in EBF Composite Annotation Example

<service ui:wsdlLocation=………………>
<interface………………………………/>
<binding.ws ………………………../>
<!--<svcdoc:AIA>
<svcdoc:Service>
<svcdoc:InterfaceDetails>
                         
<svcdoc:ServiceName>DoCreditCheckCustomerPartyEBS</svcdoc:ServiceName>
                         
<svcdoc:Namespace>http://xmlns.oracle.com/EnterpriseServices/Core/CustomerParty
/V2</svcdoc:Namespace>
                         
<svcdoc:ArtifactType>EnterpriseBusinessService</svcdoc:ArtifactType>
<svcdoc:ServiceOperation>
                            
<svcdoc:Name>DoCreditCheckCustomerParty</svcdoc:Name>
</svcdoc:ServiceOperation>
</svcdoc:InterfaceDetails>
<svcdoc:ImplementationDetails>
<svcdoc:ApplicationName>AIA</svcdoc:ApplicationName>
<svcdoc:BaseVersion>1.0</svcdoc:BaseVersion>
<svcdoc:DevelopedBy>Oracle</svcdoc:DevelopedBy>
<svcdoc:OracleCertified>Yes</svcdoc:OracleCertified>
                         
<svcdoc:ArtifactType>EnterpriseBusinessFlow</svcdoc:ArtifactType>
<svcdoc:ServiceOperation>
<svcdoc:Name>DoCreditCheck</svcdoc:Name>
</svcdoc:ServiceOperation>
</svcdoc:ImplementationDetails>
</svcdoc:Service>
                  
</svcdoc:AIA>-->
</service>

13.8 How to Annotate the Reference Element in Enterprise Business Flow Composite

To annotate the Reference Element in an EBF composite:

Annotate the Reference element in the composite, as shown in Example 13-16, providing the details of the Service being invoked.

Example 13-16 Reference Element in EBF Composite Annotation Example

<reference ui:wsdlLocation………………………………………….">
        <interface.wsdl ……………………………………………./>
        <binding.ws…………………………………………………../>
        <!--<svcdoc:AIA>
                    <svcdoc:Reference>
                        
<svcdoc:ArtifactType>EnterpriseBusinessService</svcdoc:ArtifactType>
                        <svcdoc:ServiceOperation>
                        
<svcdoc:Name>GetCreditScoreCustomerPartyList</svcdoc:Name>
                        </svcdoc:ServiceOperation>
                    </svcdoc:Reference>
                </svcdoc:AIA>-->
</reference>
  • In Example 13-16, the value of the element ArtifactType is provided as EnterpriseBusinessService because it is the referenced external service in the composite.

  • When the external service is an infrastructure utility, such as AIAAsyncErrorHandlingBPELProcess, then the value should be UtilityService.

  • The value of the element, ServiceOperation/Name, should be same as the value defined for the operation in the WSDL of the service to which it refers.

13.9 How to Annotate the Service Element in Composite Business Process Composite

To annotate the Service Element in a composite business process composite:

  1. Furnish the details of the interface that the EBF is implementing.

    This could be an application specific interface, a UI service interface, or canonical interface.

  2. Match the values for elements ServiceName, Namespace, and ServiceOperation/name with the corresponding values defined in the WSDL of the interface service shown below.

    In Example 13-17, the value of the element:

    • InterfaceDetails/ArtifactType is provided as UIService because it defines the interface that is being implemented by the Composite Business Process (CBP).

    • ImplementationDetails/ArtifactType is provided as CompositeBusinessProcess because the composite represents a CBP.

    • ImplementationDetails/ApplicationName is provided as AIA because the composite, in this case, is participating application-agnostic.

  3. The value of the element, ServiceOperation/Name, should be same as the value defined for the operation in the UI service WSDL.

    Example 13-17 Service Element in Composite Business Process Composite Annotation Example

    <service ui:wsdlLocation=………………>
            <interface………………………………/>
            <binding.ws ………………………../>
            <!--<svcdoc:AIA>
                        <svcdoc:Service>
                          <svcdoc:InterfaceDetails>
                             
    <svcdoc:ServiceName>TelcoResolveCustomerComplaintCBP</svcdoc:ServiceName>
                             
    <svcdoc:Namespace>http://xmlns.oracle.com/UIServices/Industry/CustomerParty/V1
    </svcdoc:Namespace>
                             <svcdoc:ArtifactType>UIService</svcdoc:ArtifactType>
                             <svcdoc:ServiceOperation>
                                
    <svcdoc:Name>TelcoResolveCustomerComplaint</svcdoc:Name>
                             </svcdoc:ServiceOperation>
                          </svcdoc:InterfaceDetails>
                          <svcdoc:ImplementationDetails>
                             <svcdoc:ApplicationName>AIA</svcdoc:ApplicationName>
                             <svcdoc:BaseVersion>1.0</svcdoc:BaseVersion>
                             <svcdoc:DevelopedBy>Oracle</svcdoc:DevelopedBy>
                             <svcdoc:OracleCertified>Yes</svcdoc:OracleCertified>
                             
    <svcdoc:ArtifactType>CompositeBusinessProcess</svcdoc:ArtifactType>
                             <svcdoc:ServiceOperation>
                                
    <svcdoc:Name>TelcoResolveCustomerComplaint</svcdoc:Name>
                             </svcdoc:ServiceOperation>
                          </svcdoc:ImplementationDetails>
                       </svcdoc:Service>
                      
              </svcdoc:AIA>-->
        </service>
    

13.10 How to Annotate the Reference Element in Composite Business Process Composite

To annotate the Reference Element in a Composite Business Process composite:

Annotate the Reference element in the composite, as shown in tExample 13-18 by providing the details of the Service being invoked.

Example 13-18 Reference Element in Composite Business Process Composite Annotation Example

<reference ui:wsdlLocation………………………………………….">
        <interface.wsdl ……………………………………………./>
        <binding.ws…………………………………………………../>
        <!--<svcdoc:AIA>
                    <svcdoc:Reference>
                        
<svcdoc:ArtifactType>EnterpriseBusinessService</svcdoc:ArtifactType>
                        <svcdoc:ServiceOperation>
                        <svcdoc:Name>GetComplaintDetails</svcdoc:Name>
                        </svcdoc:ServiceOperation>
                    </svcdoc:Reference>
                </svcdoc:AIA>-->
</reference>
  • In Example 13-18, the value of the element, ArtifactType, is provided as EnterpriseBusinessService because it is the referenced external service in the composite.

  • When the external service is an infrastructure utility, such as, AIAAsyncErrorHandlingBPELProcess, then the value should be UtilityService.

  • The value of the element, ServiceOperation/Name, should be same as the value defined for the operation in the WSDL of the service being referred to.

13.11 Valid Values for Annotation Elements

This section lists the valid values for the annotation elements:

  • ArtifactType

  • ApplicationName

13.11.1 Valid Values for the Element ArtifactType

  • RequesterABCSImplementation

  • RequesterABCSExtension

  • ProviderABCSImplementation

  • ProviderABCSExtension

  • EnterpriseBusinessService

  • EnterpriseBusinessFlow

  • EnterpriseBusinessFlowExtension

  • CompositeBusinessProcess

  • CompositeBusinessProcessExtension

  • ApplicationService

  • ExternalService

  • UtilityService

  • TransportAdapter

  • VersionAdapter

  • Other

13.11.2 Valid Values for the Element ApplicationName

  • AIA

  • PeopleSoft

  • BRM

  • FAH

  • UCM

  • SAP

  • PIM

  • OracleRetail

  • Logistics

  • JDEE1

  • CRMOD

  • Agile

  • Ebiz

  • Siebel

  • OUCCB - Oracle Utilities Customer Care and Billing

  • OUWAM - Oracle Utilities Work and Asset Management

  • OUMWM - Oracle Utilities Mobile Workforce Management