Spring, 2023
This course provides students with fundamental knowledge in software development based on service-oriented architecture. After completing this course, students can know how to classify services towards business processes; besides that, students can also program a small service-oriented-based information system, and understand types of message exchange, life cycle, performance and security of the service. Each semester, the lecturer will choose some specific topics and organize them into lecture and hands-on-practice sessions. This semester, we will organize the course into three parts. In the first part, we take one week to present some fundamental definitions of SOA and get familiar with the RESTful API through some example programs. In the second part, we will present Flask by taking a demonstration on a real-world application. We organize the third part as a self-study to present how to program APIs with Java programming language. We note that there are some prerequisites before registering and studying this course. You need to be familiar with programming languages such as Java and Python. You also need to have a good background in databases, either SQL or NoSQL.
Evaluation categories | Weight (%) | Types |
---|---|---|
Process evaluation 1 | 10 | Process Exercise |
Process evaluation 2 | 20 | Essay |
Mid-term project | 20 | Assignment |
Final project | 50 | Report |
Group | Day | Classroom | Room |
---|---|---|---|
4 (TC) | Monday [2] | | | | D302 |
3 (CLC) | Wednesday [2] | | | | C203 |
1 (CLC) | Wednesday [3] | | | | C306 |
Weeks | Topics | Resources |
---|---|---|
1 |
Chapter 0: Course Introduction Chapter 1: What Are Microservices? — Programming API with Java |
ch00.pdf ch01.pdf read-01 read-02 — Lesson 1 Homework 1 |
2 |
Chapter 2: How to Model Microservices — Flask Installation (Self-study) Basic Application Structure Templates |
ch02.pdf — Lesson 2 Homework 2 |
3 |
Chapter 3: Splitting the Monolith — Web Forms Databases |
ch03.pdf — Lesson 3A Homework 3 |
4 |
Chapter 4: Microservice Communication Styles — Large Application Structure (Self-study) Appendix A: Gmail with OAuth 2.0 |
ch04.pdf async_sync — Lesson 3B Appendix A Homework 4 |
5 |
Chapter 5: Implement Microservice Communication (Part 1) — A Social Blogging Application - Part 1: User Authentication |
ch05a.pdf — Lesson 4A Homework 5 |
6 |
Chapter 5: Implement Microservice Communication (Part 2) — User Authentication with OAuth 2.0 |
ch05b.pdf — Lesson 4B Homework 6 |
7 |
Chapter 6: Workflow — A Social Blogging Application - Part 2: User Roles |
ch06.pdf — Lesson 4C Homework 7 |
8 |
Chapter 7: Build — A Social Blogging Application - Part 3: User Profile |
ch07.pdf — Lesson 5A Homework 8 |
9 |
Chapter 8: Deployment — A Social Blogging Application - Part 4: Blog Posts |
ch08.pdf — Lesson 5B Homework 9 |
10 |
Chapter 9: Testing — A Social Blogging Application - Part 5: Followers - Part 6: User Comments |
ch09.pdf — Lesson 6 Lesson 7 Homework 10A Homework 10B |
11 |
Chapter 10: From Monitoring to Observability — A Social Blogging Application - Part 7: Application Programming Interfaces |
ch10.pdf — Lesson 8 Homework 11 |
12 |
Chapter 11: Security — - Testing Flask Applications - Measure Flask Application Performance - Flask Application Deployment |
ch11.pdf — Lesson 9 Homework 12 |
13 |
Mid-term Report — Read: Chapter 12, 13 [1] |
Mid-term Exam |
14 |
Final Project Report — Read: Chapter 14 [1] |
— |
15 |
Final Project Report — Read: Chapter 15, 16 [1] |
— |
From the Spring, 2023 semester, the course's announcements have been moved to a dedicated page at /announcement.html.
Visit /homework.html to read homework descriptions and access submission links.
Info I welcome everyone to become a teaching assistant for this course, do not hesitate to drop me an email at huuphucduong@gmail.com.
Sign up with your email address at this form to receive news and updates.