SlideShare a Scribd company logo
1 of 114
Download to read offline
Back-end ecosystems
                          for your applications

                                      Claudio Tesoriero
                           @baasbox   Cesare Rocchi
Monday, February 25, 13
Outline
                          • Needs when choosing a backend
                          • Features

                          • Overview of different approaches




                                                               SWIPE CONFERENCE 2012

Monday, February 25, 13
Who am I?



                                      SWIPE CONFERENCE 2012

Monday, February 25, 13
UX designer and developer



                                                SWIPE CONFERENCE 2012

Monday, February 25, 13
Who are you?



                                         SWIPE CONFERENCE 2012

Monday, February 25, 13
Quick version



                                          SWIPE CONFERENCE 2012

Monday, February 25, 13
It’s complicated



                                             SWIPE CONFERENCE 2012

Monday, February 25, 13
Thank you!



                                       SWIPE CONFERENCE 2012

Monday, February 25, 13
App Target
                          • Not apps where mobile is “just a view”
                          • Apps which are inherently mobile

                          • From web to app

                          • App needs a back-end


                                                                     SWIPE CONFERENCE 2012

Monday, February 25, 13
Examples



                                     SWIPE CONFERENCE 2012

Monday, February 25, 13
dayoneapp.com




                                          SWIPE CONFERENCE 2012

Monday, February 25, 13
culturedcode.com/things




                                               SWIPE CONFERENCE 2012

Monday, February 25, 13
Questions



                                      SWIPE CONFERENCE 2012

Monday, February 25, 13
Have I to manage it?



                                                 SWIPE CONFERENCE 2012

Monday, February 25, 13
Have I to manage it?
                          • At which level?
                          • Am I able to do it?

                           • Have I time to learn?

                           • Is it worth it?


                                                     SWIPE CONFERENCE 2012

Monday, February 25, 13
What’s the synch model?



                                               SWIPE CONFERENCE 2012

Monday, February 25, 13
What’s the synch model?
                          • Does it match my goals?
                          • Can I change it if needed?

                          • What about protocols?




                                                         SWIPE CONFERENCE 2012

Monday, February 25, 13
Have I to pay?



                                           SWIPE CONFERENCE 2012

Monday, February 25, 13
Have I to pay?



                                           SWIPE CONFERENCE 2012

Monday, February 25, 13
Who is to pay?



                                           SWIPE CONFERENCE 2012

Monday, February 25, 13
Impact on UX?



                                          SWIPE CONFERENCE 2012

Monday, February 25, 13
Impact on UX?
                          • Does it break any flow?
                          • How frequently?

                          • is it “ok” with that?




                                                     SWIPE CONFERENCE 2012

Monday, February 25, 13
Lock-in?



                                     SWIPE CONFERENCE 2012

Monday, February 25, 13
Lock-in?
                          • How to migrate data?
                          • Switching cost?

                           • Effort

                            • Code front-end
                            • Data compatibility
                           • Cash

                                                   SWIPE CONFERENCE 2012

Monday, February 25, 13
Options
                          • iCloud
                          • Dropbox

                          • Custom

                          • Back-end as a Service (BaaS)


                                                           SWIPE CONFERENCE 2012

Monday, February 25, 13
What is iCloud?



                                            SWIPE CONFERENCE 2012

Monday, February 25, 13
Stores and synchs stuff



                                                SWIPE CONFERENCE 2012

Monday, February 25, 13
It just works ...



                                              SWIPE CONFERENCE 2012

Monday, February 25, 13
... when it works.



                                               SWIPE CONFERENCE 2012

Monday, February 25, 13
SWIPE CONFERENCE 2012

Monday, February 25, 13
SWIPE CONFERENCE 2012

Monday, February 25, 13
SWIPE CONFERENCE 2012

Monday, February 25, 13
SWIPE CONFERENCE 2012

Monday, February 25, 13
Questions
                          • Have I to manage it?
                          • What’s the synch model?

                          • Who’s to pay?

                          • Impact on UX?
                          • Lock-in?

                                                      SWIPE CONFERENCE 2012

Monday, February 25, 13
Have I to manage it?
                          • Learn the API
                          • Apple takes care of

                           • installation

                           • scalability


                                                  SWIPE CONFERENCE 2012

Monday, February 25, 13
What’s the synch model?



                                               SWIPE CONFERENCE 2012

Monday, February 25, 13
Daemon
                          • Monitors changes
                          • Works on metadata

                          • Shreds files

                          • Supports conflict resolution


                                                          SWIPE CONFERENCE 2012

Monday, February 25, 13
Special folder, synched



                                                SWIPE CONFERENCE 2012

Monday, February 25, 13
Synched when “appropriate”



                                        SWIPE CONFERENCE 2012

Monday, February 25, 13
Types of Information
                          • Key-value
                          • Documents

                          • CoreData




                                             SWIPE CONFERENCE 2012

Monday, February 25, 13
Who’s to pay?
                          • The final user
                          • Your app will use his quota

                          • 5Gb for free




                                                          SWIPE CONFERENCE 2012

Monday, February 25, 13
Impact on UX?




                                      SWIPE CONFERENCE 2012

Monday, February 25, 13
Impact on UX?
                          • User expectation
                          • No control on upload

                          • “Why isn’t there?”

                          • Open the app to synch
                          • User turns off iCloud?

                                                     SWIPE CONFERENCE 2012

Monday, February 25, 13
Lock-in
                          • Huge
                          • Only on iOS

                          • No way to migrate




                                                SWIPE CONFERENCE 2012

Monday, February 25, 13
Dropbox



                                    SWIPE CONFERENCE 2012

Monday, February 25, 13
Dropbox
                          • File-based
                          • Special folder

                          • Synchronized across devices

                          • Supports other platforms


                                                          SWIPE CONFERENCE 2012

Monday, February 25, 13
Have I to manage it?
                          • Already set up
                           • installation

                           • bandwidth

                           • scalability


                                             SWIPE CONFERENCE 2012

Monday, February 25, 13
What’s the synch model?
                          • Desktop synchronizes continuously
                          • Mobile apps have to query the backend

                          • HTTP API

                          • SDKs for iOS, Android, Ruby, Python


                                                                    SWIPE CONFERENCE 2012

Monday, February 25, 13
What’s the synch model?
                          • No conflict resolution (revision #)
                          • Data serialization is up to you

                          • No file shredding




                                                                 SWIPE CONFERENCE 2012

Monday, February 25, 13
Who’s to pay?
                          • The final user
                          • Your app will use his disk quota

                          • 2 Gb for free




                                                               SWIPE CONFERENCE 2012

Monday, February 25, 13
Impact on UX?
                          • Authentication the first time
                          • User might modify files

                          • Control on the upload




                                                           SWIPE CONFERENCE 2012

Monday, February 25, 13
Lock-in
                          • None
                          • Each user owns his data

                          • Personal/team usage

                          • ... but nothing more


                                                      SWIPE CONFERENCE 2012

Monday, February 25, 13
Similar
                          • box.net
                          • sugarsync.com

                          • google drive

                          • amazon S3


                                            SWIPE CONFERENCE 2012

Monday, February 25, 13
Custom



                                   SWIPE CONFERENCE 2012

Monday, February 25, 13
SWIPE CONFERENCE 2012

Monday, February 25, 13
IaaS   PaaS   SaaS



                                          SWIPE CONFERENCE 2012

Monday, February 25, 13
IaaS            PaaS          SaaS
                          • Data          • Data
                          • Application   • Application

                          • Runtime

                          • Middleware
                          • OS

                                                            SWIPE CONFERENCE 2012

Monday, February 25, 13
IaaS                  PaaS                SaaS
                          • Data                • Data
                          • Application         • Application

                          • Runtime

                          • Middleware
                          • OS
                          AWS, Rackspace, ...    Heroku, Appfog, ...   Baasbox

                                                                          SWIPE CONFERENCE 2012

Monday, February 25, 13
IaaS                   PaaS
                          • Data                 • Data

                          • Application          • Application
                          • Runtime
                          • Middleware
                          • OS


                           AWS, Rackspace, ...     Heroku, Appfog, ...

                                                                         SWIPE CONFERENCE 2012

Monday, February 25, 13
PaaS
                          • Data

                          • Application




                                          SWIPE CONFERENCE 2012

Monday, February 25, 13
PaaS Questions
                          • Which language?
                          • Which DB?




                                              SWIPE CONFERENCE 2012

Monday, February 25, 13
Heroku



                                   SWIPE CONFERENCE 2012

Monday, February 25, 13
Languages
                          • Ruby
                          • Python

                          • Java

                          • Scala
                          • Closure
                          • Node.js

                                      SWIPE CONFERENCE 2012

Monday, February 25, 13
DBs
                          • Postgres
                          • MySQL (via addon)

                          • MongoDB (via addon)




                                                  SWIPE CONFERENCE 2012

Monday, February 25, 13
Dyno
                          • Essentially a process
                           • Web

                           • Worker

                          • # of dynos + db profile + addons = backend cost


                                                                             SWIPE CONFERENCE 2012

Monday, February 25, 13
IaaS            PaaS
                          • OS            • Data

                          • Middleware    • Application
                          • Runtime
                          • Data

                          • Application



                                                          SWIPE CONFERENCE 2012

Monday, February 25, 13
IaaS
                          • OS
                          • Middleware

                          • Runtime

                          • Data
                          • Application

                                          SWIPE CONFERENCE 2012

Monday, February 25, 13
Questions
                          • Which OS?
                          • Which language?

                          • Which DB?

                          • How many machines?


                                                 SWIPE CONFERENCE 2012

Monday, February 25, 13
Amazon Web Services



                                                SWIPE CONFERENCE 2012

Monday, February 25, 13
Amazon Web Services
                          • CDN
                          • Storage

                          • Networking

                          • DBs
                          • Services: email, queue managers
                          • Con: cost estimation

                                                              SWIPE CONFERENCE 2012

Monday, February 25, 13
Good old way
                          • Buy a server
                           • pick the hardware

                           • install OS

                          • rent space/bandwidth in a farm


                                                             SWIPE CONFERENCE 2012

Monday, February 25, 13
Server side frameworks



                                               SWIPE CONFERENCE 2012

Monday, February 25, 13
Ruby
                          • http://rubyonrails.org
                          • http://www.sinatrarb.com

                          • http://www.padrinorb.com




                                                       SWIPE CONFERENCE 2012

Monday, February 25, 13
Python
                          • https://www.djangoproject.com
                          • http://www.pylonsproject.org

                          • http://flask.pocoo.org




                                                            SWIPE CONFERENCE 2012

Monday, February 25, 13
Node.js
                          • http://expressjs.com
                          • http://geddyjs.org

                          • http://flatironjs.org

                          • http://railwayjs.com
                          • http://towerjs.org

                                                   SWIPE CONFERENCE 2012

Monday, February 25, 13
ORM
                          • ActiveRecord
                          • DataMapper

                          • Sequel

                          • SQLAlchemy


                                           SWIPE CONFERENCE 2012

Monday, February 25, 13
BaaS



                                 SWIPE CONFERENCE 2012

Monday, February 25, 13
Baas
                          • Backend for mobile apps
                          • Files, key-value

                          • API SDK

                          • Push notifications


                                                      SWIPE CONFERENCE 2012

Monday, February 25, 13
Baas
                          • User management
                           • account creation/verification

                           • Login with Twitter/Facebook

                           • ACL


                                                            SWIPE CONFERENCE 2012

Monday, February 25, 13
Baas
                          • Time to market
                          • Focus on the front-end




                                                     SWIPE CONFERENCE 2012

Monday, February 25, 13
Services
                          • cloudmine.me
                          • stackmob.com

                          • kinvey.com

                          • parse.com
                          • buddy.com
                          • sencha.io

                                           SWIPE CONFERENCE 2012

Monday, February 25, 13
Blood pact



                                       SWIPE CONFERENCE 2012

Monday, February 25, 13
Claudio Tesoriero



                                              SWIPE CONFERENCE 2012

Monday, February 25, 13
BaasBox
                          • No application server
                          • No database server

                          • JVM only requirement

                          • Runs everywhere


                                                    SWIPE CONFERENCE 2012

Monday, February 25, 13
BaasBox
                          • User management
                           • ACL

                          • Assets

                          • Collections


                                              SWIPE CONFERENCE 2012

Monday, February 25, 13
BaasBox
                          • Download
                          •   ./start




                                        SWIPE CONFERENCE 2012

Monday, February 25, 13
BaasBox on OpenShift

                          rhc app create pizzabox diy-0.1
                          cd pizzabox
                          tar xvfz baasbox-openshift-xx.tar.gz
                          git add .
                          git commit -m "init"
                          git push

                                                                 SWIPE CONFERENCE 2012

Monday, February 25, 13
BaasBox on CentOS

                          yum install java-1.7.0-openjdk

                          scp baasbox-xx.tar.gz user@host:remotepath

                          cd remotepath

                          ./start

                                                                  SWIPE CONFERENCE 2012

Monday, February 25, 13
PizzaBox
                                    Dev




                                  BaasBox

                      Pizzaiolo             Clienti
                                                  SWIPE CONFERENCE 2012

Monday, February 25, 13
BaasBox Console




                                        SWIPE CONFERENCE 2012

Monday, February 25, 13
BaasBox Web app




                                        SWIPE CONFERENCE 2012

Monday, February 25, 13
BaasBox iPhone app




                                           SWIPE CONFERENCE 2012

Monday, February 25, 13
Asset


                          curl --form file=@margherita.png
                               --form name=margherita
                               --user admin:admin
                               -H X-BAASBOX-APPCODE:1234567890
                               http://localhost:9000/admin/asset


                                                              SWIPE CONFERENCE 2012

Monday, February 25, 13
Menu
                          curl -d "name=menu&meta=[
                          
 {
                          
 
 "name": "Margherita",
                          
 
 "id" : "margherita",
                          
 
 "price": 5,
                          
 
 "ingredients": "Pizza con pomodoro e mozzarella"
                          
 }, ... ]"
                            --user admin:admin
                            -H X-BAASBOX-APPCODE:1234567890
                            http://localhost:9000/admin/asset

                                                                             SWIPE CONFERENCE 2012

Monday, February 25, 13
Orders


                          curl -d ""
                               -H X-BAASBOX-APPCODE:1234567890
                               --user admin:admin
                               http://localhost:9000/admin/collection/orders




                                                                               SWIPE CONFERENCE 2012

Monday, February 25, 13
Create order
                          curl -d "{
                            "list": {"margherita": 2,"quattrostagioni": 2},
                            "user": {
                                "name": "Cesare",
                                "surname": "Rocchi",
                                "address": "Via delle vie 12, Roma", ...
                            },
                            "time": "2013-01-02Z14:21",
                            "total": 12.5,
                            }"
                            -H X-BAASBOX-APPCODE:1234567890
                            --user cesare:cesare
                            http://localhost:9000/document/orders
                                                                                SWIPE CONFERENCE 2012

Monday, February 25, 13
Demo



                                 SWIPE CONFERENCE 2012

Monday, February 25, 13
Migration




                                  SWIPE CONFERENCE 2012

Monday, February 25, 13
Now we are working on
                          • Push Notification
                          • SDK (iOS, Android, JS)

                          • 3rd party authentication

                          • Business analytics


                                                       SWIPE CONFERENCE 2012

Monday, February 25, 13
Federico Pacilli
                           CEO BaasBox


                                             SWIPE CONFERENCE 2012

Monday, February 25, 13
How can we help
                            each other?


                                            SWIPE CONFERENCE 2012

Monday, February 25, 13
Video Tutorials



                                            SWIPE CONFERENCE 2012

Monday, February 25, 13
How can
                             YOU
                          make money?

                                        SWIPE CONFERENCE 2012

Monday, February 25, 13
Marketplace



                                        SWIPE CONFERENCE 2012

Monday, February 25, 13
PizzaBox
                                    Dev




                                  BaasBox

                      Pizzaiolo             Clienti
                                                  SWIPE CONFERENCE 2012

Monday, February 25, 13
Marketplace
                          • Referral program (30%)
                          • 35% if non-exclusive

                          • 50%-70% if selling exclusive




                                                           SWIPE CONFERENCE 2012

Monday, February 25, 13
We have 3 ideas



                                            SWIPE CONFERENCE 2012

Monday, February 25, 13
You can candidate
                            job@baasbox.com



                                              SWIPE CONFERENCE 2012

Monday, February 25, 13
We provide
                          back-end support


                                             SWIPE CONFERENCE 2012

Monday, February 25, 13
70% for the first year
                            (+ 30% referral)


                                                  SWIPE CONFERENCE 2012

Monday, February 25, 13
1000€ upfront



                                          SWIPE CONFERENCE 2012

Monday, February 25, 13
Contacts
                          • http://www.baasbox.com
                          • twitter.com/baasbox

                          • facebook.com/baasbox

                          • github.com/baasbox
                          • info@baasbox.com

                                                     SWIPE CONFERENCE 2012

Monday, February 25, 13
jobs@baasbox.com



                                             SWIPE CONFERENCE 2012

Monday, February 25, 13
youtube.com/user/LiveSeeweb

                              Lunedi 25 alle 18.30


                                                     SWIPE CONFERENCE 2012

Monday, February 25, 13

More Related Content

Similar to HTML5 Italy: Back end ecosystems for your applications - Cesare Rocchi + Claudio Tesoriero

Skype agile - past, present and future
Skype agile - past, present and futureSkype agile - past, present and future
Skype agile - past, present and future
Alek Kozlov
 
PFCongres 2012 - Rock Solid Deployment of PHP Apps
PFCongres 2012 - Rock Solid Deployment of PHP AppsPFCongres 2012 - Rock Solid Deployment of PHP Apps
PFCongres 2012 - Rock Solid Deployment of PHP Apps
Pablo Godel
 
Presentation Design - Adding Little Surprises
Presentation Design - Adding Little SurprisesPresentation Design - Adding Little Surprises
Presentation Design - Adding Little Surprises
Kiran Budhrani
 
Экосистема Evernote и каналы продвижения партнерских проектов
Экосистема Evernote и каналы продвижения партнерских проектовЭкосистема Evernote и каналы продвижения партнерских проектов
Экосистема Evernote и каналы продвижения партнерских проектов
Evernote
 
Diseño de APIs con Ruby
Diseño de APIs con RubyDiseño de APIs con Ruby
Diseño de APIs con Ruby
Software Guru
 

Similar to HTML5 Italy: Back end ecosystems for your applications - Cesare Rocchi + Claudio Tesoriero (20)

CLOUD LOCK-IN AND THE MYTH OF OPEN APIS at Structure 2012
CLOUD LOCK-IN AND THE MYTH OF OPEN APIS at Structure 2012CLOUD LOCK-IN AND THE MYTH OF OPEN APIS at Structure 2012
CLOUD LOCK-IN AND THE MYTH OF OPEN APIS at Structure 2012
 
Intro to running_online_events v2
Intro to running_online_events v2Intro to running_online_events v2
Intro to running_online_events v2
 
ILT Forum: Nov 2012
ILT Forum: Nov 2012ILT Forum: Nov 2012
ILT Forum: Nov 2012
 
Harnessing the Power of the Social Media Stream for Education and Training
Harnessing the Power of the Social Media Stream for Education and TrainingHarnessing the Power of the Social Media Stream for Education and Training
Harnessing the Power of the Social Media Stream for Education and Training
 
Skype agile - past, present and future
Skype agile - past, present and futureSkype agile - past, present and future
Skype agile - past, present and future
 
Biblioteca Digitala - platforma YOOLIB
Biblioteca Digitala - platforma YOOLIBBiblioteca Digitala - platforma YOOLIB
Biblioteca Digitala - platforma YOOLIB
 
PFCongres 2012 - Rock Solid Deployment of PHP Apps
PFCongres 2012 - Rock Solid Deployment of PHP AppsPFCongres 2012 - Rock Solid Deployment of PHP Apps
PFCongres 2012 - Rock Solid Deployment of PHP Apps
 
Modern Learning Environment
Modern Learning Environment Modern Learning Environment
Modern Learning Environment
 
Duke's eLearning Roadmap and the Sakai Transition
Duke's eLearning Roadmap and the Sakai TransitionDuke's eLearning Roadmap and the Sakai Transition
Duke's eLearning Roadmap and the Sakai Transition
 
Rvljasigsakai12
Rvljasigsakai12Rvljasigsakai12
Rvljasigsakai12
 
Building an API in Rails without Realizing It
Building an API in Rails without Realizing ItBuilding an API in Rails without Realizing It
Building an API in Rails without Realizing It
 
Presentation Design - Adding Little Surprises
Presentation Design - Adding Little SurprisesPresentation Design - Adding Little Surprises
Presentation Design - Adding Little Surprises
 
Ruby CI with Jenkins
Ruby CI with JenkinsRuby CI with Jenkins
Ruby CI with Jenkins
 
Make it for them
Make it for themMake it for them
Make it for them
 
Wbl forum 30th november 2012
Wbl forum 30th november 2012Wbl forum 30th november 2012
Wbl forum 30th november 2012
 
Экосистема Evernote и каналы продвижения партнерских проектов
Экосистема Evernote и каналы продвижения партнерских проектовЭкосистема Evernote и каналы продвижения партнерских проектов
Экосистема Evernote и каналы продвижения партнерских проектов
 
Diseño de APIs con Ruby
Diseño de APIs con RubyDiseño de APIs con Ruby
Diseño de APIs con Ruby
 
Packaging a winning table topics contest speech
Packaging a winning table topics contest speechPackaging a winning table topics contest speech
Packaging a winning table topics contest speech
 
PiLo mobile presentation tool
PiLo mobile presentation toolPiLo mobile presentation tool
PiLo mobile presentation tool
 
Customer experience: The natural ally for UX in business
Customer experience: The natural ally for UX in businessCustomer experience: The natural ally for UX in business
Customer experience: The natural ally for UX in business
 

More from marcocasario

HTML5, CSS3 e Javascript per sviluppare Web App per tutti gli schermi - Codem...
HTML5, CSS3 e Javascript per sviluppare Web App per tutti gli schermi - Codem...HTML5, CSS3 e Javascript per sviluppare Web App per tutti gli schermi - Codem...
HTML5, CSS3 e Javascript per sviluppare Web App per tutti gli schermi - Codem...
marcocasario
 
Mobile HTML5 Web Apps - Codemotion 2012
Mobile HTML5 Web Apps - Codemotion 2012Mobile HTML5 Web Apps - Codemotion 2012
Mobile HTML5 Web Apps - Codemotion 2012
marcocasario
 

More from marcocasario (20)

HTML5, CSS3 e Javascript per sviluppare Web App per tutti gli schermi - Codem...
HTML5, CSS3 e Javascript per sviluppare Web App per tutti gli schermi - Codem...HTML5, CSS3 e Javascript per sviluppare Web App per tutti gli schermi - Codem...
HTML5, CSS3 e Javascript per sviluppare Web App per tutti gli schermi - Codem...
 
HTML5 Italy: Mai più CSS, fogli di stile moderni con LESS - Salvatore Romeo
HTML5 Italy: Mai più CSS, fogli di stile moderni con LESS - Salvatore RomeoHTML5 Italy: Mai più CSS, fogli di stile moderni con LESS - Salvatore Romeo
HTML5 Italy: Mai più CSS, fogli di stile moderni con LESS - Salvatore Romeo
 
HTML5 cross-platform and device development: web app per tutti gli schermi
HTML5 cross-platform and device development: web app per tutti gli schermiHTML5 cross-platform and device development: web app per tutti gli schermi
HTML5 cross-platform and device development: web app per tutti gli schermi
 
Applicazioni HTML5 Superveloci - Salvatore Romeo
Applicazioni HTML5 Superveloci - Salvatore RomeoApplicazioni HTML5 Superveloci - Salvatore Romeo
Applicazioni HTML5 Superveloci - Salvatore Romeo
 
Mobile HTML5 Web Apps - Codemotion 2012
Mobile HTML5 Web Apps - Codemotion 2012Mobile HTML5 Web Apps - Codemotion 2012
Mobile HTML5 Web Apps - Codemotion 2012
 
Enterprise Spring and Flex applications
Enterprise Spring and Flex applicationsEnterprise Spring and Flex applications
Enterprise Spring and Flex applications
 
Local Persistent data with ActionScript 3 and AIR
Local Persistent data with ActionScript 3 and AIRLocal Persistent data with ActionScript 3 and AIR
Local Persistent data with ActionScript 3 and AIR
 
Enterprise Rich Internet Applications con Java, Livecycle DS e Flex 3
Enterprise Rich Internet Applications con Java, Livecycle DS e Flex 3Enterprise Rich Internet Applications con Java, Livecycle DS e Flex 3
Enterprise Rich Internet Applications con Java, Livecycle DS e Flex 3
 
Adobe TechConnection: Flex Best Practices
Adobe TechConnection: Flex Best PracticesAdobe TechConnection: Flex Best Practices
Adobe TechConnection: Flex Best Practices
 
We make it RIA at Comtaste
We make it RIA at ComtasteWe make it RIA at Comtaste
We make it RIA at Comtaste
 
Flex and AIR User Interface Design Showcases and Examples
Flex and AIR User Interface Design Showcases and ExamplesFlex and AIR User Interface Design Showcases and Examples
Flex and AIR User Interface Design Showcases and Examples
 
Designing Flex and AIR applications
Designing Flex and AIR applicationsDesigning Flex and AIR applications
Designing Flex and AIR applications
 
Architecting ActionScript 3 applications using PureMVC
Architecting ActionScript 3 applications using PureMVCArchitecting ActionScript 3 applications using PureMVC
Architecting ActionScript 3 applications using PureMVC
 
The ActionScript Conference 08, Singapore - Developing ActionScript 3 Mash up...
The ActionScript Conference 08, Singapore - Developing ActionScript 3 Mash up...The ActionScript Conference 08, Singapore - Developing ActionScript 3 Mash up...
The ActionScript Conference 08, Singapore - Developing ActionScript 3 Mash up...
 
Developing Mash up applications with Adobe AIR
Developing Mash up applications with Adobe AIRDeveloping Mash up applications with Adobe AIR
Developing Mash up applications with Adobe AIR
 
FlexCamp London
FlexCamp LondonFlexCamp London
FlexCamp London
 
Flex Daily Solutions @ FITC 2008
Flex Daily Solutions @ FITC 2008Flex Daily Solutions @ FITC 2008
Flex Daily Solutions @ FITC 2008
 
Rich Internet Application con Flex, AIR e Java
Rich Internet Application con Flex, AIR e JavaRich Internet Application con Flex, AIR e Java
Rich Internet Application con Flex, AIR e Java
 
Developing Adobe AIR desktop applications
Developing Adobe AIR desktop applicationsDeveloping Adobe AIR desktop applications
Developing Adobe AIR desktop applications
 
Developing AJAX pages using the Adobe Spry framework in Dreamweaver CS3
Developing AJAX pages using the Adobe Spry framework in Dreamweaver CS3Developing AJAX pages using the Adobe Spry framework in Dreamweaver CS3
Developing AJAX pages using the Adobe Spry framework in Dreamweaver CS3
 

Recently uploaded

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Recently uploaded (20)

Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
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...
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
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
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
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...
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
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
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
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)
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 

HTML5 Italy: Back end ecosystems for your applications - Cesare Rocchi + Claudio Tesoriero

  • 1. Back-end ecosystems for your applications Claudio Tesoriero @baasbox Cesare Rocchi Monday, February 25, 13
  • 2. Outline • Needs when choosing a backend • Features • Overview of different approaches SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 3. Who am I? SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 4. UX designer and developer SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 5. Who are you? SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 6. Quick version SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 7. It’s complicated SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 8. Thank you! SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 9. App Target • Not apps where mobile is “just a view” • Apps which are inherently mobile • From web to app • App needs a back-end SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 10. Examples SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 11. dayoneapp.com SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 12. culturedcode.com/things SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 13. Questions SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 14. Have I to manage it? SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 15. Have I to manage it? • At which level? • Am I able to do it? • Have I time to learn? • Is it worth it? SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 16. What’s the synch model? SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 17. What’s the synch model? • Does it match my goals? • Can I change it if needed? • What about protocols? SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 18. Have I to pay? SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 19. Have I to pay? SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 20. Who is to pay? SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 21. Impact on UX? SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 22. Impact on UX? • Does it break any flow? • How frequently? • is it “ok” with that? SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 23. Lock-in? SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 24. Lock-in? • How to migrate data? • Switching cost? • Effort • Code front-end • Data compatibility • Cash SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 25. Options • iCloud • Dropbox • Custom • Back-end as a Service (BaaS) SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 26. What is iCloud? SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 27. Stores and synchs stuff SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 28. It just works ... SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 29. ... when it works. SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 30. SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 31. SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 32. SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 33. SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 34. Questions • Have I to manage it? • What’s the synch model? • Who’s to pay? • Impact on UX? • Lock-in? SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 35. Have I to manage it? • Learn the API • Apple takes care of • installation • scalability SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 36. What’s the synch model? SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 37. Daemon • Monitors changes • Works on metadata • Shreds files • Supports conflict resolution SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 38. Special folder, synched SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 39. Synched when “appropriate” SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 40. Types of Information • Key-value • Documents • CoreData SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 41. Who’s to pay? • The final user • Your app will use his quota • 5Gb for free SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 42. Impact on UX? SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 43. Impact on UX? • User expectation • No control on upload • “Why isn’t there?” • Open the app to synch • User turns off iCloud? SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 44. Lock-in • Huge • Only on iOS • No way to migrate SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 45. Dropbox SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 46. Dropbox • File-based • Special folder • Synchronized across devices • Supports other platforms SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 47. Have I to manage it? • Already set up • installation • bandwidth • scalability SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 48. What’s the synch model? • Desktop synchronizes continuously • Mobile apps have to query the backend • HTTP API • SDKs for iOS, Android, Ruby, Python SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 49. What’s the synch model? • No conflict resolution (revision #) • Data serialization is up to you • No file shredding SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 50. Who’s to pay? • The final user • Your app will use his disk quota • 2 Gb for free SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 51. Impact on UX? • Authentication the first time • User might modify files • Control on the upload SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 52. Lock-in • None • Each user owns his data • Personal/team usage • ... but nothing more SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 53. Similar • box.net • sugarsync.com • google drive • amazon S3 SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 54. Custom SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 55. SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 56. IaaS PaaS SaaS SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 57. IaaS PaaS SaaS • Data • Data • Application • Application • Runtime • Middleware • OS SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 58. IaaS PaaS SaaS • Data • Data • Application • Application • Runtime • Middleware • OS AWS, Rackspace, ... Heroku, Appfog, ... Baasbox SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 59. IaaS PaaS • Data • Data • Application • Application • Runtime • Middleware • OS AWS, Rackspace, ... Heroku, Appfog, ... SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 60. PaaS • Data • Application SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 61. PaaS Questions • Which language? • Which DB? SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 62. Heroku SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 63. Languages • Ruby • Python • Java • Scala • Closure • Node.js SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 64. DBs • Postgres • MySQL (via addon) • MongoDB (via addon) SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 65. Dyno • Essentially a process • Web • Worker • # of dynos + db profile + addons = backend cost SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 66. IaaS PaaS • OS • Data • Middleware • Application • Runtime • Data • Application SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 67. IaaS • OS • Middleware • Runtime • Data • Application SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 68. Questions • Which OS? • Which language? • Which DB? • How many machines? SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 69. Amazon Web Services SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 70. Amazon Web Services • CDN • Storage • Networking • DBs • Services: email, queue managers • Con: cost estimation SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 71. Good old way • Buy a server • pick the hardware • install OS • rent space/bandwidth in a farm SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 72. Server side frameworks SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 73. Ruby • http://rubyonrails.org • http://www.sinatrarb.com • http://www.padrinorb.com SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 74. Python • https://www.djangoproject.com • http://www.pylonsproject.org • http://flask.pocoo.org SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 75. Node.js • http://expressjs.com • http://geddyjs.org • http://flatironjs.org • http://railwayjs.com • http://towerjs.org SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 76. ORM • ActiveRecord • DataMapper • Sequel • SQLAlchemy SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 77. BaaS SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 78. Baas • Backend for mobile apps • Files, key-value • API SDK • Push notifications SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 79. Baas • User management • account creation/verification • Login with Twitter/Facebook • ACL SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 80. Baas • Time to market • Focus on the front-end SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 81. Services • cloudmine.me • stackmob.com • kinvey.com • parse.com • buddy.com • sencha.io SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 82. Blood pact SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 83. Claudio Tesoriero SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 84. BaasBox • No application server • No database server • JVM only requirement • Runs everywhere SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 85. BaasBox • User management • ACL • Assets • Collections SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 86. BaasBox • Download • ./start SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 87. BaasBox on OpenShift rhc app create pizzabox diy-0.1 cd pizzabox tar xvfz baasbox-openshift-xx.tar.gz git add . git commit -m "init" git push SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 88. BaasBox on CentOS yum install java-1.7.0-openjdk scp baasbox-xx.tar.gz user@host:remotepath cd remotepath ./start SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 89. PizzaBox Dev BaasBox Pizzaiolo Clienti SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 90. BaasBox Console SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 91. BaasBox Web app SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 92. BaasBox iPhone app SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 93. Asset curl --form file=@margherita.png --form name=margherita --user admin:admin -H X-BAASBOX-APPCODE:1234567890 http://localhost:9000/admin/asset SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 94. Menu curl -d "name=menu&meta=[ { "name": "Margherita", "id" : "margherita", "price": 5, "ingredients": "Pizza con pomodoro e mozzarella" }, ... ]" --user admin:admin -H X-BAASBOX-APPCODE:1234567890 http://localhost:9000/admin/asset SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 95. Orders curl -d "" -H X-BAASBOX-APPCODE:1234567890 --user admin:admin http://localhost:9000/admin/collection/orders SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 96. Create order curl -d "{ "list": {"margherita": 2,"quattrostagioni": 2}, "user": { "name": "Cesare", "surname": "Rocchi", "address": "Via delle vie 12, Roma", ... }, "time": "2013-01-02Z14:21", "total": 12.5, }" -H X-BAASBOX-APPCODE:1234567890 --user cesare:cesare http://localhost:9000/document/orders SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 97. Demo SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 98. Migration SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 99. Now we are working on • Push Notification • SDK (iOS, Android, JS) • 3rd party authentication • Business analytics SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 100. Federico Pacilli CEO BaasBox SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 101. How can we help each other? SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 102. Video Tutorials SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 103. How can YOU make money? SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 104. Marketplace SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 105. PizzaBox Dev BaasBox Pizzaiolo Clienti SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 106. Marketplace • Referral program (30%) • 35% if non-exclusive • 50%-70% if selling exclusive SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 107. We have 3 ideas SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 108. You can candidate job@baasbox.com SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 109. We provide back-end support SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 110. 70% for the first year (+ 30% referral) SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 111. 1000€ upfront SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 112. Contacts • http://www.baasbox.com • twitter.com/baasbox • facebook.com/baasbox • github.com/baasbox • info@baasbox.com SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 113. jobs@baasbox.com SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 114. youtube.com/user/LiveSeeweb Lunedi 25 alle 18.30 SWIPE CONFERENCE 2012 Monday, February 25, 13