Service Computing

Time: Fall 2022
School: Software
Students: Graduate students in Software Engineering
Classroom: M101
Description: This course aims to introduce one kind of distributed system paradigm: service computing. Service computing focuses on how to divide distributed systems to "services" which can be seperately invoked through network requests and can provide independent functionalities, how to manage and evaluate existing services, and how to reuse these services for building more complex composite services, as well as how to assure the quality of services. Recently the micro-service architecture, FaaS (Function as a Service) and Serverless are also the new trends of Service Computing. Service computing has been widely used in Cloud systems, Big Data Services, IoT systems, Blockchain systems, Web applications, Mobile applications, workflow systems and other distributed systems.

Tentative Course Schedule:

Week #DateTopicSlides*
3Sep 18, 2022Service Computing Overview
4Sep 25, 2022Network-based Service Technology (I)
7Oct 16, 2022Network-based Service Technology (II)
8Oct 23, 2022Service Oriented Architecture (SOA)
9Oct 30, 2022Service Register, Description and Discovery
10Nov 6, 2022Service Selection and Recommendation
11Nov 13, 2022Service Composition and Execution
12Nov 20, 2022Service Quality (Replication)
13Nov 27, 2022Service Quality (Program Analysis)
14Dec 4, 2022Service Quality (Formal Verification)
*: Slides can be found here, only for students in this course.
Some Reference Papers:
[1]A. Segev and E. Toch, "Context-Based Matching and Ranking of Web Services for Composition," in IEEE Transactions on Services Computing, vol. 2, no. 3, pp. 210-222, July-Sept. 2009.
[2]D. Guinard, V. Trifa, S. Karnouskos, P. Spiess and D. Savio, "Interacting with the SOA-Based Internet of Things: Discovery, Query, Selection, and On-Demand Provisioning of Web Services," in IEEE Transactions on Services Computing, vol. 3, no. 3, pp. 223-235, July-Sept. 2010.
[3]Mohammad Alrifai, Dimitrios Skoutas, and Thomas Risse. Selecting skyline services for QoS-based web service composition. In Proceedings of the 19th international conference on World wide web (WWW '10). ACM, New York, NY, USA, 11-20.
[4]Zibin Zheng, Michael R. Lyu, "Collaborative Reliability Prediction of Service-Oriented Systems," in Proc. of ACM/IEEE International Conference on Software Engineering (ICSE), 2010.
[5]Wancai Zhang, Hailong Sun, Xudong Liu, and Xiaohui Guo, "Temporal QoS-Aware Web Service Recommendation via Non-negative Tensor Factorization," in Proc. of International World Wide Web Conference (WWW), 2014.
[6]X. Wang, H. Sun, T. Deng and J. Huai, "Consistency or latency? A quantitative analysis of replication systems based on replicated state machines," 2013 43rd Annual IEEE/IFIP International Conference on Dependable Systems and Networks (DSN), Budapest, 2013, pp. 1-12.
[7]Diego Ongaro and John Ousterhout. In search of an understandable consensus algorithm. In Proceedings of the 2014 USENIX conference on USENIX Annual Technical Conference (USENIX ATC'14), Garth Gibson and Nickolai Zeldovich (Eds.). USENIX Association, Berkeley, CA, USA, 305-320.
[8]Xu Zhao, Kirk Rodrigues, Yu Luo, Ding Yuan, and Michael Stumm. Non-intrusive Performance Profiling of Entire Software Stacks based on the Flow Reconstruction Principle. Proceedings of the 12th USENIX Symposium on Operating Systems Design and Implementation (OSDI 16), November 2016, Savannah, GA.
[9]Shengjian Guo, Meng Wu, and Chao Wang. Symbolic execution of programmable logic controller code. In Proceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering (ESEC/FSE 2017). ACM, New York, NY, USA, 326-336.
[10]Haopeng Liu, Xu Wang, Guangpu Li, Shan Lu, Feng Ye, and Chen Tian. FCatch: Automatically Detecting Time-of-fault Bugs in Cloud Systems. In Proceedings of the Twenty-Third International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS '18). ACM, New York, NY, USA, 419-431.