Written submission: Design and Implementation, Testing, Evaluation and Reflection
Presentation and Software Demonstration
A weighted aggregate mark of 50% is required to pass the module.
The need for computational power and data storage continues to drive demand for more highly capable systems. Highly data intensive applications demand fast access to terabytes, petabytes, even exabytes of storage; processor intensive applications demand access to various types of processors in various configurations. Such applications are increasingly being developed in both scientific and industrial contexts and need to be variously scalable and supportable for large numbers of geographically distributed users. This module will provide insights into how Cloud Computing attempts to meet the needs of such applications.
The aim of this module is to provide a practical introduction to applications which place significant demands on computational resources, with a focus on the emerging topic of Cloud Computing. Current considerations of Clouds are variously all-encompassing. The module will introduce the key concepts of Clouds and relationships to other distributed computing paradigms such as Grids, High Performance Computing (HPC) and Peer to Peer (P2P) systems for compuationally intensive applications. Technologies variously used for Clouds in a variety of academic and industrial contexts (e.g. Amazon EC2 Cloud, Google File System, Apache Hadoop, Apache Terracotta, Globus, Condor, Sun Grid Engine) will be introduced to demonstrate principles and concepts including architectures, systems, supporting software applications, resource management and information services, and virtual organizations.
At the end of the module the students should be able to:
Articulate an understanding of the need for and evolution of Cloud Computing and the various challenges involved.
Critically evaluate technologies such as Amazon EC2 Cloud, Google File System, Apache Hadoop in specific industrial and academic contexts.
Demonstrate a critical appreciation of related approaches, technologies and systems.
Contrast and evaluate architectures, key characteristics, and requirements of Cloud infrastructures.
Specify, design, implement and critically evaluate solutions to data or computationally intensive problems by applying relevant knowledge of architectures, systems and software.
Defining Cloud Computing in the context of Grids, HPC and P2P systems
Justification for Cloud Computing in scientific and industrial contexts
Infrastructure as a Service (IaaS), Platform as a Service (PaaS) and Software as a Service (SaaS)
Persistence and Storage
Data and Application Security in the Cloud
Legislative and Regulatory challenges of Cloud Computing
Developing Cloud applications
Cloud Economics and Green IT
Methods of Teaching/Learning
The module will consist of 20 hours of lectures and 10 hours of lab-based tutorials.
Reese, G. (2009) “Cloud Application Architectures: Building Applications and Infrastructure in the Cloud: Transactional Systems for EC2 and Beyond”. O'Reilly Media, Inc. ISBN(13): 978-0596156367, 204 pages.
Li, M and Baker, M (2005) “The Grid Core Technologies”. John Wiley & Sons. ISBN(10): 0-470-09417-6; ISBN(13): 978-0470094174.
Taylor, I.J. (2004) “From P2P to Web Services and Grids: Peers in a Client/Server World”. Springer. ISBN (10): 1-852-33869-5.