SlideShare a Scribd company logo
1 of 66
Download to read offline
Bolzano - July 23, 2010


                           Non-Invasive Personal Tracking
                           Andrea Girardello



      CLOUD WEB APPLICATIONS:
                           Thesis supervisor: Prof. Giancarlo Succi




THE NEW PERSPECTIVE OF S PROUT C ORE
    T HE                                       A PP A WARE A NALYTICS
                                                                            Bolzano, 24 July 2009
           DEVELOPMENT OF



                             DAVID SAITTA




                Thesis Supervisor:                  Thesis Co-Supervisor:
              Prof. Ernesto Damiani                 Prof. Paolo Ceravolo
OVERVIEW


    1. Cloud Web Applications




    2. SproutCore




    3. AppAware Analytics
OVERVIEW


    1. Cloud Web Applications




    2. SproutCore




    3. AppAware Analytics
CLOUD WEB APPLICATIONS
 Migrate to the Cloud

 • Tendency to migrate from desktop applications to web
   applications on the Cloud;

 • Software as a Service;
 • Software developed using web technologies;
CLOUD WEB APPLICATIONS
 Migrate to the Cloud

 • Tendency to migrate from desktop applications to web
   applications on the Cloud;

 • Software as a Service;
 • Software developed using web technologies;
CLOUD WEB APPLICATIONS
 Cloud Computing
                              cloud services revenue (billions of $)
         150
                                                                                             148,8
                                                                                          ↑+117.8%
      112,5


          75
                                                     68,3
               58,6                               ↑+16.6%
        37,5


            0
             2009                                    2010                                   2014
      Gartner report “Forecast: Public Cloud Services, Worldwide and Regions, Industry Sectors, 2009-2014
CLOUD WEB APPLICATIONS
 Cloud Computing
                              cloud services revenue (billions of $)
         150
                                                                                             148,8
                                                                                          ↑+117.8%
      112,5


          75
                                                     68,3
               58,6
        37,5   Can web applications compete with  ↑+16.6%


                    desktop applications?
            0
             2009                                    2010                                   2014
      Gartner report “Forecast: Public Cloud Services, Worldwide and Regions, Industry Sectors, 2009-2014
CLOUD WEB APPLICATIONS
  Desktop vs Web Applications




                              Data   Business
                                      Logic

             Desktop Application




Data   Business
        Logic

                  Web Application
CLOUD WEB APPLICATIONS
  Desktop vs Web Applications




                              Business
                               Logic

        Desktop Application




Data                                     Cloud Web Application

         Web Application
CLOUD WEB APPLICATIONS
  Desktop vs Web Applications




                              Data   Business
                                      Logic
                                                              Business
             Desktop Application                               Logic




                                                      Data
Data   Business
        Logic
                                                Cloud Web Application
                  Web Application
CLOUD WEB APPLICATIONS
 Main Aspects

 • hybrid between traditional desktop applications and
      traditional web applications;


 • Like desktop apps
  • rich user experience;
  • immediate response to user actions;
  • offline mode;


 • Like web apps
  •   universal / cross platform;
  •   not installed on computer;
  •   take advantage of the Cloud by storing all the data on it;
  •   mobile access.
CLOUD WEB APPLICATIONS
 Main Aspects

 • hybrid between traditional desktop applications and
      traditional web applications;


 • Like desktop apps
  • rich user experience;
  • immediate response to user actions;
  • offline mode; tools? Which language? Which
         Which                                                 structure?

 • Like web apps
  •   universal / cross platform;
  •   not installed on computer;
  •   take advantage of the Cloud by storing all the data on it;
  •   mobile access.
OVERVIEW


    1. Cloud Web Applications




    2. SproutCore




    3. AppAware Analytics
SPROUTCORE
 In a nutshell

           SproutCore is an HTML5 application
        framework for building responsive, desktop-like
       apps in any modern web browser, without plugins.

 • Its goal is to allow developers to create web applications
    with advanced capabilities and user experiences
  • moves business logic to the client;

  • applications are full-fledged programs, written in JavaScript that is
    executed in the browser;

 • freeing up servers (and server engineers) to focus on
    delivering data as quickly and reliably as possible.
SPROUTCORE
 Structure
                 Browser




             V


             C


             M


                  REST
SPROUTCORE
 Isn’t it Ajax?


 • jQuery and Prototype are utility
    libraries;


 • SproutCore has more in common
    with Cocoa, .NET or Eclipse Rich
    Client Platform;


 • The Display layer is based on
    jQuery DOM functionalities.
SPROUTCORE
 Isn’t it Ajax?


 • jQuery and Prototype are utility
    libraries;


 • SproutCore has more in common
    with Cocoa, .NET or Eclipse Rich
    Client Platform;


 • The Display layer is based on
    jQuery DOM functionalities.
SPROUTCORE
 Interaction with servers

 • Connection using REST interface;
                                            Browser


 • Server-agnostic;
 • DataSource interface to be
   implemented
  • fetch, retrieveRecord, createRecord,
    updateRecord, destroyRecord




                                           REST
SPROUTCORE
 Interaction with servers

 • Connection using REST interface;
                                            Browser


 • Server-agnostic;
 • DataSource interface to be
   implemented
  • fetch, retrieveRecord, createRecord,
    updateRecord, destroyRecord




                                           REST
SPROUTCORE
 Mautre?

 • Young Framework;
  •   Development started in 2007;
  •   First stable release March 2010;
  •   Investmens from Apple Inc.
  •   Used to develop MobileMe



 • Mature core and structure;
 • Immature advanced views and documentations;
 • Extensible using plugins and frameworks;
  • DSUI (http://github.com/d4v1d82/DSUI)
OVERVIEW


    1. Cloud Web Applications




    2. SproutCore




    3. AppAware Analytics
APPAWARE ANALYTICS
 AppAware Project


       AppAware is a mobile application that tracks
           installations, updates, and removals
                   of Android programs

 • Developed as a research project by Information
   Management group at the ETH Zürich
APPAWARE ANALYTICS
  AppAware ! AppAware Analytics
• poor statistics pages;
• from February 2010 collected more than 5 milions of events
  with about 60-70 thousand events for day.
APPAWARE ANALYTICS
  AppAware ! AppAware Analytics
• Prototype ! AppAware Analytics
• main requirements:
   1. create a cloud web application;

   2. allow users to easily interact with the system;

   3. minimize the server-side computation (i.e. changing chart visualizations, user
      interactions, UI modifications, etc.);

   4. minimize the bandwidth usage: the server provides only a collection of data
      information objects.
APPAWARE ANALYTICS
  Client-Server interaction

1. first access
APPAWARE ANALYTICS
  Client-Server interaction

1. first access
APPAWARE ANALYTICS
  Client-Server interaction

1. first access

2. load apps
APPAWARE ANALYTICS
  Client-Server interaction

1. first access     GET /apps.php

2. load apps
APPAWARE ANALYTICS
  Client-Server interaction

1. first access     GET /apps.php

2. load apps


                                JSON

                     [{id: 82,
                         app_name: "Maps",
                         package_name: "com.google.android.apps.maps",
                         meter: 98,
                         meter_img: "http://chart.apis.google.com/chart?chs=….",
                         description: "Get the latest release of Google Maps. New features:n*
                     Bicycling directions and map layer (US only)n* Navigation icon in app
                     launchern* Share places by email, SMS, and morennAlso includes:n*
                     Navigation (Beta)n* Search by voicen* My Locationn* Business listingsn*
                     Directionsn* Trafficn* Street Viewn* Latituden* Google Buzz",
                         icon: "http://AppAware.org/icons/com.google.android.apps.maps.png"

                     },
                     {id: 199,
                         app_name: "Market",
                         ...
APPAWARE ANALYTICS
  Client-Server interaction

1. first access

2. load apps

3. select an app
  load events of
  current week
APPAWARE ANALYTICS
  Client-Server interaction

1. first access     GET /events.php

2. load apps

3. select an app
  load events of
  current week
APPAWARE ANALYTICS
  Client-Server interaction

1. first access     GET /events.php

2. load apps

3. select an app
  load events of              JSON

  current week
                                 {"events": [{
                                          "id": 3369952,
                                          "event_type": "updated",
                                          "user_id": "2001459694d7346d",
                                          "twitter_id": null,
                                          "model": "HTC Hero",
                                          "sdk": 7,
                                          "latitude": "53.16871628",
                                          "longitude": "-1.11738948",
                                          "created": "2010-06-14 00:17:36"
                                     },{}
                                 ]}
APPAWARE ANALYTICS
  Client-Server interaction

1. first access

2. load apps

3. select an app
  load events of
  this week

4. navigate graphs
APPAWARE ANALYTICS
  Client-Server interaction

1. first access

2. load apps

3. select an app
  load events of
  this week

4. navigate graphs
APPAWARE ANALYTICS
  Client-Server interaction

1. first access

2. load apps

3. select an app
  load events of
  this week

4. navigate graphs
APPAWARE ANALYTICS
  Client-Server interaction

1. first access

2. load apps

3. select an app
  load events of
  this week

4. navigate graphs
APPAWARE ANALYTICS
 Development - Chart Views
APPAWARE ANALYTICS
 Development - Chart Views
APPAWARE ANALYTICS
 Development - Chart Views
APPAWARE ANALYTICS
 Development - Chart Views
APPAWARE ANALYTICS
 Development - Chart Views
APPAWARE ANALYTICS
 Development - Chart Views
APPAWARE ANALYTICS
 Development - Date Selector
APPAWARE ANALYTICS
 Problems

 • AppAware Analytics:
  • too many events/model data!

  • difficult mobile support (because of memory);

  • no cache support on computed charts;

                                2010-7-1 / 2010-7-19   2010-4-1 / 2010-7-19
                                      20 days               110 days

                     Objects          2,839                 27,900
              Response Size         508.5KB                  5MB

         Response Size (gzip)   99.6KB (80.4%)          ~1MB (80.5%)

           Computation time          1.8sec                  25sec
APPAWARE ANALYTICS
 Problems

 • SproutCore:
  • bad documentation;

  • poor examples;

  • support only on newsgroup, blog, comments and IRC with developers;


  • HTML5 standard still in draft
    • Candidate Recommendation stage during 2012.
APPAWARE ANALYTICS
 Conclusions

            Can web applications compete with
                  desktop applications?


 • Yes: user interaction is responsible as a desktop
   application;

 • Yes: Advanced views;
 • Yes: interaction with multiple servers;
 • Yes/No: when exchanging big amount of data with the
   server the latency increase (but the same with desktop
   application);
APPAWARE ANALYTICS
 Conclusions

           Can web applications compete with
                 desktop applications?


 • Yes/No: HTML5 is not fully standardized;
 • No: interaction with custom hardware;
APPAWARE ANALYTICS
 Future Works

 • Increase client-server REST interface to reduce data
   and bandwidth usage;

 • Offline support;
 • Mobile Views;
 • Touch Devices support;
 • Advanced events filtering;
 • Porting to SproutCore 1.1 as soon as released.
?
speaker: David Saitta
CLOUD WEB APPLICATIONS
 Cloud Computing

                  A style of Computing where
             scalable and elastic IT capabilities are
              provided as a service to multiple
             customers using Internet technologies.
                                                 Gartner




 • Software as a Service;
 • Software developed using web technologies;
EXTRA
 JavaScript Engines



           WebKit 3.0        5,4




           WebKit 3.1              18,8




          SquirrelFish                         29,9




  SquirrelFish Extreme                                             63,6



                         0                20          40           60            80

         The chart shows WebKit’s JavaScript performance in different versions
                                bigger bars are better
CLOUD WEB APPLICATIONS
 Evolution of Web Technologies
CLOUD WEB APPLICATIONS
 Evolution of Web Technologies
  Static pages
  of hyperlinks



     HTML




    1991
CLOUD WEB APPLICATIONS
 Evolution of Web Technologies
  Static pages       Dynamic
  of hyperlinks   generated pages


                          CGI PHP
     HTML                  ASP




                  HTML     HTML      HTML




    1991                 1993-1994
CLOUD WEB APPLICATIONS
 Evolution of Web Technologies
  Static pages       Dynamic                 Dynamic MVC
  of hyperlinks   generated pages           generated pages


                          CGI PHP                  Ruby on Rails
     HTML                  ASP                        JBoss
                                                     ASP.NET




                  HTML     HTML      HTML   HTML    HTML       HTML




    1991                 1993-1994                  2001
CLOUD WEB APPLICATIONS
 Evolution of Web Technologies
  Static pages       Dynamic                 Dynamic MVC                Dynamic/Static
  of hyperlinks   generated pages           generated pages           generated JavaScript


                          CGI PHP                  Ruby on Rails              HTML
     HTML                  ASP                        JBoss                 JavaScrip
                                                     ASP.NET




                  HTML     HTML      HTML   HTML    HTML       HTML




    1991                 1993-1994                  2001
CLOUD WEB APPLICATIONS
 Evolution of Web Technologies
  Static pages       Dynamic                 Dynamic MVC                Dynamic/Static
  of hyperlinks   generated pages           generated pages           generated JavaScript


                          CGI PHP                  Ruby on Rails              HTML
     HTML                  ASP                        JBoss                 JavaScrip
                                                     ASP.NET




                  HTML     HTML      HTML   HTML    HTML       HTML




    1991                 1993-1994                  2001
CLOUD WEB APPLICATIONS
 Evolution of Web Technologies
  Static pages       Dynamic                 Dynamic MVC                   Dynamic/Static
  of hyperlinks   generated pages           generated pages              generated JavaScript


                          CGI PHP                  Ruby on Rails                 HTML
     HTML                  ASP                        JBoss                    JavaScrip
                                                     ASP.NET




                  HTML     HTML      HTML   HTML    HTML       HTML




    1991                 1993-1994                  2001


                                                                      Better Browser Support
                                                                           HTML5/CSS3
                                                                         JavaScript Engines
                                                                          W3C Standards
APPAWARE ANALYTICS
  Development - REST

• server-side REST interfaces
 • caching system to handle thousands of single events;

• PHP based;
• JSON format;
• GZip compression;
                App Google Maps
         Date Range April, 18 2010 to
                     June, 18 2010
    Number of Events 10,551
        Original Size ~2MB (1922.11 KB)
        Gzipped Size 371.38 KB
        Data Savings 80.68%
APPAWARE ANALYTICS
  Client-Server interaction

1. first access

2. load apps

3. select an app
  load events of
  this week

4. navigate graphs

5. select another
  date range
APPAWARE ANALYTICS
  Client-Server interaction

1. first access       GET /events.php

2. load apps

3. select an app
  load events of               JSON

  this week

4. navigate graphs                                   2010-7-1 / 2010-7-19 2010-4-1 / 2010-7-19
                                                           20 days              110 days

                                           Objects
5. select another                                          2,839               27,900
                                  Response Size          508.5KB                 5MB
  date range                      Response Size
                                                99.6KB (80.4%) ~1MB (80.5%)
                                         (gzip)
                                       Computation
                                                           1.8sec               25sec
                                              time
APPAWARE ANALYTICS
 Development - Google Map Views
APPAWARE ANALYTICS
 Development - Google Map Views
SPROUTCORE
 Structure

 • Full-stack MVC framework;
 • Key-Value Coding (KVC);            Browser


 • Key-Value Observing (KVO);
 • Component Bindings;

   Controller    update value
slider_value
                valu
                    e up        22
                        date
                            d



                                     REST

More Related Content

Similar to Cloud web applications: the new perspective of sproutcore

N01 cloud computing_and_gae
N01 cloud computing_and_gaeN01 cloud computing_and_gae
N01 cloud computing_and_gaeSun-Jin Jang
 
Azure App Service Architecture. Web Apps.
Azure App Service Architecture. Web Apps.Azure App Service Architecture. Web Apps.
Azure App Service Architecture. Web Apps.Alexander Feschenko
 
Azure Cloud Application Development Workshop - UGIdotNET
Azure Cloud Application Development Workshop - UGIdotNETAzure Cloud Application Development Workshop - UGIdotNET
Azure Cloud Application Development Workshop - UGIdotNETLorenzo Barbieri
 
On-Demand Webinar: Software Virtualization Lifecycle
On-Demand Webinar: Software Virtualization LifecycleOn-Demand Webinar: Software Virtualization Lifecycle
On-Demand Webinar: Software Virtualization LifecycleSkytap Cloud
 
IRJET-Garbage Monitoring and Management using Internet of things
IRJET-Garbage Monitoring and Management using Internet of thingsIRJET-Garbage Monitoring and Management using Internet of things
IRJET-Garbage Monitoring and Management using Internet of thingsIRJET Journal
 
Resume Partha Roy
Resume Partha RoyResume Partha Roy
Resume Partha RoyPartha Roy
 
8 years of experience in .Net web technologies
8 years of experience in .Net web technologies8 years of experience in .Net web technologies
8 years of experience in .Net web technologiesPartha Roy
 
MyEclipse G IDE, Google Cloud
MyEclipse G IDE, Google CloudMyEclipse G IDE, Google Cloud
MyEclipse G IDE, Google CloudGenuitec, LLC
 
Andriy Vandakurov about "Frontend. Global domination"
Andriy Vandakurov about  "Frontend. Global domination" Andriy Vandakurov about  "Frontend. Global domination"
Andriy Vandakurov about "Frontend. Global domination" Pivorak MeetUp
 
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud EnvironmentsTools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud EnvironmentsVMware Tanzu
 
How To Build, Integrate, and Deploy Real-Time Streaming Pipelines On Kubernetes
How To Build, Integrate, and Deploy Real-Time Streaming Pipelines On KubernetesHow To Build, Integrate, and Deploy Real-Time Streaming Pipelines On Kubernetes
How To Build, Integrate, and Deploy Real-Time Streaming Pipelines On KubernetesLightbend
 
The Internet of Things: Patterns for building real world applications
The Internet of Things:  Patterns for building real world applicationsThe Internet of Things:  Patterns for building real world applications
The Internet of Things: Patterns for building real world applicationsIron.io
 
Internet of Things: Patterns For Building Real World Applications
Internet of Things: Patterns For Building Real World ApplicationsInternet of Things: Patterns For Building Real World Applications
Internet of Things: Patterns For Building Real World ApplicationsIvan Dwyer
 
Why Progressive Web Apps For WordPress - WordCamp Finland
Why Progressive Web Apps For WordPress - WordCamp FinlandWhy Progressive Web Apps For WordPress - WordCamp Finland
Why Progressive Web Apps For WordPress - WordCamp FinlandImran Sayed
 
Why and How SmartNews uses SaaS?
Why and How SmartNews uses SaaS?Why and How SmartNews uses SaaS?
Why and How SmartNews uses SaaS?Takumi Sakamoto
 
Ibm xamarin gtruty
Ibm xamarin gtrutyIbm xamarin gtruty
Ibm xamarin gtrutyRon Favali
 
Application telemetry public
Application telemetry publicApplication telemetry public
Application telemetry publicLars Yde
 
Codecentric At Ajax World Conference San Jose
Codecentric At Ajax World Conference San JoseCodecentric At Ajax World Conference San Jose
Codecentric At Ajax World Conference San JoseFabian Lange
 

Similar to Cloud web applications: the new perspective of sproutcore (20)

N01 cloud computing_and_gae
N01 cloud computing_and_gaeN01 cloud computing_and_gae
N01 cloud computing_and_gae
 
Azure App Service Architecture. Web Apps.
Azure App Service Architecture. Web Apps.Azure App Service Architecture. Web Apps.
Azure App Service Architecture. Web Apps.
 
Azure Cloud Application Development Workshop - UGIdotNET
Azure Cloud Application Development Workshop - UGIdotNETAzure Cloud Application Development Workshop - UGIdotNET
Azure Cloud Application Development Workshop - UGIdotNET
 
On-Demand Webinar: Software Virtualization Lifecycle
On-Demand Webinar: Software Virtualization LifecycleOn-Demand Webinar: Software Virtualization Lifecycle
On-Demand Webinar: Software Virtualization Lifecycle
 
IRJET-Garbage Monitoring and Management using Internet of things
IRJET-Garbage Monitoring and Management using Internet of thingsIRJET-Garbage Monitoring and Management using Internet of things
IRJET-Garbage Monitoring and Management using Internet of things
 
Resume Partha Roy
Resume Partha RoyResume Partha Roy
Resume Partha Roy
 
8 years of experience in .Net web technologies
8 years of experience in .Net web technologies8 years of experience in .Net web technologies
8 years of experience in .Net web technologies
 
MyEclipse G IDE, Google Cloud
MyEclipse G IDE, Google CloudMyEclipse G IDE, Google Cloud
MyEclipse G IDE, Google Cloud
 
Pivorak.javascript.global domination
Pivorak.javascript.global dominationPivorak.javascript.global domination
Pivorak.javascript.global domination
 
Andriy Vandakurov about "Frontend. Global domination"
Andriy Vandakurov about  "Frontend. Global domination" Andriy Vandakurov about  "Frontend. Global domination"
Andriy Vandakurov about "Frontend. Global domination"
 
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud EnvironmentsTools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
 
How To Build, Integrate, and Deploy Real-Time Streaming Pipelines On Kubernetes
How To Build, Integrate, and Deploy Real-Time Streaming Pipelines On KubernetesHow To Build, Integrate, and Deploy Real-Time Streaming Pipelines On Kubernetes
How To Build, Integrate, and Deploy Real-Time Streaming Pipelines On Kubernetes
 
The Internet of Things: Patterns for building real world applications
The Internet of Things:  Patterns for building real world applicationsThe Internet of Things:  Patterns for building real world applications
The Internet of Things: Patterns for building real world applications
 
Twelve factor-app
Twelve factor-appTwelve factor-app
Twelve factor-app
 
Internet of Things: Patterns For Building Real World Applications
Internet of Things: Patterns For Building Real World ApplicationsInternet of Things: Patterns For Building Real World Applications
Internet of Things: Patterns For Building Real World Applications
 
Why Progressive Web Apps For WordPress - WordCamp Finland
Why Progressive Web Apps For WordPress - WordCamp FinlandWhy Progressive Web Apps For WordPress - WordCamp Finland
Why Progressive Web Apps For WordPress - WordCamp Finland
 
Why and How SmartNews uses SaaS?
Why and How SmartNews uses SaaS?Why and How SmartNews uses SaaS?
Why and How SmartNews uses SaaS?
 
Ibm xamarin gtruty
Ibm xamarin gtrutyIbm xamarin gtruty
Ibm xamarin gtruty
 
Application telemetry public
Application telemetry publicApplication telemetry public
Application telemetry public
 
Codecentric At Ajax World Conference San Jose
Codecentric At Ajax World Conference San JoseCodecentric At Ajax World Conference San Jose
Codecentric At Ajax World Conference San Jose
 

Recently uploaded

Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
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 DevelopmentsTrustArc
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
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)wesley chun
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
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 2024The Digital Insurer
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 

Recently uploaded (20)

Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
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
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
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)
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
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
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 

Cloud web applications: the new perspective of sproutcore

  • 1. Bolzano - July 23, 2010 Non-Invasive Personal Tracking Andrea Girardello CLOUD WEB APPLICATIONS: Thesis supervisor: Prof. Giancarlo Succi THE NEW PERSPECTIVE OF S PROUT C ORE T HE A PP A WARE A NALYTICS Bolzano, 24 July 2009 DEVELOPMENT OF DAVID SAITTA Thesis Supervisor: Thesis Co-Supervisor: Prof. Ernesto Damiani Prof. Paolo Ceravolo
  • 2. OVERVIEW 1. Cloud Web Applications 2. SproutCore 3. AppAware Analytics
  • 3. OVERVIEW 1. Cloud Web Applications 2. SproutCore 3. AppAware Analytics
  • 4. CLOUD WEB APPLICATIONS Migrate to the Cloud • Tendency to migrate from desktop applications to web applications on the Cloud; • Software as a Service; • Software developed using web technologies;
  • 5. CLOUD WEB APPLICATIONS Migrate to the Cloud • Tendency to migrate from desktop applications to web applications on the Cloud; • Software as a Service; • Software developed using web technologies;
  • 6. CLOUD WEB APPLICATIONS Cloud Computing cloud services revenue (billions of $) 150 148,8 ↑+117.8% 112,5 75 68,3 58,6 ↑+16.6% 37,5 0 2009 2010 2014 Gartner report “Forecast: Public Cloud Services, Worldwide and Regions, Industry Sectors, 2009-2014
  • 7. CLOUD WEB APPLICATIONS Cloud Computing cloud services revenue (billions of $) 150 148,8 ↑+117.8% 112,5 75 68,3 58,6 37,5 Can web applications compete with ↑+16.6% desktop applications? 0 2009 2010 2014 Gartner report “Forecast: Public Cloud Services, Worldwide and Regions, Industry Sectors, 2009-2014
  • 8. CLOUD WEB APPLICATIONS Desktop vs Web Applications Data Business Logic Desktop Application Data Business Logic Web Application
  • 9. CLOUD WEB APPLICATIONS Desktop vs Web Applications Business Logic Desktop Application Data Cloud Web Application Web Application
  • 10. CLOUD WEB APPLICATIONS Desktop vs Web Applications Data Business Logic Business Desktop Application Logic Data Data Business Logic Cloud Web Application Web Application
  • 11. CLOUD WEB APPLICATIONS Main Aspects • hybrid between traditional desktop applications and traditional web applications; • Like desktop apps • rich user experience; • immediate response to user actions; • offline mode; • Like web apps • universal / cross platform; • not installed on computer; • take advantage of the Cloud by storing all the data on it; • mobile access.
  • 12. CLOUD WEB APPLICATIONS Main Aspects • hybrid between traditional desktop applications and traditional web applications; • Like desktop apps • rich user experience; • immediate response to user actions; • offline mode; tools? Which language? Which Which structure? • Like web apps • universal / cross platform; • not installed on computer; • take advantage of the Cloud by storing all the data on it; • mobile access.
  • 13. OVERVIEW 1. Cloud Web Applications 2. SproutCore 3. AppAware Analytics
  • 14. SPROUTCORE In a nutshell SproutCore is an HTML5 application framework for building responsive, desktop-like apps in any modern web browser, without plugins. • Its goal is to allow developers to create web applications with advanced capabilities and user experiences • moves business logic to the client; • applications are full-fledged programs, written in JavaScript that is executed in the browser; • freeing up servers (and server engineers) to focus on delivering data as quickly and reliably as possible.
  • 15. SPROUTCORE Structure Browser V C M REST
  • 16. SPROUTCORE Isn’t it Ajax? • jQuery and Prototype are utility libraries; • SproutCore has more in common with Cocoa, .NET or Eclipse Rich Client Platform; • The Display layer is based on jQuery DOM functionalities.
  • 17. SPROUTCORE Isn’t it Ajax? • jQuery and Prototype are utility libraries; • SproutCore has more in common with Cocoa, .NET or Eclipse Rich Client Platform; • The Display layer is based on jQuery DOM functionalities.
  • 18. SPROUTCORE Interaction with servers • Connection using REST interface; Browser • Server-agnostic; • DataSource interface to be implemented • fetch, retrieveRecord, createRecord, updateRecord, destroyRecord REST
  • 19. SPROUTCORE Interaction with servers • Connection using REST interface; Browser • Server-agnostic; • DataSource interface to be implemented • fetch, retrieveRecord, createRecord, updateRecord, destroyRecord REST
  • 20. SPROUTCORE Mautre? • Young Framework; • Development started in 2007; • First stable release March 2010; • Investmens from Apple Inc. • Used to develop MobileMe • Mature core and structure; • Immature advanced views and documentations; • Extensible using plugins and frameworks; • DSUI (http://github.com/d4v1d82/DSUI)
  • 21. OVERVIEW 1. Cloud Web Applications 2. SproutCore 3. AppAware Analytics
  • 22. APPAWARE ANALYTICS AppAware Project AppAware is a mobile application that tracks installations, updates, and removals of Android programs • Developed as a research project by Information Management group at the ETH Zürich
  • 23. APPAWARE ANALYTICS AppAware ! AppAware Analytics • poor statistics pages; • from February 2010 collected more than 5 milions of events with about 60-70 thousand events for day.
  • 24. APPAWARE ANALYTICS AppAware ! AppAware Analytics • Prototype ! AppAware Analytics • main requirements: 1. create a cloud web application; 2. allow users to easily interact with the system; 3. minimize the server-side computation (i.e. changing chart visualizations, user interactions, UI modifications, etc.); 4. minimize the bandwidth usage: the server provides only a collection of data information objects.
  • 25. APPAWARE ANALYTICS Client-Server interaction 1. first access
  • 26. APPAWARE ANALYTICS Client-Server interaction 1. first access
  • 27. APPAWARE ANALYTICS Client-Server interaction 1. first access 2. load apps
  • 28. APPAWARE ANALYTICS Client-Server interaction 1. first access GET /apps.php 2. load apps
  • 29. APPAWARE ANALYTICS Client-Server interaction 1. first access GET /apps.php 2. load apps JSON [{id: 82, app_name: "Maps", package_name: "com.google.android.apps.maps", meter: 98, meter_img: "http://chart.apis.google.com/chart?chs=….", description: "Get the latest release of Google Maps. New features:n* Bicycling directions and map layer (US only)n* Navigation icon in app launchern* Share places by email, SMS, and morennAlso includes:n* Navigation (Beta)n* Search by voicen* My Locationn* Business listingsn* Directionsn* Trafficn* Street Viewn* Latituden* Google Buzz", icon: "http://AppAware.org/icons/com.google.android.apps.maps.png"
 }, {id: 199, app_name: "Market", ...
  • 30. APPAWARE ANALYTICS Client-Server interaction 1. first access 2. load apps 3. select an app load events of current week
  • 31. APPAWARE ANALYTICS Client-Server interaction 1. first access GET /events.php 2. load apps 3. select an app load events of current week
  • 32. APPAWARE ANALYTICS Client-Server interaction 1. first access GET /events.php 2. load apps 3. select an app load events of JSON current week {"events": [{ "id": 3369952, "event_type": "updated", "user_id": "2001459694d7346d", "twitter_id": null, "model": "HTC Hero", "sdk": 7, "latitude": "53.16871628", "longitude": "-1.11738948", "created": "2010-06-14 00:17:36" },{} ]}
  • 33. APPAWARE ANALYTICS Client-Server interaction 1. first access 2. load apps 3. select an app load events of this week 4. navigate graphs
  • 34. APPAWARE ANALYTICS Client-Server interaction 1. first access 2. load apps 3. select an app load events of this week 4. navigate graphs
  • 35. APPAWARE ANALYTICS Client-Server interaction 1. first access 2. load apps 3. select an app load events of this week 4. navigate graphs
  • 36. APPAWARE ANALYTICS Client-Server interaction 1. first access 2. load apps 3. select an app load events of this week 4. navigate graphs
  • 44. APPAWARE ANALYTICS Problems • AppAware Analytics: • too many events/model data! • difficult mobile support (because of memory); • no cache support on computed charts; 2010-7-1 / 2010-7-19 2010-4-1 / 2010-7-19 20 days 110 days Objects 2,839 27,900 Response Size 508.5KB 5MB Response Size (gzip) 99.6KB (80.4%) ~1MB (80.5%) Computation time 1.8sec 25sec
  • 45. APPAWARE ANALYTICS Problems • SproutCore: • bad documentation; • poor examples; • support only on newsgroup, blog, comments and IRC with developers; • HTML5 standard still in draft • Candidate Recommendation stage during 2012.
  • 46. APPAWARE ANALYTICS Conclusions Can web applications compete with desktop applications? • Yes: user interaction is responsible as a desktop application; • Yes: Advanced views; • Yes: interaction with multiple servers; • Yes/No: when exchanging big amount of data with the server the latency increase (but the same with desktop application);
  • 47. APPAWARE ANALYTICS Conclusions Can web applications compete with desktop applications? • Yes/No: HTML5 is not fully standardized; • No: interaction with custom hardware;
  • 48. APPAWARE ANALYTICS Future Works • Increase client-server REST interface to reduce data and bandwidth usage; • Offline support; • Mobile Views; • Touch Devices support; • Advanced events filtering; • Porting to SproutCore 1.1 as soon as released.
  • 49.
  • 51.
  • 52. CLOUD WEB APPLICATIONS Cloud Computing A style of Computing where scalable and elastic IT capabilities are provided as a service to multiple customers using Internet technologies. Gartner • Software as a Service; • Software developed using web technologies;
  • 53. EXTRA JavaScript Engines WebKit 3.0 5,4 WebKit 3.1 18,8 SquirrelFish 29,9 SquirrelFish Extreme 63,6 0 20 40 60 80 The chart shows WebKit’s JavaScript performance in different versions bigger bars are better
  • 54. CLOUD WEB APPLICATIONS Evolution of Web Technologies
  • 55. CLOUD WEB APPLICATIONS Evolution of Web Technologies Static pages of hyperlinks HTML 1991
  • 56. CLOUD WEB APPLICATIONS Evolution of Web Technologies Static pages Dynamic of hyperlinks generated pages CGI PHP HTML ASP HTML HTML HTML 1991 1993-1994
  • 57. CLOUD WEB APPLICATIONS Evolution of Web Technologies Static pages Dynamic Dynamic MVC of hyperlinks generated pages generated pages CGI PHP Ruby on Rails HTML ASP JBoss ASP.NET HTML HTML HTML HTML HTML HTML 1991 1993-1994 2001
  • 58. CLOUD WEB APPLICATIONS Evolution of Web Technologies Static pages Dynamic Dynamic MVC Dynamic/Static of hyperlinks generated pages generated pages generated JavaScript CGI PHP Ruby on Rails HTML HTML ASP JBoss JavaScrip ASP.NET HTML HTML HTML HTML HTML HTML 1991 1993-1994 2001
  • 59. CLOUD WEB APPLICATIONS Evolution of Web Technologies Static pages Dynamic Dynamic MVC Dynamic/Static of hyperlinks generated pages generated pages generated JavaScript CGI PHP Ruby on Rails HTML HTML ASP JBoss JavaScrip ASP.NET HTML HTML HTML HTML HTML HTML 1991 1993-1994 2001
  • 60. CLOUD WEB APPLICATIONS Evolution of Web Technologies Static pages Dynamic Dynamic MVC Dynamic/Static of hyperlinks generated pages generated pages generated JavaScript CGI PHP Ruby on Rails HTML HTML ASP JBoss JavaScrip ASP.NET HTML HTML HTML HTML HTML HTML 1991 1993-1994 2001 Better Browser Support HTML5/CSS3 JavaScript Engines W3C Standards
  • 61. APPAWARE ANALYTICS Development - REST • server-side REST interfaces • caching system to handle thousands of single events; • PHP based; • JSON format; • GZip compression; App Google Maps Date Range April, 18 2010 to June, 18 2010 Number of Events 10,551 Original Size ~2MB (1922.11 KB) Gzipped Size 371.38 KB Data Savings 80.68%
  • 62. APPAWARE ANALYTICS Client-Server interaction 1. first access 2. load apps 3. select an app load events of this week 4. navigate graphs 5. select another date range
  • 63. APPAWARE ANALYTICS Client-Server interaction 1. first access GET /events.php 2. load apps 3. select an app load events of JSON this week 4. navigate graphs 2010-7-1 / 2010-7-19 2010-4-1 / 2010-7-19 20 days 110 days Objects 5. select another 2,839 27,900 Response Size 508.5KB 5MB date range Response Size 99.6KB (80.4%) ~1MB (80.5%) (gzip) Computation 1.8sec 25sec time
  • 64. APPAWARE ANALYTICS Development - Google Map Views
  • 65. APPAWARE ANALYTICS Development - Google Map Views
  • 66. SPROUTCORE Structure • Full-stack MVC framework; • Key-Value Coding (KVC); Browser • Key-Value Observing (KVO); • Component Bindings; Controller update value slider_value valu e up 22 date d REST