SlideShare une entreprise Scribd logo
1  sur  35
Télécharger pour lire hors ligne
IBM Software Group




    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"/>
                                                               </component>
http
                   jsonrpc                                     <component name="Catalog">
                                                 Currency
                              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
                                                                                 Account
      public interface AccountService {
                                                                                 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"/>
                                                               </service>
     Store                                                     <reference name="catalog" target="Catalog"/>
                 jsonrpc
                                                               <reference name="shoppingCart" target="ShoppingCart/Cart"/>
                   Total
                                                               <reference name="shoppingTotal" target="ShoppingCart/Total"/>
                            currencyCode=USD                 </component>

                                                             <component name="Catalog">
                 jsonrpc                                       <implementation.java class="services.FruitsCatalogImpl"/>
                                               Currency        <property name="currencyCode">USD</property>
                            Catalog
                                               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-open.org/ns/opencsa/sca/
                                                                             ShoppingCart
          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




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
                                                        uri="http://feeds.feedburner.com/blogspot/Dcni?format=xml"/>
                   Aggregator
                                                    </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




                                                    JEE Components
                                                    POJOs
                                                    Spring Assemblies
                                                    Scripting Components
                                                    BPEL Processes




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
            Schell                  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

Contenu connexe

Tendances

HTML5 Who what where when why how
HTML5 Who what where when why howHTML5 Who what where when why how
HTML5 Who what where when why how
brucelawson
 
Tuning Web Performance
Tuning Web PerformanceTuning Web Performance
Tuning Web Performance
Eric ShangKuan
 

Tendances (19)

HTML5 Who what where when why how
HTML5 Who what where when why howHTML5 Who what where when why how
HTML5 Who what where when why how
 
Developing High Performance Web Apps
Developing High Performance Web AppsDeveloping High Performance Web Apps
Developing High Performance Web Apps
 
Tuning Web Performance
Tuning Web PerformanceTuning Web Performance
Tuning Web Performance
 
Week 05 Web, App and Javascript_Brandon, S.H. Wu
Week 05 Web, App and Javascript_Brandon, S.H. WuWeek 05 Web, App and Javascript_Brandon, S.H. Wu
Week 05 Web, App and Javascript_Brandon, S.H. Wu
 
HTML5 and Accessibility sitting in a tree
HTML5 and Accessibility sitting in a treeHTML5 and Accessibility sitting in a tree
HTML5 and Accessibility sitting in a tree
 
lecture5
lecture5lecture5
lecture5
 
You too can be a bedwetting antfucker: Bruce Lawson, Opera, Fronteers 2011
You too can be a bedwetting antfucker: Bruce Lawson, Opera, Fronteers 2011You too can be a bedwetting antfucker: Bruce Lawson, Opera, Fronteers 2011
You too can be a bedwetting antfucker: Bruce Lawson, Opera, Fronteers 2011
 
CouchDB Google
CouchDB GoogleCouchDB Google
CouchDB Google
 
Realize mais com HTML 5 e CSS 3 - 16 EDTED - RJ
Realize mais com HTML 5 e CSS 3 - 16 EDTED - RJRealize mais com HTML 5 e CSS 3 - 16 EDTED - RJ
Realize mais com HTML 5 e CSS 3 - 16 EDTED - RJ
 
WordPress and Ajax
WordPress and AjaxWordPress and Ajax
WordPress and Ajax
 
Web Apps and more
Web Apps and moreWeb Apps and more
Web Apps and more
 
HTML 5 - Overview
HTML 5 - OverviewHTML 5 - Overview
HTML 5 - Overview
 
HTML5 JS APIs
HTML5 JS APIsHTML5 JS APIs
HTML5 JS APIs
 
ICEfaces and JSF 2.0 on GlassFish
ICEfaces and JSF 2.0 on GlassFishICEfaces and JSF 2.0 on GlassFish
ICEfaces and JSF 2.0 on GlassFish
 
High Performance Web Sites, With Ads: Don't let third parties make you slow
High Performance Web Sites, With Ads: Don't let third parties make you slowHigh Performance Web Sites, With Ads: Don't let third parties make you slow
High Performance Web Sites, With Ads: Don't let third parties make you slow
 
Performance Improvements in Browsers
Performance Improvements in BrowsersPerformance Improvements in Browsers
Performance Improvements in Browsers
 
HTML5: friend or foe (to Flash)?
HTML5: friend or foe (to Flash)?HTML5: friend or foe (to Flash)?
HTML5: friend or foe (to Flash)?
 
How to Develop a Rich, Native-quality User Experience for Mobile Using Web St...
How to Develop a Rich, Native-quality User Experience for Mobile Using Web St...How to Develop a Rich, Native-quality User Experience for Mobile Using Web St...
How to Develop a Rich, Native-quality User Experience for Mobile Using Web St...
 
HTML5 multimedia - where we are, where we're going
HTML5 multimedia - where we are, where we're goingHTML5 multimedia - where we are, where we're going
HTML5 multimedia - where we are, where we're going
 

En vedette

Building RESTful services using SCA and JAX-RS
Building RESTful services using SCA and JAX-RSBuilding RESTful services using SCA and JAX-RS
Building RESTful services using SCA and JAX-RS
Luciano Resende
 
Building Asynchronous Services With Sca
Building Asynchronous Services With ScaBuilding Asynchronous Services With Sca
Building Asynchronous Services With Sca
Luciano Resende
 
Data access layer and schema definitions
Data access layer and schema definitionsData access layer and schema definitions
Data access layer and schema definitions
Luciano Resende
 

En vedette (11)

Building RESTful services using SCA and JAX-RS
Building RESTful services using SCA and JAX-RSBuilding RESTful services using SCA and JAX-RS
Building RESTful services using SCA and JAX-RS
 
Building Asynchronous Services With Sca
Building Asynchronous Services With ScaBuilding Asynchronous Services With Sca
Building Asynchronous Services With Sca
 
Building apps with tuscany
Building apps with tuscanyBuilding apps with tuscany
Building apps with tuscany
 
How mentoring programs can help newcomers get started with open source
How mentoring programs can help newcomers get started with open sourceHow mentoring programs can help newcomers get started with open source
How mentoring programs can help newcomers get started with open source
 
Tuscany : Applying OSGi After The Fact
Tuscany : Applying  OSGi After The FactTuscany : Applying  OSGi After The Fact
Tuscany : Applying OSGi After The Fact
 
SCA Reaches the Cloud
SCA Reaches the CloudSCA Reaches the Cloud
SCA Reaches the Cloud
 
Data access layer and schema definitions
Data access layer and schema definitionsData access layer and schema definitions
Data access layer and schema definitions
 
How mentoring can help you start contributing to open source
How mentoring can help you start contributing to open sourceHow mentoring can help you start contributing to open source
How mentoring can help you start contributing to open source
 
Luciano Resende's keynote at Apache big data conference
Luciano Resende's keynote at Apache big data conferenceLuciano Resende's keynote at Apache big data conference
Luciano Resende's keynote at Apache big data conference
 
Writing Apache Spark and Apache Flink Applications Using Apache Bahir
Writing Apache Spark and Apache Flink Applications Using Apache BahirWriting Apache Spark and Apache Flink Applications Using Apache Bahir
Writing Apache Spark and Apache Flink Applications Using Apache Bahir
 
SystemML - Declarative Machine Learning
SystemML - Declarative Machine LearningSystemML - Declarative Machine Learning
SystemML - Declarative Machine Learning
 

Similaire à S314011 - Developing Composite Applications for the Cloud with Apache Tuscany

ApacheCon NA 2010 - Building Apps with Apache Tuscany
ApacheCon NA 2010 - Building Apps with Apache TuscanyApacheCon NA 2010 - Building Apps with Apache Tuscany
ApacheCon NA 2010 - Building Apps with Apache Tuscany
Jean-Sebastien Delfino
 
ApacheCon NA 2010 - Developing Composite Apps for the Cloud with Apache Tuscany
ApacheCon NA 2010 - Developing Composite Apps for the Cloud with Apache TuscanyApacheCon NA 2010 - Developing Composite Apps for the Cloud with Apache Tuscany
ApacheCon NA 2010 - Developing Composite Apps for the Cloud with Apache Tuscany
Jean-Sebastien Delfino
 
Writing & Using Web Services
Writing & Using Web ServicesWriting & Using Web Services
Writing & Using Web Services
Rajarshi Guha
 
Stratos Grouping
Stratos GroupingStratos Grouping
Stratos Grouping
WSO2
 
Java EE 6 - Deep Dive - Indic Threads, Pune - 2010
Java EE 6 - Deep Dive - Indic Threads, Pune - 2010Java EE 6 - Deep Dive - Indic Threads, Pune - 2010
Java EE 6 - Deep Dive - Indic Threads, Pune - 2010
Jagadish Prasath
 
Java EE 6 = Less Code + More Power (Tutorial) [5th IndicThreads Conference O...
Java EE 6 = Less Code + More Power (Tutorial)  [5th IndicThreads Conference O...Java EE 6 = Less Code + More Power (Tutorial)  [5th IndicThreads Conference O...
Java EE 6 = Less Code + More Power (Tutorial) [5th IndicThreads Conference O...
IndicThreads
 

Similaire à S314011 - Developing Composite Applications for the Cloud with Apache Tuscany (20)

ApacheCon NA 2010 - Building Apps with Apache Tuscany
ApacheCon NA 2010 - Building Apps with Apache TuscanyApacheCon NA 2010 - Building Apps with Apache Tuscany
ApacheCon NA 2010 - Building Apps with Apache Tuscany
 
Servlets 3.0 - Asynchronous, Extensibility, Ease-of-use @ JavaOne Brazil 2010
Servlets 3.0 - Asynchronous, Extensibility, Ease-of-use @ JavaOne Brazil 2010Servlets 3.0 - Asynchronous, Extensibility, Ease-of-use @ JavaOne Brazil 2010
Servlets 3.0 - Asynchronous, Extensibility, Ease-of-use @ JavaOne Brazil 2010
 
ApacheCon NA 2010 - Developing Composite Apps for the Cloud with Apache Tuscany
ApacheCon NA 2010 - Developing Composite Apps for the Cloud with Apache TuscanyApacheCon NA 2010 - Developing Composite Apps for the Cloud with Apache Tuscany
ApacheCon NA 2010 - Developing Composite Apps for the Cloud with Apache Tuscany
 
RubyConf Brazil 2011
RubyConf Brazil 2011RubyConf Brazil 2011
RubyConf Brazil 2011
 
Data Binding Unleashed for Composite Applications
Data Binding Unleashed for Composite ApplicationsData Binding Unleashed for Composite Applications
Data Binding Unleashed for Composite Applications
 
JavaEE6 my way
JavaEE6 my wayJavaEE6 my way
JavaEE6 my way
 
SOA/SCA FraScAti
SOA/SCA FraScAtiSOA/SCA FraScAti
SOA/SCA FraScAti
 
Writing & Using Web Services
Writing & Using Web ServicesWriting & Using Web Services
Writing & Using Web Services
 
Java servlet technology
Java servlet technologyJava servlet technology
Java servlet technology
 
Jsp and jstl
Jsp and jstlJsp and jstl
Jsp and jstl
 
JavaOne India 2011 - Servlets 3.0
JavaOne India 2011 - Servlets 3.0JavaOne India 2011 - Servlets 3.0
JavaOne India 2011 - Servlets 3.0
 
Web container and Apache Tomcat
Web container and Apache TomcatWeb container and Apache Tomcat
Web container and Apache Tomcat
 
Using Istio to Secure & Monitor Your Services
Using Istio to Secure & Monitor Your ServicesUsing Istio to Secure & Monitor Your Services
Using Istio to Secure & Monitor Your Services
 
Stratos Grouping
Stratos GroupingStratos Grouping
Stratos Grouping
 
Apache Stratos Hangout VI
Apache Stratos Hangout VIApache Stratos Hangout VI
Apache Stratos Hangout VI
 
Intro to Rack
Intro to RackIntro to Rack
Intro to Rack
 
Java EE 6 - Deep Dive - Indic Threads, Pune - 2010
Java EE 6 - Deep Dive - Indic Threads, Pune - 2010Java EE 6 - Deep Dive - Indic Threads, Pune - 2010
Java EE 6 - Deep Dive - Indic Threads, Pune - 2010
 
Java EE 6 = Less Code + More Power (Tutorial) [5th IndicThreads Conference O...
Java EE 6 = Less Code + More Power (Tutorial)  [5th IndicThreads Conference O...Java EE 6 = Less Code + More Power (Tutorial)  [5th IndicThreads Conference O...
Java EE 6 = Less Code + More Power (Tutorial) [5th IndicThreads Conference O...
 
Oop2008 RESTful services with GWT and Apache CXF
Oop2008 RESTful services with GWT and Apache CXFOop2008 RESTful services with GWT and Apache CXF
Oop2008 RESTful services with GWT and Apache CXF
 
A sane approach to microservices
A sane approach to microservicesA sane approach to microservices
A sane approach to microservices
 

Plus de Luciano Resende

Plus de Luciano Resende (20)

A Jupyter kernel for Scala and Apache Spark.pdf
A Jupyter kernel for Scala and Apache Spark.pdfA Jupyter kernel for Scala and Apache Spark.pdf
A Jupyter kernel for Scala and Apache Spark.pdf
 
Using Elyra for COVID-19 Analytics
Using Elyra for COVID-19 AnalyticsUsing Elyra for COVID-19 Analytics
Using Elyra for COVID-19 Analytics
 
Elyra - a set of AI-centric extensions to JupyterLab Notebooks.
Elyra - a set of AI-centric extensions to JupyterLab Notebooks.Elyra - a set of AI-centric extensions to JupyterLab Notebooks.
Elyra - a set of AI-centric extensions to JupyterLab Notebooks.
 
From Data to AI - Silicon Valley Open Source projects come to you - Madrid me...
From Data to AI - Silicon Valley Open Source projects come to you - Madrid me...From Data to AI - Silicon Valley Open Source projects come to you - Madrid me...
From Data to AI - Silicon Valley Open Source projects come to you - Madrid me...
 
Ai pipelines powered by jupyter notebooks
Ai pipelines powered by jupyter notebooksAi pipelines powered by jupyter notebooks
Ai pipelines powered by jupyter notebooks
 
Strata - Scaling Jupyter with Jupyter Enterprise Gateway
Strata - Scaling Jupyter with Jupyter Enterprise GatewayStrata - Scaling Jupyter with Jupyter Enterprise Gateway
Strata - Scaling Jupyter with Jupyter Enterprise Gateway
 
Scaling notebooks for Deep Learning workloads
Scaling notebooks for Deep Learning workloadsScaling notebooks for Deep Learning workloads
Scaling notebooks for Deep Learning workloads
 
Jupyter Enterprise Gateway Overview
Jupyter Enterprise Gateway OverviewJupyter Enterprise Gateway Overview
Jupyter Enterprise Gateway Overview
 
Inteligencia artificial, open source e IBM Call for Code
Inteligencia artificial, open source e IBM Call for CodeInteligencia artificial, open source e IBM Call for Code
Inteligencia artificial, open source e IBM Call for Code
 
IoT Applications and Patterns using Apache Spark & Apache Bahir
IoT Applications and Patterns using Apache Spark & Apache BahirIoT Applications and Patterns using Apache Spark & Apache Bahir
IoT Applications and Patterns using Apache Spark & Apache Bahir
 
Getting insights from IoT data with Apache Spark and Apache Bahir
Getting insights from IoT data with Apache Spark and Apache BahirGetting insights from IoT data with Apache Spark and Apache Bahir
Getting insights from IoT data with Apache Spark and Apache Bahir
 
Open Source AI - News and examples
Open Source AI - News and examplesOpen Source AI - News and examples
Open Source AI - News and examples
 
Building analytical microservices powered by jupyter kernels
Building analytical microservices powered by jupyter kernelsBuilding analytical microservices powered by jupyter kernels
Building analytical microservices powered by jupyter kernels
 
Building iot applications with Apache Spark and Apache Bahir
Building iot applications with Apache Spark and Apache BahirBuilding iot applications with Apache Spark and Apache Bahir
Building iot applications with Apache Spark and Apache Bahir
 
An Enterprise Analytics Platform with Jupyter Notebooks and Apache Spark
An Enterprise Analytics Platform with Jupyter Notebooks and Apache SparkAn Enterprise Analytics Platform with Jupyter Notebooks and Apache Spark
An Enterprise Analytics Platform with Jupyter Notebooks and Apache Spark
 
The Analytic Platform behind IBM’s Watson Data Platform - Big Data Spain 2017
The Analytic Platform behind IBM’s Watson Data Platform - Big Data Spain 2017The Analytic Platform behind IBM’s Watson Data Platform - Big Data Spain 2017
The Analytic Platform behind IBM’s Watson Data Platform - Big Data Spain 2017
 
What's new in Apache SystemML - Declarative Machine Learning
What's new in Apache SystemML  - Declarative Machine LearningWhat's new in Apache SystemML  - Declarative Machine Learning
What's new in Apache SystemML - Declarative Machine Learning
 
Big analytics meetup - Extended Jupyter Kernel Gateway
Big analytics meetup - Extended Jupyter Kernel GatewayBig analytics meetup - Extended Jupyter Kernel Gateway
Big analytics meetup - Extended Jupyter Kernel Gateway
 
Jupyter con meetup extended jupyter kernel gateway
Jupyter con meetup   extended jupyter kernel gatewayJupyter con meetup   extended jupyter kernel gateway
Jupyter con meetup extended jupyter kernel gateway
 
Asf icfoss-mentoring
Asf icfoss-mentoringAsf icfoss-mentoring
Asf icfoss-mentoring
 

Dernier

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 

Dernier (20)

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 

S314011 - Developing Composite Applications for the Cloud with Apache Tuscany

  • 1. IBM Software Group 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
  • 2. 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
  • 3. IBM Software Group Cloud Computing 3 http://tuscany.apache.org
  • 4. 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
  • 5. 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
  • 6. IBM Software Group What is SCA ? 6 http://tuscany.apache.org
  • 7. 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
  • 8. 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
  • 9. 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
  • 10. 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"/> </component> http jsonrpc <component name="Catalog"> Currency 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
  • 11. 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
  • 12. IBM Software Group SCA – if you like Java annotations @Remotable Component Account public interface AccountService { 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
  • 13. IBM Software Group SCA – if you like to click around •  Eclipse STP Tools project provides SCA tooling 13 http://tuscany.apache.org
  • 14. IBM Software Group SCA – Typical Scenarios 14 http://tuscany.apache.org
  • 15. 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"/> </service> Store <reference name="catalog" target="Catalog"/> jsonrpc <reference name="shoppingCart" target="ShoppingCart/Cart"/> Total <reference name="shoppingTotal" target="ShoppingCart/Total"/> currencyCode=USD </component> <component name="Catalog"> jsonrpc <implementation.java class="services.FruitsCatalogImpl"/> Currency <property name="currencyCode">USD</property> Catalog 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
  • 16. IBM Software Group Gateway / Mediation Service Gateway jsonrpc <composite xmlns=http://docs.oasis-open.org/ns/opencsa/sca/ ShoppingCart 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 16 http://tuscany.apache.org
  • 17. 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 uri="http://feeds.feedburner.com/blogspot/Dcni?format=xml"/> Aggregator </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
  • 18. IBM Software Group Business Integration – Travel Booking Process JEE Components POJOs Spring Assemblies Scripting Components BPEL Processes 18 http://tuscany.apache.org
  • 19. IBM Software Group Apache Tuscany 19 http://tuscany.apache.org
  • 20. 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
  • 21. 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
  • 22. IBM Software Group Tuscany Demo – SCA Component Wiring Configuration Repository Fruit Catalog ((Native)) store Tuscany Runtime Currency Schell Converter Fruit Catalog currencyCode=USD ((Python)) Catalog jsonrpc Fruit Catalog (Java) 22 http://tuscany.apache.org
  • 23. IBM Software Group Apache Nuvem Components for the Cloud 23 http://tuscany.apache.org
  • 24. 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
  • 25. 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
  • 26. 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
  • 27. 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
  • 28. 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
  • 29. IBM Software Group Cloud Components  What's your wish list? 29 http://tuscany.apache.org
  • 30. IBM Software Group Getting Involved with Apache Tuscany 30 http://tuscany.apache.org
  • 31. 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
  • 32. 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
  • 33. IBM Software Group Getting Involved with Apache Nuvem 33 http://tuscany.apache.org
  • 34. 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
  • 35. IBM Software Group Thank You !!! 35 http://tuscany.apache.org