CEG3900 Cloud Computing via Android

Table of Contents

1 Overview

  1. What is Cloud Computing?
  2. Distributed Computing Models
    1. Remote Computing
    2. Process Migration
    3. Using Idle Computers
    4. Cluster Computing
  3. Well-Known Storage Clouds
    1. Private Clouds
    2. Issues
  4. Well-Known Computing Clouds
    1. Create and Launch our VM on AWS EC2
  5. Examples of Heavy Computations
  6. Cloud Computing Overview All the above

2 Cloud Computing Techniques

2.1 Streams

2.2 Map + Reduce / Hadoop

Suppose we wish to discover all occurrences of given ten words in some thousand large files. This problem has an inherently parrallel solution. Subcontract the work of (i) finding w[i] in file f[j] to machine M[i,j]. Combine (ii) all the results into one. The step (i) is often called a "map"-computation and step (ii) is called a "reduce" computation. This kind of solution structure is surprisingly common in large scale ("big data") problems. The <a href="http://hadoop.apache.org/ http://hadoop.apache.org/ provides an implementation of this. It is now available for both Linux and Windows.

  1. Map + Reduce

2.3 Embarassingly Parallel

  1. Embarassingly Parallel: Classic example: Matrix M3 := M1 + M2. Element by element: M3[i, j] := M1[i, j] + M2[i, j]. This can be done independently of other (i, j) pairs.

2.4 Divide and Conquer

  1. Divide and Conquer: Classic example: Partition of QuickSort. You have a problem P to solve. Divide it into P1 and P2, two sub-problems of the same kind, get their answers and "glue" them together to get the solution for P. How do we solve P1? Same technique. What is escape from this recursion? Eventually, the problem becomes small enough that you have an alternate way of solving it without resorting to divide and conquer again.

3 Docker

  1. ./Docker containers. Put together the program you wish to run, all its dependencies and run the resulting container in a cloud anywhere.

4 Google Firebase

  1. Examples to Study
    1. Quick Start
    2. Friendly Pix
    3. Firepad
    4. ToDoApp
    5. GeoFire
    6. Android Drawing
  2. Google Firebase

5 Google Cloud Platform

  1. https://en.wikipedia.org/wiki/Google_Cloud_Platform
  2. https://cloud.google.com/ Cloud Computing and storage. "Use Google's core infrastructure, data analytics and machine learning. Secure and fully featured for all enterprises. Committed to open source and industry leading price-performance."
  3. https://cloudnext.withgoogle.com/
  4. https://cloud.google.com/solutions/mobile/ "Build your app for Android, iOS, and the mobile web on services that will reliably scale …"
  5. https://github.com/GoogleCloudPlatform/google-cloud-java Google Cloud Client Library for Java

6 Amazon AWS

  1. https://aws.amazon.com/ "AWS operates 35 Availability Zones within 13 geographic Regions around the world." Cloud Computing and Storage.
  2. https://aws.amazon.com/mobile/ "Everything You Need to Build Mobile Apps" Android and iOS.
  3. http://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/US_SingleMetricPerInstance.html
  4. Amazon Lambda lets you run code without provisioning or managing servers. Unrelated to Java Lambdas. "AWS Lambda is an event-driven, serverless computing platform … runs code in response to events and automatically [scales] the compute resources required by that code. It was introduced in 2014."

7 Microsoft Azure

  1. https://en.wikipedia.org/wiki/Microsoft_Azure
  2. Mobile Apps "Learn how to use Mobile Apps in Azure App Service to build native iOS, Android, or Windows apps."
  3. Episode 224: Developing and Debugging Azure Mobile Apps Video. Mar 17, 2017 at 8:10AM by Thiago Almeida, Chris Risner. C#

8 Password Hashes in the Cloud

  1. CEG 3900 Project for Spring 2017. Consists of P4, P5, P6 and P7.
  2. Background on ../Passwords, and Cracking
  3. Rainbow Tables
  4. Redesign a Cracking Tool with Mobile Computing at Front, Cloud Computing in the Back

9 Free Cloud Computing Accounts

The following are free (trials). Take note of the limits. Give them your .edu mail address. Obviously, not an exhaustive list. Most will ask for credit card info. Use your own judgment!

  1. http://aws.amazon.com/free/ Amazon, AWS EC2 free tier
  2. https://cloud.google.com/free Google Cloud Platform, free $300?
  3. https://azure.microsoft.com/en-us/ Microsoft Azure, free $200?
  4. https://www.heroku.com/ Heroku
  5. https://www.openshift.com/ Red Hat OpenShift.
  6. http://www.koding.com/
  7. https://www.ctl.io/free-trial/ AppFog, free $500?
  8. https://www.nutanix.com/ 2017 Free access, details unclear. Using the REST API to Power an Android App Oct 2016

10 References

  1. Armbrust, M., Fox, A., Griffith, R., Joseph, A.D., Katz, R., Konwinski, A., Lee, G., Patterson, D., Rabkin, A., Stoica, I. and Zaharia, M., 2010. "A View of Cloud Computing", Communications of the ACM, 53(4), pp.50-58. Web search for slides and pdf. Highly recommended reading.

11 End

Copyright © 2017 www.wright.edu/~pmateti • 2017-02-06