composite applications with soa, bpel and java ee

Post on 15-Jan-2015

2.191 Views

Category:

Technology

9 Downloads

Preview:

Click to see full reader

DESCRIPTION

 

TRANSCRIPT

Building Composite Applications with SOA, BPEL and Java EE

Dmitri Shiryaev, Ph.D. Sun MicrosystemsSun Microsystemshttp://developers.sun.comhttp://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 : 2

• Benefits using SOA : 2 Min

• Summary : 2 Min

• Intro to BPEL designer : 2

• XML editor : 2

• WSDL editor : 2

• Runtime : 3

• StockQuote Demo : 15 Min

• Do not forget to mention about BPEL HOL.

• Q & A : 7 Min (optional)

• Part 2 : 50 Min

• Intro Service composition: 3 min

• CompApp/CAPS : 2

• Service Assembly/CASA : 2

• Binding components : 2

• services engines : 2

• IEP : 2

• Gavotte/Hula features : 5 Min

• CASA Demo : 15 Min

• Do not forget to mention about BPEL HOL.

• Q & A : 7 Min

• CASA demo : 25 Min

Goal

Visualizing and developingComposite 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

Provisioning

SuppliersInternal UsersCustomersPartners

InventoryBillingCRMLegacy

Information Assets

$ $$

$$

$

$$

$$

$$

$

$

$ $$

• Inflexibility of IT Infrastructure• Complexity of

Integration Projects• Integration Costs• Time to Market• Limited Partnering Flexibility• Limitations of EDI

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

Business-IT Context for SOA• Creating an IT environment to 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)

SOA and Web Services• Web services are most people's first and only 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

4. ESB2. BPEL

3. JBI

5.Java CAPS 1. Intro

6. The Answer To Everything

Sun Microsystems Inc. Proprietary 19

PracticePlatform

People ProcessThe Who? The What?

The How?The Where?

SOA

The 4Ps to achieve SOA

Why SOA?We’re 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 DecompositionFunctional 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

Process Layer

Service Layer

Resource Layer

Access Layer

The “Move” to SOANon-Integrated

Integratedand Shared

The Shift

• SOA is a combined effort between IT and the business units

SOA

IT Biz Units

Process Layer DefinerService Layer

Provider

Pre-SOA Scenario

CustomerData

CustomerData

Balance

CheckCreditCheck

FraudDetection

Partner Credit Data

Partner Credit Data

Balance

CheckCreditCheck

InterestCalc

Credit Card Mortgage

Back-End

System

Back-End

System

SOA-Enabled Scenario

Reusable Services

Credit Card Mortgage

Partner Credit Data

Customer Data Service

AccessService

Credit Check

Fraud Detection

Customer Data

PaymentManagement

Service

TradeExecution

Service

Internet

Bill PayAuto

Loans StocksMutualFunds

IncreasedAgility

Interest Calc

Balance Check

Back-End System Back-End System

SOA Architectural Big Rules Document-based Mostly Async Conversational

Reliable Secure/Identity Policy Driven

BPEL OrchestratedWSDL Described

Registered and Retrieved

JBI-based

Coarse Grained Business Services

SOA Architectural Big RulesCoarse Grained Business Services XML Document-based

Mostly Async Conversational

Design

Focused

Reliable Secure/Identity

Policy Driven Registered and Retrieved

SOA Architectural Big RulesQualities

Focused

Standards

Focused

WSDL Described BPEL Orchestrated

SOA Architectural Big Rules

JBI-based

Example: Purchase Service

BidRequest

BidRequest

Bid

Supplier

LowestBid

Accept/Reject

ShipNotice

Buyer PurchaseService

Accept/Reject

ShipNotice

Purchase Service Functions

BuyerEndpoint

SupplierEndpoint

BuyerConversation

SupplierConversation

Transaction Fees

SupplierSelection

Buyer Credit

Supplier Routing

ProductConversion

Purchase Service Functions

BuyerEndpoint

SupplierEndpoint

BuyerConversation

SupplierConversation

Transaction Fees

SupplierSelection

Buyer Credit

Supplier Routing

ProductConversion

WSDL/Soap

XQuery

EJB

BPELBPEL

WSDL/Soap

Rule

Routing TableXSLT

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; } ... } }

J2EE 1.4 Web Service<?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> <jaxrpc-mapping-file> WEB-INF/HelloService-mapping.xml </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'> <service name='HelloService' targetNamespace='urn:HelloService/wsdl' typeNamespace='urn:HelloService/types' packageName='endpoint'> <interface name='endpoint.HelloServiceSEI' servantName='endpoint.HelloServiceImpl'> </interface> </service></configuration>

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 {

public String sayHello(String param)

throws java.rmi.RemoteException;}

Code Written by Developer / Deployer

WebService in Java EE 5.0

import javax.jws.WebService;

@WebServicepublic class MySimpleWS {

public String sayHello(String s) {return “Hello “ + s;

}}

Java EE 5J2EE 1.4

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;

EJB References in 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

Orchestrating Process(BPEL)

Partner Service

Partner Service

Partner Service

Partner Service

WSDL

BPEL: Relationship to Partners

Orchestrating Process(BPEL)

InventoryChecker Service

Credit checker Service

Another Partner Service

CustomerService

WSDL

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

● BPEL Mapper● Visually create complex XPath expressions without coding

● Deploy to the built-in BPEL engine● JBI-based BPEL service engine + SOAP/HTTP bindings● Running within the bundled Sun Java System Application

Server

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

Stock QuoteClient

Stock QuoteClient

CurrencyExchangeService

Stock PriceService

BPEL Logic

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)

CheckCustomer StatusDetermine Product

Availability

CheckCustomer StatusDetermine Product

AvailabilityVerify

Customer Credit

Order Status

CalculateShipping Charges

Order Status

VerifyCustomer Credit

DataRepository

MonolithicApplications

AccountsManagement

OrderProcessing

FieldService

Scheduling

ExternalTradingPartner

AnotherBusiness

Unit

Red PrairieWarehouse

Mgmt. System

OracleFinanceSystem

LegacyCRM

System

AS400Sales

System

CustomMarketing

System

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 ApplicationExample:

Relevant business logic from legacy and packaged applications is made accessible to business owners through

BPMModern Web Interface

Existing Applications

Business Logic LegacySystem

SAPSystem

Business Logic

DataRepository

ExternalTradingPartner

AnotherBusiness

Unit

Red PrairieWarehouse

Mgmt. System

OracleFinanceSystem

LegacyCRM

System

AS400Sales

System

CustomMarketing

System

Shared Services – Composite Apps – Increased Functionality

CheckCustomer Status Check Credit Check

InventoryCheck

Order StatusCreateInvoice

AccountsManagement

OrderProcessing

FieldService

SchedulingPersonalized

ServiceManage

ExceptionOrders

SubmitChangeOrder

Composite Application – SOA based

Sun Microsystems Inc. Proprietary 64

Order Processing

CompositeApplications

Field Service Scheduling Accounts Management

View Revenue Process

Process Customer Order

Check Customer

Status

Verify CustomerCredit

Determine Product

Availability

Look-upCustomer Discount

CalculateShipping Charges

ExistingSystems

External TradingPartner

Custom Marketing

SystemAS400 Sales

SystemSiebel CRM

SystemOracle

Finance System

Red PrairieWarehouse Mgt System

Another Business

Unit

Installation Scheduling Bill Presentment/Payment

Process Customer Order

Check Customer

Status

Verify CustomerCredit

Determine Product

Availability

Look-upCustomer Discount

CalculateShipping Charges

ExistingSystems

External TradingPartner

Custom Marketing

SystemAS400 Sales

SystemSiebel CRM

SystemOracle

Finance System

Red PrairieWarehouse Mgt System

Another Business

Unit

ComposedBusinessService

ElementalBusinessServices

SOA and Composite ApplicationsBusiness services are composed into composite applications

Accidental Rigid Silo-Oriented Layered Extensible Service-Oriented

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

Java Enterprise SystemPractice

People Process

SOA

A Complete Business Integration Platform Platform

Java Enterprise System

Identi

tyMa

nage

ment

ApplicationPlatform B2B

ESBWebInfrastructure

CompositeApplication Platform

Comm

unity

Avail

abilit

y

Data

Cen

ter M

anag

emen

t

NetB

eans

Traditional Client● Sun Ray, Star/OpenOffice,

JDS

Mobile Client● Java ME● Java CardSecure Global

Desktop

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 MOM—async 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)

XQuery

JavaEEProcessRules

Xform Soap Route MOM

WSDL/SoapWSDL/Soap

BPELBPEL

EJB

XQueryRule

RoutingTable

XSLT

Deploy

Install

NMR

JBIComposite 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:

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

• Under Development:> IEP (BAM) SE> ETL SE> SQL SE> MQSeries BC> HL7 BC> SAP BC> SMTP BC

Current release targeted at DevelopersSun 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)

IEP

Scratch Store

Input streams

RegisterQuery

StreamedResult

StoredResult

ArchiveStoredData

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• Both WSI-BSP and Liberty token profile support

> SAML, X.509, Username/password

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-to-

date 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

top related