Programming Mobile Cloud Computing with Android-KTR
- CategoryOther
- TypeTutorials
- LanguageEnglish
- Total size1.2 GB
- Uploaded ByxKTRx
- Downloads200
- Last checkedMay. 21st '18
- Date uploadedJun. 21st '15
- Seeders 0
- Leechers0
Programming Mobile Cloud Computing with Android-KTR
In this course----the third in a trans-institution sequence of MOOCs on Mobile Cloud Computing with Android--we will learn how to connect Android mobile devices to cloud computing and data storage resources, essentially turning a device into an extension of powerful cloud-based services on popular cloud computing platforms, such as Google App Engine and Amazon EC2.
Instructors::
1. Dr. C. Jules White
Assistant Professor of Computer Science
Electrical Engineering and Computer Science
Vanderbilt University
2. Dr. Douglas C. Schmidt
Professor of Computer Science and Associate Chair of the Computer Science and Engineering Program
Electrical Engineering and Computer Science
Vanderbilt University
About the Course::
This MOOC describes by example how to connect Android mobile devices to clouds via the use of object-oriented design techniques, Java programming language features, Jetty middleware, Java Servlets, the Java Spring Framework, and cloud computing platforms, such as Google App Engine. Although there will be 10 weeks of lecture material, the required core of the course is six weeks long and can be completed flexibly within the ten week schedule to provide flexibility for students during the summer.
An extended case study project will be used throughout the required core of the MOOC to showcase architectures for communicating with the cloud using HTTP, server-side processing of mobile data using servlets and the Java Spring Framework, and scalable storage of data using no-SQL databases and other platforms. Due to the importance of building secure and scalable mobile/cloud platforms, this MOOC will not only show you how to program handheld systems that talk to the cloud, but how to do so securely, scalably, and efficiently. Security and scalability topics will be woven into discussions of cloud service creation so that students learn, from the start, how to create robust cloud services for mobile devices.
Four weeks of optional lecture material will also be provided for students who would like to gain a deeper understanding of the patterns and frameworks for building cloud infrastructure building. This material will be presented in the context of the open-source JAWS web server, which is implemented in C++ as part of the ACE open-source object-oriented concurrent and networked programming toolkit.
Although the cloud service topics in this course will be taught in the context of connecting mobile devices to the cloud, the concepts are broader and will give students the ability to create the cloud services to support large-scale web applications, such as social networking applications; cloud services for embedded systems, such as the Internet of Things and Industrial Internet; and wearable computing devices, such as Google Glass.
Course Includes::
Section 1: Talking to the Cloud with HTTP
Module 1: The HTTP Protocol
Introduction
What are Communication Protocols?
Intro to HTTP
Why HTTP?
What is a cloud service?
HTTP Request Methods
HTTP Request Anatomy
URLs Query Parameters
Mime Types Content Type Header
Request Body Encoding
HTTP Response Anatomy
HTTP Response Codes
Cookies
Module 2: Designing Applications with HTTP Communication
Building Cloud Services on HTTP
Protocol Layering / HTTP Design Methodologies
REST
HTTP Polling
Push Messaging
Section 2: Building Java Cloud Services
Module 1: Java Servlets
What are Servlets?
A First Cloud Service with a Servlet
Web.xml
Video Servlet Code Walkthrough
Video Servlet Test Walkthrough with HttpClient
Securely Handling Client Data Avoiding Injection Attacks
Module 2: Better Abstractions for Building Java Cloud Services
Intro to Java Annotations
HTTP to Object Marshalling
Intro to JSON
The Spring Dispatcher Servlet and the Controller Abstraction
Intro to Spring Controllers
Accepting Client Data with RequestParam Annotations
Accepting Client Data with PathVar Annotations
Accepting Client Data with RequestBody Annotations and JSON
Handling Multipart Data
Generating Responses with the ResponseBody Annotation
Custom Marshalling with Jackson Annotations Serializers/Deserializers
Spring Boot Application Structure
Spring Controller Code Walkthrough
Spring Controller Test Code Walkthrough
Module 3: Better Client-side Communication Abstractions
Introduction to Retrofit
Retrofit Client Code Walkthrough
Android Retrofit Client Code Walkthrough
Module 4: Building Loosely Coupled and Extensible Java Services
Spring Dependency Injection Auto-wiring
Spring Configuration Annotations
Spring Dependency Injection Controller Code Walkthrough
Spring Dependency Injection Controller Test Code Walkthrough
Section 3: Building Database-driven Java Cloud Services
Module 1: Persistent Objects
Object to DB Mapping
JPA
Entities
Repositories
Understanding SQL Injection Attacks
Spring Data Code Walkthrough
Module 2: RESTful Services for Persistent Objects
Spring Data REST
Spring Data REST Code Walkthrough
Section 4: Restricting Service Access with User Accounts
Module 1: Secure HTTP Communication
Man in the Middle Attacks Public Key Infrastructure
HTTPS
Module 2: What was I Saying: Keeping Track of Sessions
Sessions
Spring Security Overview
Spring Security Configuration in Java
Building a Custom UserDetailsService
Setting up a custom UserDetailsService
The Principal
Spring Security Role Annotations
More Complex Expression-based Pre Post Authorize Annotations
Spring Security Controller Code Walkthrough
Spring Security Controller Test Code Walkthrough
Module 3: Authenticating Mobile Clients
Stateful Sessions with Cookies Why They Aren't Ideal for Mobile
Stateless Sessions with Tokens
OAuth 2.0
Spring Security OAuth 2.0
A Spring OAuth 2.0 Secured Service
A Retrofit Oauth 2.0 Client for Password Grants
Section 5: Deploying to the Cloud Scaling
Module 1: General Scaling Strategies
Stateless vs. Stateful Applications
Horizontal Scaling
Auto-scaling Horizontally
Caching
Offloading to Cloud Provider Services
Asynchronous IO in Controllers
Module 2: Scaling Up Data Storage
NoSQL Databases
Optimizing for Key-based Lookups
Optimizing for Reads vs. Writes
Contention Sharding
Mongo DB
Spring Data Mongo DB
Database as a Service
Amazon Dynamo
Spring Data Dynamo DB
App Engine Big Table
Module 3: Automating Packaging Deployment
Deploying to Infrastructure as a Service
Deploying to Amazon EC2
Packaging Web Applications into WAR files
Adapting Spring Boot Applications for Google App Engine
Deploying to App Engine
Module 4: Performance Testing
Intro to Cloud Service Performance Testing
Apache JMeter
Building Realistic Tests
Section 6: Patterns and Frameworks for Concurrent and Networked Server Software [Optional Material]
Module 1: Introduction to the Web Server Case Study
Applying Patterns and Frameworks to Concurrent and Networked Software
Overview of JAWS Web Server Case Study: Part 1
Overview of JAWS Web Server Case Study: Part 2
Overview of JAWS Web Server Case Study: Part 3
Module 2: Patterns and Frameworks for Service Access and Communication
Accidental Complexities with the Sockets API
The Wrapper Facade Pattern
ACE C++ Socket Wrapper Facades
Applying the ACE Wrapper Facades to a Web Client and Server
Module 3: Patterns and Frameworks for Synchronous Event Handling, Connections, and Service Initialization
The Reactor and Acceptor-Connector Patterns
The ACE Reactor Framework
Applying the ACE Reactor to JAWS
The ACE Acceptor-Connector Framework and Applying it to JAWS
Patterns and Frameworks for Service Configuration and Activiation
The Component Configurator Pattern
The ACE Service Configurator Framework
Applying the ACE Service Configurator to JAWS
Applying the Activator Pattern to JAWS
Patterns and Frameworks for Concurrency and Synchronization
The Active Object Pattern
The ACE Task Framework
Applying ACE Task and Acceptor-Connector to JAWS
The Half-Sync/Half-Async Pattern
Implementing Half-Sync/Half-Async Using ACE
The Monitor Object Pattern
Applying the Monitor Object and Synchronization Patterns to JAWS
The Leader/Followers Pattern
Applying the Leader/Followers Pattern and ACE_TP_Reactor to JAWS
Patterns and Frameworks for Asynchronous Event Handling
The Proactor pattern
The ACE Proactor Framework
Applying the ACE Proactor Framework to JAWS
The Asynchronous Completion Token Pattern and Applying it to JAWS
Summary::
Evaluating Patterns and Frameworks for Concurrent and Networked Software
Files:
Week 3- 3 - 14 - Section 2 Module 2 Part 13- Spring Controller Code Walkthrough (18-36).mp4 (35.6 MB)
- 3 - 13 - Section 2 Module 2 Part 12- Spring Boot & Application Structure (9-44).mp4 (23.6 MB)
- 3 - 9 - Section 2 Module 2 Part 9- Handling Multipart Data (9-45).mp4 (23.5 MB)
- 3 - 12 - Section 2 Module 2 Part 11- Custom Marshalling with Jackson Annotations (10-00).mp4 (23.2 MB)
- 3 - 1 - Section 2 Module 2 Part 1- Intro to Java Annotations (9-04).mp4 (21.3 MB)
- 3 - 3 - Section 2 Module 2 Part 3- Intro to JSON (8-17).mp4 (18.2 MB)
- 3 - 4 - Section 2 Module 2 Part 4- The Spring Dispatcher Servlet and Controller Abstraction (7-30).mp4 (17.4 MB)
- 3 - 10 - Section 2 Module 2 Part 10- Generating Responses with the ResponseBody Annotation (6-48).mp4 (16.9 MB)
- 3 - 6 - Section 2 Module 2 Part 6- Accepting Client Data with RequestParam Annotations (5-40).mp4 (14.0 MB)
- 3 - 2 - Section 2 Module 2 Part 2- HTTP to Object Marshalling (5-17).mp4 (12.9 MB)
- 3 - 7 - Section 2 Module 2 Part 7- Accepting Client Data with PathVariable Annotations (4-54).mp4 (12.8 MB)
- 3 - 5 - Section 2 Module 2 Part 5- Intro to Spring Controllers (4-51).mp4 (11.8 MB)
- 3 - 8 - Section 2 Module 2 Part 8- Accepting Client Data with Request Body Annotations & JSON (4-32).mp4 (11.0 MB)
- 2 - 4 - Section 1 Module 2 Part 4- HTTP Polling (13-19).mp4 (33.6 MB)
- 2 - 9 - Section 2 Module 1 Part 4- Video Servlet Walkthrough (14-23).mp4 (27.6 MB)
- 2 - 7 - Section 2 Module 1 Part 2- A First Cloud Service with a Servlet (11-18).mp4 (26.7 MB)
- 2 - 1 - Section 1 Module 2 Part 1- Building Cloud Services on HTTP (9-38).mp4 (26.5 MB)
- 2 - 5 - Section 1 Module 2 Part 5- Push Messaging (9-54).mp4 (24.6 MB)
- 2 - 10 - Section 2 Module 1 Part 5- Securely Handling Client Data & Avoiding Injection Attacks (8-26).mp4 (21.5 MB)
- 2 - 2 - Section 1 Module 2 Part 2- Protocol Layering & HTTP Design Methodologies (6-39).mp4 (16.0 MB)
- 2 - 3 - Section 1 Module 2 Part 3- REST (5-28).mp4 (13.1 MB)
- 2 - 8 - Section 2 Module 1 Part 3- Request Routing and Web.xml (4-45).mp4 (11.4 MB)
- 2 - 6 - Section 2 Module 1 Part 1- What are Servlets- (4-23).mp4 (11.0 MB)
- 6 - 3 - Section 4 Module 3 Part 3- OAuth 2.0 & the Password Grant Flow.mp4 (33.2 MB)
- 6 - 5 - Section 4 Module 3 Part 5- Spring Security OAuth 2.0.mp4 (29.7 MB)
- 6 - 1 - Section 4 Module 3 Part 1- Stateful Sessions with Cookies & Why They Aren-'t Ideal for Mobile.mp4 (27.1 MB)
- 6 - 12 - Section 5 Module 1 Part 5- Offloading to Cloud Provider Services.mp4 (25.1 MB)
- 6 - 11 - Section 5 Module 1 Part 4- IaaS vs. PaaS.mp4 (21.5 MB)
- 6 - 9 - Section 5 Module 1 Part 2- Load Balancing Stateless vs. Stateful Applications.mp4 (19.3 MB)
- 6 - 10 - Section 5 Module 1 Part 3- Auto-scaling.mp4 (17.9 MB)
- 6 - 8 - Section 5 Module 1 Part 1- Horizontal Scaling.mp4 (17.9 MB)
- 6 - 4 - Section 4 Module 3 Part 4- Using Tokens for Resource Access.mp4 (11.9 MB)
- 6 - 2 - Section 4 Module 3 Part 2- Intro to OAuth 2.0.mp4 (9.3 MB)
- 5 - 3 - Section 4 Module 1 Part 1- Sessions.mp4 (30.2 MB)
- 5 - 5 - Section 4 Module 1 Part 3- HTTPS.mp4 (30.1 MB)
- 5 - 1 - Section 3 Module 2 Part 1- Spring Data REST.mp4 (29.6 MB)
- 5 - 4 - Section 4 Module 1 Part 2- Man in the Middle Attacks & Public Key Infrastructure.mp4 (20.0 MB)
- 5 - 10 - Section 4 Module 2 Part 5- Accessing User Accounts When Handling Requests.mp4 (18.8 MB)
- 5 - 7 - Section 4 Module 2 Part 2- Spring Security Overview.mp4 (17.4 MB)
- 5 - 6 - Section 4 Module 2 Part 1- Understanding Session Security.mp4 (16.0 MB)
- 5 - 9 - Section 4 Module 2 Part 4- Building a Custom UserDetailsService (6-30).mp4 (15.8 MB)
- 5 - 2 - Section 3 Module 2 Part 2- Spring Data REST Code Walkthrough.mp4 (13.3 MB)
- 5 - 8 - Section 4 Module 2 Part 3- Spring Security Method Annotations.mp4 (12.2 MB)
- 4 - 1 - Section 2 Module 3 Part 1- Introduction to Retrofit (13-35).mp4 (29.8 MB)
- 4 - 4 - Section 2 Module 4 Part 1- Spring Dependency Injection & Auto-wiring (12-32).mp4 (29.1 MB)
- 4 - 10 - Section 3 Module 1 Part 4- Understanding SQL Injection Attacks.mp4 (26.2 MB)
- 4 - 2 - Section 2 Module 3 Part 2- Retrofit Client Code Walkthrough (12-39).mp4 (24.4 MB)
- 4 - 8 - Section 3 Module 1 Part 2- The Java Persistence API (9-58).mp4 (23.2 MB)
- 4 - 9 - Section 3 Module 1 Part 3- Spring Repositories.mp4 (20.6 MB)
- 4 - 11 - Section 3 Module 1 Part 5- Spring Data Code Walkthrough.mp4 (19.8 MB)
- 4 - 6 - Section 2 Module 4 Part 3- Spring Dependency Injection Code Walkthrough (9-39).mp4 (19.0 MB)
- 4 - 5 - Section 2 Module 4 Part 2- Spring Configuration Annotations (6-41).mp4 (16.3 MB)
- 4 - 7 - Section 3 Module 1 Part 1- Object to Database Mapping (5-17).mp4 (12.8 MB)
- 1 - 8 - Section 1 Module 1 Part 8- URLs & Query Parameters (8-45).mp4 (20.2 MB)
- 1 - 5 - Section 1 Module 1 Part 5- What is a Cloud Service- (7-45).mp4 (19.9 MB)
- 1 - 9 - Section 1 Module 1 Part 9- Mime Types & Content Type Headers (7-54).mp4 (17.9 MB)
- 1 - 12 - Section 1 Module 1 Part 12- HTTP Response Codes (7-22).mp4 (16.7 MB)
- 1 - 11 - Section 1 Module 1 Part 11- HTTP Response Anatomy (5-36).mp4 (13.3 MB)
- 1 - 13 - Section 1 Module 1 Part 13- Cookies (5-31).mp4 (13.2 MB)
- 1 - 10 - Section 1 Module 1 Part 10- Request Body Encoding (5-55).mp4 (13.2 MB)
- 1 - 3 - Section 1 Module 1 Part 3- Intro to HTTP (5-17).mp4 (12.3 MB)
- 1 - 7 - Section 1 Module 1 Part 7- HTTP Request Anatomy (4-40).mp4 (11.1 MB)
- 1 - 6 - Section 1 Module 1 Part 6- HTTP Request Methods (4-45).mp4 (11.0 MB)
- 1 - 2 - Section 1 Module 1 Part 2- What are Communication Protocols- (4-14).mp4 (10.4 MB)
- 1 - 4 - Section 1 Module 1 Part 4- Why HTTP- (4-11).mp4 (9.7 MB)
- 1 - 1 - Section 1 Module 1 Part 1- Introduction (3-06).mp4 (7.2 MB)
Code:
- http://94.228.192.98/announce
- udp://11.rarbg.com/announce
- udp://tracker.openbittorrent.com:80/announce
- udp://9.rarbg.com:2710/announce
- udp://coppersurfer.tk:6969/announce
- http://tracker.ex.ua:80/announce
- udp://tracker.prq.to/announce
- udp://pow7.com:80/announce
- udp://tracker.publicbt.com:80/announce
- udp://tracker.token.ro:80/announce
- udp://10.rarbg.com/announce
- udp://tracker.istole.it:80/announce
- udp://exodus.desync.com:6969/announce
- udp://open.demonii.com:1337/announce