0
Open Source SOA: SCA and SDO
http://tuscany.apache.org
IBM Software Group
1
Building Applications with Apache Tuscany
Luci...
Open Source SOA: SCA and SDO
http://tuscany.apache.org
IBM Software Group
2
Abstract
Building and composing the components...
Open Source SOA: SCA and SDO
http://tuscany.apache.org
IBM Software Group
3
Agenda
 Service Component Architecture
 Apac...
Open Source SOA: SCA and SDO
http://tuscany.apache.org
IBM Software Group
4
SCA and Apache Tuscany
Open Source SOA: SCA and SDO
http://tuscany.apache.org
IBM Software Group
5
Enterprise App Development - History
Time
Web ...
Open Source SOA: SCA and SDO
http://tuscany.apache.org
IBM Software Group
6
SCA Assembly Model
Composite A
Component
AServ...
Open Source SOA: SCA and SDO
http://tuscany.apache.org
IBM Software Group
7
Assembly
Implementation
Languages
Policy Frame...
8
Open Source SOA
http://tuscany.apache.org
OASIS Open CSA - http://www.oasis-opencsa.org/
Open Source SOA: SCA and SDO
http://tuscany.apache.org
IBM Software Group
9
Apache Tuscany
 Apache Tuscany provides a com...
Open Source SOA: SCA and SDO
http://tuscany.apache.org
IBM Software Group
10
TuscanySCATours
Sample Travel Booking Applica...
Open Source SOA: SCA and SDO
http://tuscany.apache.org
IBM Software Group
11
Tuscany SCA In Action
 Example from Tuscany ...
Open Source SOA: SCA and SDO
http://tuscany.apache.org
IBM Software Group
12
The TuscanySCATours Shopping Site
Open Source SOA: SCA and SDO
http://tuscany.apache.org
IBM Software Group
13
TuscanySCATours App on a Napkin
>ls -lsa
UI
P...
Open Source SOA: SCA and SDO
http://tuscany.apache.org
IBM Software Group
14
Map to SCA composites and components
Payment
...
Open Source SOA: SCA and SDO
http://tuscany.apache.org
IBM Software Group
15
Prototype and Fill in the Blanks
Very easy t...
Open Source SOA: SCA and SDO
http://tuscany.apache.org
IBM Software Group
16
Payment Java Component Implementation
@Servic...
Open Source SOA: SCA and SDO
http://tuscany.apache.org
IBM Software Group
17
Payment Composite
<composite xmlns="http://ww...
Open Source SOA: SCA and SDO
http://tuscany.apache.org
IBM Software Group
18
SCA and WS Bindings
Payment
CreditCard
Paymen...
Open Source SOA: SCA and SDO
http://tuscany.apache.org
IBM Software Group
19
SCA Payment Composite – with WS Bindings
<com...
Open Source SOA: SCA and SDO
http://tuscany.apache.org
IBM Software Group
20
Web 2.0 Bindings and Widget Components
Web 2...
Open Source SOA: SCA and SDO
http://tuscany.apache.org
IBM Software Group
21
SCA Payment Composite – JSON-RPC Bindings
<co...
Open Source SOA: SCA and SDO
http://tuscany.apache.org
IBM Software Group
22
Packaging and Deployment
 Service implementa...
Open Source SOA: SCA and SDO
http://tuscany.apache.org
IBM Software Group
23
Building Contributions with Maven
 Using Mav...
Open Source SOA: SCA and SDO
http://tuscany.apache.org
IBM Software Group
24
Developing in Eclipse
To import an SCA contr...
Open Source SOA: SCA and SDO
http://tuscany.apache.org
IBM Software Group
25
Payment-java Contribution in Eclipse
Open Source SOA: SCA and SDO
http://tuscany.apache.org
IBM Software Group
26
Running in a Single JVM
To test payment-java...
Open Source SOA: SCA and SDO
http://tuscany.apache.org
IBM Software Group
27
Embedding Tuscany
public class PaymentLaunche...
Open Source SOA: SCA and SDO
http://tuscany.apache.org
IBM Software Group
28
Spring Bean Component Implementation
Property...
Open Source SOA: SCA and SDO
http://tuscany.apache.org
IBM Software Group
29
Payment Spring Component
Payment
CreditCard
P...
Open Source SOA: SCA and SDO
http://tuscany.apache.org
IBM Software Group
30
Payment Spring Context
<beans xmlns="http://w...
Open Source SOA: SCA and SDO
http://tuscany.apache.org
IBM Software Group
31
Payment Composite
<composite xmlns="http://ww...
Open Source SOA: SCA and SDO
http://tuscany.apache.org
IBM Software Group
32
BPEL Process Component Implementation
Shoppin...
Open Source SOA: SCA and SDO
http://tuscany.apache.org
IBM Software Group
33
Payment BPEL Process Component
Payment
Credit...
Open Source SOA: SCA and SDO
http://tuscany.apache.org
IBM Software Group
34
Payment BPEL process
<process name="Payment" ...
Open Source SOA: SCA and SDO
http://tuscany.apache.org
IBM Software Group
35
Payment Composite
<composite xmlns="http://ww...
Open Source SOA: SCA and SDO
http://tuscany.apache.org
IBM Software Group
36
SCA Policies
Payment
CreditCard
Payment
Email...
Open Source SOA: SCA and SDO
http://tuscany.apache.org
IBM Software Group
37
Adding Policy Intents
<component name="Paymen...
Open Source SOA: SCA and SDO
http://tuscany.apache.org
IBM Software Group
38
Defining policy sets
<definitions xmlns="http...
Open Source SOA: SCA and SDO
http://tuscany.apache.org
IBM Software Group
39
Adding more components - 1
TuscanySCA
ToursUs...
Open Source SOA: SCA and SDO
http://tuscany.apache.org
IBM Software Group
40
Adding more components - 2
Payment
CreditCard...
Open Source SOA: SCA and SDO
http://tuscany.apache.org
IBM Software Group
41
SCA Domain
A distributed deployment
of the as...
Open Source SOA: SCA and SDO
http://tuscany.apache.org
IBM Software Group
42
Running Multiple Tuscany Nodes
public class F...
Open Source SOA: SCA and SDO
http://tuscany.apache.org
IBM Software Group
43
Getting Involved
with Apache Tuscany
IBM Software Group
44
http://tuscany.apache.org
SCA - Resources
 Good introduction to SCA
 http://www.davidchappell.com/...
IBM Software Group
45
http://tuscany.apache.org
Apache Tuscany Resources
 Apache Tuscany
 http://tuscany.apache.org
 Ge...
Open Source SOA: SCA and SDO
http://tuscany.apache.org
IBM Software Group
46
Getting Involved
with Apache Nuvem
IBM Software Group
47
http://tuscany.apache.org
Apache Nuvem Resources
 Apache Nuvem
 http://incubator.apache.org/nuvem/...
IBM Software Group
48
http://tuscany.apache.org
Thank You !!!
Upcoming SlideShare
Loading in...5
×

Building apps with tuscany

4,698

Published on

Building and composing the components of a distributed application can be a challenge and complex bespoke solutions are commonplace. The Apache Tuscany runtime, and the Service Component Architecture (SCA) on which the runtime is based, simplifies the process be presenting a component based application assembly model. In this talk we look at the Tuscany travel booking application and explain how the individual components of the application are constructed using a variety of technologies including Java, BPEL, Python and Javascript. We also look at how these services are wired together using a different communication protocols such as SOAP/HTTP and JSON-RPC. The complete model can then be deployed to both stand-alone and distributed runtimes without changes to the application itself.

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

No Downloads
Views
Total Views
4,698
On Slideshare
0
From Embeds
0
Number of Embeds
65
Actions
Shares
0
Downloads
60
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Transcript of "Building apps with tuscany"

  1. 1. Open Source SOA: SCA and SDO http://tuscany.apache.org IBM Software Group 1 Building Applications with Apache Tuscany Luciano Resende lresende@apache.org http://lresende.blogspot.com Jean-Sebastien Delfino jsdelfino@apache.org http://jsdelfino.blogspot.com Simon Laws slaws@apache.org
  2. 2. Open Source SOA: SCA and SDO http://tuscany.apache.org IBM Software Group 2 Abstract Building and composing the components of a distributed application can be a challenge and complex bespoke solutions are commonplace. The Apache Tuscany runtime, and the Service Component Architecture (SCA) on which the runtime is based, simplify the process by presenting a component based application assembly model. In this talk we look at the Tuscany travel booking application and explain how the individual components of the application are constructed using a variety of technologies including Java, Spring, BPEL and Python. We also look at how these services are wired together using a variety of communication protocols such as SOAP/HTTP and JSON-RPC. The complete model can then be deployed to both stand-alone and distributed runtimes without changes to the application itself.
  3. 3. Open Source SOA: SCA and SDO http://tuscany.apache.org IBM Software Group 3 Agenda  Service Component Architecture  Apache Tuscany  TuscanySCATours, a Sample Travel Booking App  Development Process  Packaging, Build, Test  Extending the App o Bindings o Spring o BPEL o Policies  Deploying to an SCA Domain  Getting Involved
  4. 4. Open Source SOA: SCA and SDO http://tuscany.apache.org IBM Software Group 4 SCA and Apache Tuscany
  5. 5. Open Source SOA: SCA and SDO http://tuscany.apache.org IBM Software Group 5 Enterprise App Development - History Time Web Services  services  service Interfaces X business logic mixed with tech APIs X no Components X no policy model Service Component Architecture (SCA)  service Components  business logic shielded from tech APIs  reusable components in multiple programming languages  easy to assemble into compositions  easy to bind to different protocols  external policy configuration Flexibility Agility ROI Monolithic X business logic mixed with communication logic X no service interfaces X no components X no policies SCA and Cloud Computing  elastic composites  more componentization  portability across clouds  easy to wire, rewire, reconfigure  policies and Provisioning
  6. 6. Open Source SOA: SCA and SDO http://tuscany.apache.org IBM Software Group 6 SCA Assembly Model Composite A Component AService Service Binding Web Service JMS SLSB Rest JSONRPC JCA … Reference Binding Web Service JMS SLSB Rest JSONRPC JCA … Component B Service Interface - Java - WSDL Reference Interface Reference property setting Property promotepromote wire Implementation Java BPEL PHP SCA composite Spring EJB module … - Java - WSDL
  7. 7. Open Source SOA: SCA and SDO http://tuscany.apache.org IBM Software Group 7 Assembly Implementation Languages Policy Framework Bindings Java Java EE Spring C++ BPEL Security RM Transactions Web services JMS JCA SCA Specifications SCA is going through a formal standardization process at OASIS OpenCSA (http://www.oasis-opencsa.org)
  8. 8. 8 Open Source SOA http://tuscany.apache.org OASIS Open CSA - http://www.oasis-opencsa.org/
  9. 9. Open Source SOA: SCA and SDO http://tuscany.apache.org IBM Software Group 9 Apache Tuscany  Apache Tuscany provides a component based programming model which simplifies development, assembly and deployment and management of composite applications.  Apache Tuscany implements SCA standards defined by OASIS OpenCSA + extensions based on community feedback. 9
  10. 10. Open Source SOA: SCA and SDO http://tuscany.apache.org IBM Software Group 10 TuscanySCATours Sample Travel Booking Application
  11. 11. Open Source SOA: SCA and SDO http://tuscany.apache.org IBM Software Group 11 Tuscany SCA In Action  Example from Tuscany Book  http://www.manning.com/laws/ Example can be downloaded from Apache Tuscany  http://tuscany.apache.org/sca-java-travel-sample-1x-releases.html
  12. 12. Open Source SOA: SCA and SDO http://tuscany.apache.org IBM Software Group 12 The TuscanySCATours Shopping Site
  13. 13. Open Source SOA: SCA and SDO http://tuscany.apache.org IBM Software Group 13 TuscanySCATours App on a Napkin >ls -lsa UI Partner Coordination Trip Hotel Flight Car Partners Shopping Cart Payment Credit Card Payment Partner Links to other organizations
  14. 14. Open Source SOA: SCA and SDO http://tuscany.apache.org IBM Software Group 14 Map to SCA composites and components Payment composite component referenceservice As an SCA composite: Payment Java payment Payment creditCard Payment EmailGateway Java Email Gateway email Gateway CustomerRegistry Java Customer Registry customer Registry transactionFee property
  15. 15. Open Source SOA: SCA and SDO http://tuscany.apache.org IBM Software Group 15 Prototype and Fill in the Blanks Very easy to create simple components, wire them together and get them running Doing this with simple implementations allows you to get a feel for the app without implementing all of the moving parts in detail A quick way to prototype an app and define the important components and their service interfaces The prototype components can then be distributed to a team for detailed implementation and testing
  16. 16. Open Source SOA: SCA and SDO http://tuscany.apache.org IBM Software Group 16 Payment Java Component Implementation @Service(Payment.class) public class PaymentImpl implements Payment { @Reference protected CustomerRegistry customerRegistry; @Reference protected CreditCardPayment creditCardPayment; @Reference protected EmailGateway emailGateway; @Property protected float transactionFee = 0.01f; public String makePaymentMember(String customerId, float amount) { try { Customer customer = customerRegistry.getCustomer(customerId); String status = creditCardPayment.authorize(customer.getCreditCard(), amount + transactionFee); emailGateway.sendEmail("order@tuscanyscatours.com", customer.getEmail(), "Status for your payment", customer + " >>> Status = " + status); return status; } catch (CustomerNotFoundException ex) { return "Payment failed due to " + ex.getMessage(); } catch (AuthorizeFault_Exception e) { return e.getFaultInfo().getErrorCode(); } catch (Throwable t) { return "Payment failed due to system error " + t.getMessage(); } } }
  17. 17. Open Source SOA: SCA and SDO http://tuscany.apache.org IBM Software Group 17 Payment Composite <composite xmlns="http://www.osoa.org/xmlns/sca/1.0" targetNamespace="http://tuscanyscatours.com/" name="payment"> <component name="Payment"> <implementation.java class="com.tuscanyscatours.payment.impl.PaymentImpl" /> <service name="Payment"/> <reference name="customerRegistry" target="CustomerRegistry" /> <reference name="creditCardPayment" /> <reference name="emailGateway" target="EmailGateway" /> <property name="transactionFee">0.02</property> </component> <component name="CustomerRegistry"> <implementation.java class="com.tuscanyscatours.customer.impl.CustomerRegistryImpl" /> </component> <component name="EmailGateway"> <implementation.java class="com.tuscanyscatours.emailgateway.impl.EmailGatewayImpl" /> </component> </composite>
  18. 18. Open Source SOA: SCA and SDO http://tuscany.apache.org IBM Software Group 18 SCA and WS Bindings Payment CreditCard Payment EmailGateway Java Java creditcard Java payment Payment Email Gateway CreditCard Payment creditCard Payment email Gateway CustomerRegistry Java Customer Registry customer Registry transactionFee (8081) (8082) binding.ws binding.sca binding.ws binding.ws binding.sca binding.sca binding.sca
  19. 19. Open Source SOA: SCA and SDO http://tuscany.apache.org IBM Software Group 19 SCA Payment Composite – with WS Bindings <composite xmlns="http://www.osoa.org/xmlns/sca/1.0" targetNamespace="http://tuscanyscatours.com/" name="payment"> <component name="Payment"> <implementation.java class="com.tuscanyscatours.payment.impl.PaymentImpl" /> <service name="Payment"> <binding.ws uri="http://localhost:8081/Payment" /> </service> <reference name="customerRegistry" target="CustomerRegistry" /> <reference name="creditCardPayment"> <binding.ws uri="http://localhost:8082/CreditCardPayment" /> </reference> <reference name="emailGateway" target="EmailGateway" /> <property name="transactionFee">0.02</property> </component> <component name="CustomerRegistry"> <implementation.java class="com.tuscanyscatours.customer.impl.CustomerRegistryImpl" /> </component> <component name="EmailGateway"> <implementation.java class="com.tuscanyscatours.emailgateway.impl.EmailGatewayImpl" /> </component> </composite>
  20. 20. Open Source SOA: SCA and SDO http://tuscany.apache.org IBM Software Group 20 Web 2.0 Bindings and Widget Components Web 2.0 bindings: REST, JSON, JSONRPC, DWR, Feeds (ATOM, RSS) Tuscany Widget implementation representing Web components, with Javascript dependency injection Other scripting implementation types
  21. 21. Open Source SOA: SCA and SDO http://tuscany.apache.org IBM Software Group 21 SCA Payment Composite – JSON-RPC Bindings <composite xmlns="http://www.osoa.org/xmlns/sca/1.0" targetNamespace="http://tuscanyscatours.com/" name="payment"> <component name="Payment"> <implementation.java class="com.tuscanyscatours.payment.impl.PaymentImpl" /> <service name="Payment"> <binding.jsonrpc uri="http://localhost:8081/Payment" /> </service> <reference name="customerRegistry" target="CustomerRegistry" /> <reference name="creditCardPayment"> <binding.jsonrpc uri="http://localhost:8082/CreditCardPayment" /> </reference> <reference name="emailGateway" target="EmailGateway" /> <property name="transactionFee">0.02</property> </component> <component name="CustomerRegistry"> <implementation.java class="com.tuscanyscatours.customer.impl.CustomerRegistryImpl" /> </component> <component name="EmailGateway"> <implementation.java class="com.tuscanyscatours.emailgateway.impl.EmailGatewayImpl" /> </component> </composite>
  22. 22. Open Source SOA: SCA and SDO http://tuscany.apache.org IBM Software Group 22 Packaging and Deployment  Service implementations are deployed into an SCA Domain  Represents the SCA runtime configuration  In general heterogeneous with distributed SCA runtime Nodes.  Defines the scope of what can be connected by SCA Wires  SCA Domain configuration is a Domain Composite  Final configuration for service dependencies, properties, bindings, policies  Implementation artifacts and their configuration added to a Domain as Contributions  Many packaging formats (JAR, ZIP, Folder etc.)  Artifacts (Classes, XSD, WSDL, BPEL etc.) may be shared between Contributions
  23. 23. Open Source SOA: SCA and SDO http://tuscany.apache.org IBM Software Group 23 Building Contributions with Maven  Using Maven project layout, place composites, component implementations, interfaces and other required artifacts together Use mvn eclipse:eclipse to build an Eclipse project
  24. 24. Open Source SOA: SCA and SDO http://tuscany.apache.org IBM Software Group 24 Developing in Eclipse To import an SCA contribution built using Maven into Eclipse  Set M2_REPO  Import your contribution project previously built using mvn eclipse:eclipse If you're building an SCA contribution from scratch in Eclipse, add a dependency on the Tuscany runtime Jars  An easy way to do this is to create an Eclipse user defined library that includes all the Tuscany Jars and dependencies, and add this library to your new contribution
  25. 25. Open Source SOA: SCA and SDO http://tuscany.apache.org IBM Software Group 25 Payment-java Contribution in Eclipse
  26. 26. Open Source SOA: SCA and SDO http://tuscany.apache.org IBM Software Group 26 Running in a Single JVM To test payment-java we need three more things  The creditcard-payment-jaxb contribution. This contains the composite that defines the CreditCardPayment service that the Payment component references  The launcher-payment-java project that loads these two contributions into Tuscany and then calls the Payment component  The util-launcher-common project which contains a few utilities that we wrote for the TuscanySCATours application
  27. 27. Open Source SOA: SCA and SDO http://tuscany.apache.org IBM Software Group 27 Embedding Tuscany public class PaymentLauncher { public static void main(String[] args) throws Exception { SCANode node = SCANodeFactory.newInstance().createSCANode(null, locate("payment-java"), locate("creditcard-payment-jaxb")); node.start(); SCAClient client = (SCAClient)node; Payment payment = client.getService(Payment.class, "Payment"); System.out.println("Payment Java test"); System.out.println("nSuccessful Payment - Status = nn" + payment.makePaymentMember("c-0", 100.00f)); System.out.println("nnFailed Payment - Status = nn" + payment.makePaymentMember("c-1", 100.00f)); node.stop(); } The locate() operation is a utility we created for this sample which simply locates a contribution in the sample directory structure and returns its location.
  28. 28. Open Source SOA: SCA and SDO http://tuscany.apache.org IBM Software Group 28 Spring Bean Component Implementation Property Name: transactionFee Type: float </bean> </bean> <property name="transactionFee" value="0.5f"/> Payment component type <property name="creditCardPayment" ref="creditCardPaymentReference"/> <bean id="Payment" class="com.tuscanyscatours.payment.impl.PaymentImpl"> Service Name: Payment Interface: payment.Payment Reference Name: creditCardPaymentReference Interface: payment.creditcard.CreditCardPayment
  29. 29. Open Source SOA: SCA and SDO http://tuscany.apache.org IBM Software Group 29 Payment Spring Component Payment CreditCard Payment Spring creditcard Java payment Payment CreditCard Payment creditCard Payment transactionFee (8082) binding.ws binding.ws binding.ws
  30. 30. Open Source SOA: SCA and SDO http://tuscany.apache.org IBM Software Group 30 Payment Spring Context <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:sca="http://www.springframework.org/schema/sca" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="Payment" class="com.tuscanyscatours.payment.impl.PaymentImpl"> <property name="creditCardPayment" ref="creditCardPaymentReference"/> <property name="emailGateway" ref="EmailGateway"/> <property name="customerRegistry" ref="CustomerRegistry"/> <property name="transactionFee" value="0.5f"/> </bean> <bean id="CustomerRegistry" class="com.tuscanyscatours.customer.impl.CustomerRegistryImpl"> </bean> <bean id="EmailGateway" class="com.tuscanyscatours.emailgateway.impl.EmailGatewayImpl"> </bean> </beans>
  31. 31. Open Source SOA: SCA and SDO http://tuscany.apache.org IBM Software Group 31 Payment Composite <composite xmlns="http://www.osoa.org/xmlns/sca/1.0" targetNamespace="http://tuscanyscatours.com/" name="payment"> <component name="Payment"> <implementation.spring location="Payment-context.xml"/> <service name="Payment"> <binding.ws uri="http://localhost:8081/Payment"/> </service> <reference name="creditCardPaymentReference"> <binding.ws uri="http://localhost:8082/CreditCardPayment"/> </reference> <property name="transactionFee">1.23</property> </component> </composite>
  32. 32. Open Source SOA: SCA and SDO http://tuscany.apache.org IBM Software Group 32 BPEL Process Component Implementation ShoppingCart Payment Payment Process Email Gateway implementation.bpel <variable/> <partnerLink/> <partnerLink/> <partnerLink/> <process> <sequence> <receive/> ... <invoke/> ... <invoke/> ... <reply/> </sequence> </process> reference referenceservice property
  33. 33. Open Source SOA: SCA and SDO http://tuscany.apache.org IBM Software Group 33 Payment BPEL Process Component Payment CreditCard Payment EmailGateway BPEL Java creditcard Java payment Payment Email Gateway CreditCard Payment creditCard Payment email Gateway CustomerRegistry Java Customer Registry customer Registry transactionFee (8081) (8082) binding.ws binding.sca binding.ws binding.ws binding.sca binding.sca binding.sca
  34. 34. Open Source SOA: SCA and SDO http://tuscany.apache.org IBM Software Group 34 Payment BPEL process <process name="Payment" targetNamespace="http://www.tuscanyscatours.com/Payment" ...> <import location="Payment.wsdl" importType="http://schemas.xmlsoap.org/wsdl/" namespace="http://www.tuscanyscatours.com/Payment/"/> <import location="CreditCardPayment.wsdl" importType="http://schemas.xmlsoap.org/wsdl/" namespace="http://www.tuscanyscatours.com/CreditCardPayment/"/> <import location="EmailGateway.wsdl" importType="http://schemas.xmlsoap.org/wsdl/" namespace="http://www.tuscanyscatours.com/EmailGateway/"/> <partnerLinks> <partnerLink name="paymentPartnerLink" partnerLinkType="pp:PaymentLinkType" myRole="forward" /> <partnerLink name="creditCardPaymentPartnerLink" partnerLinkType="ccp:CreditCardPaymentLinkType" partnerRole="forward" initializePartnerRole="yes" /> <partnerLink name="emailGatewayPartnerLink" partnerLinkType="eg:EmailGatewayLinkType" partnerRole="forward" initializePartnerRole="yes" /> </partnerLinks> <variables> <variable name="makePaymentMemberRequestMessage" messageType="pp:MakePaymentMemberRequest"/> <variable name="makePaymentMemberResponseMessage" messageType="pp:MakePaymentMemberResponse"/> .... </variables> <sequence> <receive name="start" partnerLink="paymentPartnerLink" portType="pp:Payment" operation="makePaymentMember" variable="makePaymentMemberRequestMessage" createInstance="yes"/>
  35. 35. Open Source SOA: SCA and SDO http://tuscany.apache.org IBM Software Group 35 Payment Composite <composite xmlns="http://www.osoa.org/xmlns/sca/1.0" xmlns:t="http://tuscany.apache.org/xmlns/sca/1.0" xmlns:pp="http://www.tuscanyscatours.com/Payment" targetNamespace="http://www.tuscanyscatours.com/Payment" name="payment"> <component name="Payment"> <implementation.bpel process="pp:Payment"/> <service name="paymentPartnerLink"> <interface.wsdl interface="http://www.tuscanyscatours.com/Payment/#wsdl.interface(Payment)" /> <binding.ws uri="http://localhost:8080/Payment" wsdlElement="http://www.tuscanyscatours.com/Payment/#wsdl.service(PaymentService)"/> </service> <reference name="creditCardPaymentPartnerLink"> <binding.ws uri="http://localhost:8082/CreditCardPayment"/> </reference> <reference name="emailGatewayPartnerLink"> <binding.ws uri="http://localhost:8088/EmailGateway"/> </reference> </component> </composite>
  36. 36. Open Source SOA: SCA and SDO http://tuscany.apache.org IBM Software Group 36 SCA Policies Payment CreditCard Payment EmailGateway Spring Java creditcard Java payment Authentication Payment Email Gateway CreditCard Payment creditCard Payment email Gateway CustomerRegistry Java Customer Registry customer Registry transactionFee (8081) (8082) Authentication binding.ws binding.sca binding.ws binding.ws binding.sca binding.sca binding.sca
  37. 37. Open Source SOA: SCA and SDO http://tuscany.apache.org IBM Software Group 37 Adding Policy Intents <component name="Payment"> <implementation.spring location="Payment-context.xml"/> <service name="Payment"> <binding.ws uri="http://localhost:8081/Payment"/> </service> <reference name="creditCardPaymentReference" > <binding.ws uri="http://localhost:8082/CreditCardPayment" requires="authentication"/> </reference> <reference name="emailGateway" target="EmailGateway"/> <reference name="customerRegistry" target="CustomerRegistry"/> <property name="transactionFee">1.23</property> </component> <component name="CreditCardPayment"> <implementation.java class="com.tuscanyscatours.payment.creditcard.impl.CreditCardPaymentImpl" /> <service name="CreditCardPayment"> <interface.wsdl interface="http://www.tuscanyscatours.com/CreditCardPayment/#wsdl.interface(CreditCardPayment)" /> <binding.ws uri="http://localhost:8082/CreditCardPayment" requires="authentication"/> <binding.sca/> </service> </component>
  38. 38. Open Source SOA: SCA and SDO http://tuscany.apache.org IBM Software Group 38 Defining policy sets <definitions xmlns="http://www.osoa.org/xmlns/sca/1.0" targetNamespace="http://www.osoa.org/xmlns/sca/1.0" xmlns:sca="http://www.osoa.org/xmlns/sca/1.0" xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.0"> <policySet name="BasicAuthenticationPolicySet" provides="authentication" appliesTo="sca:binding.ws"> <tuscany:basicAuthentication> <tuscany:userName>myname</tuscany:userName> <tuscany:password>mypassword</tuscany:password> </tuscany:basicAuthentication> </policySet> </definitions>
  39. 39. Open Source SOA: SCA and SDO http://tuscany.apache.org IBM Software Group 39 Adding more components - 1 TuscanySCA ToursUser Interface TravelCatalog TripBooking ShoppingCart Hotel Partner Flight Partner Car Partner Currency Converter Trip Partner Java Java Java Java Java widget (8080) fullapp-coordination fullapp-packagedtrip fullapp-bespoketrip fullapp-currency fullapp-shoppingcart Java Java Java CartStore Java >ls -lsa SCATours Java LoggingquoteCurrency Code TravelCatalog Search TripBooking SCATours Booking SCATours Cart SCATours Search Search Search Search Search Book Book Book Book Currency Converter Cart Updates Cart Initialize CartStore trip Search hotel Search flight Search car Search currency Converter trip Book hotel Book flight Book car Book car Book cart Updates scaTours Search scaTours Booking scaTours Cart travelCatalog Search tripBooking cartInitialize payment cartStore cartCheckout Cart Checkout to Payment component (8085) fullapp-ui (8084) (8083) (8086) (8087)
  40. 40. Open Source SOA: SCA and SDO http://tuscany.apache.org IBM Software Group 40 Adding more components - 2 Payment CreditCard Payment EmailGateway Spring Java creditcard Java payment Authentication Payment Email Gateway CreditCard Payment creditCard Payment email Gateway CustomerRegistry Java Customer Registry customer Registry from ShoppingCart component transactionFee (8081) (8082) Authentication
  41. 41. Open Source SOA: SCA and SDO http://tuscany.apache.org IBM Software Group 41 SCA Domain A distributed deployment of the assembly.
  42. 42. Open Source SOA: SCA and SDO http://tuscany.apache.org IBM Software Group 42 Running Multiple Tuscany Nodes public class FullAppNodesLauncher { public static void main(String[] args) throws Exception { SCANode nodeCreditcard = SCANodeFactory.newInstance().createSCANodeFromURL("http://localhost:9990/node-config/creditcard"); nodeCreditcard.start(); SCANode nodePayment = SCANodeFactory.newInstance().createSCANodeFromURL("http://localhost:9990/node-config/payment"); nodePayment.start(); SCANode nodeShoppingcart = SCANodeFactory.newInstance().createSCANodeFromURL("http://localhost:9990/node-config/shoppingcart"); nodeShoppingcart.start(); SCANode nodeCurrency = SCANodeFactory.newInstance().createSCANodeFromURL("http://localhost:9990/node-config/currency"); nodeCurrency.start(); SCANode nodePackagedtrip = SCANodeFactory.newInstance().createSCANodeFromURL("http://localhost:9990/node-config/packagedtrip"); nodePackagedtrip.start(); SCANode nodeBespoketrip = SCANodeFactory.newInstance().createSCANodeFromURL("http://localhost:9990/node-config/bespoketrip"); nodeBespoketrip.start(); SCANode nodeFrontend = SCANodeFactory.newInstance().createSCANodeFromURL("http://localhost:9990/node-config/coordination"); nodeFrontend.start(); SCANode nodeUI = SCANodeFactory.newInstance().createSCANodeFromURL("http://localhost:9990/node-config/ui"); nodeUI.start(); ... }
  43. 43. Open Source SOA: SCA and SDO http://tuscany.apache.org IBM Software Group 43 Getting Involved with Apache Tuscany
  44. 44. IBM Software Group 44 http://tuscany.apache.org SCA - Resources  Good introduction to SCA  http://www.davidchappell.com/articles/Introducing_SCA.pdf  OASIS Open CSA – http://www.oasis-opencsa.org  V1.1 level specs  http://www.oasis-opencsa.org/sca  Open CSA Technical Committees  http://www.oasis-opencsa.org/committees  OSOA  http://osoa.org/display/Main/Home  More information on that site  http://osoa.org/display/Main/SCA+Resources
  45. 45. IBM Software Group 45 http://tuscany.apache.org Apache Tuscany Resources  Apache Tuscany  http://tuscany.apache.org  Getting Involved  http://tuscany.apache.org/getting-involved.html  Tuscany SCA Java Releases  http://tuscany.apache.org/sca-java-2x-releases.html  http://tuscany.apache.org/sca-java-releases.html  Tuscany SCA Java Documentation  http://tuscany.apache.org/java-sca-documentation-menu.html  Tuscany Dashboard  http://tuscany.apache.org/tuscany-dashboard.html
  46. 46. Open Source SOA: SCA and SDO http://tuscany.apache.org IBM Software Group 46 Getting Involved with Apache Nuvem
  47. 47. IBM Software Group 47 http://tuscany.apache.org Apache Nuvem Resources  Apache Nuvem  http://incubator.apache.org/nuvem/  Getting Involved  http://incubator.apache.org/nuvem/nuvem-getting-involved.html
  48. 48. IBM Software Group 48 http://tuscany.apache.org Thank You !!!
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×