G54CCS - Connected Computing at Scale

I co-convene this module with Dr. Martin Flintham. If you have any questions or errata for my parts of the course, or for these web pages, please mail me.


The concepts and challenges associated with modern cloud and mobile computing platforms, and their development and use, including:



Lecture notes made available here for teaching purposes only.

Some good general background material is available at http://ds.informatik.rwth-aachen.de/teaching/ws0910/cloud_computing.

Lecture 1 Housekeeping

Given by Dr. Flintham. Due to excessive numbers, this lecture was limited to housekeeping/admin information only, and was cut short.

Lecture 2 The Cloud

Given by Dr. Flintham. This lecture introduces cloud computing, its evolution, and the three main variants today (SaaS, PaaS, IaaS).

Lecture 3 Datacenters

  • Types of Cloud
  • From Datacenter to Blade
  • Achieving Scale
  • Homogeneity
  • Reliability
  • Physical Constraints

Data center density hits the wall? Amazon’s James Hamilton on How to Build a Better Datacenter James Hamilton’s blog

Lecture 4 Virtualization

  • Why Virtualization?
  • Abstraction & Layering
  • The Operating System
  • Virutalization
  • Benefits

Why we moved off the cloud When “clever” goes wrong HP/Calxeda ARM servers

Lecture 5 Networking

  • Network hierarchy
  • Network resources
  • Security
  • Addressing
  • Routing & Forwarding
  • Naming

Current AT&T network latency

Lecture 6 Storage

  • Storage
  • Disk evolution
  • Abstractions
  • SQL vs. NoSQL
  • Tradeoffs
  • Scale: Facebook Messaging

Eventually Consistent Storage infrastructure behind Facebook Messages at HPTPS 2011

Lecture 7 Map Reduce

Given by Dr. Flintham. This lecture introduces cloud software development, taking Map Reduce as an example big data processing technique..

Lecture 8 Ajax and REST

Given by Dr. Flintham. This lecture continues with cloud software development, looking at highly interactive web applications.

Lecture 9 Separation of Concerns

Given by Dr. Flintham. This lecture continues with cloud development paradigms and the need for separation of concerns in particular.


Some background notes, including some common “gotchas” are available at http://www.cs.nott.ac.uk/~rmm/teaching/2011-g54ccs/labs/README.pdf.

Lab 1 Introducing GAE

A basic introduction to developing Google App Engine web applications in Python. The app returns a simple static “Hello World!” page.

Lab 2 Some Python

Making the page more dynamic, and introducing more simple Python syntax.

Lab 3 A Calculator

Adding support for the user to pass parameters into your application.

Lab 4 Counting

Using the storage backend, templates and POST.

Lab 5 Guestbook

An more open-ended exercise, consolidating material from labs 1–4 by building a simple guestbook web application.

Lab 6 Tickets

Introducing tickets, a means to get a server-generated token to identify interaction with the webservice at some granularity.

Lab 7 External Services

Using the Twitter Search API, a simple example of how to build a GAE application that makes use of a third-party webservice.