608 Advanced Enterprise Service Bus

1 / 27
About This Presentation
Title:

608 Advanced Enterprise Service Bus

Description:

BPM. Rules. App Server vs ESB for SOA. EJB. WS. Hibernate. JPA. JMS ... Synergy of ESB BPM Rules. Submit Order. Receive Order. Validate Order. Credit Check ... – PowerPoint PPT presentation

Number of Views:62
Avg rating:3.0/5.0
Slides: 28
Provided by: burrs

less

Transcript and Presenter's Notes

Title: 608 Advanced Enterprise Service Bus


1
608 Advanced Enterprise Service Bus Burr
Sutter JBoss jBPM, Drools and ESB burr.sutter_at_jb
oss.com

2
Objective
  • Cover as many interesting and useful Enterprise
    Service Bus tips techniques in the next 75
    minutes
  • Live demonstrations abound

3
App Server vs ESB for SOA
Application Server Business Service Enablement
Platform
4
App Server Clustering
Load Balancer
Service ClusteringStateful Fault Tolerance/Smart
Load Balancing
5
Federation
6
Mediation
7
Enter the ESB
ESB
Note an ESB still runs in a JVM often that is an
App Server
8
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.enterpriseintegrationpatte
rns.com
9
An Integration Challenge
DB
10
Service Oriented Process Management
ESB Mediates Provides Services
11
Synergy of ESB BPM Rules
Humans
Customer
CSR
Sales Mgmt
WHSE Mgmt
Various Transports, Message Formats, Routing
Logic, Business Rules, Scripting Languages
J2EE AppServer
Credit/Bank
Legacy
Partners
External
12
The JBoss Action 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
Business Logic Component
JMS
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
This box can also represent the ESBs JVM
actions are in VM
13
Services Actions
B_Service
DB
EJB
SOAP
A_Service
DB
POJO
FTP
C_Service
D_Service
DB
WS
JMS
JMS
14
JBoss ESB Roadmap
4.2
4.4
Future
Pluggable Architecturefor integrating
infrastructure mediation services
Business Servicesruns within a container or
standalone
Event Listeners and Actions provide transport
mediation
HTTP(S)?
Transports
S
JCA
J2EE 1.4/Java EE 5
(S)FTP
EJB
S
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
Event Notification
BAM
CEP
Beanshell
Socket
JRuby
BPEL
UDDI v3
Web Services (Proxy)
InVM
Service Component Architecture
SOAP
ProcessStore
Service Data Object
Native(SI)
Seam
Browser
BusinessData
DataSources
EJB
MetaMatrix
Improvements in 4.3
JMS - JBoss Messaging, IBM WebsphereMQ, TIBCO EMS
15
Transformation
  • Based on open source project Milyn Smooks
  • 1. Java to Java Transforms
  • 2. Message Enrichment
  • 3. Execution Report Generator
  • 4. Support for ltconditiongt elements on resource,
    allowing to control resource application on a
    message using MVEL expressions
  • 5. Splitting
  • Multiple concurrent Splits
  • Complex splitting
  • Native support for JMS and File based routing

16
Service Logic
My Service
MyAction 1
MyAction 2
MyAction 3
Pick your languagefor business logic
MyAction 4
MyAction 5
MyAction 6
MyAction 7
DSL
Decision Table
Jython, JRuby are downloaded separately
17
Business Rules for Business Logic
  • rule "Driver is in marginal age"
  • ruleflow-group "risk assessment"
  • when
  • There is a Driver
  • - age is between 18 and 24 years old
  • - has had more than 1 prior claims
  • then
  • Reject Policy with explanation 'No accidents
    allowed if in marginal age group'
  • End
  • rule "Quick approval - safe driver, any policy
    type"
  • ruleflow-group "risk assessment"
  • when
  • Policy has not been rejected
  • There is a Driver
  • - age is at least 30
  • - has had exactly 0 prior claims
  • then
  • Approve Policy with the reason 'Driver is
    safe and mature.'
  • end

18
New WS- Capabilities
Proxy/Consumer
ESB
ESBService
SOAP/HTTP
WS-AddressingWS-Security
Consumer
WISE allows for propagation of transaction and
security context plus handlers for
in-line transformation
.NET WS
Proxy 1
WS-AddressingWS-Security
Proxy 2
Java WS
Proxy 3
Consumer
PHP WS
JMS
Producer
ESB Container
ESBService
181 Endpoints were in 4.2 _at_WebService SOA 4.3
adds a declarative mechanism for WS endpoints,
just provide a XSD, WSDL is rendered dynamically
181 WS
Action
SOAP Client
Action
Declaration
19
EBWS Sample
  • EBWS ESB-Based Web Service

lt?xml version "1.0" encoding
"UTF-8"?gt ltjbossesb xmlns"http//anonsvn.labs.jbo
ss.com/labs/jbossesb/trunk/product/etc/schemas/xml
/ jbossesb-1.0.1.xsd" parameterReloadSecs"5"gt
ltservicesgt ltservice
category"ESBWebServiceSample"
name"FetchCustomer" description"Hello
world ESB Service2 invmScope"GLOBAL"gt
ltactions inXsd"/request.xsd"
outXsd"/customer.xsd"
faultXsd"/fault.xsd"
webservice"none validate"true"gt
ltaction name"action"
class"org.jboss.soa.esb.samples.quickstart.publ
ishAsWebservice.MyAction"/gt lt/actionsgt
lt/servicegt
lt/servicesgt lt/jbossesbgt
Note No providers, no listeners, no JMS
required webservicenone is a little
misleading, it means no WS-Address nor
WS-Security handlers After deployment browse
http//localhost8080/jbossws to view the
rendered WSDL
20
EJB Proxy
Declarative EJB Invocation (SLSB)
ESB
EJB
My Service
EJB1
JMS
External Containers
Script
Jython
SOAP
WS
WS
FTP
EJB2
File
SLSB
  • ltaction nameCallAnEJB" class"org.jboss.soa.esb.
    actions.EJBProcessor"gt
  • ltproperty name"ejb3" value"true" /gt
  • ltproperty name"method" value"printMessage" /gt
  • ltproperty name"jndi-name" value"SimpleSLSB/remot
    e" /gt
  • ltproperty name"initial-context-factory"
    value"org.jnp.interfaces.NamingContextFactory"
    /gt
  • ltproperty name"provider-url" value"localhost109
    9" /gt
  • ltproperty name"ejb-params"gt
  • ltarg0 type"java.lang.String"gtorg.jboss.soa.esb.m
    essage.defaultEntrylt/arg0gt
  • lt/propertygt
  • lt/actiongt

from jboss_esb.xml
21
Simple Declaration
  • ltservice
  • category"ESBServiceSample"
  • nameSecuredEmployeeSalary"
  • descriptionEmployee Salary Service"gt
  • ltsecurity moduleNameMySecurityModule"
    rolesAllowed"adminRole,humanResourcesRole" /gt
  • ltlistenersgt
  • ltjms-listener nametheListener
  • busidreftheChannel
  • maxThreads"1 /gt
  • lt/listenersgt
  • ltactions
  • inXsd"/request.xsd"
  • outXsd"/response.xsd"
  • faultXsd"/fault.xsd"
    webservice"none"gt
  • ltaction name"action" classcom.acme.myesbact
    ions.MyAction" processretrieveSalary"/gt
  • lt/actionsgt
  • lt/servicegt

22
4.3 Monitoring and Management
23
Federated Management Architecture
Order Services
Order Validation
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
24
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
25
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.
26
Possible Big Picture
.NET Application
SOAP
JVM
Enterprise Service Bus
Groovy
BPEL
Service A
O R C H E S T R A T I O N
Action
Partner Link
JMS
Rules
Service B
S E R V I C E
WS Client
Action
Spring
Partner Link
SOAP
SOAP
Service C
EJB
Action
DB
Partner Link
Service D
FTP
DAO
Action
Application Server
Note Not every technology is required. This is
simply a way to illustrate how the various
technologies might be used together
Legacy Application
SOAP
27
AOP Splice Technique
Interceptors
AOP
queue
queue
Callback Listeners

JBoss ESB



Write a Comment
User Comments (0)