Showing posts with label AIA. Show all posts
Showing posts with label AIA. Show all posts

Saturday, June 23, 2012

Weblogic 10.3.5: Enable Debugging Using the WebLogic Scripting Tool WLST Scripts and WLST from Java

Weblogic 10.3.5: Enable Debugging Using the WebLogic Scripting Tool  WLST Scripts and WLST from Java
WebLogic Scripting Tool (WLST) can be used to set the debugging values. For example, the following command runs a program for setting debugging values called debug.py:
java weblogic.WLST debug.py
The main scope, weblogic, does not appear in the graphic; jms is a sub-scope within weblogic. Note that the fully-qualified DebugScope for DebugJMSBackEnd is weblogic.jms.backend.
The debug.py program contains the following code:
user='user1'
password='password'
url='t3://localhost:7001'
connect(user, password, url)
edit()
cd('Servers/myserver/ServerDebug/myserver')
startEdit()
set('DebugJMSBackEnd','true')
save()
activate()
Note that you can also use WLST from Java. The following example shows a Java file used to set debugging values:
import weblogic.management.scripting.utils.WLSTInterpreter;
import java.io.*;
import weblogic.jndi.Environment;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;

public class test {
  public static void main(String args[]) {
 try {
  WLSTInterpreter interpreter = null;
  String user="user1";
  String pass="pw12ab";
  String url ="t3://localhost:7001";
  Environment env = new Environment();
  env.setProviderUrl(url);
  env.setSecurityPrincipal(user);
  env.setSecurityCredentials(pass);
  Context ctx = env.getInitialContext();

  interpreter = new WLSTInterpreter();
  interpreter.exec
   ("connect('"+user+"','"+pass+"','"+url+"')");
  interpreter.exec("edit()");
  interpreter.exec("startEdit()");
  interpreter.exec
   ("cd('Servers/myserver/ServerDebug/myserver')");
  interpreter.exec("set('DebugJMSBackEnd','true')"); 
  interpreter.exec("save()");
  interpreter.exec("activate()");

 } catch (Exception e) {
 System.out.println("Exception "+e);
 }
 }
}
Using the WLST is a dynamic method and can be used to enable debugging while the server is running.

########

AIA 11.1.1.6 Develop and Implement a Simple Inbound B2B Flow

The following figure shows the high-level steps involved in developing a simple inbound business-to-business (B2B) flow from an application to trading partners using Oracle Application Integration Architecture (AIA).





Step 1: Identifying the B2B Document and Analyzing Requirements



  1. The source and targets in the mapping are reversed. The B2B document received from trading partners is the source of the mapping. The AIA Enterprise Business Message (EBM) is the target of the mapping.
  2. At the end of this step:
    1. The B2B document is defined in Oracle B2B.
    2. The XML schema of the B2B document is uploaded in the AIA Metadata Repository.
    3. The Enterprise Business Object (EBO) and the EBM to be used in the integration are identified. 
    4. Functional mapping between the B2B document and the AIA EBM is complete.
Step 2: Adding Inbound Routing Rules to an AIA B2B Interface
  1. In inbound B2B document flows, the AIAB2BInterface service listens for new B2B documents received by Oracle B2B and routes them to the requester B2B services.
Step 3: Developing a New Requester B2B Connector Service
The key function provided by a requester B2BCS is to enable inbound B2B document
integration by performing the following tasks:
■ Receive B2B documents sent by trading partners from Oracle B2B.
■ Transform B2B documents into AIA EBMs.
■ Use EBMs as request payloads to invoke AIA Enterprise Business Services (EBSs).
Step 4: Developing or Extending an Existing Enterprise Business Service
  1. The next step,   is to develop a new EBS or use an existing EBS that is invoked by the requester B2BCS.
Step 5: Developing or Extending an Existing Provider ABCS
  1. The next step,   is to develop a new or extend an existing provider ABCS. The provider ABCS processes the AIA EBM by invoking application APIs or web-services.
Step 6: Configuring Oracle B2B and Defining Trading Partner Agreements
  1. The next step, as shown in Figure 18–21, is to create trading partner agreements in Oracle B2B.
Step 7: Deploying and Configuring AIA Services
  1. The next step, is to deploy the AIA services. You can deploy the services to a target Oracle SOA server using Oracle JDeveloper.
Step 8: Testing and Verifying
  1. The next step, is to test and verify. Before you go live with your B2B integration flows with your trading partners, we recommend that you complete a sequence of tests for your newly developed or deployed AIA services, which make up the B2B integration flow.
Step 9: Going Live and Monitoring

########

Oracle Fusion Middleware Security for Web Services 11g Release 1 (11.1.1.6) Policy Sets using WLST

Policy sets provide a means to attach policies globally to a range of endpoints of the same type. 



  • In addition to attaching policies directly to endpoints, you can create policy sets that allow you to attach policies globally to a range of endpoints of the same type, regardless of the deployment state. You can create and manage policy sets using both Fusion Middleware Control and the WebLogic Scripting Tool, WLST. 
  • Attaching policies globally using policy sets allows an administrator to ensure that all subjects are secured in situations where the developer, assembler, or deployer did not explicitly specify the policies to be attached.
  • Policies attached globally using policy sets also provide the following:
    • Override the policies
    • Specify run time constraint
  • Policy subjects to which policy sets can be attached include SOA components, SOA service endpoints, SOA references, Web services endpoints, Web service clients, Web service connections, and asynchronous callback clients. Policy sets can be attached at the following scopes:
    • Domain — all policy subjects of the specified type in a domain
    • Server instance—all policy subjects of the specified type in a server instance
    • Application or Partition—all policy subjects of the specified type in an application or SOA partition
    • Application module or SOA composite—all policy subjects of the specified type in an application module or SOA composite
    • Service or reference—all policy subjects of the specified type in a SOA service or reference
    • Port or component—all policy subjects of the specified type in a port or SOA component

CREATING A POLICY SET USINg  WLST

CreatePolicySet.py
import os
propInputStream = FileInputStream("PolicySets.properties")
configProps = Properties()
configProps.load(propInputStream)
connect(configProps.get("userName"),configProps.get("passWord"),'t3://'+configProps.get("wlsHost")+':'+configProps.get("adminServerListenPort"))
splits=String(configProps.get("policysets_to_be_created")).split(",")
for dsIndex in splits:
    beginRepositorySession()
    #Variable Definitions
    policySetName=configProps.get("policySetName_"+ str(dsIndex))
    policySetType=configProps.get("policySetType_"+ str(dsIndex))
    policySetAttachTo=configProps.get("policySetAttachTo_"+ str(dsIndex))
    policySetDescription=configProps.get("policySetDescription_"+ str(dsIndex))
    policySetEnabled=configProps.get("policySetEnabled_"+ str(dsIndex))
    policySetUrl=configProps.get("policySetUrl_"+ str(dsIndex))
    print "Creating Policy Sets for System Resource Name:"+policySetName + ", Policy Set Type:" + policySetType +" Attached To: "+ policySetAttachTo + " , Description:" + policySetDescription + ", Enabled true or false: "+ policySetEnabled 
    createPolicySet(policySetName,policySetType,policySetAttachTo,description=policySetDescription,enable=policySetEnabled)
    print "Attaching Policy Sets"
    attachPolicySetPolicy(policySetUrl)
    print "Commiting Session"
    commitRepositorySession() 
PolicySets.properties
userName=username
passWord=password
wlsHost=localhost
domainDir=domainDir
adminServerListenPort=7001
#Total Number of Data Sources 
policysets_to_be_created=1
#Properties for the first PolicySets
policySetName_1=TestWSClientPolicySet
policySetType_1=sca-reference
policySetAttachTo_1=Domain("domain") and Server("server1") and Composite("*CBP*")
policySetDescription_1=Global policy attachments for SOA Reference resources.
policySetEnabled_1=true
policySetUrl_1=oracle/wss10_saml_token_client_policy_OPT_ON

########

Oracle Fusion Middleware Security for Web Services 11g Release 1 (11.1.1.6) Policy Sets

Policy sets provide a means to attach policies globally to a range of endpoints of the same type. 




  • In addition to attaching policies directly to endpoints, you can create policy sets that allow you to attach policies globally to a range of endpoints of the same type, regardless of the deployment state. You can create and manage policy sets using both Fusion Middleware Control and the WebLogic Scripting Tool, WLST. 
  • Attaching policies globally using policy sets allows an administrator to ensure that all subjects are secured in situations where the developer, assembler, or deployer did not explicitly specify the policies to be attached.
  • Policies attached globally using policy sets also provide the following:
    • Override the policies
    • Specify run time constraint
  • Policy subjects to which policy sets can be attached include SOA components, SOA service endpoints, SOA references, Web services endpoints, Web service clients, Web service connections, and asynchronous callback clients. Policy sets can be attached at the following scopes:
    • Domain — all policy subjects of the specified type in a domain
    • Server instance—all policy subjects of the specified type in a server instance
    • Application or Partition—all policy subjects of the specified type in an application or SOA partition
    • Application module or SOA composite—all policy subjects of the specified type in an application module or SOA composite
    • Service or reference—all policy subjects of the specified type in a SOA service or reference
    • Port or component—all policy subjects of the specified type in a port or SOA component

Creating a Policy Set

  • Navigate to the Policy Set Summary page.


  • From the Policy Set Summary page, click Create.
  • In the Enter General Information page, as shown in enter a name for the policy set.
  • Select the Enabled check box if you want to enable the policy set.
  • In the Type of Resources field, select the type of policy subject to which you want to attach policies. On the next page you define the scope of resources to which you want the policy set to apply. The type of policy subjects that you can select are as follows:
    • SOA Component
    • SOA Service
    • SOA Reference
    • Web Service Connection
    • Web Service Endpoint
    • Web Service Client
    • Asynchronous Callback Client
    • Press Next on the Top Right
  • Attach the policies and selecting the policy and pressing the Attach button; press Next

########

AIA 11g PIPS Deployment using AIA Installer Driver: Harvesting AIA composites Part 2: Harvesting Design-Time Composites into Project Lifecycle Workspace and 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.
  • When you choose to harvest into Oracle Enterprise Repository, annotations on Application Business Connector Service (ABCS) WSDL files, Enterprise Business Service (EBS) WSDL files, Enterprise Business Object (EBO) XSD files, and Enterprise Business Message (EBM) XSD files are published to Oracle Enterprise Repository. Harvesting to Oracle Enterprise Repository is optional.

Setting Up for Design-Time Harvesting Using a Non-AIA-Foundation Pack Environment

1.) Download AIAHarvester.zip. The AIAHarvester.zip can be found in $AIA_HOME/Infrastructure/LifeCycle directory. AIAHarvester.zip contains all components necessary to perform a harvest against Project Lifecycle Workbench and Oracle Enterprise Repository. AIAHarvester.zip contains all components necessary to perform a harvest against Project Lifecycle Workbench and Oracle Enterprise Repository.
2.) Unzip AIAHarvester.zip in any location. You must maintain the unzipped structure.

3.) Update the values shown in bold in the ./AIAInstallProperties.xml file.Foundation Pack uses Java Database Connectivity (JDBC) to determine the Project Lifecycle Workbench database. Ensure that the <jdbc-url>jdbc:oracle:thin:@localhost:1521:XE</jdbc-url> value points to the Project Lifecycle Workbench database where you want AIAHarvester results to be stored.

Example 3-1 AIAInstallProperties.xml File Adjustments
<?xml version = '1.0' encoding = 'UTF-8'?>
<properties>
    <aiainstance>
        <aiaHome>AIA_HOME</aiaHome>
        <name>AIA_INSTANCE_NAME</name>
        <javahome>JAVA_HOME</javahome>
        <remote_install>true</remote_install>
        <domain_root>SERVER_DOMAIN_ROOT</domain_root>
        <mwHome>MW_HOME</mwHome>
        <soaHome>SOA_HOME</soaHome>
        <aiainstalltype>standard</aiainstalltype>
        <isencrypted>true</isencrypted>
    </aiainstance>
    <aialifecycle>
        <jdbc-url>jdbc:oracle:thin:@localhost:1521:XE</jdbc-url>
        <username>weblogic</username>
        <password>[C@8b567c</password>
        <createschema>true</createschema>
        <sysusername>sys</sysusername>
        <syspassword>[C@15b0e2c</syspassword>
        <role>SYSDBA</role>
        <defaulttablespace>SYSTEM</defaulttablespace>
        <temptablespace>TEMP</temptablespace>
        <isRac>false</isRac>
        <racCount>1</racCount>
        <racInstances>rac0</racInstances>
        <rac>
            <serviceName>RAC_DATABASE_SERVICENAME</serviceName>
            <rac0>
                <instanceName>RAC_INSTANCE_NAME</instanceName>
                <host>INSTANCE_HOST</host>
                <port>INSTANCE_PORT</port>
            </rac0>
        </rac>
    </aialifecycle>
...


4.) Encode the password for the Project Lifecycle Workbench database by running AIALifeCycleEncode.sh: ./AIALifeCycleEncode.sh -user <username>

  • When prompted, enter the password. 

5.) Encode the password for the application server by running AIALifeCycleEncode.sh: ./AIALifeCycleEncode.sh -user <username> -type jndi

Replace <username> with the WebLogic username value. When prompted, enter the password.

6.) Generate the HarvesterSettings.xml file. 
(1    Generate your own HarvesterSettings.xml. e.g., HarvesterSettings_ModuleName.xml, which specifies all composites you want to harvest: The template for HarvestingSetting.xml can be found in the directory where the AIAHarvester.zip was uncompressed. This will be in the folder C:\AIAHarvester\Harvester A sample HarvesterSettings.xml is attached below.



<?xml version="1.0" encoding="UTF-8"?>
<tns:harvesterSettings xmlns:tns="http://www.oracle.com/oer/integration/harvester" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.oracle.com/oer/integration/harvester Harvester_Settings.xsd ">
 
  <harvesterDescription>Oracle Enterprise Repository Harvester</harvesterDescription>     
  <registrationStatus>Registered</registrationStatus>
  
  <!--Query: the files to harvest-->
  <query>
    <fileQuery>      <files>C:\SourceCode\ModuleName\ProjectName\composite.xml</files>
      <fileType>.xml</fileType>
    </fileQuery>
  </query>
  <introspection>
    <reader>com.oracle.oer.sync.plugin.reader.file.FileReader</reader>
    <writer>com.oracle.oer.sync.plugin.writer.oer.OERWriter</writer>
  </introspection>
</tns:harvesterSettings>
A
7.)
(HHarvest Design-Time Composites into Project Lifecycle Workbench only Using HarvesterSettings.xml

AIAHarvest -partial true -mode AIA -settings ./Harvester/HarvesterSettings_moduleName.xml

########

AIA 11g PIPS Deployment using AIA Installer Driver: Part 4: Generate Deployment Plan & Deploy Artifacts

Prior to deployment of artifacts, it is important to follow the steps mentioned in the AIA 11g PIPS deployment using AIA Installer Driver Part 1 through Part 3. The steps are

 AIA Deployment Plan Generator utility helps generate Deployment Plans for SOA artifacts based on project's BOM.xml exported from AIA Project Lifecycle Workbench. Then utilize Deployment Plans file to deploy AIA artifacts to SOA server.

Here are main steps for generating deployment plan:


(1)   Create a new PIP project directory under $AIA_HOME/pips, whose name <projectCode> comes from the project code you entered in AIA Project Lifecycle Workbench

(2) Under $AIA_HOME/pips/<projectCode>, create 3 subdirectories:
BOM - hold BOM.xml
DatabaseObjects - hold systemRegistration.xml
DeploymentPlans
BOM.xml sample:
                             <?xml version = '1.0' encoding = 'UTF-8'?>
                                      <svcdoc:BOM ….>
                                       <svcdoc:composite revision="1.0" name="CreateRetailPaymentsCCBProvABCSImpl">

           

systemRegistration.xml sample:
                     <AIASystemRegistration>
                               <create>
                                       MERGE INTO AIA_SYSTEMS sysreg
                                       USING dual
                                       on (dual.dummy is not null and sysreg.SYSTEM_CODE='RETAIL_PMT_01' )
                                       WHEN NOT MATCHED THEN INSERT
                              (SYSTEM_ID,SYSTEM_INTERNAL_ID,SYSTEM_CODE,SYSTEM_DESC,SYSTEM_IP_ADDR,SYSTEM_URL,SYSTEM_TYPE,APPLICATION_TYPE,APPLICATION_VERSION,CONTACT_NAME,CONTACT_PHONE,CONTACT_EMAIL) VALUES (AIA_SYSTEMS_S.nextval,'RETAIL_PMT_01','RETAIL_PMT_01','MIND:RetailPayments','13.1','host','RetailPayments','RPMT','1.0', 'RetailPayments contact','1234567891','contact@mindtelligent.com')
/
                               </create>
                               <delete>
                                </delete>
</AIASystemRegistration>


(3)   Copy ABCS projects specified at BOM.xml into $AIA_HOME/services

(4)   Copy EBS projects to $AIA_HOME/pips/<projectCode>.

Basically, Oracle AIA requires:
EBS composites should be under $AIA_HOME/pips/<projectCode>
ABCS and AdapterServices should be under $AIA_HOME/services
Where, <projectCode> is the project code you entered in AIA Project Lifecycle Workbench

(5)   Run:
source ${AIA_HOME}/aia_instances/AIA_DEV/bin/aiaenv.sh

(6)   Run the following command for executing the Deployment Plan Generator.
Input: BOM.xml
Output: <PIP_Name>DP.xml
The following files are used in the deployment plan generation and deployment of AIA artifacts:
<PIP_Name>DP.xml:  This deployment plan file orchestrates the deployment of natively supported services and the configuration required for those services. Oracle AIA delivered PIPs usually have their deployment plans under AIA_HOME/PIPS/<pip name>/DeploymentPlans.


ant -f <AIA_HOME>\Infrastructure\Install\AID\AIAInstallDriver.xml 
-DPropertiesFile=<AIA_HOME>\aia_instances\<AIA_Instance_
name>\config\AIAInstallProperties.xml  -DDeploymentPlan=<AIA_HOME>\pips\<PIP_
name>\DeploymentPlans\<PIP_name>DP.xml  -DSupplementaryDeploymentPlan =<AIA_
HOME>\pips\<PIP_name>\DeploymentPlans\<PIP_name>SupplementaryDP.xml 
-DCustomDeploymentPlan=<AIA_HOME>\pips\<PIP_name>\DeploymentPlans\<PIP_
name>CustomDP.xml> -DDeploymentPolicyFile=<AIA_HOME>\pips\<PIP_
name>\DeploymentPlans\<PIP_name>ConditionalPolicy.xml
 
For Undeploying the artifacts, use the following ANT task
ant -f <AIA_HOME>\Infrastructure\Install\AID\AIAInstallDriver.xml 
-DPropertiesFile=<AIA_HOME>\aia_instances\<AIA_Instance_
name>\config\AIAInstallProperties.xml Uninstall -DDeploymentPlan=<AIA_
HOME>\pips\<PIP_name>\DeploymentPlans\<PIP_name>UndeployDP.xml 

########

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

########