Service Oriented Architecture

You are here

Credits
6
Types
Specialization compulsory (Service Engineering)
Requirements
This subject has not requirements, but it has got previous capacities
Department
ESSI
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.

Teachers

Person in charge

  • Claudia Patricia Ayala Martinez ( )

Weekly hours

Theory
1.4
Problems
1.5
Laboratory
0
Guided learning
0.15
Autonomous learning
4

Competences

Technical Competences of each Specialization

Service engineering

  • 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.

Specific

  • 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

Generic

  • 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.

Transversal Competences

Reasoning

  • 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.

Basic

  • 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.

Objectives

  1. To understand the main concepts and principles of SOA.
    Related competences: CEE5.1, CEE5.3, CB9, CEC3, CTR6, CG5,
    Subcompetences:
    • To understand the principles of service design
    • To understand what is SOA
    • To understand why Service Oriented Computing is needed
  2. To understand and apply patterns for service design from the provider and requester perspectives
    Related competences: CEE5.1, CEE5.2, CB6, CB9, CEC1, CEC3, CTR6, CG5,
    Subcompetences:
    • 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)
  3. To represent the design of the systems by means of the Unified Modelling Language (UML)
    Related competences: CB6,
  4. To understand SOA challenges mainly regarding governance, testing and maintenance.
    Related competences: CG1, CB6, CB8, CB9, CEC1, CEC3, CTR6,

Contents

  1. SOA Fundamentals and Principles
    Introduction to Service Oriented Computing, SOA Paradigm and service design principles
  2. 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.
  3. SOA Planning and Service Analysis and Identification
    Factors that motivate SOA adoption and how to identify services through a case study
  4. 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
  5. Pattern-Based Service Design - The provider perspective.
    To apply basic service design patterns that support the tasks of the service provider
  6. Pattern-Based Service Design - The requester perspective
    To apply basic design patterns that support the tasks of the service requester
  7. Assessment of Challanges of SOA Development
    Main challenges of SOA

Activities

Activity Evaluation act


Presentation of the SOA Course and presentation of students

-Yourself introduction (previous background, professional interests and expectations from the course)

Theory
1h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
0h

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.
Objectives: 1
Contents:
Theory
4h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
4h

SOA Development Lifecycle

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.
Objectives: 1
Contents:
Theory
1.8h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
2h

Overview of SOA Analysis and Service Identification through a case study

The student should read the case study and complement it with other sources in advance to the lecture to actively participate during the classes.
Objectives: 1 2
Contents:
Theory
1h
Problems
0h
Laboratory
0h
Guided learning
2.7h
Autonomous learning
2h

Definition of the Design Context to be used in the course

To understand the context defined by the teacher to be able to solve the design problems of the course
Objectives: 2
Contents:
Theory
2h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
4h

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.
Objectives: 3
Contents:
Theory
5h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
4h

Application of Service Design patterns

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.
Objectives: 2 3
Contents:
Theory
4h
Problems
9h
Laboratory
0h
Guided learning
0h
Autonomous learning
10h

Semminar: Challenges of SOA Development

To present some topics related with the challenges of SOA
Objectives: 4
Contents:
Theory
0h
Problems
5h
Laboratory
0h
Guided learning
0h
Autonomous learning
20h

Control 1

It includes theory and problems. Focuses on the contents 1 to 5
Objectives: 1 2
Week: 9
Type: problems exam
Theory
0h
Problems
2h
Laboratory
0h
Guided learning
0h
Autonomous learning
8h

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.
Objectives: 2 3
Contents:
Theory
4h
Problems
9h
Laboratory
0h
Guided learning
0h
Autonomous learning
10h

Control 2

It includes problems. Focuses on the content 6
Objectives: 2 3
Week: 13
Type: problems exam
Theory
0h
Problems
2h
Laboratory
0h
Guided learning
0h
Autonomous learning
8h

Lecture on SOA Monitoring

The students must attend to the lecture as it will help them to prepare their final presentation
Objectives: 4
Contents:
Theory
1.5h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
0h

Teaching methodology

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.

Evaluation methodology

The evaluation method will be based on:

Final grade: 35% Control1+ 30% Control2 + 20%Seminar + 15% Participation

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.

Bibliography

Basic:

  • Web Services & SOA: Principles and Technology - Papazoglou, Mike, Pearson – Prentice Hall, January 2012.
  • Service-Oriented Modeling (SOA): Service Analysis, Design, and Architecture. - Bell, Michael, Wiley, 2008..
  • Service-Oriented Architecture: Concepts, Technology, and Design - Thomas, Erl, 2005. ISBN: 0-13-185858-0
  • SOA Design Patterns - Erl, Thomas, Prentice Hall, ISBN: 0136135161

Web links

Previous capacities

It is mandatory that the students have previous knowledge about software architecture and software design

It is desirable that the student knows the Unified Modelling Language (UML) as we will use it as standard notation to describe the proposed design solutions