soa using openesb, bpel and netbeans

33
1 SOA using SOA using OpenESB, BPEL, OpenESB, BPEL, and NetBeans and NetBeans Sergey Lunegov Sergey Lunegov Engineering Manager Engineering Manager Sun Microsystems, Inc. Sun Microsystems, Inc. 1

Upload: zubin67

Post on 28-May-2015

1.040 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: SOA Using OpenESB, BPEL and NetBeans

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

Page 2: SOA Using OpenESB, BPEL and NetBeans

2

Agenda• Services and SOA• JBI• Open ESB• Open ESB tooling• Demo

Page 3: SOA Using OpenESB, BPEL and NetBeans

Services and SOAServices and SOA

Page 4: SOA Using OpenESB, BPEL and NetBeans

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

Page 5: SOA Using OpenESB, BPEL and NetBeans

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

Page 6: SOA Using OpenESB, BPEL and NetBeans

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

Page 7: SOA Using OpenESB, BPEL and NetBeans

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)• …

Page 8: SOA Using OpenESB, BPEL and NetBeans

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

Page 9: SOA Using OpenESB, BPEL and NetBeans

JBI JBI

Page 10: SOA Using OpenESB, BPEL and NetBeans

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

Page 11: SOA Using OpenESB, BPEL and NetBeans

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

Page 12: SOA Using OpenESB, BPEL and NetBeans

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

Page 13: SOA Using OpenESB, BPEL and NetBeans

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

Page 14: SOA Using OpenESB, BPEL and NetBeans

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

Page 15: SOA Using OpenESB, BPEL and NetBeans

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

Page 16: SOA Using OpenESB, BPEL and NetBeans

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

Page 17: SOA Using OpenESB, BPEL and NetBeans

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

Page 18: SOA Using OpenESB, BPEL and NetBeans

Open ESBOpen ESB

Page 19: SOA Using OpenESB, BPEL and NetBeans

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

Page 20: SOA Using OpenESB, BPEL and NetBeans

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

Page 21: SOA Using OpenESB, BPEL and NetBeans

21

OpenESB components• Service Engines

> BPEL> XSLT> EE> SQL> WLM> IEP> ETL

• Binding components> File> FTP> SMTP> SAP> JMS> CORBA> HTTP> 150+ more

Page 22: SOA Using OpenESB, BPEL and NetBeans

Open ESB tooling Open ESB tooling

Page 23: SOA Using OpenESB, BPEL and NetBeans

23

XSLT Editor• Handles XSL

Transformations> XSLT rules

support> predicates

support

Page 24: SOA Using OpenESB, BPEL and NetBeans

24

IEP Editor• IntelligentEvent

Processor provides > RT event collection> RT event notification and

event triggers> RT event processing:

aggregation, filtering, partition, and correlation

Page 25: SOA Using OpenESB, BPEL and NetBeans

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

Page 26: SOA Using OpenESB, BPEL and NetBeans

26

Visual Service Orchestration

Page 27: SOA Using OpenESB, BPEL and NetBeans

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

Page 28: SOA Using OpenESB, BPEL and NetBeans

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

Page 29: SOA Using OpenESB, BPEL and NetBeans

29

CASA Editor• Assembles

serice units• Configures

service assembles

Page 30: SOA Using OpenESB, BPEL and NetBeans

SummarySummary

Page 31: SOA Using OpenESB, BPEL and NetBeans

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

Page 32: SOA Using OpenESB, BPEL and NetBeans

DemoDemo

Page 33: SOA Using OpenESB, BPEL and NetBeans

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