jboss esb, jbpm, drools deep dive - thedevconf.com · drools spring groovy. esb++ scenario http ftp...

25
JBoss ESB, jBPM, Drools Deep Dive Burr Sutter July 2008

Upload: others

Post on 23-Mar-2020

12 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: JBoss ESB, jBPM, Drools Deep Dive - thedevconf.com · Drools Spring Groovy. ESB++ Scenario HTTP FTP File JMS HTTP FTP File JMS jBPM Questions: burr.sutter@jboss.com Email SOAP SQL

JBoss ESB, jBPM, DroolsDeep Dive

Burr Sutter

July 2008

Page 2: JBoss ESB, jBPM, Drools Deep Dive - thedevconf.com · Drools Spring Groovy. ESB++ Scenario HTTP FTP File JMS HTTP FTP File JMS jBPM Questions: burr.sutter@jboss.com Email SOAP SQL

EJB

JMSServlet

JSP

RMI

BPM

App Server vs ESB for SOA

EJB

JMSServlet

JSP

RMI

Questions: [email protected]

WS

Hibernate

JPA

JCA

SOAP/WSDL

Rules

WS

Hibernate

JPA

JCA

SOAP/WSDL

Application Server

Business Service Enablement Platform

Page 3: JBoss ESB, jBPM, Drools Deep Dive - thedevconf.com · Drools Spring Groovy. ESB++ Scenario HTTP FTP File JMS HTTP FTP File JMS jBPM Questions: burr.sutter@jboss.com Email SOAP SQL

App Server vs ESB for SOA

Load Balancer

Questions: [email protected]

Load Balancer

Service Clustering

Stateful Fault Tolerance/Smart Load Balancing

Page 4: JBoss ESB, jBPM, Drools Deep Dive - thedevconf.com · Drools Spring Groovy. ESB++ Scenario HTTP FTP File JMS HTTP FTP File JMS jBPM Questions: burr.sutter@jboss.com Email SOAP SQL

App Server vs ESB for SOA

Questions: [email protected]

Registry

& Messaging

Accounting

CRM

Billing

Inventory

Routing/Orchestration

Page 5: JBoss ESB, jBPM, Drools Deep Dive - thedevconf.com · Drools Spring Groovy. ESB++ Scenario HTTP FTP File JMS HTTP FTP File JMS jBPM Questions: burr.sutter@jboss.com Email SOAP SQL

App Server vs ESB for SOA

Java LAMP F

I

Transformation

Questions: [email protected]

Registry

& Messaging

.NET Legacy

I

R

E

W

A

L

LPartners

Routing/Orchestration

FTP

File

TCPSOAP

REST

JMS

Page 6: JBoss ESB, jBPM, Drools Deep Dive - thedevconf.com · Drools Spring Groovy. ESB++ Scenario HTTP FTP File JMS HTTP FTP File JMS jBPM Questions: burr.sutter@jboss.com Email SOAP SQL

App Server vs ESB for SOA

Java LAMPF

I

Transformation

ESB

Questions: [email protected]

Registry

& Messaging

.NET Legacy

I

R

E

W

A

L

LPartners

Routing/Orchestration

FTP

File

TCPSOAP

REST

JMS

Note: an ESB still runs in a JVM

often that is an App Server

Page 7: JBoss ESB, jBPM, Drools Deep Dive - thedevconf.com · Drools Spring Groovy. ESB++ Scenario HTTP FTP File JMS HTTP FTP File JMS jBPM Questions: burr.sutter@jboss.com Email SOAP SQL

SOA Platform 4.2

ESB

Transformation Routing

Infrastructure

Services

Security Management

Pluggable Architecturefor integrating infrastructure services

Web Services

EJB

Java EE 5

Business Service

Components

JCA

Business Servicesrun within a container or standalone

HTTP(S)

(S)FTP

File

JMS

Email

ASCII

XML

Binary

Transports

Event Listeners and Gateways provide transport mediation

Seam

Questions: [email protected]

Declarative Transformation includes:

Message Normalization,

Validation, Enrichment,

Via XSLT, Groovy, Java, StringTemplate, FreeMarker

Service

Registry

UDDI

ESB

Message

Store

Declarative

Orchestration

Engine

BPEL

jPDL

Process

Store

Event

Notification

POJOs

Business

Data

RDBMS

Legacy

COTS

Service Data Object

Service Component Architecture

SOAPExcel

Browser

Java

Native

Web

SQL

Socket

Hibernate

JCA/Inflow

Custom

Action

Drools

Spring

Groovy

Page 8: JBoss ESB, jBPM, Drools Deep Dive - thedevconf.com · Drools Spring Groovy. ESB++ Scenario HTTP FTP File JMS HTTP FTP File JMS jBPM Questions: burr.sutter@jboss.com Email SOAP SQL

ESB++ Scenario

HTTP

FTP

File

JMS

HTTP

FTP

File

JMS

jBPM

Questions: [email protected]

Email

SOAP

SQL

Custom

Email

SOAP

SQL

Custom

Rules

EJB WS

Hibernate

JPA

J2EE/Java EE 5 Services

JMS JCA

Page 9: JBoss ESB, jBPM, Drools Deep Dive - thedevconf.com · Drools Spring Groovy. ESB++ Scenario HTTP FTP File JMS HTTP FTP File JMS jBPM Questions: burr.sutter@jboss.com Email SOAP SQL

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

Questions: [email protected]

– Transport protocol mediation

– Event capture

– Intelligent routing

– Orchestration

– Transformation

– BPM

– Adapters

– And much, much more.

Page 10: JBoss ESB, jBPM, Drools Deep Dive - thedevconf.com · Drools Spring Groovy. ESB++ Scenario HTTP FTP File JMS HTTP FTP File JMS jBPM Questions: burr.sutter@jboss.com Email SOAP SQL

Action Pipeline (in a Service)

FTP Action Action Action Action

Business

Logic

Component

My_Registered_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.

Action

Questions: [email protected]

Component

Transformation

CSV to XML

Transformation

XML to POJO

Routing

Splitter

or

BPM

Logging

Audit

Trail

Business Logic:

• POJO

• EJB

• WS

• Rules

• JCA with Adapters

• Anything with Java API

Business

Logic

Invocation

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

Page 11: JBoss ESB, jBPM, Drools Deep Dive - thedevconf.com · Drools Spring Groovy. ESB++ Scenario HTTP FTP File JMS HTTP FTP File JMS jBPM Questions: burr.sutter@jboss.com Email SOAP SQL

Demo

Page 12: JBoss ESB, jBPM, Drools Deep Dive - thedevconf.com · Drools Spring Groovy. ESB++ Scenario HTTP FTP File JMS HTTP FTP File JMS jBPM Questions: burr.sutter@jboss.com Email SOAP SQL

Services & Actions

SOAP Action DBEJB

B_Service

A_Service

Questions: [email protected]

FTPASCII

XML

Binary

Action Action

JMS Action

DBPOJO

C_Service

JMS Action DBWS

D_Service

Page 13: JBoss ESB, jBPM, Drools Deep Dive - thedevconf.com · Drools Spring Groovy. ESB++ Scenario HTTP FTP File JMS HTTP FTP File JMS jBPM Questions: burr.sutter@jboss.com Email SOAP SQL

Content Based Routing

File Action

DBPOJO

Platinum_Service

FTP Action

Ordering_Service

Orders over 12K or from Platinum customers

JMS

Questions: [email protected]

Randomly grab orders for review – tracer and

Keep a total of all orders flowing through the system

JMS Action

Special_Handling

EJB

DB

Orders from customers in certain states/countries

SOAP

Page 14: JBoss ESB, jBPM, Drools Deep Dive - thedevconf.com · Drools Spring Groovy. ESB++ Scenario HTTP FTP File JMS HTTP FTP File JMS jBPM Questions: burr.sutter@jboss.com Email SOAP SQL

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";

Questions: [email protected]

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 15: JBoss ESB, jBPM, Drools Deep Dive - thedevconf.com · Drools Spring Groovy. ESB++ Scenario HTTP FTP File JMS HTTP FTP File JMS jBPM Questions: burr.sutter@jboss.com Email SOAP SQL

Load Balancing & Fail-Over

Questions: [email protected]

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 16: JBoss ESB, jBPM, Drools Deep Dive - thedevconf.com · Drools Spring Groovy. ESB++ Scenario HTTP FTP File JMS HTTP FTP File JMS jBPM Questions: burr.sutter@jboss.com Email SOAP SQL

Demo

Page 17: JBoss ESB, jBPM, Drools Deep Dive - thedevconf.com · Drools Spring Groovy. ESB++ Scenario HTTP FTP File JMS HTTP FTP File JMS jBPM Questions: burr.sutter@jboss.com Email SOAP SQL

Today 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]

Page 18: JBoss ESB, jBPM, Drools Deep Dive - thedevconf.com · Drools Spring Groovy. ESB++ Scenario HTTP FTP File JMS HTTP FTP File JMS jBPM Questions: burr.sutter@jboss.com Email SOAP SQL

Governance & Rule Services

Action

Groovy -

Discover

Message

OriginAction

Rule

Service:

Discount

Rule

Service

Content

FTP

Order

SOAP

JMS

Questions: [email protected]

Smooks

XML2POJ

O

Action

Rule

Service:

Priority

Discount Content

Based

Router

Rule

Repository

RuleAgent Cache

Categorization/Classification, Editing, Validation & Testing

Versioning, Audit – for Policy Managers & Business

Analysts

Page 19: JBoss ESB, jBPM, Drools Deep Dive - thedevconf.com · Drools Spring Groovy. ESB++ Scenario HTTP FTP File JMS HTTP FTP File JMS jBPM Questions: burr.sutter@jboss.com Email SOAP SQL

ESP + CEP via ESB, Drools & JON

Multiple Streams

Or Flows

ESB: consumption/capture, transformation, orchestration

Drools: selection, aggregation, correlation, generation and publication

Questions: [email protected]

BRMS: for editing, versioning, testing

and publishing new rules

Governance

Tools

JON: start, stop services, monitor and alert on service

and action-level performance, monitor and alert on

Business metric values

Page 20: JBoss ESB, jBPM, Drools Deep Dive - thedevconf.com · Drools Spring Groovy. ESB++ Scenario HTTP FTP File JMS HTTP FTP File JMS jBPM Questions: burr.sutter@jboss.com Email SOAP SQL

Orchestration

Page 21: JBoss ESB, jBPM, Drools Deep Dive - thedevconf.com · Drools Spring Groovy. ESB++ Scenario HTTP FTP File JMS HTTP FTP File JMS jBPM Questions: burr.sutter@jboss.com Email SOAP SQL

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

FTP

SOAP

File

Questions: [email protected]

J2EE App

Server

FValidate

Order

Credit

Check

Inventory

Check

Send

Shipment

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 22: JBoss ESB, jBPM, Drools Deep Dive - thedevconf.com · Drools Spring Groovy. ESB++ Scenario HTTP FTP File JMS HTTP FTP File JMS jBPM Questions: burr.sutter@jboss.com Email SOAP SQL

Orchestration Designer

Questions: [email protected]

Page 23: JBoss ESB, jBPM, Drools Deep Dive - thedevconf.com · Drools Spring Groovy. ESB++ Scenario HTTP FTP File JMS HTTP FTP File JMS jBPM Questions: burr.sutter@jboss.com Email SOAP SQL

Demo

Page 24: JBoss ESB, jBPM, Drools Deep Dive - thedevconf.com · Drools Spring Groovy. ESB++ Scenario HTTP FTP File JMS HTTP FTP File JMS jBPM Questions: burr.sutter@jboss.com Email SOAP SQL

Questions

Page 25: JBoss ESB, jBPM, Drools Deep Dive - thedevconf.com · Drools Spring Groovy. ESB++ Scenario HTTP FTP File JMS HTTP FTP File JMS jBPM Questions: burr.sutter@jboss.com Email SOAP SQL

Summary

• Orchestration engine for both declarative service flow

and human-task management

• RETE-based rules engine for Content Based Routing,

Event Filtering and event-based data manipulation in

the form of Business Rules Services

• Built-in clustering JMS 1.1 certified broker

• Built-in fragment-based transformation solution

Questions: [email protected]

• Built-in fragment-based transformation solution

• Built-in UDDI-based registry (with auto-registration)

• Built-in JAX-WS certified web service stack

• Based on the JMX-Microkernel - plug & play of services

• Federated monitoring/management architecture

• Service-level Load Balancing & Fail-Over