Module Information

Module Identifier
Module Title
Academic Year
Semester 1
Other Staff

Course Delivery

Delivery Type Delivery length / details
Lecture 20 Hours.
Practical 8 un-assessed worksheets with solutions will be provided to assist learning


Assessment Type Assessment length / details Proportion
Semester Assessment Assignment; programming project and associated written report  100%
Supplementary Exam Resit failed examination and/or 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:

demonstrate specialized skills to achieve the reuse of design expertise through the application of software design patterns and particularly in the context of designing distributed applications.

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

assess critically the appropriateness of using Representational State Transfer (REST) web services and World Wide Web Consortium WS-* web services when devising XML-based communication channels between distributed applications;

build a simple, multi-tier distributed application that employs the use of appropriate design patterns and XML-based communication technologies, and exhibits simple Rich Internet Application characteristics;

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

demonstrate the use of a variety of agile techniques to the construction of multi-tier distributed applications.

Brief description

Students will learn how to build multi-tier Internet/intranet applications. Organizations are increasingly making their systems accessible over the Internet, or internally across organizational intranets. Access is often from web browser clients and increasingly from other web applications. Typically, these applications comprise a client tier, web tier, business logic tier and enterprise information system tier. Students will learn how to build a simple multi-tier application using agile techniques, Rich Internet Application technologies, and XML-based web services. Enterprise application design patterns will be examined and used.


Introduction to building Internet-based applications (3 lectures):

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.

Building a simple web application using Ruby-on-Rails (6 lectures, 4 worksheets):

An introduction to Ruby. The Rails framework and its support for the MVC (Model 2) enterprise design pattern. Introduction of a running example used during the module. Use of Behaviour Driven Development.

XML-based web services (5 lectures, 2 worksheets):

W3C web service technologies (SOAP/WSDL protocols). Representational State Transfer (REST) web services. Design issues: Introduction to Service-Oriented Architecture. Application of XML-based web services to the running example.

An introduction to Rich Internet Applications (3 lectures, 1 worksheet):

Use of AJAX: concepts and the XMLHttpRequest object. Client-side examples parsing XML and JSON (Javascript Object Notation). Some examples of the use of Javascript AJAX libraries. Ajaxifying the running example.

Web 2.0 social networking (1 lecture, 1 worksheet): Use of REST to integrate with one or more well-known social networking sites. A discussion of such sites and their support for ROA.

Enterprise design patterns (2 lectures):

An examination of several further design patterns not discussed earlier in the module.

Module Skills

Skills Type Skills details
Information Technology The module is IT focused. Students will use computer tools to develop and run their applications.
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

Reading List

Essential Reading
Flanagan, David (Feb. 2008) The Ruby Programming Language O'Reilly Media, Incorporated Primo search Griffiths, David. (2008.) Head first Rails :a learner's companion to Ruby on Rails /David Griffiths. O'Reilly Ruby, Sam (March 2009) Agile Web Development with Rails 3rd ed. Pragmatic Bookshelf, The [Imprint] Primo search Thomas, Dave (June 2008) Programming Ruby:The Pragmatic Programmers' Guide 3rd ed.,Revised O'Reilly Media, Incorporated Primo search
Supplementary Text
Chelimsky, David The RSpec Book:Behaviour Driven Development with RSpec, Cucumber, and Friends Pragmatic Bookshelf, The [Imprint] Primo search Papazoglou, M. (2008.) Web services :principles and technology /Michael P. Papazoglou. Pearson Prentice Hall Primo search Richardson, Leonard (May 2007) Restful Web Services O'Reilly Media, Incorporated Primo search
Reference Text
Chaffer, Jonathan (April 2009) Learning JQuery 1. 3 Packt Publishing, Limited Primo search Clark, Mike. (2008.) Advanced Rails recipes /by Mike Clark and the Rails Community. Pragmatic ; Primo search Fulton, Hal Edwin (c2007.) The Ruby way /Hal Fulton. 2nd ed. Addison-Wesley Olsen, Russ (Dec. 2007) Design Patterns in Ruby Addison-Wesley [Imprint] Primo search


This module is at CQFW Level 6