This course focuses on service-oriented architectural model and the service-orientation design paradigm. It will describe Service Oriented Architecture (SOA) concepts and principles, as well as quality considerations for developing modern software systems from a technical and organizational perspective.
Specifically, the course will cover principles of SOA design and SOA design patterns. Furthermore, as SOA involves more than technology, additional topics will include the impact of SOA on culture, organization, and governance.
The aim of this course is to establish a strong understanding of the concepts needed to have an effective working knowledge of SOA methodologies, and SOA systems design.
Person in charge
Claudia Patricia Ayala Martinez (
Technical Competences of each Specialization
CEE5.1 - Capability to participate in improvement projects or to create service systems, providing in particular: a) innovation and research proposals based on new uses and developments of information technologies, b) application of the most appropriate software engineering and databases principles when developing information systems, c) definition, installation and management of infrastructure / platform necessary for the efficient running of service systems.
CEE5.2 - Capability to apply obtained knowledge in any kind of service systems, being familiar with some of them, and thorough knowledge of eCommerce systems and their extensions (eBusiness, eOrganization, eGovernment, etc.).
CEE5.3 - Capability to work in interdisciplinary engineering services teams and, provided the necessary domain experience, capability to work autonomously in specific service systems.
CEC1 - Ability to apply scientific methodologies in the study and analysis of phenomena and systems in any field of Information Technology as well as in the conception, design and implementation of innovative and original computing solutions.
CEC3 - Ability to apply innovative solutions and make progress in the knowledge that exploit the new paradigms of Informatics, particularly in distributed environments.
Generic Technical Competences
CG1 - Capability to apply the scientific method to study and analyse of phenomena and systems in any area of Computer Science, and in the conception, design and implementation of innovative and original solutions.
CG5 - Capability to apply innovative solutions and make progress in the knowledge to exploit the new paradigms of computing, particularly in distributed environments.
CTR6 - Capacity for critical, logical and mathematical reasoning. Capability to solve problems in their area of study. Capacity for abstraction: the capability to create and use models that reflect real situations. Capability to design and implement simple experiments, and analyze and interpret their results. Capacity for analysis, synthesis and evaluation.
CB6 - Ability to apply the acquired knowledge and capacity for solving problems in new or unknown environments within broader (or multidisciplinary) contexts related to their area of study.
CB8 - Capability to communicate their conclusions, and the knowledge and rationale underpinning these, to both skilled and unskilled public in a clear and unambiguous way.
CB9 - Possession of the learning skills that enable the students to continue studying in a way that will be mainly self-directed or autonomous.
To understand why Service Oriented Computing is needed
To understand what is SOA
To understand the principles of service design
To understand and apply patterns for service design from the provider and requester perspectives
To identify problems and solution patterns for using services
To identify problems and solution patterns for designing services
To design services up to the level of detail needed to physically build them (i.e., implement them)
To represent the design of the systems by means of the Unified Modelling Language (UML)
To understand SOA challenges mainly regarding governance, testing and maintenance.
SOA Fundamentals and Principles
Introduction to Service Oriented Computing, SOA Paradigm and service design principles
Introduction to SOA Development LifeCycle
Introduction to the main stages of SOA development and their associated challenges.
The course will then mainly focus on the logical perspective of the service design stage.
SOA Planning and Service Analysis and Identification
Factors that motivate SOA adoption and how to identify services through a case study
Definition of a logical context for designing Information Systems through Pattern-Based Service Design
Definition of a logical context based on Object Oriented programming languages, relational databases and UML to apply SOA patterns for service design and service usage
Pattern-Based Service Design - The provider perspective.
To apply basic service design patterns that support the tasks of the service provider
Pattern-Based Service Design - The requester perspective
To apply basic design patterns that support the tasks of the service requester
Assessment of Challanges of SOA Development
Main challenges of SOA
Presentation of the SOA Course and presentation of students
-Yourself introduction (previous background, professional interests and expectations from the course)
SOA Fundamentals and Principles
-The teacher will provide some specific articles and reading material that the student should read and complement with other sources in advance to the lecture to actively participate during the classes.
The teacher will provide some specific articles and reading material that the student should read and complement with other sources in advance to the lecture to actively participate during the classes.
High Level Service Concepts Representations and UML elements for design
For the theory sessions: The teacher will provide some specific articles and reading material that the student should read and complement with other sources in advance to the lecture to actively participate during the classes. For the problems session: some problems will be given by the teacher and the student should solve these problems and explain his/her solutions.
For the theory sessions: The teacher will provide lectures about some patterns. The student should complement with other sources to actively participate during the classes.
For the problems sessions: the student should solve the exercises in advance and comment his/her solutions or doubts during the class.
Application of service design patterns: The requester perspective
For the theory sessions: The teacher will provide lectures about some patterns. The student should complement with other sources to actively participate during the classes. For the problems sessions: the student should solve the exercises in advance and comment his/her solutions or doubts during the class.
The course will be tackled by lectures, students participation and classes of problems, although the distribution in both types does not follow any regular weekly pattern.
Some of the course contents are presented by teachers but others are not presented in class. However, they must be privately studied by students in their own time. These contents are also obligatory - the only difference is the way in which they are studied. Teachers will indicate which contents should be studied at each juncture of the course, and the teaching resources that may be employed.
The classes of problems put into practice what is learnt during the course (which includes both contents presented in class and those learnt by students in their private study). Sometimes, students will be required to either have wholly or partially solved problems before the class. The problem and possible solutions will then be discussed in class. On other occasions, the problem will be set and solved in class. It is crucial for the correct development of the course that the students prepare their solutions to the exercises that teachers propose.
Control1 and Control 2 refer to previously scheduled exams (performed during the normal sessions of the course)
Control1 will include contents 1-to 5
Control2 will include content 6
Seminar refers to the presentation of a topic related to SOA challenges that will be selected by the student and prepared through the course. The teacher will schedule the seminar at the end of the course activities. Each student is assessed on the individual presentations.
Participation is evaluated based on the contribution of the student to the sessions. A student is evaluated on participation only if the student attends at least the 80% of the scheduled meetings and classes.
Web Services & SOA: Principles and Technology -
Papazoglou, Mike, Pearson Prentice Hall ,
Service-Oriented Modeling (SOA): Service Analysis, Design, and Architecture. -
Bell, Michael, Wiley ,