Composite Applications with SOA, BPEL and Java EE
-
Upload
dmitri-shiryaev -
Category
Technology
-
view
2.190 -
download
9
description
Transcript of Composite Applications with SOA, BPEL and Java EE
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> [email protected] 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