Prototype

  • Overview
  • Architecture
  • Hardware
  • Software
  • Demo
  • Download
  • Prototype Version 2
  • Overview

    The prototype, we introduce in the following paragraphs, divides into multiple parts:



    (Further information about class diagrams and relations are given in "Time-, Energy-, and Monetary Cost-Aware Cache Design for a Mobile Cloud Database System" a Master's thesis by Mikael Perrin)



    back to top

    System Architecture

    The figure above visualizes the proposed three-tier architecture. It is the goal of this architecture to address the problems of elastic execution, cost estimation, and data locality in correlation to mobile users querying data owners, who utilize cloud service providers. The first tier, or mobile devices, with constraints on energy, processing power and bandwidth, represents the end user where queries are posed and results are expected. The second tier, or data owner, represents statically available and non-elastic resources controlled by the owner of the data on which the query is being posed. Lastly, the third tier gathers the different cloud providers with elastic resources, which can be accessed by the data owner.


    In this prototype and the experimentations it is used so far, we assume, that the Data Owner does not hold any data which results in a Data Owner who can be seen as middleware between the App and the Cloud. The following figure shows the cloud architecture that has been set up for experimentation purposes. It is made of a RESTful Web Service, which represents the Data Owner and is used as a middleware between the mobile device and a Hive Server used to manage query processing on the cloud. A RESTful Web Service follows the REpresentational State Transfer software architecture. This architecture gathers some principles allowing to make the web service adaptable and scalable to a high number of clients. Hive Server is a service allowing to receive HiveQL queries in order to process them on top of the Hadoop Framework.


    Detailed information about the flow of the experimentations is described in "Time-, Energy-, and Monetary Cost-Aware Cache Design for a Mobile Cloud Database System" a Master's thesis by Mikael Perrin



    back to top

    Hardware

    (used Hardware during the experimentation described in "Time-, Energy-, and Monetary Cost-Aware Cache Design for a Mobile Cloud Database System" a Master's thesis by Mikael Perrin)

    Mobile Device: HTC One M7ul (Qualcomm Snapdragon 600: 1.728 GHz CPU; 2GB RAM; battery capacity of 2300 mAh)

    Used private cloud: 16GB of RAM, Intel Xeon CPU E5-2670 at 2.60 GHz



    back to top

    Software

    (used Software during the experimentation described in "Time-, Energy-, and Monetary Cost-Aware Cache Design for a Mobile Cloud Database System" a Master's thesis by Mikael Perrin)

    Android Version: Android Kit Kat 4.4.3 (at least Android 4.0.3 required)

    CloudSoftware: Hadoop framework (Version 2.4.0), Hive (MySQL Server (Version 5.1.73)), RESTful web service running on tomcat server (Version 7.0)

    Additional Software: Android Studio



    back to top

    Demo


    1. How to run the app:
    To run the app on an android mobile device, follow the steps of the Android developers guide (Android Guide)


    2. How to use the app:
    The prototype provides the user with different features such as creating a new query, viewing the result tuples, viewing the different caches, viewing the already processed queries and modifying the settings (constraints, types of caches, experimentation options, etc…). To build a new query, the user can use the interface shown in the following Figure.


    The user can specify a table and add different predicates being {X op C} or {X op Y} predicates which is shown in the figure above. To process the query, the user pushes the Launch button. The waiting message appears while the query is being processed (Figure b). When the result appears, the user can see the result as a list (Figure c). Each tuple can be displayed by accessing a more detailed view when clicking on the list item.
    The figure above represents the Settings Activity. It is the interface the user can use to specify the type of cache to be used, the web service to be accessed or if the result should be replaced in the cache in the case that the cache's maximum size is reached (Figure a), constraints, the parameter to minimize during optimization (processing time, energy consumption or monetary cost) or the number of queries to processed for each experimentation (Figure b) and the maximum sizes of the different caches (Figure c). Every time the data access manager is modified in the settings, the application automatically asks for the new metadata to the new chosen web service. The user can also view the queries he has already processed and the content of each cache, as shown in following figure.


    3. How to use the query generator:
    The generator and also a set of generated queries can be downloaded in the Download-Section. Read-me files are provided and explain the different files.


    4. How to setup the database scheme:
    The hive commands used to setup the database scheme of a private cloud or on a local machine are provided in the Download-Section.



    back to top

    Download the Prototype

    Prototype Version 2

    Current research is contducted to include the Normalized Weighted Sum Algorithm into the Prototype.
    A preliminary prototype can be seen here: Prototype Version 2



    back to top