Distributed Programming Study Guide
Distributed Programming Study Guide
Distributed Programming Study Guide
STUDY GUIDE
NQF NQF MODULE NAME MODULE YEAR SEMESTER
LEVEL CREDITS CODE
All rights reserved. Apart from any reasonable quotations for the purposes of research criticism or review as
permitted under the Copyright Act, no part of this book may be reproduced or transmitted in any form or by
any means, electronic or mechanical, including photocopy and recording, without permission in writing from
the publisher.
SECTION A – INTRODUCTION
Welcome to Distributed Programming. This module will introduce you to the design and development of Java
applications in distributed systems. Some of the concepts to be learned are as follows:
a. Introduction to Java EE
b. Distributed Multitier Applications
c. Java EE Containers
d. Java EE APIs
e. Java Platform APIs
2. Introduction
The purpose of this study guide is to provide the learner with information needed that is crucial in completing this
module. This study guide serves as a contract between the learner and the lecturer regarding what is to be done,
and on which date it should be completed. All rules and regulations stipulated in this study guide should be
aligned with the standard rules and regulations of Tshwane University of Technology. Any deviation from these
standard rules and regulations will be regarded as invalid and must be reported to the HOD of the module’s
custodian department.
Distributed Programming
4. Module Credits/Weight
15
This Distributed Programming module is a 15 credit module with core learning modules on NQF 7 which prepares
the student to solve system’s distribution problems emanating in IT industry. The main focus of this module is to
equip the student with the requisite skills to create automated applications that are distributed over distinct
application servers using the JEE framework in the software industry.
This module is placed in the fourth year as it is core module and will help in the creation of expert programmers
and developers in the field of distributed systems. Once a student completes this module, he/she will have a
solid understanding of distributed systems in a working environment.
The NQF of this module is 7 and on this level it is expected that learner should demonstrate the ability to
understand and apply the advanced concepts, facts and terms, select and apply standard methods, procedures
and/or techniques, as well as design an information system, and compliance to working environment.
The graduate attributes of the institution expect students to be well rounded individuals which will demonstrate
knowledge, skills and applied competencies. By employing the proper outcomes, assessment methods and level
descriptors this module will contribute to the knowledge and skills such as identifying and explaining key concepts
of principles of programming and applying these skills to either the working environment or their own lives.
The students will be employable because of an array of skills and knowledge they will acquire. Industry expects
students to:
Communicate effectively,
Be critical thinkers,
Be team players and yet independent thinkers.
Through this module students will acquire skills and applied competencies by doing investigation and applying
solutions to provided issues through group work and presentation of solutions.
The intent of the module is to ensure that the student is well-rounded and this can only be ensured if the
individuals can interact effectively with their changing environment and act responsive and responsible within a
variety of social and cultural settings. Aligned to the graduate attributes and ELO’s students will be guided
through activities like problem-solving and reflexive practices. In addition, students will acquire the following:
Knowledge: understand key terms, concepts, facts, principles, rules and theories.
Skills: select and apply standard methods, procedures and/or techniques.
7. Code of conduct
Students may not be late for class. (Do not enter the class if you are late)
Students should attend all classes. (The 85% class attendance rule applies)
Cell phones should be switched off during class times.
No eating or drinking in the classes.
Students should strictly follow the schedule, unless otherwise stated. (page 4 of this study guide)
Students should also look on the notice board outside the lecturer’s office for updates on marks and
communication.
Each student should have a text book.
Students should prepare for each class by researching the module.
Students can see lecturer during consultation times, otherwise make an appointment with the lecturer
for another time.
Students should submit their sick note or death certificate within the specified time period.
Since 2011 a student is not allowed to register more than three times for a module.
All issues pertaining to the module must be reported to your lecturer. If the issue cannot be resolved
adequately it must be escalated to the module coordinator. If the issue is still not resolved, it must be
escalated to the section head. If the issue is still not resolved, it can be escalated to the HOD of the
module’s custodian department (see section A). Students may only report issues to the Dean of the
faculty if the issue cannot be resolved by the HOD. Under no circumstances will issues be addressed if the
proper reporting chain was not followed (see the figure below)
This module has one primary module coordinator that is responsible for coordinating the activities of the module.
If this module is offered at one of the other learning sites and the primary module coordinator does not reside on
the leaning site, the activities of this module is managed by the primary module coordinator via a site
coordinator. There is one facilitator assigned to facilitate the teaching of each group.
9.3. Facilitators
The time table for class attendance is obtainable from the leaner management system (LMS).
13. Consultation
Consultation time slots will be displayed on each lecturer’s office door. In the case where the time slots are not
displayed students must please contact the lecturer one day in advance via email and arrange a consultation
session. Please remember to mention your name & surname, student number, module code and topic to be
discussed during the consultation session.
14. Schedule
The schedule indicates all-important dates for activities such as, class activities, assignment due dates, class tests,
excursions, practicals, project due dates, computer-based tests submission dates etc. Please ensure that you
follow the schedule of your assigned group.
By Michael Sikora.
ISBN 978-1-847195-60-9
This book is essential for the successful completion of this course. You are strongly advised to acquire the
resource.
None
This module will make use of EC.TUT.AC.ZA for as its formal e-learning platform. Last minute, important
notifications, like changes in lecture venue, time, deadlines for assignments, etc. will be placed on this platform.
Electronic resources will also be distributed via this platform.
21. Alignment of this module with the relevant exit level outcomes / graduate attributes
The students should be able to do the following after the completion of the module:
Scope of knowledge, in respect of which a learner is able to demonstrate: detailed knowledge of the main
areas of one or more fields, disciplines or practices, including an understanding of and an ability to apply
the key terms, concepts, facts, principles, rules and theories of that field, discipline or practice to unfamiliar
but relevant contexts; and knowledge of an area or areas of specialisation and how that knowledge relates to
other fields, disciplines or practices
Knowledge literacy, in respect of which a learner is able to demonstrate a understanding of different forms
of knowledge, schools of thought and forms of explanation within an area of study, operation or practice,
and an awareness of knowledge production processes
Method and procedure, in respect of which a learner is able to demonstrate an ability to evaluate, select and
apply appropriate methods, procedures or techniques in processes of investigation or application within a
defined context
Problem solving, in respect of which a learner is able to demonstrate an ability to identify, analyse and solve
problems in unfamiliar contexts, gathering evidence and applying solutions based on evidence and
procedures appropriate to the field, discipline or practice
Ethics and professional practice, in respect of which a learner is able to demonstrate an understanding of the
ethical implications of decisions and actions, within an organisational or professional context, based on an
awareness of the complexity of ethical dilemmas f. Accessing, processing and managing information, in
respect of which a learner is able to demonstrate an ability to evaluate different sources of information, to
select information appropriate to the task, and to apply well-developed processes of analysis, synthesis and
evaluation to that information
Producing and communicating information, in respect of which a learner is able to demonstrate an ability to
present and communicate complex information reliably and coherently using appropriate academic and
professional or occupational conventions, formats and technologies for a given context
Context and systems, in respect of which a learner is able to demonstrate an ability to make decisions and
act appropriately in familiar and new contexts, demonstrating an understanding of the relationships between
systems, and of how actions, ideas or developments in one system impact on other systems
Management of learning, in respect of which a learner is able to demonstrate an ability to evaluate
performance against given criteria, and accurately identify and address his or her task-specific learning needs
in a given context, and to provide support to the learning needs of others where appropriate
Accountability, in respect of which a learner is able to demonstrate an ability to work effectively in a team or
group, and to take responsibility for his or her decisions and actions and the decisions and actions of others
within well-defined contexts, including the responsibility for the use of resources where appropriate.
The general purpose of this module is to provide students with the necessary techniques to design and implement enterprise applications that are automated and
distributed over distinct application servers using the JEE framework. Emphasis will be placed on equipping students to be competent problem solvers that can
design and write programs that will be error free, reliable and easy to modify and maintain. The outline of the module is as follows:
Each learning goal has a set of learning outcomes that will be assessed using assessment criteria. The tables below show the learning outcomes, assessment
criteria, teaching activities, and assessment methods.
Learning outcome: A.1. Introduction to the JEE framework. (Reference Book: Notes will be provided)
Assessment Criteria (noun + verb + measurable standard) Teaching activities Assessment method
A.1.1 - A justification for using the JEE framework is made within the distributed Lecturer controlled: Explain the Formative: Written class and semester
environment. concepts, demonstrate the tests
A.1.2 - An assessment of multitier applications is made in relation to distributed
application of the concepts Summative: Project and end of
environment.
A.1.3 - An assessment of JEE containers is made in relation to distributed using problem based or case semester examination
environment. studies.
A.1.4 - An assessment of the JEE APIs supported by web containers is made in Peer controlled: Reinforce the
relation to distributed environment.
concepts in practical and
A.1.5 - An assessment of the JEE APIs supported by EJB containers is made in
relation to distributed environment. tutorial sessions.
A.1.6 - An assessment of the JEE APIs supported by Application Client containers is Student controlled:
made in relation to distributed environment. demonstrate the understanding
by tests, assignments,
presentations
Assessment Criteria (noun + verb + measurable standard) Teaching activities Assessment method
B.1.1 - A justification for using EJBs is made within the distributed environment. Lecturer controlled: Explain the Formative: written class and semester
B.1.2 - A comparison between Session and Message-Driven Beans is made in a distributed concepts, demonstrate the tests.
environment.
application of the concepts Summative: Project and end of
B.1.3 - The @Stateless annotation is used to create a stateless EJB class.
B.1.4 - The @Stateful annotation is used to create a stateful EJB class. using problem based or case semester examination
B.1.5 - The @EJB annotation is used to get the reference of an EJB class . studies
B.1.6 - The JNDI is used to get the reference of an EJB class. Peer controlled:
B.1.7 - A web application that implements stateless session beans is created in a
Reinforce the concepts in
distributed environment.
B.1.8 - A web application that implements stateful session beans is created in a distributed practical and tutorial sessions
environment. Student controlled:
B.1.9 - A web application that implements message-driven beans is created in a
demonstrate the understanding
distributed environment.
by tests, assignments,
presentations.
Assessment Criteria (noun + verb + measurable standard) Teaching activities Assessment method
C.1.1 - A justification for using JPA is made with the distributed environment. Lecturer controlled: Explain Formative: written class and semester
C.1.2 - A comparison between entities and objects is made in relation to database the concepts, demonstrate the tests.
connectivity.
application of the concepts using Summative: Project and end of
C.1.3 - An assessment of entity managers is made in relation to database connectivity.
problem based or case studies. semester examination
C.1.4 - The role of persistence unit is assessed within database connectivity.
C.1.5 - The @Entity annotation is used to map an entity to a table in a database. Peer controlled:
C.1.6 - The attributes of the @Entity annotation are used to customize an entity in a Reinforce the concepts in
database. practical and tutorial sessions.
C.1.7 - The @Id annotation is used to create a primary key in a database.
Student controlled:
C.1.8 - The @GeneratedValue annotation is used to create a customized primary key in a
database. demonstrate the understanding
C.1.9 - The @Column annotation is used to change the default settings of a table’s by tests, assignments,
column in a database.
presentations.
C.1.10 - The @SecondaryTable annotation is used to map an entity to multiple tables in a
database.
C.1.11 - A justification for using composite primary keys is made in a database.
C.1.12 - The @Temporal annotation is used to create timestamps in the database.
C.1.13 - The @Transient annotation is used to prevent an instance field from being
mapped to a column in the database.
C.1.14 - The @OneToOne annotation is used to create a one-to-one relation between
tables in a database.
C.1.15 - The @OneToMany annotation is used to create a one-to-many relation between
tables in a database
C.1.16 - The @ManyToOne annotation is used to create a many-to-one relation between
tables in a database
Learning outcome: D.1. Implementation asynchronous methods in session beans. (Reference Book: Notes will be provided.)
Assessment Criteria (noun + verb + measurable standard) Teaching activities Assessment method
D.1.1 - A justification for using asynchronous methods in made within the Lecturer controlled: Explain the Formative: written class and semester
distributed environment. concepts, demonstrate the tests
D.1.2 - The @Asynchronous annotation is used to create an asynchronous method in a application of the concepts using Summative: Project and end of
distributed environment.
problem based or case studies. semester examination
D.1.3 - The Future<V> interface is used to retrieve the results of an asynchronous method
invocation in a distributed environment. Peer controlled: Reinforce the
D.1.4 - The Future<V> interface is used to cancel the invocation of an asynchronous concepts in practical and
method in a distributed environment. tutorial sessions.
D.1.5 - The Future<V> interface is used to determine the status of an asynchronous
Student controlled:
method invocation in a distributed environment.
D.1.6 - A web application that implements asynchronous method invocation is created in a demonstrate the
distributed environment. understanding by tests,
assignments, presentations.
Assessment Criteria (noun + verb + measurable standard) Teaching activities Assessment method
E.1.1 - A justification for using timer services is made within the distributed environment . Lecturer controlled: Explain the Formative: written class and semester
E.1.2 - A comparison between programmatic and automatic timers is made in relation to concepts, demonstrate the tests
distributed environment.
application of the concepts using Summative: Project and end of
E.1.3 - A justification for using Calendar-based timer attributes is made in relation to
problem based or case studies. semester examination
distributed environment.
E.1.4 - A determination on how a timer session can be cancelled is made in relation to Peer controlled: Reinforce the
distributed systems. concepts in practical and
E.1.5 - A determination on how a timer can be saved is made in relation to distributed tutorial sessions.
systems.
Student controlled:
E.1.6 - A determination on how timer information can be obtained is made in relation to
distributed systems. demonstrate the understanding
E.1.7 - A web application that implements a programmatic timer is created in relation to by tests, assignments,
distributed systems.
presentations.
E.1.8 - A web application that implements an automatic timer is created in relation to
distributed systems.
Assessment Criteria (noun + verb + measurable standard) Teaching activities Assessment method
F.1.1 - A justification for using interceptors is made within the distributed environment Lecturer controlled: Explain the Formative: written class and semester
F.1.2 - A comparison of the different types of interceptors is provided concepts, demonstrate the tests
F.1.3 - An interceptor session bean is create and applied across web application session
application of the concepts using Summative: Project and end of
beans to intercept their logging functionality
problem based or case studies. semester examination
F.1.4 - A chained interceptors are created and used to intercepts web application
session beans Peer controlled: Reinforce the
F.1.5 - Web application that excludes certain interceptors from a chain is created concepts in practical and
within the distributed environment.
tutorial sessions.
Student controlled:
demonstrate the understanding
by tests, assignments,
presentations.
Assessment Criteria (noun + verb + measurable standard) Teaching activities Assessment method
G.1.1 - A justification for using transactions is made within the distributed environment Lecturer controlled: Explain the Formative: written class and semester
G.1.2 - An assessment of the Java Transaction API (JTA) is made in relation to concepts, demonstrate the tests
distributed systems
application of the concepts using Summative: Project and end of
G.1.3 - An assessment of container-managed transaction is made within the
problem based or case studies. semester examination
distributed environment
G.1.4 - A comparison between container-managed and bean-managed transactions Peer controlled: Reinforce the
is made in relation to distributed systems concepts in practical and
G.1.5 - A web application that uses container-managed transactions is created in a tutorial sessions.
distributed systems
Student controlled:
demonstrate the understanding
by tests, assignments,
presentations.
Assessment Criteria (noun + verb + measurable standard) Teaching activities Assessment method
H.1.1 - A justification for using messaging is made within the distributed Lecturer controlled: Explain the Formative: written class and semester
environment concepts, demonstrate the tests
H.1.2 - An assessment of the JMS API is made within the distributed environment application of the concepts using Summative: Project and end of
H.1.3 - A comparison between point-to-point and publish/subscribe messaging is
problem based or case studies. semester examination
made within the distributed system
H.1.4 - A comparison between Synchronous and Asynchronous message Peer controlled: Reinforce the
consumption is made within the distributed system concepts in practical and
H.1.5 - Web application that uses point-to-point messaging is created within the tutorial sessions.
distributed environment
Student controlled:
H.1.6 - A Web application that implements publish/subscribe messaging is created
within the distributed environment. demonstrate the understanding
by tests, assignments,
presentations.
Assessment
Method Example/description Possible uses/assessment tasks Where to use
Alternative True/False; Yes/No questions; multiple choice Recall of information Formative
response Ability to discriminate Summative
questions
Assertion/reason Consists of an assertion and supporting explanation. The learner has to decide Ability to weigh up options Formative
questions whether the assertion and explanation are true, and if true, whether the and to discriminate Summative
explanation is a valid reason for the assertion. Sometimes the learner is asked RPL
to select his/her answer from a list of possibilities, e.g. True; True + Valid; True
+ Invalid.
Aural/oral tests These are mainly used to generate evidence on learners’ ability to listen, Interpretation of ideas Formative
interpret, communicate ideas and sustain a conversation in the language of Expression of ideas Summative
assessment. RPL
Completion Learners are presented with a question with a pre-determined answer Recall of factual information Formative
questions/short consisting of a few words, or may be given a statement where key words are Test understanding and Summative
answer omitted. They are then required to complete the statement by filling in the application of knowledge, e.g. RPL
questions word(s). Such questions may also involve the use of numbers, diagrams and in mathematical concepts
graphs.
Examinations / These usually consist of a range of questions. Learners are required to respond Recall of information Formative
tests to questions within a specified time. Cognitive skills such as Summative
problem solving or analyses RPL
Extended These are usually in a written form. There are few restrictions on the content Open-ended debates or other Formative
response and form of the response. Continuous prose is normally required, but there responses Summative
questions may be limits on the length and/or time allocated. Arguments RPL
Reports
Grid questions Grid questions and matching questions are variants of each other. The learner is Recall of information Formative
/matching presented with two lists – a set of statements and a set of responses. The Application of knowledge Summative
questions learner is required to indicate which response from the second list corresponds RPL
or matches each statement in the first list. Grid questions are presented in grid
format. They differ from the other selected-response assessment instruments
The learner will write four assignments and 2 class tests. These assessments will collectively contribute 60%
towards the final mark. A supervised summative test will be written at the end of the semester. The summative
assessment will contribute 40% towards the final mark. The full assessment schedule is shown under in section 14
(Schedule)
This is a practical module. In order to pass this module, you need a minimum of 50% for the final mark and your
summative assessment mark must be above 40%. A student must achieve a final mark of 50% or above to pass
the module
27. Assignments
There are four assignments schedule for this module. Students will be expected to submit their work on certain
due dates. Failure to stick to deadlines will results in students’ work not being marked. So keeping to deadlines is
very important in this module.
Test administration:
The mode of delivery for this module is online. This module will be presented on Saturdays in 3 hours session.
The quality of the study guide is maintained by the Quality Assurance committee of Tshwane University of
Technology.
Students evaluate the study guide using the lecturer assessment questionnaire that is completed twice a
semester.
The quality of the question papers and memorandums is maintained by an external moderator and internal
moderator with qualifications higher than the year the module is being presented in.
The quality of the marking is overseen by the external moderator that ensures the marking of the scripts is fair. A
moderator report is completed for each major assessment.
Where possible guest speakers will come and address the class on advanced programming issues.
32. Plagiarism
All students have a moral obligation and responsibility to maintain the following academic integrity principles in
the production and presentation of academic outputs, regardless of the presentation format and/or work type:
Each student should only submit his/her own original academic work, except when formal group work was
required in the production of the academic output;
Each student should accurately indicate in all academic outputs when information is used that was produced by
another scholar by referencing it in accordance with a recognised referencing convention system;
No student should use, present or submit someone else’s electronic works, multimedia products or artistic works
as if it is his/her own;
No student should allow another person/s to use or copy from his/her academic output and present it as their
own work;
Each student is required to attach a signed Declaration of Originality (see Annexures A and B) for each academic
output submission (e.g. assignment, project, manuscript, dissertation and thesis); and Each student has the
responsibility to request assistance from staff members should they require guidance and/or advice about
plagiarism in their academic outputs.
Students have a moral obligation to report plagiarism incidents in academic and/or research environments. All
whistle-blowers are protected in terms of the Policy on Prevention of Fraud, Corruption and Theft (Policy #:
VCPOL010).
Plagiarism is a form of misconduct. The relevant part (Chapter 15 – Student Discipline) of the Prospectus, Part 1
(Students’ rules and regulations) read as follows:
“Any student who contravenes the provisions of rule 15.1 of the disciplinary code is guilty of misconduct and will
be dealt with in terms of the disciplinary code for students …
15.1.16 Handing in any written assignment for assessment in which the essential parts of the assignment have
been copied from the work of another person, or any form of plagiarism.”
All students must be fully aware that plagiarism offences/penalties can seriously affect their academic status and
progress at TUT and other tertiary institutions. In the most serious cases, it can result in dismissal from the
University and/or formal cancellation/retraction of current/previously submitted academic outputs. In addition,
the University may indicate the nature and outcome of all plagiarism offences/penalties when it is required to
provide a reference or conduct statement for the particular student.
33. Glossary
A “Module coordinator”, is a lecturer responsible for coordinating the activities within the module. A module
coordinator is responsible for setting up the study guide and ensuring that all the participants stay on schedule.
A “Secondary module coordinator”, is a lecturer responsible for assisting the module coordinator with activities
that scaled due to large student number quantities within the module.
A “Custodian department”, is the department responsible for managing the module and all the resources
required by the module.
Appendix A