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 |
"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.
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.
General skills | Specific competences |
---|---|
Instrumental 1. Capacity for analysis and synthesis. 2. Ability to apply knowledge to analyze situations and solve 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 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 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 5. Capacity to design a distributed system. 6. Being able of implementing a 7. Ability to develop applications that
|
To pass successfully this subject, it is necessary to fulfil what is detailed in the table below.
Evaluation elements | Evaluation Procedure | The minimum mark to pass the subject | Percentage 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.
- 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.
Type | Modality | Description |
---|---|---|
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 classroom | Hours outside the classroom | ||||
---|---|---|---|---|---|
Units | Full group | Medium group | Small 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 |
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.