Open Esb 20081104 V2
-
Upload
eduardo-pelegri-llopart -
Category
Technology
-
view
5.183 -
download
2
description
Transcript of Open Esb 20081104 V2
1
What is OpenESB / GlassFishESB?
December 2008
Frank KievietOpenESB Community Manager
1
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?
Slide 3
What are we trying to do?
Slide 4
Example 1
• Download HTTP ACCESS logs over HTTP• Parse the log file• Filter the log file• Store the hits in a database
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
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
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
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)
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
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)
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
Slide 12
What does OpenESB look like?
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
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
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
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
Slide 17
Components
• 43 components• Breadth significantly enhanced by partners / contributors,
each bringing domain expertise to the table
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
Slide 19
Message transformation
• XSLT SE• Encoding SE• Visual mapping in BPEL editor• Java based mapping (test/sample driven)
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
Slide 21
• POJO SE> Use simple Java classes for business logic
• Scripting SE> Use scripts for business logic
• WLM SE> Human workflow
• Camel SE
Slide 22
Basic concepts
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
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)
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
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
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
Slide 28
OpenESB compared with other ESBs
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
Slide 30
Open Source
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
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
Slide 33
Commercial applications
• OpenESB bits are used in Java CAPS• GlassFish ESB is commercially supported• Third parties are using OpenESB as OEMs
Slide 35
What is next?
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”
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
Slide 38
Example
... can be described in a text file as:(next slide)
Slide 39
Slide 40
Service Composition in a Browser
Q&A
[email protected]://blogs.sun.com/fkieviet