"SOA en BPEL" Is Service Orchestratie een overdraagbare aandoening? Sandor Nieuwenhuijs Good morning everybody. It is a great pleasure to be with you today. My name is Edwin Khodabakchian and I am VP of Product Development
No Application is an Island Example: Modern Web Application Application for the provisioning and activation of cell phone plans Telco Activation Services SMS Activation Manager GPRS Activation Manager China Roaming Activation Manager Application Server Automatic Payment Approval New Plan Selection User Interface There is an increasing demand for new applications to integrate existing systems. At the same time the IT infrastructure is becoming increasingly heterogeneous. ADF Service Not Available Exception Orchestration Billing Services Payment Services Credit Card Payment Services
Java + JCA + JMS + EAI = “Not Enough” Java Services (EJB) Messaging Destinations (JMS) Legacy Applications (JCA, adapters) Portal Orchestration Today Not enough metadata Not tool friendly Proprietary flow languages Rare skill sets, consulting Hard Wired/Code Rigid, difficult to change Incompatible Infrastructures Difficult to manage and scale Java Platform ? User Tasks ADF Orchestration Web Services (Sync and Async)
Oracle IBM Microsoft BEA Tibco SAP Sun SOA Oracle IBM Microsoft BEA Tibco SAP Sun 1 38 2
A Service… XML Metadata Network Centric GetCustomerInfo GetReport <rate> 5.6% </rate> Metadata GetCustomerInfo GetReport ListProducts Search CreditAccount ProcessOrder Network Centric
…Can Be Asynchronous WS-Addressing Performance Reliability 10:05 Receive Order 10:10 Processing …. 10:25 <risk>4</risk> WS-Addressing Correlation Callback Location Performance Reliability Business Time
…Can Be Secured WS-Security, SAML Signature Encryption Role and Access Control <Patient> Disease A </Patient>
…Can Offer Optimized Bindings WSDL HTTP .NET, Axis Service INTERFACE BINDING RMI Java Service BINDING Database Stored Procedures JDBC The key message here is that SOA is not a big bang but rather an evolutionary approach for rationalizing and enhancing interoperability/reuse among your existing IT assets. The technical enabler is that WSDL separates the definition of the service in an interface and a binding, allowing the binding to be optimized (transport and data representation) while keeping the interface standard/tool friendly. A service can be high performance BINDING JCA ERP
? BPEL, The Orchestrator Web Service PORTAL Java Service Database IU PORTAL J2EE TOMCAT Web Service Java Service ERP SAP, Oracle, etc. User Tasks Database Stored Procedures BPEL ?
What is BPEL? Markup language for composing a set of discrete services into an end-to-end process flow SalesDB start 10+ years of R&D from MSFT and IBM SOAP but also Java, JCA Rich Flow Semantics Optimized Bindings XPATH+XSLT+XQuery WS-Security A Process is a Service Duplicate Number! Billing Router end
BPEL by Example (1) Client Customer App Support DB Client <sequence> Client Start <receive> GetAccount <invoke> Customer App mapping ListIncidents <invoke> There is an increasing demand for new applications to integrate existing systems. At the same time the IT infrastructure is becoming increasingly heterogeneous. Support DB Client End <reply> </sequence> Example: Chaining
BPEL by Example (2) Client Computer Store Client Example: Asynchrony Initiate <receive> ProcessOrder <invoke> …. Computer Store OnOrderComplete <receive> There is an increasing demand for new applications to integrate existing systems. At the same time the IT infrastructure is becoming increasingly heterogeneous. Client End <invoke> Example: Asynchrony
BPEL by Example (3) Partner B Partner A Example: Parallelism Initiate <receive> <flow> GetQuote <invoke> GetQuote <invoke> Partner B Partner A </flow> There is an increasing demand for new applications to integrate existing systems. At the same time the IT infrastructure is becoming increasingly heterogeneous. End <invoke> Example: Parallelism
BPEL by Example (4) Client Travel Service Hotel Service Client Start <receive> Release Flight <invoke> Book Flight <invoke> Travel Service Cancel Hotel <invoke> Reserve Hotel <invoke> There is an increasing demand for new applications to integrate existing systems. At the same time the IT infrastructure is becoming increasingly heterogeneous. Hotel Service Client End <reply> Example: Exception Management and Compensation
BPEL by Example (5) Example: WSIF and Java Binding Start GetRating End <receive> … GetRating <invoke> RMI … Rating SessionBean There is an increasing demand for new applications to integrate existing systems. At the same time the IT infrastructure is becoming increasingly heterogeneous. End <reply> Example: WSIF and Java Binding
BPEL by Example (6) Client Example: A Process Is A Service Initiate Java Web App BPEL C# Initiate <receive> ProcessOrder <invoke> …. OnOrderComplete <receive> There is an increasing demand for new applications to integrate existing systems. At the same time the IT infrastructure is becoming increasingly heterogeneous. End <invoke> Example: A Process Is A Service
The Buzz “ Gartner believes that BPEL will emerge as the leading industry standard for Web service orchestration and coordination of business processes. - David Smith, Research Vice President and fellow, Gartner ” “ BPEL is the future of the integration space. - John Rymer, Vice President, Forrester Research, Inc. ”
BPEL Methodology Expose Services Flow Transformation Exception User Tasks Change Unit Test Monitor Sensors Audit Perf Test
The Top Down Perspective Notation Layer BPMN or UML Business Analyst Activity Activity Activity Executable Layer XML, XQuery, BPEL, Rules Integration Developer assign invoke receive assign Business Services Adapters, Java, Struts, JSF Service Developer Existing Systems DATABASE PACKAGED APPLICATIONS JAVA MAINFRAME
Oracle BPEL Process Manager For OracleAS, WebLogic, WebSphere and JBoss 1 38 2
Oracle BPEL Process Manager Event Correlation, Analytics, Dashboards, Alerts BAM BPEL PM Orchestration Transformation Auditing BPEL Designer XSLT Mapper BPEL Console BPEL Server Application Server Security, Management WS Gateway Service Adapters WSIF/JCA Framework 200+ Back Ends Rich Metadata User Tasks Database Mainframe Packaged Apps EJBs
Eclipse BPEL Designer Native BPEL Support KEY FEATURES Native BPEL Support Drag-and-drop process modeler UDDI and WSIL service browser Visual XSLT mapper Visual XPATH editor Visual Assign editor One-click build and deploy
JDeveloper BPEL Designer Preview JDeveloper BPEL Designer KEY FEATURES Native BPEL Support Drag-and-drop process modeler UDDI and WSIL service browser Visual XSLT mapper Visual XPATH editor Visual Assign editor One-click build and deploy
XSLT Mapper Preview Drag-and-drop Interface KEY FEATURES Drag-and-drop Interface Built-in Library of Functions Support for Lists and Iterations Auto-mapping Version Resiliency
Service Adapters Preview Rich Metadata WSIF + JCA + XML KEY FEATURES WSIF + JCA + XML Rich Metadata Requests and Events Optimized Bindings 200+ Systems Fail Over Management
Workflow Service Preview Routing Roles Attachments and Version Control KEY FEATURES Routing Roles Attachments and Version Control Built-in Approval Patterns Simple Form Framework Email and Wireless Notification Built-in Worklist Application
BPEL Server Plug and Play Cross Platform Massively Scalable KEY FEATURES Plug and Play Cross Platform Massively Scalable BPEL BPEL Process Manager WSDL Binding Built-in Integration Services Web Service JMS User Tasks XQuery XSLT BPELJ JCA Oracle Database Oracle DB Database Core BPEL Engine Email BPEL Console J2EE Application Server (WebLogic, Oracle AS, JBoss, WebSphere) MANAGE
Need for Performance Write-through Cache BPEL-Optimized SOAP Stack LOAD BALANCER BPEL Server BPEL-Optimized SOAP Stack App. Server Compact Binary DOM Lazy Loading Smart Partitioning W3C DOM Interface Support for Large Documents BPEL Server App. Server [Dave Shaffer] That's a fairly complex process (an obvious fit for a process language). But we also see customers (e.g. ESA) with quite simple processes - 2-3 steps. You know this, I would just make sure the sales reps know it for qualification purposes. Dehydration Store (Oracle Database) BPEL Server Stateless Architecture Clustering Fail Over Support for large BPEL Processes (20,000+ activities) App. Server
Need for Scalability Scale on demand No code change Easy-to-manage KEY FEATURES Scale on demand No code change Easy-to-manage Intel+Linux Friendly
BPEL Console Visual Monitoring Auditing BPEL Debugging KEY FEATURES Visual Monitoring Auditing BPEL Debugging In-flight Instance Administration Performance Tuning Partitioning/Domains
Service Adapters .NET, Axis Web Services 100% Standard Rich Metadata KEY FEATURES WSDL 100% Standard Rich Metadata Requests and Events Optimized Bindings XSLT, Auto-Mapping 200+ Systems Fail Over Management Java, JCA Components WSDL Database WSDL Oracle eBusiness Suite WSDL Files WSDL JMS Queue or Topic WSDL 200+ iWay Adapters BPEL WSDL XML,WSIF,JCA
BAM Friendly Event Capture Correlation Metrics and KPI KEY FEATURES Event Capture Correlation Metrics and KPI Real-time Dashboards Alerts
ESA - Satellite Imaging Services The Challenge Provision satellite-imaging services over the Internet Data from over 30 geospatial partners and resources Large data sets with complex schemas The Solution Provision, chain, and deliver information via web services and Oracle BPEL PM Why Oracle BPEL Process Manager Native BPEL, 100% standards compliant
Performance Numbers 2KB 25x40 18s 4.80M 10KB 24s 3.60M 25KB 30s 2.88M BPEL PM Performance Numbers Oracle 9i BPEL PM Pentium 4, 2.8Ghz, 1GB RAM Numbers for the European Space Agency Order Processing BPEL Process INPUT DOCUMENT LOAD TOTAL PROCESSING TIME DAILY THROUGHPUT CPU USAGE 2KB 25x40 18s 4.80M 10KB 24s 3.60M 25KB 30s 2.88M 50KB 40s 2.16M 100KB 59s 1.83M 500KB 10x20 0.58M 3MB 120s 0.15M 10MB 360s 0.05M [Dave Shaffer] That's a fairly complex process (an obvious fit for a process language). But we also see customers (e.g. ESA) with quite simple processes - 2-3 steps. You know this, I would just make sure the sales reps know it for qualification purposes.