Subject Area

Computer Science


The prominence of service-oriented architecture (SOA) has led to the emergence of web-based, remotely programmable software services, or services in short. Increasingly, more software services have been published onto the Internet, making, in turn, SOA an industry standard to which many software applications or systems must adhere. Following the principles of SOA, service-oriented software engineering (SOSE) has become a prevailing systematic methodology for engineers to quickly compose existing software services to create value-added applications, so-called mashups or workflows.

However, how to select proper services from a multitude of candidate services is not only time-consuming but also error-prone. Consequently, software developers oftentimes choose to build applications from scratch rather than reusing existing services, resulting in low reusability of existing services. Service discovery and recommendation have thus attracted significant momentum in both academia and industry to alleviate this phenomenon.

Researchers have perceived that historical service usage patterns indicate future composition behaviors; thus, they can be mined and leveraged for service recommendation. In this research, we advance the field through a machine learning-powered, goal-driven, contextaware technology that recommends candidate services in a recommend-as-you-go manner at each step throughout the process of service composition. Particularly, our technology tackles three incremental scenarios: (1) to recommend one service during mashup composition, where the order is not considered, (2) to recommend one service during workflow composition, where the order matters, and (3) to recommend a unit of work (UoW, a group of chainable services in the form of a connected directed graph)including multiple connected services, during workflow composition.

In the scenario of composing a mashup where the order is not a concern, most existing studies regard mashup composition as a one-time process and recommend services in a single round. However, building a mashup is a dynamic process where the composition environment might change over time. In this research, we consider it as an incremental activity and develop an adaptive method. Based on historical mashup composition activities, we train a predictive model that is able to learn the decision-making behavior of selecting services given a composition context.

In the scenario of workflow composition, where a service workflow is typically expressed in the form of a directed acyclic graph (DAG), the order of services matters. Inspired by Natural Language Processing (NLP) research, we model each path in a workflow as a sentence and transfer the next-service recommendation problem into predicting the next word in a sentence. All workflow paths are extracted from past workflow repositories to form a corpus to train a context-aware service recommendation model.

In the third scenario, we go one step further to recommend service units of work (UoWs) in the incremental process of building workflows, which is an NP-hard problem. In this research, we develop a practical method to first predict the rank of existing dependency linkages between services and then incrementally merge those higher-ranked linkages into UoWs.

Degree Date

Spring 5-11-2024

Document Type


Degree Name



Computer Science


Jia Zhang

Number of Pages




Creative Commons License

Creative Commons Attribution-Noncommercial 4.0 License
This work is licensed under a Creative Commons Attribution-Noncommercial 4.0 License

Available for download on Sunday, May 02, 2027