1 / 59

TITLE SLIDE: HEADLINE

TITLE SLIDE: HEADLINE. JBoss SOA Platform 5 Technical Deep Dive. Presenter name Title, Red Hat Date. Ray Ploski Principal Solutions Architect ray@redhat.com. Swiss Army Application Server. JMS. EJB. Servlet. JNDI. JSP. Transactions. SOA Edition. SMTP. Registry. Repository.

lucky
Download Presentation

TITLE SLIDE: HEADLINE

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. TITLE SLIDE: HEADLINE JBoss SOA Platform 5 Technical Deep Dive Presenter name Title, Red Hat Date Ray Ploski Principal Solutions Architect ray@redhat.com

  2. Swiss Army Application Server JMS EJB Servlet JNDI JSP Transactions

  3. SOA Edition SMTP Registry Repository Orchestration Wiretap HTTP XSLT XML2POJO Process Manager Filter CBR “Governance” Scripting Languages Simple Routers File FTP

  4. Enterprise Integration Patterns File Transfer Recipient List Channel Router/CBR Message Splitter Message Filter Aggregator Message Store Translator/Transformer Enricher Wire Tap Process Manager Content Filter More information at www.enterpriseintegrationpatterns.com

  5. Orchestration (Got Flow) Simple Order Handling Process Customer Submit Order Issues CustomerService Receive Order Validate Order CSR Teams Credit Agency Credit Check Warehouse Inventory Check Send Shipment Shipper Handle Shipment

  6. Services, Process, Orchestration, Flow Customer Submit Order Issues CustomerService Receive Order Validate Order CSR Teams Credit Agency Credit Check Inventory Check Send Shipment Warehouse Shipper Handle Shipment Validate Order Credit Check Send Shipment a Parse XML b Transform c Apply Business Rules a Create Outbound Msg b Handle Response c Apply Business Rules a Determine Shipper(s)‏ b Print Labels c Print Pick Tickets d Create & Send ASNs Inventory Check a Send to N Warehouses b Handle N Responses c Determine Best WHSEs d Handle Drop-Ships ESB Mediates & Provides Services

  7. Action Action Action Action Action The Action Pipeline/Chain Actions are reusable mediation components that can be chained together to form the capabilities of a registered service. Actions can be dynamically added/removed at runtime. My_Registered_Service JMS Business Logic FTP SOAP • Business Logic: • POJO • EJB • WS • Rules • JCA with Adapters • Anything with Java API Transformation CSV to XML RoutingSplitter or BPM Logging Audit Trail Business Logic Invocation Transformation XML to POJO

  8. SOA = ESB + BPM + Rules (JBoss ESB) FTP Submit Order Issues Receive Order Validate Order CSR Teams Credit Check SOAP Inventory Check Send Shipment Handle Shipment File Validate Order Credit Check Inventory Check Send Shipment … Humans Customer CSR Sales Mgmt WHSE Mgmt Various Transports, Message Formats, Routing Logic, Business Rules, Scripting Languages J2EE AppServer Credit/Bank Legacy Partners External

  9. jBPM – Service & Human Orchestration

  10. jboss-esb.xml Editor

  11. ESB Transport Mediation Action Action Use a network-basedprotocol between JVMs Intake_Service Logic_Service Clients JMS Java DB SLSBPOJO JMS WS .NET InVM HTTP JavaScript Service to Serviceinvocation in the sameJVM

  12. Action Action Action ASCIIXML Binary Action Action ESB Services & Actions B_Service DB EJB SOAP A_Service DB POJO FTP C_Service D_Service DB WS JMS JMS

  13. Action Action ASCIIXML Binary Action Content Based Routing & Filtering Orders over 12K or from Platinum customers Platinum_Service SOAP Ordering Service DB POJO FTP Special_Handling EJB SOAP Rules DB Randomly grab orders for review – tracer and Keep a total of all orders flowing through the system Orders from customers in certain states/countries

  14. Warehouse Services Shipping Calc Shipping Calc Shipping Calc Inventory Check Inventory Check Inventory Check Inventory Update Order Validation Inventory Update Order Validation Inventory Update Credit Check Credit Check Registry& Messaging Rules Services Cluster Customer Inquiry Customer Inquiry Customer Update Customer Update Accounting Accounting Service Federation via Registry Order Services Process Store Routing Services Customer Services Transformation Services Cluster * JVM

  15. Discount Service JMS Action Action ESB 1 Intake Service Discount Service SOAP Registry FTP Action Action ESB 2 Discount Service SOAP Action Action ESB 3 Automatic Load-balancing

  16. Shipping Calc Shipping Calc Inventory Check Shipping Calc Inventory Check Inventory Update Inventory Check Inventory Update Inventory Update Customer Inquiry Customer Update Accounting Federated Management Architecture Order Services Order Validation Order Services Credit Check Warehouses JBoss Operations Agent Firewall Agents Network Server History Agent Agent Customer Services Rules Services Discount Calculation Priority Calculation Server Shipping Router ESB Node

  17. SOA Monitoring and Management

  18. Alerting

  19. Monitored Metrics Automatic Monitoring, Alerting & Management for Every Service: Start, Stop Message Count Messages Per Minute Bytes Succeeded Bytes Failed Messages Failed Processing Time Every Action: Message Count Messages Per Minute Bytes Succeeded Bytes Failed Messages Failed Processing Time And JMS destinations, datasources, HTTP resources,EJBs, Hibernate, etc.

  20. New Admin Console (http://localhost:8080/admin-console)

  21. New jUDDI Console

  22. ASCIIXML Binary Excel SOA Middleware Current Future Event Listeners and Actions provide transport mediation Pluggable Architecturefor integrating infrastructure mediation services Business Servicesruns within a container or standalone HTTP Transports JCA J2EE/Java EE 5 (S)FTP EJB Infrastructure Services Seam File POJOs Transformation Routing Security Management JMS* Drools ESB Email DSL Decision Table SQL Spring Hibernate Groovy Jython JCA/Inflow ServiceRegistry MessageStore Declarative OrchestrationEngine jPDL BPEL Event Notification BAM CEP(TP) Beanshell Socket JRuby DataGrid Web Services (Proxy) InVM Service Component Architecture SOAP Service Data Object ProcessStore Native(SI) Seam Browser BusinessData DataSources EJB MetaMatrix JMS* - JBoss Messaging, IBM WebsphereMQ, TIBCO EMS

  23. BPMAction FilterAction CEPFusion BPMAction CEP with SOA Platform 5.x Intake_Services Normal_Processing_Service JCA DB Java JMS * JMS .NET WS JavaScript JVM2 HTTP JVM1 BusinessProcessEvents IdentificationSelectionRaw Events CEP_Stateful_Service Alert _Processing_Service JMS JMS CorrelationAggregation ComplexEvents JVM4 RSS Email N JVMs In-MemoryAggregateEvent DB Reference & Historical Datavia Hibernate and/or Data Services * JBoss Messaging, TIBCO EMS, WebSphereMQ, AMQP

  24. Data for SOA – Composite Data Services

  25. New Project Wizards

  26. ESB ProjectExampleTemplates

  27. Rule Editor & Debugger

  28. BRMS: Governance of Rules Services Action Action Action Order JMS FTP SOAP Groovy -DiscoverMessageOrigin RuleServiceContentBasedRouter RuleService:Discount SmooksXML2POJO RuleService:Priority RuleAgent Cache BRMS RuleRepository Categorization/Classification, Editing, Validation & TestingVersioning, Audit – for Policy Managers & Business Analysts [1] https://jira.jboss.org/jira/browse/BRMS-238 [2] https://jira.jboss.org/jira/browse/SOA-1874

  29. Open Source Heritage Apache CXF Apache Tomcat JBoss Web JBoss WS Apache Scout Apache jUDDI JBoss AS Messaging/HornetQ JOPR Groovy JBoss SOA Platform Drools XSLT/XML/JAXB jBPM Apache Commons Smooks JBoss ESB * Many more OSS projects not listed from:jboss.org, codehaus.org, sourcefourge.net, apache.org

  30. WS-BPEL 2.0 - Project Riftsaw

  31. New and Improved in SOA Platform 5 Based on EAP5/AS5 with Java EE 5 Admin Console: A new single-node console Individual Message Alerting Improved HTTP Gateway & UDP Gateway XSLT Transformer CBR Enhancements: XPath & Regex SchemaValidationAction SOAPProxy: Web Service Proxy Synchronous Service Invocation Action UDDIv3 Business Rule Engine 5 CEP Technology Preview SAML Technology Preview New Eclipse Plug-ins for JBoss Developer Studio

  32. Single Message Alerting <service category="MyESBServices" name="SimpleService1" description="Hello World" alertTimeThreshold="420" alertLengthThreshold="10" > Service-Level: any message that takes longer than 420 milliseconds or is larger than 10 bytes creates an alert Action-level: any message that takes longer than 30 milliseconds or is larger than 50 bytes creates an alertThe Alert shows up in JON <action name="action3" class="org.jboss.soa.esb.samples.quickstart.messagealerts.DelayAction" process="delayMessage" alertTimeThreshold="30" alertLengthThreshold="50"> </action> quickstarts\messagealerts

  33. HTTP Gateway Introduction Supports GET, PUT, POST and DELETE Supports access to the full query string/URL arguments Supports access to the full HTTP headers Supports manipulation of the full HTTP response <providers> <http-provider name="http"> <http-bus busid="secureFriends"> <!-- Only users in the "friend" role are allowed access via the "GET" method. Unspecified methods are not protected (i.e. are allowed)... --> <allowed-roles> <role name="friend" /> </allowed-roles> <protected-methods> <method name="GET" /> <method name="POST" /> </protected-methods> </http-bus> <!-- Global exception mappings file... --> <exception mappingsFile="/http-exception-mappings.properties" /> </http-provider> </providers> <listeners> <!-- Receives: http://<host>:<port>/Quickstart_http_gateway/http/sales/* but will be forced to authenticate because the "sales" bus has basic auth configured (above)... --> <http-gateway name="sales" busidref="secureFriends" urlPattern="sales/*" /> </listeners> quickstarts\http_gateway

  34. HTTP Gateway Configuration <providers></providers> …<service category="lab" description="lab" invmScope="GLOBAL" name="Lab1"> <listeners> <http-gateway name="HttpGateway1" urlPattern="/stuff/happens/*"/> </listeners>…URL: http://localhost:8080/<project_name>/http/stuff/happens/go --------------------------------------------- OR ------------------------------------------------------- <providers> <http-provider name="HttpProvider1"> <http-bus busid="HttpProvider1"/> </http-provider>… <service category="lab" description="lab" invmScope="GLOBAL" name="Lab1"> <listeners> <http-gateway busidref="HttpProvider1" name="HttpGateway1" urlPattern="/hit/me/*"/> </listeners>…URL: http://localhost:8080/<project_name>/http/hit/me/go

  35. UDP Gateway New UDP Gateway/listener based in Mina <listeners> <udp-listener name="udp-listener" host="localhost" port="9999" is-gateway="true"/> </listeners>

  36. New XSLT Transformer <XML> <xsl:stylesheet> <XML> <XML> </XML> </xsl:stylesheet> </XML> </XML> <action name="proxy-transform-old-to-new" class="org.jboss.soa.esb.actions.transformation.xslt.XsltAction"> <property name="templateFile" value="/Proxy_Versioning_RequestTransform.xsl"/> <property name="failOnWarning" value="true"/> <property name="resultType" value="STRING"/> </action> XSLT 1.0 based on the underlying JVM implementation Makes simple XSLT usage easier

  37. XSLT vs Smooks Transformer

  38. XSLT vs Smooks Transformer Use XsltAction when... Performing straightforward structural transforms on XML Use SmooksAction when... Processing XML containing data “sub-structures” within the XML Structure Processing non-XML data e.g. CSV, JSON, EDI, Custom formats You prefer to use a more Imperative style, Java based templating framework like FreeMarker “Model Driven Transforms” You need to bind data from your message (XML, CSV, JSON etc) into your Java Object model You need to process huge messages by Splitting and Routing the message To File, JMS, DB, ESB Endpoint, extend for custom endpoint types You need to perform some Rule-based validation on your message (XML, CSV, JSON, EDI etc) <trackingNumbers> Speedy:ZX5-20030294-731 Acme:Previous0987 Zoom:776-ASDAAAA-988 </trackingNumbers>

  39. New Content Based Routers <action class="org.jboss.soa.esb.actions.ContentBasedRouter" name="MyRouter"> <property name="cbrAlias" value="XPath"/> <property name="destinations"> <namespace prefix="ord" uri="http://org.jboss.soa.esb/Order" /> <route-to service-category="BlueTeam" service-name="GoBlue" expression="/ord:Order[@statusCode='0']" /> <route-to service-category="RedTeam" service-name="GoRed" expression="/ord:Order[@statusCode='1']" /> </property> </action> XPath Regex <action class="org.jboss.soa.esb.actions.ContentBasedRouter" name="MyRouter"> <property name="cbrAlias" value="Regex"/> <property name="destinations"> <route-to service-category="BlueTeam" service-name="GoBlue" expression=".*blue.*" /> <route-to service-category="RedTeam" service-name="GoRed" expression=".*red.*" /> </property> </action>

  40. XPath/Regex vs Drools-based CBR XPath – content is XMLexpression="/ord:Order[@statusCode='0']" Regex – content is a Stringexpression=".*blue.*" Drools – content is a POJO – highly complex rule "Highest Priority Orders" when OrderHeader( orderPriority >= 3) then System.out.println("HIGHEST PRIORITY"); destinations.add("SuperSpecialCustomerService"); end

  41. SOAPProxy <action name="proxy-transform-old-to-new"class="org.jboss.soa.esb.actions.transformation.xslt.XsltAction"> <property name="templateFile" value="/Proxy_Versioning_RequestTransform.xsl"/> <property name="failOnWarning" value="true"/> <property name="resultType" value="STRING"/> </action> <action name="proxy-invoke-new-version" class="org.jboss.soa.esb.actions.soap.proxy.SOAPProxy"><!-- this is the NEW endpoint, because we transformed the OLD request to fit it --> <property name="wsdl" value="http://localhost:8080/Quickstart_webservice_proxy_versioning_ws/InvoicingWS?wsdl"/> <property name="wsdlTransform" value="/Proxy_Versioning_WsdlTransform.xml"/></action> Client ESB OriginalService Hide the original endpoint, provide transformation, versioning, routing, “virtualization”

  42. SOAPProxy vs HttpRouter vs ... SOAPProxy action for internal (local) or remote Web Service endpoints – SOAP and WSDL HttpRouter action for a regular HTTP endpoints with fixed URLs RESTful Proxy? GroovyActionProcessor def url='http://ax.phobos.apple.com.edgesuite.net/WebObjects/MZStore.woa/wpa/MRSS/topalbums/limit=10/rss.xml' def stream=Thread.currentThread().getContextClassLoader().getResourceAsStream("rss.xml") def channel = new XmlParser().parse(stream).channel[0] def items = channel.item println channel.title.text() for ( item in items[0..9] ) { println item.title.text() println item.link.text() }

  43. Various UDDIv3 SchemaValidationAction Synchronous Service Invocation SAML – Technology Preview jBPM Job Executor

  44. JBDS 3.0 - Smooks Plug-In Inputs:XML Java/POJO XSD/WSDL CSV EDI JSON Custom Outputs:XML Java/POJO CSV

  45. JBoss ESB Editor Improvements

  46. Web Services Wizard

  47. SOA and BPM Futures WS-BPEL 2.0 Engine & Tools New BPM Console Complex Event Processing Composite Data Services Data Grid (Infinispan) BPMN2 Engine & Tools Business Activity Monitoring

  48. WS-BPEL 2.0 - Project Riftsaw

  49. New BPM Console

  50. ESP + CEP via ESB, Rules & JON Many Streams Or Flows ESB: consumption, capture, transformation, routing, orchestrationRules: selection, aggregation, correlation, generation and publication Governance Tools Repository: for editing, versioning, testing and publishing new rules and SOA artifacts JON: start/stop services, monitor and alert on service and action-level performance, monitor and alert on business metric values

More Related