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.

Oracle SOA Development - Hands-On from Start to Finish

748 views

Published on

Bringing OWSM, OSB, BPEL, Mediator, and BAM all together to create an integration.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Oracle SOA Development - Hands-On from Start to Finish

  1. 1. Raastech, Inc. 2201 Cooperative Way, Suite 600 Herndon, VA 20171 +1-703-884-2223 info@raastech.com Oracle SOA Development Hands-On from Start to Finish Wednesday, November 18,2015 2:20 - 3:15 pm VT425
  2. 2. © Raastech, Inc. 2015 | All rights reserved. Slide 2 of 102@Raastech Agenda 1. Understanding Oracle Integration Products 2. Our “Integration” Use Case 3. Implementing the Solution 4. Summary
  3. 3. © Raastech, Inc. 2015 | All rights reserved. Slide 3 of 102@Raastech
  4. 4. © Raastech, Inc. 2015 | All rights reserved. Slide 4 of 102@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)  Oracle ACE
  5. 5. © Raastech, Inc. 2015 | All rights reserved. Slide 5 of 102@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 500 worldwide
  6. 6. © Raastech, Inc. 2015 | All rights reserved. Slide 6 of 102@Raastech
  7. 7. © Raastech, Inc. 2015 | All rights reserved. Slide 7 of 102@Raastech Oracle Fusion Middleware
  8. 8. © Raastech, Inc. 2015 | All rights reserved. Slide 8 of 102@Raastech  Oracle Fusion Apps  Oracle E-Business Suite  Oracle JD Edwards  Oracle PeopleSoft  Oracle Siebel  Oracle Retail  More… Oracle Fusion Middleware
  9. 9. © Raastech, Inc. 2015 | All rights reserved. Slide 9 of 102@Raastech  Oracle Database  Oracle MySQL Oracle Fusion Middleware
  10. 10. © Raastech, Inc. 2015 | All rights reserved. Slide 10 of 102@Raastech  Oracle Linux  Oracle Solaris  Oracle VM  Oracle Exadata/Exalogic  Oracle SPARC  Oracle Storage Products Oracle Fusion Middleware
  11. 11. © Raastech, Inc. 2015 | All rights reserved. Slide 11 of 102@Raastech  Oracle Fusion Middleware Oracle Fusion Middleware
  12. 12. © Raastech, Inc. 2015 | All rights reserved. Slide 12 of 102@Raastech Oracle Integration Products  Oracle SOA Suite  Oracle Service Bus (OSB)  Oracle Data Integrator (ODI)  Oracle Web Services Manager (OWSM)  Oracle Application Integration Architecture (AIA)  Oracle Business Activity Monitoring (BAM)  Oracle GoldenGate  Oracle Enterprise Repository (OER)  Oracle API Gateway (OAG)  Oracle Service Registry (OSR)  Oracle B2B Integration
  13. 13. © Raastech, Inc. 2015 | All rights reserved. Slide 13 of 102@Raastech Oracle Integration Products  Oracle SOA Suite  Oracle Service Bus (OSB)  Oracle Data Integrator (ODI)  Oracle Web Services Manager (OWSM)  Oracle Application Integration Architecture (AIA)  Oracle Business Activity Monitoring (BAM)  Oracle GoldenGate  Oracle Enterprise Repository (OER)  Oracle Enterprise Gateway (OEG)  Oracle Service Registry (OSR)  Oracle B2B Integration
  14. 14. © Raastech, Inc. 2015 | All rights reserved. Slide 14 of 102@Raastech  A comprehensive, hot-pluggable software suite to build, deploy and manage Service-Oriented Architectures (SOA)  Unified application development tooling and end-to-end lifecycle management
  15. 15. © Raastech, Inc. 2015 | All rights reserved. Slide 15 of 102@Raastech  Transforms complex architectures into agile integration networks by connecting, mediating, and managing interactions between services and applications  Delivers low-cost, standards-based integration for mission critical SOA environments where extreme performance and scalability are requirements
  16. 16. © Raastech, Inc. 2015 | All rights reserved. Slide 16 of 102@Raastech  A comprehensive and easy-to-use solution for policy management and security of service infrastructure  Provides visibility and control of the policies through a centralized administration interface offered by Oracle Enterprise Manager
  17. 17. © Raastech, Inc. 2015 | All rights reserved. Slide 17 of 102@Raastech  Gives business executives the ability to monitor their business services and processes in the enterprise  Correlate KPIs down to the actual business process themselves  Allows the ability to change business processes quickly or to take corrective action if the business environment changes
  18. 18. © Raastech, Inc. 2015 | All rights reserved. Slide 18 of 102@Raastech
  19. 19. © Raastech, Inc. 2015 | All rights reserved. Slide 19 of 102@Raastech Web Application OSB Proxy Service Mobile Application SOA Suite Composite Database Table 1 & Table 2 BAM Reports OWSM Policy High-Level Flow of Use Case
  20. 20. © Raastech, Inc. 2015 | All rights reserved. Slide 20 of 102@Raastech Web Application OSB Proxy Service Mobile Application OSB Proxy Service OSB Proxy Service OSB Proxy Service Why OSB?  Consider using OSB as your entry (and/or exit) points  OSB is lightweight, and easily supports throttling and caching  OSB proxy services are usually exposed as web services
  21. 21. © Raastech, Inc. 2015 | All rights reserved. Slide 21 of 102@Raastech <soap:Header xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <wsse:Security soap:mustUnderstand="1"> <wsse:UsernameToken> <wsse:Username>myusername</wsse:Username> <wsse:Password>mypassword</wsse:Password> </wsse:UsernameToken> </wsse:Security> </soap:Header> OSB Proxy Service OWSM Policy Why OWSM?  Install the Oracle Service Bus OWSM Extension to provide support for WS-Security  Attach the policy “oracle/wss_username_token_service_policy”  Client must supply username and password in the SOAP header
  22. 22. © Raastech, Inc. 2015 | All rights reserved. Slide 22 of 102@Raastech SOA Suite Composite BPEL (calculate tax) Mediator (route) Why SOA Suite?  Incoming payload includes:  Item Number  Quantity  Dollar Amount  Type Flag (‘M’ for mobile, ‘W’ for web)  Use BPEL for complicated flows and/or orchestration (e.g., calculate tax)  Use Mediator to route to the correct table based on the flag in the payload
  23. 23. © Raastech, Inc. 2015 | All rights reserved. Slide 23 of 102@Raastech SOA Suite Composite BAM Reports Why BAM?  BAM is essentially a reporting tool  Designed to capture in-flight transactions and report on them in real- time  Does not impact performance of integration flow  In our use case, publish total dollar amounts of web orders to BAM for management reporting
  24. 24. © Raastech, Inc. 2015 | All rights reserved. Slide 24 of 102@Raastech Web Application OSB Proxy Service Mobile Application SOA Suite Composite Database Table 1 & Table 2 BAM Reports OWSM Policy The Oracle Integration Layer Bringing it all together…
  25. 25. © Raastech, Inc. 2015 | All rights reserved. Slide 25 of 102@Raastech
  26. 26. © Raastech, Inc. 2015 | All rights reserved. Slide 26 of 102@Raastech <?xml version="1.0" encoding="ISO-8859-1" ?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="Order"> <xs:complexType> <xs:sequence> <xs:element name="OrderType" type="xs:string"/> <xs:element name="ItemNumber" type="xs:string"/> <xs:element name="Quantity" type="xs:positiveInteger"/> <xs:element name="Price" type="xs:decimal"/> </xs:sequence> </xs:complexType> </xs:element> </xs:schema> Create XML Schema  Create the Order.xsd schema file  An XML schema describes the structure of an XML message
  27. 27. © Raastech, Inc. 2015 | All rights reserved. Slide 27 of 102@Raastech Web Application OSB Proxy Service Mobile Application SOA Suite Composite Database Table 1 & Table 2 BAM Reports OWSM Policy
  28. 28. © Raastech, Inc. 2015 | All rights reserved. Slide 28 of 102@Raastech CREATE TABLE web_orders ( item_number VARCHAR2(10), quantity NUMBER, dollar_amount NUMBER(7,2) ); CREATE TABLE mobile_orders ( item_number VARCHAR2(10), quantity NUMBER, dollar_amount NUMBER(7,2) ); Create the backend database tables  These tables represent the backend for our order system
  29. 29. © Raastech, Inc. 2015 | All rights reserved. Slide 29 of 102@Raastech Web Application OSB Proxy Service Mobile Application SOA Suite Composite Database Table 1 & Table 2 BAM Reports OWSM Policy
  30. 30. © Raastech, Inc. 2015 | All rights reserved. Slide 30 of 102@Raastech Create the BAM Data Objects  BAM Data Objects are essentially tables  Used to store data that is published to BAM
  31. 31. © Raastech, Inc. 2015 | All rights reserved. Slide 31 of 102@Raastech  BAM Data Objects are essentially tables  Used to store data that is published to BAM Create the BAM Data Objects
  32. 32. © Raastech, Inc. 2015 | All rights reserved. Slide 32 of 102@Raastech Create the BAM Data Objects
  33. 33. © Raastech, Inc. 2015 | All rights reserved. Slide 33 of 102@Raastech Web Application OSB Proxy Service Mobile Application SOA Suite Composite Database Table 1 & Table 2 BAM Reports OWSM Policy
  34. 34. © Raastech, Inc. 2015 | All rights reserved. Slide 34 of 102@Raastech BAM Data Object SOA Suite Composite BPEL (calculate tax) Mediator (route) WebOrders Table MobileOrders Table Price x 1.05 OrderType = ‘W’ OrderType = ‘M’
  35. 35. © Raastech, Inc. 2015 | All rights reserved. Slide 35 of 102@Raastech Create SOA composite  A SOA composite application can consist of multiple components, such as:  BPEL component  Mediator component  Database Adapters  BAM Adapter  Open up JDeveloper 11g  Create a new SOA project
  36. 36. © Raastech, Inc. 2015 | All rights reserved. Slide 36 of 102@Raastech Create a SOA project
  37. 37. © Raastech, Inc. 2015 | All rights reserved. Slide 37 of 102@Raastech Create a SOA project
  38. 38. © Raastech, Inc. 2015 | All rights reserved. Slide 38 of 102@Raastech Create Database Adapters for each table  Adapters are used for easily referencing technologies such as databases, file systems, FTP servers, JMS, and so forth  The Database Adapter hides the underlying implementation of the connectivity of the database, so that the SOA developer can focus on building integrations  Simply drag the Database Adapter to the external references pane
  39. 39. © Raastech, Inc. 2015 | All rights reserved. Slide 39 of 102@Raastech Drag Database Adapter to pane
  40. 40. © Raastech, Inc. 2015 | All rights reserved. Slide 40 of 102@Raastech  Provide a name for the reference Use Database Adapter configuration wizard
  41. 41. © Raastech, Inc. 2015 | All rights reserved. Slide 41 of 102@Raastech Choose a database to connect to
  42. 42. © Raastech, Inc. 2015 | All rights reserved. Slide 42 of 102@Raastech  Select the table name and columns from the database Select table and columns
  43. 43. © Raastech, Inc. 2015 | All rights reserved. Slide 43 of 102@Raastech Select type of operation on this table
  44. 44. © Raastech, Inc. 2015 | All rights reserved. Slide 44 of 102@Raastech Database Adapters created in JDeveloper
  45. 45. © Raastech, Inc. 2015 | All rights reserved. Slide 45 of 102@Raastech Create SOA Mediator component  Create a Mediator component  Mediator’s strengths are in transformation and routing  Route to the Database Adapters that we just created… …based on a filter on the ‘OrderType’ flag
  46. 46. © Raastech, Inc. 2015 | All rights reserved. Slide 46 of 102@Raastech  Create a name for the Mediator component Create SOA Mediator component
  47. 47. © Raastech, Inc. 2015 | All rights reserved. Slide 47 of 102@Raastech  Use the XSD we created earlier as our message input Create SOA Mediator component
  48. 48. © Raastech, Inc. 2015 | All rights reserved. Slide 48 of 102@Raastech Create a WSDL for the Mediator component
  49. 49. © Raastech, Inc. 2015 | All rights reserved. Slide 49 of 102@Raastech Create a routing rule
  50. 50. © Raastech, Inc. 2015 | All rights reserved. Slide 50 of 102@Raastech  Select the Database Adapter we had created earlier Select the Database Adapter
  51. 51. © Raastech, Inc. 2015 | All rights reserved. Slide 51 of 102@Raastech Create a filter expression
  52. 52. © Raastech, Inc. 2015 | All rights reserved. Slide 52 of 102@Raastech Create a filter expression
  53. 53. © Raastech, Inc. 2015 | All rights reserved. Slide 53 of 102@Raastech Create a transformation
  54. 54. © Raastech, Inc. 2015 | All rights reserved. Slide 54 of 102@Raastech Map the XML to the Database Adapter object
  55. 55. © Raastech, Inc. 2015 | All rights reserved. Slide 55 of 102@Raastech How the composite looks like so far
  56. 56. © Raastech, Inc. 2015 | All rights reserved. Slide 56 of 102@Raastech  BPEL is used for orchestration or complicated logic  Simply drag the “BPEL Process” to the composite pane Create SOA BPEL component
  57. 57. © Raastech, Inc. 2015 | All rights reserved. Slide 57 of 102@Raastech Create SOA BPEL component
  58. 58. © Raastech, Inc. 2015 | All rights reserved. Slide 58 of 102@Raastech Link the BPEL to the Mediator
  59. 59. © Raastech, Inc. 2015 | All rights reserved. Slide 59 of 102@Raastech Create an ‘Assign’ activity
  60. 60. © Raastech, Inc. 2015 | All rights reserved. Slide 60 of 102@Raastech Multiple the price
  61. 61. © Raastech, Inc. 2015 | All rights reserved. Slide 61 of 102@Raastech Multiply the price
  62. 62. © Raastech, Inc. 2015 | All rights reserved. Slide 62 of 102@Raastech Map rest of BPEL elements to Mediator object
  63. 63. © Raastech, Inc. 2015 | All rights reserved. Slide 63 of 102@Raastech Create an ‘Assign’ activity for the response
  64. 64. © Raastech, Inc. 2015 | All rights reserved. Slide 64 of 102@Raastech Create an ‘Assign’ activity for the response
  65. 65. © Raastech, Inc. 2015 | All rights reserved. Slide 65 of 102@Raastech Create BAM Adapter  Similar to the Database Adapter, drag the BAM Adapter  Will query the BAM server and list all available data objects
  66. 66. © Raastech, Inc. 2015 | All rights reserved. Slide 66 of 102@Raastech Create BAM Adapter
  67. 67. © Raastech, Inc. 2015 | All rights reserved. Slide 67 of 102@Raastech Create BAM Adapter
  68. 68. © Raastech, Inc. 2015 | All rights reserved. Slide 68 of 102@Raastech Map BPEL object to BAM object
  69. 69. © Raastech, Inc. 2015 | All rights reserved. Slide 69 of 102@Raastech How the final SOA composite looks like
  70. 70. © Raastech, Inc. 2015 | All rights reserved. Slide 70 of 102@Raastech Deploy SOA composite  Right-click on the composite name to deploy to SOA server  URL becomes: http://soadev:8001/soa-infra/services/default/ProcessOrder/calculatetax_client_ep?WSDL
  71. 71. © Raastech, Inc. 2015 | All rights reserved. Slide 71 of 102@Raastech Web Application OSB Proxy Service Mobile Application SOA Suite Composite Database Table 1 & Table 2 BAM Reports OWSM Policy
  72. 72. © Raastech, Inc. 2015 | All rights reserved. Slide 72 of 102@Raastech OWSM Policy OSB Project Proxy Service Business Service http://soadev:8001/soa-infra/...http://soadev:7001/ProcessOrderProxy/... SOA Composite
  73. 73. © Raastech, Inc. 2015 | All rights reserved. Slide 73 of 102@Raastech Create OSB project  The OSB server is on a separate managed server  Import the WSDL of the SOA composite  Create a Business Service (the link to the SOA composite)  Create a Proxy Service (the exposed interface)  Secure the Proxy Service with an OWSM Policy
  74. 74. © Raastech, Inc. 2015 | All rights reserved. Slide 74 of 102@Raastech Create OSB project
  75. 75. © Raastech, Inc. 2015 | All rights reserved. Slide 75 of 102@Raastech Import the SOA composite WSDL
  76. 76. © Raastech, Inc. 2015 | All rights reserved. Slide 76 of 102@Raastech Import the SOA composite WSDL
  77. 77. © Raastech, Inc. 2015 | All rights reserved. Slide 77 of 102@Raastech Create OSB Business Service
  78. 78. © Raastech, Inc. 2015 | All rights reserved. Slide 78 of 102@Raastech Create OSB Business Service
  79. 79. © Raastech, Inc. 2015 | All rights reserved. Slide 79 of 102@Raastech Create OSB Proxy Service
  80. 80. © Raastech, Inc. 2015 | All rights reserved. Slide 80 of 102@Raastech Create OSB Proxy Service
  81. 81. © Raastech, Inc. 2015 | All rights reserved. Slide 81 of 102@Raastech Web Application OSB Proxy Service Mobile Application SOA Suite Composite Database Table 1 & Table 2 BAM Reports OWSM Policy
  82. 82. © Raastech, Inc. 2015 | All rights reserved. Slide 82 of 102@Raastech Click on Proxy Service
  83. 83. © Raastech, Inc. 2015 | All rights reserved. Slide 83 of 102@Raastech Attach OWSM Policy to OSB Proxy Service
  84. 84. © Raastech, Inc. 2015 | All rights reserved. Slide 84 of 102@Raastech …to identify exposed URL
  85. 85. © Raastech, Inc. 2015 | All rights reserved. Slide 85 of 102@Raastech Final OSB exposed WSDL  The exposed WSDL for the OSB Proxy Service: http://soadev:7001/ProcessOrderProxy/ProcessOrderPS?wsdl  This is the WSDL that the web/client applications will invoke
  86. 86. © Raastech, Inc. 2015 | All rights reserved. Slide 86 of 102@Raastech Web Application OSB Proxy Service Mobile Application SOA Suite Composite Database Table 1 & Table 2 BAM Reports OWSM Policy
  87. 87. © Raastech, Inc. 2015 | All rights reserved. Slide 87 of 102@Raastech Test with soapUI  Use soapUI to test the WSDL
  88. 88. © Raastech, Inc. 2015 | All rights reserved. Slide 88 of 102@Raastech Observe authentication failure  Seems to be some security error  Valid error… no username/password provided in payload!
  89. 89. © Raastech, Inc. 2015 | All rights reserved. Slide 89 of 102@Raastech Test with security token in SOAP header  With authentication info in header, we get our ‘Done’ response
  90. 90. © Raastech, Inc. 2015 | All rights reserved. Slide 90 of 102@Raastech Observe instance in EM Console
  91. 91. © Raastech, Inc. 2015 | All rights reserved. Slide 91 of 102@Raastech View instance flow  Clicking on the instance ID shows a successful flow  Data only inserted to the ‘WebOrders’ table as expected
  92. 92. © Raastech, Inc. 2015 | All rights reserved. Slide 92 of 102@Raastech View Mediator instance details
  93. 93. © Raastech, Inc. 2015 | All rights reserved. Slide 93 of 102@Raastech Confirm data in database  Querying the database table confirms this
  94. 94. © Raastech, Inc. 2015 | All rights reserved. Slide 94 of 102@Raastech Confirm data in BAM Data Object  Data also published to BAM!  Can now create a report to query this Data Object
  95. 95. © Raastech, Inc. 2015 | All rights reserved. Slide 95 of 102@Raastech
  96. 96. © Raastech, Inc. 2015 | All rights reserved. Slide 96 of 102@Raastech Summary 1. Create an XML Schema 2. Create the database tables 3. Create the BAM Data Object
  97. 97. © Raastech, Inc. 2015 | All rights reserved. Slide 97 of 102@Raastech Summary 4. Create the SOA composite with JDeveloper a. Open up JDeveloper 11g b. Create a SOA project c. Create 2 Database Adapter services d. Create a Mediator component i. Create a web service interface using the XSD file ii. Create 2 routing rules to the 2 database services iii. Use a filter expression on the 'OrderType' element e. Create a BPEL component i. Link the BPEL component with the Mediator component ii. Map the input of the BPEL to the input of the Mediator iii. But multiple the price by 1.05 iv. Create a BAM Adapter to the BAM Data Object v. Map the input of the BPEL to the BAM Adapter
  98. 98. © Raastech, Inc. 2015 | All rights reserved. Slide 98 of 102@Raastech Summary 5. Deploy the SOA composite a. Get the WSDL of the SOA composite 6. Create an OSB project a. Create a Business Service using this SOA WSDL b. Create a Proxy Service as the OSB interface c. Secure the Proxy Service with an OWSM Policy 7. Test using soapUI
  99. 99. © Raastech, Inc. 2015 | All rights reserved. Slide 99 of 102@Raastech Take Aways  Understand where each product should be aligned  There is some overlap between products  There is no one-size fits all architecture  Understand the difference between and usage of OSB, OWSM, BAM, and SOA Suite  Observe first hand a walkthrough demo:  OSB used as a passthrough, but has other benefits not demo’ed here  OWSM provides a mechanism to attach security policies to a service  BPEL used for orchestration  Mediator used for routing
  100. 100. © Raastech, Inc. 2015 | All rights reserved. Slide 100 of 102@Raastech Final Thoughts  All these products are provided as part of a single Oracle SOA Suite license, so take advantage of them!  You can use any combination of OSB, BPEL, or Mediator depending on your needs
  101. 101. © Raastech, Inc. 2015 | All rights reserved. Slide 101 of 102@Raastech Contact Information  Ahmed Aboulnaga  Technical Director  @Ahmed_Aboulnaga  ahmed.aboulnaga@raastech.com
  102. 102. © Raastech, Inc. 2015 | All rights reserved. Slide 102 of 102@Raastech Q&A

×