University of Sheffield

Anthony J H Simons, MA PhD

Senior Lecturer in Computer Science
University Computer Science Testing Group Space Tech Europe Industry

Cloud Computing

I no longer teach this module. The materials below are archived for historic interest and may have been updated in the meantime. Please do not rely on this for up-to-date information.

This page is the main source for lectures, lab-handouts and assignments. This course will cover a mix of business-oriented material about the growth of Cloud Computing; and technical material describing how to build your own Cloud platform using the standard Linux/Apache/Tomcat/Servlet/MySQL technology stack offered on the DCS OpenNebula private cloud infrastructure.

Cloud Computing
Lecture Contents Handout
01: What is Cloud Computing? An introduction to what cloud computing is, and what it is not PDF
02: The Business Case for the Cloud Compelling business reasons for migrating to the cloud, or not PDF
03: Cloud Service Models Infrastructure-, Platform- and Software-as-a-Service models PDF
04: OpenNebula Infrastructure Configuring Infrastructure-as-a-Service using OpenNebula PDF
05: Web Services: Cloud Foundations Web application server technologies and Internet protocols PDF
06: Servlets and Containers Java servlets and the Apache Tomcat web application server PDF
07: The Java Servlet API A complete tutorial walk-through of the Java Servlet API PDF
08: Concurrency, Scaling, Sessions Multithreading, servlet pools and sessions with Java servlets PDF
09: The Presentation Tier Presentation concerns, HTML and responsive design styles PDF
10: XML Processing in Java Reading, writing, searching and modifying XML structures in Java PDF
11: Java Server Pages Template web pages with scripts for inserting dynamic content PDF
12: Java Beans and Web Patterns Page-centric, page-with-bean and controller servlet styles PDF
13: Cloud Data Storage Data storage concerns, NoSQL and relational database options PDF
14: Data Processing in Java Overview of the Java Database Connectivity API (JDBC) PDF
15: Security in the Cloud Overview of general security, plus cloud multi-tenancy issues PDF
16: Service-Oriented Architectures Service-oriented computing with SOAP, WSDL, REST and AJAX PDF
17: Message Queues and Brokers Message queue middleware and publish-subscribe brokers PDF
18: Quality and Pricing in the Cloud Pricing strategies, service level agreements, monitoring quality PDF
19: Future Cloud Ecosystems Quality assurance in brokered cloud service platforms PDF

Self-Study Lab Contents Handout
Week 1: Introduction to Linux Booting Linux, useful desktop tools and command-line programming PDF
Week 2: Basic Web Programming Building a website, programming simple web forms with CGI PDF
Week 3: Java CGI Programming Programming more advanced web forms with CGI and Java PDF
Week 4: Java Servlet Programming Installing and configuring Tomcat, running your first Java servlet PDF
Week 5: Cloud Servlet Deployment Run your second Java servlet; copy and deploy to your cloud VM PDF
Week 6: Platform & Apps in Tomcat Platform design, app bundle uploading and unpacking strategies PDF

Assignment Description Deadline
Project Teams (Complete) A dynamically-updated list of properly-constituted teams Available now
Stage 0: Team Sign-Up A web-form allowing you to sign up as a pair for a team of four Friday week 3
Stage 1: Product Pitch Instructions on how to make your pitch for a cloud product Friday week 6
Stage 2: Product Development Instructions on how to develop and market your cloud product Tuesday week 11
Stage 3: Product Testing Instructions on how to test another cloud ecosystem Monday week 12

Resource Description Source
Using FileZilla How to set up FileZilla to upload files to your cloud VM W Briggs, 2018
Install JEE with Tomcat How to install Eclipse for JEE and a local Tomcat server W Briggs, 2018
CloudBase Template HTML styling for the dashboard of your platform, using W3-CSS AJHS, 2017
Introduction to XML Introduction to XML, document well-formedness and validation AJHS, 2017
Introduction to Databases Introduction to Relational Databases, SQL queries and updates AJHS, 2017
Advanced Databases in Java Batch processing, transactions and connection pools with JDBC/JNDI AJHS, 2017
Advanced JSP with Taglibs The JSP Standard Tag Library (JSTL) and Expression Language (EL) AJHS, 2017
MOLE Discussion Forum The self-help discussion forum for solving technical problems, on MOLE (MOLE sign-in)
OpenNebula Cloud IaaS An introduction to OpenNebula, the cloud resource in DCS OpenNebula, 2017
Compaq Cloud Memorandum The first ever historic reference to cloud computing in print Compaq, 1996