Academic year 2014-15

Development of Distributed Applications

Degree: Code: Type:
Bachelor's Degree in Computer Science 21426 Compulsory subject, 3rd year
Bachelor's Degree in Telematics Engineering 22608 Optional subject
Bachelor's Degree in Audiovisual Systems Engineering 22674 Optional subject

 

ECTS credits: 4 Workload: 100 hours Trimester: 1st

 

Department: Dept. of Information and Communication Technologies
Coordinator: Davinia Hernández-Leo
Teaching staff:

Davinia Hernández-Leo, David Llanos 

Language:

Mostly in English

Timetable:
Building: Communication campus - Poblenou

 

Introduction

"Development of Distributed Applications" (DAD) is a mandatory specific suject in the third year of the Bachelor's Degree in Computer Science.

The main objective of the subject is to study the principles and approaches behind the development of applications whose elements are connected by communication networks. This includes concepts around distributed systems, architecture and middleware models for implementing distributed applications, difficulties present in this type of systems, the techniques used to solve those problems, and existing technologies conforming to the models that facilitate the design and development of distributed applications.

Complementary or more advanced aspects such as, for example, distributed computing, the design of distributed data models, advanced aspects of programming for the Web, or distributed network protocols; are beyond the content of this subject. Students will have the opportunity to delve into these matters through elective subjects. 

 

Prerequisites

DAD builds on top of the subjects "Networks and Services" and "Protocols and Distributed Applications." These subjects are focused on the TCP/IP protocols sustaining communication networks. DAD rises the level of abstraction to a higher leel in order to facilitate the development of applications in distributed environments. Besides, the subject requires knowledge from "Software Engineering", "Fundamentals of Programming" and "Object Oriented Programming". In addition, the course presupposes knowledge regarding the areas of "Operating Systems" and "Computer Architecture", and recommends to follow the course of "Network Architecture" also during the first quarter of the third year of the Bachelor.

 

Associated competences

General skillsSpecific competences

Instrumental

1. Capacity for analysis and synthesis. 

2. Ability to apply knowledge to analyze situations and solve
problems.

3. Ability to organize and plan.

4. Ability to communicate properly (orally and written), both in expert and inexperienced contexts.

Interpersonal

1. Ability to work in team.

Systemic

1. Ability to apply and adapt knowledge with flexibility and creativity to new contexts and situations (e.g., to evaluate a
new technology).

2. Ability to progress in the process of self-directed lifelong learning.

3. Capacity and motivation for quality achievement.



 

1. Being able to evaluate the implications of using a
distributed model for the implementation
of complex systems.

2. Mastering the operation of protocols used in network applications.

3. Understanding the different communication models between applications and how to apply them in the design of a system.

4. Knowing the technologies typically used
for the implementation of
distributed systems.

5. Capacity to design a distributed system.

6. Being able of implementing a
distributed system using specific technologies.

7. Ability to develop applications that 
can interoperate with existing distributed services.

 

 

Assessment

To pass successfully this subject, it is necessary to fulfil what is detailed in the table below.

Evaluation elementsEvaluation Procedure The minimum mark to pass the subjectPercentage in the final mark of the subject

Activities in seminars and lessons

Short individual practical activities and analysis of cases and readings to solve before, during and after seminar sessions. This includes participation in activities (such as analysis of real cases of distributed applications) propose in the plenary sessions.

All the activities proposed for seminars must be completed. (No recoverable)

 20%

Project

One practical project (divided in blocks) to be completed in dyads.

Minimum 5 points out of 10. (Not recoverable)

 40%

Aggregated written test

 It is the end of the term. It covers all the subject matter (theory, validating practical activities and seminars) and consists of a test and a set of problems and questions.

Minimum 5 points out of 10.  

(Recoverable in July)

 40%

To pass the subject it is required to obtain at least 5 points (out of 10) as a final mark.

 

Contents

- Unit 1. Basics of Distributed Systems: definitions, distributed architectures, non-functional requirements, transparency, middleware concept.

- Unit 2. The origins of Middleware. Distributed applications on Unix. Inter-Process Communication, Sockets programming. Remote Procedure Call (RPC).

- Unit 3. Object Oriented Middleware (Distributed Objects). Distributed applications with Java Remote Method Invocation (RMI). Multi-language distributed applications: Common Object Request Broker Architecture (CORBA)

- Unit 4. Component Oriented Middleware. Component models application logic-, data-and presentation-oriented (J2EE / EJB, .NET / DCOM, Servlets, ...).

- Unit 5. Service Oriented Middleware. SOA model, Web Services, SOAP, REST, JSON.

- Unit 6. Advanced aspectst. Cloud Computing: definitions, characteristics and types. WebSockets.

 

Methodology

TypeModalityDescription

Lecture

In the classroom, in a big group

Use of PC, projector and whiteboard to support the explanations.

The explanations are intertwinned with activities that involve the active participation of students (e.g., analysis of real cases around the design of distributed applications, discussions about articles on specific models and technologies). 

Seminar

 In the computer room, in small groups

Students work mostly individually to resolve short practical activities applying technologies covered in the subject. Group dynamics are also occasionally used to share and discuss individual solutions.

 

Practical activities

 In the computer room, in small groups

Project focused on the development of a distributed application. The project is to be realised in dyads (groups of two) and include the writing of a technical report.

Preparation of seminars, work on practical activities and study of theoretical concepts

Outside the classroom, individually and by groups

Preparing seminars and continuation of work done in seminars and plenary activities. Advancing practical activities and writing reports. Study of theoretical concepts for the preparation of seminars, practical activities and written tests.

 

DAD has 4 credits that correspond to 100 hours of time commitment, of which 36 are face-to-face. These 36 hours are divided into lectures (18 hours), medium group sessions (10 hours) and seminar sessions with small groups of students (8 hours). The distribution of hours for units is detailed in the table below.

 Hours in the classroomHours outside the classroom
UnitsFull groupMedium groupSmall group 

B1

4

 

 

8

B2

2

 

2

10

B3

2

 

 

4

B4

2

 

 2

10

B5

4

10

 2

20

B6

4

 

 2

 12

Total:

 18

 10

 8

 64

Total: 100

 

Resources

The recommended basic bibliography for consultation is: Couloris, G., Dollimore, J., Kindberg, T. (2015). Distributed Systems: Concepts and Design (4th Edition). Addison Wesley.

Complementary bibliography and didactic resources for each block will be suggested along the course via the AG.