Enterprise Service
Assembly with Apache
Tuscany SCA
Raymond Feng, Luciano Resende,
Simon Laws
IBM
PMC members of Apache Tu...
Agenda
>   Apache Tuscany
>   SCA Benefits
>   SCA Tours - Online Travel Sample Scenario
       Demo
       Features
   ...
Apache Tuscany
>   Apache Tuscany provides a component based
    programming model which simplifies development,
    assem...
What’s new with Apache Tuscany
>   1.x Code Stream
       OSOA Based SCA Specification
       Stable code base
       S...
The power of Tuscany/SCA
>   Quick prototype for PoC to convince your boss in
    hours
       Mock up new functions (POJ...
SCA Tours
  Online Travel Sample Scenario



http://svn.apache.org/repos/asf/tuscany/sandbox/travelsample




            ...
SCA Tours - Travel Booking (Page #1)
                           fu lla p p - u i ( 8 0 8 0 )                   fu lla p p ...
SCA Tours - Travel Booking (Page #2)

 fu lla p p - s h o p p in g c a r t ( 8 0 8 7 )                   p a ym e n t (8 0...
SCA Tours
  Online Travel Sample Scenario

                       DEMO

http://svn.apache.org/repos/asf/tuscany/sandbox/tr...
Web 2.0 Client Application

                            SCA Tours             Travel
                                     ...
SCA Composite for Tuscany Widget
<composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
     targetNamespace="http://scatour...
Mobile Client Application with Android

                SCA Tours            Travel
                                     C...
Credit Card Payment Scenario

   creditcard.jsp

                                       RFC 119: Distributed OSGi
    impl...
SCA composite for the Web component
<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200903"
        targetName...
Distributed OSGi with Tuscany/SCA

                                   Local Service



                    OSGi Service   ...
OSGi services in the SCA domain
                CreditCard
                                                            Cur...
SCA composite for the OSGi bundle
<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200903"
  xmlns:tuscany="htt...
Raymond Feng (rfeng@apche.org)
Luciano Resende (lresende@apache.org)
http://tuscany.apache.org




                       ...
Upcoming SlideShare
Loading in …5
×

Enterprise Service Assembly with SCA using Apache Tuscany

2,217 views

Published on

This is the presentation we gave at JavaOne 2009.

Published in: Technology, Spiritual
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,217
On SlideShare
0
From Embeds
0
Number of Embeds
13
Actions
Shares
0
Downloads
142
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Enterprise Service Assembly with SCA using Apache Tuscany

  1. 1. Enterprise Service Assembly with Apache Tuscany SCA Raymond Feng, Luciano Resende, Simon Laws IBM PMC members of Apache Tuscany Project
  2. 2. Agenda > Apache Tuscany > SCA Benefits > SCA Tours - Online Travel Sample Scenario  Demo  Features  Building components with Java, Spring, JEE  Wiring components with Web services, JMS, HTTP  Web2.0 in the service assembly  Your app goes mobile with Android  Deploying applications standalone, in OSGi, in JEE 2
  3. 3. Apache Tuscany > Apache Tuscany provides a component based programming model which simplifies development, assembly and deployment and management of composite applications in SOA. > Apache Tuscany implements SCA standards defined by the OASIS OpenCSA and also provides extensions based on real user feedback. 3
  4. 4. What’s new with Apache Tuscany > 1.x Code Stream  OSOA Based SCA Specification  Stable code base  SCA Java 1.5 Released 05/31/2009 > 2.x Code Stream  OASIS OpenCSA Specification  OSGi enabled runtime  SCA Java 2.0 M2 Released on 04/15/2009  M3 Released being prepared 4
  5. 5. The power of Tuscany/SCA > Quick prototype for PoC to convince your boss in hours  Mock up new functions (POJOs) > Reuse existing assets (Java classes, BPEL, Spring, JEE, OSGi) > Talk to external services transparently  (WS, RMI, CORBA, EJB, JMS, …) > Expose services to other clients transparently  (WS, JSONRPC, FEED, RMI, CORBA …) > Built-in interaction patterns:  Req/Res, Oneway, Callback > Run and debug directly within the IDE 5
  6. 6. SCA Tours Online Travel Sample Scenario http://svn.apache.org/repos/asf/tuscany/sandbox/travelsample 6
  7. 7. SCA Tours - Travel Booking (Page #1) fu lla p p - u i ( 8 0 8 0 ) fu lla p p - fr o n te n d ( 8 0 8 4 ) fu lla p p - p a c k a g e d tr ip ( 8 0 8 5 ) T rip T r a v e lC a ta lo g P a r tn e r Java T us c anyS C A T o u rs U I S C A To u rs > ls - ls a Java fu lla p p - b e s p o k e tr ip ( 8 0 8 6 ) H o te l P a r tn e r Java T rip B o o k in g 123 456 F lig h t 789 W id g e t Java P a r tn e r Java Java C ar P a r tn e r Java fu lla p p - c u r r e n c y ( 8 0 8 3 ) C u rre n c y C o n v e r te r E JB 7
  8. 8. SCA Tours - Travel Booking (Page #2) fu lla p p - s h o p p in g c a r t ( 8 0 8 7 ) p a ym e n t (8 0 8 1 ) c re d ic a rd (8 0 8 2 ) C r e d itC a r d S h o p p in g C a rt P a y m e n tP r o c e s s Java S p rin g Java p a y m e n tw e b C r e d itC a r d U I C a r tS to r e E m a ilG a te w a y > ls - ls a Java S c rip t S e rv le t 8
  9. 9. SCA Tours Online Travel Sample Scenario DEMO http://svn.apache.org/repos/asf/tuscany/sandbox/travelsample 9
  10. 10. Web 2.0 Client Application SCA Tours Travel Catalog Implementation.java Implementation.java implementation.widget Embedded Tomcat Trip Booking Implementation.java Shopping Cart Implementation.java 10
  11. 11. SCA Composite for Tuscany Widget <composite xmlns="http://www.osoa.org/xmlns/sca/1.0" targetNamespace="http://scatours" xmlns:scatours="http://scatours" xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.0" xmlns:pp="http://www.example.org/PaymentProcess" name="ui"> <component name="scatours"> <tuscany:implementation.widget location="scatours.html"/> <service name="Widget"> <tuscany:binding.http uri="/scatours"/> </service> <reference name="scaToursCatalog" target="SCAToursComponent/SCAToursSearch"> <tuscany:binding.jsonrpc/> </reference> <reference name="scaToursBooking" target="SCAToursComponent/SCAToursBooking"> <tuscany:binding.jsonrpc/> </reference> <reference name="scaToursCart" target="SCAToursComponent/SCAToursCart"> <tuscany:binding.jsonrpc/> </reference> </component> </composite> 11
  12. 12. Mobile Client Application with Android SCA Tours Travel Catalog Implementation.java Implementation.java Trip Booking Implementation.java Shopping Cart Implementation.java 12
  13. 13. Credit Card Payment Scenario creditcard.jsp RFC 119: Distributed OSGi implementation.web Tomcat binding.rmi Credit Card Currency binding.ws Payment Converter implementation.osgi implementation.osgi Web Service Client Equinox Equinox 13
  14. 14. SCA composite for the Web component <composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200903" targetNamespace="http://creditcard" name="CreditCardPaymentWeb"> <component name="CreditCardPaymentWeb"> <implementation.web web-uri="" /> <reference name="service"> <interface.java interface="scatours.payment.creditcard.CreditCardPayment"/> <binding.ws uri="http://localhost:8082/CreditCardPayment" /> </reference> </component> </composite> > JSP <%@ taglib uri="http://www.osoa.org/sca/sca_jsp.tld" prefix="sca"%> <sca:reference name="service" type="scatours.payment.creditcard.CreditCardPayment" /> 14
  15. 15. Distributed OSGi with Tuscany/SCA Local Service OSGi Service Local OSGi Service SCA Service Registry Implementation CreditCard Payment Web Service Currency Converter RMI SCA References SCA proxies 15
  16. 16. OSGi services in the SCA domain CreditCard Currency Payment Converter Credit Card Payment Currency Converter Bundle Bundle Node #1 Node #2 SCA Domain binding.rmi Credit Card Currency binding.ws Payment Converter implementation.osgi implementation.osgi 16
  17. 17. SCA composite for the OSGi bundle <composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200903" xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.1" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://creditcard" name="CreditCardPaymentComposite"> <component name="CreditCardPaymentComponent"> <tuscany:implementation.osgi bundleSymbolicName="scatours.creditcard.payment" bundleVersion="1.0.0" /> <service name="CreditCardPayment"> <binding.ws uri="http://localhost:8082/CreditCardPayment"/> </service> <reference name="currencyConverter"> <tuscany:binding.rmi uri="rmi://localhost:8085/CurrencyConverter"/> </reference> </component> </composite> 17
  18. 18. Raymond Feng (rfeng@apche.org) Luciano Resende (lresende@apache.org) http://tuscany.apache.org 18

×