42
JBoss World 2009 | Burr Sutter ([email protected]) 1 Next Generation Open Source SOA Burr Sutter Sr. Product Manager, SOA (JBossESB, Riftsaw, jBPM, Drools) September 3, 2009

Next Generation Open Sourcenot have a contract via XSD and/or JSON (POX – plain 'ol XML) Content-Type: SOAP – focused on XML REST – allows for any payload – XML, JSON, Atom,

  • Upload
    others

  • View
    11

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Next Generation Open Sourcenot have a contract via XSD and/or JSON (POX – plain 'ol XML) Content-Type: SOAP – focused on XML REST – allows for any payload – XML, JSON, Atom,

JBoss World 2009 | Burr Sutter ([email protected])1

Next Generation Open Source

SOA

Burr SutterSr. Product Manager, SOA(JBossESB, Riftsaw, jBPM, Drools)September 3, 2009

Page 2: Next Generation Open Sourcenot have a contract via XSD and/or JSON (POX – plain 'ol XML) Content-Type: SOAP – focused on XML REST – allows for any payload – XML, JSON, Atom,

JBoss World 2009 | Burr Sutter ([email protected])2

file:///Pictures/nerd_rating.jpg

Page 3: Next Generation Open Sourcenot have a contract via XSD and/or JSON (POX – plain 'ol XML) Content-Type: SOAP – focused on XML REST – allows for any payload – XML, JSON, Atom,

JBoss World 2009 | Burr Sutter ([email protected])3

Agenda

● Is SOA Dead?

● JBoss SOA Platform Overview & Roadmap

● RESTful inclinations

● Complex Event Processing (CEP) w/ Drools Fusion

● Infinispan + ESB

● BPEL

Page 4: Next Generation Open Sourcenot have a contract via XSD and/or JSON (POX – plain 'ol XML) Content-Type: SOAP – focused on XML REST – allows for any payload – XML, JSON, Atom,

JBoss World 2009 | Burr Sutter ([email protected])4

Is SOA Dead?

"The report of my death was

an exaggeration."

Mark Twain

Page 5: Next Generation Open Sourcenot have a contract via XSD and/or JSON (POX – plain 'ol XML) Content-Type: SOAP – focused on XML REST – allows for any payload – XML, JSON, Atom,

JBoss World 2009 | Burr Sutter ([email protected])5

SOA, ROA & WOA – Oh My!

● ROA – Resource Oriented Architecture - REST (Representational State Transfer – Roy Fielding)

● WOA – “Web Oriented Architecture (WOA) is a style of software architecture that extends service-oriented architecture (SOA) to web based applications, and is sometimes considered to be a light-weight version of SOA. WOA is also aimed at maximizing the browser and server interactions by use of technologies such as REST and POX.” - Wikipedia

● 1st SOA is NOT SOAP - architectural style vs wire protocol

● 2nd SOA is NOT WS-*- patterns & principles vs a large body of standards

Page 6: Next Generation Open Sourcenot have a contract via XSD and/or JSON (POX – plain 'ol XML) Content-Type: SOAP – focused on XML REST – allows for any payload – XML, JSON, Atom,

JBoss World 2009 | Burr Sutter ([email protected])6

SOAP vs REST Technical Differences

● HTTP Verbs:SOAP – POSTREST – GET, PUT, POST, DELETE

● Contract Definition:SOAP – WSDL – operations & messagesREST – HTTP Verbs are the operations, messages may or may not have a contract via XSD and/or JSON (POX – plain 'ol XML)

● Content-Type:SOAP – focused on XMLREST – allows for any payload – XML, JSON, Atom, RSS, etc.

● Clients:SOAP – requires a client that understands WSDLREST – requires a client that understand HTTP

Page 7: Next Generation Open Sourcenot have a contract via XSD and/or JSON (POX – plain 'ol XML) Content-Type: SOAP – focused on XML REST – allows for any payload – XML, JSON, Atom,

JBoss World 2009 | Burr Sutter ([email protected])7

Forget Services, I want Events! - EDA

● EDA – “Event Driven Architecture is a software architecture pattern promoting the production, detection, consumption of, and reaction to events. An event can be defined as a significant change in state” - Wikipedia

● Services have historically been more request-response focused – synchronous processing – usely for responding to awaiting users.

● Events are more real-time alerting, no waiting – asynchronous processing – think push.

● Event-driven architecture can complement service-oriented architecture (SOA) because services can be activated by triggers fired on incoming events - Wikipedia.

Page 8: Next Generation Open Sourcenot have a contract via XSD and/or JSON (POX – plain 'ol XML) Content-Type: SOAP – focused on XML REST – allows for any payload – XML, JSON, Atom,

JBoss World 2009 | Burr Sutter ([email protected])8

Not Dead, just “resting” ;-)

file:///Pictures/gartner_hype_cycle09b.jpg

Page 9: Next Generation Open Sourcenot have a contract via XSD and/or JSON (POX – plain 'ol XML) Content-Type: SOAP – focused on XML REST – allows for any payload – XML, JSON, Atom,

JBoss World 2009 | Burr Sutter ([email protected])9

JBoss SOA Middleware

Overview

Page 10: Next Generation Open Sourcenot have a contract via XSD and/or JSON (POX – plain 'ol XML) Content-Type: SOAP – focused on XML REST – allows for any payload – XML, JSON, Atom,

JBoss World 2009 | Burr Sutter ([email protected])10

ServiceRegistry Message

Store

Transformation Routing

Infrastructure Services

Security Management

DeclarativeOrchestration

Engine

jPDL

ProcessStore

EventNotification

Pluggable Architecturefor integrating infrastructure mediation services

Web Services (Proxy)

EJB

POJOs

J2EE/Java EE 5

Business Servicesruns within a container or standalone

(S)FTP

File

JMS*

Email

SOAP

Excel

Browser

EJB

Native(SI)

ASCIIXML

Binary

Transports

Seam

SQL

Event Listeners and Actions provide transport mediation

Socket

Hibernate

JCA/InflowBAM

Drools

Spring

Groovy

4.2 4.3 Future

BPELUDDI v3

DataSourcesMetaMatrix

HTTP S

S

Improvements in 5.x

InVM

Jython

Beanshell

Seam JCA

Service Component Architecture

Service Data Object

JRuby

BusinessData

ESB

CEP

DSL

Decision Table

JMS* - JBoss Messaging, IBM WebsphereMQ, TIBCO EMS, MRG-M

5.0

Page 11: Next Generation Open Sourcenot have a contract via XSD and/or JSON (POX – plain 'ol XML) Content-Type: SOAP – focused on XML REST – allows for any payload – XML, JSON, Atom,

JBoss World 2009 | Burr Sutter ([email protected])11

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

Service Oriented Orchestration

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

Send Shipment

Page 12: Next Generation Open Sourcenot have a contract via XSD and/or JSON (POX – plain 'ol XML) Content-Type: SOAP – focused on XML REST – allows for any payload – XML, JSON, Atom,

JBoss World 2009 | Burr Sutter ([email protected])12

Synergy of ESB + BPM + Rules

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, Message Formats, Routing Logic, Business Rules, Scripting Languages

Page 13: Next Generation Open Sourcenot have a contract via XSD and/or JSON (POX – plain 'ol XML) Content-Type: SOAP – focused on XML REST – allows for any payload – XML, JSON, Atom,

JBoss World 2009 | Burr Sutter ([email protected])13

The Action Chain

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”

SOAP

JMS

Page 14: Next Generation Open Sourcenot have a contract via XSD and/or JSON (POX – plain 'ol XML) Content-Type: SOAP – focused on XML REST – allows for any payload – XML, JSON, Atom,

JBoss World 2009 | Burr Sutter ([email protected])14

Services & Actions

FTPASCIIXML

Binary

Action Action

SOAP

JMS

Action

Action

DB

DBPOJO

EJB

B_Service

A_Service

C_Service

InVM Action DBWS

D_Service

Page 15: Next Generation Open Sourcenot have a contract via XSD and/or JSON (POX – plain 'ol XML) Content-Type: SOAP – focused on XML REST – allows for any payload – XML, JSON, Atom,

JBoss World 2009 | Burr Sutter ([email protected])15

Based on Patterns

Aggregator

File Transfer

Translator/Transformer

Router/CBRChannel

Message

Recipient List

Splitter

Wire Tap

Enricher

Content Filter

Process Manager

Message Store

Message Filter

More information atwww.enterpriseintegrationpatterns.com

Page 16: Next Generation Open Sourcenot have a contract via XSD and/or JSON (POX – plain 'ol XML) Content-Type: SOAP – focused on XML REST – allows for any payload – XML, JSON, Atom,

JBoss World 2009 | Burr Sutter ([email protected])16

SOA Monitoring and Management

Page 17: Next Generation Open Sourcenot have a contract via XSD and/or JSON (POX – plain 'ol XML) Content-Type: SOAP – focused on XML REST – allows for any payload – XML, JSON, Atom,

JBoss World 2009 | Burr Sutter ([email protected])17

REST

Page 18: Next Generation Open Sourcenot have a contract via XSD and/or JSON (POX – plain 'ol XML) Content-Type: SOAP – focused on XML REST – allows for any payload – XML, JSON, Atom,

JBoss World 2009 | Burr Sutter ([email protected])18

Value of REST with an ESB

● JBossESB is not hard-wired into Web Services nor JMS, it is async event-driven and also allows for sync request-response.

● RESTful style interactions (GET, PUT, POST, DELETE) allow for Groovy, JavaScript, Ruby, etc clients to more easily consume a service.

● Now allows for different content types and use of HTTP response codes.

● REST is based on HTTP – new http-provider (ESB 4.7)

Page 19: Next Generation Open Sourcenot have a contract via XSD and/or JSON (POX – plain 'ol XML) Content-Type: SOAP – focused on XML REST – allows for any payload – XML, JSON, Atom,

JBoss World 2009 | Burr Sutter ([email protected])19

New HTTP Provider (jboss-esb.xml)

<providers> <http-provider name="http"> <http-bus busid="http_gateway"/> <exception mappingsFile="/http-exception-mappings.properties" /> </http-provider> </providers>

<services> <service category="Sales" name="List" description="" invmScope="GLOBAL"> <listeners> <!-- Receives:http://<host>:<port>/MyESBArchive/http/sales/* --> <http-gateway name="sales"

busidref="http_gateway"urlPattern="sales/*" />

</listeners> <actions mep="RequestResponse"> <action name="createAtomFeed" class="atom_publisher.MyAction"/> </actions> </service>

</services>

Page 20: Next Generation Open Sourcenot have a contract via XSD and/or JSON (POX – plain 'ol XML) Content-Type: SOAP – focused on XML REST – allows for any payload – XML, JSON, Atom,

JBoss World 2009 | Burr Sutter ([email protected])20

ESB Transport Mediation

JMS

ActionJMS

Action DBSLSBPOJO

Logic_Service

InVM

WS

HTTP

Intake_ServiceClients

Java

.NET

JavaScript *

Page 21: Next Generation Open Sourcenot have a contract via XSD and/or JSON (POX – plain 'ol XML) Content-Type: SOAP – focused on XML REST – allows for any payload – XML, JSON, Atom,

JBoss World 2009 | Burr Sutter ([email protected])21

ATOM Demo

Page 22: Next Generation Open Sourcenot have a contract via XSD and/or JSON (POX – plain 'ol XML) Content-Type: SOAP – focused on XML REST – allows for any payload – XML, JSON, Atom,

JBoss World 2009 | Burr Sutter ([email protected])22

Complex Event Processing

Page 23: Next Generation Open Sourcenot have a contract via XSD and/or JSON (POX – plain 'ol XML) Content-Type: SOAP – focused on XML REST – allows for any payload – XML, JSON, Atom,

JBoss World 2009 | Burr Sutter ([email protected])23

ESP + CEP via ESB, Rules & JON

Many Streams Or Flows

ESB: consumption, capture, transformation, routing, orchestrationRules: selection, aggregation, correlation, generation and publication

Repository: for editing, versioning, testing and publishing new rules and SOA artifacts

GovernanceTools

JON: start/stop services, monitor and alert on serviceand action-level performance, monitor and alert onbusiness metric values

Page 24: Next Generation Open Sourcenot have a contract via XSD and/or JSON (POX – plain 'ol XML) Content-Type: SOAP – focused on XML REST – allows for any payload – XML, JSON, Atom,

JBoss World 2009 | Burr Sutter ([email protected])24

Event Declaration & Selection

declare StockTick @role( event ) @expires( 2m )end

rule "average over last minute"when $stat : Statistics( $symbol : symbol ) Number( $av : doubleValue ) from accumulate( StockTick( symbol == $symbol, $p : price )

over window:time( 1m ) from entry-point "StockTick stream",

average( $p ) )then modify( $stat ) { average = $av } end

Page 25: Next Generation Open Sourcenot have a contract via XSD and/or JSON (POX – plain 'ol XML) Content-Type: SOAP – focused on XML REST – allows for any payload – XML, JSON, Atom,

JBoss World 2009 | Burr Sutter ([email protected])25

DataOf Interest

Deal flow – Business Interceptor

Submit Order

Receive Order Validate Order

Credit Check

Inventory Check

Handle Shipment

Send Shipment

CSR Teams

Issues

Alternate Supplier

Replenishment

Supplier Manufacturing

Parts AvailableProduct Available

SchedulePO

Receiving

Urgent

Cross Dock

InventoryManufacturing

Warehouse

Accounting

Market Monitor

Significant

Manager

Inventory Schedule

Replenishment Manufacturing

Page 26: Next Generation Open Sourcenot have a contract via XSD and/or JSON (POX – plain 'ol XML) Content-Type: SOAP – focused on XML REST – allows for any payload – XML, JSON, Atom,

JBoss World 2009 | Burr Sutter ([email protected])26

Value of CEP – Drools Fusion

● Stateful Rules Engines live in ESB Nodes, they retain the real-time history of the event flow

● Rules look for significant/interesting events in the stream, expiring older, insignificant events (memory management) – stateless rules engines/ESB nodes can route to stateful engines.

● Event data can be aggregated/accumulated over a time window or event series

● New events or messages back through the ESB can be generated, providing an alerting mechanism.

Page 27: Next Generation Open Sourcenot have a contract via XSD and/or JSON (POX – plain 'ol XML) Content-Type: SOAP – focused on XML REST – allows for any payload – XML, JSON, Atom,

JBoss World 2009 | Burr Sutter ([email protected])27

CEP via ESB

JMS

RulesActionWS

HTTP

Intake_ServiceClients

Java

.NET

JavaScript

BPMActionJMS

Normal_Processing_Service

RulesActionJMS

CEP_Stateful_Service

JVM1 JVM2

JVM3

In-Memory Event

IdentificationSelection

Raw Events

BusinessProcessEvents

StreamCorrelationAggregation

BPMActionJMS

Alert _Processing_Service

JVM4

Page 28: Next Generation Open Sourcenot have a contract via XSD and/or JSON (POX – plain 'ol XML) Content-Type: SOAP – focused on XML REST – allows for any payload – XML, JSON, Atom,

JBoss World 2009 | Burr Sutter ([email protected])28

CEP Demo

Page 29: Next Generation Open Sourcenot have a contract via XSD and/or JSON (POX – plain 'ol XML) Content-Type: SOAP – focused on XML REST – allows for any payload – XML, JSON, Atom,

JBoss World 2009 | Burr Sutter ([email protected])29

Infinispan + ESB

Page 30: Next Generation Open Sourcenot have a contract via XSD and/or JSON (POX – plain 'ol XML) Content-Type: SOAP – focused on XML REST – allows for any payload – XML, JSON, Atom,

JBoss World 2009 | Burr Sutter ([email protected])30

Quick Introduction: Infinispan

● Next Generation of JBoss Cache > Data Grid

● Still a “peer to peer” architecture

● JSR 107 – JCACHE

● Improve response times for service requests

● Reduce load on critical backend systems

● Improve fault tolerance, throughput, performance

● Linear scalability

● Predictable latency under increasing load

● Access to more than a single JVM's Heap

Page 31: Next Generation Open Sourcenot have a contract via XSD and/or JSON (POX – plain 'ol XML) Content-Type: SOAP – focused on XML REST – allows for any payload – XML, JSON, Atom,

JBoss World 2009 | Burr Sutter ([email protected])31

Service Result Cache

DB

<XML>

</XML>

CICSData Grid

ESBBPEL

Client

request

response

service 1

service 2

service 3POJOs

Results of service invocations to “expensive” resourcescan be cached by the middle-tier architecture.

Transformations to POJOs can be time consuming

Page 32: Next Generation Open Sourcenot have a contract via XSD and/or JSON (POX – plain 'ol XML) Content-Type: SOAP – focused on XML REST – allows for any payload – XML, JSON, Atom,

JBoss World 2009 | Burr Sutter ([email protected])32

Hoppity, Hop, Hop

IntakeService

StoreService

ProcessService

<XML>

</XML>

DB

ORMValidationScoringRules

jBPM

Serializing large XML, transforming multiple times,serializing large POJOs can be expensive

DroolsHibernate

JVM1 JVM2 JVM3

Page 33: Next Generation Open Sourcenot have a contract via XSD and/or JSON (POX – plain 'ol XML) Content-Type: SOAP – focused on XML REST – allows for any payload – XML, JSON, Atom,

JBoss World 2009 | Burr Sutter ([email protected])33

Still Hopping, less load

IntakeService

StoreService

ProcessService

<XML>

</XML>

DB

ORMValidationScoringRules

BPM

Keep the transformed version, send the key tothe cache – claim check

Page 34: Next Generation Open Sourcenot have a contract via XSD and/or JSON (POX – plain 'ol XML) Content-Type: SOAP – focused on XML REST – allows for any payload – XML, JSON, Atom,

JBoss World 2009 | Burr Sutter ([email protected])34

Data Grid Demo

Page 35: Next Generation Open Sourcenot have a contract via XSD and/or JSON (POX – plain 'ol XML) Content-Type: SOAP – focused on XML REST – allows for any payload – XML, JSON, Atom,

JBoss World 2009 | Burr Sutter ([email protected])35

BPEL

Page 36: Next Generation Open Sourcenot have a contract via XSD and/or JSON (POX – plain 'ol XML) Content-Type: SOAP – focused on XML REST – allows for any payload – XML, JSON, Atom,

JBoss World 2009 | Burr Sutter ([email protected])36

Simple BPEL Process Structure

Receive

Assign

Reply

Invoke

Assign

MyProcess.bpel

Import

Partnerlinks

Variables

ExternalService

AnyWeb ServiceConsumer

Sequence

/Sequence

WSDLThe contract/interfaceof the PartnerLinkof the CONSUMED service

WSDLThe contract/interface

of the PartnerLinkof the EXPOSED service

Page 37: Next Generation Open Sourcenot have a contract via XSD and/or JSON (POX – plain 'ol XML) Content-Type: SOAP – focused on XML REST – allows for any payload – XML, JSON, Atom,

JBoss World 2009 | Burr Sutter ([email protected])37

Tools – BPEL Editor

Page 38: Next Generation Open Sourcenot have a contract via XSD and/or JSON (POX – plain 'ol XML) Content-Type: SOAP – focused on XML REST – allows for any payload – XML, JSON, Atom,

JBoss World 2009 | Burr Sutter ([email protected])38

Tools – WSDL Editor

Page 39: Next Generation Open Sourcenot have a contract via XSD and/or JSON (POX – plain 'ol XML) Content-Type: SOAP – focused on XML REST – allows for any payload – XML, JSON, Atom,

JBoss World 2009 | Burr Sutter ([email protected])39

BPEL Resources

• http://www.jboss.org/riftsaw● Riftsaw Forums● WS-BPEL Primer:

http://docs.oasis-open.org/wsbpel/2.0/Primer/wsbpel-v2.0-Primer.pdf

● WS-BPEL 2.0 Specification:http://docs.oasis-open.org/wsbpel/2.0/OS/wsbpel-v2.0-OS.html

● Apache Odehttp://ode.apache.org/

Page 40: Next Generation Open Sourcenot have a contract via XSD and/or JSON (POX – plain 'ol XML) Content-Type: SOAP – focused on XML REST – allows for any payload – XML, JSON, Atom,

JBoss World 2009 | Burr Sutter ([email protected])40

Professional Enterprise Support

● RESTful HTTP – SOA Platform 5 (Q1 2010)

● CEP – SOA Platform 5 (Technology Preview)

● Infinispan – SOA Platform 5.1 or 6.0 (TBD)

● BPEL – BPEL Platform 2.0 (Q1 2010)

● REST & HTTP on ESB – Kevin Conner (Newcastle)

● CEP via Drools Fusion – Edson Tirelli (Toronto)

● Infinispan – Manik Surtani (London)

● BPEL – John Graham (Boston)

For more information at JBoss World 2009

Page 41: Next Generation Open Sourcenot have a contract via XSD and/or JSON (POX – plain 'ol XML) Content-Type: SOAP – focused on XML REST – allows for any payload – XML, JSON, Atom,

JBoss World 2009 | Burr Sutter ([email protected])41

Page 42: Next Generation Open Sourcenot have a contract via XSD and/or JSON (POX – plain 'ol XML) Content-Type: SOAP – focused on XML REST – allows for any payload – XML, JSON, Atom,

JBoss World 2009 | Burr Sutter ([email protected])42