Vous êtes sur la page 1sur 91

Building Composite Applications with SOA, BPEL and Java EE

Dmitri Shiryaev, Ph.D. Sun Microsystems http://developers.sun.com

Part 1 : :55 Min Approx Intro to Applications / Services 2 min Intro SOA : 2 Min Java 5 & Java EE Services: 2 min Why NetBeans & Ent Pack : 2 Min BPEL Summary XML editor WSDL editor Runtime StockQuote Demo Q&A :2 : 2 Min : 2 Min :2 :2 :3 : 15 Min Benefits using SOA

Part 2 : 50 Min Intro Service composition: 3 min CompApp/CAPS Binding components services engines IEP CASA Demo Q&A CASA demo :2 : 15 Min : 7 Min : 25 Min :2 :2 :2 Service Assembly/CASA : 2

Gavotte/Hula features : 5 Min Do not forget to mention about BPEL HOL.

Intro to BPEL designer : 2

Do not forget to mention about BPEL HOL. : 7 Min (optional)

Goal Visualizing and developing Composite Applications using SOA and Java EE

Agenda

Composite Applications Services and SOA Java EE Services BPEL in the Mix Recap Demo

Applications
Developers need to build end-to-end applications
> Front-end user interfaces > Middle-tier business logic > Back-end resources

With the right approach, developers can...


> Reuse existing parts > Build new parts > Glue old and new parts together

With the wrong approach, developers must...


> Reimplement functionality existing elsewhere > Spend massive effort to evolve applications

Applications
Real-world applications are...
> > > > > > > > >

Web applications Java EE applications Swing forms Web services BPEL processes SOA JBI RDBMSs (your favorite technology)

Real-world applications use many or all of these

Applications
Traditional model of 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

This is a complex world !


Channels
Partners Customers Internal Users Suppliers

Inflexibility of IT Infrastructure Complexity of Integration Projects

$ $$

$ $

$ $ $ $ $

$ $ $

Integration Costs Time to Market Limited Partnering Flexibility Limitations of EDI

Legacy

$ $

CRM

Billing

$Inventory Provisioning

Information Assets

Composite Applications
A way to compose applications from reusable parts Comprised of heterogeneous parts
> Some existing parts > Some new parts > Some glue to connect these parts

Composite applications are Applications!


> Composite applications != SOA

Composite applications employ SOA principles


> Features exposed as Web services > Standards-based interaction between services > Are themselves composable

Agenda

Composite Applications Services and SOA Java EE Services BPEL in the Mix Recap Demo

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

Creating an IT environment to for SOA Business-IT Context support continuous business optimization Structures your IT applications in line with your business processes
Speeds business change Facilitates business connections Enchances business control

Heavy focus on flexible interconnections with carefully managed qualities of service (QoS)

Web services are most people's first and only SOA and Web Services exposure to SOA Only one manner of service access Message-oriented middleware (MOM) CORBA, RMI, DCOM, raw sockets, Email etc. SOA architectures tend to be best implemented using web services as the middleware technology

Why Services?
SOA = an architectural principle for structuring systems 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

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)

Services are self-describing Metadata in the form of WSDL describes...


> Abstract interfaces > Concrete endpoints

What Does a Service Do?


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

How Are Services Implemented?


Enterprise JavaBeans (EJB) technology BPEL XSLT SQL Business rules Mainframe transaction EDI transform Humans (yes, really!)

Guide to the SOA Galaxy


You are here 3. JBI 2. BPEL

4. ESB

1. Intro

5.Java CAPS

6. The Answer To Everything

The 4Ps to achieve SOA

People
The Who?

Process
The What?

SOA
Platform Practice

The Where?
Sun Microsystems Inc. Proprietary

The How?
19

Why SOA?

Were not building new, green field applications anymore

We buy applications whenever possible. And, we leverage these new applications along with our existing inventory of application and data assets. These are Composite Applications

A composite application is a collection of existing applications and data stores, as well as new business logic, that is orchestrated together to create a solution to a business problem that none alone can solve.

An SOA can deliver the benefits of Functional Decomposition


Functional decomposition defines a system in which each component is described in terms of its own, independent functionality. A side effect is that the interfaces between components are well-defined ahead of the implementation of those components. When a system is composed of components with discrete functionality and well-defined interfaces, each specific implementation of a component becomes readily interchangeable with other implementations of that component. Consider a bicycle. You can buy components from different vendors and these components can all be bolted together to create a bicycle that fits your unique set of requirements and preferences.

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

SOA Layers
Access Layer Process Layer Service Layer Resource Layer

The Move to SOA


NonIntegrated

Integrated and Shared

The Shift
SOA is a combined effort between IT and the business units Proc SOA er ess Lay e Defi Layer rvic vider ner Se ro P

IT

Biz Units

Pre-SOA Scenario
Credit Card Mortgage

Balance Check

Fraud Detection

Credit Check

Credit Check

Balance Check

Interest Calc

Customer Data

BackEnd System

Partner Credit Data

Partner Credit Data

BackEnd System

Customer Data

SOA-Enabled Scenario
Auto Loans Bill Pay Mutual Stocks Funds

Credit Card

Mortgage

Reusable
Payment Management Service Credit Check Fraud Detection Access Service

Services
Interest Calc Balance Check Customer Data Service

Trade Execution Service

Internet

Increased Agility
Partner Credit Data Back-End System Back-End System Customer Data

SOA Architectural Big Rules


Coarse Grained Business Services Document-based Mostly Async Conversational

Reliable

Secure/Identity

Policy Driven

Registered and Retrieved

WSDL Described

BPEL Orchestrated

JBI-based

SOA Architectural Big Rules


Coarse Grained Business Services XML Document-based

n esig ed D us Foc

Mostly Async

Conversational

SOA Architectural Big Rules


Reliable Secure/Identity

i es al i t ed Qu us Foc

Policy Driven

Registered and Retrieved

SOA Architectural Big Rules


WSDL Described BPEL Orchestrated

ds dar d n Sta cuse Fo

JBI-based

Example: Purchase Service


Bid Request Bid Request

Lowest Bid Buyer Accept/ Reject Purchase Service

Bid Supplier Accept/ Reject

Ship Notice

Ship Notice

Purchase Service Functions


Buyer Endpoint Supplier Endpoint

Buyer Conversation

Supplier Conversation

Transaction Fees Supplier Selection Buyer Credit Supplier Routing Product Conversion

Purchase Service Functions


WS DL/ Buyer Soa Endpointp WS DL/ Supplier Soa Endpointp

Conversation

Buyer BPE L

Supplier BPE L Conversation

JB Transaction Fees XQ Supplier uer y Selection


Buyerule Credit

ing T Supplier Routing abl e


R XSL Product T Conversion

Rout

Agenda

Composite Applications Services and SOA Java EE Services BPEL in the Mix Recap Demo

Java Platform, Enterprise Edition (Java EE) A set of coordinated technologies and practices that enable solutions for developing, deploying, and managing multi-tier, server-centric applications. Building on Java Platform, Standard Edition (Java SE), Java EE adds the capabilities that provide a complete, stable, secure, and fast Java platform for the enterprise. Java EE significantly reduces the cost and complexity of developing and deploying multi-tier solutions, resulting in services that can be rapidly deployed and easily enhanced.

Java EE 5 Overview
Key development features
> > > > >

EJB 3.0 Annotated plain old Java object (POJO) Web services Powerful Java Persistence API (JPA) for O-R mapping JAX-WS 2.0 and JAXB 2.0 Samples and blueprints

Open ESB Starter Kit


> Java Business Integration (JBI) runtime > BPEL service engine > SOAP-over-HTTP binding component

Sun Java System Application Server 9 PE (Glassfish)

Java EE Services
Use EJB 3.0 to develop standards-based worker services
> > > > >

Perform business logic Access JDBC resources Call other Web services, including BPEL processes Transactional Secure

JAX-WS 2.0 and JAXB 2.0


> Full support for XML Schema > Document-centric services

Call these services from BPEL processes

EJB 3.0 Example


@Stateless() @WebService() public class LoanProcessor { @WebMethod public String processApplication(..., @WebParam(name="applicantAge") int applicantAge,...) {
int MINIMUM_AGE_LIMIT = 18; int MAXIMUM_AGE_LIMIT = 65;

String result = "Loan Application APPROVED." if (applicantAge < MINIMUM_AGE_LIMIT) { result = "Loan Application REJECTED - Reason: Under-aged "+applicantAge+". Age needs to be "+ over"+MINIMUM_AGE_LIMIT+" years to qualify."; return result; } ...

} }

J2EEby1.4 Web Service Code Written Developer / Deployer


package endpoint; import java.rmi.*; public class HelloServiceImpl implements HelloServiceSEI { public String sayHello(String param) throws java.rmi.RemoteException { return Hello + param; } } package endpoint; import java.rmi.*; public interface HelloServiceSEI { extends java.rmi.Remote
<?xml version='1.0' encoding='UTF-8' ?> <webservices xmlns='http://java.sun.com/xml/ns/j2ee' version='1.1'> <webservice-description> <webservice-description-name> HelloService</webservice-description-name> <wsdl-file> WEB-INF/wsdl/HelloService.wsdl</wsdl-file> WEB-INF/HelloService-mapping.xml <jaxrpc-mapping-file> </jaxrpc-mapping-file> <port-component xmlns:wsdl-port_ns='urn:HelloService/wsdl'> <port-component-name>HelloService</port-component-name> <wsdl-port>wsdl-port_ns:HelloServiceSEIPort</wsdl-port> <service-endpoint-interface> endpoint.HelloServiceSEI</service-endpoint-interface> <service-impl-bean> <servlet-link>WSServlet_HelloService</servlet-link> </service-impl-bean> </port-component> </webservice-description> </webservices>

<?xml version='1.0' encoding='UTF-8' ?> <configuration xmlns='http://java.sun.com/xml/ns/jax-rpc/ri/config'>

public String sayHello(String param) throws java.rmi.RemoteException; }

<service name='HelloService' targetNamespace='urn:HelloService/wsdl' typeNamespace='urn:HelloService/types' packageName='endpoint'>

<interface name='endpoint.HelloServiceSEI' servantName='endpoint.HelloServiceImpl'> </interface> </service> </configuration>

WebService in Java EE 5.0

import javax.jws.WebService; @WebService public class MySimpleWS { public String sayHello(String s) { return Hello + s; } }

EJB References in Java EE 5


Context initial = new InitialContext(); Context myEnv = (Context) initial.lookup("java:comp/env"); Object objref = myEnv.lookup("ejb/SimpleConverter"); ConverterHome home = (ConverterHome) PortableRemoteObject.narrow (objref, ConverterHome.class); Converter currencyConverter = home.create();

@EJB Converter currencyConverter;

J2EE 1.4 Java EE 5

Agenda

Composite Applications Services and SOA Java EE Services BPEL in the Mix Recap Demo

Business Processes
Any technology for implementing real-world business processes needs to...
> Coordinate asynchronous communication between > > > > > > >

services Correlate message exchanges between partners Exchange messages in a universal form Process activities in parallel Manipulate/transform data between partners Support long-running business transactions Handle exceptions Provide compensation to undo previous actions

What is BPEL?
BPEL = Business Process Execution Language
> XML-based language used to specify business

processes based on Web services > Orchestrates partner Web services

BPEL processes describe...


> Long-running, stateful, transactional conversations

BPEL is one language for implementing a service


> A BPEL service is itself a WSDL-described service > Can be used from other services or BPEL processes like

any other Web service

BPEL processes are easy to write and change

BPEL: Relationship to Partners


WSDL Partner Service

Partner Service Partner Service Orchestrating Process (BPEL) Partner Service

BPEL: Relationship to Partners


WSDL
Inventory Checker Service

Credit checker Service

Customer Service

Orchestrating Process (BPEL)

Another Partner Service

BPEL Document Structure


<process> <partners> ... </partners> <variables> ... </variables> <correlationSets> ... </correlationSets> <faultHandlers> ... </faultHandlers> <eventHandlers> ... </eventHandlers> <!-- Business process implementation here --> <receive> ... </receive> <reply> ... </reply> <invoke> ... </invoke> </process>

BPEL Fixes WSDL


WSDL describes an unordered set of operations
> Operations are grouped as interfaces > Operations are individual message exchanges

Semantics of the interface are missing in WSDL


> Order of invocation > Concurrency > Choreography with external entities

BPEL can supply these missing semantics

Web Service Orchestration

Visually author BPEL 2.0 business processes with the BPEL Designer

Step-through debugging support Built-in testing capability for unit testing Beyond syntax validation of Schema, WSDL, and BPEL Visually create complex XPath expressions without coding JBI-based BPEL service engine + SOAP/HTTP bindings Running within the bundled Sun Java System Application Server

BPEL Mapper

Deploy to the built-in BPEL engine


Agenda

Composite Applications Services and SOA Java EE Services BPEL in the Mix Recap Demo

Recap
SOA enables flexible and agile enterprise application architecture Services can be created and used using Java EE 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 Tools for BPEL (using BPMN) and services are critical

Agenda

Composite Applications Services and SOA Java EE Services BPEL in the Mix Recap Demo

Stock Quote Demo


Currency Exchange Service Stock Quote Stock Quote Client Client BPEL Logic Stock Price Service

NetBeans Enterprise Pack 5.5


Support for composite applications Design BPEL business processes to orchestrate:


Java EE Web services External Web services Other BPEL processes

Develop secure, identity-enabled Java EE Web services Visualize, analyze, and edit real-world XML Schema, WSDL, and XML instance documents Download: http://www.netbeans.org

Agenda : Part 2

Introduction to Service composition Composite Applications / CAPS Java Business Integration Service Assembly / CASA Tools IEP, CASA, WSDL Editor Demo

Silos driven Architecture (SdA)


Field Service Scheduling Order Processing
Accounts Management

Check Customer Status Determine Product Availability

Check Customer Status Determine Product Availability Verify Customer Credit Order Status

Calculate Shipping Charges Order Status Verify Customer Credit

Monolithic Applications

Data Repository
Custom Marketing System AS400 Sales System Legacy CRM System Oracle Finance System Red Prairie Warehouse Mgmt. System Another Business Unit External Trading Partner

Problems with Legacy Apps (SdA)


Difficult to maintain Expensive to maintain Interfaces are rigid not flexible Small changes/ Update will have major impact Problems in Integration with other systems

Agenda : Part 2

Introduction to Service composition Composite Applications / CAPS Java Business Integration Service Assembly / CASA Tools IEP, CASA, WSDL Editor Demo

Composite Applications
A composite application combines existing packaged and legacy applications, information stores, and newly developed services into a single solution. > May look like a new application even though it may be 10% new and 90% an assembly of existing components

Composite Applications Benefits


Lower cost > Less maintenance on legacy and packaged applications Business agility > No delay in modification of business parameters by IT Ease of use > Modern UI for legacy and packaged applications

Composite Application Example:


Interface

Relevant business logic from legacy and packaged applications is made accessible to business owners through BPM Existing Modern Web

Applications

ne Busi

gic s Lo s

Legacy System

Busi ness Logi c


SAP System

Composite Application SOA based


Field Service Scheduling Order Processing Accounts Management Submit Change Order Manage Exception Orders Personalized Service

Shared Services Composite Apps Increased Functionality


Check Customer Status Check Credit Check Inventory Check Order Status Create Invoice

Data Repository
Custom Marketing System AS400 Sales System Legacy CRM System Oracle Finance System Red Prairie Warehouse Mgmt. System Another Business Unit External Trading Partner

SOA and Composite Applications


Business services are composed into composite applications
Composite Applications
Field Service Scheduling Order Processing Accounts Management

Installation Scheduling

Process Customer Order

View Revenue Bill Presentment/Payment Process

Composed Business Service Elemental Business Services

Check Customer Status

Verify Customer Credit

Look-up Customer Discount

Determine Product Availability

Calculate Shipping Charges

Existing Systems
Custom Marketing System AS400 Sales System Siebel CRM System Oracle Finance System Red Prairie Warehouse Mgt System Another Business Unit External Trading Partner
64

Sun Microsystems Inc. Proprietary

Moving from Monolithic, closed applications to 'standardized' service oriented architecture

Accidental Rigid Silo-Oriented

Layered Extensible Service-Oriented

Java Enterprise System


A Complete Business Integration Platform
Traditional Client Sun Ray, Star/OpenOffice, Secure Global JDS Desktop Mobile Client Java ME Java Card

People

Process

SOA
Platform Practice

Java Enterprise System NetBeans


Identity Management Community Availability Composite Application Platform
Application Platform Web Infrastructure B2B ESB

Data Center Management

What is Open ESB ?


Sun's Open Source Enterprise Service Bus A standard, distributed integration infrastructure Highly distributed scalable JBI services Uses JBI Reference Implementation code Based on MOMasync XML message exchanges Centralized management Standard deployment of composite services QOS characteristics

Java Business Integration - JSR 208


Foundation for Service Oriented Architecture Component Standard > Service providers > Service consumers Components from multiple sources are: > Portable > Manageable > Interoperable

Java Business Integration (JSR 208)


WS SoaDL/ p WS SoaDL/ p

XQuery

Install

BPE L EJB XQ uer y Rul e

BPE L

Rules

Process

JavaEE

Rou Tab ting le

Deploy

NMR Xform Soap JBI Route MOM

XSL

Composite Service

Runtime: Java EE Platform and 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

Agenda : Part 2

Introduction to Service composition Composite Applications / CAPS Java Business Integration Service Assembly / CASA Tools IEP, CASA, WSDL Editor Demo

JBI and ESBs

OpenESB Functionality
Current Release:
> > > > > > >

Under Development:
> > > > > > >

AS 9 / GlassFish BPEL SE XSLT SE JavaEE SE HTTP BC JMS BC File BC

IEP (BAM) SE ETL SE SQL SE MQSeries BC HL7 BC SAP BC SMTP BC

Current release targeted at Developers Sun to freeze a supported version in April 2007 - similar to the Glassfish -> Sun AppServer relationship

OpenESB and Appserver 9


Appserver 9:
> Host for

administration of the ESB > Host for each node of the ESB > JavaEE Service Engine

Intelligent Event Processor (Business Activity Monitoring)


Register Query Streamed Result Stored Result

IEP
Input streams Archive
Scratch Store
Stored Data

Secure Service Creation


Secure Java EE Web service development
> Message-level security for Web service clients and

providers

> J2EE 1.4 and Java EE 5

> Support provided by the bundled Sun Java System

Access Manager > Easy installation of runtime components


> SAML, X.509, Username/password

Both WSI-BSP and Liberty token profile support

Agenda : Part 2

Introduction to Service composition Composite Applications / CAPS Java Business Integration Service Assembly / CASA Tools IEP, CASA, WSDL Editor Demo

NetBeans Enterprise Pack 5.5.1 / 6.0


Visual Service Assembly (CASA) Visual Intelligent Event Processor (IEP/BAM) Visual Editor for Continuos Query Language (CQL) Visual Web Service Definition Language (WSDL) Editor Service engines integrated
> BPEL, IPE, SQL and XSLT

Binding components integrated


> File, FTP, HTTP, JDBC, JMS, MQ and SMTP

CASA Editor

Intelligent Event Processor (IEP)

WSDL Editor

WSDL Editor Partner Link Type

Agenda : Part 2

Introduction to Service composition Composite Applications / CAPS Java Business Integration Service Assembly / CASA Tools IEP, CASA, WSDL Editor Demo

Demo
IEP Demo CASA Demo WSDL Editor Demo

Services for Developers


Sun Developer Forums Community & Sun. > http://forum.sun.com > nbentpack@netbeans.org alias Incident support for Java, Developer Tools and Solaris > For as little as $99 get answers to your programming questions Sun Software Services Plans for Developer Tools > Unlimited incidents, bugs and escalations, telephone support > 5x12 or 7x24 worldwide Sun Developer Service Plans for Java and Developer Tools > Get how-to incident help, Unlimited bugs/escalation, telephone support and Sun Training credits > 5x12 or 7x24 worldwide

Services for Developers (contd.)


Java MultiPlatform 7x24 Enterprise Java Support for OpenSolaris, Linux, Windows and MacOS > Get your run-time Java issues addressed in the release you want to use > Comprehensive run time support for your Java deployment environment http://developers.sun.com/services Training and Certification > http://www.sun.com/training/catalog/java/index.xml

Call to Action!
Download NetBeans 5.5.1 Beta
http://www.netbeans.info/downloads/index.php?rs=20

NetBeans 5.5.1 Release Information

http://www.netbeans.org/community/releases/55/1/index.html

Join Sun Developer Network (SDN) for up-todate SOA information: http://developers.sun.com

Resources
http://www.netbeans.org/products/enterprise http://enterprise.netbeans.org http://java.sun.com/javaee/ http://www.sun.com/products/soa http://www.netbeans.org/kb/55/entpack-index.html

Blogs
Prakash Narayan: http://blogs.sun.com/pnarayan PCM Reddy: http://blogs.sun.com/pcmreddy Chris Webster: http://blogs.sun.com/cwebster Sherry Barkodar: http://blogs.sun.com/barkodar Gopalan Raj: http://blogs.sun.com/gopalan

Q&A
Questions?

Thank you ! Dmitri Chiriaev

Vous aimerez peut-être aussi