PV217 Service Oriented Architecture

Faculty of Informatics
Autumn 2023
Extent and Intensity
2/0/0. 2 credit(s) (plus extra credits for completion). Type of Completion: k (colloquium).
Teacher(s)
Bruno Rossi, PhD (lecturer), Ing. Leonard Walletzký, Ph.D. (deputy)
Mgr. Martin Štefanko (lecturer)
Guaranteed by
Bruno Rossi, PhD
Department of Computer Systems and Communications – Faculty of Informatics
Contact Person: Ing. Leonard Walletzký, Ph.D.
Supplier department: Department of Computer Systems and Communications – Faculty of Informatics
Timetable
Mon 12:00–13:50 A319
Prerequisites
Knowledge about object-oriented programming is required for the creation of microservices.
Course Enrolment Limitations
The course is also offered to the students of the fields other than those the course is directly associated with.
fields of study / plans the course is directly associated with
there are 66 fields of study the course is directly associated with, display
Course objectives
The objectives of the course are to give the students a set of skills necessary to understand and work in the context of Service Oriented Architectures (SOA), namely:
- understand the differences between several architectural styles: monolith, SOA, microservices;
- give an understanding of the several definitions of SOA (as an architectural style, as an IT paradigm, ...);
- review approaches for Service Oriented Analysis and Design and how they differ from Object Oriented analysis and Design;
- usage of Domain Driven Design (DDD) for designing services in a microservice architecture;
- review major standards in the area: from the old WSDL-*, to REpresentational State Transfer (REST) concepts;
- present concepts such as orchestration, choreography, atomic transactions, message exchange patterns;
- review major microservice and SOA patterns in terms of security, reliability, maintainability of the implemented solutions;
- discuss the major patterns for the migration from monolithic systems to microservices;
- practice with the creation of microservices using the Quarkus framework to better understand the concepts seen during the lectures;
Learning outcomes
At the end of the course students will be able to:
- explain the meaning of the "Service Oriented" paradigm both from the business and technical point of view;
- understand the applicability of SOA design patterns and the meaning of the major SOA implementation technologies;
- compare SOA with other architectural paradigms;
- analyse requirements towards the creation of a microservices-based system;
- design a service starting from the analysis phase;
- understand the problematics in service design and analysis;
- understand the problematics in service implementation;
- being able to classify and make reasoned decision about the adoption of different SOA platforms;
- understand issues related to reliability and scalability of microservices-based system;
Syllabus
  • Introducing service oriented architecture (SOA): SOA definition and concepts, Web services definition;
  • Basics of SOA - Characteristics of SOA - Comparing SOA to client-server and distributed internet architectures - Anatomy of SOA - How components in an SOA interrelate. Principles of service orientation. Monolith vs SOA vs Microservices;
  • SOA business aspects: standards of Web services, implementation SOA using Web services, business aspects of SOA and Web services;
  • SOA Design Patterns: patterns for performance, scalability, and availability; Service Consumer patterns; Service integration patterns; SOA anti-patterns;
  • Message exchange Patterns - Coordination - Atomic Transactions - Business activities - Orchestration - Choreography - Service layer abstraction - Application Service Layer - Business Service Layer - Orchestration Service Layer - Discoverability;
  • Representational State Transfer (REST);
  • Business-centric SOA - Deriving business services - service modelling - Service Oriented Design - Entity-centric business service design - Application service design - Task centric business service design - Microservices Domain Driven Design ;
  • Microservices: task granularity, services organization, component sharing, message exchange, main principles. Technologies for microservices implementation. Adopting the Quarkus framework to create microservices;
Literature
    required literature
  • Thomas Erl: Service-Oriented Architecture (SOA): Concepts, Technology and Design, Prentice Hall PTR, August, 2005
    recommended literature
  • ROTEM-GAL-OZ, Arnon, E. BRUNO and U. DAHAN. SOA patterns. Manning, 2012, 296 pp. ISBN 978-1-933988-26-9. info
  • KRAFZIG, Dirk, Karl BANKE and Dirk SLAMA. Enterprise SOA: service-oriented architecture best practices. Prentice Hall Professional, 2005, 408 pp. ISBN 978-0-13-146575-6. info
Teaching methods
Frontal lectures.
Assessment methods
Final oral colloquium on the topics of the course. Students will need to pass a presentation done in teams that will consist on the creation of a microservices-based system.
Language of instruction
English
Further Comments
Study Materials
The course can also be completed outside the examination period.
The course is taught annually.
The course is also listed under the following terms Spring 2010, Spring 2011, Spring 2012, Autumn 2013, Autumn 2014, Autumn 2015, Autumn 2016, Autumn 2017, Autumn 2018, Autumn 2019, Autumn 2020, Autumn 2021, Autumn 2022, Autumn 2024.
  • Enrolment Statistics (Autumn 2023, recent)
  • Permalink: https://is.muni.cz/course/fi/autumn2023/PV217