Module Information
Course Delivery
Delivery Type | Delivery length / details |
---|---|
Lecture | 40 hours |
Practical | 4 x 1 hour |
Assessment
Assessment Type | Assessment length / details | Proportion |
---|---|---|
Semester Assessment | Assignment Approx. 40 hours, software development with a 3,000 word report. | 50% |
Semester Exam | 2 Hours | 50% |
Supplementary Assessment | Resit failed examination and/or resubmission of failed/non-submitted cousework components or ones of equivalent value. | 50% |
Supplementary Exam | 2 Hours supplementary exam | 50% |
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. 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 distributed applications.
4. Build a simple, multi-tier distributed application that employs the use of appropriate design patterns and communication technologies, and exhibits simple Rich Internet Application characteristics.
5. Demonstrate a critical appreciation of design issues encountered when developing multi-tier, distributed applications.
6. Demonstrate cognizance of the security requirements of distributed applications.
Aims
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. 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. It is important that students are given the opportunity to build a distrbuted application that employs best practice: agile methodologies taught in other modules, building web applications with rich and responsive user interfaces, enterprise design patterns, support for business-to-business application interoperation, and security.
Content
General introduction to the module. Distributed application architectures: client and server (two-tier, three-tier, n-tier).
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 social networking sites.
4. An introduction to using Ajax.
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.
5. Security of distributed applications.
Including cryptography, symmetric and asymmetric algorithms, Transport Layer Security protocol, Pluggable Authentication Module architecture, mitigating web hacking attacks (cross-site scripting, SQL injections and others), single sign-on. The Java Security Model, and the CERT Oracle Secure Coding Standard for Jave.
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. |
Subject Specific Skills | Software development skills. |
Team work |
Reading List
Recommended TextOaks, Scott. (2001.) Java security /Scott Oaks. 2nd ed. O'Reilly Primo search Ruby, Sam. (2013) Agile web development with Rails 4 I recommend that you buy the electronic version from http://pragprog.com/book/rails4/agile-web-development-with-rails since it is more up to date. Pragmatic Bookshelf Supplementary Text
Richardson, Leonard (c2007.) RESTful web services /Leonard Richardson and Sam Ruby. O'Reilly Primo search Recommended Consultation
Thomas, Dave (2013) Programming Ruby 1.9 & 2.0: The Pragmatic Programmers' Guide Ruby 2 is recommended if you decide to use Rails 4 Pragmatic Bookshelf Primo search Rails 4 API documentation http://api.rubyonrails.org Consult For Futher Information
Rails screencasts http://rubyonrails.org/screencasts Ruby core language documentation http://www.ruby-doc.org/core/ Ruby standard library documentation http://www.ruby-doc.org/stdlib/
Notes
This module is at CQFW Level 6