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.
Instructor(s)
- CENG 500
- CENG 501
- CENG 502
- CENG 503
- CENG 504
- CENG 505
- CENG 506
- CENG 507
- CENG 508
- CENG 509
- CENG 511
- CENG 512
- CENG 513
- CENG 514
- CENG 515
- CENG 516
- CENG 517
- CENG 518
- CENG 521
- CENG 522
- CENG 523
- CENG 524
- CENG 525
- CENG 531
- CENG 532
- CENG 533
- CENG 534
- CENG 541
- CENG 542
- CENG 543
- CENG 544
- CENG 551
- CENG 552
- CENG 556
- CENG 557
- CENG 561
- CENG 562
- CENG 563
- CENG 564
- CENG 565
- CENG 566
- CENG 590
- CENG 608
- CENG 611
- CENG 612
- CENG 613
- CENG 631
- CENG 632
- CENG 641
- CENG 642
- CENG 643
- CENG 651
- CENG 661
- CENG 662
- CENG 663