SlideShare a Scribd company logo
Raastech, Inc.
2201 Cooperative Way, Suite 600
Herndon, VA 20171
+1-703-884-2223
info@raastech.com
Deploying to Oracle SOA Suite 12c
Everything You Need To Know
Monday, December 7, 2015
12:20 - 13:10
Media Suite B
© Raastech, Inc. 2015 | All rights reserved. Slide 2 of 75@Raastech
Agenda
1. Introductions
2. SOA Composites
3. OSB Projects
4. BAM Objects
5. MDS Artifacts
6. Alternatives
7. Final Thoughts
© Raastech, Inc. 2015 | All rights reserved. Slide 3 of 75@Raastech
© Raastech, Inc. 2015 | All rights reserved. Slide 4 of 75@Raastech
About Me
 Ahmed Aboulnaga @Ahmed_Aboulnaga
 18+ years Oracle experience
 Author of “Oracle SOA Suite 11g Administrator’s Handbook”
 Author of “Oracle SOA Suite 12c Administrator’s Guide”
 OCE (SOA Foundation Practitioner)
 OCE (Oracle SOA Architect)
 Oracle ACE
© Raastech, Inc. 2015 | All rights reserved. Slide 5 of 75@Raastech
About Raastech
 Small systems integrator founded in 2009
 Headquartered in the Washington DC area
 Specializes in Oracle Fusion Middleware
 Oracle Platinum Partner 1 in 3,000 worldwide
 Oracle SOA Specialized 1 in 1,500 worldwide
 Oracle ACEs 2 in 600 worldwide
© Raastech, Inc. 2015 | All rights reserved. Slide 6 of 75@Raastech
Why This Presentation
 For the administrator
 Detail actual deployment instructions in hopes of lowering complexity
 Discuss some alternatives
© Raastech, Inc. 2015 | All rights reserved. Slide 7 of 75@Raastech
© Raastech, Inc. 2015 | All rights reserved. Slide 8 of 75@Raastech
 Through Oracle Enterprise Manager Fusion Middleware Control
 Must have the JAR file ready to go
Console
© Raastech, Inc. 2015 | All rights reserved. Slide 9 of 75@Raastech
 Entry logged in soa_server1.out
 Service becomes available immediately
– Web service immediately available
– Inbound service starts consuming immediately
Console
[2015-02-01T16:13:18.092-05:00] [soa_server1] [NOTIFICATION]
[] [oracle.integration.platform.blocks.deploy] [tid:
DaemonWorkThread: '2' of WorkManager: 'wm/SOAWorkManager']
[userId: <anonymous>] [ecid: 9027493d-b37d-4795-a996-
331a7c6ae275-00000004,0:513] [APP: soa-infra] Publishing
deploy event for default/HelloWorld!1.0*soa_d91d1c4c-7a7b-
4405-9b6e-6dd5a053bfbb
© Raastech, Inc. 2015 | All rights reserved. Slide 10 of 75@Raastech
 Create setAntEnv.sh
Ant | Step 1: Create 1-Time Environment Script
export USERNAME=weblogic
export PASSWORD=welcome1
export SOAHOST=soahost1
export SOAPORT=8001
export SOAURL=http://${SOAHOST}:${SOAPORT}
export CODE=/home/oracle/code
export MW_HOME=/u01/app/oracle/middleware
export ORACLE_HOME=$MW_HOME/soa
export JAVA_HOME=$MW_HOME/jdk1.7.0_15
export ANT_HOME=$MW_HOME/oracle_common/modules/org.apache.ant_1.9.2
export PATH=$JAVA_HOME/bin:$ANT_HOME/bin:$ANT_HOME/lib:$PATH:.
© Raastech, Inc. 2015 | All rights reserved. Slide 11 of 75@Raastech
 Package composite
Ant | Step 2: Package Composite
cd $ORACLE_HOME/bin
ant -f ant-sca-package.xml package
-DcompositeDir=$CODE/HelloW/SOA
-DcompositeName=HelloW
-Drevision=1.0
© Raastech, Inc. 2015 | All rights reserved. Slide 12 of 75@Raastech
 Deploy composite
Ant | Step 3: Deploy Composite
ant -f ant-sca-deploy.xml deploy
-DserverURL=$SOAURL/soa-infra/deployer
-Duser=$USERNAME
-Dpassword=$PASSWORD
-DsarLocation=$CODE/HelloW/SOA/deploy/sca_HelloW_rev1.0.jar
-Dpartition=default
-Doverwrite=true
-DforceDefault=true
© Raastech, Inc. 2015 | All rights reserved. Slide 13 of 75@Raastech
 WebLogic Scripting Tool
 Set environment and connect to WLST
WLST | Step 1: Start WLST Shell
export MW_HOME=/u01/app/oracle/middleware
export ORACLE_HOME=$MW_HOME/soa
cd $ORACLE_HOME/bin
$ORACLE_HOME/common/bin/wlst.sh
wls:/offline>
wls:/offline>connect()
© Raastech, Inc. 2015 | All rights reserved. Slide 14 of 75@Raastech
 Package composite
 Deploy composite
WLST | Step 2: Package and Deploy with WLST
sca_package ("/home/oracle/code/HelloW/SOA",
"HelloW",
"1.0",
oracleHome="/u01/app/oracle/middleware/soa")
sca_deployComposite ("http://soahost1:8001",
"/home/oracle/code/HelloW/SOA/deploy/sca_HelloW_rev1.0.jar",
true,
user="weblogic",
password="welcome1",
partition="default")
© Raastech, Inc. 2015 | All rights reserved. Slide 15 of 75@Raastech
 WLST commands actually call underlying Ant scripts
 Must use the HTTP protocol
WLST Considerations
© Raastech, Inc. 2015 | All rights reserved. Slide 16 of 75@Raastech
 Promoting code to higher environments may require modifying URLs
 FYI: Configuration plans don’t work with XSLT artifacts
Configuration Plans
© Raastech, Inc. 2015 | All rights reserved. Slide 17 of 75@Raastech
Configuration Plans: The Code
<reference name="HelloWorldBPEL_BPEL"
ui:wsdlLocation="http://soa12cdev:8001/soa-infra/services/default/HelloWorldBPEL/HW.wsdl">
<interface.wsdl interface="http://xmlns.oracle.com/SOA12c/HelloWorldBPEL/HW#wsdl.interface(HW)"/>
<binding.ws port="http://xmlns.oracle.com/SOA12c/HelloWorldBPEL/HW#wsdl.endpoint(hw_client_ep/hw_pt)"
location="http://soa12cdev:8001/soa-infra/services/default/HelloWorldBPEL/hw_client_ep?WSDL"
soapVersion="1.1">
<property name="weblogic.wsee.wsat.transaction.flowOption"
type="xs:string" many="false">WSDLDriven</property>
</binding.ws>
</reference>
<reference name="HelloWorld_BPEL"
ui:wsdlLocation="http://soa12cDEV:8001/soa-infra/services/default/HelloWorldBPEL/HW.wsdl">
<interface.wsdl interface="http://xmlns.oracle.com/SOA12c/HelloWorldBPEL/HW#wsdl.interface(HW)"/>
</reference>
 composite.xml
 Mediator1.componentType
© Raastech, Inc. 2015 | All rights reserved. Slide 18 of 75@Raastech
Configuration Plans: The Test Plan
<?xml version="1.0" encoding="UTF-8"?>
<SOAConfigPlan xmlns:jca="http://platform.integration.oracle/blocks/adapter/fw/metadata" ... >
<composite name="*">
<import>
<searchReplace>
<search>http://soa12cDEV:8001</search>
<replace>http://soa12cTEST:8001</replace>
</searchReplace>
</import>
<reference name="*">
<binding type="ws">
<attribute name="location">
<searchReplace>
<search>http://soa12cDEV:8001</search>
<replace>http://soa12cTEST:8001</replace>
</searchReplace>
</attribute>
</binding>
</reference>
</composite>
</SOAConfigPlan>
 cfgplan_test.xml
© Raastech, Inc. 2015 | All rights reserved. Slide 19 of 75@Raastech
Configuration Plans: The Test Plan
<import>
<searchReplace>
<search>http://soa12cDEV:8001</search>
<replace>http://soa12cTEST:8001</replace>
</searchReplace>
</import>
<reference name="*">
<binding type="ws">
<attribute name="location">
<searchReplace>
<search>http://soa12cDEV:8001</search>
<replace>http://soa12cTEST:8001</replace>
</searchReplace>
</attribute>
</binding>
</reference>
 cfgplan_test.xml
© Raastech, Inc. 2015 | All rights reserved. Slide 20 of 75@Raastech
 Deploy composite
Ant – Using a Configuration Plan
ant -f ant-sca-deploy.xml deploy
-DserverURL=$SOAURL/soa-infra/deployer
-Duser=$USERNAME
-Dpassword=$PASSWORD
-DsarLocation=$CODE/HelloW/SOA/deploy/sca_HelloW_rev1.0.jar
-Dpartition=default
-Doverwrite=true
-DforceDefault=true
-Dconfigplan=/tmp/cfgplan_test.xml
© Raastech, Inc. 2015 | All rights reserved. Slide 21 of 75@Raastech
© Raastech, Inc. 2015 | All rights reserved. Slide 22 of 75@Raastech
 Through Oracle Service Bus Console (http://host:7001/servicebus)
 Must have the JAR file ready to go
 Right-click on “All Projects” and navigate to “Import > Config Jar”
Console
© Raastech, Inc. 2015 | All rights reserved. Slide 23 of 75@Raastech
Console only deployment? Really?!
© Raastech, Inc. 2015 | All rights reserved. Slide 24 of 75@Raastech
WLST | Step 1: Set Up Environment
© Raastech, Inc. 2015 | All rights reserved. Slide 25 of 75@Raastech
WLST | Step 2: Create Customization File
© Raastech, Inc. 2015 | All rights reserved. Slide 26 of 75@Raastech
WLST | Step 3: Create Property File
© Raastech, Inc. 2015 | All rights reserved. Slide 27 of 75@Raastech
WLST | Step 4: Download import.py
© Raastech, Inc. 2015 | All rights reserved. Slide 28 of 75@Raastech
WLST | Step 5: Import OSB Service
© Raastech, Inc. 2015 | All rights reserved. Slide 29 of 75@Raastech
 Similar to configuration plans for SOA composites
 Not a search-replace like SOA configuration plans, but rather a
‘replace’ only
OSB Customization Files
© Raastech, Inc. 2015 | All rights reserved. Slide 30 of 75@Raastech
OSB Customization Files
<cus:customization xsi:type="cus:EnvValueActionsCustomizationType">
<cus:actions>
<xt:replace>
<xt:envValueType>Service URI Table</xt:envValueType>
<xt:value xsi:type="tran:URITableType" xmlns:tran="http://www.bea.com/wli/sb/transports">
<tran:tableElement>
<tran:URI>jms://soa12cDEV:8001/weblogic.jms.XAConnectionFactory/jms/OrderQ</tran:URI>
</tran:tableElement>
</xt:value>
</xt:replace>
<xt:replace>
<xt:envValueType>Service Retry Count</xt:envValueType>
<xt:value xsi:type="xs:string" xmlns:xs="http://www.w3.org/2001/XMLSchema">3</xt:value>
</xt:replace>
</cus:actions>
</cus:customization>
© Raastech, Inc. 2015 | All rights reserved. Slide 31 of 75@Raastech
 Initially create a customization file through the OSB Console
 Click on “Admin” then “Create Configuration File”
OSB Customization Files – Creating
© Raastech, Inc. 2015 | All rights reserved. Slide 32 of 75@Raastech
 Apply a customization file through the OSB Console post-deployment
 Click on “Create” then “Admin” then “Execute Configuration File”
OSB Customization Files – Applying via Console
© Raastech, Inc. 2015 | All rights reserved. Slide 33 of 75@Raastech
© Raastech, Inc. 2015 | All rights reserved. Slide 34 of 75@Raastech
 BAM development begins on the server (i.e., via the BAM Console)
 Deployment involves exporting then importing
 BAM artifacts include: data objects, business queries, KPIs, business
views, dashboards, alerts, parameters
 BamCommand (12c) is the successor of ICommand (10g/11g)
 To migrate between major releases:
http://docs.oracle.com/middleware/1213/core/FUPSS/bam.htm#FUPSS256
BAM Deployment Overview
© Raastech, Inc. 2015 | All rights reserved. Slide 35 of 75@Raastech
Step 1: Set up Environment
export CODE=/home/oracle/bamcode
export MW_HOME=/u01/app/oracle/middleware
export JAVA_HOME=$MW_HOME/jdk1.7.0_15
export PATH=$MW_HOME/soa/bam/bin:$PATH:.
 Create setBAMEnv.sh
© Raastech, Inc. 2015 | All rights reserved. Slide 36 of 75@Raastech
Step 2: Update Configuration File
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<BAMCommandConfig>
<host>bamhost1</host>
<port>9001</port>
<username>weblogic</username>
<password>welcome1</password>
<!-- Below fields only needed when using -migrate -->
<dbusername>DEV_SOAINFRA</dbusername>
<dbpassword>welcome1</dbpassword>
<dburl>jdbc:oracle:thin:@soadb:1521:orcl</dburl>
</BAMCommandConfig>
 Edit BAMCommandConfig.xml
 Located in $MW_HOME/soa/bam/bin
© Raastech, Inc. 2015 | All rights reserved. Slide 37 of 75@Raastech
Step 3: Export/Import BAM Artifacts
source setBAMEnv.sh
bamcommand -cmd export -name "Hello/World" -file "$CODE/World.zip"
bamcommand -cmd import -file "$CODE/World.zip"
 In 12c, it no longer needed to explicitly specify the object type
© Raastech, Inc. 2015 | All rights reserved. Slide 38 of 75@Raastech
BAM Command File
vi command.xml
<?xml version="1.0" encoding="utf-8"?>
<OracleBAMCommands continueonerror="1">
<Export name="Test/Hello World" file="Hello World.xml" contents="0" />
<Rename name="Test/Foo" newdisplayname="Bar" />
<Delete type="EMS" name="ApacheLog" />
</OracleBAMCommands>
source setBAMEnv.sh
bamcommand -cmdfile "command.xml"
 Perform multiple operations using the BAM command file
 Limited to <Export>, <Delete>, and <Rename>
© Raastech, Inc. 2015 | All rights reserved. Slide 39 of 75@Raastech
© Raastech, Inc. 2015 | All rights reserved. Slide 40 of 75@Raastech
 Shared XSD, WSDL, DVM, WADL, XQuery, and XML files are stored in the MDS
 Accessible via the ORAMDS protocol from the code. For example:
 Local DVM in XSL file:
dvm:lookupValue("LANGUAGECODE.dvm", "EBIZ", "", "RETAIL", "")
 Shared DVM in XSL file:
dvm:lookupValue("oramds:/apps/AIAMetaData/dvm/LANGUAGECODE.dvm",
"EBIZ", "", "RETAIL", "")
 Local XSD in WSDL file:
<xsd:import namespace="http://xmlns.oracle.com/bpel"
schemaLocation="xsd/Customer.xsd"/>
 Shared XSD in WSDL file:
<xsd:import namespace="http://xmlns.oracle.com/bpel"
schemaLocation="oramds:/apps/shared/Customer.xsd"/>
What are MDS artifacts?
© Raastech, Inc. 2015 | All rights reserved. Slide 41 of 75@Raastech
Step 1: Exporting MDS Artifacts
source setAntEnv.sh
cd $ORACLE_HOME/bin
ant -f ant-sca-deploy.xml exportSharedData
-DserverURL=$SOAURL/soa-infra/deployer
-Duser=$USERNAME
-Dpassword=$PASSWORD
-DjarFile=SOAMetaData.jar
-Dpattern=**
 Output is a SOAMetaData.jar file
© Raastech, Inc. 2015 | All rights reserved. Slide 42 of 75@Raastech
Step 1: Defining Patterns
 For example:
/apps/SOAMetaData/dvm/**
/apps/SOAMetaData/faultPolicies/**
**
 Delimiter is ;
© Raastech, Inc. 2015 | All rights reserved. Slide 43 of 75@Raastech
Step 2: Zip Local Content to SOAMetaData.jar
cd /tmp/svn
zip -r SOAMetaData.jar SOAMetaData
© Raastech, Inc. 2015 | All rights reserved. Slide 44 of 75@Raastech
Step 3: Import to MDS
source setAntEnv.sh
cd $ORACLE_HOME/bin
ant -f ant-sca-deploy.xml deploy
-Dwl_home=$MW_HOME/wlserver
-Doracle.home=$ORACLE_HOME
-DserverURL=$SOAURL/soa-infra/deployer
-Duser=$USERNAME
-Dpassword=$PASSWORD
-Doverwrite=true
-DforceDefault=true
-DsarLocation=SOAMetaData.jar
© Raastech, Inc. 2015 | All rights reserved. Slide 45 of 75@Raastech
Transfer to MDS from JDeveloper
* Screenshots courtesy of https://technology.amis.nl/2014/06/27/soa-suite-12c-deploying-shared-artifacts-to-run-time-mds-the-official-approach-and-the-quick-short-cut
© Raastech, Inc. 2015 | All rights reserved. Slide 46 of 75@Raastech
© Raastech, Inc. 2015 | All rights reserved. Slide 47 of 75@Raastech
Custom Developed Solution – MDS Artifacts
© Raastech, Inc. 2015 | All rights reserved. Slide 48 of 75@Raastech
Custom Developed Solution – Oracle SOA Suite
© Raastech, Inc. 2015 | All rights reserved. Slide 49 of 75@Raastech
Custom Developed Solution – Oracle SOA Suite
build,MyApp-Release1.1
MDS,Ahmed.xsd,mds/ApplicationObjectLibrary/Common,129
SOA,HelloWorldBPEL,default,1.0,true,soa/trunk/HelloWorldBPEL,126
OSB,HelloWorldOSB.jar,osb/trunk/HelloWorldOSB,527
DEP,Create JMS distributed queue: jms/OrderQ
SQL,sql/trunk/CreateErrorTable.sql,527
BAM,/Project1/ErrorDO,bam/trunk/ErrorDO.xml,dataobject,true,527
BAM,/public/Report/Error Report,bam/trunk/Report1.xml,report,false,549
BAM,/private:usr/Rule/My Alert/Error,bam/trunk/Error.xml,rule,false,919
 Deploy List; creates a bundled deployment
© Raastech, Inc. 2015 | All rights reserved. Slide 50 of 75@Raastech
Custom Developed Solution – Oracle SOA Suite
© Raastech, Inc. 2015 | All rights reserved. Slide 51 of 75@Raastech
Custom Developed Solution – Oracle SOA Suite
© Raastech, Inc. 2015 | All rights reserved. Slide 52 of 75@Raastech
Custom Developed Solution – Oracle SOA Suite
© Raastech, Inc. 2015 | All rights reserved. Slide 53 of 75@Raastech
Custom Developed Solution – Oracle SOA Suite
oracle@soadevhost:/home/oracle/deploy> ./deploy.sh soa-dev
╔══════════════════════════════════════════════════════════════════════════════╗
║ Deployment Process Started ║
╚══════════════════════════════════════════════════════════════════════════════╝
┌───────────────────────────────────────────────────────────────────────────────
│ Deployment Facts
├───────────────────────────────────────────────────────────────────────────────
│ TARGET: soa-dev
│ LOGS HOME: /home/oracle/deploy/log_logs/deploy.sh_20151126_190104_18088
│ PROCESS_LIST: /home/oracle/deploy/CodeList.txt
└───────────────────────────────────────────────────────────────────────────────
┌───────────────────────────────────────────────────────────────────────────────
│ SOA build START for row #1
├───────────────────────────────────────────────────────────────────────────────
│ CHECKOUT: HelloWorld
│ ERROR: Unable to checkout. Check: /home/oracle/deploy/log_logs/deploy.sh_20151126_190121_1348/01_checkout.log log file for errors.
│ USER INPUT: Continue remaining deployments yes or no? [N]Y
├───────────────────────────────────────────────────────────────────────────────
│ SOA build COMPLETE for row #1
└───────────────────────────────────────────────────────────────────────────────
┌───────────────────────────────────────────────────────────────────────────────
│ Build Cleanup Started
├───────────────────────────────────────────────────────────────────────────────
│ USER INPUT: Remove build logs yes or no? [Y]N
├───────────────────────────────────────────────────────────────────────────────
│ Build Cleanup Completed
└───────────────────────────────────────────────────────────────────────────────
© Raastech, Inc. 2015 | All rights reserved. Slide 54 of 75@Raastech
Custom Developed Solution – Oracle SOA Suite
oracle@soadevhost:/home/oracle/deploy> ./deploy.sh soa-dev
╔══════════════════════════════════════════════════════════════════════════════╗
║ Deployment Process Started ║
╚══════════════════════════════════════════════════════════════════════════════╝
┌───────────────────────────────────────────────────────────────────────────────
│ Deployment Facts
├───────────────────────────────────────────────────────────────────────────────
│ TARGET: soa-dev
│ LOGS HOME: /home/oracle/deploy/log_logs/deploy.sh_20151126_190145_5390
│ PROCESS_LIST: /home/oracle/deploy/CodeList.txt
└───────────────────────────────────────────────────────────────────────────────
┌───────────────────────────────────────────────────────────────────────────────
│ SOA build START for row #1
├───────────────────────────────────────────────────────────────────────────────
│ CHECKOUT: HelloWorld
│ DETOKENIZE: HelloWorld
│ DEPLOY: HelloWorld
├───────────────────────────────────────────────────────────────────────────────
│ SOA build COMPLETE for row #1
└───────────────────────────────────────────────────────────────────────────────
┌───────────────────────────────────────────────────────────────────────────────
│ Build Cleanup Started
├───────────────────────────────────────────────────────────────────────────────
│ USER INPUT: Remove build logs yes or no? [Y]N
├───────────────────────────────────────────────────────────────────────────────
│ Build Cleanup Completed
└───────────────────────────────────────────────────────────────────────────────
© Raastech, Inc. 2015 | All rights reserved. Slide 55 of 75@Raastech
http://flexagon.com/category/flexdeploy/
FlexDeploy from
© Raastech, Inc. 2015 | All rights reserved. Slide 56 of 75@Raastech
Maven Plug-In
 Oracle SOA Suite Maven plug-in
 Requires a POM (Project Object Model) file (pom.xml)
 Maven plug-in goals:
– compile (scac)
– package (sar)
– deploy
– test (sca-test)
– undeploy
 Maven 3.0.5 included in Oracle Fusion Middleware installation here:
$MW_HOME/Oracle_Home/oracle_common/modules/org.apache.maven_3.0.5
© Raastech, Inc. 2015 | All rights reserved. Slide 57 of 75@Raastech
Maven – Project
© Raastech, Inc. 2015 | All rights reserved. Slide 58 of 75@Raastech
Maven – Compilation
© Raastech, Inc. 2015 | All rights reserved. Slide 59 of 75@Raastech
Maven – Deployment
© Raastech, Inc. 2015 | All rights reserved. Slide 60 of 75@Raastech
Maven – OSB App from a Maven Archetype
 To create a new Oracle Service Bus application (containing an OSB
Project and an OSB System Resources project) using the OSB
Application Maven archetype, execute a command similar to the
following:
mvn archetype:generate
-DarchetypeGroupId=com.oracle.servicebus
-DarchetypeArtifactId=oracle-servicebus-application
-DarchetypeVersion=12.1.3-0-0
-DgroupId=org.mycompany
-DartifactId=my-servicebus-application
-Dversion=1.0-SNAPSHOT
-DprojectName=my-project
© Raastech, Inc. 2015 | All rights reserved. Slide 61 of 75@Raastech
Maven – OSB App from a Maven Archetype
 After creating your application, it contains the following files:
© Raastech, Inc. 2015 | All rights reserved. Slide 62 of 75@Raastech
Maven – OSB App from a Maven Archetype
 To build the SBAR file, execute the following command:
 The preceding command creates an SBAR file from your project and
places it in:
 To deploy the SBAR file, execute the following command:
mvn package -DoracleHome=/path/to/osbhome
project/.data/maven/sbconfig.sbar
mvn pre-integration-test
-DoracleServerUrl=http://osbdev:7001
-DoracleUsername=weblogic
-DoraclePassword=welcome1
Service Bus archive
© Raastech, Inc. 2015 | All rights reserved. Slide 63 of 75@Raastech
Why Maven?
 Maven better at managing dependencies (and can download
dependencies over the network)
 Ant is better at controlling of build process
 Ant adopted Apache Ivy to help in dependency management
– http://ant.apache.org/ivy/
When to use Maven When to use Ant
Large team of “creative” developers and
need structure
No need for fine-grained dependency
management
Building a product-like application Quick or one-off development
Many dependent modules Not much modularized code
© Raastech, Inc. 2015 | All rights reserved. Slide 64 of 75@Raastech
Maven | Some Cool Links
 https://redstack.wordpress.com/2014/10/22/soa-12c-maven-
demonstration-from-openworld-2014/
 http://biemond.blogspot.nl/2014/06/maven-support-for-1213-service-
bus-soa.html
 https://svgonugu.wordpress.com/2015/02/18/soa-12c-using-maven-for-
soa-projects-deployment/
* Maven screenshots borrowed from the links above
© Raastech, Inc. 2015 | All rights reserved. Slide 65 of 75@Raastech
Ant Tokenization/Detokenization
<reference name="HelloWorldBPEL_BPEL"
ui:wsdlLocation="@SOAServer@/soa-infra/.../>
<interface.wsdl interface="http://xmlns.oracle.com/SOA12c/.../>
<binding.ws port="http://xmlns.oracle.com/SOA12c/HelloWorldBPEL/..."
location=" @SOAServer@/soa-infra/services/..."
soapVersion="1.1">
<property name="weblogic.wsee.wsat.transaction.flowOption"
type="xs:string" many="false">WSDLDriven</property>
</binding.ws>
</reference>
 Developers tokenize code before checking it in
© Raastech, Inc. 2015 | All rights reserved. Slide 66 of 75@Raastech
Ant Tokenization/Detokenization
<reference name="HelloWorldBPEL_BPEL"
ui:wsdlLocation="http://soa12cdev:8001/soa-infra/.../>
<interface.wsdl interface="http://xmlns.oracle.com/SOA12c/.../>
<binding.ws port="http://xmlns.oracle.com/SOA12c/HelloWorldBPEL/..."
location="http://soa12cdev:8001/soa-infra/services/..."
soapVersion="1.1">
<property name="weblogic.wsee.wsat.transaction.flowOption"
type="xs:string" many="false">WSDLDriven</property>
</binding.ws>
</reference>
 Admins detokenize code before packaging/deployment
© Raastech, Inc. 2015 | All rights reserved. Slide 67 of 75@Raastech
Ant Tokenization/Detokenization
 Use standard Any replace functionality to tokenize/detokenize code
ant -f build.soa.xml detokenizeComposites -Dtargetenv=${env}
 Can apply to all file types
<replace dir="${svn.localdir}/soa/${folder.name}" summary="true">
<include name="**/*.xsd"/>
<include name="**/*.XSD"/>
.
.
<replacefilter token="@SOAServer@" value="${SOAServer}"/>
<replacefilter token="@OSBServer@" value="${OSBServer}"/>
.
.
</replace>
© Raastech, Inc. 2015 | All rights reserved. Slide 68 of 75@Raastech
Ant Tokenization/Detokenization
 Ant script reads a token file
<property file="${basedir}/props/soa-token-${targetenv}.props"/>
 Property file for each environment maintains all values
 Used in lieu of configuration plans and customization files
 Single token file can apply to SOA, OSB, etc. projects.
SOAServer = http://soadev:8001
OSBServer = http://soadev:8011
SOAServerJMS = jms://soadev:8001
MDSSchema = dev_mds
MDSPassword = welcome1
© Raastech, Inc. 2015 | All rights reserved. Slide 69 of 75@Raastech
© Raastech, Inc. 2015 | All rights reserved. Slide 70 of 75@Raastech
 Offline deployments
– While the AdminServer and managed servers are down
– Deployment done at startup
 Bundle deployments
– Cannot control deployment order, so don’t lump dependent SARs
New in Oracle SOA Suite 12c
© Raastech, Inc. 2015 | All rights reserved. Slide 71 of 75@Raastech
 SOA composite deployment – Ant the way to go
 OSB service deployment – No choice but WLST
 BAM object deployment – Fortunately simple
 MDS artifact import – Don’t forget about this!
 Build a reusable front-end to your scripts, or consider a product such
as FlexDeploy
 Undeployments not detailed here, but very similar in concept
Recap
or Maven
© Raastech, Inc. 2015 | All rights reserved. Slide 72 of 75@Raastech
 Consistentizing (“to make consistent”, real word?) the
detokenization and deployment of SOA, OSB, BAM, and
MDS is unfortunately impossible, but think along the lines of
a single property file
 Have to worry about new components such ESS and ORIBA
(Oracle Realtime Integration Business Analytics)
 Just get a tool… don’t waste your time reinventing the wheel
 Maven will pick up steam
Final Thoughts
Oracle
needs to
drive this
© Raastech, Inc. 2015 | All rights reserved. Slide 73 of 75@Raastech
 This presentation is based off of
Chapter 5 of Oracle SOA Suite 12c
Administrator’s Guide
https://www.packtpub.com/applicatio
n-development/oracle-soa-suite-
12c-administrators-guide
My Book
© Raastech, Inc. 2015 | All rights reserved. Slide 74 of 75@Raastech
Contact Information
 Ahmed Aboulnaga
 Technical Director
 @Ahmed_Aboulnaga
 ahmed.aboulnaga@raastech.com
© Raastech, Inc. 2015 | All rights reserved. Slide 75 of 75@Raastech
Q&A

More Related Content

PDF
Authorisations in SAP: best practices
PPT
Understand sap
PDF
Enterprise Architecture using TOGAF 's ADM - Architecture Delivery Method (...
PDF
PMP PMBok 5th ch 5 scope management
PPTX
2. SAP Over All Finance Presentation.pptx
PDF
Business Process Management 101 Training
DOC
SAP Technical Consultant CV
PDF
Google Scholar's citation graph: comprehensive, global... and inaccessible
Authorisations in SAP: best practices
Understand sap
Enterprise Architecture using TOGAF 's ADM - Architecture Delivery Method (...
PMP PMBok 5th ch 5 scope management
2. SAP Over All Finance Presentation.pptx
Business Process Management 101 Training
SAP Technical Consultant CV
Google Scholar's citation graph: comprehensive, global... and inaccessible

What's hot (20)

PDF
Treinamento sap co controlling
PDF
Effective GOVERNANCE in Project Portfolio Management
PDF
PMBOK® Guide 5th edition Processes Flow in English
PPTX
SAP SAP Project Systems_capabilities.pptx
PPT
SAP FICO Online Training
DOC
SAP FI Configuration guide and enduser manual
PPTX
SAP overview.pptx
PDF
SAP FICO_end user manual.pdf
PDF
ISO 20000-1:2018 Awareness and Auditor Training PPT Presentation kit for ITSM
PDF
Apqc business improvement
PPTX
Audit clauses in IT agreements
PPTX
SAP Payroll Control Center: how to eliminate payroll data errors in no time
PDF
Senior Management Service Desk Report Sample
PDF
IT Relationship Management Roadmap
PPTX
Presentation safe-core values
PDF
2007 how to use sap project system for revenue recognition in professional se...
PDF
Finit solutions - Automating Data Loads with FDMEE
PPT
Sap Implementation Presentation
PPT
The Evolving Role of the Business Analyst
PPTX
SAP HCM Consultant
Treinamento sap co controlling
Effective GOVERNANCE in Project Portfolio Management
PMBOK® Guide 5th edition Processes Flow in English
SAP SAP Project Systems_capabilities.pptx
SAP FICO Online Training
SAP FI Configuration guide and enduser manual
SAP overview.pptx
SAP FICO_end user manual.pdf
ISO 20000-1:2018 Awareness and Auditor Training PPT Presentation kit for ITSM
Apqc business improvement
Audit clauses in IT agreements
SAP Payroll Control Center: how to eliminate payroll data errors in no time
Senior Management Service Desk Report Sample
IT Relationship Management Roadmap
Presentation safe-core values
2007 how to use sap project system for revenue recognition in professional se...
Finit solutions - Automating Data Loads with FDMEE
Sap Implementation Presentation
The Evolving Role of the Business Analyst
SAP HCM Consultant
Ad

Viewers also liked (11)

PDF
Best Practices for Building an Enterprise SOA Infrastructure on Oracle SOA Suite
PDF
Oracle soa suite 12c upgrade types
PDF
The Road to Oracle SOA Suite 12c
PDF
An Unbiased Look: Oracle SOA Suite 12c
PDF
Upgrading to Oracle SOA 12.1 & 12.2 - Practical Steps and Project Experiences
PDF
Developing Oracle Fusion Middleware Applications in the Cloud
PDF
Oracle SOA Development - Hands-On from Start to Finish
PDF
Jenkins CI
PPT
Continuous Integration (Jenkins/Hudson)
PPTX
Oracle soa suite 11g introduction slide share
PPTX
Your first step by step tutorial for oracle SOA
Best Practices for Building an Enterprise SOA Infrastructure on Oracle SOA Suite
Oracle soa suite 12c upgrade types
The Road to Oracle SOA Suite 12c
An Unbiased Look: Oracle SOA Suite 12c
Upgrading to Oracle SOA 12.1 & 12.2 - Practical Steps and Project Experiences
Developing Oracle Fusion Middleware Applications in the Cloud
Oracle SOA Development - Hands-On from Start to Finish
Jenkins CI
Continuous Integration (Jenkins/Hudson)
Oracle soa suite 11g introduction slide share
Your first step by step tutorial for oracle SOA
Ad

Similar to Deploying to Oracle SOA Suite 12c - Everything You Need To Know (20)

PDF
ORACLE SOA Admin Online Training.pdf
PPT
SOA 11g Foundation - 01.1 -SOA Overview.ppt
PDF
Upgrading Oracle SOA Suite to 11g: A Real-World Success Story
PPTX
Oracle SOA Training |Oracle SOA Demo Video
PDF
OFM SOA Suite 11g - Quick Start Guide
PDF
Hands-On with Oracle SOA
PDF
An Unbiased Look: Oracle SOA Suite 12c
PDF
Oracle OSB Tutorial 1
PDF
SOA_BPM_12c_launch_event_SOA_track_deepdive_developerproductivityandperforman...
PDF
What Every Client Should Do on Their Oracle SOA Projects
PPTX
Oracle fusion middleware training with placements and certification
PDF
Oracle SOA Tips & Tricks
PDF
What Every Client Should Do On Their Oracle SOA Projects (article)
PDF
Soa suite12c presentation @AMIS by Simone Geib
PDF
Getting Started with Security for your Oracle SOA Suite Integrations
PDF
SOA Suite 12c Customer implementation
PDF
Soa enablement
PDF
What Every Client Should Do On Their Oracle SOA Projects (whitepaper)
DOCX
Soa admin training
DOCX
Soa admin training
ORACLE SOA Admin Online Training.pdf
SOA 11g Foundation - 01.1 -SOA Overview.ppt
Upgrading Oracle SOA Suite to 11g: A Real-World Success Story
Oracle SOA Training |Oracle SOA Demo Video
OFM SOA Suite 11g - Quick Start Guide
Hands-On with Oracle SOA
An Unbiased Look: Oracle SOA Suite 12c
Oracle OSB Tutorial 1
SOA_BPM_12c_launch_event_SOA_track_deepdive_developerproductivityandperforman...
What Every Client Should Do on Their Oracle SOA Projects
Oracle fusion middleware training with placements and certification
Oracle SOA Tips & Tricks
What Every Client Should Do On Their Oracle SOA Projects (article)
Soa suite12c presentation @AMIS by Simone Geib
Getting Started with Security for your Oracle SOA Suite Integrations
SOA Suite 12c Customer implementation
Soa enablement
What Every Client Should Do On Their Oracle SOA Projects (whitepaper)
Soa admin training
Soa admin training

More from Revelation Technologies (20)

PDF
Operating System Security in the Cloud
PDF
Getting Started with Terraform
PDF
Getting Started with API Management
PDF
Automating Cloud Operations: Everything You Wanted to Know about cURL and REST
PDF
Getting Started with API Management – Why It's Needed On-prem and in the Cloud
PDF
Automating Cloud Operations - Everything you wanted to know about cURL and RE...
PDF
Introducing the Oracle Cloud Infrastructure (OCI) Best Practices Framework
PDF
Everything You Need to Know About the Microsoft Azure and Oracle Cloud Interc...
PDF
PTK Issue 72: Delivering a Platform on Demand
PDF
PTK Issue 71: The Compute Cloud Performance Showdown
PDF
Everything You Need to Know About the Microsoft Azure and Oracle Cloud Interc...
PDF
Compute Cloud Performance Showdown: 18 Months Later (OCI, AWS, IBM Cloud, GCP...
PDF
Compute Cloud Performance Showdown: 18 Months Later (OCI, AWS, IBM Cloud, GCP...
PDF
The Microsoft Azure and Oracle Cloud Interconnect Everything You Need to Know
PDF
Cloud Integration Strategy
PDF
Compute Cloud Performance Showdown: Amazon Web Services, Oracle Cloud, IBM ...
PDF
Securing your Oracle Fusion Middleware Environment, On-Prem and in the Cloud
PDF
Hands-On with Oracle SOA Cloud Service
PDF
Oracle BPM Suite Development: Getting Started
PDF
Developing Web Services from Scratch - For DBAs and Database Developers
Operating System Security in the Cloud
Getting Started with Terraform
Getting Started with API Management
Automating Cloud Operations: Everything You Wanted to Know about cURL and REST
Getting Started with API Management – Why It's Needed On-prem and in the Cloud
Automating Cloud Operations - Everything you wanted to know about cURL and RE...
Introducing the Oracle Cloud Infrastructure (OCI) Best Practices Framework
Everything You Need to Know About the Microsoft Azure and Oracle Cloud Interc...
PTK Issue 72: Delivering a Platform on Demand
PTK Issue 71: The Compute Cloud Performance Showdown
Everything You Need to Know About the Microsoft Azure and Oracle Cloud Interc...
Compute Cloud Performance Showdown: 18 Months Later (OCI, AWS, IBM Cloud, GCP...
Compute Cloud Performance Showdown: 18 Months Later (OCI, AWS, IBM Cloud, GCP...
The Microsoft Azure and Oracle Cloud Interconnect Everything You Need to Know
Cloud Integration Strategy
Compute Cloud Performance Showdown: Amazon Web Services, Oracle Cloud, IBM ...
Securing your Oracle Fusion Middleware Environment, On-Prem and in the Cloud
Hands-On with Oracle SOA Cloud Service
Oracle BPM Suite Development: Getting Started
Developing Web Services from Scratch - For DBAs and Database Developers

Recently uploaded (20)

PPTX
Big Data Technologies - Introduction.pptx
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PDF
Encapsulation theory and applications.pdf
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPTX
MYSQL Presentation for SQL database connectivity
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Machine learning based COVID-19 study performance prediction
PDF
Approach and Philosophy of On baking technology
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Electronic commerce courselecture one. Pdf
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
cuic standard and advanced reporting.pdf
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
Big Data Technologies - Introduction.pptx
“AI and Expert System Decision Support & Business Intelligence Systems”
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
Encapsulation theory and applications.pdf
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
MYSQL Presentation for SQL database connectivity
NewMind AI Weekly Chronicles - August'25 Week I
Mobile App Security Testing_ A Comprehensive Guide.pdf
Chapter 3 Spatial Domain Image Processing.pdf
Machine learning based COVID-19 study performance prediction
Approach and Philosophy of On baking technology
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Electronic commerce courselecture one. Pdf
Encapsulation_ Review paper, used for researhc scholars
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
cuic standard and advanced reporting.pdf
Building Integrated photovoltaic BIPV_UPV.pdf

Deploying to Oracle SOA Suite 12c - Everything You Need To Know

  • 1. Raastech, Inc. 2201 Cooperative Way, Suite 600 Herndon, VA 20171 +1-703-884-2223 info@raastech.com Deploying to Oracle SOA Suite 12c Everything You Need To Know Monday, December 7, 2015 12:20 - 13:10 Media Suite B
  • 2. © Raastech, Inc. 2015 | All rights reserved. Slide 2 of 75@Raastech Agenda 1. Introductions 2. SOA Composites 3. OSB Projects 4. BAM Objects 5. MDS Artifacts 6. Alternatives 7. Final Thoughts
  • 3. © Raastech, Inc. 2015 | All rights reserved. Slide 3 of 75@Raastech
  • 4. © Raastech, Inc. 2015 | All rights reserved. Slide 4 of 75@Raastech About Me  Ahmed Aboulnaga @Ahmed_Aboulnaga  18+ years Oracle experience  Author of “Oracle SOA Suite 11g Administrator’s Handbook”  Author of “Oracle SOA Suite 12c Administrator’s Guide”  OCE (SOA Foundation Practitioner)  OCE (Oracle SOA Architect)  Oracle ACE
  • 5. © Raastech, Inc. 2015 | All rights reserved. Slide 5 of 75@Raastech About Raastech  Small systems integrator founded in 2009  Headquartered in the Washington DC area  Specializes in Oracle Fusion Middleware  Oracle Platinum Partner 1 in 3,000 worldwide  Oracle SOA Specialized 1 in 1,500 worldwide  Oracle ACEs 2 in 600 worldwide
  • 6. © Raastech, Inc. 2015 | All rights reserved. Slide 6 of 75@Raastech Why This Presentation  For the administrator  Detail actual deployment instructions in hopes of lowering complexity  Discuss some alternatives
  • 7. © Raastech, Inc. 2015 | All rights reserved. Slide 7 of 75@Raastech
  • 8. © Raastech, Inc. 2015 | All rights reserved. Slide 8 of 75@Raastech  Through Oracle Enterprise Manager Fusion Middleware Control  Must have the JAR file ready to go Console
  • 9. © Raastech, Inc. 2015 | All rights reserved. Slide 9 of 75@Raastech  Entry logged in soa_server1.out  Service becomes available immediately – Web service immediately available – Inbound service starts consuming immediately Console [2015-02-01T16:13:18.092-05:00] [soa_server1] [NOTIFICATION] [] [oracle.integration.platform.blocks.deploy] [tid: DaemonWorkThread: '2' of WorkManager: 'wm/SOAWorkManager'] [userId: <anonymous>] [ecid: 9027493d-b37d-4795-a996- 331a7c6ae275-00000004,0:513] [APP: soa-infra] Publishing deploy event for default/HelloWorld!1.0*soa_d91d1c4c-7a7b- 4405-9b6e-6dd5a053bfbb
  • 10. © Raastech, Inc. 2015 | All rights reserved. Slide 10 of 75@Raastech  Create setAntEnv.sh Ant | Step 1: Create 1-Time Environment Script export USERNAME=weblogic export PASSWORD=welcome1 export SOAHOST=soahost1 export SOAPORT=8001 export SOAURL=http://${SOAHOST}:${SOAPORT} export CODE=/home/oracle/code export MW_HOME=/u01/app/oracle/middleware export ORACLE_HOME=$MW_HOME/soa export JAVA_HOME=$MW_HOME/jdk1.7.0_15 export ANT_HOME=$MW_HOME/oracle_common/modules/org.apache.ant_1.9.2 export PATH=$JAVA_HOME/bin:$ANT_HOME/bin:$ANT_HOME/lib:$PATH:.
  • 11. © Raastech, Inc. 2015 | All rights reserved. Slide 11 of 75@Raastech  Package composite Ant | Step 2: Package Composite cd $ORACLE_HOME/bin ant -f ant-sca-package.xml package -DcompositeDir=$CODE/HelloW/SOA -DcompositeName=HelloW -Drevision=1.0
  • 12. © Raastech, Inc. 2015 | All rights reserved. Slide 12 of 75@Raastech  Deploy composite Ant | Step 3: Deploy Composite ant -f ant-sca-deploy.xml deploy -DserverURL=$SOAURL/soa-infra/deployer -Duser=$USERNAME -Dpassword=$PASSWORD -DsarLocation=$CODE/HelloW/SOA/deploy/sca_HelloW_rev1.0.jar -Dpartition=default -Doverwrite=true -DforceDefault=true
  • 13. © Raastech, Inc. 2015 | All rights reserved. Slide 13 of 75@Raastech  WebLogic Scripting Tool  Set environment and connect to WLST WLST | Step 1: Start WLST Shell export MW_HOME=/u01/app/oracle/middleware export ORACLE_HOME=$MW_HOME/soa cd $ORACLE_HOME/bin $ORACLE_HOME/common/bin/wlst.sh wls:/offline> wls:/offline>connect()
  • 14. © Raastech, Inc. 2015 | All rights reserved. Slide 14 of 75@Raastech  Package composite  Deploy composite WLST | Step 2: Package and Deploy with WLST sca_package ("/home/oracle/code/HelloW/SOA", "HelloW", "1.0", oracleHome="/u01/app/oracle/middleware/soa") sca_deployComposite ("http://soahost1:8001", "/home/oracle/code/HelloW/SOA/deploy/sca_HelloW_rev1.0.jar", true, user="weblogic", password="welcome1", partition="default")
  • 15. © Raastech, Inc. 2015 | All rights reserved. Slide 15 of 75@Raastech  WLST commands actually call underlying Ant scripts  Must use the HTTP protocol WLST Considerations
  • 16. © Raastech, Inc. 2015 | All rights reserved. Slide 16 of 75@Raastech  Promoting code to higher environments may require modifying URLs  FYI: Configuration plans don’t work with XSLT artifacts Configuration Plans
  • 17. © Raastech, Inc. 2015 | All rights reserved. Slide 17 of 75@Raastech Configuration Plans: The Code <reference name="HelloWorldBPEL_BPEL" ui:wsdlLocation="http://soa12cdev:8001/soa-infra/services/default/HelloWorldBPEL/HW.wsdl"> <interface.wsdl interface="http://xmlns.oracle.com/SOA12c/HelloWorldBPEL/HW#wsdl.interface(HW)"/> <binding.ws port="http://xmlns.oracle.com/SOA12c/HelloWorldBPEL/HW#wsdl.endpoint(hw_client_ep/hw_pt)" location="http://soa12cdev:8001/soa-infra/services/default/HelloWorldBPEL/hw_client_ep?WSDL" soapVersion="1.1"> <property name="weblogic.wsee.wsat.transaction.flowOption" type="xs:string" many="false">WSDLDriven</property> </binding.ws> </reference> <reference name="HelloWorld_BPEL" ui:wsdlLocation="http://soa12cDEV:8001/soa-infra/services/default/HelloWorldBPEL/HW.wsdl"> <interface.wsdl interface="http://xmlns.oracle.com/SOA12c/HelloWorldBPEL/HW#wsdl.interface(HW)"/> </reference>  composite.xml  Mediator1.componentType
  • 18. © Raastech, Inc. 2015 | All rights reserved. Slide 18 of 75@Raastech Configuration Plans: The Test Plan <?xml version="1.0" encoding="UTF-8"?> <SOAConfigPlan xmlns:jca="http://platform.integration.oracle/blocks/adapter/fw/metadata" ... > <composite name="*"> <import> <searchReplace> <search>http://soa12cDEV:8001</search> <replace>http://soa12cTEST:8001</replace> </searchReplace> </import> <reference name="*"> <binding type="ws"> <attribute name="location"> <searchReplace> <search>http://soa12cDEV:8001</search> <replace>http://soa12cTEST:8001</replace> </searchReplace> </attribute> </binding> </reference> </composite> </SOAConfigPlan>  cfgplan_test.xml
  • 19. © Raastech, Inc. 2015 | All rights reserved. Slide 19 of 75@Raastech Configuration Plans: The Test Plan <import> <searchReplace> <search>http://soa12cDEV:8001</search> <replace>http://soa12cTEST:8001</replace> </searchReplace> </import> <reference name="*"> <binding type="ws"> <attribute name="location"> <searchReplace> <search>http://soa12cDEV:8001</search> <replace>http://soa12cTEST:8001</replace> </searchReplace> </attribute> </binding> </reference>  cfgplan_test.xml
  • 20. © Raastech, Inc. 2015 | All rights reserved. Slide 20 of 75@Raastech  Deploy composite Ant – Using a Configuration Plan ant -f ant-sca-deploy.xml deploy -DserverURL=$SOAURL/soa-infra/deployer -Duser=$USERNAME -Dpassword=$PASSWORD -DsarLocation=$CODE/HelloW/SOA/deploy/sca_HelloW_rev1.0.jar -Dpartition=default -Doverwrite=true -DforceDefault=true -Dconfigplan=/tmp/cfgplan_test.xml
  • 21. © Raastech, Inc. 2015 | All rights reserved. Slide 21 of 75@Raastech
  • 22. © Raastech, Inc. 2015 | All rights reserved. Slide 22 of 75@Raastech  Through Oracle Service Bus Console (http://host:7001/servicebus)  Must have the JAR file ready to go  Right-click on “All Projects” and navigate to “Import > Config Jar” Console
  • 23. © Raastech, Inc. 2015 | All rights reserved. Slide 23 of 75@Raastech Console only deployment? Really?!
  • 24. © Raastech, Inc. 2015 | All rights reserved. Slide 24 of 75@Raastech WLST | Step 1: Set Up Environment
  • 25. © Raastech, Inc. 2015 | All rights reserved. Slide 25 of 75@Raastech WLST | Step 2: Create Customization File
  • 26. © Raastech, Inc. 2015 | All rights reserved. Slide 26 of 75@Raastech WLST | Step 3: Create Property File
  • 27. © Raastech, Inc. 2015 | All rights reserved. Slide 27 of 75@Raastech WLST | Step 4: Download import.py
  • 28. © Raastech, Inc. 2015 | All rights reserved. Slide 28 of 75@Raastech WLST | Step 5: Import OSB Service
  • 29. © Raastech, Inc. 2015 | All rights reserved. Slide 29 of 75@Raastech  Similar to configuration plans for SOA composites  Not a search-replace like SOA configuration plans, but rather a ‘replace’ only OSB Customization Files
  • 30. © Raastech, Inc. 2015 | All rights reserved. Slide 30 of 75@Raastech OSB Customization Files <cus:customization xsi:type="cus:EnvValueActionsCustomizationType"> <cus:actions> <xt:replace> <xt:envValueType>Service URI Table</xt:envValueType> <xt:value xsi:type="tran:URITableType" xmlns:tran="http://www.bea.com/wli/sb/transports"> <tran:tableElement> <tran:URI>jms://soa12cDEV:8001/weblogic.jms.XAConnectionFactory/jms/OrderQ</tran:URI> </tran:tableElement> </xt:value> </xt:replace> <xt:replace> <xt:envValueType>Service Retry Count</xt:envValueType> <xt:value xsi:type="xs:string" xmlns:xs="http://www.w3.org/2001/XMLSchema">3</xt:value> </xt:replace> </cus:actions> </cus:customization>
  • 31. © Raastech, Inc. 2015 | All rights reserved. Slide 31 of 75@Raastech  Initially create a customization file through the OSB Console  Click on “Admin” then “Create Configuration File” OSB Customization Files – Creating
  • 32. © Raastech, Inc. 2015 | All rights reserved. Slide 32 of 75@Raastech  Apply a customization file through the OSB Console post-deployment  Click on “Create” then “Admin” then “Execute Configuration File” OSB Customization Files – Applying via Console
  • 33. © Raastech, Inc. 2015 | All rights reserved. Slide 33 of 75@Raastech
  • 34. © Raastech, Inc. 2015 | All rights reserved. Slide 34 of 75@Raastech  BAM development begins on the server (i.e., via the BAM Console)  Deployment involves exporting then importing  BAM artifacts include: data objects, business queries, KPIs, business views, dashboards, alerts, parameters  BamCommand (12c) is the successor of ICommand (10g/11g)  To migrate between major releases: http://docs.oracle.com/middleware/1213/core/FUPSS/bam.htm#FUPSS256 BAM Deployment Overview
  • 35. © Raastech, Inc. 2015 | All rights reserved. Slide 35 of 75@Raastech Step 1: Set up Environment export CODE=/home/oracle/bamcode export MW_HOME=/u01/app/oracle/middleware export JAVA_HOME=$MW_HOME/jdk1.7.0_15 export PATH=$MW_HOME/soa/bam/bin:$PATH:.  Create setBAMEnv.sh
  • 36. © Raastech, Inc. 2015 | All rights reserved. Slide 36 of 75@Raastech Step 2: Update Configuration File <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <BAMCommandConfig> <host>bamhost1</host> <port>9001</port> <username>weblogic</username> <password>welcome1</password> <!-- Below fields only needed when using -migrate --> <dbusername>DEV_SOAINFRA</dbusername> <dbpassword>welcome1</dbpassword> <dburl>jdbc:oracle:thin:@soadb:1521:orcl</dburl> </BAMCommandConfig>  Edit BAMCommandConfig.xml  Located in $MW_HOME/soa/bam/bin
  • 37. © Raastech, Inc. 2015 | All rights reserved. Slide 37 of 75@Raastech Step 3: Export/Import BAM Artifacts source setBAMEnv.sh bamcommand -cmd export -name "Hello/World" -file "$CODE/World.zip" bamcommand -cmd import -file "$CODE/World.zip"  In 12c, it no longer needed to explicitly specify the object type
  • 38. © Raastech, Inc. 2015 | All rights reserved. Slide 38 of 75@Raastech BAM Command File vi command.xml <?xml version="1.0" encoding="utf-8"?> <OracleBAMCommands continueonerror="1"> <Export name="Test/Hello World" file="Hello World.xml" contents="0" /> <Rename name="Test/Foo" newdisplayname="Bar" /> <Delete type="EMS" name="ApacheLog" /> </OracleBAMCommands> source setBAMEnv.sh bamcommand -cmdfile "command.xml"  Perform multiple operations using the BAM command file  Limited to <Export>, <Delete>, and <Rename>
  • 39. © Raastech, Inc. 2015 | All rights reserved. Slide 39 of 75@Raastech
  • 40. © Raastech, Inc. 2015 | All rights reserved. Slide 40 of 75@Raastech  Shared XSD, WSDL, DVM, WADL, XQuery, and XML files are stored in the MDS  Accessible via the ORAMDS protocol from the code. For example:  Local DVM in XSL file: dvm:lookupValue("LANGUAGECODE.dvm", "EBIZ", "", "RETAIL", "")  Shared DVM in XSL file: dvm:lookupValue("oramds:/apps/AIAMetaData/dvm/LANGUAGECODE.dvm", "EBIZ", "", "RETAIL", "")  Local XSD in WSDL file: <xsd:import namespace="http://xmlns.oracle.com/bpel" schemaLocation="xsd/Customer.xsd"/>  Shared XSD in WSDL file: <xsd:import namespace="http://xmlns.oracle.com/bpel" schemaLocation="oramds:/apps/shared/Customer.xsd"/> What are MDS artifacts?
  • 41. © Raastech, Inc. 2015 | All rights reserved. Slide 41 of 75@Raastech Step 1: Exporting MDS Artifacts source setAntEnv.sh cd $ORACLE_HOME/bin ant -f ant-sca-deploy.xml exportSharedData -DserverURL=$SOAURL/soa-infra/deployer -Duser=$USERNAME -Dpassword=$PASSWORD -DjarFile=SOAMetaData.jar -Dpattern=**  Output is a SOAMetaData.jar file
  • 42. © Raastech, Inc. 2015 | All rights reserved. Slide 42 of 75@Raastech Step 1: Defining Patterns  For example: /apps/SOAMetaData/dvm/** /apps/SOAMetaData/faultPolicies/** **  Delimiter is ;
  • 43. © Raastech, Inc. 2015 | All rights reserved. Slide 43 of 75@Raastech Step 2: Zip Local Content to SOAMetaData.jar cd /tmp/svn zip -r SOAMetaData.jar SOAMetaData
  • 44. © Raastech, Inc. 2015 | All rights reserved. Slide 44 of 75@Raastech Step 3: Import to MDS source setAntEnv.sh cd $ORACLE_HOME/bin ant -f ant-sca-deploy.xml deploy -Dwl_home=$MW_HOME/wlserver -Doracle.home=$ORACLE_HOME -DserverURL=$SOAURL/soa-infra/deployer -Duser=$USERNAME -Dpassword=$PASSWORD -Doverwrite=true -DforceDefault=true -DsarLocation=SOAMetaData.jar
  • 45. © Raastech, Inc. 2015 | All rights reserved. Slide 45 of 75@Raastech Transfer to MDS from JDeveloper * Screenshots courtesy of https://technology.amis.nl/2014/06/27/soa-suite-12c-deploying-shared-artifacts-to-run-time-mds-the-official-approach-and-the-quick-short-cut
  • 46. © Raastech, Inc. 2015 | All rights reserved. Slide 46 of 75@Raastech
  • 47. © Raastech, Inc. 2015 | All rights reserved. Slide 47 of 75@Raastech Custom Developed Solution – MDS Artifacts
  • 48. © Raastech, Inc. 2015 | All rights reserved. Slide 48 of 75@Raastech Custom Developed Solution – Oracle SOA Suite
  • 49. © Raastech, Inc. 2015 | All rights reserved. Slide 49 of 75@Raastech Custom Developed Solution – Oracle SOA Suite build,MyApp-Release1.1 MDS,Ahmed.xsd,mds/ApplicationObjectLibrary/Common,129 SOA,HelloWorldBPEL,default,1.0,true,soa/trunk/HelloWorldBPEL,126 OSB,HelloWorldOSB.jar,osb/trunk/HelloWorldOSB,527 DEP,Create JMS distributed queue: jms/OrderQ SQL,sql/trunk/CreateErrorTable.sql,527 BAM,/Project1/ErrorDO,bam/trunk/ErrorDO.xml,dataobject,true,527 BAM,/public/Report/Error Report,bam/trunk/Report1.xml,report,false,549 BAM,/private:usr/Rule/My Alert/Error,bam/trunk/Error.xml,rule,false,919  Deploy List; creates a bundled deployment
  • 50. © Raastech, Inc. 2015 | All rights reserved. Slide 50 of 75@Raastech Custom Developed Solution – Oracle SOA Suite
  • 51. © Raastech, Inc. 2015 | All rights reserved. Slide 51 of 75@Raastech Custom Developed Solution – Oracle SOA Suite
  • 52. © Raastech, Inc. 2015 | All rights reserved. Slide 52 of 75@Raastech Custom Developed Solution – Oracle SOA Suite
  • 53. © Raastech, Inc. 2015 | All rights reserved. Slide 53 of 75@Raastech Custom Developed Solution – Oracle SOA Suite oracle@soadevhost:/home/oracle/deploy> ./deploy.sh soa-dev ╔══════════════════════════════════════════════════════════════════════════════╗ ║ Deployment Process Started ║ ╚══════════════════════════════════════════════════════════════════════════════╝ ┌─────────────────────────────────────────────────────────────────────────────── │ Deployment Facts ├─────────────────────────────────────────────────────────────────────────────── │ TARGET: soa-dev │ LOGS HOME: /home/oracle/deploy/log_logs/deploy.sh_20151126_190104_18088 │ PROCESS_LIST: /home/oracle/deploy/CodeList.txt └─────────────────────────────────────────────────────────────────────────────── ┌─────────────────────────────────────────────────────────────────────────────── │ SOA build START for row #1 ├─────────────────────────────────────────────────────────────────────────────── │ CHECKOUT: HelloWorld │ ERROR: Unable to checkout. Check: /home/oracle/deploy/log_logs/deploy.sh_20151126_190121_1348/01_checkout.log log file for errors. │ USER INPUT: Continue remaining deployments yes or no? [N]Y ├─────────────────────────────────────────────────────────────────────────────── │ SOA build COMPLETE for row #1 └─────────────────────────────────────────────────────────────────────────────── ┌─────────────────────────────────────────────────────────────────────────────── │ Build Cleanup Started ├─────────────────────────────────────────────────────────────────────────────── │ USER INPUT: Remove build logs yes or no? [Y]N ├─────────────────────────────────────────────────────────────────────────────── │ Build Cleanup Completed └───────────────────────────────────────────────────────────────────────────────
  • 54. © Raastech, Inc. 2015 | All rights reserved. Slide 54 of 75@Raastech Custom Developed Solution – Oracle SOA Suite oracle@soadevhost:/home/oracle/deploy> ./deploy.sh soa-dev ╔══════════════════════════════════════════════════════════════════════════════╗ ║ Deployment Process Started ║ ╚══════════════════════════════════════════════════════════════════════════════╝ ┌─────────────────────────────────────────────────────────────────────────────── │ Deployment Facts ├─────────────────────────────────────────────────────────────────────────────── │ TARGET: soa-dev │ LOGS HOME: /home/oracle/deploy/log_logs/deploy.sh_20151126_190145_5390 │ PROCESS_LIST: /home/oracle/deploy/CodeList.txt └─────────────────────────────────────────────────────────────────────────────── ┌─────────────────────────────────────────────────────────────────────────────── │ SOA build START for row #1 ├─────────────────────────────────────────────────────────────────────────────── │ CHECKOUT: HelloWorld │ DETOKENIZE: HelloWorld │ DEPLOY: HelloWorld ├─────────────────────────────────────────────────────────────────────────────── │ SOA build COMPLETE for row #1 └─────────────────────────────────────────────────────────────────────────────── ┌─────────────────────────────────────────────────────────────────────────────── │ Build Cleanup Started ├─────────────────────────────────────────────────────────────────────────────── │ USER INPUT: Remove build logs yes or no? [Y]N ├─────────────────────────────────────────────────────────────────────────────── │ Build Cleanup Completed └───────────────────────────────────────────────────────────────────────────────
  • 55. © Raastech, Inc. 2015 | All rights reserved. Slide 55 of 75@Raastech http://flexagon.com/category/flexdeploy/ FlexDeploy from
  • 56. © Raastech, Inc. 2015 | All rights reserved. Slide 56 of 75@Raastech Maven Plug-In  Oracle SOA Suite Maven plug-in  Requires a POM (Project Object Model) file (pom.xml)  Maven plug-in goals: – compile (scac) – package (sar) – deploy – test (sca-test) – undeploy  Maven 3.0.5 included in Oracle Fusion Middleware installation here: $MW_HOME/Oracle_Home/oracle_common/modules/org.apache.maven_3.0.5
  • 57. © Raastech, Inc. 2015 | All rights reserved. Slide 57 of 75@Raastech Maven – Project
  • 58. © Raastech, Inc. 2015 | All rights reserved. Slide 58 of 75@Raastech Maven – Compilation
  • 59. © Raastech, Inc. 2015 | All rights reserved. Slide 59 of 75@Raastech Maven – Deployment
  • 60. © Raastech, Inc. 2015 | All rights reserved. Slide 60 of 75@Raastech Maven – OSB App from a Maven Archetype  To create a new Oracle Service Bus application (containing an OSB Project and an OSB System Resources project) using the OSB Application Maven archetype, execute a command similar to the following: mvn archetype:generate -DarchetypeGroupId=com.oracle.servicebus -DarchetypeArtifactId=oracle-servicebus-application -DarchetypeVersion=12.1.3-0-0 -DgroupId=org.mycompany -DartifactId=my-servicebus-application -Dversion=1.0-SNAPSHOT -DprojectName=my-project
  • 61. © Raastech, Inc. 2015 | All rights reserved. Slide 61 of 75@Raastech Maven – OSB App from a Maven Archetype  After creating your application, it contains the following files:
  • 62. © Raastech, Inc. 2015 | All rights reserved. Slide 62 of 75@Raastech Maven – OSB App from a Maven Archetype  To build the SBAR file, execute the following command:  The preceding command creates an SBAR file from your project and places it in:  To deploy the SBAR file, execute the following command: mvn package -DoracleHome=/path/to/osbhome project/.data/maven/sbconfig.sbar mvn pre-integration-test -DoracleServerUrl=http://osbdev:7001 -DoracleUsername=weblogic -DoraclePassword=welcome1 Service Bus archive
  • 63. © Raastech, Inc. 2015 | All rights reserved. Slide 63 of 75@Raastech Why Maven?  Maven better at managing dependencies (and can download dependencies over the network)  Ant is better at controlling of build process  Ant adopted Apache Ivy to help in dependency management – http://ant.apache.org/ivy/ When to use Maven When to use Ant Large team of “creative” developers and need structure No need for fine-grained dependency management Building a product-like application Quick or one-off development Many dependent modules Not much modularized code
  • 64. © Raastech, Inc. 2015 | All rights reserved. Slide 64 of 75@Raastech Maven | Some Cool Links  https://redstack.wordpress.com/2014/10/22/soa-12c-maven- demonstration-from-openworld-2014/  http://biemond.blogspot.nl/2014/06/maven-support-for-1213-service- bus-soa.html  https://svgonugu.wordpress.com/2015/02/18/soa-12c-using-maven-for- soa-projects-deployment/ * Maven screenshots borrowed from the links above
  • 65. © Raastech, Inc. 2015 | All rights reserved. Slide 65 of 75@Raastech Ant Tokenization/Detokenization <reference name="HelloWorldBPEL_BPEL" ui:wsdlLocation="@SOAServer@/soa-infra/.../> <interface.wsdl interface="http://xmlns.oracle.com/SOA12c/.../> <binding.ws port="http://xmlns.oracle.com/SOA12c/HelloWorldBPEL/..." location=" @SOAServer@/soa-infra/services/..." soapVersion="1.1"> <property name="weblogic.wsee.wsat.transaction.flowOption" type="xs:string" many="false">WSDLDriven</property> </binding.ws> </reference>  Developers tokenize code before checking it in
  • 66. © Raastech, Inc. 2015 | All rights reserved. Slide 66 of 75@Raastech Ant Tokenization/Detokenization <reference name="HelloWorldBPEL_BPEL" ui:wsdlLocation="http://soa12cdev:8001/soa-infra/.../> <interface.wsdl interface="http://xmlns.oracle.com/SOA12c/.../> <binding.ws port="http://xmlns.oracle.com/SOA12c/HelloWorldBPEL/..." location="http://soa12cdev:8001/soa-infra/services/..." soapVersion="1.1"> <property name="weblogic.wsee.wsat.transaction.flowOption" type="xs:string" many="false">WSDLDriven</property> </binding.ws> </reference>  Admins detokenize code before packaging/deployment
  • 67. © Raastech, Inc. 2015 | All rights reserved. Slide 67 of 75@Raastech Ant Tokenization/Detokenization  Use standard Any replace functionality to tokenize/detokenize code ant -f build.soa.xml detokenizeComposites -Dtargetenv=${env}  Can apply to all file types <replace dir="${svn.localdir}/soa/${folder.name}" summary="true"> <include name="**/*.xsd"/> <include name="**/*.XSD"/> . . <replacefilter token="@SOAServer@" value="${SOAServer}"/> <replacefilter token="@OSBServer@" value="${OSBServer}"/> . . </replace>
  • 68. © Raastech, Inc. 2015 | All rights reserved. Slide 68 of 75@Raastech Ant Tokenization/Detokenization  Ant script reads a token file <property file="${basedir}/props/soa-token-${targetenv}.props"/>  Property file for each environment maintains all values  Used in lieu of configuration plans and customization files  Single token file can apply to SOA, OSB, etc. projects. SOAServer = http://soadev:8001 OSBServer = http://soadev:8011 SOAServerJMS = jms://soadev:8001 MDSSchema = dev_mds MDSPassword = welcome1
  • 69. © Raastech, Inc. 2015 | All rights reserved. Slide 69 of 75@Raastech
  • 70. © Raastech, Inc. 2015 | All rights reserved. Slide 70 of 75@Raastech  Offline deployments – While the AdminServer and managed servers are down – Deployment done at startup  Bundle deployments – Cannot control deployment order, so don’t lump dependent SARs New in Oracle SOA Suite 12c
  • 71. © Raastech, Inc. 2015 | All rights reserved. Slide 71 of 75@Raastech  SOA composite deployment – Ant the way to go  OSB service deployment – No choice but WLST  BAM object deployment – Fortunately simple  MDS artifact import – Don’t forget about this!  Build a reusable front-end to your scripts, or consider a product such as FlexDeploy  Undeployments not detailed here, but very similar in concept Recap or Maven
  • 72. © Raastech, Inc. 2015 | All rights reserved. Slide 72 of 75@Raastech  Consistentizing (“to make consistent”, real word?) the detokenization and deployment of SOA, OSB, BAM, and MDS is unfortunately impossible, but think along the lines of a single property file  Have to worry about new components such ESS and ORIBA (Oracle Realtime Integration Business Analytics)  Just get a tool… don’t waste your time reinventing the wheel  Maven will pick up steam Final Thoughts Oracle needs to drive this
  • 73. © Raastech, Inc. 2015 | All rights reserved. Slide 73 of 75@Raastech  This presentation is based off of Chapter 5 of Oracle SOA Suite 12c Administrator’s Guide https://www.packtpub.com/applicatio n-development/oracle-soa-suite- 12c-administrators-guide My Book
  • 74. © Raastech, Inc. 2015 | All rights reserved. Slide 74 of 75@Raastech Contact Information  Ahmed Aboulnaga  Technical Director  @Ahmed_Aboulnaga  ahmed.aboulnaga@raastech.com
  • 75. © Raastech, Inc. 2015 | All rights reserved. Slide 75 of 75@Raastech Q&A