Soa bpel-123

51
SOA & BPEL: Building a Service With BPEL and the Java EE Platform

Transcript of Soa bpel-123

Page 1: Soa bpel-123

SOA & BPEL:Building a Service With BPEL

and the Java EE Platform

Page 2: Soa bpel-123

Agenda

This session describes howdevelopers using Java™ Platform,Enterprise Edition can createcomposite applications using BPELwith current Java EE tools andapplication servers that support JavaBusiness Integration

Page 3: Soa bpel-123

Agenda

Why Services Why Composite Applications BPEL in the Mix A Java EE Based Composite Application Summary

Page 4: Soa bpel-123

Why Services?

SOA = an architectural principle for structuring systems that

SOA emphasizes the de-coupling of system components

New services are created from existing ones in a synergistic fashion

Strong service definitions are critical Services can be subsequently re-composed in

response to changing business requirements

Page 5: Soa bpel-123

What Are Services?

A function accessed using XML message exchange

Message exchanges have well known exchange patterns

Services are self-describing, usingmetadata (WSDL)

Page 6: Soa bpel-123

What Does a Service Do?

Transform data Route messages Query databases Orchestrate conversations Apply business logic Apply business policy Handle business exceptions Solicit approvals …

Page 7: Soa bpel-123

How Is a Service Implemented?

• XSLT• Enterprise JavaBeans™ (EJB™) technology• BPEL• SQL• XQuery• Routing table• Business rules• EDI transform• …

Page 8: Soa bpel-123

Service Oriented Architecture

In April 2006 the Object Management Group's (OMG) SOA Special Interest Group adopted the following definition for SOA Service Oriented Architecture is an architectural style for a Community of providers and consumers of services to achieve mutual value, that

– Allows participants in the communities to work together with minimal co-dependence or technology dependence

– Specifies the contracts to which organizations, people and technologies must adhere in order to participate in the community

– Provides for business value and business processes to be realized by the community

– Allows for a variety of technologies to be used to facilitate interactions within the community

Page 9: Soa bpel-123

Service Oriented Architecture

In March 2006 the OASIS group SOA Reference Model released its first public review draft.

This defines the basic principles of SOA that apply at all levels of a service architecture, from business vision through to technical and infrastructure implementation

– Service Oriented Architecture; a paradigm for organizing and utilizing distributed capabilities that may be under the control of different ownership domains.

– It provides a uniform means to offer, discover, interact with and use capabilities to produce desired effects consistent with measurable preconditions and expectations

Page 10: Soa bpel-123

Principles of SOA

Services share a formal contract Services are loosely coupled Services abstract underlying logic Services are composable Services are reusable Services are autonomous Services are stateless Services are discoverable

Page 11: Soa bpel-123

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– New business opportunities

Greater ROI– Leverage existing IT asset

Page 12: Soa bpel-123

Composite Applications

Composite applications are...applications! Comprised of heterogeneous parts

– Some existing parts– Some new parts

Composite applications != SOA Composite applications employ SOA principles

– Features exposed as Web services– Standards-based interaction between services– Described by standards-based artifacts– Are themselves composable

Page 13: Soa bpel-123

Purchase Service

Page 14: Soa bpel-123
Page 15: Soa bpel-123

Purchase Service Functions

Page 16: Soa bpel-123

Composite Applications—Summary

A composite application is a collection of existing and independently developed applications and new business logic, orchestrated together into a brand new solution of a business problem that none alone can solve

Such an application looks to the user like a regular new interactive application, yet in reality it may be only 10 percent new and 90 percent an assembly of pre-existing components or data;

The “glue” that brings a composite application together is integration technology

Page 17: Soa bpel-123

WS-BPEL Works With WSDLWeb Services Business Process Execution Language

Web services are described in WSDL– Operations are message exchanges– Each operation represents an individual unit of action

We need a way to orchestrate these operations with multiple web services in the right order to perform a Business process

– Sequencing, conditional behavior etc. BPEL provides standard-based orchestration of

these operations

Page 18: Soa bpel-123

What is BPEL?

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 19: Soa bpel-123

BPEL Is a Web ServiceSequencing Language

Process defines “conversation” flow chart– Conversation consists of only WSDL-described

message exchanges– BPEL provides and consumes WSDL defined

services Process instance is a particular conversation

following the chart– Execution systems can support multiple

concurrent conversations

Page 20: Soa bpel-123

BPEL “Fixes” WSDL

WSDL: unordered set of operations– Operations are message exchanges

• Need rules for ordering • Support for sequencing • Support for concurrency • Choreography with external entities

Page 21: Soa bpel-123

Orchestration vs. Choreography

Orchestration– An executable business process describing a flow from the

perspective and under control of a single endpoint (commonly: Workflow)

– BPEL handles Orchestration Choreography (WSDL)

– The observable public exchange of messages, rules of interaction and agreements between two or more business process endpoints

– WSDL handles Choreography

Page 22: Soa bpel-123

BPEL: Relationship to Partners

Page 23: Soa bpel-123

Business Process Needs To...

Co-ordinate asynchronous communication between services

Correlate message exchanges between parties

Implement parallel processing of activities

Implement compensation logic(Undo operations)

Manipulate/transform data between partner interactions

Support for long running business transactions and activities

Handle exception handling Need for universal data

model for message exchange

Page 24: Soa bpel-123

BPEL Document Structure

Page 25: Soa bpel-123

BPEL Activities

Basic Activities• <invoke>• <receive>• <reply>• <assign>• <throw>• <wait>• <empty>

Structured Activities• <sequence>• <while>• <pick>• <flow>• <scope>• <compensate>• <switch>• <link>

Page 26: Soa bpel-123

BPEL: Basic Activities

<invoke> To invoke a one-way or request/response operation on a

portType offered by a partner <receive>

To do a blocking wait for a matching message to arrive Can be the instantiator of the business process

<reply> To send a message in reply to a message that was

received through a <receive> The combination of a <receive> and a <reply> forms a

request-response operation on the WSDL portType for the process

Page 27: Soa bpel-123

BPEL: Basic Activities

<assign>– Can be used to update the values of variables with new data

<throw>– Generates a fault from inside the business process

<wait>– Allows you to wait for a given time period or until a certain time has

passed <empty>

– Allows you to insert a "no-op" instruction into a business process– This is useful for synchronization of concurrent activities, for

instance

Page 28: Soa bpel-123

BPEL: Structured Activities

• <sequence> Perform activities in sequential order

• <flow> Perform activities in parallel

• <switch> Conditional choice of activities

• <scope> Enclose multiple activities in a single scope

Page 29: Soa bpel-123

Example Business Process

Page 30: Soa bpel-123

Sample Activities in BPEL

Page 31: Soa bpel-123

BPEL: Relationship to Partners

Page 32: Soa bpel-123

Why Do You Care on BPEL?

• In SOA-enabled environment, you are more likely tobuild an application by orchestration various servicesvia BPEL• You will probably use BPEL design tool to create aBPEL document• The BPEL document is then executed by BPELengine

– Highly likely in JBI enabled platform

Page 33: Soa bpel-123

Example ScenarioThe Loan Processing Composite Application

Page 34: Soa bpel-123
Page 35: Soa bpel-123

WSDL: Schema Types (1)LoanProcessor.wsdl

Page 36: Soa bpel-123

WSDL: Schema Types (1)LoanProcessor.wsdl

Page 37: Soa bpel-123
Page 38: Soa bpel-123

BPEL Header

Page 39: Soa bpel-123

BPEL: Partner Links & Variables

Page 40: Soa bpel-123

BPEL: Partner Links & Variables

Page 41: Soa bpel-123

BPEL: …the Decision

Page 42: Soa bpel-123

BPEL: …the Decision, Reply

Page 43: Soa bpel-123

Loan Processor Service (EJB 3)

Page 44: Soa bpel-123

What Are the Artifacts?

Page 45: Soa bpel-123

Service Consumption (Java APIs)for XML Web Services (JAX-WS 2.0)

Page 46: Soa bpel-123

Runtime: Java EE Platformand Java Business Integration

Java Business Integration serves as messaging infrastructure Java EE web services interact through Java Business

Integration Java Business Integration bindings allow remote

consumers and providers Add other service technologies as Java Business

Integration components Transparent to programmer using Java EE

technology Reuse without re-coding

Page 47: Soa bpel-123

Java Business Integration (JSR 208)

Page 48: Soa bpel-123
Page 49: Soa bpel-123

Web Service Orchestration

Author, design, deploy and test business processes with the BPEL Designer

– Supports the BPEL 2.0 constructs– Adds powerful methods for visual authoring– Step through debugging support– Built in testing capability for unit testing

BPEL Mapper for BPEL variable assignments– Quickly generate XPath expressions

Deploy to the built in BPEL engine– Running as a service engine in the JBI environment within

the provided Sun Java System Application Server

Page 50: Soa bpel-123

Summary

SOA enables flexible and agile enterprise application architecture

Services can be created and used using a variety of Java EE technologies

BPEL is a service orchestration language for creating stateful composite applications

Services can be re-implemented using other technologies as long as service interface is preserved without changing consumers

Java Business Integration is the enabling infrastructure

Page 51: Soa bpel-123

THANKS