soa using openesb, bpel and netbeans
TRANSCRIPT
1
SOA using SOA using OpenESB, BPEL, OpenESB, BPEL, and NetBeansand NetBeans●Sergey LunegovSergey Lunegov–Engineering ManagerEngineering Manager●Sun Microsystems, Inc.Sun Microsystems, Inc.
1
2
Agenda• Services and SOA• JBI• Open ESB• Open ESB tooling• Demo
Services and SOAServices and SOA
4
Traditional Application Development • Point technologies, products, and APIs
> For example: EJB, Spring, Hibernate, JSF, Servlets, Struts, etc.
• Lots of glue written by developers> Requires a great deal of expertise & time> Inflexible
5
Service Oriented Architecture (SOA)• An architectural principle for structuring systems
into coarse-grained services• Technology-neutral best practice• Emphasizes the loose coupling of services• New services are created from existing ones in a
synergistic fashion• Strong service definitions are critical• Services can be re-composed when business
requirements change
6
What Are Services?• Black-box components with well-defined interfaces
> Performs some arbitrary function> Can be implemented in myriad ways
• Accessed using XML message exchanges> Using well-known message exchange patterns (MEPs)
• Metadata in the form of WSDL describes...> Abstract interfaces > Concrete endpoints
7
What Can Services Do?• Perform business logic (EJB™)• Transform data (XSLT)• Query databases (SQL)• Apply business policy (Business rules)• Orchestrate conversations between multiple services
(BPEL)• Humans (WLM)• …
8
Benefits of SOA• Flexible (Agile) IT
> Adaptable to changing business needs • Faster time to market
> Reuse existing code> Minimize new development
• Business- and process-driven> Enables new business opportunities
• Greater ROI > Leverage existing IT assets
JBI JBI
10
ESBs are all about decoupling“An ESB is a Web-services-capable middleware infrastructure that supports intelligent program-to-program communication and mediates the relationships among loosely-coupled (SOA) and uncoupled (event-driven) business components.”- Roy Schulte
11
What Is JBI?• Java Business Integration
(JSR 208)• Standard “meta-container”
for integrated services• Provides for plug-in:
> Service Engines (SE): business logic> Binding Components:
communications protocols• Standard deployment model• Loose coupling via WSDL
message exchanges between WSDL described Services
12
JBICore
ServicesNormalized Message Router
Java EE Platform
Sys
tem
Man
agem
ent
Orchestration(BPEL)
Transformation(XSLT)
Java EE Platform
AS2 JMSWS-I BasicSOAP
Service Provider Self-Description
WSDL WSDL WSDL
WSDLWSDLWSDL
Components register theservices they provide
Slide 13
The JBI lingo• The Normalized Message Router: NMR
> A switchboard; not jms• Message exchanges patterns
> In-only or “post”> In-out or “request-reply”
• WSDLs• Service engines
> XSLT, BPEL, EE, IEP, ...• Binding components
> HTTP BC, JMS BC• Service units and service assemblies
> What gets deployed: .bpel, .ear, .xslt, ...
Slide 14
Normalized Message Router: NMR• What it is:
> A conduit for one component to call another> Makes calls asynchronous
• What it is not:> Not JMS> Should not be used for queuing / buffering> No persistence
> Transaction spans consumer and producer> No load balancing
Transaction boundariesshould be chosen by the developer,
NOT imposed by the NMR
Slide 15
Service Engines• Service Engines are containers that execute
business logic• Business logic gets deployed into service engines• Service Engines get installed into JBI Runtime• Examples:
> XSLT, BPEL, EE, IEP, ...
Slide 16
Binding Components• Binding components proxy messages to services
hosted somewhere else> e.g. HTTP BC, JMS
• Binding components are not APIs to external systems> JMS BC does not expose JMS API> File BC does not expose file system API
> e.g. request-reply with FileBC• Fine grained access:
> Write EJBs to use APIs (e.g. javax.jms.*, java.io.File) and deploy in EE SE
Slide 17
Service Units and Assemblies• Service Unit
> Set of files that are deployed into a component> These files are what make up the application> Examples: BPEL file, EAR file, XSLT file, Bindings (e.g.
wsdl)• Service Assembly
> Collection of Service Units> a ZIP file that gets deployed into JBI Runtime
Open ESBOpen ESB
19
What is Open ESB?
• Project Open ESB implements an Enterprise Service Bus (ESB) runtime using Java Business Integration as the foundation> This allows easy integration of web services to create
loosely coupled enterprise class composite applications.
• It also provides various tools for the development, deployment, and management of composite applications
20
IDE Web Server
BPELEditor
Java EESE JBI Bus
XSLTSE
HTTPBC
FTPBC
FTPBCMany MoreSEs…
FTPBCMany MoreBCs…
App
Ser
ver
XSLTEditor
CompositeApplication
Project
IEP Editor
CompositeApplicationManager
Runtime
BPELSE
Java EE
EJBs
Servlets
Java EESE JBI Bus
XSLTSE
HTTPBC
FTPBC
FTPBCMany MoreSEs…
FTPBCMany MoreBCs…
App
Ser
ver BPEL
SE
Java EE
EJBs
Servlets
Design-Time Management
3rd PartyService
Platforms
3rd PartyService
Platforms
Open Standard Based Service BusWS-Reliable MessagingWS-SecurityWS-FastInfoSet, …
Many MoreEditorsMany MoreEditors
IEPMonitor
BPELMonitor
XSLTMonitor
Many MoreEditorsMany MoreMonitors
21
OpenESB components• Service Engines
> BPEL> XSLT> EE> SQL> WLM> IEP> ETL
• Binding components> File> FTP> SMTP> SAP> JMS> CORBA> HTTP> 150+ more
Open ESB tooling Open ESB tooling
23
XSLT Editor• Handles XSL
Transformations> XSLT rules
support> predicates
support
24
IEP Editor• IntelligentEvent
Processor provides > RT event collection> RT event notification and
event triggers> RT event processing:
aggregation, filtering, partition, and correlation
25
BPEL (Business Process Execution Language)
• XML-based language used to specify business processes based on Web Services
• BPEL processes describe> Long running, stateful, transactional, conversations between
two or more partner web services• BPEL is key to implementing SOA Big Rules
> Conversational> Mostly Async> XML Document-based> Orchestrated
26
Visual Service Orchestration
27
Why Do You Care on BPEL?
• In SOA-enabled environment, you are more likely to build an application by orchestration various services via BPEL
• You will probably use BPEL design tool to create a BPEL document
• The BPEL document is then executed by BPEL engine> Highly likely in JBI enabled platform
28
Composite Applications• Composite application exposes a Service
> Coarse grained> Business value
• Layers> Technical services layer> Orchestration layer> Aggregation layer
• Multiple layers can be in one Composite Application, or...• Layers can be made up from multiple Composite
Applications> e.g. one or more Composite Applications per layer
29
CASA Editor• Assembles
serice units• Configures
service assembles
SummarySummary
31
Summary• SOA enables flexible and agile enterprise
application architecture• BPEL is a service orchestration language
for creating composite applications• Services can be re-implemented using other
technologies as long as service interfaces are preserved without changing consumers
• Java Business Integration (JBI) is the enabling infrastructure
DemoDemo
33
SOA using Open ESB, SOA using Open ESB, BPEL and NetBeansBPEL and NetBeans●Sergey LunegovSergey Lunegov–Engineering ManagerEngineering Manager●Sun Microsystems, Inc.Sun Microsystems, Inc.
33