Skip Headers
Oracle® Fusion Middleware Migration Guide for Oracle Application Integration Architecture
11g Release 1 (11.1.1.4.0)
E17361-02
  Go To Table Of Contents
Contents
Go To Index
Index

Previous
Previous
 
Next
Next
 

7 Migrating Services

This chapter discusses the steps needed to migrate the services built leveraging Oracle 10g SOA and AIA technologies.

This chapter includes the following sections:

7.1 Overview of AIA Service Migration Using the AIA Migration Utility

Migration of AIA Foundation Pack 2.4 and 2.5 service artifacts to AIA Foundation Pack 11g Release 1 artifacts facilitates the easy adoption of the component-based architecture of Oracle Fusion Middleware 11g Release 1 for AIA solution implementation.

Figure 7-1 depicts the migration process.

Figure 7-1 AIA 2.4 and 2.5 to AIA Foundation Pack 11g Release 1 Technical Upgrade Path

This image is described in surrounding text

Table 7-1 provides a list of AIA 2.4 and 2.5 artifacts and their equivalent AIA Foundation Pack 11g Release 1 artifacts.

Table 7-1 AIA 2.4 and 2.5 Artifacts and Their Equivalent AIA Foundation Pack 11g Release 1 Artifacts

AIA 2.4 and 2.5 Artifacts Technology Implementation Used in FMW 10g Technology Implementation Used in FMW 11g AIA Foundation Pack 11g Release 1 Artifact

Sub-BPEL Services for an ABCS

BPEL

BPEL

Service Component in an ABCS Composite

Adapter Services

ESB/BPEL

Mediator/BPEL

Adapter Service Composite

Enterprise Business Flow (EBF)

BPEL

BPEL

EBF Composite

Requester Application Business Connector Service (ABCS)

BPEL

BPEL

Requester ABCS BPEL Composite

Enterprise Business Service (EBS)

Enterprise Service Bus (ESB)

Mediator

EBS Mediator Composite

Provider ABCS

BPEL

BPEL

Provider ABCS BPEL Composite


7.2 How to Migrate Adapter Services

To migrate adapter services:

  1. Complete the pre-migration tasks.

    • Change the references in the adapter WSDL, if there are any changes to the JNDI references. Change the value of the jca:address location attribute value in the service section.

      For example: jca:address location="eis/DB/AIASamplesDB

    • Post migration if you want to view the adapter using 11g JDeveloper, create the respective UI Connection with the value present in the adapter WSDL service section.

      For example: UIConnectionName="AIASamplesDB"

      Ensure that the service builds in 10g.

  2. Run the AIA Migration Tool.

    In the AIAMigrationUtility.Properties file, provide the value for the process.type attribute.

    For example: process.type= DBAdapter

    For more information, see Chapter 17, "Using the AIA Migration Utility."

  3. Complete the post-migration tasks.

    1. Annotate the Adapter Service composite.

      For more information about annotation composites for harvesting, see "Annotating Composites" in Oracle Fusion Middleware Developer's Guide for Oracle Application Integration Architecture Foundation Pack.

    2. Configure adf-config.xml to access MDS store.

      For more information, see Section 18.1, "Accessing MDS from the AIA Service Artifact."

For information, see Chapter 12, "Making Migrated Services Deployable."

7.3 How to Migrate Provider ABCSs

To migrate Provider ABCS:

  1. Complete the pre-migration tasks.

    1. Verify the service builds in 10g.

    2. Ensure that all WSDLs are reachable on the 11g server or from the file system. If the application service WSDLs are not up and running, you should copy them to the Provider ABCS folder and change the reference accordingly in bpel.xml as shown in Example 7-1.

      Example 7-1 Application Service WSDL Reference in bpel.xml

      <partnerLinkBinding name="SamplesCreateCustomerPartyPortalProvider">
         <property name="wsdlLocation">SamplesCreateCustomerPartyPortalProvider
          .wsdl</property> (this wsdl is a local reference)
      </partnerLinkBinding>
      
    3. Comment out the wsdlRuntimeLocation in the bpel.xml as shown in Example 7-2.

      Example 7-2 wsdlRuntimeLocation in bpel.xml

      <partnerLinkBinding>
      -----
         <!--<property name="wsdlRuntimeLocation">http://ap6060fems.us.oracle.com:
          7817/esb/wsil/AIASamples/CustomerPartyEBS?wsdl</property> -->
      </partnerLinkBinding>
      
  2. Run the AIA Migration Tool.

    For more information, see Chapter 17, "Using the AIA Migration Utility."

    In the AIAMigrationUtility.Properties file, provide the value for the process.type attribute.

    For example: process.type= Provider

  3. Complete the post-migration tasks.

    1. Create XSD and XSL folders in the project folder if there are any XSD, XSL files. Then move XSD and XSL files to their respective folders in the project.

      After moving the XSDs and XSLs to their respective folders, change the references in BPEL, WSDL, and XSL files.

    2. Configure the abstract WSDLs.

      For more information, see Section 18.2, "Moving Abstract Service WSDLs into MDS."

    3. Configure fault policies.

      For more information, see Section 10.1, "How to Migrate Fault Policies."

    4. Specify the transaction-related properties.

      For more information, see "Enabling Transactions" in Oracle Fusion Middleware Developer's Guide for Oracle Application Integration Architecture Foundation Pack.

    5. Complete the annotations in Composite.xml. This can be performed after unit testing, but must be completed prior to publishing.

      For more information about annotation composites for harvesting, see "Annotating Composites" in Oracle Fusion Middleware Developer's Guide for Oracle Application Integration Architecture Foundation Pack.

    6. Change any remaining 10g artifact (WSDL files) locations (Host/Port) to 11g artifact locations.

    7. The function ora:getUserProperty was deprecated in 10.1.3.4 and the replacement is ids:getUserProperty. In 10.1.3.4 JDeveloper, ora:getUserProperty is under "Deprecated Identity Service Functions". So in 11g, you need to use ids:getUserProperty.

    8. Configure adf-config.xml to access the MDS store.

      For more information, see Section 18.1, "Accessing MDS from the AIA Service Artifact."

For information, see Chapter 12, "Making Migrated Services Deployable."

7.4 How to Migrate EBSs

To migrate EBSs:

  1. Complete the pre-migration tasks.

    1. Ensure that all WSDLs are reachable on 11g or from the file system.

    2. Browse through all .esbsvc files and remove the service and system group information from the qname attribute of the Service and operationInfo tags. For example:

      Before change:

      <service name="CustomerPartyEBS" guid="88D6459098C711DCBFE483EAC4E8A30F
      " qname="AIASamples.CustomerPartyEBS" status="ENABLED" 
      serviceType="RoutingService" typeDescription="Routing Service" 
      isWSDLEditable="false" soapEndpointStatus="ENABLED">
      

      After change:

      <service name="CustomerPartyEBS" guid="88D6459098C711DCBFE483EAC4E8A30F
      " qname="CustomerPartyEBS" status="ENABLED" serviceType="RoutingService" 
      typeDescription="Routing Service" isWSDLEditable="false" 
      soapEndpointStatus="ENABLED">
      
    3. Change the service references in .esbsvc files (wsdlURL).

      If the WSDLs are not reachable then copy the reference WSDLs to the local folder and change the value of the wsdlURL attribute in the .esbsvc file.

      The http reference of the service must be changed to the local folder reference. For example:

      Before change:

      <wsdlURL>http://ap6014rems.us.oracle.com:7839/AIAComponents/
      EnterpriseBusinessServiceLibrary/Core/EBO/CustomerParty/V2/
      CustomerPartyEBS.wsdl</wsdlURL>
      

      The assumption is this reference WSDL is not accessible on the web service, hence the user needs to copy the WSDLs to local folder and change the references.

      After change:

      <wsdlURL>CustomerPartyEBS.wsdl</wsdlURL>
      
  2. Run the AIA Migration Utility.


    Note:

    In the AIAMigrationUtility.Properties file provide the value for the process.type attribute.

    For example: process.type= EBS

    For more information, see Section 17.1, "Overview of the AIA Migration Utility."

  3. Complete post-migration tasks.

    1. If filter expressions have DVM and cross-reference calls, those filter expressions must be manually migrated. For example:

      Example 7-3 provides an example of a filter expression before migration:

      Example 7-3 Filter Expression Before Migration

      <filterExpression>{count(/customerpartyebo:QueryCustomerPartyListEBM/corecom:E 
      BMHeader/corecom:MessageProcessingInstruction/corecom:EnvironmentCode[text() 
      = 'CAVS']) = 0  and 
      xref:lookupXRef('CUSTOMERPARTY_ACCOUNTID','COMMON',/customerpartyebo:QueryCust 
      omerPartyListEBM/customerpartyebo:DataArea[1]/customerpartyebo:Query/corecom:Q 
      ueryCriteria/corecom:QueryExpression/corecom:ValueExpression[corecom:ElementPa 
      th = 
      'AccountIdentification/BusinessComponentID']/corecom:Value,'SEBL_01',false()) 
      != ''};{ namespace 
      @ corecom=http://xmlns.oracle.com/EnterpriseObjects/Core/Common/V2 namespace 
      @ customerpartyebo=http://xmlns.oracle.com/EnterpriseObjects/Core/EBO/
      CustomerParty/V2 namespace 
      @ xref=http://www.oracle.com/XSL/Transform/java/oracle.tip.xref.xpath.
      XRefXPathFunctions }</filterExpression>
      

      Example 7-4 provides an example of a filter express after migration:

      Example 7-4 Filter Expression After Migration

      count($in.CreateCustomerPartyListEBM/customerpartyebo:QueryCustomerPartyListEB
      M/corecom:EBMHeader/corecom:MessageProcessingInstruction/corecom:EnvironmentCo 
      de[text() = 'CAVS']) = 0 and 
      xref:lookupXRef('oramds:/apps/XrefDvmFiles10g/CUSTOMERPARTY_ACCOUNTID.xref','C 
      OMMON',$in.CreateCustomerPartyListEBM/customerpartyebo:QueryCustomerPartyListE 
      BM/customerpartyebo:DataArea[1]/customerpartyebo:Query/corecom:QueryCriteria/c 
      orecom:QueryExpression/corecom:ValueExpression[corecom:ElementPath = 
      'AccountIdentification/BusinessComponentID']/corecom:Value,'SEBL_01',false()) 
      != ''
      
    2. Configure the concrete URLs in the composite.xml binding.ws section:

      <binding.ws port="NAMESPACE OF THE REFERENCE SERVICE#wsdl.endpoint
      (Servicename Of The Reference Service/Port Name Of The Reference Service)
      " location="ENDPOINT LOCATION OF THE REFERENCE SERVICE"/>
      

      Example 7-5 shows concrete URL populated in the composite.xml binding.ws section.

      Example 7-5 Concrete URL in the composite.xml binding.ws Section

      <reference ui:wsdlLocation="CustomerPartyEBSRef1.wsdl" 
      name="SamplesCustomerPartyEBS">
      ..
      <binding.ws port="http://xmlns.oracle.com/EnterpriseServices/Core/CustomerParty/
      V2#wsdl.endpoint(SamplesCustomerPartyEBS_ep/CustomerPartyEBS_pt)" 
      location="http://sdc60024sems.us.oracle.com:8097/soa-infra/services/default/
      SamplesCustomerPartyEBS/SamplesCustomerPartyEBS_ep?WSDL"/>
      </reference>
      
    3. Configure adf-config.xml to access the MDS store.

      For more information, see Section 18.1, "Accessing MDS from the AIA Service Artifact."

    4. Add an explicit assign statement to the routing rule when the part names for the source service and target service from the mediator are different.

      Example 7-6 and Example 7-7 illustrate a case in which source service part names are different. In this case, an explicit transformation or assign must be added in the routing rule.

      Example 7-6 Part Name for the Source Service

      <message name="CreateCustomerPartyListReqMsg">
         <documentation>
            <svcdoc:Message>
               <svcdoc:Description>This message is used as the request payload 
                to the CreateCustomerPartyList operation</svcdoc:Description>
            </svcdoc:Message>
         </documentation>
         <part name="CreateCustomerPartyListEBM" element="customerpartyebo:
          CreateCustomerPartyListEBM"/>
      </message>
      

      Example 7-7 Part Name for the Target Service

      <message name="CreateCustomerPartyListReqMsg">
         <documentation>
            <svcdoc:Message>
               <svcdoc:Description>This message is used for sending payload to Create
                Customer operation</svcdoc:Description>
            </svcdoc:Message>
         </documentation>
         <part name="CreateCustomerPartyList" element="aiasamples:
          CreateCustomerPartyListEBM"/>
       </message>
      
    5. The CAVS programming model will work as-is for migrated requester and provider ABCSs. However, you should perform the following changes:

      Point the CAVS endpoint in the composite.xml and component type files to the abstract WSDL, as shown in Example 7-8 (composite.xml) and Example 7-9 (component type file).

      Example 7-8 Pointing the CAVS Endpoint to the Abstract WSDL in composite.xml

      <referenceui:wsdlLocation="oramds:/apps/AIAMetaData/AIAComponents/Infrastructure
       ServiceLibrary/V1/wsdls/AsyncRequestRecipient.wsdl" name="AsyncRequest
       Recipient">
         <interface.wsdl interface="http://xmlns.oracle.com/apps/aia/cavs/Any#wsdl.
          interface(CAVSAnyPort)"/>
         <binding.ws port="http://xmlns.oracle.com/apps/aia/cavs/Any#wsdl.endpoint
          (CAVSAnyService/CAVSAnyPort)" location="http://sdc60008sems.us.oracle.com:
          8088/AIAValidationSystemServlet/asyncrequestrecipient?wsdl"/>
      </reference>
      

      Example 7-9 Pointing the CAVS Endpoint to the Abstract WSDL in the Component Type File

      <reference ui:wsdlLocation="oramds:/apps/AIAMetaData/AIAComponents/
       InfrastructureServiceLibrary/V1/wsdls/AsyncRequestRecipient.wsdl " name=
       "AsyncRequestRecipient">
         <interface.wsdl interface="http://xmlns.oracle.com/apps/aia/cavs/Any#wsdl.
          interface(CAVSAnyPort)"/>
      </reference>
      
    6. Change filter expressions in the .mplan file, as shown in Example 7-10 and Example 7-11.

      Example 7-10 Changing Filter Expressions in the .mplan File: Filter Expression with Xref Calls Before Migration

      <filterExpression>{count(/customerpartyebo:QueryCustomerPartyListEBM/corecom:E 
      BMHeader/corecom:MessageProcessingInstruction/corecom:EnvironmentCode[text() 
      = 'CAVS']) = 0  and 
      xref:lookupXRef('CUSTOMERPARTY_ACCOUNTID','COMMON',/customerpartyebo:QueryCust 
      omerPartyListEBM/customerpartyebo:DataArea[1]/customerpartyebo:Query/corecom:Q 
      ueryCriteria/corecom:QueryExpression/corecom:ValueExpression[corecom:ElementPa 
      th = 
      'AccountIdentification/BusinessComponentID']/corecom:Value,'SEBL_01',false()) 
      != ''};{ namespace 
      @ corecom=http://xmlns.oracle.com/EnterpriseObjects/Core/Common/V2 namespace 
      @ customerpartyebo=http://xmlns.oracle.com/EnterpriseObjects/Core/EBO/
      CustomerParty/V2 namespace 
      @ xref=http://www.oracle.com/XSL/Transform/java/oracle.tip.xref.xpath.
      XRefXPathFunctions }</filterExpression>
      

      Example 7-11 Changing Filter Expressions in the .mplan File: Filter Expression with xref Calls After Migrating Manually

      count($in.CreateCustomerPartyListEBM/customerpartyebo:QueryCustomerPartyListEB 
      M/corecom:EBMHeader/corecom:MessageProcessingInstruction/corecom:EnvironmentCo 
      de[text() = 'CAVS']) = 0 and 
      xref:lookupXRef('oramds:/apps/XrefDvmFiles10g/CUSTOMERPARTY_ACCOUNTID.xref','C 
      OMMON',$in.CreateCustomerPartyListEBM/customerpartyebo:QueryCustomerPartyListE 
      BM/customerpartyebo:DataArea[1]/customerpartyebo:Query/corecom:QueryCriteria/c 
      orecom:QueryExpression/corecom:ValueExpression[corecom:ElementPath = 
      'AccountIdentification/BusinessComponentID']/corecom:Value,'SEBL_01',false()) 
      != '' 
       
      
    7. If you used XSLT functions to manipulate SOAP headers in Enterprise Service Bus (ESB) 10g, then after you upgrade your application, those header manipulations will be modeled as assignments in Oracle Mediator 11g. For complex header manipulations, you should manually verify the SOAP headers before deploying the upgraded Oracle Mediator 11g projects.

      Most of the standard header properties are upgraded to their equivalent 11g headers.Customized headers are upgraded using a best effort approach, but it is not possible to upgrade all the variations of customized headers.As a result, you must manually upgrade any customized headers the equivalent condition or assign element and equivalent mplan artifacts.

      For more information, see "Getting Started with Oracle Mediator" in the Oracle Fusion Middleware Developer's Guide for Oracle SOA Suite and "Upgrading Filtering or Setting Message Headers in Oracle Enterprise Service Bus" in Oracle Fusion Middleware Upgrade Guide for Oracle SOA Suite, WebCenter, and ADF.

For information, see Chapter 12, "Making Migrated Services Deployable."

7.5 How to Migrate Requester ABCSs

To migrate requester ABCSs:

  1. Complete pre-migration tasks.

    1. Ensure that all WSDLs are reachable on 11g or from the file system.

    2. Verify that the service is compiled and deployed successfully on Oracle Fusion Middleware 10g.

    3. Point references for all invoked services to abstract WSDLs in composite.xml, as shown in Example 7-12.

      Example 7-12 Invoked Service Pointing to abstract WSDL in composite.xml

      <service ui:wsdlLocation="oramds:/apps/AIAMetaData/AIAComponents/
       ApplicationConnectorServiceLibrary/SampleSEBL/V1/RequestorABCS/
       SamplesCreateCustomerSiebelReqABCSImpl.wsdl" name="SamplesCreateCustomer
       SiebelReqABCSImpl">
         <interface.wsdl interface="http://xmlns.oracle.com/ABCSImpl/Siebel/Samples/
          CreateCustomerSiebelReqABCSImpl/V1#wsdl.interface(SamplesCreate
          CustomerSiebelReqABCSImpl)" callbackInterface="http://xmlns.oracle.
          com/ABCSImpl/Siebel/Samples/CreateCustomerSiebelReqABCSImpl/
          V1#wsdl.interface(SamplesCreateCustomerSiebelReqABCSImpl)" xmlns:ns=
          "http://xmlns.oracle.com/sca/1.0"/>
      ----------------------------------
      </service>
      
    4. Comment out the wsdlRuntimeLocation in the bpel.xml as shown in Example 7-13.

      Example 7-13 bpel.xml with wsdlRuntimeLocation Commented Out

      <partnerLinkBinding name="SamplesCustomerPartyEBS">
         <property name="wsdlLocation">SamplesCustomerPartyEBSRef.wsdl</property>
         <property name="transaction">participate</property>
         <!--<property name="wsdlRuntimeLocation">http://ap6060fems.us.oracle.com:
          7817/esb/wsil/AIASamples/CustomerPartyEBS?wsdl</property>-->
      </partnerLinkBinding>
      
  2. Run the AIA Migration Utility.


    Note:

    In the AIAMigrationUtility.Properties file provide the value for process.type attribute.

    For example: process.type= Requester

    For more information, see Section 17.1, "Overview of the AIA Migration Utility."

  3. Complete post-migration tasks.

    For information, see post-migration tasks under Section 7.3, "How to Migrate Provider ABCSs."

For information, see Chapter 12, "Making Migrated Services Deployable."