MOBILE APPLICATIONS AND CLOUD beraldi/MACC_16/slides/01.pdf · PDF fileAmazon’s...

Click here to load reader

  • date post

    11-Jun-2018
  • Category

    Documents

  • view

    219
  • download

    0

Embed Size (px)

Transcript of MOBILE APPLICATIONS AND CLOUD beraldi/MACC_16/slides/01.pdf · PDF fileAmazon’s...

  • MOBILE APPLICATIONS AND CLOUD COMPUTINGRoberto Beraldi

  • Course Outline 6 CFUs Topics:

    Mobile application programming (Android) Cloud computing

    To pass the exam: Individual working and documented application in android (possibly

    using cloud services) Answer to 3 of general questions

  • Key terms Cloud computing

    Delivery of remote virtual resources through internet (virtual machines, storage space, software functions (web api) , data e.g. open data, etc..)

    Mobile Applications app that runs on mobile devices smartphone App running on wearable devices, e.g., smartwatch

    Context-Awareness sensors

    Where (lat,lon) the device running the application is located

    Other Sensors, e.g., acceleration, orientation, etc

    Connection and synergy between Cloud and Mobile devices/applications is possible

  • Cloud computing and mobile applications

    Cloud computing is an umbrella term to refer to a way to access functionalities remotely (e.g., via Internet)

    There are different delivery models of cloud computing Software as a Service (SaaS) or Web API Platform as a Service (PaaS) Infrastructure as a Service (Iaas) (virtualization)

    Cloud computing can be used alone, or Cloud computing, or more simply cloud, can be exploited

    by mobile apps. This can be done in different ways One simple possible way is to synchronize data views of different

    devices (fixed or mobile)

  • Dropbox is a free (up to 2GB), web-based cloud storage mechanism file backup service data sharing Data sync among different clients Mobile applications

    iPhone

    iPad

    Windows

    Linux

    MAC

    .mp3

    .avi.jpg

    Freemium business model

    REST / JSON calls

    Dropbox

    Security (SSL, AES-256 bit), scalabity (load balancer, server notification, data/metadata..)

  • Example: iCloud from Apple

    -contacts-photo-messages.. Phone backup

    -iCloud drive(store any kind of document)

    cloud

  • Amazons Cognito

    https://aws.amazon.com/it/cognito/

  • Amazons Cognito Amazon Cognito gives you unique identifiers for your end

    users and then lets you securely store and sync user app data in the AWS Cloud across multiple devices and OS platforms.

    You can do this with just a few lines of code, and your app can work the same, regardless of whether a users devices are online or offline.

    When new data is available in the sync store, a users devices can be alerted by a silent push notification so that your app can sync the new data automatically.

  • Characteristic of a cloud storage service

    Bundling When a batch of files is transferred, files could be bundled, so that

    transmission latency and control overhead are reduced. For example, Dropbox use only few TCP connections to transfer

    multiple files

    Chunking Large files can be either monolithically transmitted to the cloud or

    chunked into smaller pieces. Chunking is advantageous because it simplifies recovery in case of failures Dropbox 4MB, Google Drive 8MB,

    Compression data compressed before a transfer. Compression could, in general,

    reduce traffic and storage requirements at the expense of local processing time.

  • Characteristic of a cloud storage service

    Deduplication Server data deduplication eliminates replicas on the storage server. Client-side deduplication instead extends the benefits to clients and

    the network: In case a file is already present on servers, replicas in the client can be identified to save upload capacity

    This can be accomplished by calculating a file digest using the file content, e.g., SHA256 is used by Dropbox

    The digest is sent to servers prior to submitting the complete file. Servers then check whether the digest is already stored in the

    system and skip the upload of repeated content. Dropbox implements inter-user deduplication: this technique allows a

    user to skip submitting files that are already stored by any other user.

  • Characteristic of a cloud storage service

    Delta encoding Delta encoding calculates the difference among file revisions,

    allowing the transmission of only the modified portions. Indeed, delta encoding provides similar benefits as the combination

    of chunking and deduplication, but with a finer granularity

    P2P synchronization Devices hosting common files could be synchronized without

    retrieving every content from the cloud, thus saving both network and server resources Dropbox is known for implementing a LAN Sync Protocol that allows

    devices, possibly from different users, to exchange content using P2P communication when clients are connected to the same LAN.

  • Comparison among personal cloud storage(*)

    (*)E. Bocchi, I. Drago, M. Mellia, Personal Cloud Storage Benchmarks and Comparison, IEEE Transactions on Cloud Computing 2015

  • Other example: Microsofts IntuneMicrosoft Intune helps organizations provide their employees with access to corporate applications, data, and resources from virtually anywhere on almost any device, while helping to keep corporate information secure.

    Intune can manage:Mobile devices (including phones and tablets running Android, iOS, Windows Phone and Windows RT operating systems).

    Computers running a professional edition of Windows Vista, Windows 7, Windows 8 or Windows 8.1.

  • Cloud and mobile apps Other ways to exploit cloud is by implementing a

    notification service

  • Google Cloud Messaging (GCM)

    push

    GCM allows to attach up to 1,000 recipients to a single message

    -Broadcastreceiver

    connection server

    app server

    ..

  • Amazons Simple Notification Service (SNS) It is a fast, flexible, fully managed push notification service

    that lets you send individual messages or to fan-out messages to large numbers of recipients.

    Amazon SNS makes it simple and cost effective to send push notifications to mobile device users, email recipients or even send messages to other distributed services.

  • Amazons SNS (features) Seamlessly scale from a handful of messages per day to

    millions of messages or higher.

    With SNS you can publish a message once, and deliver it one or more times. So you can choose to direct unique messages to individual Apple, Google or Amazon devices, or broadcast deliveries to many mobile devices with a single publish request.

    SNS allows you to group multiple recipients using topics. A topic is an access point for allowing recipients to

    dynamically subscribe for identical copies of the same notification.

    When you publish once to a topic, SNS delivers appropriately formatted copies of your message to each subscriber.

  • Mobile apps and Software as a Service

    Cloud

    -Cloud can play the role ofbackend-provide access to resourses: Functionality (VM, storage)

    using RPC-like calls) Data (open data)

    req

    reply

  • Example

    req

    reply

    Cloud

    real time data on transportation available from ATAC via XML-RPC

    http://www.agenziamobilita.roma.it/progetti/open-data/http://www.agenziamobilita.roma.it/it/progetti/open-data/api-real-time.html

  • Mobile apps and web API (aka SaaS)

    WEB-API

    INTERNET

    Client Application

    A Web API allows to design and develop an application that exploits software modules accessed via Internet via a simple wire protocol

  • Web API: example

  • Web API: programmatic point of view

    Programmatic Service Access(many methods)

    Web URL (standard HTTP methods)

    web browerHTTP

    Application

    HTTP Rest,XML-RPC,etc

    (Web API)

  • Mashup applications

    Pro

    vide

    A

    Pro

    vide

    rB API WEB

    CLIENT

    s=A.methodName(par1)z=B.methodName(s,par2)

  • Mashup applications (1/2)Client

    Server

    Web API

    Server

    Web API

    JSON-RPC

    Server

    Web API

    AJAXPython..

  • Mashup applications (2/2)

    HTTP

    -Server Web-mashupper(e.g.,dynamic pagesPhp)

    WEB API

    XML-RPC

    SOAP

  • Web API and Interoperability

    WEB-API

    Client Application

    (Technology A)

    Client Application

    (Technology B)

    Client Application

    (Technology C)

    .

  • Example: Google apis

  • Example: Tic Tac Toe

    Monolithic application All the logic is in a single program

    Client Server The server dynamically generates the page to

    be displayed with the response

    Web API (cloud computing style) Provides primitive operations to an application

    (that can run on a mobile device, for example) and let two players to play

  • solution1: monolithic app Monolithic

    e.g., javaScript, or any language

  • Solution 2: client/server

    http://game.org/ttt.php?move=7

    Client HTTP Server + php

    HTML

    Put an X at position 7

  • Possible technological mapping (1/3)

    Client Server

    HTTP

    HTML

    User Agent

    mod_php

    TCP/IP connection3306,

  • continued (2/3)Client Server

    HTTP

    HTMLEmbedded

    Objects

    User Agent

    mod_php

    TCP/IP connection3306,

  • continued(3/3)Client Server

    HTTP

    HTML+JS

    User Agent

    mod_php

    TCP/IP connection3306,

  • 3rd solution: Web Api and mobile app

    Web API

    (cloud)

    init

    Send the current state

    Reply with the new state

    Interface (remote functio