Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

3,281 views

Published on

This deep dive technical presentation focuses on deploying SOA composites, OSB services, MDS artifacts, and BAM objects to Oracle SOA Suite 12c, using the console, WLST, and Ant scripts. Taken from a snippet from my Oracle SOA Suite 12c Administrator's Guide from Packt Publishing, this is the most comprehensive explanation of deployment that administrators of Oracle SOA Suite 12c will find.

Published in: Technology
  • Be the first to comment

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

  1. 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. 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. 3. © Raastech, Inc. 2015 | All rights reserved. Slide 3 of 75@Raastech
  4. 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. 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. 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. 7. © Raastech, Inc. 2015 | All rights reserved. Slide 7 of 75@Raastech
  8. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 21. © Raastech, Inc. 2015 | All rights reserved. Slide 21 of 75@Raastech
  22. 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. 23. © Raastech, Inc. 2015 | All rights reserved. Slide 23 of 75@Raastech Console only deployment? Really?!
  24. 24. © Raastech, Inc. 2015 | All rights reserved. Slide 24 of 75@Raastech WLST | Step 1: Set Up Environment
  25. 25. © Raastech, Inc. 2015 | All rights reserved. Slide 25 of 75@Raastech WLST | Step 2: Create Customization File
  26. 26. © Raastech, Inc. 2015 | All rights reserved. Slide 26 of 75@Raastech WLST | Step 3: Create Property File
  27. 27. © Raastech, Inc. 2015 | All rights reserved. Slide 27 of 75@Raastech WLST | Step 4: Download import.py
  28. 28. © Raastech, Inc. 2015 | All rights reserved. Slide 28 of 75@Raastech WLST | Step 5: Import OSB Service
  29. 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. 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. 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. 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. 33. © Raastech, Inc. 2015 | All rights reserved. Slide 33 of 75@Raastech
  34. 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. 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. 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. 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. 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. 39. © Raastech, Inc. 2015 | All rights reserved. Slide 39 of 75@Raastech
  40. 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. 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. 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. 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. 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. 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. 46. © Raastech, Inc. 2015 | All rights reserved. Slide 46 of 75@Raastech
  47. 47. © Raastech, Inc. 2015 | All rights reserved. Slide 47 of 75@Raastech Custom Developed Solution – MDS Artifacts
  48. 48. © Raastech, Inc. 2015 | All rights reserved. Slide 48 of 75@Raastech Custom Developed Solution – Oracle SOA Suite
  49. 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. 50. © Raastech, Inc. 2015 | All rights reserved. Slide 50 of 75@Raastech Custom Developed Solution – Oracle SOA Suite
  51. 51. © Raastech, Inc. 2015 | All rights reserved. Slide 51 of 75@Raastech Custom Developed Solution – Oracle SOA Suite
  52. 52. © Raastech, Inc. 2015 | All rights reserved. Slide 52 of 75@Raastech Custom Developed Solution – Oracle SOA Suite
  53. 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. 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. 55. © Raastech, Inc. 2015 | All rights reserved. Slide 55 of 75@Raastech http://flexagon.com/category/flexdeploy/ FlexDeploy from
  56. 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. 57. © Raastech, Inc. 2015 | All rights reserved. Slide 57 of 75@Raastech Maven – Project
  58. 58. © Raastech, Inc. 2015 | All rights reserved. Slide 58 of 75@Raastech Maven – Compilation
  59. 59. © Raastech, Inc. 2015 | All rights reserved. Slide 59 of 75@Raastech Maven – Deployment
  60. 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. 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. 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. 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. 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. 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. 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. 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. 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. 69. © Raastech, Inc. 2015 | All rights reserved. Slide 69 of 75@Raastech
  70. 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. 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. 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. 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. 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. 75. © Raastech, Inc. 2015 | All rights reserved. Slide 75 of 75@Raastech Q&A

×