Web services are beginning to play an increasingly important role in scientific, engineering, government, health-care, and business applications. Complex applications call for tools that support users to assemble composite services from independently developed component services to achieve the desired functionality. This research brings together a team of investigators with complementary expertise in formal methods, artificial intelligence, and software engineering to develop novel approaches to service composition that address this need. The main contributions of this research include powerful interactive methods for service composition with provable guarantees with respect to user-specified functional and non-functional requirements. A main focus of the research is on investigation of functional and non-functional failure analysis of composition, and user-guided and automated reformulation of requirements based on such analysis, techniques for handling semantic mismatches between user specifications and service descriptions, and the use of interactive as opposed to fully automated methods. Products of the research include software tools for interactive service composition as well as benchmarks for evaluation of alternative approaches to service composition. Broader impact of the research includes enhanced opportunities for research-based training of graduate students. Results of the research including publications, software, and benchmarks will be disseminated through the project web-page at www.moscoe.org.
[http://fmg.cs.iastate.edu/project-pages/wscomp.html] ------------------------------------------------------ Web services are software components that are accessible using standard Internet protocols. Some of the widely used web services include "Google Earth," a service that provides interactive maps and satellite/aerial imagery; and hotel, rental car and airline reservations and other e-commerce services provided online by companies and agencies such as Kayak.com, Amazon.com. One of the interesting features of web services is their reusability; existing services can be integrated to build and develop new ones providing new services. The challenge in realizing the full potential of such reusability is that infrastructure for "automatically" integrate existing services in a correct fashion does not exist--this is called the service composition problem. The central theme of our research in this project to provide such automation based on rigorous principles, and in turn, not only significantly improve the state-of-art in service composition but also produce theoretical and practical artifacts that further the science of computing. Key Knowledge Gaps ------------------ We address three key problems in the context of Web services that are addressed inadequately by the existing solutions. First, composition technique based on rigorous mathematical and logical foundation is developed. This is important as it can provide assurances regarding the correctness of the composed services. Such guarantees are highly desirable if not essential in many applications (e.g. safety-critical or security-critical service applications, e-commerce services). Second, in contrast to existing techniques which focus mainly on the functionality of the composed services, we also consider user preferences and priorities over extra-functional properties; e.g., cost, trust-worthiness of the composition. This is essential to develop compositions in practical settings where user-preferences play a vital role in deciding whether or not to use a composed service. Finally, the key feature of the proposed technique is the support it provides for incremental and iterative development of the composition and the guidance it provides to the user to realize the steps of iteration with ease. Project Findings ---------------- A new paradigm of service composition has been developed and the associated tools have been implemented. The tools utilize formal methods and allow for composition based on requirements specified in different languages ranging from state machines and goal models to temporal logic. Benefit to Science of Computing ------------------------------- Preferences over properties of composition have been considered and a formalism with associated method has been developed for the first time to address the problem of identifying the preferred composition among many candidate alternatives. The problem of verifying temporal properties of compositional systems communicating over unbounded channels/buffers (as is the case of services communicating over the Internet) has been considered and a subclass of compositional systems for which verification is decidable has been identified. Contributions to Learning and Work-Force Development --------------------------------------------------- Four doctoral students, one MS student and one postdoctoral researcher have been directly involved in the project. Seminars are organized by the PIs on Semantic Web service composition where the students and faculty discuss the recent advances in services research. The PIs are organizers of a workshop on Web service composition and adaptation which is co-located with a leading services conference. The workshop has brought together leading researchers working in the domain of service computing and provided valuable insights for future research and development avenues in the domain. The research results from this project have been published in over 20 peer-reviewed articles in leading conferences and journals in service computing, artificial intelligence and formal methods. Benefit to the Nation and Society --------------------------------- The benefits of the research to the society at large include advances in service-oriented computing that can significantly shorten the software design, implementation, and deployment life cycle in virtually every area of human endeavor. The research also contributes to training of a diverse group of scientists with expertise in intelligent systems and their applications in several areas of critical national need including software engineering and service-oriented computing.