SlideShare una empresa de Scribd logo
1 de 35
Descargar para leer sin conexión
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
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
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 and down
 Agile, reconfigure applications
as business evolves
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?
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 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
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
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
- …
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>
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);
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;
}
…
}
IBM Software Group
13
http://tuscany.apache.org
SCA – if you like to click around
• Eclipse STP Tools project provides SCA tooling
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/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
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
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>
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
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 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
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!
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
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 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!
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?
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
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
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
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/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
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
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/
 Getting Involved
 http://incubator.apache.org/nuvem/nuvem-getting-involved.html
IBM Software Group
35
http://tuscany.apache.org
Thank You !!!

Más contenido relacionado

La actualidad más candente

Introduction to laravel framework
Introduction to laravel frameworkIntroduction to laravel framework
Introduction to laravel frameworkAhmad Fatoni
 
Installing and Getting Started with Alfresco
Installing and Getting Started with AlfrescoInstalling and Getting Started with Alfresco
Installing and Getting Started with AlfrescoWildan Maulana
 
Projects In Laravel : Learn Laravel Building 10 Projects
Projects In Laravel : Learn Laravel Building 10 ProjectsProjects In Laravel : Learn Laravel Building 10 Projects
Projects In Laravel : Learn Laravel Building 10 ProjectsSam Dias
 
Php Asp Net Interoperability Rc Jao
Php Asp Net Interoperability Rc JaoPhp Asp Net Interoperability Rc Jao
Php Asp Net Interoperability Rc Jaojedt
 
Laravel (8) php_framework_handbook__start_from_zer_18604872_(z-lib.org)
Laravel (8) php_framework_handbook__start_from_zer_18604872_(z-lib.org)Laravel (8) php_framework_handbook__start_from_zer_18604872_(z-lib.org)
Laravel (8) php_framework_handbook__start_from_zer_18604872_(z-lib.org)ssuser337865
 
AWS Observability Made Simple
AWS Observability Made SimpleAWS Observability Made Simple
AWS Observability Made SimpleLuciano Mammino
 
A introduction to Laravel framework
A introduction to Laravel frameworkA introduction to Laravel framework
A introduction to Laravel frameworkPhu Luong Trong
 
Jazoon2010 - Edgar Silva - Open source SOA on Steroids
Jazoon2010 - Edgar Silva - Open source SOA on SteroidsJazoon2010 - Edgar Silva - Open source SOA on Steroids
Jazoon2010 - Edgar Silva - Open source SOA on SteroidsEdgar Silva
 
開放原始碼 Ch1.2 intro - oss - apahce foundry (ver 2.0)
開放原始碼 Ch1.2   intro - oss - apahce foundry (ver 2.0)開放原始碼 Ch1.2   intro - oss - apahce foundry (ver 2.0)
開放原始碼 Ch1.2 intro - oss - apahce foundry (ver 2.0)My own sweet home!
 
APEX richtig installieren und konfigurieren
APEX richtig installieren und konfigurierenAPEX richtig installieren und konfigurieren
APEX richtig installieren und konfigurierenOliver Lemm
 
Native REST Web Services with Oracle 11g
Native REST Web Services with Oracle 11gNative REST Web Services with Oracle 11g
Native REST Web Services with Oracle 11gMarcelo Ochoa
 
API Development with Laravel
API Development with LaravelAPI Development with Laravel
API Development with LaravelMichael Peacock
 
FOSSASIA 2015: MySQL Group Replication
FOSSASIA 2015: MySQL Group ReplicationFOSSASIA 2015: MySQL Group Replication
FOSSASIA 2015: MySQL Group ReplicationShivji Kumar Jha
 

La actualidad más candente (19)

Laravel overview
Laravel overviewLaravel overview
Laravel overview
 
Introduction to laravel framework
Introduction to laravel frameworkIntroduction to laravel framework
Introduction to laravel framework
 
Laravel 5.4
Laravel 5.4 Laravel 5.4
Laravel 5.4
 
Installing and Getting Started with Alfresco
Installing and Getting Started with AlfrescoInstalling and Getting Started with Alfresco
Installing and Getting Started with Alfresco
 
Projects In Laravel : Learn Laravel Building 10 Projects
Projects In Laravel : Learn Laravel Building 10 ProjectsProjects In Laravel : Learn Laravel Building 10 Projects
Projects In Laravel : Learn Laravel Building 10 Projects
 
Php Asp Net Interoperability Rc Jao
Php Asp Net Interoperability Rc JaoPhp Asp Net Interoperability Rc Jao
Php Asp Net Interoperability Rc Jao
 
Laravel ppt
Laravel pptLaravel ppt
Laravel ppt
 
Flows for APEX
Flows for APEXFlows for APEX
Flows for APEX
 
Laravel (8) php_framework_handbook__start_from_zer_18604872_(z-lib.org)
Laravel (8) php_framework_handbook__start_from_zer_18604872_(z-lib.org)Laravel (8) php_framework_handbook__start_from_zer_18604872_(z-lib.org)
Laravel (8) php_framework_handbook__start_from_zer_18604872_(z-lib.org)
 
AWS Observability Made Simple
AWS Observability Made SimpleAWS Observability Made Simple
AWS Observability Made Simple
 
A introduction to Laravel framework
A introduction to Laravel frameworkA introduction to Laravel framework
A introduction to Laravel framework
 
Jazoon2010 - Edgar Silva - Open source SOA on Steroids
Jazoon2010 - Edgar Silva - Open source SOA on SteroidsJazoon2010 - Edgar Silva - Open source SOA on Steroids
Jazoon2010 - Edgar Silva - Open source SOA on Steroids
 
What is LAMP?
What is LAMP?What is LAMP?
What is LAMP?
 
開放原始碼 Ch1.2 intro - oss - apahce foundry (ver 2.0)
開放原始碼 Ch1.2   intro - oss - apahce foundry (ver 2.0)開放原始碼 Ch1.2   intro - oss - apahce foundry (ver 2.0)
開放原始碼 Ch1.2 intro - oss - apahce foundry (ver 2.0)
 
APEX richtig installieren und konfigurieren
APEX richtig installieren und konfigurierenAPEX richtig installieren und konfigurieren
APEX richtig installieren und konfigurieren
 
Native REST Web Services with Oracle 11g
Native REST Web Services with Oracle 11gNative REST Web Services with Oracle 11g
Native REST Web Services with Oracle 11g
 
API Development with Laravel
API Development with LaravelAPI Development with Laravel
API Development with Laravel
 
FOSSASIA 2015: MySQL Group Replication
FOSSASIA 2015: MySQL Group ReplicationFOSSASIA 2015: MySQL Group Replication
FOSSASIA 2015: MySQL Group Replication
 
Spring In Alfresco Ecm
Spring In Alfresco EcmSpring In Alfresco Ecm
Spring In Alfresco Ecm
 

Destacado

Presentation1
Presentation1Presentation1
Presentation1118247
 
ApacheCon NA 2010 - High Performance Cloud-enabled SCA Runtimes
ApacheCon NA 2010 - High Performance Cloud-enabled SCA RuntimesApacheCon NA 2010 - High Performance Cloud-enabled SCA Runtimes
ApacheCon NA 2010 - High Performance Cloud-enabled SCA RuntimesJean-Sebastien Delfino
 
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 TuscanyJean-Sebastien Delfino
 
GRALHA AZUL no. 57 - JANEIRO 2016
GRALHA AZUL no. 57 - JANEIRO 2016GRALHA AZUL no. 57 - JANEIRO 2016
GRALHA AZUL no. 57 - JANEIRO 2016Sérgio Pitaki
 
аксіоми стереометрії та наслідки з них 10 кл.додаток
аксіоми стереометрії та наслідки з них 10 кл.додатокаксіоми стереометрії та наслідки з них 10 кл.додаток
аксіоми стереометрії та наслідки з них 10 кл.додатокНаташа Иванякова
 
урок узагальнення по темі - геометричні фігури
  урок узагальнення по темі - геометричні фігури  урок узагальнення по темі - геометричні фігури
урок узагальнення по темі - геометричні фігуриНаташа Иванякова
 
симетрія(додаток до уроку в 9 кл.)
симетрія(додаток до уроку в 9 кл.)симетрія(додаток до уроку в 9 кл.)
симетрія(додаток до уроку в 9 кл.)Наташа Иванякова
 
розвязування задач і вправ з теми вписані і описані чотирикутники,8кл.
розвязування задач і вправ з теми вписані і описані чотирикутники,8кл.розвязування задач і вправ з теми вписані і описані чотирикутники,8кл.
розвязування задач і вправ з теми вписані і описані чотирикутники,8кл.Наташа Иванякова
 
нетрадиційні форми організації занять з иатематики
нетрадиційні форми організації занять з иатематикинетрадиційні форми організації занять з иатематики
нетрадиційні форми організації занять з иатематикиНаташа Иванякова
 
цикл уроків з теми перпендикулярність прямих і площин
цикл уроків з теми перпендикулярність прямих і площинцикл уроків з теми перпендикулярність прямих і площин
цикл уроків з теми перпендикулярність прямих і площинНаташа Иванякова
 
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika AldabaLightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldabaux singapore
 

Destacado (20)

03 leitor
03 leitor03 leitor
03 leitor
 
Presentation1
Presentation1Presentation1
Presentation1
 
ApacheCon NA 2010 - High Performance Cloud-enabled SCA Runtimes
ApacheCon NA 2010 - High Performance Cloud-enabled SCA RuntimesApacheCon NA 2010 - High Performance Cloud-enabled SCA Runtimes
ApacheCon NA 2010 - High Performance Cloud-enabled SCA Runtimes
 
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
 
GRALHA AZUL no. 57 - JANEIRO 2016
GRALHA AZUL no. 57 - JANEIRO 2016GRALHA AZUL no. 57 - JANEIRO 2016
GRALHA AZUL no. 57 - JANEIRO 2016
 
Job analysis
Job analysisJob analysis
Job analysis
 
аксіоми стереометрії та наслідки з них 10 кл.додаток
аксіоми стереометрії та наслідки з них 10 кл.додатокаксіоми стереометрії та наслідки з них 10 кл.додаток
аксіоми стереометрії та наслідки з них 10 кл.додаток
 
алгебра 8 кл.
алгебра 8 кл.алгебра 8 кл.
алгебра 8 кл.
 
урок –гра
урок –граурок –гра
урок –гра
 
++++опис досвіду роботи
++++опис досвіду  роботи++++опис досвіду  роботи
++++опис досвіду роботи
 
вислови про математику
вислови про математикувислови про математику
вислови про математику
 
геометричн ф_гури-завдання
 геометричн  ф_гури-завдання геометричн  ф_гури-завдання
геометричн ф_гури-завдання
 
урок узагальнення по темі - геометричні фігури
  урок узагальнення по темі - геометричні фігури  урок узагальнення по темі - геометричні фігури
урок узагальнення по темі - геометричні фігури
 
симетрія(додаток до уроку в 9 кл.)
симетрія(додаток до уроку в 9 кл.)симетрія(додаток до уроку в 9 кл.)
симетрія(додаток до уроку в 9 кл.)
 
розвязування задач і вправ з теми вписані і описані чотирикутники,8кл.
розвязування задач і вправ з теми вписані і описані чотирикутники,8кл.розвязування задач і вправ з теми вписані і описані чотирикутники,8кл.
розвязування задач і вправ з теми вписані і описані чотирикутники,8кл.
 
нетрадиційні форми організації занять з иатематики
нетрадиційні форми організації занять з иатематикинетрадиційні форми організації занять з иатематики
нетрадиційні форми організації занять з иатематики
 
цикл уроків з теми перпендикулярність прямих і площин
цикл уроків з теми перпендикулярність прямих і площинцикл уроків з теми перпендикулярність прямих і площин
цикл уроків з теми перпендикулярність прямих і площин
 
метеоритний дощ
метеоритний дощметеоритний дощ
метеоритний дощ
 
Succession “Losers”: What Happens to Executives Passed Over for the CEO Job?
Succession “Losers”: What Happens to Executives Passed Over for the CEO Job? Succession “Losers”: What Happens to Executives Passed Over for the CEO Job?
Succession “Losers”: What Happens to Executives Passed Over for the CEO Job?
 
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika AldabaLightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
 

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

Fowa Miami 09 Cloud Computing Workshop
Fowa Miami 09 Cloud Computing WorkshopFowa Miami 09 Cloud Computing Workshop
Fowa Miami 09 Cloud Computing WorkshopMark Masterson
 
Maxim Salnikov - Service Worker: taking the best from the past experience for...
Maxim Salnikov - Service Worker: taking the best from the past experience for...Maxim Salnikov - Service Worker: taking the best from the past experience for...
Maxim Salnikov - Service Worker: taking the best from the past experience for...Codemotion
 
NDC 2011 - Let me introduce my Moncai
NDC 2011 - Let me introduce my MoncaiNDC 2011 - Let me introduce my Moncai
NDC 2011 - Let me introduce my Moncaimoncai
 
Mueller bacdjuly2012privatepaaswithstackato-120712154134-phpapp01
Mueller bacdjuly2012privatepaaswithstackato-120712154134-phpapp01Mueller bacdjuly2012privatepaaswithstackato-120712154134-phpapp01
Mueller bacdjuly2012privatepaaswithstackato-120712154134-phpapp01Accenture
 
Building apps with tuscany
Building apps with tuscanyBuilding apps with tuscany
Building apps with tuscanyLuciano Resende
 
Cloud State of the Union for Java Developers
Cloud State of the Union for Java DevelopersCloud State of the Union for Java Developers
Cloud State of the Union for Java DevelopersBurr Sutter
 
Extending DevOps to Big Data Applications with Kubernetes
Extending DevOps to Big Data Applications with KubernetesExtending DevOps to Big Data Applications with Kubernetes
Extending DevOps to Big Data Applications with KubernetesNicola Ferraro
 
Carrying Enterprise on a Little Camel
Carrying Enterprise on a Little CamelCarrying Enterprise on a Little Camel
Carrying Enterprise on a Little CamelDimitry Pletnikov
 
Introduction to Apache CloudStack by David Nalley
Introduction to Apache CloudStack by David NalleyIntroduction to Apache CloudStack by David Nalley
Introduction to Apache CloudStack by David Nalleybuildacloud
 
Current state of affairs cloud computing
Current state of affairs   cloud computingCurrent state of affairs   cloud computing
Current state of affairs cloud computingChirag Jog
 
OSGi for real in the enterprise: Apache Karaf - NLJUG J-FALL 2010
OSGi for real in the enterprise: Apache Karaf - NLJUG J-FALL 2010OSGi for real in the enterprise: Apache Karaf - NLJUG J-FALL 2010
OSGi for real in the enterprise: Apache Karaf - NLJUG J-FALL 2010Adrian Trenaman
 
OpenStack for VMware Administrators
OpenStack for VMware AdministratorsOpenStack for VMware Administrators
OpenStack for VMware AdministratorsTrevor Roberts Jr.
 
S314011 - Developing Composite Applications for the Cloud with Apache Tuscany
S314011 - Developing Composite Applications for the Cloud with Apache TuscanyS314011 - Developing Composite Applications for the Cloud with Apache Tuscany
S314011 - Developing Composite Applications for the Cloud with Apache TuscanyLuciano Resende
 
Mythical Mysfits: Monolith to Microservices with Docker and Fargate - MAD305 ...
Mythical Mysfits: Monolith to Microservices with Docker and Fargate - MAD305 ...Mythical Mysfits: Monolith to Microservices with Docker and Fargate - MAD305 ...
Mythical Mysfits: Monolith to Microservices with Docker and Fargate - MAD305 ...Amazon Web Services
 
Cloud-powered Continuous Integration and Deployment architectures - Jinesh Varia
Cloud-powered Continuous Integration and Deployment architectures - Jinesh VariaCloud-powered Continuous Integration and Deployment architectures - Jinesh Varia
Cloud-powered Continuous Integration and Deployment architectures - Jinesh VariaAmazon Web Services
 
Web application penetration testing lab setup guide
Web application penetration testing lab setup guideWeb application penetration testing lab setup guide
Web application penetration testing lab setup guideSudhanshu Chauhan
 
Best Practices for Middleware and Integration Architecture Modernization with...
Best Practices for Middleware and Integration Architecture Modernization with...Best Practices for Middleware and Integration Architecture Modernization with...
Best Practices for Middleware and Integration Architecture Modernization with...Claus Ibsen
 

Similar a ApacheCon NA 2010 - Developing Composite Apps for the Cloud with Apache Tuscany (20)

Fowa Miami 09 Cloud Computing Workshop
Fowa Miami 09 Cloud Computing WorkshopFowa Miami 09 Cloud Computing Workshop
Fowa Miami 09 Cloud Computing Workshop
 
Maxim Salnikov - Service Worker: taking the best from the past experience for...
Maxim Salnikov - Service Worker: taking the best from the past experience for...Maxim Salnikov - Service Worker: taking the best from the past experience for...
Maxim Salnikov - Service Worker: taking the best from the past experience for...
 
NDC 2011 - Let me introduce my Moncai
NDC 2011 - Let me introduce my MoncaiNDC 2011 - Let me introduce my Moncai
NDC 2011 - Let me introduce my Moncai
 
Mueller bacdjuly2012privatepaaswithstackato-120712154134-phpapp01
Mueller bacdjuly2012privatepaaswithstackato-120712154134-phpapp01Mueller bacdjuly2012privatepaaswithstackato-120712154134-phpapp01
Mueller bacdjuly2012privatepaaswithstackato-120712154134-phpapp01
 
Building apps with tuscany
Building apps with tuscanyBuilding apps with tuscany
Building apps with tuscany
 
vBACD July 2012 - Deploying Private PaaS with ActiveState Stackato
vBACD July 2012 - Deploying Private PaaS with ActiveState StackatovBACD July 2012 - Deploying Private PaaS with ActiveState Stackato
vBACD July 2012 - Deploying Private PaaS with ActiveState Stackato
 
Cloud State of the Union for Java Developers
Cloud State of the Union for Java DevelopersCloud State of the Union for Java Developers
Cloud State of the Union for Java Developers
 
Eclipse - Single Source;Three Runtimes
Eclipse - Single Source;Three RuntimesEclipse - Single Source;Three Runtimes
Eclipse - Single Source;Three Runtimes
 
Extending DevOps to Big Data Applications with Kubernetes
Extending DevOps to Big Data Applications with KubernetesExtending DevOps to Big Data Applications with Kubernetes
Extending DevOps to Big Data Applications with Kubernetes
 
Carrying Enterprise on a Little Camel
Carrying Enterprise on a Little CamelCarrying Enterprise on a Little Camel
Carrying Enterprise on a Little Camel
 
Introduction to Apache CloudStack by David Nalley
Introduction to Apache CloudStack by David NalleyIntroduction to Apache CloudStack by David Nalley
Introduction to Apache CloudStack by David Nalley
 
Current state of affairs cloud computing
Current state of affairs   cloud computingCurrent state of affairs   cloud computing
Current state of affairs cloud computing
 
OSGi for real in the enterprise: Apache Karaf - NLJUG J-FALL 2010
OSGi for real in the enterprise: Apache Karaf - NLJUG J-FALL 2010OSGi for real in the enterprise: Apache Karaf - NLJUG J-FALL 2010
OSGi for real in the enterprise: Apache Karaf - NLJUG J-FALL 2010
 
OpenStack for VMware Administrators
OpenStack for VMware AdministratorsOpenStack for VMware Administrators
OpenStack for VMware Administrators
 
S314011 - Developing Composite Applications for the Cloud with Apache Tuscany
S314011 - Developing Composite Applications for the Cloud with Apache TuscanyS314011 - Developing Composite Applications for the Cloud with Apache Tuscany
S314011 - Developing Composite Applications for the Cloud with Apache Tuscany
 
Mythical Mysfits: Monolith to Microservices with Docker and Fargate - MAD305 ...
Mythical Mysfits: Monolith to Microservices with Docker and Fargate - MAD305 ...Mythical Mysfits: Monolith to Microservices with Docker and Fargate - MAD305 ...
Mythical Mysfits: Monolith to Microservices with Docker and Fargate - MAD305 ...
 
Cloud-powered Continuous Integration and Deployment architectures - Jinesh Varia
Cloud-powered Continuous Integration and Deployment architectures - Jinesh VariaCloud-powered Continuous Integration and Deployment architectures - Jinesh Varia
Cloud-powered Continuous Integration and Deployment architectures - Jinesh Varia
 
Web application penetration testing lab setup guide
Web application penetration testing lab setup guideWeb application penetration testing lab setup guide
Web application penetration testing lab setup guide
 
NodeJS @ ACS
NodeJS @ ACSNodeJS @ ACS
NodeJS @ ACS
 
Best Practices for Middleware and Integration Architecture Modernization with...
Best Practices for Middleware and Integration Architecture Modernization with...Best Practices for Middleware and Integration Architecture Modernization with...
Best Practices for Middleware and Integration Architecture Modernization with...
 

Último

The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 

Último (20)

The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 

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

  • 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. 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
  • 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. 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?
  • 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. 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. 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. 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. 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. 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. IBM Software Group 13 http://tuscany.apache.org SCA – if you like to click around • Eclipse STP Tools project provides SCA tooling
  • 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. 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. 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. 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
  • 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. 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. 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
  • 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. 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. 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. 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. 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. IBM Software Group 29 http://tuscany.apache.org Cloud Components  What's your wish list?
  • 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. 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
  • 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