Your SlideShare is downloading. ×
Prakash  Narayan   Killer S O Aapps Using J2 E E
Prakash  Narayan   Killer S O Aapps Using J2 E E
Prakash  Narayan   Killer S O Aapps Using J2 E E
Prakash  Narayan   Killer S O Aapps Using J2 E E
Prakash  Narayan   Killer S O Aapps Using J2 E E
Prakash  Narayan   Killer S O Aapps Using J2 E E
Prakash  Narayan   Killer S O Aapps Using J2 E E
Prakash  Narayan   Killer S O Aapps Using J2 E E
Prakash  Narayan   Killer S O Aapps Using J2 E E
Prakash  Narayan   Killer S O Aapps Using J2 E E
Prakash  Narayan   Killer S O Aapps Using J2 E E
Prakash  Narayan   Killer S O Aapps Using J2 E E
Prakash  Narayan   Killer S O Aapps Using J2 E E
Prakash  Narayan   Killer S O Aapps Using J2 E E
Prakash  Narayan   Killer S O Aapps Using J2 E E
Prakash  Narayan   Killer S O Aapps Using J2 E E
Prakash  Narayan   Killer S O Aapps Using J2 E E
Prakash  Narayan   Killer S O Aapps Using J2 E E
Prakash  Narayan   Killer S O Aapps Using J2 E E
Prakash  Narayan   Killer S O Aapps Using J2 E E
Prakash  Narayan   Killer S O Aapps Using J2 E E
Prakash  Narayan   Killer S O Aapps Using J2 E E
Prakash  Narayan   Killer S O Aapps Using J2 E E
Prakash  Narayan   Killer S O Aapps Using J2 E E
Prakash  Narayan   Killer S O Aapps Using J2 E E
Prakash  Narayan   Killer S O Aapps Using J2 E E
Prakash  Narayan   Killer S O Aapps Using J2 E E
Prakash  Narayan   Killer S O Aapps Using J2 E E
Prakash  Narayan   Killer S O Aapps Using J2 E E
Prakash  Narayan   Killer S O Aapps Using J2 E E
Prakash  Narayan   Killer S O Aapps Using J2 E E
Prakash  Narayan   Killer S O Aapps Using J2 E E
Prakash  Narayan   Killer S O Aapps Using J2 E E
Prakash  Narayan   Killer S O Aapps Using J2 E E
Prakash  Narayan   Killer S O Aapps Using J2 E E
Prakash  Narayan   Killer S O Aapps Using J2 E E
Prakash  Narayan   Killer S O Aapps Using J2 E E
Prakash  Narayan   Killer S O Aapps Using J2 E E
Prakash  Narayan   Killer S O Aapps Using J2 E E
Prakash  Narayan   Killer S O Aapps Using J2 E E
Prakash  Narayan   Killer S O Aapps Using J2 E E
Prakash  Narayan   Killer S O Aapps Using J2 E E
Prakash  Narayan   Killer S O Aapps Using J2 E E
Prakash  Narayan   Killer S O Aapps Using J2 E E
Prakash  Narayan   Killer S O Aapps Using J2 E E
Prakash  Narayan   Killer S O Aapps Using J2 E E
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Prakash Narayan Killer S O Aapps Using J2 E E

679

Published on

Published in: Technology, Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
679
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
34
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 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
  • 45. Q&A • Questions? 44
  • 46. SOA & Java EE: Developing killer SOA applications using the Java EE Platform Thank you Prakash.Narayan@sun.com

×