18 Loading AIA Metadata to Oracle Metadata Services Repository

This chapter describes how to load Oracle Application Integration Architecture (AIA) metadata artifacts to the Oracle Metadata Services (MDS) repository.

You must upload AIA metadata artifacts to the AIA MetaData folder in the SOA partition of the Oracle Metadata Services repository (MDS) after performing any of the following tasks:

This chapter discusses the following topics:

18.1 Accessing MDS from the AIA Service Artifact

To access the MDS store from the AIA service artifact, configure the adf-config.xml file located in <application folder>.adf\META-INF\adf-config.xml.

Example 18-1 provides a sample adf-config.xml file:

In your respective adf-config.xml files, adjust content in bold to reflect values for your MDS configuration.

Example 18-1 Sample adf-config.xml

<?xml version="1.0" encoding="windows-1252" ?>
<adf-config xmlns="http://xmlns.oracle.com/adf/config"
xmlns:sec="http://xmlns.oracle.com/adf/security/config">
   <adf-mds-config xmlns="http://xmlns.oracle.com/adf/mds/config">
      <mds-config xmlns="http://xmlns.oracle.com/mds/config">
         <persistence-config>
            <metadata-namespaces>
              <namespace metadata-store-usage="mstore-usage_2"
               path="/apps/AIAMetadata"/>
              <namespace metadata-store-usage="mstore-usage_3" 
               path="/soa/shared"/>
            </metadata-namespaces>
            <metadata-store-usages>
              <metadata-store-usage id="mstore-usage_2">
                 <metadata-store class-name="oracle.mds.
                  persistence.stores.db.DBMetadataStore">
                    <property value="SH_MDS" name="jdbc-userid"/>
                    <property value="manager" name="jdbc-password"/>
                    <property value="jdbc:oracle:thin:@server.us.
                     oracle.com:1521:orcl"name="jdbc-url"/>
                    <property value="soa-infra" name="partition-name"/>
                 </metadata-store>
              </metadata-store-usage>
               <metadata-store-usage id="mstore-usage_3">
                  <metadata-store class-name="oracle.mds.persistence.
                   stores.file.FileMetadataStore">
                     <property value="D:\jdev\jdeveloper\integration"
                      name="metadata-path"/>
                     <property value="seed" name="partition-name"/>
                  </metadata-store>
               </metadata-store-usage>
            </metadata-store-usages>
         </persistence-config>
      </mds-config>
   </adf-mds-config>
   <sec:adf-security-child xmlns="http://xmlns.oracle.com/adf/security/config">
      <CredentialStoreContext credentialStoreClass="oracle.adf.share.security.
       providers.jps.CSFCredentialStore"credentialStoreLocation="../../src/
       META-INF/jps-config.xml"/>
   </sec:adf-security-child>
</adf-config>

18.2 Moving Abstract Service WSDLs into MDS

Abstract WSDLs of all AIA services must be stored in MDS.

For information about how MDS is used in AIA and the utility used to move artifacts to MDS, see "Using MDS in AIA" in Oracle Fusion Middleware Developer's Guide for Oracle Application Integration Architecture Foundation Pack.

Note:

Abstract WSDLs should be modified to access the required schemas from MDS and then be moved to MDS.

For Application Business Connector Services (ABCS) and adapter services, abstract WSDLs are stored in MDS using the following structure: AIAMetaData/AIAComponents/ApplicationConnectorServiceLibrary/<PRODUCT_CODE>/<Version Number>/<Service Type>.

Possible values for <Version Number> are V1, V2, and so on.

Possible values for <Service Type> are RequesterABCS, ProviderABCS, and AdapterServices.

For example:

  • AIAMetaData/AIAComponents/ApplicationConnectorServiceLibrary/Siebel/V1/RequesterABCS

  • AIAMetaData/AIAComponents/ApplicationConnectorServiceLibrary/Siebel/V1/ProviderABCS

To prepare abstract service WSDLs to be moved into MDS:

  1. In AIA Foundation Pack 11g Release 1, the abstract WSDL of an ABCS that is being developed should be accessed from MDS. The exceptions to this rule are:

    • The Enterprise Business Service (EBS) reference WSDLs that define PartnerLink types.

    • Participating application reference WSDLs that define PartnerLink types.

    • Adapter WSDLs that are generated by Oracle JDeveloper.

    • Abstract WSDLs of services defined at extension points.

  2. Modify the abstract WSDLs to access the required schemas from the MDS and then load them to MDS.

    • The application entity schemas, or Application Business Message (ABM) schemas, should be accessible from MDS. They should not be a part of each ABCS project.

    • For ABCSs, abstract WSDLs are located here in MDS: AIAMetaData/AIAComponents/ApplicationConnectorServiceLibrary/<PRODUCT_CODE>/<Version Number>/<Service Type>

      Possible values for <Version Number> - V1, V2, and so on.

      Possible values for <Service Type> are RequesterABCS and ProviderABCS.

    • For Composite Business Processes (CBPs) and Enterprise Business Flows (EBFs), abstract WSDLs are stored in MDS using the following structure: AIAMetaData\AIAComponents\BusinessProcessServiceLibrary\<Service Type>

      For example:

      AIAMetaData\AIAComponents\BusinessProcessServiceLibrary\CBP

      AIAMetaData\AIAComponents\BusinessProcessServiceLibrary\EBF

To configure the artifacts before moving the abstract WSDLs into MDS:

  1. Configure the ComponentType file to point to the abstract WSDLs in the MDS.

    1. The ui:wsdlLocation attribute in the service element should point to the abstract WSDLs in the MDS.

      For example:

      <service ui:wsdlLocation="oramds:/apps/AIAMetaData/AIAComponents/
      ApplicationConnectorServiceLibrary/SampleSEBL/RequesterABCS/Samples
      CreateCustomerSiebelReqABCSImpl.wsdl" name="SamplesCreateCustomerSiebel
      ReqABCSImpl">
      
    2. If the composite has a reference, then the ui:wsdlLocation attribute in the Reference element should point to abstract WSDLs in the MDS.

      For example:

      <reference name="SamplesCreateCustomerPartyPortalProvider" 
      ui:wsdlLocation="oramds:/apps/AIAMetaData/AIAComponents/Application
      ConnectorServiceLibrary/SamplePortal/V1/SamplesCreateCustomerPartyPortal
      Provider.wsdl"><interface.wsdlinterface="http://xmlns.oracle.com/
      SamplePortalApp#wsdl.interface(SamplesCreateCustomerPartyPortal
      Provider? )"/></reference>
      
  2. Configure composite.xml.

    1. In composite.xml, the location attribute of the import element should point to abstract WSDLs in the MDS.

      For example:

      <import location="oramds:/apps/AIAMetaData/AIAComponents/ApplicationConnector
      ServiceLibrary/SampleSEBL/RequesterABCS/SamplesCreateCustomerSiebelReq
      ABCSImpl.wsdl" namespace= "http://xmlns.oracle.com/ABCSImpl/
      Siebel/Samples/CreateCustomerSiebelReqABCSImpl/V1"/>
      
    2. The ui:wsdlLocation attribute in the service and reference elements should point to abstract WSDLs in the MDS.

      For example:

      <service ui:wsdlLocation="oramds:/apps/AIAMetaData/AIAComponents/
      AIAServiceLibrary/SampleSEBL/RequesterABCS/SamplesCreateCustomerSiebel
      ReqABCSImpl.wsdl" name="SamplesCreateCustomerSiebelReqABCSImpl">
      
      <reference name="SamplesCreateCustomerPartyPortalProvider" 
      ui:wsdlLocation="oramds:/apps/AIAMetaData/AIAComponents/Application
      ConnectorServiceLibrary/SamplePortal/V1/SamplesCreateCustomerPartyPortal
      Provider.wsdl"><interface.wsdlinterface="http://xmlns.oracle.com/Sample
      PortalApp#wsdl.interface(SamplesCreateCustomerPartyPortalProvider
      ? )"/></reference>
      
    3. If the composite has a mediator as a reference service, change the location attribute in the <EBS Reference WSDL> file as shown in this example:

      <wsdl:importnamespace="http://xmlns.oracle.com/EnterpriseServices/Core/
      CustomerParty/V2" location="oramds:/apps/AIAMetaData/AIAComponents/
      EnterpriseBusinessServiceLibrary/Core/EBO/CustomerParty/V2/CustomerParty
      EBS.wsdl"/>
      
    4. Populate binding.ws element attributes for reference services in the composite.xml file.

      Service Constructor generates empty port and location attributes for the binding.ws element under the reference element in the composite.xml file. Populate the attributes with relevant values as follows.

      When the reference service is a BPEL component, the binding.ws element should be populated as shown here.

      <binding.ws port="[Namespace of the Service as defined in thewsdl]
      #wsdl.endpoint([Name of the Service as given in the WSDL]/[ Name of the 
      Porttype as given in the WSDL>)" location="< URL of the concrete WSDL]"/>
      

      The name of the service is the value of the attribute definition/name in the abstract WSDL. This follows the Service naming convention in the ABCS composite.

      For example, Name of the Service is the <name of the composite>, which in turn is the value of the name attribute of the definitions element in the WSDL.

      The URL of the concrete WSDL should use the following format: http://{host}:{port}/soa-infra/services/default)/[Name of the Service as given in the name attribute of the definition element in the WSDL]/[Name of the Porttype element as given in the WSDL]?WSDL

      For example:

      <binding.wsport="http://xmlns.oracle.com/SamplePortalApp#wsdl.endpoint
      (SamplesCreateCustomerPartyPortalProvider/SamplesCreateCustomerParty
      PortalProvider)" location="http://ap6014rems.us.oracle.com:8001/soa-infra
      /services/default/SamplesCreateCustomerPartyPortalProvider/Samples
      CreateCustomerPartyPortalProvider?WSDL"/>
      

      When the reference service is a mediator component, the binding.ws element should be populated as shown here:

      <binding.ws port="[Namespace of the Service as defined in thewsdl]
      #wsdl.endpoint([Name of the Porttype element as given in the WSDL]_ep/
      [Name of the Porttype element as given in the WSDL]_pt)" location=
      "[URL of the concrete WSDL]"/>
      

      The URL of the concrete WSDL should use the following format: http://{host}:{port}/soa-infra/services/default)/[Name of the Porttype element as given in the WSDL]/[Name of the Porttype element as given in the WSDL]_ep?WSDL

      For example:

      <binding.wsport="http://xmlns.oracle.com/EnterpriseServices/Core/
      CustomerParty/V2#wsdl.endpoint(SamplesCustomerPartyEBS_ep/
      CustomerPartyEBS_pt)" location="http://ap6014rems.us.oracle.com:
      8001/soa-infra/services/default/SamplesCustomerPartyEBS/SamplesCustomer
      PartyEBS_ep?WSDL"/>
      
  3. Move the WSDLs to MDS.

    For information, see "Using MDS in AIA" in Oracle Fusion Middleware Developer's Guide for Oracle Application Integration Architecture Foundation Pack.

18.3 Migrating the AIA Configuration Properties File

The AIAConfigurationProperties.xml file is a central place for system-, module-, and service-related settings in an AIA Foundation Pack environment. Starting with AIA Foundation Pack 11g Release 1, this file is placed in MDS.

The installation of AIA Foundation Pack 11g Release 1 includes a default configuration file and you must manually migrate any custom system and module settings from the AIA 2.4 or 2.5 environment. Specifically, these are the configurations that are part of the AIA configuration properties file, which is available on the server but not at the project folder.

See the following procedure for information about how to update AIAConfigurationProperties.xml with custom Service Configuration elements.

Service-related settings are handled by the AIA Migration Utility, which migrates them into a file called AIAServiceConfigurationProperties.xml for each migrated service.

AIA Installation Driver merges the content in AIAServiceConfigurationProperties.xml into AIAConfigurationProperties.xml as a part of the service deployment and uploads it into MDS.

Note that this does not happen when deploying from Oracle JDeveloper. In this case, the AIAConfigurationProperties.xml must be manually updated and uploaded to this location in MDS: SOA-MDS > apps/AIAMetaData/config.

To update AIAConfigurationProperties.xml with custom service configuration elements:

  1. Access the $AIA_HOME/aia_instances/$INSTANCE_NAME/config folder.

    • Open AIAConfigurationProperties.xml and add the custom elements under respective service configurations.

    • Open the deployment plan file, UpdateMetaDataDP.xml. Update UpdateMetaDataDP.xml by inserting include tags for AIAConfigurationProperties.xml, which you want to add to the MDS:

      Add the following:

      <fileset dir="${AIA_HOME}/aia_instances/${INSTANCE_NAME}">
      <include name ="config/AIAConfigurationProperties.xml"/>
      </fileset>
      

      Note:

      In the include tag, the folder path must be relative to the folder AIAMetaData, which is under $AIA_HOME.

  2. Access the $AIA_HOME/aia_instances/$INSTANCE_NAME/bin folder.

  3. Source aiaenv.sh by executing the following command:

    source aiaenv.sh
    
  4. Access $AIA_HOME/Infrastructure/Install/scripts. Execute the script UpdateMetaData.xml by using the following command:

    ant -f $AIA_HOME/Infrastructure/Install/scripts/UpdateMetaData.xml
    

18.4 Moving Custom Extensions to EOL, ESL, and AOL to MDS

For information about migrating custom extensions to the Enterprise Object Library, see Chapter 3, "Migrating Enterprise Object Library Customizations."

For information about migrating custom extensions to the Enterprise Service Library, see Chapter 7, "Migrating Services."

Any custom extensions to the Application Object Library must be performed manually.

Foundation Pack provides MDS update scripts to add custom extensions to the existing library. The folder structure remains the same for the custom extensions.

18.5 Updating MDS

You must repeat this procedure each time a file needs to be added to MDS.

To update SOA-MDS (apps/AIAMetaData):

  1. Access the $AIA_HOME/aia_instances/$INSTANCE_NAME/bin folder.

  2. Source aiaenv.sh by executing the following command:

    source aiaenv.sh
    
  3. Access the $AIA_HOME/aia_instances/$INSTANCE_NAME/config folder. Open the deployment plan file, UpdateMetaDataDP.xml.

  4. Update UpdateMetaDataDP.xml by inserting include tags for each resource group that you want to add to the MDS:

    1. To upload all files under AIAMetaData, add the following:

      <include name ="AIAMetadata/**"/>
      
    2. To upload AOL objects to MDS, see the following example.

      For example, to upload SEBL AOL objects in the AIAComponents/ApplicationObjectLibrary/SEBL/schemas folder, add the following:

      <include name="AIAComponents/ApplicationObjectLibrary/SEBL/schemas/**"/>
      

      Note:

      In the include tag, the folder path must be relative to the folder AIAMetaData.

  5. Access the AIA_HOME/Infrastructure/Install/config folder. Execute the UpdateMetaData.xml script:

    ant -f UpdateMetaData.xml