Study-Unit Description

Study-Unit Description


CODE CIS2103

 
TITLE Distributed Computing and Distributed Databases

 
UM LEVEL 02 - Years 2, 3 in Modular Undergraduate Course

 
MQF LEVEL 5

 
ECTS CREDITS 5

 
DEPARTMENT Computer Information Systems

 
DESCRIPTION This study-unit will introduce students to fundamentals of distributed computing of both monolithic applications as well as object - oriented distributed applications. In case of object oriented applications interoperability of objects running on different computer platforms and developed by different languages are the main issues.

Part 1:

The first part of the study-unit is focused on a an understanding of Client/Server models mainly as regards connection and communication issues between the Client and Server through classical (non-object oriented) applications.

Topics in brief:
Client/Server model. Connection issues (connectionless, connection oriented). Socket structure and programming. Programming interface to communication protocols. Addressing issues, static and dynamic address binding, using name servers.

Client software design. Server software design. Case studies of four basic types of servers. Multiprotocol and Multiservice services. Server connectivity to databases. ODBC model. Accessing databases using SQL.

Part 2:

The second part of the study-unit is focused on Client/Server computing through objects while introducing typical available technologies for solving interoperability of Client and Server objects.

Topics in brief:
- Concept of automation remote server objects by the client;
- COM/DCOM model;
- Java-RMI - architecture and features, naming services. Building both Client and Server Applications;
- .NET Web Services - architecture and features. XML and SOAP protocols. Building both Client and Server Applications;
- .NET Web Services - architecture and features. XML and SOAP protocols. Building both Client and Server Applications.

Tools for Client/Server Computing allowing interoperability - MS Visual Studio NET, Net Beans and similar. Their use for practical implementation of various client/server implementations in a windowing environment.

Part 3:

Another accent of this study-unit is the study of distributed data and functions, across computer networks. The theory, design, specification, implementation, and performance of distributed database systems are pursued. Also the inherently different set-ups of a multidatabase are emphasized.

Topics include principles of naming and location, atomicity, query processing and optimisation, resource sharing, concurrency control, synchronization, recovery procedures, deadlock detection and avoidance, security, distributed access and control, distributed systems design, consistency and fault tolerance. Case studies supplemented by a hands-on approach will further enhance the student’s understanding of this study-unit.

Study-unit Aims:

The aim of this study-unit is to cover socket programming for monolithic Client/Server applications and typical distributed technologies for object-oriented applications. The programming language used is Java. Where applicable, interoperability of objects running on different computer platforms will be stressed.

Another aim is to convey the importance and issues related to having and moving data distributed over a communication network. Proper database logical design is mapped into a physical model that address network transparencies. A number of techniques, based on replication, are given. An important part of the unit is to show the importance of concurrency issues at local (and with write ahead logs) and distributed level.

Learning Outcomes:

1. Knowledge & Understanding:

By the end of the study-unit the student will be able to:

- Explain Client/Server model architecture and its n-tier variants;
- Explain connection issues between Client and Server applications (connectionless, connection oriented);
- Describe Socket structure and programming interface to communication protocols;
- Explain addressing issues, static and dynamic address binding, using name servers;
- Explain features of four basic types of servers as well as multiservice services;
- Explain server connectivity to databases using ODBC model;
- Explain concept of automation remote server objects by the client;
- Describe and explain fundamental remote object distributed architectures;
- Identify problems of interoperability of objects on different computer platforms;
- Design distributed database systems (partitioning and replication);
- Explain concurrency control and other data synchronization methods, recovery procedures, deadlock detection and management;
- Explain the principles of naming and location of objects in a database;
- Explain transaction processing and its requirements (e.g. ACID);
- Apply transaction processing in a distributed environment (ending with CAP theorem);
- Design distributed systems design with transactional consistency and fault tolerance;
- Design multi-databases.

2. Skills:

By the end of the study-unit the student will be able to:

- Design and implement Client side software;
- Design and implement monolithic Server side software of Iterative and Concurrent servers;
- Design and implement Java-RMI application;
- Design and implement Java Web Service applications both on Client (consumer) and Servicing side;
- Design of distributed databases according to resources and data availability;
- Design mechanism available for building distributed databases (e.g. replication, data partitioning, data connections);
- Design basic security features;
- Implement data concurrency protocols.

Main Text/s and any supplementary readings:

- D.E.Comer, D.L.Stevens Internetworking with TCP/IP: Client-Server Programming and Applications Prentice Hall 1996 ISBN 0-13-262148-7
- B.Quin, D.Shute Windows Socket Network Programming Addison Wesley Professional 1996 ISBN 0-201-63372-8
- D.T.Dewire Client Server Computing McGraw-Hill 1993 ISBN 0-07-016732-X
- Harvey M. Deitel, Paul J. Deitel Web Services: A Technical Introduction, Prentice Hall, ISBN 0-13-046135-0
- Harvey M. Deitel, Java Web Services: For Experienced Programmers, Prentice Hall, ISBN-0-13-046134-2
- Orfali R. The Essential Distributed Objects Survival Guide Wiley 1996 ISBN 0-471-12993-3
- Mowbray J.T., Zahavi R. The Essential Corba: Systems Integration Using Distributed Objects John Wiley & Sons, Inc. 1995 ISBN 0-471-10611-9
- M.T. Ozsu, P.V. Valduriez., Principles of Distributed Databases, PH Publishers.

 
RULES/CONDITIONS Before TAKING THIS UNIT YOU MUST TAKE CIS1222 AND TAKE CIS1043 OR TAKE CIS1041 OR TAKE CIS1042

 
ADDITIONAL NOTES Knowledge required: Any procedural programming paradigm

 
STUDY-UNIT TYPE Lecture and Practical

 
METHOD OF ASSESSMENT
Assessment Component/s Assessment Due Sept. Asst Session Weighting
Assignment SEM1 Yes 20%
Examination (3 Hours) SEM1 Yes 80%

 
LECTURER/S Thomas Mercieca
Joseph Vella (Co-ord.)

 

 
The University makes every effort to ensure that the published Courses Plans, Programmes of Study and Study-Unit information are complete and up-to-date at the time of publication. The University reserves the right to make changes in case errors are detected after publication.
The availability of optional units may be subject to timetabling constraints.
Units not attracting a sufficient number of registrations may be withdrawn without notice.
It should be noted that all the information in the description above applies to study-units available during the academic year 2023/4. It may be subject to change in subsequent years.

https://www.um.edu.mt/course/studyunit