IBM Software Group
1
http://tuscany.apache.org
Luciano Resende
lresende@apache.org
http://lresende.blogspot.com
Jean-Sebas...
IBM Software Group
2
http://tuscany.apache.org
Agenda
 Cloud Computing – Goals and Challenges
 SCA – Goals and Overview
...
IBM Software Group
3
http://tuscany.apache.org
Cloud Computing
IBM Software Group
4
http://tuscany.apache.org
Cloud Computing – Some Goals
 Up and running in seconds
 Cheap
 Scale up...
IBM Software Group
5
http://tuscany.apache.org
Cloud Computing – Not so easy?
 Different platforms and APIs (even languag...
IBM Software Group
6
http://tuscany.apache.org
What is SCA ?
IBM Software Group
7
http://tuscany.apache.org
SCA - Goals
 Abstract out technical APIs, protocols, QOS
 Allow me to foc...
IBM Software Group
8
http://tuscany.apache.org
Can SCA components help you in the cloud?
 We've been using different clou...
IBM Software Group
9
http://tuscany.apache.org
SCA – Assembly Model
Composite A
Component
AService
Service Binding
- Web S...
IBM Software Group
10
http://tuscany.apache.org
SCA – Example assembly
Store
Catalog
Currency
Converter
http
currencyCode=...
IBM Software Group
11
http://tuscany.apache.org
SCA – if you don't like XML
final Composite comp =
build(composite("http:/...
IBM Software Group
12
http://tuscany.apache.org
SCA – if you like Java annotations
Component
Account
Service
implmentation...
IBM Software Group
13
http://tuscany.apache.org
SCA – if you like to click around
• Eclipse STP Tools project provides SCA...
IBM Software Group
14
http://tuscany.apache.org
SCA – Typical Scenarios
IBM Software Group
15
http://tuscany.apache.org
Online Store
<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/2...
IBM Software Group
16
http://tuscany.apache.org
Gateway / Mediation
Gateway
jsonrpc
Service
<composite xmlns=http://docs.o...
IBM Software Group
17
http://tuscany.apache.org
Feed Aggregator / Converter
ATOM
Aggregator
Sort
RSS
Aggregator
RSS
ATOM
R...
IBM Software Group
18
http://tuscany.apache.org
Business Integration – Travel Booking Process
JEE Components
POJOs
Spring ...
IBM Software Group
19
http://tuscany.apache.org
Apache Tuscany
IBM Software Group
20
http://tuscany.apache.org
Apache Tuscany
 Lightweight SCA runtimes
 Leverage and integrate with th...
IBM Software Group
21
http://tuscany.apache.org
Tuscany Demo – SCA Component Rewiring
 SCA Java Application on EC2
 Push...
IBM Software Group
22
http://tuscany.apache.org
Tuscany Demo – SCA Component Wiring
Currency
Converter
currencyCode=USD
js...
IBM Software Group
23
http://tuscany.apache.org
Apache Nuvem
Components for the Cloud
IBM Software Group
24
http://tuscany.apache.org
Apache Nuvem - Overview
 New project in the Apache incubator
 Initial co...
IBM Software Group
25
http://tuscany.apache.org
Nuvem, REST, and Cloud friendly Components
 With REST, components get a s...
IBM Software Group
26
http://tuscany.apache.org
Nuvem Demo – Technical Components
 SCA Java runtime on Google AppEngine /...
IBM Software Group
27
http://tuscany.apache.org
Nuvem Demo – Technical Components
Currency
Converter
currencyCode=USD
json...
IBM Software Group
28
http://tuscany.apache.org
Nuvem Components – Wish list
 Simple data store cache
 Hierarchical cach...
IBM Software Group
29
http://tuscany.apache.org
Cloud Components
 What's your wish list?
IBM Software Group
30
http://tuscany.apache.org
Getting Involved
with Apache Tuscany
IBM Software Group
31
http://tuscany.apache.org
SCA - Resources
 Good introduction to SCA
 http://www.davidchappell.com/...
IBM Software Group
32
http://tuscany.apache.org
Apache Tuscany Resources
 Apache Tuscany
 http://tuscany.apache.org
 Ge...
IBM Software Group
33
http://tuscany.apache.org
Getting Involved
with Apache Nuvem
IBM Software Group
34
http://tuscany.apache.org
Apache Nuvem Resources
 Apache Nuvem
 http://incubator.apache.org/nuvem/...
IBM Software Group
35
http://tuscany.apache.org
Thank You !!!
Upcoming SlideShare
Loading in...5
×

ApacheCon NA 2010 - Developing Composite Apps for the Cloud with Apache Tuscany

1,237

Published on

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

No Downloads
Views
Total Views
1,237
On Slideshare
0
From Embeds
0
Number of Embeds
8
Actions
Shares
0
Downloads
30
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

ApacheCon NA 2010 - Developing Composite Apps for the Cloud with Apache Tuscany

  1. 1. IBM Software Group 1 http://tuscany.apache.org Luciano Resende lresende@apache.org http://lresende.blogspot.com Jean-Sebastien Delfino jsdelfino@apache.org http://jsdelfino.blogspot.com SCA Reaches the Cloud Developing Composite Applications for the Cloud with Apache Tuscany
  2. 2. IBM Software Group 2 http://tuscany.apache.org Agenda  Cloud Computing – Goals and Challenges  SCA – Goals and Overview  SCA – Typical Scenarios  Apache Tuscany  Tuscany Demo – Rewiring Components in the Cloud  Apache Nuvem  Nuvem Demo – Cloud friendly Components  Your Wish list?  Getting Involved
  3. 3. IBM Software Group 3 http://tuscany.apache.org Cloud Computing
  4. 4. IBM Software Group 4 http://tuscany.apache.org Cloud Computing – Some Goals  Up and running in seconds  Cheap  Scale up and down  Agile, reconfigure applications as business evolves
  5. 5. IBM Software Group 5 http://tuscany.apache.org Cloud Computing – Not so easy?  Different platforms and APIs (even languages) to learn... does my business logic need to know?  Am I getting OS images on demand? Infrastructure? an application platform?  Changing pricing models?  How do I integrate hybrid clouds, on premise + public cloud?  How do the various parts of my app communicate? Which protocols am I using?  How do I assemble / integrate them?  How do I configure the QOS I need?  How do I automate deployment?  Can I move some parts from one cloud to another?
  6. 6. IBM Software Group 6 http://tuscany.apache.org What is SCA ?
  7. 7. IBM Software Group 7 http://tuscany.apache.org SCA - Goals  Abstract out technical APIs, protocols, QOS  Allow me to focus on my business logic  Give me a structure for componentizing my app  Help me assemble, wire, rewire, move parts around  OASIS Standard (in progress)  Open Source implementations  Apache Tuscany  Fabric3  a few others  Product implementations  Initial target: SOA, Web Services, multi-language apps, application integration
  8. 8. IBM Software Group 8 http://tuscany.apache.org Can SCA components help you in the cloud?  We've been using different clouds in our Apache Tuscany work and are starting to realize that SCA components can help there too!  Components that easily communicate over a network  Components that shield you from different infrastructures  A way to describe your app and how it's assembled / wired  and can be distributed in a cloud or multiple clouds  Move components around clouds and rewire your app
  9. 9. IBM Software Group 9 http://tuscany.apache.org SCA – Assembly Model Composite A Component AService Service Binding - Web Service - JMS - JCA - SLSB - HTTP - JSONRPC - ATOM - … Reference Binding Component B Service Interface - Java - WSDL Reference Interface - Java interface - WSDL PortType Reference property setting Property promotepromote wire Implementation - Web Service - JMS - JCA - SLSB - HTTP - JSONRPC - ATOM - … - Java - BPEL - SCA Composite - Spring - JEE - Scripting: Groovy, JScript, PHP, Python, Ruby, … - XQuery - …
  10. 10. IBM Software Group 10 http://tuscany.apache.org SCA – Example assembly Store Catalog Currency Converter http currencyCode=USD jsonrpc ShoppingCart atom jsonrpc Collection Total <composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" xmlns:t="http://tuscany.apache.org/xmlns/sca/1.1" targetNamespace="http://store" name="store"> <component name="Store"> <t:implementation.widget location="uiservices/store.html"/> <service name="Widget"> <t:binding.http uri="/store"/> </service> <reference name="catalog" target="Catalog"/> <reference name="shoppingCart" target="ShoppingCart/Cart"/> <reference name="shoppingTotal" target="ShoppingCart/Total"/> </component> <component name="Catalog"> <implementation.java class="services.FruitsCatalogImpl"/> <property name="currencyCode">USD</property> <service name="Catalog"> <t:binding.jsonrpc/> </service> <reference name="currencyConverter" target="CurrencyConverter"/> </component> <component name="ShoppingCart"> <implementation.java class="services.ShoppingCartImpl"/> <service name="Cart"> <t:binding.atom uri="/ShoppingCart/Cart"/> </service> <service name="Total"> <t:binding.jsonrpc/> </service> </component> <component name="CurrencyConverter"> <implementation.java class="services.CurrencyConverterImpl"/> </component> </composite>
  11. 11. IBM Software Group 11 http://tuscany.apache.org SCA – if you don't like XML final Composite comp = build(composite("http://sample", "test", component("client-test", implementation(ClientTest.class, service(Client.class), reference("jello", Hello.class), reference("wello", Hello_wsdl)), reference("jello", "jello-test"), reference("wello", "wello-test")), component("wello-test", implementation(WelloTest.class, service(Hello_wsdl), reference("upper", Upper_wsdl)), reference("upper", "upper-test")), component("jello-test", implementation(JelloTest.class, service(Hello.class), reference("upper", Upper.class)), reference("upper", "upper-test")), component("upper-test", implementation(UpperTest.class, service(Upper.class)))), ec);
  12. 12. IBM Software Group 12 http://tuscany.apache.org SCA – if you like Java annotations Component Account Service implmentation @Remotable public interface AccountService { AccountReport getAccountReport(String customerID); } public class AccountServiceImpl implements AccountService { … @Reference public void setAccountDataService(AccountDataService value) { accountDataService = value; } @Reference public void setStockQuoteService(StockQuoteService value) { stockQuoteService = value; } @Property public void setCurrency(String value) { currency = value; } … }
  13. 13. IBM Software Group 13 http://tuscany.apache.org SCA – if you like to click around • Eclipse STP Tools project provides SCA tooling
  14. 14. IBM Software Group 14 http://tuscany.apache.org SCA – Typical Scenarios
  15. 15. IBM Software Group 15 http://tuscany.apache.org Online Store <composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" xmlns:t="http://tuscany.apache.org/xmlns/sca/1.1" targetNamespace="http://store" name="store"> <component name="Store"> <t:implementation.widget location="uiservices/store.html"/> <service name="Widget"> <t:binding.http uri="/store"/> </service> <reference name="catalog" target="Catalog"/> <reference name="shoppingCart" target="ShoppingCart/Cart"/> <reference name="shoppingTotal" target="ShoppingCart/Total"/> </component> <component name="Catalog"> <implementation.java class="services.FruitsCatalogImpl"/> <property name="currencyCode">USD</property> <service name="Catalog"> <t:binding.jsonrpc/> </service> <reference name="currencyConverter" target="CurrencyConverter"/> </component> <component name="ShoppingCart"> <implementation.java class="services.ShoppingCartImpl"/> <service name="Cart"> <t:binding.atom uri="/ShoppingCart/Cart"/> </service> <service name="Total"> <t:binding.jsonrpc/> </service> </component> <component name="CurrencyConverter"> <implementation.java class="services.CurrencyConverterImpl"/> </component> </composite> Store Catalog Currency Converter currencyCode=USD jsonrpc ShoppingCart atom jsonrpc Collection Total
  16. 16. IBM Software Group 16 http://tuscany.apache.org Gateway / Mediation Gateway jsonrpc Service <composite xmlns=http://docs.oasis- open.org/ns/opencsa/sca/200903 xmlns:t=http://tuscany.apache.org/xmlns/sca/1.1 targetNamespace=http://store name=”gateway"> <component name=”Gateway"> <implementation.java class="services.GatewayImpl"/> <service name=”A"> <t:binding.jsonrpc/> </service> <reference name=”refService”> <binding.x uri=“http://domain:8080/atomService”> </reference> </component> </composite> Service ShoppingCart
  17. 17. IBM Software Group 17 http://tuscany.apache.org Feed Aggregator / Converter ATOM Aggregator Sort RSS Aggregator RSS ATOM RSS ATOM <composite xmlns=http://docs.oasis-open.org/ns/opencsa/sca/200903 xmlns:t=http://tuscany.apache.org/xmlns/sca/1.1 targetNamespace=http://store name=”feedAgregator"> <component name="AtomAggregator"> <implementation.java class="feed.AggregatorImpl"/> <reference name="sort" target="Sort"/> <reference name="atomFeed1"> <tuscany:binding.atom uri="http://apache-tuscany.blogspot.com/feeds/posts/default"/> </reference> <reference name="atomFeed2"> <tuscany:binding.atom uri="http://feeds.feedburner.com/blogspot/Dcni?format=xml"/> </reference> <property name="feedTitle">Atom Aggregator Sample</property> </component> <component name="Sort"> <implementation.java class="feed.SortImpl"/> <property name="newFirst">true</property> </component> </composite>
  18. 18. IBM Software Group 18 http://tuscany.apache.org Business Integration – Travel Booking Process JEE Components POJOs Spring Assemblies Scripting Components BPEL Processes T u s c a n y S C A T o u r s U I T r a v e l C a t a l o g T r i p B o o k i n g H o t e l P a r t n e r F l i g h t P a r t n e r C a r P a r t n e r C u r r e n c y C o n v e r t e r T r i p P a r t n e r J a v a J a v a J a v a J a v a W i d g e t f u l l a p p - u i ( 8 0 8 0 ) f u l l a p p - f r o n t e n d ( 8 0 8 4 )f u l l a p p - p a c k a g e d t r i p ( 8 0 8 5 ) f u l l a p p - b e s p o k e t r i p ( 8 0 8 6 ) f u l l a p p - c u r r e n c y ( 8 0 8 3 ) E J B J a v a J a v a > l s - l s a S C A T o u r s J a v a 1 2 3 4 5 6 7 8 9
  19. 19. IBM Software Group 19 http://tuscany.apache.org Apache Tuscany
  20. 20. IBM Software Group 20 http://tuscany.apache.org Apache Tuscany  Lightweight SCA runtimes  Leverage and integrate with the Apache platform  Active Open-Source community, started in 2005  “Release early release often”, many releases  Two release streams, 1.x (stable), 2.x (trunk)  Working on OASIS SCA compliance  Innovations beyond the SCA spec (JSON, REST, ATOM, Comet etc)  SCA Java runtime, standalone or on Google AppEngine / Java, supports Java, scripting, BPEL, Spring components, and many protocol bindings  SCA Python runtime on Google AppEngine / Python  SCA Native, supports C++ and Python components
  21. 21. IBM Software Group 21 http://tuscany.apache.org Tuscany Demo – SCA Component Rewiring  SCA Java Application on EC2  Push one component out to Google AppEngine / Java  Rewrite it in Python and move it Google AppEngine / Python  Move it to a native SCA runtime on EC2  Easy runtime reconfiguration as you rewire the app  You've got choices, and can be agile!
  22. 22. IBM Software Group 22 http://tuscany.apache.org Tuscany Demo – SCA Component Wiring Currency Converter currencyCode=USD jsonrpc Catalog Fruit Catalog ((Python)) Fruit Catalog (Java) store Configuration Repository Fruit Catalog ((Native)) Tuscany Runtime Shell
  23. 23. IBM Software Group 23 http://tuscany.apache.org Apache Nuvem Components for the Cloud
  24. 24. IBM Software Group 24 http://tuscany.apache.org Apache Nuvem - Overview  New project in the Apache incubator  Initial code contribution from Apache Tuscany  A few technical components already there  Running on Google AppEngine, today's demo also on EC2  Project is just starting so there's a lot of room for innovation!
  25. 25. IBM Software Group 25 http://tuscany.apache.org Nuvem, REST, and Cloud friendly Components  With REST, components get a simple GET/POST/PUT/DELETE interface  More importantly it's a fixed interface  Making components easier to assemble and compose  Like Lego blocks!  Web apps are starting to favor a protocol short list  HTTP verbs with some format variations (XML, ATOM, RSS, JSON)  That helps too!  What if you had a palette of Cloud friendly components?  Accessible through a simple REST interface  To help simplify your apps and enable them to work on different clouds?
  26. 26. IBM Software Group 26 http://tuscany.apache.org Nuvem Demo – Technical Components  SCA Java runtime on Google AppEngine / Java  Using different implementations of a simple datastore component  First using a HashMap  Second using Google's Memcached
  27. 27. IBM Software Group 27 http://tuscany.apache.org Nuvem Demo – Technical Components Currency Converter currencyCode=USD jsonrpc Catalog Vegetables Catalog store ShoppingCart Manager User MapDocument Service MapDocument Service
  28. 28. IBM Software Group 28 http://tuscany.apache.org Nuvem Components – Wish list  Simple data store cache  Hierarchical cache, which can delegate to another cache  Invocation cache, which caches responses to requests  Key/value datastore  Simple (S)QL datastore  Datastore that understands master/slave replication and sharding  XMPP chat  Message queue  Oauth 1.0/2.0 + OpenID  User profile
  29. 29. IBM Software Group 29 http://tuscany.apache.org Cloud Components  What's your wish list?
  30. 30. IBM Software Group 30 http://tuscany.apache.org Getting Involved with Apache Tuscany
  31. 31. IBM Software Group 31 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
  32. 32. IBM Software Group 32 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
  33. 33. IBM Software Group 33 http://tuscany.apache.org Getting Involved with Apache Nuvem
  34. 34. IBM Software Group 34 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
  35. 35. IBM Software Group 35 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.

×