• Like


Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

Uploaded on


  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads


Total Views
On Slideshare
From Embeds
Number of Embeds



Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

    No notes for slide


  • 1. Next Generation Open Source SOA Burr Sutter Sr. Product Manager, SOA (JBossESB, Riftsaw, jBPM, Drools) September 3, 2009 1 JBoss World 2009 | Burr Sutter (bsutter@redhat.com)
  • 2. Agenda Is SOA Dead? JBoss SOA Platform Overview & Roadmap RESTful inclinations Complex Event Processing (CEP) w/ Drools Fusion Infinispan + ESB BPEL 2 JBoss World 2009 | Burr Sutter (bsutter@redhat.com)
  • 3. Is SOA Dead? "The report of my death was an exaggeration." Mark Twain 3 JBoss World 2009 | Burr Sutter (bsutter@redhat.com)
  • 4. SOA, ROA & WOA – Oh My! ROA – Resource Oriented Architecture - REST (Representational State Transfer – Roy Fielding) WOA – “Web Oriented Architecture (WOA) is a style of software architecture that extends service-oriented architecture (SOA) to web based applications, and is sometimes considered to be a light-weight version of SOA. WOA is also aimed at maximizing the browser and server interactions by use of technologies such as REST and POX.” - Wikipedia SOA is NOT SOAP - architectural style vs wire protocol SOA is NOT WS-* - patterns & principles vs a large body of standards 4 JBoss World 2009 | Burr Sutter (bsutter@redhat.com)
  • 5. SOAP vs REST Technical Differences HTTP Verbs: SOAP – POST REST – GET, PUT, POST, DELETE Contract Definition: SOAP – WSDL – operations & messages REST – HTTP Verbs are the operations, messages may or may not have a contract via XSD and/or JSON (POX – plain 'ol XML) Content-Type: SOAP – focused on XML REST – allows for any payload – XML, JSON, Atom, RSS, etc. Clients: SOAP – requires a client that understands WSDL REST – requires a client that understand HTTP 5 JBoss World 2009 | Burr Sutter (bsutter@redhat.com)
  • 6. Forget Services, I want Events! - EDA EDA – “Event Driven Architecture is a software architecture pattern promoting the production, detection, consumption of, and reaction to events. An event can be defined as a significant change in state” - Wikipedia Services have historically been more request-response focused – synchronous processing – normally for responding to awaiting users/consumers. Events are more real-time alerting, no waiting – asynchronous processing – think push. “Event-driven architecture can complement service-oriented architecture (SOA) because services can be activated by triggers fired on incoming events” - Wikipedia. 6 JBoss World 2009 | Burr Sutter (bsutter@redhat.com)
  • 7. JBoss SOA Middleware Overview 7 JBoss World 2009 | Burr Sutter (bsutter@redhat.com)
  • 8. 4.2 4.3 5.0 Future Event Listeners and Actions provide transport mediation Pluggable Architecture Business Services for integrating infrastructure mediation services runs within a container or standalone Transports HTTP S J2EE/Java EE 5 (S)FTP S EJB Infrastructure Services JC Seam A File POJOs ASCII Transformation Routing Security Management XML JMS* Drools Binary Email DSL Decision Table SQL ESB Spring Hibernate Groovy Jython JCA/Inflow Declarative Event BA CE Orchestration Notificati Beanshell M P Service Engine on Message Socket Registry Store JRuby UDDI v3 BPEL Web Services (Proxy) InVM jPDL Service Component Architecture SOAP Service Data Object Excel Process Store Browser Sea m Nati Busines ve s (SI) Data Data EJB Sources MetaMatrix Improvements in 5.x JMS* - JBoss Messaging, IBM WebsphereMQ, TIBCO EMS, MRG- M 8 JBoss World 2009 | Burr Sutter (bsutter@redhat.com)
  • 9. Beyond ESB: Context Customer Submit Order Issues Customer Service Receive Order Validate Order CSR Teams Credit Agency Credit Check Warehouse Inventory Check Send Shipment Shipper Handle Shipment Validate Order Credit Check a Parse XML a Create Outbound b Transform Msg Send Shipment c Apply Business b Handle Response a Determine Rules c Apply Business Rules S Shipper(s) b Print Labels Inventory Check c Print Pick Tickets d Create & Send ASNs a Send to N Warehouses ESB Mediates b Handle N Responses & Provides Services c Determine Best WHSEs d Handle Drop-Ships 9 JBoss World 2009 | Burr Sutter (bsutter@redhat.com)
  • 10. Synergy of ESB + BPM + Rules Humans Customer CSR Sales Mgmt WHSE Mgmt Submit Order Issues FTP Receive Validate Order CSR Teams Order Credit Check SOAP Inventory Check Send Shipment Handle Shipment File Validate Credit Inventory Send Order Check Check Shipment … Various Transports, Message Formats, Routing Logic, Business Rules, Scripting Languages External J2EE App Credit/Bank Legacy Partners Server 10 JBoss World 2009 | Burr Sutter (bsutter@redhat.com)
  • 11. SOA Monitoring and Management 11 JBoss World 2009 | Burr Sutter (bsutter@redhat.com)
  • 12. REST 12 JBoss World 2009 | Burr Sutter (bsutter@redhat.com)
  • 13. Value of REST with an ESB JBossESB is not hard-wired into Web Services nor JMS, it is async event-driven and also allows for sync request- response. RESTful style interactions (GET, PUT, POST, DELETE) allow for Groovy, JavaScript, Ruby, etc clients to more easily consume a service. JBossESB now allows for different content types and use of HTTP response codes. REST is based on HTTP – new http-provider (ESB 4.7) 13 JBoss World 2009 | Burr Sutter (bsutter@redhat.com)
  • 14. New HTTP Provider (jboss-esb.xml) <providers> <http-provider name="http"> <http-bus busid="http_gateway"/> <exception mappingsFile="/http-exception- mappings.properties" /> </http-provider> </providers> <services> <service category="Sales" name="List" description="" invmScope="GLOBAL"> <listeners> <http-gateway name="sales" busidref="http_gateway" urlPattern="sales/*" /> </listeners> <actions mep="RequestResponse"> <action name="createAtomFeed" class="atom_publisher.MyAction"/> </actions> </service> http://localhost:8080/MyESBArchive/http/sales/* </services> 14 JBoss World 2009 | Burr Sutter (bsutter@redhat.com)
  • 15. ESB Transport Mediation Use a network-based protocol between JVMs Clients Intake_Servic Logic_Servic Java e JMS e SLS .NET WS JMS B Actio Actio DB InVM POJ n n JavaScript HTTP * O Service to Service invocation in the same JVM 15 JBoss World 2009 | Burr Sutter (bsutter@redhat.com)
  • 16. ATOM Demo 16 JBoss World 2009 | Burr Sutter (bsutter@redhat.com)
  • 17. Complex Event Processing 17 JBoss World 2009 | Burr Sutter (bsutter@redhat.com)
  • 18. ESP + CEP via ESB, Rules & JON Many Streams Or Flows ESB: consumption, capture, transformation, routing, orchestration Rules: selection, aggregation, correlation, generation and publication Governance Tools Repository: for editing, versioning, testing JON: start/stop services, monitor and alert on service and publishing new rules and SOA and action-level performance, monitor and alert on artifacts business metric values 18 JBoss World 2009 | Burr Sutter (bsutter@redhat.com)
  • 19. Event Declaration & Selection declare StockTick @role( event ) @expires( 2m ) end rule "average over last minute" when $stat : Statistics( $symbol : symbol ) Number( $av : doubleValue ) from accumulate( StockTick( symbol == $symbol, $p : price ) over window:time( 1m ) from entry-point average( $p ) ) then modify( $stat ) { average = $av } end 19 JBoss World 2009 | Burr Sutter (bsutter@redhat.com)
  • 20. Deal flow – Business Interceptor Submit Order Issues Receive Order Validate Order CSR Teams Credit Check Inventory Check Send Shipment Handle Shipment Data Market Monitor Of Interest Significant Manager Replenishment Inventory Schedule Supplier Manufacturing Replenishment Manufacturing Alternate Product Parts Available Supplier Available PO Schedule Receiving Cross Dock Urgent Manufacturing Inventory Warehouse Accounting 20 JBoss World 2009 | Burr Sutter (bsutter@redhat.com)
  • 21. Value of CEP – Drools Fusion Stateful Rules Engines live in ESB Nodes, they retain the real-time history of the event flow Rules look for significant/interesting events in the stream, expiring older, insignificant events (memory management) – stateless rules engines/ESB nodes can route to stateful engines. Event data can be aggregated/accumulated over a time window or event series New events or messages back through the ESB can be generated, providing an alerting mechanism. 21 JBoss World 2009 | Burr Sutter (bsutter@redhat.com)
  • 22. CEP via JBossESB Clients Intake_Servic Normal_Processing_Servic Java e JMS e Rules JMS BPM .NET WS Action Action JavaScript HTTP JVM1 JVM2 Identification Business Selection Process Raw Events Events CEP_Stateful_Servic Alert  e _Processing_Service JMS Rules Action JMS BPM Stream Action Correlation Aggregation JVM4 JVM3 In-Memory Event 22 JBoss World 2009 | Burr Sutter (bsutter@redhat.com)
  • 23. CEP Demo 23 JBoss World 2009 | Burr Sutter (bsutter@redhat.com)
  • 24. Infinispan + ESB 24 JBoss World 2009 | Burr Sutter (bsutter@redhat.com)
  • 25. Quick Introduction: Infinispan Spiritual successor to JBoss Cache > Data Grid Still a “peer to peer” architecture, client-server is also available JSR 107 – JCACHE Speaks REST, memcached and a custom binary protocol Improve response times for service requests Reduce load on critical backend systems Improve fault tolerance, throughput, performance Linear scalability Predictable latency under increasing load Access to more than a single JVM's Heap 25 JBoss World 2009 | Burr Sutter (bsutter@redhat.com)
  • 26. Service Result Cache CICS Data Grid request service 1 <XML> service 2 </XML> POJOs service 3 Client response DB ESB and/or BPEL Results of service invocations to “expensive” resources can be cached by the middle-tier architecture. Transformations to POJOs can be time consuming 26 JBoss World 2009 | Burr Sutter (bsutter@redhat.com)
  • 27. Hoppity, Hop, Hop JVM1 JVM2 JVM3 <XML> Intake Store Process Service Service Service </XML> j B ORM P Validation M Scoring Rules DB Drools Hibernate Serializing large XML, transforming multiple times, serializing large POJOs across multiple network/JVM boundaries can be expensive 27 JBoss World 2009 | Burr Sutter (bsutter@redhat.com)
  • 28. Still Hopping, less load <XML> Intake Store Process Service Service Service </XML> j B P M Keep the transformed ORM version, send the key to Validation Scoring the cache Rules claim check pattern DB 28 JBoss World 2009 | Burr Sutter (bsutter@redhat.com)
  • 29. Data Grid Demo 29 JBoss World 2009 | Burr Sutter (bsutter@redhat.com)
  • 30. BPEL 30 JBoss World 2009 | Burr Sutter (bsutter@redhat.com)
  • 31. Simple BPEL Process Structure MyProcess.bpel Import Partnerlinks Variables Sequence Receive Any Assign Web Service External Invoke Consumer Service Assign Reply WSDL WSDL The contract/interface The contract/interface of the PartnerLink /Sequence of the PartnerLink of the CONSUMED service of the EXPOSED service 31 JBoss World 2009 | Burr Sutter (bsutter@redhat.com)
  • 32. Tools – BPEL Editor 32 JBoss World 2009 | Burr Sutter (bsutter@redhat.com)
  • 33. BPEL Palette 33 JBoss World 2009 | Burr Sutter (bsutter@redhat.com)
  • 34. Partner Link Properties 34 JBoss World 2009 | Burr Sutter (bsutter@redhat.com)
  • 35. Tools – WSDL Editor 35 JBoss World 2009 | Burr Sutter (bsutter@redhat.com)
  • 36. BPEL Resources http://www.jboss.org/riftsaw Riftsaw Forums WS-BPEL Primer: http://docs.oasis-open.org/wsbpel/2.0/Primer/wsbpel-v2.0-Primer.html WS-BPEL 2.0 Specification: http://docs.oasis-open.org/wsbpel/2.0/OS/wsbpel-v2.0-OS.html Apache Ode http://ode.apache.org/ 36 JBoss World 2009 | Burr Sutter (bsutter@redhat.com)
  • 37. 37 JBoss World 2009 | Burr Sutter (bsutter@redhat.com)
  • 38. Professional Enterprise Support RESTful HTTP – SOA Platform 5 (Q1 2010) CEP – SOA Platform 5 (Technology Preview) Infinispan – SOA Platform 5.1 or 6.0 (TBD) BPEL – BPEL Platform 2.0 (Q1 2010) For more information at JBoss World 2009 ESB – Kevin Conner (Newcastle) CEP via Drools Fusion – Edson Tirelli (Toronto) Infinispan – Manik Surtani (London) BPEL via Riftsaw – John Graham (Boston) 38 JBoss World 2009 | Burr Sutter (bsutter@redhat.com)
  • 39. 39 JBoss World 2009 | Burr Sutter (bsutter@redhat.com)
  • 40. 40 JBoss World 2009 | Burr Sutter (bsutter@redhat.com)