CENG 555

Analysis and Design of Microservice Based Systems

This course arms students with the knowledge and expertise to “design” and “engineer” services using state of the art technology. Students will learn the Service Oriented Architecture (SOA) as a way to design an enterprise environment that features cross-platform compatibility, agility and cost-efficiency. In particular, microservice based architectures, reactive systems and event-oriented modelling will be taught and serverless computing will be introduced.

Reference book(s):

  • SOA: Principles of Service Design, Thomas Erl, 2008, Prentice Hall.
  • Web Services: Concepts, Architectures and Applications, Alonso, Casati, Kuno, Machiraju, , Springer 2004
  • RESTful Web APIs, Richardson and Amundsen, O’Reilly, 2013
  • Web Service Implementation and Composition Techniques by H-Y Paik, A. Lemos, M. Barukh, B. Benatallah and A. Natarajan, Springer, late 2017.
  • Building Microservices, Newman, Sam, 2015, O’Reilly Media.
  • Reactive Microsystems, Jonas Boner, 2017, Lightbend, Inc.
  • DevOps: A Software Architecture’s Perspective by L.Bass, I. Weber and L. Zhu, Addison-Wesley, 2016

Course Objectives:

To introduce students to the current trends in software architectures and event oriented modeling analysis and design of systems.

Week Topics
1 Service Orientation
2 Service Oriented Architecture
3 Service Design Principles, and SOA Benefits
4 Evolution of the Web Service
5 Programmable Web
6 Resource Oriented Architecture
7 Evolution of Services
8 Domain Driven Design
9 Domain Driven Design
10 Event Oriented Modeling
11 Event Oriented Analysis Methodology
12 Reactive Systems
13 Reactive Systems
14 Design Patterns for Microservice Based Systems

Grading:

  • Final Exam%40
  • Term Project %40
  • Assignments %20

Course Learning Outcomes:

CO1- Describe different architectural design approaches and their role in engineering software.

CO2- Apply modelling of services in different settings

CO3- Be competent in designing, managing and documenting services

CO4- Understand techniques for enterprise modelling of simple and complex structures as well as their associated technical standards and technologies.

Contribution of Program Learning Outcomes:

 

              P01      P02       P03       P04      P05       P06       P07

CO1                       x                          x                          x            x

CO2                                    x                                                       x

CO3                                                                                             x

CO4                                    x            x                                         x

Justification of the course:

An elective course of the Computer Engineering Master of Science and PhD Programs. ‘Software Architectures’ are one of the most significant areas of the software engineering discipline. This is the first course that focus on the state of the art software architectures. Today’s modern era permeates with phenomenal growth and advancement across a wide range of areas: from science and technology, to medicine and art, as well the social sciences. Amongst all, the notion of “services” plays a critical role to abstract and make available snippets of innovation, that can thereby be used cross-disciplinary to create bigger, better and more interesting innovations. This course arms students with the knowledge and expertise to “design” and “engineer” services using modern Web technology.

Overlapping with or complementing topics in courses:

CENG 551 Advanced Software Engineering – General software engineering knowledge is a crucial part for understanding and designing software systems. Although, CENG 551 is not a prerequisite for this course, students are advised to have general knowledge on software engineering, software analysis and design methods and programming.