May Esb Deep Dive V2

  • November 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View May Esb Deep Dive V2 as PDF for free.

More details

  • Words: 1,885
  • Pages: 35
JBoss ESB 4.2 Deep Dive Burr Sutter May 16 2007

JBossESB Deep Dive Webinar May 16 • Describe and demonstrate as many of the ESB 4.2 capabilities as possible in one hour. • Please try to hold your questions until the end. The Q&A portion of this presentation will be conducted via the Elluminate chat window AFTER the completion of the formal presentation. • We can repeat this session as needed, as available – our first scheduled repeat is May 22nd 11:00 AM Eastern • ESB 4.2 MR2 is available for download: http://labs.jboss.com/jbossesb/ • Join our email list for future ESB announcements: https://lists.jboss.org/mailman/listinfo/esb-announce • The PDF of the slides will be available to attendees after the session. Questions: [email protected]

A Real World Scenario

ASCII

ASCII

File System

File System

Source System ASCII

MSG

Data Data

FTP FTP

FTP GET

MQ MQ

Socket Socket

JMS Listener

SQL SQL TCP/IP Socket

JDBC/ODBC Select Update

Questions: [email protected]

The ESB Solution ASCII ASCII

File System

File System

Source System

Receiving System 1

XML JBoss ESB

JMS

Receiving System 2 ASCII ASCII

JMS

XML

File System FTP SOAP

Receiving System N Questions: [email protected]

Receiving System 3

Enterprise Service Bus Event Listeners and Actions provide transport and

Pluggable Architecture

for integrating infrastructure services

transport mediation

Transports

runs within a container or standalone

HTTP(S) Infrastructure Services

FTP Transformation

Routing

Security

Business Service Components Management

File ASCII XML Binary

Business Services

Java EE 5 Web Services

JMS

JBoss ESB

EJB3

Email

POJOs

SQL Notification

Hibernate

JCA

Service Registry

Event Store

Socket

Orchestration & Composition Engine BPEL jPDL

SOAP

Service Component Architecture Service Data Object

Business Data

Excel Browser

Web Seam Portal

* Transformation includes: Message Normalization, Validation, Enrichment, Rules-based and XSLT transforms

RDBMS Legacy COTS Process Store

Questions: [email protected]

ESBs Across The Enterprise Business Service

HTTP/S Transformation

Routing

Security

Management

FTP JSR 181 POJOs

File

JBoss ESB EJB3

JMS

Invoicing/Order Entry

JCA

POJO Email Service Registry

SOAP

Event Store

Composition Engine

Notification

Web Seam

BPEL jPDL Scripting

Process Store

Business Data

Portal

Web Order Entry

Accounting

File Routing

ESB Composition Engine Process Store

BPEL

Security

FTP

SOAP

Service Registry

Shared Distributed Registry

File

JBoss ESB

Email SOAP

Plus Lightweight ESB Architecture

Questions: [email protected]

Service Registry

Event Store

Composition Engine BPEL

Notification

Process Store

Service Federation Warehouse Services Shipping Calc Shipping Calc Shipping Calc Inventory Check Inventory Check Inventory Check Inventory Update Inventory Update Inventory Update

Order Services Order Validation Order Validation Credit Check Credit Check

Process Store

Routing Services

Registry & Messaging

Customer Services Rules Services Cluster Customer Inquiry Customer Inquiry Customer Update Customer Update Accounting Accounting

Transformation Services Cluster

* JVM Questions: [email protected]

Enterprise Service Bus Q6 2006

Event Listeners and Actions provide transport and

Mid 2007

Partners

Future

Pluggable Architecture

for integrating infrastructure services

transport mediation

Transports

runs within a container or standalone

HTTP(S) Infrastructure Services

FTP Transformation

Routing

Security

Business Service Components Management

File ASCII XML Binary

Business Services

Java EE 5 Web Services

JMS

JBoss ESB

EJB3

Email

POJOs

SQL Notification

Hibernate

JCA

Service Registry

Event Store

Socket

Orchestration & Composition Engine BPEL jPDL

SOAP

Service Component Architecture Service Data Object

Business Data

Excel Browser

Web Seam Portal

* Transformation includes: Message Normalization, Validation, Enrichment, Rules-based and XSLT transforms

RDBMS Legacy COTS Process Store

Questions: [email protected]

The Modern Silo Browser

Web

App

DB

Pages: Struts, JSF, Tapestry

DAO/JPA/SLSB/Spring Bean Hibernate

Query/Stored Procedure

Questions: [email protected]

Intermediate those Silos Browser

Mediation

Rich

Service 1

Service 2

Service 4

DB

Legacy

Service 3

DAO/JPA/SLSB/Spring Bean Hibernate

App

Mediation

B2B

Service 5

Service 6

Query/Stored Procedure

Questions: [email protected]

Demo 1

JBossESB 4.2 provides •

Message delivery – –



Action chaining/pipeline –



BPM, Intelligent routing, EIPs and hot deployment

Registry – –

• • • •

JBoss Rules, XPath DSL Recipient List/Static Routing is also supported

Orchestration –



XSLT, Java, Groovy, StringTemplate

Content-based routing – –



For custom service enablement & mediation

Transformation –



JMS (JBossMQ, JBoss Messaging, ActiveMQ, MQSeries, Oracle AQ) (S)FTP, SOAP, HTTP, email, database, shared file system

JAX-R based UDDI support out-of-the-box (Scout and jUDDI)

Message Store Gateways Extensive examples and documentation And more…

Questions: [email protected]

JBoss ESB 4.2 Roadmap • JMX Microkernel • Federated Clustering • WS-* – – – – –

SOAP 1.2 WSDL 1.1 181 Annotated POJO Endpoints EJB 2.1 and EJB 3.0 Endpoints JAXB 2.0

• BPEL 2.0

• • • • • • • • • • •

Advanced Splitter/Aggregator Content Based Filter Business Rules Action Native Process Orchestration Improved SQL Gateway Hibernate Gateway/Listener HTTP Gateway/Listener Groovy Action Message Store Actions JCA Container Additional EIP examples

Questions: [email protected]

ESB Transformation Engine • • • • • •

Validation Enrichment Inline transformations (Fragment based Processing) Profile based XML/non-XML processing Anything to Anything (XML, CSV, binary, X12, POJO) Mix/Match transformers on a single message: – Java – Groovy – StringTemplate – XSLT • 4X performance boost over plain XSLT (Xalan): http://milyn.codehaus.org/Chiba+Integration

Questions: [email protected]

jboss-esb.xml • Configuration for one or more services which show up in the registry. • Deployed as the key element of a .esb archive in 4.2+ • Structure of a .esb archive

META-INF jboss-esb.xml com.mycompany.soa.mycustom.actions MyCustomAction.class Tip: Use one of the quickstarts as your template for your new project. We do assume that you are comfortable with Ant. An Eclipse Project template is under Development and will be available in SVN soon (as of May 16, 2007)

Questions: [email protected]

Hello World – jboss-esb.xml 1 <jbossesb xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schema s/xml/jbossesb-1.0.1.xsd" parameterReloadSecs="5"> <providers> <jms-provider name="JBossMQ" connection-factory="ConnectionFactory"> <jms-bus busid="quickstartGwChannel"> <jms-message-filter dest-type="QUEUE" dest-name="queue/quickstart_helloworld_Request_GW"/> <jms-bus busid="quickstartEsbChannel"> <jms-message-filter dest-type="QUEUE" dest-name=" queue/quickstart_helloworld_Request_ESB"/>

Questions: [email protected]

Hello World – jboss-esb.xml 2 <services> <service category="FirstServiceESB" name="SimpleListener" description="Hello World"> <listeners> <jms-listener name="JMS-Gateway" busidref="quickstartGwChannel" maxThreads="1" is-gateway="true"/> <jms-listener name="helloWorld" busidref="quickstartEsbChannel" maxThreads="1"/>

Questions: [email protected]

Hello World - action package org.jboss.soa.esb.samples.quickstart.helloworld; import org.jboss.soa.esb.message.Message; public class MyListenerAction { public Message displayMessage(Message message) { System.out.println("Body: " + new String(message.getBody().getContents())); // modify the contents, do anything Java can do… return message; // always return the message for the “chain” } public MyListenerAction(ConfigTree config) { // this constructor will be used to handle any jboss-esb.xml } // custom property configuration }

Questions: [email protected]

Action Pipeline (in a Service) 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

FTP

Action

Action

Transformation CSV to XML

Action

Routing Splitter or BPM

Action

Logging Audit Trail

Action

Business Logic Invocation

Transformation XML to POJO This box can also represent the ESB’s JVM – actions are “in VM”

Questions: [email protected]

Business Logic Component

Business Logic: • POJO • EJB • WS • Rules • JCA with Adapters • Anything with Java API

Demo 2

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 Questions: [email protected]

Routing, Services & Actions A_Service

Action

SOAP

EJB

DB

B_Service

ASCII XML Binary

FTP

Action

Action

C_Service

JMS

POJO

DB

D_Service

Action

JMS

Action

Questions: [email protected]

WS

DB

Content Based Routing Orders over 12K or from Platinum customers

Platinum_Service Action

SOAP

Ordering_Service Action

FTP

POJO

DB

ASCII XML Binary

Special_Handling Action

SOAP

EJB

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

Questions: [email protected]

Content Based Routing Engine • • •

Currently based on JBoss Rules – supports XPATH DSL Access to the complete Header and Body/Contents for evaluation Zero to many destinations rule "Routing Rule using XPATH Greater" when xpathGreaterThan "/Order/@totalAmount", "50.0" then Log : "Really It's EXPRESS Shipping"; Destination : "ExpressShipping:ExpressShippingService"; end rule "Routing Rule using XPATH Less" when xpathLessThan "/Order/@totalAmount", "50.0" then Log : "Really It's NORMAL Shipping"; Destination : "NormalShipping:NormalShippingService"; end

Destination : “ServiceCategory:ServiceName” Questions: [email protected]

Splitter/Aggregator Quickstart Also demonstrates, federated ESB, multi-JVM capabilities

Inbound Splitter JMS

Action

Red Action

JMS

Aggregator_Service

Green Action

JMS

JMS

Blue JMS

Action

Questions: [email protected]

Action

Demo 3

Orchestration (Got Flow) Simple Order Handling Process Customer

Submit Order

Customer Service

Receive Order

Credit Agency Warehouse

Issues

Validate Order

CSR Teams

Credit Check

Inventory Check

Shipper

Send Shipment

Handle Shipment

Customers submit orders via web browser, FTP and Web Services. The system receives and validates the order, errors are sent to the appropriate CSR Team A credit check request is made, any areas of concern are sent to the appropriate CSR Team An inventory check request across multiple warehouses is sent, lack of availability goes to the CSRs. Assuming the order is valid, checks credit and available inventory, pick tickets are printed, shipping labels are printed, someone throws the parts into a crate or places on a pallet and puts the package by the loading dock. Various shipping companies are employed. Questions: [email protected]

Service Oriented Orchestration Customer

Submit Order

Customer Service

Receive Order

Issues

Validate Order

Credit Agency

CSR Teams Credit Check Inventory Check

Warehouse Shipper

Send Shipment Handle Shipment

Validate Order

Credit Check

a Parse XML b Transform c Apply Business Rules

a Create Outbound Msg b Handle Response c Apply Business Rules Inventory Check

ESB Mediates & Provides Services

a Send to N Warehouses b Handle N Responses c Determine Best WHSEs d Handle Drop-Ships Questions: [email protected]

Send Shipment a Determine Shipper(s) b Print Labels c Print Pick Tickets d Create & Send ASNs

Service Orchestration & BPM Humans

Customer

CSR

Sales Mgmt

WHSE Mgmt

Submit Order

FTP

Receive Order

Issues Validate Order

CSR Teams Credit Check

SOAP

Inventory Check

Send Shipment Handle Shipment

File Validate Order

Credit Check

Inventory Check

Send Shipment



Various Transports

External

J2EE App Server

Credit/Bank

Legacy

Partners

An ESB Service is visible in the UDDI registry automatically. A single ESB Service may or may not expose a WSDL. It may use out-of-the-box actions, custom actions and/or consume external services from various sources. Focus on the reuse of existing infrastructure and assets. Questions: [email protected]

Orchestrated/Composed Services JVM BPM External Actor

Validation_Service DAO

DB

Action

POJO

DB

Action

EJB

DB

Action External Actor

External Actor

Pricing_Service

Order_Service Action

Questions: [email protected]

Orchestration Designer

Questions: [email protected]

Demo 4

BPEL • We are partnering with Active Endpoints • www.activebpel.org • Download their open source BPEL engine and contact them for their free design tool. • As for ESB 4.2 MR2, review the webservice_bpel quickstart, specifically the ActiveBPELOrchestration.pdf under that quickstart’s Docs folder. • And engage us in the online forums: http://www.jboss.com/index.html?module=bb&op=viewforum&f=246

Questions: [email protected]

Possible Big Picture SOAP

.NET Application JVM Enterprise Service Bus

BPEL Partner Link

WS Client

SOAP

Partner Link

Service A JMS

SOAP

Partner Link FTP

S E R V I C E

O R C H E S T R A T I O N

Action

Service B

SOAP

Rules

Action

Spring Service C Action

EJB

DB

Service D

Application Server Note: Not every technology is required. This is simply a way to illustrate how the various technologies might be used together

Groovy

Legacy Application

Questions: [email protected]

Action

DAO

Conclusions • • • • •

Open Source will make SOA happen It is NOT all about Web Services ESB a solution for application/process integration. ESB is about service intermediation. JBossESB architecture is key to flexibility and future-proofing – Forms the backbone of our SOA strategy

• DOWNLOAD ESB 4.2 MR2

Questions: [email protected]

Related Documents