Prerequisite Modules
Description
Distributed systems are
multi-process systems whose components are located in diverse,
heterogeneous, geographically separated environments. They suffer from
numerous problems that non-distributed systems are not susceptible to,
thus making the study of distributed systems intellectually and
technically challenging. Middleware is a software layer that exists
for the purposes of hiding to some degree the implementation details
of the underlying network from the developer of application software
in distributed and networked environments. In keeping with the famous
End-to-End argument, it is neither necessary nor desirable to hide
every detail, thus requiring the application developer to modify
somewhat their development approach when building systems in a
distributed environment. This module analyses a number of middleware
environments and technologies, judging their strengths and weaknesses
in order to facilitate selection of an appropriate platform for a
given distributed application. The underlying theory of distributed
systems forms a foundation upon which the various technologies will be
evaluated.
Aims
-
To teach students the advanced
aspects of distributed systems.
-
To demonstrate how the Object
Oriented approach is scaled for distributed applications.
-
To get students to develop
applications using a variety of middleware technologies such as CORBA,
J2EE Technologies and others.
-
To teach students how to evaluate
competing middleware technologies, and select an appropriate
technology for a given application.
Learning Outcomes
On successful completion of this
module, the student will be able to:
-
Discuss authoritatively the
fundamental characteristics of distributed systems.
-
Develop reasonably sophisticated
distributed applications using one or more middleware technology.
-
Evaluate middleware technologies
and select an appropriate technology for a given application,
providing analyses and justifications.
-
Demonstrate an understanding of
how the fundamentals of distributed systems that are managed by
middleware technologies.
-
Compare and contrast the
requirements for distributed system development with development in
a localised environment.
-
Demonstrate the suitability of the
Object Oriented approach for distributed system development.
Learning and Teaching Methods
Lectures, self-study, labs,
tutorials, and any combination of discussion, case study,
problem-solving exercises, readings, seminars, and computer-based
learning.
Content
Distributed System Fundamentals:
Concurrency, failure models, replication, backup, fragmentation,
naming and directory services.
Advanced Distributed Systems
Issues: Processes and scheduling, time,
distributed file systems, distributed memory. Concurrency:
Synchronization, transaction management.
Middleware:
Purpose of middleware, middleware platforms, differences and
similarities between middleware platforms, strengths and weaknesses of
middleware platforms.
Component Models:
Interface Definition Language, language independence and IDL
compilers, client-server stubs, remote method invocation, directory
services, locating and registering components. Component servers.
Component Services:
Naming services, event services, database services, transaction
services, security services, visual components and presentation
services.
Common Object Request Broker
Architecture (CORBA): Object management
architecture, CORBA IDL, CORBA language bindings, the interface and
implementation repositories, the basic and portable object adaptors,
the common object services, the common object services.
J2EE:
Java Remote Method Invocation, Java IDL, the RMI registry, Java
interface definitions, Java DataBase Connectivity, Swing components,
Enterprise JavaBeans, the Java Transaction Service.
Assessment
The methods of assessment to be
used to measure the learning objectives stated above are written
examination and continuous assessment including one or more of
assignment, essay, problem-solving exercise, oral presentation, and
class or lab tests.
-
Continuous Assessment: 30%
-
Examination: 70%
Recommended
Reading
-
George Coulouris, Jean Dollimore
and Tim Kindberg (2004), Distributed Systems: Concepts and Designs
(4th Edition), Prentice Hall
-
Rickard Oberg (2001), Mastering RMI:
Developing Enterprise Applications in Java and EJB, John Wiley &
Sons Inc
Supplemental Reading
-
Chris Britton (2004), IT
Architectures and Middleware: Strategies for Building Large,
Integrated Systems, Addison Wesley
-
Nick Kassem, Stephanie Bodoff,
Inderjeet Singh (Editor), Mark Johnson (Editor) (2002), Designing
Enterprise Applications with the J2EE, Addison Wesley
-
EJB Resource
http://www.theserverside.com/
|
|
For more information contact
Ciarán O'Leary
|