Saturday, June 23, 2012

AIA 11g PIPS Deployment using AIA Installer Driver: Harvesting AIA composites Part 1 Annotations

Once you have unit-tested, source-controlled, and completed your composite implementation, you can harvest these design-time composites into the Project Lifecycle Workspace and, optionally, Oracle Enterprise Repository. When you choose to harvest into the Project Lifecycle Workbench, annotations in composite XML files are published to Project Lifecycle Workbench. These annotations published to Project Lifecycle Workbench are instrumental in facilitating downstream automation, such as bill of material (BOM) generation and deployment plan generation. Annotations and harvesting are required to enable this downstream automation.

  • If downstream automation is not a requirement for you, you may or may not annotate and harvest. 
  • When you reach a point in the lifecycle flow at which the result of annotations and harvesting are used, such as BOM and deployment plan generation, you can manually complete the BOM via the Project Lifecycle Workbench UI or manually write your own ANT script to generate a deployment plan.
 
AIA Annotation Introduction:
AIA annotates SOA components (adapter services, requester services, provider services) in the composite.xml 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 run time.
Those information will be harvested and generated at BOM.xml (Bill Of Materials)
When you utilize Service constructor to create ABCS, you will get AIA annotation for predefined web services (like AIAAsyncErrorHandlingBPELProcess), but during your development stage, 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.

Embed annotations in the <svcdoc:AIA> element and place the <svcdoc:AIA> element itself inside the xml comments tags <!-- and -- >.  <svcdoc:TransportDetails> is ONLY used for Adapter service / reference at SOA composite.

<!--<svcdoc:AIA>
..................
</svcdoc:AIA>-->



1.      Annotate Service, Reference and Adapter:

1.1  Annotate Composite - <svcdoc:ServiceSolutionComponentAssociation>:
<svcdoc:ServiceSolutionComponentAssociation> is generated by service constructor and describes the globally unique identifier (GUID) used for artifacts generation and should be placed under the root element <composite>.

 <!--<svcdoc:AIA>
   <svcdoc:ServiceSolutionComponentAssociation>
      <svcdoc:GUID>81e4d7b1-b723-4ec5-a532-c579f79a106b</svcdoc:GUID>
    </svcdoc:ServiceSolutionComponentAssociation>
</svcdoc:AIA>-->

1.2  Annotate Service - <svcdoc:Service>:
It describes the details of the exposed service as denoted by the Service element of the Composite.xml. It contains <svcdoc:InterfaceDetails> and <svcdoc:ImplementationDetails>, plus <svcdoc:TransportDetails> if it is adapter service.

        <!--<svcdoc:AIA>
            <svcdoc:Service>
                  <svcdoc:InterfaceDetails>
                         <svcdoc:ServiceName>UtilitiesBatchPaymentsEBSV1</svcdoc:ServiceName>                        <svcdoc:Namespace>http://xmlns.oracle.com/EnterpriseServices/Core/BusinessUnit/V1</svcdoc:Namespace>                            <svcdoc:ArtifactType>EnterpriseBusinessService</svcdoc:ArtifactType>
                            <svcdoc:ServiceOperation>
                              <svcdoc:Name>CreateInvoices</svcdoc:Name>
                            </svcdoc:ServiceOperation>                     
                      </svcdoc:InterfaceDetails>
                      <svcdoc:ImplementationDetails>
                         <svcdoc:ApplicationName>CCB</svcdoc:ApplicationName>
                         <svcdoc:BaseVersion></svcdoc:BaseVersion>
                         <svcdoc:DevelopedBy>Oracle</svcdoc:DevelopedBy>
                         <svcdoc:OracleCertified>Yes</svcdoc:OracleCertified>
                         <svcdoc:ArtifactType>ProviderABCSImplementation</svcdoc:ArtifactType>
                         <svcdoc:ServiceOperation>
                            <svcdoc:Name>CreateInvoices</svcdoc:Name>
                         </svcdoc:ServiceOperation>
                      </svcdoc:ImplementationDetails>
                   </svcdoc:Service>
        </svcdoc:AIA>-->

1.3  Annotate Reference - <svcdoc:Reference>:
It describes the Reference element. It contains <svcdoc: ArtifactType> and <svcdoc: ServiceOperation>, plus <svcdoc:TransportDetails> if it is adapter service.

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

1.4  Annotate Transport Adapter - <svcdoc:TransportDetails>:
It provides details about a transport adapter in a composite if a non-SOAP transport is used to interface with an application, either using inbound or outbound connectivity.
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.

Here is example of annotating Transport Adapter under reference. Annotating Transport Adapter under service is pretty similar, mainly by replace <svcdoc:Reference> with <svcdoc:Service>

(1)   DBAdapter

        <!--<svcdoc:AIA>
        <svcdoc:Reference>
         <svcdoc:ArtifactType>TransportAdapter</svcdoc:ArtifactType>
         <svcdoc:ServiceOperation>
           <svcdoc:Name>Populate_CI_PAY_TNDR_ST</svcdoc:Name>
         </svcdoc:ServiceOperation>
         <svcdoc:TransportDetails>
          <svcdoc:DBAdapter>
           <svcdoc:ResourceProvider>OracleDB</svcdoc:ResourceProvider>
           <svcdoc:ConnectionFactory>eis/DB/CCBDEV1</svcdoc:ConnectionFactory>
           <svcdoc:ApplicationName>OUCCB</svcdoc:ApplicationName>
           <svcdoc:XAEnabled>True</svcdoc:XAEnabled>
           <svcdoc:ResourceTargetIdentifier>CCBDEV</svcdoc:ResourceTargetIdentifier>
           <svcdoc:ResourceName>CI_PAY_TNDR_ST</svcdoc:ResourceName>
          </svcdoc:DBAdapter>
         </svcdoc:TransportDetails>
        </svcdoc:Reference>
        </svcdoc:AIA>--> 

(2)   JMSAdapter 

<!--<svcdoc:AIA>
        <svcdoc:Reference>
        <svcdoc:ArtifactType>TransportAdapter</svcdoc:ArtifactType>
        <svcdoc:ServiceOperation>
            <svcdoc:Name>Produce_Message</svcdoc:Name>
        </svcdoc:ServiceOperation>
        <svcdoc:TransportDetails>
            <svcdoc:JMSAdapter>
                <svcdoc:ResourceProvider>WLSJMS</svcdoc:ResourceProvider>
                <svcdoc:ConnectionFactory>eis/wlsjms/AIACommonCF</svcdoc:ConnectionFactory>
                <svcdoc:XAEnabled>false</svcdoc:XAEnabled>
                        <svcdoc:ResourceType>Topic</svcdoc:ResourceType>
                <svcdoc:ResourceName>AIA_SiebelCustomerJMSQueue</svcdoc:ResourceName>
            </svcdoc:JMSAdapter>
        </svcdoc:TransportDetails>
        </svcdoc:Reference>
</svcdoc:AIA>-->

(3)   FileAdapter 

<!--<svcdoc:AIA>
        <svcdoc:Reference>
        <svcdoc:ArtifactType>TransportAdapter</svcdoc:ArtifactType>
        <svcdoc:ServiceOperation>
            <svcdoc:Name>Write</svcdoc:Name>
        </svcdoc:ServiceOperation>
        <svcdoc:TransportDetails>
            <svcdoc:OtherResourceAdapter>
                <svcdoc:ResourceProvider>FILE</svcdoc:ResourceProvider>
                <svcdoc:ConnectionFactory>eis/HAFileAdapter</svcdoc:ConnectionFactory>
                <svcdoc:XAEnabled>false</svcdoc:XAEnabled>
            </svcdoc:OtherResourceAdapter>
        </svcdoc:TransportDetails>
        </svcdoc:Reference>
</svcdoc:AIA>-->

2.      Annotate Requester ABCS, Provider ABCS and EBF:

2.1  Annotate Reference Element at Requester ABCS
It has following characteristics:
a)      <svcdoc:ArtifactType> = EnterpriseBusinessService (EBS) or UtilityService (AIAAsyncErrorHandlingBPELProcess)

b)      ServiceOperation/Name is same as the value defined for the operation in the WSDL of the ABCS

<!--<svcdoc:AIA>
  <svcdoc:Reference>
<svcdoc:ArtifactType>EnterpriseBusinessService</svcdoc:ArtifactType>
 <svcdoc:ServiceOperation>
     <svcdoc:Name>BatchPayments</svcdoc:Name>
  </svcdoc:ServiceOperation>
</svcdoc:Reference>
           </svcdoc:AIA>-->

2.2  Annotate Service Element at Requester ABCS
It has following characteristics:
a)      Contain <svcdoc:ImplementationDetails>

b)      <svcdoc:ArtifactType> = RequesterABCSImplementation.

c)      ServiceOperation/Name is same as the value defined for the operation in the WSDL of the ABCS.

<! - - <svcdoc:AIA>
 <svcdoc:Service>
   <svcdoc:ImplementationDetails>
      <svcdoc:ApplicationName>StdVendors</svcdoc:ApplicationName>
         <svcdoc:BaseVersion>1</svcdoc:BaseVersion>
         <svcdoc:DevelopedBy>Oracle</svcdoc:DevelopedBy>
         <svcdoc:OracleCertified>Yes</svcdoc:OracleCertified>                            <svcdoc:ArtifactType>RequesterABCSImplementation</svcdoc:ArtifactType>  
         <svcdoc:ServiceOperation>
          <svcdoc:Name>BatchPayments</svcdoc:Name>
         </svcdoc:ServiceOperation>
    </svcdoc:ImplementationDetails>
  </svcdoc:Service>
</svcdoc:AIA> - - >

2.3  Annotate Reference Element at Provider ABCS
It has the following characteristics:
a)      <svcdoc:ArtifactType> = UtilityService (AIAAsyncErrorHandlingBPELProcess) or others

b)      ServiceOperation/Name is same as the value defined for the operation in the WSDL of the ABCS


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

2.4  Annotate Service Element at Provider ABCS
It has the following characteristics:
a)      Contain both <svcdoc:InterfaceDetails> and <svcdoc:ImplementationDetails>

b)      InterfaceDetails/ArtifactType = EnterpriseBusinessService.

c)      ImplementationDetails/ArtifactType = ProviderABCSImplementation

d)     ServiceOperation/Name is same as the value defined for the operation in the WSDL of the ABCS.

<!--<svcdoc:AIA>
    <svcdoc:Service>
      <svcdoc:InterfaceDetails>
          <svcdoc:ServiceName>UtilitiesBatchPaymentsEBSV1</svcdoc:ServiceName>                    <svcdoc:Namespace>http://xmlns.oracle.com/EnterpriseServices/Core/BusinessUnit/V1</svcdoc:Namespace>                                         <svcdoc:ArtifactType>EnterpriseBusinessService</svcdoc:ArtifactType>
         <svcdoc:ServiceOperation>
                              <svcdoc:Name>CreateBatchPayments</svcdoc:Name>
                            </svcdoc:ServiceOperation>                     
           </svcdoc:InterfaceDetails>
          <svcdoc:ImplementationDetails>
              <svcdoc:ApplicationName>CCB</svcdoc:ApplicationName>
               <svcdoc:BaseVersion></svcdoc:BaseVersion>
              <svcdoc:DevelopedBy>Oracle</svcdoc:DevelopedBy>
              <svcdoc:OracleCertified>Yes</svcdoc:OracleCertified>
             <svcdoc:ArtifactType>ProviderABCSImplementation</svcdoc:ArtifactType>
             <svcdoc:ServiceOperation>
              <svcdoc:Name>CreateBatchPayments</svcdoc:Name>
              </svcdoc:ServiceOperation>
            </svcdoc:ImplementationDetails>
          </svcdoc:Service>
        </svcdoc:AIA>-->

2.5  Annotate Reference Element at EBF
It has the following characteristics:
a)      <svcdoc:ArtifactType> = EnterpriseBusinessService.

b)      ImplementationDetails/ArtifactType = EnterpriseBusinessFlow

c)      ServiceOperation/Name is same as the value defined for the operation in the WSDL of the ABCS.

<!--<svcdoc:AIA>
<svcdoc:Reference>
<svcdoc:ArtifactType>EnterpriseBusinessService</svcdoc:ArtifactType>
<svcdoc:ServiceOperation>
   <svcdoc:Name>GetCreditScoreCustomerPartyList</svcdoc:Name>
</svcdoc:ServiceOperation>
</svcdoc:Reference>
</svcdoc:AIA>-->

2.6  Annotate Service Element at EBF
It has the following characteristics:
a)         Contain both <svcdoc:InterfaceDetails> and <svcdoc:ImplementationDetails>

b)         InterfaceDetails/ArtifactType = EnterpriseBusinessService.

c)         ImplementationDetails/ArtifactType = EnterpriseBusinessFlow

d)        ServiceOperation/Name is same as the value defined for the operation in the WSDL of the ABCS.

<!--<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>-->

########

0 comments: