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.

Hands-On with Oracle SOA

803 views

Published on

MOUS 2012

Published in: Technology
  • Be the first to comment

Hands-On with Oracle SOA

  1. 1. Hands-On with Oracle SOA November 14th, 2012 10:30-11:15 Room vt445 Cristian Durca Ahmed Aboulnaga Technical Architect Technical Director Raastec, Inc. Raastech, Inc.
  2. 2. Slide 2 of 98 © Raastech, Inc. 2012 | All rights reserved. 1. Understanding Oracle Integration Products 2. Our “Integration” Use Case 3. Implementing the Solution 4. Summary Agenda
  3. 3. Slide 3 of 98 © Raastech, Inc. 2012 | All rights reserved. UNDERSTANDING ORACLE INTEGRATION PRODUCTS
  4. 4. Slide 4 of 98 © Raastech, Inc. 2012 | All rights reserved. Oracle Fusion Middleware
  5. 5. Slide 5 of 98 © Raastech, Inc. 2012 | All rights reserved. Oracle Fusion Middleware  Oracle Fusion Apps  Oracle E-Business Suite  Oracle JD Edwards  Oracle PeopleSoft  Oracle Siebel  Oracle Retail  More…
  6. 6. Slide 6 of 98 © Raastech, Inc. 2012 | All rights reserved. Oracle Fusion Middleware  Oracle Database  Oracle MySQL
  7. 7. Slide 7 of 98 © Raastech, Inc. 2012 | All rights reserved. Oracle Fusion Middleware  Oracle Enterprise Linux  Oracle Solaris  Oracle VM  Oracle Exadata/Exalogic  Oracle SPARC  Oracle Storage Products
  8. 8. Slide 8 of 98 © Raastech, Inc. 2012 | All rights reserved. Oracle Fusion Middleware  Oracle Fusion Middleware
  9. 9. Slide 9 of 98 © Raastech, Inc. 2012 | All rights reserved.  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 Oracle Integration Products
  10. 10. Slide 10 of 98 © Raastech, Inc. 2012 | All rights reserved.  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 Oracle Integration Products
  11. 11. Slide 11 of 98 © Raastech, Inc. 2012 | All rights reserved.  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
  12. 12. Slide 12 of 98 © Raastech, Inc. 2012 | All rights reserved.  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
  13. 13. Slide 13 of 98 © Raastech, Inc. 2012 | All rights reserved.  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
  14. 14. Slide 14 of 98 © Raastech, Inc. 2012 | All rights reserved.  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
  15. 15. Slide 15 of 98 © Raastech, Inc. 2012 | All rights reserved. OUR “INTEGRATION” USE CASE
  16. 16. Slide 16 of 98 © Raastech, Inc. 2012 | All rights reserved. High Level Flow of Use Case Web Application OSB Proxy Service Mobile Application SOA Suite Composite Database Table 1 & Table 2 BAM Reports OWSM Policy
  17. 17. Slide 17 of 98 © Raastech, Inc. 2012 | All rights reserved.  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 Why OSB? Web Application OSB Proxy Service Mobile Application OSB Proxy Service OSB Proxy Service OSB Proxy Service
  18. 18. Slide 18 of 98 © Raastech, Inc. 2012 | All rights reserved. <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>  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 Why OWSM? OSB Proxy Service OWSM Policy
  19. 19. Slide 19 of 98 © Raastech, Inc. 2012 | All rights reserved.  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 Why SOA Suite? SOA Suite Composite BPEL (calculate tax) Mediator (route)
  20. 20. Slide 20 of 98 © Raastech, Inc. 2012 | All rights reserved.  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 Why BAM? SOA Suite Composite BAM Reports
  21. 21. Slide 21 of 98 © Raastech, Inc. 2012 | All rights reserved. Bringing it all together… Web Application OSB Proxy Service Mobile Application SOA Suite Composite Database Table 1 & Table 2 BAM Reports OWSM Policy The Oracle Integration Layer
  22. 22. Slide 22 of 98 © Raastech, Inc. 2012 | All rights reserved. IMPLEMENTING THE SOLUTION
  23. 23. Slide 23 of 98 © Raastech, Inc. 2012 | All rights reserved.  Create the Order.xsd schema file  An XML schema describes the structure of an XML message Create XML Schema <?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>
  24. 24. Slide 24 of 98 © Raastech, Inc. 2012 | All rights reserved. Web Application OSB Proxy Service Mobile Application SOA Suite Composite Database Table 1 & Table 2 BAM Reports OWSM Policy
  25. 25. Slide 25 of 98 © Raastech, Inc. 2012 | All rights reserved.  These tables represent the backend for our order system Create the backend database tables 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) );
  26. 26. Slide 26 of 98 © Raastech, Inc. 2012 | All rights reserved. Web Application OSB Proxy Service Mobile Application SOA Suite Composite Database Table 1 & Table 2 BAM Reports OWSM Policy
  27. 27. Slide 27 of 98 © Raastech, Inc. 2012 | All rights reserved.  BAM Data Objects are essentially tables  Used to store data that is published to BAM Create the BAM Data Objects
  28. 28. Slide 28 of 98 © Raastech, Inc. 2012 | All rights reserved.  BAM Data Objects are essentially tables  Used to store data that is published to BAM Create the BAM Data Objects
  29. 29. Slide 29 of 98 © Raastech, Inc. 2012 | All rights reserved. Create the BAM Data Objects
  30. 30. Slide 30 of 98 © Raastech, Inc. 2012 | All rights reserved. Web Application OSB Proxy Service Mobile Application SOA Suite Composite Database Table 1 & Table 2 BAM Reports OWSM Policy
  31. 31. Slide 31 of 98 © Raastech, Inc. 2012 | All rights reserved. BAM Data Object SOA Suite Composite BPEL (calculate tax) Mediator (route) WebOrders Table MobileOrders Table Price x 1.05 OrderType = ‘W’ OrderType = ‘M’
  32. 32. Slide 32 of 98 © Raastech, Inc. 2012 | All rights reserved.  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 Create SOA composite
  33. 33. Slide 33 of 98 © Raastech, Inc. 2012 | All rights reserved. Create a SOA project
  34. 34. Slide 34 of 98 © Raastech, Inc. 2012 | All rights reserved. Create a SOA project
  35. 35. Slide 35 of 98 © Raastech, Inc. 2012 | All rights reserved.  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 Create Database Adapters for each table
  36. 36. Slide 36 of 98 © Raastech, Inc. 2012 | All rights reserved. Drag Database Adapter to pane
  37. 37. Slide 37 of 98 © Raastech, Inc. 2012 | All rights reserved. Use Database Adapter configuration wizard  Provide a name for the reference
  38. 38. Slide 38 of 98 © Raastech, Inc. 2012 | All rights reserved. Choose a database to connect to
  39. 39. Slide 39 of 98 © Raastech, Inc. 2012 | All rights reserved. Select table and columns  Select the table name and columns from the database
  40. 40. Slide 40 of 98 © Raastech, Inc. 2012 | All rights reserved. Select type of operation on this table
  41. 41. Slide 41 of 98 © Raastech, Inc. 2012 | All rights reserved. Database Adapters created in JDeveloper
  42. 42. Slide 42 of 98 © Raastech, Inc. 2012 | All rights reserved.  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 Create SOA Mediator component
  43. 43. Slide 43 of 98 © Raastech, Inc. 2012 | All rights reserved. Create SOA Mediator component  Create a name for the Mediator component
  44. 44. Slide 44 of 98 © Raastech, Inc. 2012 | All rights reserved. Create SOA Mediator component  Use the XSD we created earlier as our message input
  45. 45. Slide 45 of 98 © Raastech, Inc. 2012 | All rights reserved. Create a WSDL for the Mediator component
  46. 46. Slide 46 of 98 © Raastech, Inc. 2012 | All rights reserved. Create a routing rule
  47. 47. Slide 47 of 98 © Raastech, Inc. 2012 | All rights reserved. Select the Database Adapter  Select the Database Adapter we had created earlier
  48. 48. Slide 48 of 98 © Raastech, Inc. 2012 | All rights reserved. Create a filter expression
  49. 49. Slide 49 of 98 © Raastech, Inc. 2012 | All rights reserved. Create a filter expression
  50. 50. Slide 50 of 98 © Raastech, Inc. 2012 | All rights reserved. Create a transformation
  51. 51. Slide 51 of 98 © Raastech, Inc. 2012 | All rights reserved. Map the XML to the Database Adapter object
  52. 52. Slide 52 of 98 © Raastech, Inc. 2012 | All rights reserved. How the composite looks like so far
  53. 53. Slide 53 of 98 © Raastech, Inc. 2012 | All rights reserved.  BPEL is used for orchestration or complicated logic  Simply drag the “BPEL Process” to the composite pane Create SOA BPEL component
  54. 54. Slide 54 of 98 © Raastech, Inc. 2012 | All rights reserved. Create SOA BPEL component
  55. 55. Slide 55 of 98 © Raastech, Inc. 2012 | All rights reserved. Link the BPEL to the Mediator
  56. 56. Slide 56 of 98 © Raastech, Inc. 2012 | All rights reserved. Create an ‘Assign’ activity
  57. 57. Slide 57 of 98 © Raastech, Inc. 2012 | All rights reserved. Multiply the price
  58. 58. Slide 58 of 98 © Raastech, Inc. 2012 | All rights reserved. Multiply the price
  59. 59. Slide 59 of 98 © Raastech, Inc. 2012 | All rights reserved. Map rest of BPEL elements to Mediator object
  60. 60. Slide 60 of 98 © Raastech, Inc. 2012 | All rights reserved. Create an ‘Assign’ activity for the response
  61. 61. Slide 61 of 98 © Raastech, Inc. 2012 | All rights reserved. Create an ‘Assign’ activity for the response
  62. 62. Slide 62 of 98 © Raastech, Inc. 2012 | All rights reserved.  Similar to the Database Adapter, drag the BAM Adapter  Will query the BAM server and list all available data objects Create BAM Adapter
  63. 63. Slide 63 of 98 © Raastech, Inc. 2012 | All rights reserved. Create BAM Adapter
  64. 64. Slide 64 of 98 © Raastech, Inc. 2012 | All rights reserved. Create BAM Adapter
  65. 65. Slide 65 of 98 © Raastech, Inc. 2012 | All rights reserved. Map BPEL object to BAM object
  66. 66. Slide 66 of 98 © Raastech, Inc. 2012 | All rights reserved. How the final SOA composite looks like
  67. 67. Slide 67 of 98 © Raastech, Inc. 2012 | All rights reserved. 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
  68. 68. Slide 68 of 98 © Raastech, Inc. 2012 | All rights reserved. Web Application OSB Proxy Service Mobile Application SOA Suite Composite Database Table 1 & Table 2 BAM Reports OWSM Policy
  69. 69. Slide 69 of 98 © Raastech, Inc. 2012 | All rights reserved. OWSM Policy OSB Project Proxy Service Business Service http://soadev:8001/soa-infra/...http://soadev:7001/ProcessOrderProxy/... SOA Composite
  70. 70. Slide 70 of 98 © Raastech, Inc. 2012 | All rights reserved.  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 Create OSB project
  71. 71. Slide 71 of 98 © Raastech, Inc. 2012 | All rights reserved. Create OSB project
  72. 72. Slide 72 of 98 © Raastech, Inc. 2012 | All rights reserved. Import the SOA composite WSDL
  73. 73. Slide 73 of 98 © Raastech, Inc. 2012 | All rights reserved. Import the SOA composite WSDL
  74. 74. Slide 74 of 98 © Raastech, Inc. 2012 | All rights reserved. Create OSB Business Service
  75. 75. Slide 75 of 98 © Raastech, Inc. 2012 | All rights reserved. Create OSB Business Service
  76. 76. Slide 76 of 98 © Raastech, Inc. 2012 | All rights reserved. Create OSB Proxy Service
  77. 77. Slide 77 of 98 © Raastech, Inc. 2012 | All rights reserved. Create OSB Proxy Service
  78. 78. Slide 78 of 98 © Raastech, Inc. 2012 | All rights reserved. Web Application OSB Proxy Service Mobile Application SOA Suite Composite Database Table 1 & Table 2 BAM Reports OWSM Policy
  79. 79. Slide 79 of 98 © Raastech, Inc. 2012 | All rights reserved. Click on Proxy Service
  80. 80. Slide 80 of 98 © Raastech, Inc. 2012 | All rights reserved. Attach OWSM Policy to OSB Proxy Service
  81. 81. Slide 81 of 98 © Raastech, Inc. 2012 | All rights reserved. To identify exposed URL
  82. 82. Slide 82 of 98 © Raastech, Inc. 2012 | All rights reserved.  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 Final OSB exposed WSDL
  83. 83. Slide 83 of 98 © Raastech, Inc. 2012 | All rights reserved. Web Application OSB Proxy Service Mobile Application SOA Suite Composite Database Table 1 & Table 2 BAM Reports OWSM Policy
  84. 84. Slide 84 of 98 © Raastech, Inc. 2012 | All rights reserved.  Use soapUI to test the WSDL Test with soapUI
  85. 85. Slide 85 of 98 © Raastech, Inc. 2012 | All rights reserved. Observe authentication failure  Seems to be some security error  Valid error… no username/password provided in payload!
  86. 86. Slide 86 of 98 © Raastech, Inc. 2012 | All rights reserved. Test with security token in SOAP header  With authentication info in header, we get our ‘Done’ response
  87. 87. Slide 87 of 98 © Raastech, Inc. 2012 | All rights reserved. Observe instance in EM Console
  88. 88. Slide 88 of 98 © Raastech, Inc. 2012 | All rights reserved.  Clicking on the instance ID shows a successful flow  Data only inserted to the ‘WebOrders’ table as expected View instance flow
  89. 89. Slide 89 of 98 © Raastech, Inc. 2012 | All rights reserved. View Mediator instance details
  90. 90. Slide 90 of 98 © Raastech, Inc. 2012 | All rights reserved.  Querying the database table confirms this Confirm data in database
  91. 91. Slide 91 of 98 © Raastech, Inc. 2012 | All rights reserved.  Data also published to BAM!  Can now create a report to query this Data Object Confirm data in BAM Data Object
  92. 92. Slide 92 of 98 © Raastech, Inc. 2012 | All rights reserved. SUMMARY
  93. 93. Slide 93 of 98 © Raastech, Inc. 2012 | All rights reserved. 1. Create an XML Schema 2. Create the database tables 3. Create the BAM Data Object Summary
  94. 94. Slide 94 of 98 © Raastech, Inc. 2012 | All rights reserved. 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 Summary
  95. 95. Slide 95 of 98 © Raastech, Inc. 2012 | All rights reserved. 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 Summary
  96. 96. Slide 96 of 98 © Raastech, Inc. 2012 | All rights reserved.  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 Take Aways
  97. 97. Slide 97 of 98 © Raastech, Inc. 2012 | All rights reserved.  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 Final Thoughts
  98. 98. Slide 98 of 98 © Raastech, Inc. 2012 | All rights reserved. Contact Information Cristian Durca Technical Architect cristian.durca@raastech.com Ahmed Aboulnaga Technical Director ahmed.aboulnaga@raastech.com

×