Distributed Applications

You are here

Credits
6
Types
Specialization complementary (Information Technologies)
Requirements
  • Prerequisite: XC
Department
AC
This subject is about the application level of computer networks and distributed applications, including mobile devices applications.
Specifically, HTTP protocol based applications and services will be shown together with other application level protocols, indicating some specific differentiating aspects of mobile applications. It will also discuss the representation and interchange of multimedia content (audio, video, etc.) using streaming and download.
Finally, some security mechanisms at application level will be also discussed.

Teachers

Person in charge

  • Silvia Llorente Viejo ( )

Others

  • Jaime M. Delgado Merce ( )

Weekly hours

Theory
2
Problems
0
Laboratory
2
Guided learning
0.4
Autonomous learning
5.6

Competences

Technical Competences

Common technical competencies

  • CT6 - To demonstrate knowledge and comprehension about the internal operation of a computer and about the operation of communications between computers.
    • CT6.4 - To demonstrate knowledge and capacity to apply the characteristics, functionalities and structure of the Distributed Systems and Computer and Internet Networks guaranteeing its use and management, as well as the design and implementation of application based on them.
  • CT7 - To evaluate and select hardware and software production platforms for executing applications and computer services.
    • CT7.2 - To evaluate hardware/software systems in function of a determined criteria of quality.
  • CT8 - To plan, conceive, deploy and manage computer projects, services and systems in every field, to lead the start-up, the continuous improvement and to value the economical and social impact.
    • CT8.1 - To identify current and emerging technologies and evaluate if they are applicable, to satisfy the users needs.
    • CT8.4 - To elaborate the list of technical conditions for a computers installation fulfilling all the current standards and normative.

Technical Competences of each Specialization

Information technology specialization

  • CTI1 - To define, plan and manage the installation of the ICT infrastructure of the organization.
    • CTI1.4 - To select, design, deploy, integrate, evaluate, build, manage, exploit and maintain the hardware, software and network technologies, according to the adequate cost and quality parameters.
  • CTI2 - To guarantee that the ICT systems of an organization operate adequately, are secure and adequately installed, documented, personalized, maintained, updated and substituted, and the people of the organization receive a correct ICT support.
    • CTI2.1 - To manage, plan and coordinate the management of the computers infrastructure: hardware, software, networks and communications.
  • CTI3 - To design solutions which integrate hardware, software and communication technologies (and capacity to develop specific solutions of systems software) for distributed systems and ubiquitous computation devices.
    • CTI3.1 - To conceive systems, applications and services based on network technologies, taking into account Internet, web, electronic commerce, multimedia, interactive services and ubiquitous computation.
    • CTI3.2 - To implement and manage ubiquitous systems (mobile computing systems).
    • CTI3.3 - To design, establish and configure networks and services.
  • CTI4 - To use methodologies centred on the user and the organization to develop, evaluate and manage applications and systems based on the information technologies which ensure the accessibility, ergonomics and usability of the systems.

Transversal Competences

Entrepreneurship and innovation

  • G1 [Avaluable] - To know and understand the organization of a company and the sciences which govern its activity; capacity to understand the labour rules and the relation between planning, industrial and business strategies, quality and benefit. To develop creativity, entrepreneur spirit and innovation tendency.
    • G1.3 - To have strong decision-making skills. To use knowledge and strategic skills for the creation and management of projects, apply systematic solutions to complex problems, and design and manage the innovation in the organization. To demonstrate flexibility and professionalism when developing her work.

Appropiate attitude towards work

  • G8 [Avaluable] - To have motivation to be professional and to face new challenges, have a width vision of the possibilities of the career in the field of informatics engineering. To feel motivated for the quality and the continuous improvement, and behave rigorously in the professional development. Capacity to adapt oneself to organizational or technological changes. Capacity to work in situations with information shortage and/or time and/or resources restrictions.
    • G8.3 - To be motivated for the professional development, to face new challenges and the continuous improvement. To have capacity to work in situations with a lack of information.

Objectives

  1. Being able to predict the performance of protocols and interpret the content of messages that use web applications.
    Related competences: CT6.4, CT7.2,
  2. Being able to interpret XML and JSON documents interchanged between web services.
    Related competences: CT8.1, CT7.2,
  3. Being able to configure an application server and launch a web application.
    Related competences: CTI3.3, CTI2.1, CT6.4, CTI1.4,
  4. Being able to interpret the data interchanged between distributed applications.
    Related competences: CT8.1,
  5. Being able to configure an application server and implement web services.
    Related competences: CTI3.3, CTI2.1, CT6.4, CTI1.4,
  6. Being able to configure an application server and implement web applications that make use of Web services.
    Related competences: CTI3.3, G1.3, CTI3.2,
  7. Being able to describe existing formats of information and explain its normal use .
    Related competences: CT8.1,
  8. Being able to describe the client / server paradigm and give examples of protocols that follow it.
    Related competences: CT6.4,
  9. Be able to explain what a communications library is and give examples of existing libraries.
    Related competences: CT8.1,
  10. Be able to explain what an application server is and give examples of existing application servers.
    Related competences: CT8.1,
  11. Being able to describe at a high level specific characteristics of mobile applications.
    Related competences: CTI3.1,
  12. Being able to develop a complete distributed application.
    Related competences: G1.3, CT8.1, CT7.2, CT8.4, CTI4,
  13. Being able to enumerate the differences between the different methods of transmitting multimedia content.
    Related competences: CTI3.1, CT8.1, CT6.4,
  14. Being able to explain the results in practice "that make Web application development using Web services".
    Related competences: CTI3.1, G1.3, CTI2.1, CT8.1, CT6.4, CT7.2, CTI1.4, CTI4,
  15. Being able to find information on a particular topic, apply it in the lab and write a report describing the results.
    Related competences: CTI3.1, G1.3, CT8.1, CT6.4,
  16. Ability to adapt to situations where there is lack of information and / or changes in the initial requirements.
    Related competences: G8.3,
  17. Ability to answer questions related to the work done in the course of practices.
    Related competences: G8.3,
  18. Gain awareness of how to work to get some good results.
    Related competences: G8.3,
  19. Ability to list the different security mechanisms that can be applied to distributed applications.
    Related competences: CT8.1, CT6.4, CTI1.4,

Contents

  1. Introduction
    Application level. Client-Server model. Remote invocation of operations /methods / procedures. Existing communications libraries. Information formats.
  2. Application and service development based on HTTP
    Websites programming. Web Services. Application servers.
    Mobile networks features. Distributed mobile applications programming.
  3. Digital content representation and exchange
    Formats: text, documents, image, video and metadata.
  4. Transmission and distribution systems of multimedia content
    Streaming / download. Distribution Servers.
  5. Security in distributed applications
    Security mechanisms at application level.

Activities

Activity Evaluation act


Developing topic: Introduction

Understanding of the content in order to apply them in the lab associated with the topic.
Objectives: 8 9
Contents:
Theory
2h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
2h

Laboratory of the topic: Basic web application concepts

Understanding of web applications to be developed in the subject. Use of programming tools to check and modify its behaviour.
  • Laboratory: Laboratory session: Week 1
  • Autonomous learning: Practice preparation
Objectives: 1
Contents:
Theory
0h
Problems
0h
Laboratory
2h
Guided learning
0h
Autonomous learning
1h

Developing topic: Development of applications and services based on HTTP

Understanding the content in order to apply them in the lab associated with the topic.
Objectives: 2 3 4 5 6 10 11
Contents:
Theory
6h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
7h

Laboratory of the theme: Developing Web applications

Understanding the configuration and operation of an application server to develop simple web applications.
  • Laboratory: Laboratory session: Weeks 2 to 4
  • Autonomous learning: Practice preparation
Objectives: 3
Contents:
Theory
0h
Problems
0h
Laboratory
6h
Guided learning
0h
Autonomous learning
5h

Developing topic: Representation and exchange of digital content

Understanding the content in order to apply them in the lab associated with the topic.
  • Guided learning: Adequate attitude towards work
Objectives: 2 7
Contents:
Theory
6h
Problems
0h
Laboratory
0h
Guided learning
1h
Autonomous learning
4h

Lab topic: Developing Web Services

Understanding the configuration and operation of an application server to develop web services.
  • Laboratory: Laboratory session: Weeks 5 to 7
  • Autonomous learning: Practice preparation
Objectives: 5
Contents:
Theory
0h
Problems
0h
Laboratory
6h
Guided learning
0h
Autonomous learning
9h

Developing topic: Transmission and distribution of multimedia content systems

Understanding the content in order to apply them in the lab associated with the topic.
Objectives: 13
Contents:
Theory
5h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
5h

Lab topic: Developing web applications that make use of Web services

Understanding the configuration and operation of an application server to develop web applications that make use of Web services.
  • Laboratory: Laboratory session: Weeks 8 and 9
  • Autonomous learning: Practice preparation
Objectives: 5 6
Contents:
Theory
0h
Problems
0h
Laboratory
6h
Guided learning
0h
Autonomous learning
6h

First Theory control

Control of 2 hours long. Evaluated the content of topics 1. Introduction 2. Development of applications and services based on HTTP, 3. Representation and exchange of contents.
Objectives: 1 4 7 8 9 10 11 16 18
Week: 10
Type: theory exam
Theory
1.5h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
8h

Lab interviews (In the lab)

Explanation of work done in practice "Developing web applications that make use of Web services"
  • Laboratory: Laboratory session: Week 10
  • Guided learning: Outside of class hours
  • Autonomous learning: Interview Preparation
Objectives: 14
Contents:
Theory
0h
Problems
0h
Laboratory
4h
Guided learning
0h
Autonomous learning
0h

Lab interview

Interviews to evaluate the lab sessions "Desarrollo web applications that use Web services"
Objectives: 6 12 14 17
Week: 11
Type: assigment
Theory
0h
Problems
0h
Laboratory
0h
Guided learning
3h
Autonomous learning
2h

Subject explanation: Security in distributed applications

Understanding of the different security mechanisms that can be used at application level, such as digital signature, encryption, symmetric and asymmetric keys, privacy or authentication
Objectives: 1 2 4 19
Contents:
Theory
3h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
6h

Lab topic: Exploratory Practice

Understanding the information found on the chosen topic and write a report describing the results.
  • Laboratory: Face laboratory session: Weeks 11 to 14
  • Guided learning: Enterpreneurship and innovation
  • Autonomous learning: Practice preparation
Objectives: 15 16 18
Contents:
Theory
0h
Problems
0h
Laboratory
6h
Guided learning
2h
Autonomous learning
8h

Theory
2h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
4h

Second Theory control

Control of 2 hours duration. Evaluates the contents from part of topic 3. Digital content representation and exchange and topics 4. Transmission systems and distribution of multimedia content and 5. Security in distributed applications
Objectives: 1 2 7 10 13 19
Week: 14
Type: theory exam
Theory
1.5h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
8h

Final exam for the course


Objectives: 1 2 3 4 5 6 7 8 9 10 11 12 13 17 19
Week: 15 (Outside class hours)
Type: theory exam
Theory
3h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
9h

Teaching methodology

The course consists of lectures and laboratory. In the lectures, the professor will introduce the concepts necessary to do the practice and raise issues and cases related to the subject. The student will have a collection of problems to be solved in class.

The laboratory is an important part of the course, as students will achieve the theoretical concepts from a more practical side of nature. Students will practice the statement before attending the laboratory. The statements will be posted on the website of the course. For each practice, there will be a short theoretical explanation and a dash of each practice. The lab sessions are scheduled to be made face after seeing the concepts in the lectures. If not, there will be a brief explanation to the laboratory for proper operation. Students must prepare in practice, reviewing the related theoretical concepts before the lab session.

Evaluation methodology

The evaluation of the course will have two parts: Theory (60%) and laboratory (40%).

The laboratory grade will be calculated from the mark achieved in practices and laboratory interviews.

The theory grade will be calculated from controls grade and/or the final exam, which is divided into two parts, as controls.

The formula for calculating the grade for the course will be:

NF = MAX(0.3*EF1, 0.3*C1) + MAX(0,3*EF2, 0.3*C2) + 0.4 * NL

Where:
NF = Note the end of the course.
EF1 = Final Theory exam, first part, same subjects as C1.
EF2 = Final Theory exam, second part, same subjects as C2.
C1 = First Theory Control.
C2 = Second Theory Control.
NL = Laboratory. Will be calculated based on the average of the practices delivery (50%) and the practices reports and interviews (50%). There are correction rubrics for practices.

Competence evaluation:
Technical competences are evaluated in the laboratory and their value correspons to the 40% of the total mark of the subject. Moreover, the generic competence marks will be extracted from some laboratory activities, as described next.

The generic competence Empreneduria i Innovació will be evaluated in the exploratory practice.
The generic competence Actitud Adequada Davant el Treball will be evaluated at the practice interviews.

Generic competences evaluation: They can have values A, B, C or D (where A corresponds to an excellent standard, B corresponds to a desired level, C corresponds to a sufficient level and D corresponds to a level not achieved). In case the corresponding activities are not done, the grade will be N/A (not applicable).

Bibliography

Basic:

Complementary:

Web links

Previous capacities

- Advanced knowledge in Java programming language.
- HTML knowledge is not required, but it will be used the whole course.
- How to read English technical documentation, manuals and standards.
- Basic knowledge of computer networks: protocols and transport network level, application-level funcions, specially HTTP protocol.
- Basic knowledge of operating systems: user-level UNIX, Windows user-level, organization of an OS, drivers, processes, communication processes, data structures.