Loading…

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

Like this presentation? Why not share!

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

on

  • 1,305 views

 

Statistics

Views

Total Views
1,305
Slideshare-icon Views on SlideShare
1,228
Embed Views
77

Actions

Likes
2
Downloads
28
Comments
0

11 Embeds 77

http://jsdelfino.blogspot.com 62
http://jsdelfino.blogspot.in 3
http://jsdelfino.blogspot.hu 3
http://jsdelfino.blogspot.fr 2
http://jsdelfino.blogspot.ru 1
http://jsdelfino.blogspot.de 1
http://jsdelfino.blogspot.jp 1
http://jsdelfino.blogspot.com.au 1
http://jsdelfino.blogspot.com.es 1
http://jsdelfino.blogspot.fi 1
http://jsdelfino.blogspot.cz 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

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

    • IBM Software Group SCA Reaches the Cloud Developing Composite Applications for the Cloud with Apache Tuscany Luciano Resende lresende@apache.org http://lresende.blogspot.com Jean-Sebastien Delfino jsdelfino@apache.org http://jsdelfino.blogspot.com 1 http://tuscany.apache.org
    • IBM Software Group 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 2 http://tuscany.apache.org
    • IBM Software Group Cloud Computing 3 http://tuscany.apache.org
    • IBM Software Group Cloud Computing – Some Goals  Up and running in seconds  Cheap  Scale up and down  Agile, reconfigure applications as business evolves 4 http://tuscany.apache.org
    • IBM Software Group 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? 5 http://tuscany.apache.org
    • IBM Software Group What is SCA ? 6 http://tuscany.apache.org
    • IBM Software Group 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 7 http://tuscany.apache.org
    • IBM Software Group 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 8 http://tuscany.apache.org
    • IBM Software Group SCA – Assembly Model Service Interface Reference Interface - Java Property - Java interface - WSDL - WSDL PortType Composite A property setting Component Component Service A B Reference promote wire promote Service Binding Implementation Reference Binding - Web Service - Java - Web Service - JMS - BPEL - JMS - JCA - SCA Composite - JCA - SLSB - Spring - SLSB - HTTP - JEE - HTTP - JSONRPC - Scripting: Groovy, JScript, PHP, Python, Ruby, … - JSONRPC - ATOM - XQuery - ATOM -… -… -… 9 http://tuscany.apache.org
    • IBM Software Group SCA – Example assembly <composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" xmlns:t="http://tuscany.apache.org/xmlns/sca/1.1" targetNamespace="http://store" Collection atom name="store"> ShoppingCart <component name="Store"> <t:implementation.widget location="uiservices/store.html"/> <service name="Widget"> Store <t:binding.http uri="/store"/> jsonrpc </service> Total <reference name="catalog" target="Catalog"/> <reference name="shoppingCart" target="ShoppingCart/Cart"/> currencyCode=USD <reference name="shoppingTotal" target="ShoppingCart/Total"/> http </component> jsonrpc Currency <component name="Catalog"> Catalog <implementation.java class="services.FruitsCatalogImpl"/> Converter <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> 10 http://tuscany.apache.org
    • IBM Software Group 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); 11 http://tuscany.apache.org
    • IBM Software Group SCA – if you like Java annotations @Remotable Component public interface AccountService { Account Service AccountReport getAccountReport(String customerID); } implmentation 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; } … } 12 http://tuscany.apache.org
    • IBM Software Group SCA – if you like to click around • Eclipse STP Tools project provides SCA tooling 13 http://tuscany.apache.org
    • IBM Software Group SCA – Typical Scenarios 14 http://tuscany.apache.org
    • IBM Software Group 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"> Collection atom <component name="Store"> ShoppingCart <t:implementation.widget location="uiservices/store.html"/> <service name="Widget"> <t:binding.http uri="/store"/> Store </service> jsonrpc <reference name="catalog" target="Catalog"/> Total <reference name="shoppingCart" target="ShoppingCart/Cart"/> <reference name="shoppingTotal" target="ShoppingCart/Total"/> currencyCode=USD </component> <component name="Catalog"> jsonrpc <implementation.java class="services.FruitsCatalogImpl"/> Currency Catalog <property name="currencyCode">USD</property> Converter <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> 15 http://tuscany.apache.org
    • IBM Software Group Gateway / Mediation Service Gateway jsonrpc <composite xmlns=http://docs.oasis- ShoppingCart 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> Service </composite> 16 http://tuscany.apache.org
    • IBM Software Group Feed Aggregator / Converter <composite xmlns=http://docs.oasis-open.org/ns/opencsa/sca/200903 xmlns:t=http://tuscany.apache.org/xmlns/sca/1.1 RSS targetNamespace=http://store name=”feedAgregator"> RSS Aggregator <component name="AtomAggregator"> <implementation.java class="feed.AggregatorImpl"/> <reference name="sort" target="Sort"/> ATOM <reference name="atomFeed1"> Sort <tuscany:binding.atom uri="http://apache-tuscany.blogspot.com/feeds/posts/default"/> </reference> RSS <reference name="atomFeed2"> ATOM <tuscany:binding.atom Aggregator uri="http://feeds.feedburner.com/blogspot/Dcni?format=xml"/> </reference> <property name="feedTitle">Atom Aggregator Sample</property> ATOM </component> <component name="Sort"> <implementation.java class="feed.SortImpl"/> <property name="newFirst">true</property> </component> </composite> 17 http://tuscany.apache.org
    • IBM Software Group Business Integration – Travel Booking Process 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 f8 u 4 l l ) a p p - p a c k a g e d t r i p ( 8 0 8 5 ) T r i p T r a v e l C a t a l o g P a r t n e r J a v a T u s c a n y S C A T o u r s U I S C A T o u r s > l s - ls a J a v a f u l l a p p - b e s p o k e t r i p ( 8 0 8 6 ) H o t e l P a r t n e r T r i p B o o k i n g J a v a 1 2 3 4 5 6 F l i g h t 7 8 9 W i d g e t J a v a P a r t n e r J a v a JEE Components J a v a C a r POJOs Spring Assemblies P a r t n e r J a v a Scripting Components f u l l a p p - c u r r e n c y ( 8 0 8 3 BPEL Processes ) C u r r e n c y C o n v e r t e r E J B 18 http://tuscany.apache.org
    • IBM Software Group Apache Tuscany 19 http://tuscany.apache.org
    • IBM Software Group 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 20 http://tuscany.apache.org
    • IBM Software Group 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! 21 http://tuscany.apache.org
    • IBM Software Group Tuscany Demo – SCA Component Wiring Configuration Repository Fruit Catalog ((Native)) store Tuscany Runtime Currency Shell Converter Fruit Catalog currencyCode=USD ((Python)) Catalog jsonrpc Fruit Catalog (Java) 22 http://tuscany.apache.org
    • IBM Software Group Apache Nuvem Components for the Cloud 23 http://tuscany.apache.org
    • IBM Software Group 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! 24 http://tuscany.apache.org
    • IBM Software Group 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? 25 http://tuscany.apache.org
    • IBM Software Group 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 26 http://tuscany.apache.org
    • IBM Software Group Nuvem Demo – Technical Components store Currency Converter User currencyCode=USD Vegetables Catalog Catalog jsonrpc MapDocument Service ShoppingCart Manager MapDocument Service 27 http://tuscany.apache.org
    • IBM Software Group 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 28 http://tuscany.apache.org
    • IBM Software Group Cloud Components  What's your wish list? 29 http://tuscany.apache.org
    • IBM Software Group Getting Involved with Apache Tuscany 30 http://tuscany.apache.org
    • IBM Software Group 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 31 http://tuscany.apache.org
    • IBM Software Group 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 32 http://tuscany.apache.org
    • IBM Software Group Getting Involved with Apache Nuvem 33 http://tuscany.apache.org
    • IBM Software Group Apache Nuvem Resources  Apache Nuvem  http://incubator.apache.org/nuvem/  Getting Involved  http://incubator.apache.org/nuvem/nuvem-getting-involved.html 34 http://tuscany.apache.org
    • IBM Software Group Thank You !!! 35 http://tuscany.apache.org