41
1 What is OpenESB / GlassFishESB? December 2008 Frank Kieviet OpenESB Community Manager 1

Open Esb 20081104 V2

Embed Size (px)

DESCRIPTION

An overview of the OpenESB community and the GlassFish ESB distribution

Citation preview

Page 1: Open Esb 20081104 V2

1

What is OpenESB / GlassFishESB?

December 2008

Frank KievietOpenESB Community Manager

1

Page 2: Open Esb 20081104 V2

Slide 2

Agenda

• What are we trying to do? (Value proposition)• How does OpenESB look like?• Basic concepts• Comparing OpenESB with other ESBs• Open Source• What is next?

Page 3: Open Esb 20081104 V2

Slide 3

What are we trying to do?

Page 4: Open Esb 20081104 V2

Slide 4

Example 1

• Download HTTP ACCESS logs over HTTP• Parse the log file• Filter the log file• Store the hits in a database

Page 5: Open Esb 20081104 V2

Slide 5

Example 2• Old system: An ERP system generates

purchase orders; the orders are printed out and mailed using USPS

• New system: added a web ordering application for internal use, added a financial Order Approval System and a Financial Monitoring System, and Purchase orders are now delivered electronically over the Internet using a Transaction Delivery Network application

E R Ps y s t e m

p o . p s

E R Ps y s t e m

p o . c s v

W e bp r o c u r e m e n t

s y s t e mo r d e r

. x m l

F i n a n c i a lM o n i t o r i n g

s y s t e m

O r d e rA p p r o v a l

S y s t e m

p o. x m l

T D Ns y s t e m

p o . e d i

p o. x m l

Page 6: Open Esb 20081104 V2

Slide 6

E R Ps y s t e m

p o . c s v

p o . x m l

r e a d

c o n v e r t

A p p r o v a ls y s t e m

M o n i t o r i n gs y s t e m

E m a i lN o t i f y

p o . x m l

p o . t x t

c o n v e r t

T D Ns y s t e m

p o . e d i

c o n v e r t

> Following an order from the ERP system> ERP system creates a file with a batch of orders in CSV

format> File needs to be picked up, read and converted to a canonical

format> The CSV file does not contain all information necessary for

the canonical format> All orders in the CSV file need to be approved by an approval

system> Each order needs to be sent out to the Internet Gateway

(TDN) in EDI format, or to a Fax gateway in PS format> A financial monitoring application needs to get a copy of the

order> An email needs to be sent to the submitter of the order when

the order goes out> The department that generally takes delivery of goods needs

to be notified of the order

Page 7: Open Esb 20081104 V2

Slide 7

One possible solution

• Example 1:> Write some Java code that uses the Apache FTP library to

download the files> Ensure configuration is externalizable> Add error handling code (retries, avoid data loss, etc)> Write code to parse the log file> Use JPA to persist the data> Add a timer to do this task periodically

• Example 2:> Similar approach for example 2> Use libraries to interact with external systems> Use libraries to do file format conversions

Page 8: Open Esb 20081104 V2

Slide 8

Observations

• Three aspects to both examples:> Connectivity> Message transformation> Business logic / orchestration

• In Java coding solution:> Business/orchestration logic is intermingled with code to

connect to systems and other low level processing code> Because of this, will take some effort for someone else to

understand the application> It's hard to add swap one transport for another, or one data

format for another> The biggest problem: (next slide)

Page 9: Open Esb 20081104 V2

Slide 9

Scaling

• An enterprise has hundreds of these integration applications

• Characteristics:> Each application is relatively simple> Code is repetitive> Coding is labor intensive> Applications become hard to manage> Applications become hard to maintain

Page 10: Open Esb 20081104 V2

Slide 10

How OpenESB helps

• OpenESB provides> Off the shelf connectivity components> Off the shelf components for tough orchestration problems> Off the shelf data transformation components

• OpenESB aims to> ... separate business logic from other logic> ... reduce the amount of code> ... reduce the cost to build large numbers of these applications> ... make these applications manageable

• But wait, there's more!> (next slide)

Page 11: Open Esb 20081104 V2

Slide 11

Web services

• Isn't everybody using web services?> Yes, but not today: still a lot of non-web services connectivity> Still requires data transformation and orchestration> (And in the future will bring its own integration problems)

• OpenESB aims to be an SOA platform for > Service Composition: an application uses various other

services to provide new functionality> Service Creation: expose functionality as a service

> e.g. add a web service wrapper around legacy systems

Page 12: Open Esb 20081104 V2

Slide 12

What does OpenESB look like?

Page 13: Open Esb 20081104 V2

Slide 13

Process view

• Runtime> GlassFish> JBI Runtime> Components

> JBI Components: BPEL SE, XSLT SE, HTTP BC, EE SE> EE Components

• Designtime> NetBeans> Plugins

> BPEL editor, WSDL editor, ...

• Management> ESB Console

Page 14: Open Esb 20081104 V2

Slide 14

E R Ps y s t e m

p o . c s vp o . x m l

A p p r o v a ls y s t e m

M o n i t o r i n gs y s t e m

R e s e r v e. x m l

E R P a p p r o v a l T

F i n a n c e

p o . x m l

T D Ns y s t e m

p o . e d i

T D N

F a xs y s t e m

p o . p s

F a x

E m a i l

p o . t x t

E m a i l

p o . x m l

p o . x m l

p o . x m l

p o . x m lE A I a p p l i c a t i o n s o r i n f r a s t r u c t u r e

E x i s t i n g s y s t e m s

M e s s a g e s

W e bp r o c u r e m e n t

o r d e r. x m l

W e b

Q

T

Solution with OpenESB

Page 15: Open Esb 20081104 V2

Slide 15

Example:A business process in BPEL

B P E L p r o c e s s

R e q u e s t

E x p o s e d s e r v i c e

R e p l y

O K T o p i c

N o t O K T o p i c

B P E L p r o c e s s

p o . x m l

A p p r o v a ls y s t e m

a p p r o v a l Tp o . x m l

T

Page 16: Open Esb 20081104 V2

Slide 16

E R Ps y s t e m

p o . c s vp o . x m lE R P

R e a d s a n d p a r s e s f i l e

A l l t h e s e m e s s a g e e x c h a n g e s a r e i n -

m e m o r y

I n - o u t m e s s a g e e x c h a n g e ; a l l o t h e r s

a r e i n - o n l y

D a t a b a s e l o o k u p

D a t a m a p p i n g

C a n o n i c a ld a t a

E R P s p e c i f i cd a t a

Example:Assembling an application in CASA

Page 17: Open Esb 20081104 V2

Slide 17

Components

• 43 components• Breadth significantly enhanced by partners / contributors,

each bringing domain expertise to the table

Page 18: Open Esb 20081104 V2

Slide 18

Connectivity

• HTTP, File, FTP, JMS, Email, Scheduler• Database, ETL, Data Mashup, Mural• Asterisk, Exec BC, HL7, LDAP BC, RSS BC, SIP BC,

SNMP BC, TCPIP BC, UDDI BC, XMPP BC• CICS BC, CORBA BC, DCOM BC, EJB BC, IMS BC,

MSMQ BC, MQSeries BC, ScreenScraping SE, SWIFT BC, SAP BC

Page 19: Open Esb 20081104 V2

Slide 19

Message transformation

• XSLT SE• Encoding SE• Visual mapping in BPEL editor• Java based mapping (test/sample driven)

Page 20: Open Esb 20081104 V2

Slide 20

Orchestration / business logic

• BPEL SE> Long running transactions> Asynchronous interactions (correlation)> Persistence, clustering

• IEP SE (Complex Event Processing)> Event Driven Architectures

• EE SE> Makes EJBs accessible from within JBI

Page 21: Open Esb 20081104 V2

Slide 21

• POJO SE> Use simple Java classes for business logic

• Scripting SE> Use scripts for business logic

• WLM SE> Human workflow

• Camel SE

Page 22: Open Esb 20081104 V2

Slide 22

Basic concepts

Page 23: Open Esb 20081104 V2

Slide 23

Basics

• Components> Are really containers in which parts of an application are

deployed into> BC = Binding Component: proxy to service> SE = Service Engine: runs business logic> Are installed into the runtime

• Service Units> Artifacts that get deployed into a component

> Examples: .bpel file for a BPEL process, a WSDL for the HTTP BC

• Composite application> A zip that gets deployed into the runtime> Makes up an application

Page 24: Open Esb 20081104 V2

Slide 24

JBI in a nutshell

• JSR 208: Java for Business Integration• Provides a multi-vendor standard for

> Messages sent over the bus> Component container interfaces

> Management, start/stop etc

• Async message exchange• Components• In-vm

> Allows transaction propagation> Streaming> Passing by reference

(From David Chappell)

Page 25: Open Esb 20081104 V2

Slide 25

Inbound BC NMR EESE Workmanager Work

send

accept

acceptreturns submit Work

run

finisheddone

accept

acceptreturns done

accept

Begin tx

txpropagated

tx commit

associate tx

disassociate tx

Transaction propagation example

Page 26: Open Esb 20081104 V2

Slide 26

WSDL

• WSDL> Describes what messages are sent and returned> WSDL file is in XML> Message End Point + Operation

• WSDL is not necessarily SOAP• WSDL can also be used for non-XML data exchanges• Abstract WSDLs describe what is exchanged• Concrete WSDLs describe how is exchanged

Page 27: Open Esb 20081104 V2

Slide 27

Example

JBI Container

NMR

BPEL SE

BPEL process

EE SE

HTTP BCHTTP

HTTP

RMI

WSDL

WSDL

BPEL processWSDL

ejb.jarWSDL

application.earWSDL

WSDLbinding

= service unit; all service units together = service assembly

Page 28: Open Esb 20081104 V2

Slide 28

OpenESB compared with other ESBs

Page 29: Open Esb 20081104 V2

Slide 29

Categorization

• Different ways of categorizing ESBs> Open Source versus Proprietary/closed source> Backing / project size> Open standards versus proprietary> Runtime only, or complete with design time?

• OpenESB> 100% Open Source> Backed by Sun> Open standards: external and internal

> JBI: gives interoperability between components from different vendors – avoids vendor lock in

> Comes with strong design time tooling

Page 30: Open Esb 20081104 V2

Slide 30

Open Source

Page 31: Open Esb 20081104 V2

Slide 31

OpenESB, the community

• Started in 2005• Led by Sun Microsystems• Many other partners (5+) and contributors:

> e.g. Advantech, Imola, ChainBuilder, eviware, Gestalt• A lot of engineers working on Java CAPS, a proprietary

Sun product, are now working on OpenESB.> ... causing a recent surge in activity in the community

• Sun is now providing commercial support on GlassFish ESB

• A vibrant community

Page 32: Open Esb 20081104 V2

Slide 32

GlassFish ESB, Open ESB

• Open ESB is the name of the open source project• GlassFish ESB is the name of a distribution built in the

OpenESB community> Sun provides commercial support on this distribution> Is a subset of the components in OpenESB

Page 33: Open Esb 20081104 V2

Slide 33

Commercial applications

• OpenESB bits are used in Java CAPS• GlassFish ESB is commercially supported• Third parties are using OpenESB as OEMs

Page 34: Open Esb 20081104 V2

Slide 34

• Lean more: http://open-esb.org

Page 35: Open Esb 20081104 V2

Slide 35

What is next?

Page 36: Open Esb 20081104 V2

Slide 36

Research project: Fuji

• Innovation at the center of our next generation platform• Popularity of simple, productive solutions

> A growing number of developers value high productivity and simplicity over all-encompassing but complex

• Make existing users more productive• Capture larger audiences

> Many developers do tasks that are ideally suited to our platform> ... but they don't necessarily think of it as “integration” or “SOA”

Page 37: Open Esb 20081104 V2

Slide 37

What does Fuji bring?

• Runs on GlassFish V3• OSGi• Maven

> Simplify user interface to service artifacts> Convention, Configuration, Code ... (In that order)

• New way of specifying interactions between components: Integration Flow Language> Editable text> Browser based visual editor

• Enterprise Integration Patterns out-of-the-box• Interceptors• New way of distribution over multiple machines

Page 38: Open Esb 20081104 V2

Slide 38

Example

... can be described in a text file as:(next slide)

Page 39: Open Esb 20081104 V2

Slide 39

Page 40: Open Esb 20081104 V2

Slide 40

Service Composition in a Browser