This Presentation Courtesy of the
                          International SOA Symposium
                          October ...
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




                          ...
Agenda
Composite Applications
Services and SOA
Java EE Services
BPEL in the Mix
Putting it all together with NetBeans
Summ...
Applications
• Developers need to build end-to-end applications
  > Front-end user interfaces
  > Middle-tier business log...
Applications
• Real-world applications are...
  >   ...not Web applications
  >   ...not Java EE applications
  >   ...not...
Applications
• Traditional model of application development
  > Point technologies, products, and APIs
     > For example:...
Composite Applications
• A way to compose applications from reusable parts
• Comprised of heterogeneous parts
  > Some exi...
Agenda
Composite Applications
Services and SOA
Java EE Services
BPEL in the Mix
Putting it all together with NetBeans
Summ...
What Are Services?
• Black-box components with well-defined interfaces
  > Performs some arbitrary function
  > Can be imp...
What Can Services Do?
•   Perform business logic
•   Transform data
•   Route messages
•   Query databases
•   Apply busin...
How Are Services Implemented?
•   Enterprise JavaBeans™ (EJB™) technology
•   BPEL
•   XSLT
•   SQL
•   Business rules
•  ...
Example: Purchase Service

           Bid                  Bid
         Request              Request




         Lowest
 ...
Purchase Service Functions
                        Buyer                               Supplier
                       End...
Purchase Service Functions
                     WS                                   WS
                        DL/
      ...
Service Oriented Architecture (SOA)
• An architectural principle for structuring systems
  into coarse-grained services
• ...
Benefits of SOA
• Flexible (Agile) IT
  > Adaptable to changing business needs
• Faster time to market
  > Reuse existing ...
Agenda
Composite Applications
Services and SOA
Java EE Services
BPEL in the Mix
Putting it all together with NetBeans
Summ...
Java EE 5 Overview
• Key development features
  >   EJB 3.0
  >   Annotated “plain old Java object” (POJO) Web services
  ...
Java EE Services
• Use EJB 3.0 to develop standards-based worker
  services
  >   Perform business logic
  >   Access JDBC...
EJB 3.0 Example
@Stateless()
@WebService()
public class LoanProcessor {
    @WebMethod
    public String processApplicatio...
Agenda
Composite Applications
Services and SOA
Java EE Services
BPEL in the Mix
Putting it all together with NetBeans
Summ...
Need for Business Process
• Developing the web services and exposing the
  functionality (via WSDL) is not sufficient
• Ex...
Business Processes
• Any technology for implementing real-world
  business processes needs to...
  > Coordinate asynchrono...
What is BPEL?
• BPEL = Business Process Execution Language
  > XML-based language used to specify business
    processes b...
What is BPEL?
• Cannot “do” much without other services
  > Orchestrates other WSDL-described Web services
  > Can't acces...
BPEL: Relationship to Partners

                   WSDL
                                          Partner Service




    ...
BPEL: Relationship to Partners

            WSDL                      Inventory
                                   Checker...
Example Business Process

                     Receive <PO>                         <sequence>




Invoke <InventoryServic...
BPEL Document Structure
<process>
 <partners> ... </partners>
 <variables> ... </variables>
 <correlationSets> ... </corre...
BPEL Works With WSDL
• Web services are described in WSDL
  > Operations are message exchanges
  > Each operation represen...
BPEL “Fixes” WSDL
• WSDL describes an unordered set of operations
  > Operations are grouped as interfaces
  > Operations ...
Agenda
Composite Applications
Services and SOA
Java EE Services
BPEL in the Mix
Putting it all together with NetBeans
Summ...
NetBeans IDE 6.1
●   Support for composite applications in NetBeans 6.1
●   Design BPEL business processes to orchestrate:...
Web Service Orchestration
●   Visually author BPEL 2.0 business processes with
    the BPEL Designer
    ●   Step-through ...
Types of SOA “NetBeans” Projects




                               35
BPEL Module Project
• BPEL Module project is a group of source files
  which includes
  > XML Schema (*.xsd) files
  > WSD...
Composite Application Project
• Composite Application project is a project whose
  primary purpose is to assemble a deploy...
Composite Application Project
• With a Composite Application project, you can:
  > Assemble an application that uses multi...
Agenda
Composite Applications
Services and SOA
Java EE Services
BPEL in the Mix
Putting it all together with NetBeans
Summ...
Summary
• SOA enables flexible and agile enterprise
  application architecture
• Services can be created and used using Ja...
DEMO




       41
Call to Action!
• Download NetBeans IDE 6.1 :
 http://download.netbeans.org/netbeans/6.1/final/
• Join Sun Developer Netwo...
Resources

•   http://www.netbeans.org/features/soa/index.html
•   http://java.sun.com/integration
•   http://www.sun.com/...
Q&A
• Questions?




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


Thank you
Prakash.Narayan@sun.com
Upcoming SlideShare
Loading in …5
×

Prakash Narayan Killer S O Aapps Using J2 E E

773 views

Published on

Published in: Technology, Education
  • Be the first to comment

Prakash Narayan Killer S O Aapps Using J2 E E

  1. 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. 2. SOA & Java EE: Developing killer SOA applications using the Java EE Platform Prakash Narayan Sun Microsystems
  3. 3. Goal Visualizing and developing composite applications using BPEL, SOA and Java EE 2
  4. 4. Agenda Composite Applications Services and SOA Java EE Services BPEL in the Mix Putting it all together with NetBeans Summary Demo 3
  5. 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. 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. 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. 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. 9. Agenda Composite Applications Services and SOA Java EE Services BPEL in the Mix Putting it all together with NetBeans Summary Demo 8
  10. 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. 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. 12. How Are Services Implemented? • Enterprise JavaBeans™ (EJB™) technology • BPEL • XSLT • SQL • Business rules • Mainframe transaction • EDI transform • Humans (yes, really!) • … 11
  13. 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. 14. Purchase Service Functions Buyer Supplier Endpoint Endpoint Buyer Supplier Conversation Conversation Transaction Fees Supplier Routing Supplier Selection Product Conversion Buyer Credit 13
  15. 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. 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. 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. 18. Agenda Composite Applications Services and SOA Java EE Services BPEL in the Mix Putting it all together with NetBeans Summary Demo 17
  19. 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. 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. 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. 22. Agenda Composite Applications Services and SOA Java EE Services BPEL in the Mix Putting it all together with NetBeans Summary Demo 21
  23. 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. 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. 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. 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. 27. BPEL: Relationship to Partners WSDL Partner Service Partner Service Partner Service Orchestrating Process (BPEL) Partner Service 26
  28. 28. BPEL: Relationship to Partners WSDL Inventory Checker Service Credit checker Service Customer Service Orchestrating Process Another Partner (BPEL) Service 27
  29. 29. Example Business Process Receive <PO> <sequence> Invoke <InventoryService> Invoke <CreditService> <flow> Reply <Invoice> </sequence> 28
  30. 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. 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. 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. 33. Agenda Composite Applications Services and SOA Java EE Services BPEL in the Mix Putting it all together with NetBeans Summary Demo 32
  34. 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. 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. 36. Types of SOA “NetBeans” Projects 35
  37. 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. 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. 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. 40. Agenda Composite Applications Services and SOA Java EE Services BPEL in the Mix Putting it all together with NetBeans Summary Demo 39
  41. 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. 42. DEMO 41
  43. 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. 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
  45. 45. Q&A • Questions? 44
  46. 46. SOA & Java EE: Developing killer SOA applications using the Java EE Platform Thank you Prakash.Narayan@sun.com

×