0% found this document useful (0 votes)
71 views41 pages

Jboss Soa Platform 4.2 - Deep Dive: Burr Sutter February 2008

The document discusses JBoss SOA Platform 4.2 and compares application servers to enterprise service buses (ESBs) for service-oriented architecture (SOA). It provides overviews of core ESB capabilities like transformation, routing, orchestration, and management. Specific sections cover deployment options, content-based routing demonstrations, management and monitoring, and service orchestration examples using the JBoss ESB.

Uploaded by

lingaoraapp
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
71 views41 pages

Jboss Soa Platform 4.2 - Deep Dive: Burr Sutter February 2008

The document discusses JBoss SOA Platform 4.2 and compares application servers to enterprise service buses (ESBs) for service-oriented architecture (SOA). It provides overviews of core ESB capabilities like transformation, routing, orchestration, and management. Specific sections cover deployment options, content-based routing demonstrations, management and monitoring, and service orchestration examples using the JBoss ESB.

Uploaded by

lingaoraapp
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 41

JBoss SOA Platform 4.

2 Deep Dive
Burr Sutter February 2008

App Server vs ESB for SOA

Servlet Servlet JMS JSP


RMI

JMS BPM

JSP
RMIEJB

EJB

WS SOAP/WSDL SOAP/WSDL JCA JCA

WS

Rules Hibernate Hibernate JPA JPA

Application Server Business Service Enablement Platform


Questions: [email protected]

App Server vs ESB for SOA

Load Balancer

Service Clustering Stateful Fault Tolerance/Smart Load Balancing


Questions: [email protected]

App Server vs ESB for SOA

Accounting

Registry & Messaging

Billing

Routing/Orchestration

CRM

Inventory

Questions: [email protected]

App Server vs ESB for SOA

Transformation

Java
REST JMS SOAP

LAMP Registry & Messaging


FTP File TCP

F I R E W A L L

Partners

Routing/Orchestration

.NET
Questions: [email protected]

Legacy

App Server vs ESB for SOA


ESB

Transformation

Java
REST JMS SOAP

LAMP

Registry & Messaging

FTP File TCP

F I R E W A L L

Partners

Routing/Orchestration

.NET

Note: an ESB still runs in a JVM Legacy often that is an App Server
Questions: [email protected]

An Integration Challenge
Browser B2C eCommerce

Internet

Browser B2E Admin

Master Data

B2B Partner
(consumer)

FTP

Internet

ASCII

MQ

VPN

Scheduled Service

Web Service Web Service POS


(consumer)
ASCII

HQ (consumer & producer)

CC Auth

DB Accounting Package
(consumer)

Reporting Engine

Questions: [email protected]

SOA Platform 4.2


Event Listeners and Gateways provide transport
mediation
Transports

Pluggable Architecture

for integrating infrastructure services

Business Services

run within a container or standalone

HTTP(S) (S)FTP File


Business Service Components Infrastructure Services Transformation Routing Security Management

Java EE 5 Web Services


JCA

ASCII XML Binary

JMS Email SQL Hibernate JCA/Inflow Socket SOAP


Service Registry UDDI Message Store Declarative Orchestration Engine BPEL jPDL

EJB Seam

ESB

POJOs Drools
Event Notification Custom Action

Spring Groovy
Service Component Architecture Service Data Object

Excel
Browser

Process Store

Web Native Java


Declarative Transformation includes: Message Normalization, Validation, Enrichment, Via XSLT, Groovy, Java, StringTemplate, FreeMarker

Business Data
RDBMS Legacy COTS

Questions: [email protected]

SOA Platform 4.2


Now Future Partners

Event Listeners and Actions provide transport mediation


Transports S HTTP(S) S

Pluggable Architecture

for integrating infrastructure services

Business Services

runs within a container or standalone

FTP File

Business Service Components Infrastructure Services Transformation Routing Security Management

Java EE 5 Web Services


JCA

ASCII XML Binary

JMS Email SQL Hibernate JCA/Inflow Socket SOAP


Service Registry UDDI UDDI v3 Message Store Declarative Orchestration Engine BPEL BPEL jPDL

EJB Seam

ESB

POJOs Drools
Event Notification Custom Action

Spring Groovy
Service Component Architecture Service Data Object

Excel
Browser

Process Store

Web Native Java

Business Data
RDBMS Legacy COTS

Questions: [email protected]

ESB++ Scenario

HTTP FTP File JMS

HTTP FTP

jBPM

File JMS

Email
SOAP SQL Custom

Email
SOAP SQL Custom

Rules

J2EE/Java EE 5 Services
JMS EJB WS Hibernate JPA JCA

Questions: [email protected]

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]

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

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 For custom service enablement & mediation XSLT, Java, Groovy, StringTemplate, Freemarker JBoss Rules, XPath DSL Recipient List/Static Routing is also supported BPM, Intelligent routing, EIPs and hot deployment JAX-R based UDDI support out-of-the-box

Action chaining/pipeline Transformation Content-based routing Orchestration Registry Message Store Gateways Extensive examples and documentation And more

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

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 Business Logic Component

FTP

Action

Action

Action

Action

Action

Transformation CSV to XML

Routing Splitter or BPM

Logging Audit Trail

Business Logic Invocation

Transformation XML to POJO


This box can also represent the ESBs JVM actions are in VM

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

Questions: [email protected]

Out of the Box Actions


AbstractSpringAction Aggregator BeanConfiguredAction BpmProcessor BusinessRulesProcessor ByteArrayToString ContentBasedRouter ContentBasedWiretap GroovyActionProcessor HttpRouter JMSRouter LongToDateConverter MessageFilter MessagePersister Notifier ObjectToCSVString ObjectToXStream SmooksTransformer SOAPProcessor SOAPClient StaticRouter StaticWiretap SystemPrintln XStreamToObject

Refer to the MessageActionGuide.pdf


Questions: [email protected]

Basic Service Demo

Content Based Routing


Orders over 12K or from Platinum customers

Platinum_Service
SOAP

Action

Ordering_Service
FTP
ASCII XML Binary

Action

POJO

DB

Special_Handling
SOAP

Action

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 : 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


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

Load-Balancing Demo

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

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.

Questions: [email protected]

Management & Monitoring Architecture

Questions: [email protected]

Mgmt & Monitoring Demo

Orchestration

Service Oriented Orchestration


Customer Customer Service Credit Agency Warehouse Shipper Submit Order Issues

Receive Order

Validate Order Credit Check Inventory Check

CSR Teams

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

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

ESB Mediates & Provides Services

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

Service Orchestration & BPM


Humans Customer
Submit Order

CSR

Sales Mgmt

WHSE Mgmt
Issues

FTP

Receive Order

Validate Order Credit Check

CSR Teams

SOAP

Inventory Check

Send Shipment Handle Shipment

File Validate Order Credit Check Inventory Check Send Shipment

Various Transports
J2EE App Server

External

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]

Orchestration Designer

Questions: [email protected]

Orchestration Demo

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 ActiveBPELOrchestration.odp under that quickstarts Docs folder. And engage us in the online forums:
http://www.jboss.com/index.html?module=bb&op=viewforum&f=246

Questions: [email protected]

Active Endpoints Designer

Questions: [email protected]

Active Endpoints Console

Questions: [email protected]

Possible Big Picture


SOAP

.NET Application JVM Enterprise Service Bus

BPEL
Partner Link JMS

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

Groovy

WS Client

SOAP

Partner Link

SOAP

Partner Link FTP

S E R V I C E

Service B
Action

Rules

Spring Service C
Action

EJB Service D
Action

DB
DAO

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

SOAP

Legacy Application

Questions: [email protected]

Questions?

Wheres 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

Questions: [email protected]

The Modern Silo


Browser

Web

Pages: Struts, JSF, Tapestry

App

DAO/JPA/SLSB/Spring Bean Hibernate

DB

Query/Stored Procedure

Questions: [email protected]

Silos Across the Enterprise


Client Client

Accounting
Client

Manufacturing Warehouse
Client

CRM Ordering

Questions: [email protected]

Integrating Silos (Dump & Load)


Client
Web

Client

5250

PHP

SOAP

ASCII
DUMP FTP

RPG

ASCII
FTP

MySQL

DB/2 400

Accounting
Client

FTP

Manufacturing
Client

CRM Ordering

Warehouse
VisualBasic Struts

VisualBasic

DAO
ASCII

Stored Proc SQL Server


ASCII

Oracle

Questions: [email protected]

Intermediate those Silos


Browser Rich B2B Legacy

Mediation

Service 1

Service 2

Service 3

App

DAO/JPA/SLSB/Spring Bean Hibernate

Mediation

Service 4

Service 5

Service 6

DB

Query/Stored Procedure

Questions: [email protected]

Splice Technique
Web Order Entry Web JSF Seam EJB3 Hibernate Callback Listeners Oracle
JBoss ESB

Web Order Entry 2 Web Struts Interceptors


queue queue

AOP

Spring iBatis Hibernate DB/2

Questions: [email protected]

You might also like