What you will study
How is it possible that computer systems appear to be able to do many things at the same time? When working on my PC, how is it possible that I can seamlessly switch from one activity to another? How can a web server respond to huge numbers of clients simultaneously, without getting everyone’s details in a muddle?
These are the sorts of questions addressed in this module where you will study the topic of concurrency, i.e. a number of tasks in the process of being executed at the same time, and the topic of distribution such as we may find in internet applications. You’ll study the theory and practice of developing such systems, using a combination of written study materials and programming activities using Java and the NetBeans Java IDE. You will carry out practical work using the industry standard Java EE framework for large enterprise systems. This should provide a sound basis for further study, potentially leading to industry certification in this area. Occasionally we’ll ask you to do some further research by yourself.
This module will be valuable to anyone who wants to understand how concurrent distributed systems work. This is an area of software engineering that is changing rapidly, with new technologies emerging (and fashions changing) all the time, and this module will help you understand how things work ‘under the hood’. This should give you a good foundation to work from, whether you go on to be part of a team implementing and putting together such a system, or whether your role is to be able to communicate with others about such systems and to make professional judgements.
The module consists of three parts.
The first part of the module concentrates on the study of concurrency. We study the concept of a process and how processes communicate. Before you start this module, you should have a good working knowledge of Java so that you can further build on this by studying threading and Java’s concurrency mechanisms.
In the second part, you concentrate on distribution issues, and use the example of the Java Enterprise framework for large enterprise systems. Distributed systems consist of a number of different parts, each with their own functionality and their own set of problems. The module looks at the various parts and explains the techniques available for dealing with them, including Java servlets, JSP and Enterprise Java Beans. You’ll also study how the communication is organised and consider some of the security concerns that are important to distributed systems.
In the final part of the module you’ll look at how to deal with heterogeneous systems and at the .NET framework. You’ll also briefly investigate mobile systems and look at future developments that are likely to be relevant for concurrent distributed systems.
Throughout the module you’ll study the development of systems, moving from simple stand-alone systems, to distributed systems with web access, to online auction systems. You’ll work initially on very simple scenarios, progressing to more complex and realistic scenarios by the end of the module.
As you study the module, you will be using email, online forums and the World Wide Web for communication with the University, your tutor and other students.
If you are considering progressing to The computing and IT project (TM470), this is one of the OU level 3 modules on which you could base your project topic. Normally, you should have completed one of these OU level 3 modules (or be currently studying one) before registering for the project module.
Entry
This is an OU level 3 module. OU level 3 modules build on study skills and subject knowledge acquired from studies at OU levels 1 and 2. They are intended for students who have studied with the OU before in a related subject. You must be familiar with programming in Java (such as can be gained from studying Putting Java to work (M257)). It assumes the ability to create and amend Java applications that involve:
-
interfaces and abstract classes, polymorphism, packages and access modifiers
-
graphical user interface components, event handling techniques, and the use of exceptions
-
the use of Java APIs, such as the Collections package.
If you have any doubt about the suitability of the module, please contact our Student Registration & Enquiry Service.
Teaching and assessment
Support from your tutor
You will have a tutor who will help you with the study material and mark and comment on your written work, and whom you can ask for advice and guidance. We may also be able to offer group tutorials or day schools that you are encouraged, but not obliged, to attend. Where your tutorials are held will depend on the distribution of students taking the module.
Contact our Student Registration & Enquiry Service if you want to know more about study with The Open University before you register.
Assessment
The assessment details for this module can be found in the facts box above.
You will be expected to submit your tutor-marked assignments (TMAs) online through the eTMA system unless there are some difficulties which prevent you from doing so. In these circumstances, you must negotiate with your tutor to get their agreement to submit your assignment on paper.