Developing a web application based purely on client-side technologies
25%
Test I:
Open book test, based on client-side development technologies only (a compiler will be available, but not Internet access)
15%
Coursework II:
Developing a web application based on both client and server technologies, including the spring framework that needs to be utilised
40%
Test II:
Open book test, based on the entire module (a compiler will be available, but not Internet access)
20%
Qualifying Condition(s)
A weighted aggregate mark of 50% is required to pass the module.
Module Overview
The computer industry, and specifically enterprises, requires distributed and interoperable information systems in order to function and remain competitive. Such distributed systems evolve continuously due to cheaper availability of hardware and high-speed communications. This evolution has drawn new lines in systems architecture design development and allows big corporations to build robust, modular, and reusable components. This module tries to demonstrate the latest and most popular technologies used for building enterprise applications. Example topics of study include n-tier architectures, integration approaches, build and test environments, persistence approaches, and performance issues. Although the module covers theoretically most popular technologies, it focuses on Java and J2EE implementation principles.
Prerequisites/Co-requisites
Familiarity with basic programming principles, object oriented programming and HTML syntax are useful.
Module Aims
The main aim of this module is to help the student develop the necessary skills and familiarity to use the latest techniques together with state-of-the-art technologies in order to develop Web applications for an enterprise environment.
Learning Outcomes
By the end of the module the students should be able to:
understand the concept of clients and servers and databases, and examine technologies used to support distributed applications.
understand the architectural and programming paradigms used in enterprise distributed system development
categorise and evaluate these tools according to different criteria such as applicability and ease of use, and intelligently participate in the selection of appropriate tools and architectures, or combination, to solve enterprise-related problems;
use the presented technologies in practice to develop enterprise distributed applications.
Module Content
Introduction to enterprise distributed systems:
The concept of enterprises
Architecture and programming paradigms for distributed system development.
The notion of n-tier architectures: clients, servers and middleware.
Client-side Web programming:
Client-side scripting languages: JavaScript.
Rich client experience: Ajax
Programming Web Servers:
Principles of servlets and JavaServer Pages.
Developing applications for accessing relational databases.
Web Application Frameworks
Principles of frameworks.
Popular frameworks: Spring, Struts 2 and JSF
Persistence principles with Hibernate
Enterprise Systems:
Building and maintaining enterprise systems
Methods of Teaching/Learning
The module will consist of approximately 15 hours of lectures and 15 hours of lab sessions.
Selected Texts/Journals
No specific book is required for this module. There are many Web-based resources available, linked from the module Web page.
Recommended books are:
Kayal D., Pro Java EE Spring Patterns: Best Practices and Design Strategies Implementing Java EE with the Spring Framework, Apress, 2008, ISBN: 1430210095
Vukotic J., Chakraborty A., Ditt A. & Machacek A., Pro Spring 2.5, Apress, 2008, ISBN: 1590599217
Ahmad Reza Seddighi, Pro Spring Persistence with Hibernate, Apress, 2008, ISBN: 1430216484
Jendrock, E., Ball, J., Carson, D., Evans, I., Fordin, S., and Haase, K., The Java EE 5 Tutorial, 3rd Ed.,Prentice Hall, 2006, ISBN: 0321490290
Walls C. & Breidenbach R., Spring in Action, 2nd Ed., Manning Publications, 2007, ISBN: 1933988134
Ince, D., Developing Distributed and E-commerce Applications, 2nd Ed., Addison-Wesley, 2003, ISBN: 0-321-15422-3.