Module Information

Module Identifier
Module Title
Academic Year
Semester 1
Mutually Exclusive
Only available to MSc students
Other Staff

Course Delivery



Assessment Type Assessment length / details Proportion
Semester Assessment Assignment one.  Approximately 40 hours, software development with a 3,000 word report.  50%
Semester Assessment Assignment two.  Approximately 40 hours, research-based investigation producing a 5,000 word report.  50%
Supplementary Assessment Resubmission of failed/non-submitted coursework components or ones of equivalent value.  100%

Learning Outcomes

On successful completion of this module students should be able to:

1. Demonstrate specialised skills to achieve the reuse of design expertise through the application of software design patterns and particularly in the context of designing and building distributed applications.

2. Critically describe the generic architecture of multi-tier, distributed applications.

3. Assess critically the appropriateness of various Internet-based communication technologies to solving the communication requirements of a variety of distrbuted applications.

4. Build, and then critcally appraise, a simple, multi-tier distrbuted application that employs the use of appropriate design patterns and communication technologies, and exhibits simple Rich Internet Applicatioin characteristics.

5. Demonstrate a critical appreciation of design issues encountered when developing multi-tier, distributed applications.

6. Demonstrate a critical appreciation of the security requirements of distributed applications.

7. Demonstrate the undertaking of original research within the area of building distributed applications.


Teach best practice in building web applications with rich and responsive user interfaces; enterprise design patterns; support for business-to-business application interoperation; and security. Give students the opportunity to build a distributed application that employs best practice in these areas and in agile methodologies and accessibility requirments, taught in other modules. Make students aware of the opportunities and limitations of various distribution technologies. Allow students to demonstrate their ability to apply such technologies.

Brief description

The majority of software developed today is distributed. This module gives students the opportunity to build a distributed application that employs best practice: agile methodologies taught in other modules, buiding web applications with rich and responsive user interfaces, enterprise design patterns, support for business-to business application interoperation, and security.
Students will be made aware of the opportunities and limitation of various distribution technologies, and also demonstrate their ability to apply such technologies.


1. An introduction to building Internet-based applications.
General introduction to the module. Distributed application architectures: client and server (two-tier, three-tier, n-tier), peer-to-peer. Distributed object systems: opportunities and limitations.

2. Building a simple web application using a web application framework such as Ruby-on-Rails. The web application freamework and its support for the MVC enerprise design pattern and for object-relational mapping.
Introduction of a running example used during some of the module.
Testing the application. Any new language, such as Ruby, will be introduced.

3. Internet-based communication technologies and architectures.
Support for interoperability by various technologies: e.g. sockets, Java Remote Method Invocation (RMI), XML-RPC and Soap-based web services. Representational State Transfer (REST) web services. Design issues. Resource Oriented Architecture (ROA). Application of XML-based web services to the running example. Interoperability with Web 2.0 social networking sites.

4. An introduction to building Rich Internet Applications.
Use of Ajax: concepts and the XMLHttpRequest object. Client-side examples of parsing XML and JSON (Javascript Object Notation). Some examples of the use of Javascript Ajax libraries. Ajaxifying the running example. Java Media Framework (JMF) or Adobe Flex or Java FX.

5. Security of distributed applications.
Including cryptography, symmetric and asymmetric algorithms, Java Security Model example, Transport Layer Security protocol, Pluggable Authentication Module architecture, mitigating web hacking attacks (cross-site scripting, SQL injections and others), single sign-on.

Module Skills

Skills Type Skills details
Application of Number
Communication Writing assignment report.
Improving own Learning and Performance Self study.
Information Technology The module is IT focused. Students will use computer tools to develop and run their applications.
Personal Development and Career planning
Problem solving Deciding on an appropriate design when developing a multi-tier application.
Research skills Students will be required to acquire further knowledge from journals and on-line sources. The second assignment contains an element of original research.
Subject Specific Skills Software development skills.
Team work

Reading List

Recommended Text
Ruby, Sam. (c2011.) Agile web development with Rails. 4th ed. Pragmatic Bookshelf Primo search Scott Oaks (June 2001) Java Security O'Reilly Primo search Sun Microsystems Inc (19/11/1999) Java Media Framework, API Guide
Supplementary Text
Richardson, Leonard (c2007.) RESTful web services /Leonard Richardson and Sam Ruby. O'Reilly Primo search
Recommended Consultation
Flanagan, David. (2008.) The Ruby programming language /David Flanagan and Yukihiro Matsumoto. 1st ed. O'Reilly Primo search
Consult For Futher Information
Rails screencasts Ruby core language documentation Ruby standard library documentation


This module is at CQFW Level 7