41
JBoss SOA Platform 4.2 – Deep Dive Burr Sutter February 2008

JBoss SOA Platform 4.2 – Deep Dive Burr Sutter February 2008

Embed Size (px)

Citation preview

Page 1: JBoss SOA Platform 4.2 – Deep Dive Burr Sutter February 2008

JBoss SOA Platform 4.2 – Deep DiveBurr Sutter

February 2008

Page 2: JBoss SOA Platform 4.2 – Deep Dive Burr Sutter February 2008

Questions: [email protected]

EJB

WS

HibernateJPA

JMS

JCA

Servlet

JSP

SOAP/WSDL

RMIBPM

Rules

App Server vs ESB for SOA

EJB

WS

HibernateJPA

JMS

JCA

Servlet

JSP

SOAP/WSDL

RMI

Application ServerBusiness Service Enablement Platform

Page 3: JBoss SOA Platform 4.2 – Deep Dive Burr Sutter February 2008

Questions: [email protected]

App Server vs ESB for SOA

Load Balancer

Service ClusteringStateful Fault Tolerance/Smart Load Balancing

Page 4: JBoss SOA Platform 4.2 – Deep Dive Burr Sutter February 2008

Questions: [email protected]

Registry& Messaging

App Server vs ESB for SOA

Accounting

CRM

Billing

Inventory

Routing/Orchestration

Page 5: JBoss SOA Platform 4.2 – Deep Dive Burr Sutter February 2008

Questions: [email protected]

Registry& Messaging

App Server vs ESB for SOA

Java

.NET

LAMP

Legacy

FIREWALL

Partners

Transformation

Routing/Orchestration

FTPFileTCP

SOAP

RESTJMS

Page 6: JBoss SOA Platform 4.2 – Deep Dive Burr Sutter February 2008

Questions: [email protected]

Registry& Messaging

App Server vs ESB for SOA

Java

.NET

LAMP

Legacy

FIREWALL

Partners

Transformation

Routing/Orchestration

FTPFileTCP

SOAP

RESTJMS

ESB

Note: an ESB still runs in a JVMoften that is an App Server

Page 7: JBoss SOA Platform 4.2 – Deep Dive Burr Sutter February 2008

Questions: [email protected]

An Integration Challenge

BrowserB2E

Admin

DB

HQ(consumer &

producer)

MQ VPN

Master Data

WebService CC Auth

Reporting Engine

AccountingPackage(consumer)

ASCII

ASCIIInternetFTPB2B

Partner(consumer)

Scheduled Service

POS(consumer)

WebService

BrowserB2C

eCommerce

Internet

Page 8: JBoss SOA Platform 4.2 – Deep Dive Burr Sutter February 2008

Questions: [email protected]

SOA Platform 4.2

Declarative Transformation includes:Message Normalization,Validation, Enrichment,

Via XSLT, Groovy, Java, StringTemplate, FreeMarker

ServiceRegistry

UDDI

ESB

MessageStore

Transformation Routing

Infrastructure Services

Security Management

DeclarativeOrchestration

Engine

BPELjPDL

ProcessStore

EventNotification

Pluggable Architecturefor integrating infrastructure services

Web Services

EJB

POJOs

Java EE 5

Business ServiceComponents

BusinessData

JCA

RDBMSLegacyCOTS

Business Servicesrun within a container or standalone

Service Data Object

Service Component Architecture

HTTP(S)

(S)FTP

File

JMS

Email

SOAPExcel

Browser

Java

Native

ASCIIXML

Binary

Transports

Web

SQL

Event Listeners and Gateways provide transport mediation

Socket

Hibernate

JCA/Inflow

CustomAction

Seam

Drools

Spring

Groovy

Page 9: JBoss SOA Platform 4.2 – Deep Dive Burr Sutter February 2008

Questions: [email protected]

SOA Platform 4.2

ServiceRegistry

UDDI

ESB

MessageStore

Transformation Routing

Infrastructure Services

Security Management

DeclarativeOrchestration

Engine

BPELjPDL

ProcessStore

EventNotification

Pluggable Architecturefor integrating infrastructure services

Web Services

EJB

POJOs

Java EE 5

Business ServiceComponents

BusinessData

JCA

RDBMSLegacyCOTS

Business Servicesruns within a container or standalone

Service Data Object

Service Component Architecture

HTTP(S)

FTP

File

JMS

Email

SOAPExcel

Browser

Java

Native

ASCIIXML

Binary

Transports

Web

SQL

Event Listeners and Actions provide transport mediation

Socket

Hibernate

JCA/Inflow

CustomAction

Seam

Drools

Spring

Groovy

Now Future Partners

BPELUDDI v3

S

S

Page 10: JBoss SOA Platform 4.2 – Deep Dive Burr Sutter February 2008

Questions: [email protected]

ESB++ Scenario

HTTP

FTP

File

JMS

Email

SOAP

SQL

Custom

HTTP

FTP

File

JMS

Email

SOAP

SQL

Custom

jBPM

Rules

EJB WS

HibernateJPA

J2EE/Java EE 5 Services

JMS JCA

Page 11: JBoss SOA Platform 4.2 – Deep Dive Burr Sutter February 2008

Questions: [email protected]

Service Federation

Registry& Messaging

Transformation Services Cluster

Rules Services Cluster

Order Validation

Credit Check

Process Store

Customer Inquiry

Customer Update

Accounting

Order Services

Routing Services

Customer Services

* JVM

Order Validation

Credit Check

Shipping Calc

Inventory Check

Inventory Update

Warehouse Services

Shipping Calc

Inventory Check

Inventory Update

Shipping Calc

Inventory Check

Inventory Update

Customer Inquiry

Customer Update

Accounting

Page 12: JBoss SOA Platform 4.2 – Deep Dive Burr Sutter February 2008

Questions: [email protected]

ESB Definition

• There is NO J2EE-like specification with a TCK that can define and validate an ESB like there is for App Servers.

• ESBs are categorized by their capabilities – some come from a heritage of EAI and others of MOM.

• Capabilities:– Message delivery– Transport protocol mediation– Event capture– Intelligent routing– Orchestration– Transformation– BPM– Adapters– And much, much more…

Page 13: JBoss SOA Platform 4.2 – Deep Dive Burr Sutter February 2008

Questions: [email protected]

JBossESB 4.2 provides

• Message delivery– JMS (JBossMQ, JBoss Messaging, ActiveMQ, MQSeries, Oracle AQ, TIBCO EMS)– FTP, SOAP, email, database, shared file system

• Action chaining/pipeline – For custom service enablement & mediation

• Transformation– XSLT, Java, Groovy, StringTemplate, Freemarker

• Content-based routing– JBoss Rules, XPath DSL– Recipient List/Static Routing is also supported

• Orchestration – BPM, Intelligent routing, EIPs and hot deployment

• Registry– JAX-R based– UDDI support out-of-the-box

• Message Store• Gateways• Extensive examples and documentation• And more…

Page 14: JBoss SOA Platform 4.2 – Deep Dive Burr Sutter February 2008

Questions: [email protected]

JBoss ESB 4.2

• JMX Microkernel

• Federated Clustering

• WS-*– SOAP

– WSDL

– JAX-WS Annotated POJO Endpoints

– EJB Endpoints

– JAXB 2.0

• BPEL 2.0

• New Deployment Architecture

• .esb Archive

• Hot Deployable Core Services

• Content Based Filter

• Business Rules Services

• Native Process Orchestration

• Hibernate Gateway/Listener

• HTTP Gateway/Listener

• Groovy Scripting

• Declarative Message Store

• JCA Container

• Spring Action AOP & POJO

• Monitoring & Mgmt Tools

• Additional EIP examples

Page 15: JBoss SOA Platform 4.2 – Deep Dive Burr Sutter February 2008

Questions: [email protected]

Action Pipeline (in a Service)

FTP Action Action Action ActionBusiness

LogicComponent

TransformationCSV to XML

TransformationXML to POJO

RoutingSplitter

orBPM

LoggingAuditTrail

My_Registered_Service

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

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.

Action

BusinessLogic

Invocation

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

Page 16: JBoss SOA Platform 4.2 – Deep Dive Burr Sutter February 2008

Questions: [email protected]

Out of the Box Actions

• AbstractSpringAction• Aggregator• BeanConfiguredAction• BpmProcessor• BusinessRulesProcessor• ByteArrayToString• ContentBasedRouter• ContentBasedWiretap• GroovyActionProcessor• HttpRouter• JMSRouter• LongToDateConverter• MessageFilter

Refer to the MessageActionGuide.pdf

• MessagePersister• Notifier• ObjectToCSVString• ObjectToXStream• SmooksTransformer• SOAPProcessor• SOAPClient• StaticRouter• StaticWiretap• SystemPrintln• XStreamToObject

Page 17: JBoss SOA Platform 4.2 – Deep Dive Burr Sutter February 2008

Basic Service Demo

Page 18: JBoss SOA Platform 4.2 – Deep Dive Burr Sutter February 2008

Questions: [email protected]

Content Based Routing

SOAP Action

DBPOJO

Platinum_Service

FTP

ASCIIXML

Binary

Action

Ordering_Service

Randomly grab orders for review – tracer andKeep a total of all orders flowing through the system

SOAP Action

Special_Handling

EJB

Orders over 12K or from Platinum customers

DB

Orders from customers in certain states/countries

Page 19: JBoss SOA Platform 4.2 – Deep Dive Burr Sutter February 2008

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 : “express";end

rule "Routing Rule using XPATH Less" when xpathLessThan "/Order/@totalAmount", "50.0" then Log : "Really It's NORMAL Shipping"; Destination : “normal";end

Destination is determined by the jboss-esb.xml

Page 20: JBoss SOA Platform 4.2 – Deep Dive Burr Sutter February 2008

Questions: [email protected]

Load Balancing & Fail-Over

The same discount_service.esb can be deployed to multiple ESB instances/nodes. Each one is a new EPRs in the registry. The routing engine is clever enough to load-balance and fail-over between the various EPRs. Should no EPR be available, it will scheduled the message for redelivery, waiting N seconds and retrying all possible EPRs found at that time.

Page 21: JBoss SOA Platform 4.2 – Deep Dive Burr Sutter February 2008

Load-Balancing Demo

Page 22: JBoss SOA Platform 4.2 – Deep Dive Burr Sutter February 2008

Questions: [email protected]

Deployment Options

• 1) ESB “within” an Application Server – Users have existing investments in the J2EE/Java EE App Servers and wish to run the ESB as a set of components in that App Server.

– JBoss ESB can run “within” the JBoss Enterprise Application Platform 4.2

• 2) ESB “beside” an Application Server – Users wish to leave their existing application server environments untouched but still add mediation, SOA & integration capabilities.

– JBoss ESB has its own lightweight engine/container for the hosting mediation services. It can run “beside” your existing middleware from your vendor of choice.

• 3) ESB “standalone” in a J2SE environment – this option is primarily for development & testing purposes

Page 23: JBoss SOA Platform 4.2 – Deep Dive Burr Sutter February 2008

Questions: [email protected]

Management & Monitoring

• 4.2 Release is focused on JMX instrumentation, the ability to monitor the health and load of every distributed service as well as start, stop & restart them remotely.

Page 24: JBoss SOA Platform 4.2 – Deep Dive Burr Sutter February 2008

Questions: [email protected]

Management & Monitoring Architecture

Page 25: JBoss SOA Platform 4.2 – Deep Dive Burr Sutter February 2008

Mgmt & Monitoring Demo

Page 26: JBoss SOA Platform 4.2 – Deep Dive Burr Sutter February 2008

Orchestration

Page 27: JBoss SOA Platform 4.2 – Deep Dive Burr Sutter February 2008

Questions: [email protected]

Service Oriented Orchestration

Customer

CustomerService

Warehouse

Shipper

Submit Order

Receive Order Validate Order

Credit Check

Inventory Check

Handle Shipment

Send Shipment

CreditAgency

CSR Teams

Issues

a Parse XMLb Transformc Apply Business Rules

Validate Order

a Create Outbound Msgb Handle Responsec Apply Business Rules

Credit Check

a Send to N Warehousesb Handle N Responsesc Determine Best WHSEsd Handle Drop-Ships

Inventory Check

ESB Mediates& Provides Services

a Determine Shipper(s)b Print Labelsc Print Pick Ticketsd Create & Send ASNs

Send Shipment

Page 28: JBoss SOA Platform 4.2 – Deep Dive Burr Sutter February 2008

Questions: [email protected]

Service Orchestration & BPM

Submit Order

Receive Order Validate Order

Credit Check

Inventory Check

Handle Shipment

Send Shipment

CSR Teams

Issues

Customer CSR Sales Mgmt WHSE MgmtHumans

J2EE AppServer

FTP

SOAP

File

ValidateOrder

CreditCheck

InventoryCheck

SendShipment

External Credit/Bank Legacy Partners

Various Transports

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.

Page 29: JBoss SOA Platform 4.2 – Deep Dive Burr Sutter February 2008

Questions: [email protected]

Orchestration Designer

Page 30: JBoss SOA Platform 4.2 – Deep Dive Burr Sutter February 2008

Orchestration Demo

Page 31: JBoss SOA Platform 4.2 – Deep Dive Burr Sutter February 2008

Questions: [email protected]

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, review the webservice_bpel

quickstart, specifically the ActiveBPEL-Orchestration.odp 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

Page 32: JBoss SOA Platform 4.2 – Deep Dive Burr Sutter February 2008

Questions: [email protected]

Active Endpoints Designer

Page 33: JBoss SOA Platform 4.2 – Deep Dive Burr Sutter February 2008

Questions: [email protected]

Active Endpoints Console

Page 34: JBoss SOA Platform 4.2 – Deep Dive Burr Sutter February 2008

Questions: [email protected]

Possible Big Picture

DB

WSClient

Application Server

Enterprise Service Bus

Action

Service D

Action

Service C

Action

Service A

JVM

Spring

DAO

EJB

Rules

Groovy

Action

Service B

ORCHESTRATION

SOAP

BPEL

PartnerLink

PartnerLink

PartnerLink

SOAP

JMS

FTP

SERVICE

LegacyApplication

SOAP

.NETApplication

SOAP

Note: Not every technology is required. This is simply a way to illustrate howthe various technologies might be usedtogether

Page 35: JBoss SOA Platform 4.2 – Deep Dive Burr Sutter February 2008

Questions?

Page 36: JBoss SOA Platform 4.2 – Deep Dive Burr Sutter February 2008

Questions: [email protected]

Where’s the Logic?

• As a scriptlet in your JSP• Behind your Swing Button Click Action Handler• In your Struts Action• In your DAOs• In your Stored Procedures

Page 37: JBoss SOA Platform 4.2 – Deep Dive Burr Sutter February 2008

Questions: [email protected]

The Modern Silo

DB

App

Web Pages: Struts, JSF, Tapestry

DAO/JPA/SLSB/Spring BeanHibernate

Query/Stored Procedure

Browser

Page 38: JBoss SOA Platform 4.2 – Deep Dive Burr Sutter February 2008

Questions: [email protected]

Silos Across the EnterpriseClient

Client Client

Client

CRMOrdering

Accounting Manufacturing

Warehouse

Page 39: JBoss SOA Platform 4.2 – Deep Dive Burr Sutter February 2008

Questions: [email protected]

Integrating Silos (Dump & Load)Client

Client Client

Client

CRMOrdering

Accounting Manufacturing

Warehouse

PHP

MySQL

Web5250

RPG

DB/2 400

VisualBasic

Stored Proc

SQL Server

Struts

DAO

Oracle

DUMPASCII

SOAP

FTP

ASCII

ASCII

VisualBasic

ASCII

FTP

FTP

Page 40: JBoss SOA Platform 4.2 – Deep Dive Burr Sutter February 2008

Questions: [email protected]

Intermediate those Silos

DB

App DAO/JPA/SLSB/Spring BeanHibernate

Query/Stored Procedure

Service 1 Service 2 Service 3

Browser Rich B2B Legacy

Mediation

Service 4 Service 5 Service 6Mediation

Page 41: JBoss SOA Platform 4.2 – Deep Dive Burr Sutter February 2008

Questions: [email protected]

Splice Technique

Web Order Entry

Oracle

Web

JSF

HibernateEJB3

Seam

Web Order Entry 2

DB/2

Web

Struts

HibernateiBatis

SpringInterceptors

Callback Listeners

AOP

JBoss ESB

queuequeue

queuequeue