Oracle Enterprise Service Bus: the Foundation for Service-Oriented Architecture Demed L’Her, Sr
Total Page:16
File Type:pdf, Size:1020Kb
<Insert Picture Here> Oracle Enterprise Service Bus: The Foundation for Service-Oriented Architecture Demed L’Her, Sr. Principal Product Manager, Oracle Integration Dave Berry, Sr. Manager, Oracle Integration Program <Insert Picture Here> • The Oracle SOA Suite • Enterprise Service Bus: Foundation for SOA • ESB Usage Patterns • Features & Characteristics • Conclusion Oracle Fusion Middleware The Oracle SOA Platform BPA Suite BAM BI Enterprise MANAGEMENT Manager Analyst& Business System ROUTINGEvents & ORCHESTRATION Analytics GOVERNANCE MONITORINGTools Monitoring Monitoring JDeveloper BPEL Process Manager Web Services Manager Native Human Business BPEL Workflow Rules Policies App Dev EnterpriseEVENTS Service & CONNECTIVITYBus Framework Multi XSLT Routing Protocol Transform Security Adapters B2B SES Registry AppsDB Legacy Partners RFID UDDI Messaging J2EE Application Server Oracle AS, JBoss, WebLogic, WebSphere Program <Insert Picture Here> • The Oracle SOA Suite • Enterprise Service Bus: Foundation for SOA • ESB Usage Patterns • Features & Characteristics • Conclusion Oracle Enterprise Service Bus: Objectives • No Coding Required • Put proprietary technologies at the edges of SOA • Abstract IT resources as services Achieve “Separation of Concerns” Between IT and Business How IT events can negatively impact business processes Database moves jdbc :oracle :thin : jdbc :oracle :thin : saturn:1521:orcl mars :1521:orcl DB DB Host:10.10.10.10 Host:10.10.10.10 Port:2320 Port:2320 SAP SAP Loan approval process approval Loan process approval Loan BPM BPM Business process needs revision! Achieving Separation of Concerns Database moves jdbc :oracle :thin : jdbc :oracle :thin : saturn:1521:orcl mars :1521:orcl DB DB Host:10.10.10.10 Host:10.10.10.10 Port:2320 Port:2320 SAP SAP CreateCustomer.wsdl Loan approval process approval Loan process approval Loan CreateCustomer.wsdl jdbc :oracle :thin : jupiter:1523:audit Audit BPM ESB BPM ESB DB Business process Audit DB added remains unchanged Oracle Enterprise Service Bus: The Foundation for SOA ESB is a multi-protocol fabric to separate integration concerns from applications and business logic How is this achieved? 1. Virtualize Endpoints: From resources to services 2. Transform: Convert data to target formats 3. Route: Reliably transport and route data over a variety of protocols Expose everything as web services 1. Standards-based: XPath, XSLT, SOAP, JMS, JCA, … 2. Hot-pluggable: J2EE, JMS, Database, … Virtualize Endpoints: Connecting to Target Systems 1. Web Services: PeopleSoft, Amazon, … 2. Applications: e-Business Suite, SAP, … 3. Legacy: CICS, Tuxedo, … 4. Technologies: database, file, JMS, … Non-WS Connectivity through Adapters • Standard JCA 1.5 • Transactional (whenever possible) • Sync, Async, bi-directional • Wizards-driven, graphical introspection of target systems Adapters Bundled with ESB AQ, MQ, RDBMS, File, FTP, JMS, MQ, Oracle Applications … and 300+ more available via OEM (iWay, Attunity)! Virtualize Endpoints: Web-service enablement of existing resources Host:10.10.10.10, Port:2320 Service CRM Consumer Native API [proprietary protocol] Native API Host:10.10.10.10 Port:2320 JCA CRM CreateCustomer.wsdl Adapter Service [proprietary Native API protocol] Native API Consumer [SOAP] ESB Service consumers no longer need to talk proprietary protocols Virtualize Endpoints: Introspecting Target Systems DB e-Business Suite JMS Transform Convert data as it flows through the bus • Canonical or point-to-point transformations • Standard XSLT for expressing transformations • Drag-and-drop graphical mapping tool • “Smart” mapping tool , dictionary-based • Domain-Value Maps for fast, static, in-memory lookups Route Reliably transport and route data over a variety of protocols Reliable messaging and guaranteed delivery are key in highly-distributed, asynchronous, “fire-and- forget” SOA where senders do not wait for a response. • Internally: uses JMS for asynchronous flows • On the edges: wide support of transports SOAP , JMS , legacy messaging • Hot-pluggable transport: 3rd Party JMS, DB, J2EE… Route: Taking Decisions • Content-based: if total_price > 500, route to FedEx • Header-based: if message_type = order, route to fulfillment • Standard XPath to define routing expressions • Graphical expression builder • Routing rules can be altered at runtime Expose Everything As A Web-Service • By default, any ESB service is exposed as a web service (WSDL auto- generated) • Each step of an ESB flow is a potential entry point • Each web-service can be secured Program <Insert Picture Here> • The Oracle SOA Suite • Enterprise Service Bus: Foundation for SOA • ESB Usage Patterns • Features & Characteristics • Conclusion Usage Patterns: simple synchronous request/reply flow Basic RPC mechanism GetCustomer.wsdl requestor Usage Patterns: non-deterministic synchronous request/reply flow • Consumer does not explicitly know the service provider • Service provider selection based on message content/header GetCustomer.wsdl requestor Usage Patterns: simple 1-way asynchronous flow • The simplest but also the most typical ESB pattern • “Fire-and-forget” CreateCustomer.wsdl event Usage Patterns: fan-out 1-way asynchronous flow • 1 event triggers multiple parallel operations • All outbound operations can be grouped in one or more transactions Customer details are 2 logged in the audit database Customer details CreateCustomer.wsdl 2 are enqueued on event JMS to the CRM An event is placed on 1 the bus to notify of a new customer. Payload Customer details is customer details. 2 are enqueued on MQ to the mainframe Usage Patterns: Response-forwarding Can be used for Get customer address • Routing based on lookup 2 from database • Asynchronous “request/reply” ShipOrder.wsdl event Combine order details 3 An event is placed on and customer details 1 the bus to indicate an to prepare shipping order is ready for shipment. Payload consists of order details and customer ID. Usage Patterns: Canonical Data Model • All messages on the bus are converted to a common data model → Reduces the overall number of maps to generate → Respective application owners only need to know about 2 data models: their own one + the canonical one. CRM ERP CRM ERP COMMON DATA MODEL (Customer Object) Billing Shipping Billing Shipping Program <Insert Picture Here> • The Oracle SOA Suite • Enterprise Service Bus: Foundation for SOA • ESB Usage Patterns • Features & Characteristics • Conclusion ESB Control Overview Routing Services Manage & Search Transformation DB Adapter Flow JMS Adapter Instances Flexible Filter Error Retry Expression Overview Navigator BPEL Process ESB Designer Overview Component Palette Adapter JDev Services Application Routing Services Transformation JDev Project DB Adapter Metadata • WSDL • XSD • XSL File Adapter Filters JMS Adapter Operation 3-Tiered Architecture JDeveloper ESB Control UI Tier (design) (monitoring) update export import routing monitor Metadata Runtime Middle Tier Server JMS Servers J2EE J2EE JDBC JDBC Artifacts Relational Data Tier XSD, XSLT Service MD, WSDL, Maps Routing Rules , Instances, Errors MDS Transactions & Exceptions Handling End-to-end transaction/XA support via JTA Ability to set transaction boundaries Built-in “error hospital” to persist and resubmit failed messages SYNCHRONOUS FLOW ASYNCHRONOUS FLOW Submitter is in charge: ESB is in charge: • Persists messages • Persists messages • Resubmit • Retries, resubmit Standards • Virtualize XML, XSD, JCA, WSDL, WSIF, WSIL, JNDI, JDBC • Transform XML, XSD, XSLT, PL/SQL • Route XPath, JMS, SOAP, HTTP, JDBC, XA, JTA Standards Drive Hot Pluggability Security Main security challenges in distributed environments • Islands of security lead to security gaps • No end-to-end visibility • Developers are not necessarily security experts • Modifying policies is extremely complex ESB leverages the Oracle SOA infrastructure for security J2EE Container (OC4J) at service level Oracle Web Services Manager to configure global policies No security hard-coded in endpoints Deployment options: gateway or agent modes ESB sets and propagates security headers (WS-Security) ESB, part of a truly integrated suite 1. Installation • Single installer – J2EE to Human Workflow under 20mn • Single deployment platform 2. Design-Time • Single design environment 3. Runtime • Single monitoring UI (web browser) with Single Sign-On • Direct Java binding between co-located components • End-to-end instance tracking Program <Insert Picture Here> • The Oracle SOA Suite • Enterprise Service Bus: Foundation for SOA • ESB Usage Patterns • Features & Characteristics • Conclusion Oracle Enterprise Service Bus 1 Achieve Separation of Concerns IT/Business 2 Multi-protocol bus, Foundation for SOA 3 Virtualize, Transform, Route 4 High-Availability / Scalability 5 Hot-pluggable based on Open Standards For more info: visit http://otn.oracle.com/soa .