SlideShare a Scribd company logo
IBM Software Group
1
http://tuscany.apache.org
High Performance Cloud-enabled SCA
Runtimes
Luciano Resende
lresende@apache.org
http://lresende.blogspot.com
Jean-Sebastien Delfino
jsdelfino@apache.org
http://jsdelfino.blogspot.com
IBM Software Group
2
http://tuscany.apache.org
Agenda
 SCA – Not just one Runtime
 Apache Tuscany and Sub-Projects
 SCA C++ Runtime
– Usage Scenarios
– How It Works
– Utility Components
– Demo
 SCA Python Runtime
 Usage Scenarios
 How It Works
 Demo
 Getting Involved
IBM Software Group
3
http://tuscany.apache.org
SCA – Not Just One Monolithic Runtime
IBM Software Group
4
http://tuscany.apache.org
Assembly
Implementation
Languages
Policy Framework Bindings
Java Java EE
Spring
C++
BPEL
Security
RM
Transactions
Web services
JMS
JCA
SCA Specifications
• SCA is going through a formal standardization process at
OASIS OpenCSA (http://www.oasis-opencsa.org)
IBM Software Group
5
http://tuscany.apache.org
OASIS Open CSA - http://www.oasis-opencsa.org/
IBM Software Group
6
http://tuscany.apache.org
SCA Assembly Model
Composite A
Component
AService
Service Binding
Web Service
JMS
SLSB
Rest
JSONRPC
JCA
…
Reference Binding
Web Service
JMS
SLSB
Rest
JSONRPC
JCA
…
Component
B
Service Interface
- Java
- WSDL
Reference Interface
Reference
property setting
Property
promotepromote wire
Implementation
Java
BPEL
PHP
SCA composite
Spring
EJB module
C
C++
Python
...
- Java
- WSDL
IBM Software Group
7
http://tuscany.apache.org
SCA Domain
A common assembly model
A distributed deployment
of the assembly
SCA nodes can use different
specialized runtimes, optimized
for specific component types
Java
JEE
BPEL
C / C++
Python
PHP
etc
IBM Software Group
8
http://tuscany.apache.org
Apache Tuscany
 Apache Tuscany provides a component based programming model
which simplifies development, assembly and deployment and
management of composite applications.
 Apache Tuscany implements SCA standards defined by OASIS
OpenCSA + extensions based on community feedback.
8
IBM Software Group
9
http://tuscany.apache.org
Tuscany SCA Native - C++ Runtime
IBM Software Group
10
http://tuscany.apache.org
SCA Native Runtime – Usage Scenarios
• Components written in Python or C++
• Integrated with HTTPD
• High Throughput and Scalable
– Stateless components
– Load balancing (mod_proxy_balancer)
• Small disk and memory footprint
– no JVM, not a lot of code, most dependencies optional
• Built-in Security
– HTTPS, OpenID, Oauth 1+2, mod_auth*
• HTTP-based Protocol Bindings
– JSON-RPC, ATOM + RSS
• Easy install + configuration + reconfiguration
• Multi-tenant
– currently using HTTPD mass dynamic virtual hosting
IBM Software Group
11
http://tuscany.apache.org
A Useful Subset of SCA
• Subset of SCA
– Simple one level assembly (no recursive composition)
– Simple wiring (no autowiring, no multiplicity)
– String-only properties
– No Policies
– No SCDL Includes
– No SCDL validation
– Stateless components, parameter injection only
– One SCA contribution directory per Runtime Instance
• Still Useful and Usable
– Runs apps similar to Tuscany Store / ShoppingCart Tutorial
– Same Python components run on
• Tuscany / Java
• Tuscany / C++
• Tuscany / Python
IBM Software Group
12
http://tuscany.apache.org
Sample Online Store App
Store
Catalog
Currency
Converter
currencyCode=USD
jsonrpc
ShoppingCart
atom
jsonrpc
Cart
Total
IBM Software Group
13
http://tuscany.apache.org
Sample Composite
<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" … >
...
<component name="Catalog">
<t:implementation.python script="fruits-catalog.py"/>
<property name="currencyCode">USD</property>
<service name="Catalog">
<t:binding.jsonrpc uri="catalog"/>
</service>
<reference name="currencyConverter" target="CurrencyConverter"/>
</component>
<component name="ShoppingCart">
<t:implementation.python script="shopping-cart.py"/>
<service name="ShoppingCart">
<t:binding.atom uri="shoppingCart"/>
</service>
<service name="Total">
<t:binding.jsonrpc uri="total"/>
</service>
<reference name="cache" target="Cache"/>
</component>
<component name="CurrencyConverter">
<t:implementation.python script="currency-converter.py"/>
<service name="CurrencyConverter">
<t:binding.jsonrpc uri="currencyConverter"/>
</service>
</component>
</composite>
IBM Software Group
14
http://tuscany.apache.org
Sample Python Components
fruits-catalog.py
def items(converter, currency):
def convert(price):
return converter.convert("USD", currency, price)
symbol = converter.symbol(currency)
return (
(("'name", "Mango"), ("'currency", currency), ("'currencySymbol", symbol), ("'price", convert(2.99))),
(("'name", "Passion"), ("'currency", currency), ("'currencySymbol", symbol), ("'price", convert(3.55))),
(("'name", "Kiwi"), ("'currency", currency), ("'currencySymbol", symbol), ("'price", convert(1.55))))
store.py
def getall(catalog, shoppingCart, shoppingTotal):
return shoppingCart.getall()
def get(id, catalog, shoppingCart, shoppingTotal):
return shoppingCart.get(id)
def items(catalog, shoppingCart, shoppingTotal):
return catalog.items()
def total(catalog, shoppingCart, shoppingTotal):
return shoppingCart.gettotal()
IBM Software Group
15
http://tuscany.apache.org
How It Works
HTTPD
mod_wiring
mod_eval_cpp
mod_eval_python
curl
libxml2
apr json
oauth
openid
Store
Catalog
Currency
Converter
http
currencyCode=USD
jsonrpc
ShoppingCart
atom
jsonrpc
Collection
Total
IBM Software Group
16
http://tuscany.apache.org
Utility Components
• All these components are optional
• You just drop them in your SCA assembly as needed
• Simpler than having more built-in stuff in core SCA?
• Cache component using Memcached
• Log component using Facebook Scribe
• Queue component using Apache Qpid/C
• SQL DB component using PostgreSQL
• Web Service component using Axis2/C
• Key / value store component
• XMPP Chat component
• ...
IBM Software Group
17
http://tuscany.apache.org
Demo
• SCA Native Project Layout
• Samples
– C++ Store / Shopping Cart app
– Python Store / Shopping Cart app
– Multi-tenant app
IBM Software Group
18
http://tuscany.apache.org
SCA Python Runtime – Usage Scenarios
• Components written in Python
• Run on Google AppEngine
• Run on a Python WSGI Server
• Lightweight with very little code
• Stateless
• JSON-RPC, ATOM, RSS Bindings
• Same Programming Model as SCA Native runtime
IBM Software Group
19
http://tuscany.apache.org
How It Works
Google AppEngine
wiring eval httplib
xml etree
jsonusers
Store
Catalog
Currency
Converter
http
currencyCode=USD
jsonrpc
ShoppingCart
atom
jsonrpc
Collection
Total
Python WSGI
IBM Software Group
20
http://tuscany.apache.org
Demo
• Store / Shopping Cart app on Google AppEngine
IBM Software Group
21
http://tuscany.apache.org
Getting Involved
with Apache Tuscany
IBM Software Group
22
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
23
http://tuscany.apache.org
Apache Tuscany Resources
 Apache Tuscany
 http://tuscany.apache.org
 Getting Involved
 http://tuscany.apache.org/getting-involved.html
 Tuscany Dashboard
 http://tuscany.apache.org/tuscany-dashboard.html
IBM Software Group
24
http://tuscany.apache.org
Getting Involved
with Apache Nuvem
IBM Software Group
25
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
26
http://tuscany.apache.org
Thank You !!!

More Related Content

PDF
ApacheCon NA 2010 - Building Apps with Apache Tuscany
PDF
SCA Reaches the Cloud
PDF
Laravel tutorial
PPTX
Getting started with laravel
PPTX
Laravel development (Laravel History, Environment Setup & Laravel Installatio...
PPT
Lamp
PPTX
Laravel Tutorial PPT
PPTX
Phalcon 2 High Performance APIs - DevWeekPOA 2015
ApacheCon NA 2010 - Building Apps with Apache Tuscany
SCA Reaches the Cloud
Laravel tutorial
Getting started with laravel
Laravel development (Laravel History, Environment Setup & Laravel Installatio...
Lamp
Laravel Tutorial PPT
Phalcon 2 High Performance APIs - DevWeekPOA 2015

What's hot (19)

PPTX
Laravel overview
PPTX
Introduction to laravel framework
PDF
Laravel 5.4
PDF
Installing and Getting Started with Alfresco
PPT
Php Asp Net Interoperability Rc Jao
ODP
Projects In Laravel : Learn Laravel Building 10 Projects
PPTX
Laravel ppt
PDF
Flows for APEX
PDF
AWS Observability Made Simple
PPTX
A introduction to Laravel framework
PDF
Laravel (8) php_framework_handbook__start_from_zer_18604872_(z-lib.org)
ODP
Jazoon2010 - Edgar Silva - Open source SOA on Steroids
PDF
What is LAMP?
PPTX
開放原始碼 Ch1.2 intro - oss - apahce foundry (ver 2.0)
PDF
Spring In Alfresco Ecm
PPTX
API Development with Laravel
PDF
APEX richtig installieren und konfigurieren
PDF
Native REST Web Services with Oracle 11g
PDF
Laravel and CodeIgniter: pros & cons
Laravel overview
Introduction to laravel framework
Laravel 5.4
Installing and Getting Started with Alfresco
Php Asp Net Interoperability Rc Jao
Projects In Laravel : Learn Laravel Building 10 Projects
Laravel ppt
Flows for APEX
AWS Observability Made Simple
A introduction to Laravel framework
Laravel (8) php_framework_handbook__start_from_zer_18604872_(z-lib.org)
Jazoon2010 - Edgar Silva - Open source SOA on Steroids
What is LAMP?
開放原始碼 Ch1.2 intro - oss - apahce foundry (ver 2.0)
Spring In Alfresco Ecm
API Development with Laravel
APEX richtig installieren und konfigurieren
Native REST Web Services with Oracle 11g
Laravel and CodeIgniter: pros & cons
Ad

Viewers also liked (7)

PPTX
Presentation1
PDF
03 leitor
PDF
ApacheCon NA 2010 - Developing Composite Apps for the Cloud with Apache Tuscany
PDF
GRALHA AZUL no. 57 - JANEIRO 2016
PPT
Job analysis
PDF
Succession “Losers”: What Happens to Executives Passed Over for the CEO Job?
PDF
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
Presentation1
03 leitor
ApacheCon NA 2010 - Developing Composite Apps for the Cloud with Apache Tuscany
GRALHA AZUL no. 57 - JANEIRO 2016
Job analysis
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
Ad

Similar to ApacheCon NA 2010 - High Performance Cloud-enabled SCA Runtimes (20)

PPT
Extending Piwik At R7.com
PDF
IBM Think Session 8598 Domino and JavaScript Development MasterClass
PPT
AWS (Hadoop) Meetup 30.04.09
PPTX
The next step from Microsoft - Vnext (Srdjan Poznic)
PDF
Data Summer Conf 2018, “Building unified Batch and Stream processing pipeline...
PPTX
Google Cloud Platform, Compute Engine, and App Engine
ODP
High Performance Web Sites
PDF
Dark launching with Consul at Hootsuite - Bill Monkman
PDF
Building RESTful services using SCA and JAX-RS
PDF
Cloudy in Indonesia: Java and Cloud
PPTX
Meetup callback
PPTX
Containerdays Intro to Habitat
PDF
"Wie passen Serverless & Autonomous zusammen?"
KEY
Deploying Plack Web Applications: OSCON 2011
PPTX
Spring Cloud Services with Pivotal Cloud Foundry- Gokhan Goksu
PPTX
Ansible benelux meetup - Amsterdam 27-5-2015
PPTX
Introducción al SharePoint Framework SPFx
PPTX
NetflixOSS for Triangle Devops Oct 2013
PPTX
muCon 2017 - 12 Factor Serverless Applications
PDF
Google app-engine-cloudcamplagos2011
Extending Piwik At R7.com
IBM Think Session 8598 Domino and JavaScript Development MasterClass
AWS (Hadoop) Meetup 30.04.09
The next step from Microsoft - Vnext (Srdjan Poznic)
Data Summer Conf 2018, “Building unified Batch and Stream processing pipeline...
Google Cloud Platform, Compute Engine, and App Engine
High Performance Web Sites
Dark launching with Consul at Hootsuite - Bill Monkman
Building RESTful services using SCA and JAX-RS
Cloudy in Indonesia: Java and Cloud
Meetup callback
Containerdays Intro to Habitat
"Wie passen Serverless & Autonomous zusammen?"
Deploying Plack Web Applications: OSCON 2011
Spring Cloud Services with Pivotal Cloud Foundry- Gokhan Goksu
Ansible benelux meetup - Amsterdam 27-5-2015
Introducción al SharePoint Framework SPFx
NetflixOSS for Triangle Devops Oct 2013
muCon 2017 - 12 Factor Serverless Applications
Google app-engine-cloudcamplagos2011

Recently uploaded (20)

PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Modernizing your data center with Dell and AMD
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Electronic commerce courselecture one. Pdf
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Machine learning based COVID-19 study performance prediction
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Encapsulation theory and applications.pdf
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
Agricultural_Statistics_at_a_Glance_2022_0.pdf
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Diabetes mellitus diagnosis method based random forest with bat algorithm
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
20250228 LYD VKU AI Blended-Learning.pptx
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Reach Out and Touch Someone: Haptics and Empathic Computing
Modernizing your data center with Dell and AMD
The AUB Centre for AI in Media Proposal.docx
Electronic commerce courselecture one. Pdf
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
MYSQL Presentation for SQL database connectivity
Encapsulation_ Review paper, used for researhc scholars
Network Security Unit 5.pdf for BCA BBA.
Machine learning based COVID-19 study performance prediction
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
The Rise and Fall of 3GPP – Time for a Sabbatical?
Encapsulation theory and applications.pdf

ApacheCon NA 2010 - High Performance Cloud-enabled SCA Runtimes