SlideShare a Scribd company logo
This Presentation Courtesy of the
                          International SOA Symposium
                          October 7-8, 2008 Amsterdam Arena
                          www.soasymposium.com
                          info@soasymposium.com


                                       Founding Sponsors




Platinum Sponsors




Gold Sponsors       Silver Sponsors
SOA & Java EE:
Developing killer SOA
applications using the Java EE
Platform


Prakash Narayan
Sun Microsystems
Goal



  Visualizing and developing composite
  applications using BPEL, SOA and
  Java EE




                                     2
Agenda
Composite Applications
Services and SOA
Java EE Services
BPEL in the Mix
Putting it all together with NetBeans
Summary
Demo


                                        3
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
                                                   4
Applications
• Real-world applications are...
  >   ...not Web applications
  >   ...not Java EE applications
  >   ...not Swing forms
  >   ...not Web services
  >   ...not BPEL processes
  >   ...not SOA
  >   ...not JBI
  >   ...not RDBMSs
  >   ...not (your favorite technology)
• Real-world applications use many or all of these
                                                     5
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




                                                                  6
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                      7
Agenda
Composite Applications
Services and SOA
Java EE Services
BPEL in the Mix
Putting it all together with NetBeans
Summary
Demo


                                        8
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


                                                   9
What Can Services Do?
•   Perform business logic
•   Transform data
•   Route messages
•   Query databases
•   Apply business policy
•   Handle business exceptions
•   Prepare information for use by a user interface
•   Orchestrate conversations between multiple services
•   …
                                                   10
How Are Services Implemented?
•   Enterprise JavaBeans™ (EJB™) technology
•   BPEL
•   XSLT
•   SQL
•   Business rules
•   Mainframe transaction
•   EDI transform
•   Humans (yes, really!)
•   …
                                              11
Example: Purchase Service

           Bid                  Bid
         Request              Request




         Lowest
           Bid                  Bid

 Buyer             Purchase             Supplier
                    Service

         Accept/              Accept/
         Reject               Reject




           Ship                Ship
          Notice              Notice


                                                   12
Purchase Service Functions
                        Buyer                               Supplier
                       Endpoint                             Endpoint



                        Buyer                              Supplier
                     Conversation                        Conversation


  Transaction Fees
                                                   Supplier Routing
                 Supplier
                 Selection                                               Product
                                                                        Conversion
                                    Buyer Credit




                                                                                     13
Purchase Service Functions
                     WS                                   WS
                        DL/
                        Buyer                               DL/
                                                           Supplier
                            Soa
                      Endpointp                                 Soa
                                                           Endpointp



                        Buyer
                       BPE                                  Supplier
                                                             BP E
                           L
                     Conversation                                L
                                                          Conversation


        E JB
  Transaction Fees
                                                   Rout
                                                        ing T
                                                   Supplier Routing
                                                              abl
                                                                e
                 XQ
                 Supplier
                    uer
                        y
                 Selection                                                 XSL
                                                                          Product
                                                                               T
                                                                         Conversion
                                        R
                                    Buyerule
                                          Credit




                                                                                      14
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

                                                       15
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

                                           16
Agenda
Composite Applications
Services and SOA
Java EE Services
BPEL in the Mix
Putting it all together with NetBeans
Summary
Demo


                                        17
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.1 and JAXB 2.1
  >   Samples and blueprints
• Open ESB Starter Kit
  > Java Business Integration (JBI) runtime
  > BPEL service engine
  > SOAP-over-HTTP binding component
• GlassFish V2
                                                         18
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.1 and JAXB 2.1
  > Full support for XML Schema
  > Document-centric services
• Call these services from BPEL processes
                                                          19
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;
        }
        ...
    }
}                                                            20
Agenda
Composite Applications
Services and SOA
Java EE Services
BPEL in the Mix
Putting it all together with NetBeans
Summary
Demo


                                        21
Need for Business Process
• Developing the web services and exposing the
  functionality (via WSDL) is not sufficient
• Example:
  > Concert ticket purchase Web service has 3 operations,
    which need to be performed in the following order
     > Getting a price quote
     > Purchase a ticket
     > Confirmation and cancellation
• We also need a way to orchestrate these functionality
  > Sequencing
  > Conditional action
                                                            22
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
                                                      23
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
                                                          24
What is BPEL?
• Cannot “do” much without other services
  > Orchestrates other WSDL-described Web services
  > Can't access non-Web service components
  > Other partner services do the real work
     > These are called functional services or worker services
• Excels at...
  >   Parallelism
  >   Long-running conversations
  >   Sending and receiving Web service messages
  >   Complex decision logic
  >   Fault handling and compensating logic
                                                                 25
BPEL: Relationship to Partners

                   WSDL
                                          Partner Service




                                          Partner Service

Partner Service
                  Orchestrating Process
                         (BPEL)           Partner Service


                                                26
BPEL: Relationship to Partners

            WSDL                      Inventory
                                   Checker Service




                                   Credit checker
                                      Service


Customer
 Service
           Orchestrating Process   Another Partner
                  (BPEL)               Service


                                          27
Example Business Process

                     Receive <PO>                         <sequence>




Invoke <InventoryService>        Invoke <CreditService>     <flow>




                     Reply <Invoice>                      </sequence>




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


                                                 29
BPEL Works With WSDL
• 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

                                                         30
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


                                                   31
Agenda
Composite Applications
Services and SOA
Java EE Services
BPEL in the Mix
Putting it all together with NetBeans
Summary
Demo


                                        32
NetBeans IDE 6.1
●   Support for composite applications in NetBeans 6.1
●   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
                                                   33
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 GlassFish V2 Server

                                                           34
Types of SOA “NetBeans” Projects




                               35
BPEL Module Project
• BPEL Module project is a group of source files
  which includes
  > XML Schema (*.xsd) files
  > WSDL files
  > BPEL files
• Within a BPEL Module project, you can author a
  business process compliant with the WS-BPEL 2.0
  language specification.
• Will be added to a Composite application as a JBI
  module

                                                   36
Composite Application Project
• Composite Application project is a project whose
  primary purpose is to assemble a deployment unit
  for the Java Business Integration (JBI) server
  > BPEL Module projects must be added to a Composite
    Application project in order to be deployed to the BPEL
    runtime.
• The Composite Application Project can also be
  used to create and execute test cases that can then
  be run, in JUnit fashion, against the deployed BPEL
  processes.


                                                         37
Composite Application Project
• With a Composite Application project, you can:
  > Assemble an application that uses multiple project types
      (BPEL, XSLT, IEP, SQL, etc.)
  >   Configure external/edge access protocols (SOAP, JMS,
      SMTP, and others)
  >   Build JBI deployment packages
  >   Deploy the application image to the target JBI server
  >   Monitor the status of JBI server components and
      applications



                                                         38
Agenda
Composite Applications
Services and SOA
Java EE Services
BPEL in the Mix
Putting it all together with NetBeans
Summary
Demo


                                        39
Summary
• 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
• Java Business Integration (JBI) is the enabling
  infrastructure
                                                40
DEMO




       41
Call to Action!
• Download NetBeans IDE 6.1 :
 http://download.netbeans.org/netbeans/6.1/final/
• Join Sun Developer Network (SDN) for up-to-date
  SOA information:
  http://developers.sun.com




                                                    42
Resources

•   http://www.netbeans.org/features/soa/index.html
•   http://java.sun.com/integration
•   http://www.sun.com/products/soa
•   http://blogs.sun.com/gopalan




                                                      43
Q&A
• Questions?




               44
SOA & Java EE:
Developing killer SOA
applications using the Java EE
Platform


Thank you
Prakash.Narayan@sun.com

More Related Content

PDF
Powerblocks E245 final presentation
PDF
Summit 2011 infra_servers_clients
PDF
S Ven Hakan Olsson Compos Index
PPT
Supply chain
PDF
TV as enhanced communicator using RCS
PDF
Exploiting Multicores to Optimize Business Process Execution
PPT
Enterprise Service Bus Part 1
PPTX
Cost, Collaboration, Compliance - Your Journey Through The Transformation Gat...
Powerblocks E245 final presentation
Summit 2011 infra_servers_clients
S Ven Hakan Olsson Compos Index
Supply chain
TV as enhanced communicator using RCS
Exploiting Multicores to Optimize Business Process Execution
Enterprise Service Bus Part 1
Cost, Collaboration, Compliance - Your Journey Through The Transformation Gat...

What's hot (11)

PDF
Builder module on tally.erp9
PDF
WIKIOCEAN
PPT
Partner Companies and Super Spec
PDF
BnK -e Overview
PDF
Servicialisation - Service Specifying: Example E-mailing Service V01.05.00
PDF
A Guide to the SOA Galaxy: Strategy, Design and Best Practices
PDF
VW EMS case March 2010
PPS
Which server to choose ace it solutions guide
PDF
Howto Deliver Business Driven Demand Planningv1
PDF
exchange2010-Architecture
PDF
Webinar - Spagic: Beyond the SOA/BPM frontiers, towards a complete open coope...
Builder module on tally.erp9
WIKIOCEAN
Partner Companies and Super Spec
BnK -e Overview
Servicialisation - Service Specifying: Example E-mailing Service V01.05.00
A Guide to the SOA Galaxy: Strategy, Design and Best Practices
VW EMS case March 2010
Which server to choose ace it solutions guide
Howto Deliver Business Driven Demand Planningv1
exchange2010-Architecture
Webinar - Spagic: Beyond the SOA/BPM frontiers, towards a complete open coope...
Ad

Viewers also liked (9)

PPTX
Audience
PDF
Hans De Visser The Business Operations Imperative
PPTX
Audience
PPS
Salary Review
PDF
Mohamad Afshar Moving Beyond Project Level S O A
PDF
Radovan Janecek R E S Tor S O A Pv1
PPTX
Memes
PPTX
Media Pitch
PDF
Mark Little Web Services And Transactions
Audience
Hans De Visser The Business Operations Imperative
Audience
Salary Review
Mohamad Afshar Moving Beyond Project Level S O A
Radovan Janecek R E S Tor S O A Pv1
Memes
Media Pitch
Mark Little Web Services And Transactions
Ad

Similar to Prakash Narayan Killer S O Aapps Using J2 E E (20)

PDF
Composite Applications with SOA, BPEL and Java EE
PDF
Forza Presentation OOW 2010
PDF
Keynote-Service Orientation – Why is it good for your business
PDF
Analyst briefing session 1 the challenge of deploying the infrastructure
 
PDF
Developing polyglot applications on Cloud Foundry (#oredev 2012)
PDF
Service Oriented Architecture (SOA) [1/5] : Introduction to SOA
PPTX
Patterns of Data Distribution
PDF
Developing modular, polyglot applications with Spring (SpringOne India 2012)
PPT
Integration daysBizTalk Used for Real Time Payments
PDF
Delivering the Promise of SOA - Enterprise Integration Made Easy
PDF
Chris meyer gl wand - financial reporting in excel
PDF
Neecom 2010 (Inovis-Dell case study)
PDF
Datamatics Content Billing Solution für Online Publishing
PPTX
Linking Services and Linked Data: Keynote for AIMSA 2012
PPTX
Value-Stream-Mapping,
PPTX
Java micro-services
PPTX
First Operational Technology (OT) High Performance Messaging Patterns for Ent...
PPT
Transforming Procurement into a Strategic Value Driver – NSG Group
PDF
IT Go to market transformation - Playing a new ball game
PPTX
Micro services - Practicalities & things to watch out for
Composite Applications with SOA, BPEL and Java EE
Forza Presentation OOW 2010
Keynote-Service Orientation – Why is it good for your business
Analyst briefing session 1 the challenge of deploying the infrastructure
 
Developing polyglot applications on Cloud Foundry (#oredev 2012)
Service Oriented Architecture (SOA) [1/5] : Introduction to SOA
Patterns of Data Distribution
Developing modular, polyglot applications with Spring (SpringOne India 2012)
Integration daysBizTalk Used for Real Time Payments
Delivering the Promise of SOA - Enterprise Integration Made Easy
Chris meyer gl wand - financial reporting in excel
Neecom 2010 (Inovis-Dell case study)
Datamatics Content Billing Solution für Online Publishing
Linking Services and Linked Data: Keynote for AIMSA 2012
Value-Stream-Mapping,
Java micro-services
First Operational Technology (OT) High Performance Messaging Patterns for Ent...
Transforming Procurement into a Strategic Value Driver – NSG Group
IT Go to market transformation - Playing a new ball game
Micro services - Practicalities & things to watch out for

More from SOA Symposium (20)

XLS
Sven Hakan Olsson Composability Index V2
PDF
Thomas Erl Introducing S O A Design Patterns
PDF
Radovan Janecek Avoiding S O A Pitfalls
PDF
Natasja Paulssen S A P M D M And E S O A At Philips
PDF
Anthony Carrato S O A Business Architecture
PDF
David Chappel S O A Grid
PDF
Johan Kumps Federal E S B
PDF
Laurent Tarin B P M Ilog
PDF
Jim Webber Guerrilla S O A With Web Services
PDF
Robert Schneider What Every Developer
PDF
Robert Schneider 10 Strategies
PDF
Thomas Rischbeck Real Life E S B
PDF
Stefan Pappe Making S O A Operational
PDF
Paul Brown Org Man Issues
PDF
Arnaud Simon Flight Data Processing
PDF
Paul Butterworth Policy Based Approach
PDF
Art Ligthart Service Identification Techniques
PDF
Paul C Brown S O A Governance
PDF
Mohamad Afshar Moving Beyond Project Level S O A V1
PDF
Brian Loesgen An Early Look At Oslo
Sven Hakan Olsson Composability Index V2
Thomas Erl Introducing S O A Design Patterns
Radovan Janecek Avoiding S O A Pitfalls
Natasja Paulssen S A P M D M And E S O A At Philips
Anthony Carrato S O A Business Architecture
David Chappel S O A Grid
Johan Kumps Federal E S B
Laurent Tarin B P M Ilog
Jim Webber Guerrilla S O A With Web Services
Robert Schneider What Every Developer
Robert Schneider 10 Strategies
Thomas Rischbeck Real Life E S B
Stefan Pappe Making S O A Operational
Paul Brown Org Man Issues
Arnaud Simon Flight Data Processing
Paul Butterworth Policy Based Approach
Art Ligthart Service Identification Techniques
Paul C Brown S O A Governance
Mohamad Afshar Moving Beyond Project Level S O A V1
Brian Loesgen An Early Look At Oslo

Recently uploaded (20)

PPTX
A Presentation on Artificial Intelligence
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPTX
Big Data Technologies - Introduction.pptx
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPT
Teaching material agriculture food technology
PDF
Modernizing your data center with Dell and AMD
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Machine learning based COVID-19 study performance prediction
PDF
KodekX | Application Modernization Development
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
A Presentation on Artificial Intelligence
Mobile App Security Testing_ A Comprehensive Guide.pdf
Dropbox Q2 2025 Financial Results & Investor Presentation
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Big Data Technologies - Introduction.pptx
Chapter 3 Spatial Domain Image Processing.pdf
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Teaching material agriculture food technology
Modernizing your data center with Dell and AMD
Reach Out and Touch Someone: Haptics and Empathic Computing
The Rise and Fall of 3GPP – Time for a Sabbatical?
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Machine learning based COVID-19 study performance prediction
KodekX | Application Modernization Development
Building Integrated photovoltaic BIPV_UPV.pdf
CIFDAQ's Market Insight: SEC Turns Pro Crypto
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Agricultural_Statistics_at_a_Glance_2022_0.pdf

Prakash Narayan Killer S O Aapps Using J2 E E

  • 1. This Presentation Courtesy of the International SOA Symposium October 7-8, 2008 Amsterdam Arena www.soasymposium.com info@soasymposium.com Founding Sponsors Platinum Sponsors Gold Sponsors Silver Sponsors
  • 2. SOA & Java EE: Developing killer SOA applications using the Java EE Platform Prakash Narayan Sun Microsystems
  • 3. Goal Visualizing and developing composite applications using BPEL, SOA and Java EE 2
  • 4. Agenda Composite Applications Services and SOA Java EE Services BPEL in the Mix Putting it all together with NetBeans Summary Demo 3
  • 5. 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 4
  • 6. Applications • Real-world applications are... > ...not Web applications > ...not Java EE applications > ...not Swing forms > ...not Web services > ...not BPEL processes > ...not SOA > ...not JBI > ...not RDBMSs > ...not (your favorite technology) • Real-world applications use many or all of these 5
  • 7. 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 6
  • 8. 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 7
  • 9. Agenda Composite Applications Services and SOA Java EE Services BPEL in the Mix Putting it all together with NetBeans Summary Demo 8
  • 10. 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 9
  • 11. What Can Services Do? • Perform business logic • Transform data • Route messages • Query databases • Apply business policy • Handle business exceptions • Prepare information for use by a user interface • Orchestrate conversations between multiple services • … 10
  • 12. How Are Services Implemented? • Enterprise JavaBeans™ (EJB™) technology • BPEL • XSLT • SQL • Business rules • Mainframe transaction • EDI transform • Humans (yes, really!) • … 11
  • 13. Example: Purchase Service Bid Bid Request Request Lowest Bid Bid Buyer Purchase Supplier Service Accept/ Accept/ Reject Reject Ship Ship Notice Notice 12
  • 14. Purchase Service Functions Buyer Supplier Endpoint Endpoint Buyer Supplier Conversation Conversation Transaction Fees Supplier Routing Supplier Selection Product Conversion Buyer Credit 13
  • 15. Purchase Service Functions WS WS DL/ Buyer DL/ Supplier Soa Endpointp Soa Endpointp Buyer BPE Supplier BP E L Conversation L Conversation E JB Transaction Fees Rout ing T Supplier Routing abl e XQ Supplier uer y Selection XSL Product T Conversion R Buyerule Credit 14
  • 16. 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 15
  • 17. 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 16
  • 18. Agenda Composite Applications Services and SOA Java EE Services BPEL in the Mix Putting it all together with NetBeans Summary Demo 17
  • 19. 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.1 and JAXB 2.1 > Samples and blueprints • Open ESB Starter Kit > Java Business Integration (JBI) runtime > BPEL service engine > SOAP-over-HTTP binding component • GlassFish V2 18
  • 20. 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.1 and JAXB 2.1 > Full support for XML Schema > Document-centric services • Call these services from BPEL processes 19
  • 21. 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; } ... } } 20
  • 22. Agenda Composite Applications Services and SOA Java EE Services BPEL in the Mix Putting it all together with NetBeans Summary Demo 21
  • 23. Need for Business Process • Developing the web services and exposing the functionality (via WSDL) is not sufficient • Example: > Concert ticket purchase Web service has 3 operations, which need to be performed in the following order > Getting a price quote > Purchase a ticket > Confirmation and cancellation • We also need a way to orchestrate these functionality > Sequencing > Conditional action 22
  • 24. 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 23
  • 25. 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 24
  • 26. What is BPEL? • Cannot “do” much without other services > Orchestrates other WSDL-described Web services > Can't access non-Web service components > Other partner services do the real work > These are called functional services or worker services • Excels at... > Parallelism > Long-running conversations > Sending and receiving Web service messages > Complex decision logic > Fault handling and compensating logic 25
  • 27. BPEL: Relationship to Partners WSDL Partner Service Partner Service Partner Service Orchestrating Process (BPEL) Partner Service 26
  • 28. BPEL: Relationship to Partners WSDL Inventory Checker Service Credit checker Service Customer Service Orchestrating Process Another Partner (BPEL) Service 27
  • 29. Example Business Process Receive <PO> <sequence> Invoke <InventoryService> Invoke <CreditService> <flow> Reply <Invoice> </sequence> 28
  • 30. 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> 29
  • 31. BPEL Works With WSDL • 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 30
  • 32. 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 31
  • 33. Agenda Composite Applications Services and SOA Java EE Services BPEL in the Mix Putting it all together with NetBeans Summary Demo 32
  • 34. NetBeans IDE 6.1 ● Support for composite applications in NetBeans 6.1 ● 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 33
  • 35. 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 GlassFish V2 Server 34
  • 36. Types of SOA “NetBeans” Projects 35
  • 37. BPEL Module Project • BPEL Module project is a group of source files which includes > XML Schema (*.xsd) files > WSDL files > BPEL files • Within a BPEL Module project, you can author a business process compliant with the WS-BPEL 2.0 language specification. • Will be added to a Composite application as a JBI module 36
  • 38. Composite Application Project • Composite Application project is a project whose primary purpose is to assemble a deployment unit for the Java Business Integration (JBI) server > BPEL Module projects must be added to a Composite Application project in order to be deployed to the BPEL runtime. • The Composite Application Project can also be used to create and execute test cases that can then be run, in JUnit fashion, against the deployed BPEL processes. 37
  • 39. Composite Application Project • With a Composite Application project, you can: > Assemble an application that uses multiple project types (BPEL, XSLT, IEP, SQL, etc.) > Configure external/edge access protocols (SOAP, JMS, SMTP, and others) > Build JBI deployment packages > Deploy the application image to the target JBI server > Monitor the status of JBI server components and applications 38
  • 40. Agenda Composite Applications Services and SOA Java EE Services BPEL in the Mix Putting it all together with NetBeans Summary Demo 39
  • 41. Summary • 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 • Java Business Integration (JBI) is the enabling infrastructure 40
  • 42. DEMO 41
  • 43. Call to Action! • Download NetBeans IDE 6.1 : http://download.netbeans.org/netbeans/6.1/final/ • Join Sun Developer Network (SDN) for up-to-date SOA information: http://developers.sun.com 42
  • 44. Resources • http://www.netbeans.org/features/soa/index.html • http://java.sun.com/integration • http://www.sun.com/products/soa • http://blogs.sun.com/gopalan 43
  • 46. SOA & Java EE: Developing killer SOA applications using the Java EE Platform Thank you Prakash.Narayan@sun.com