Service-oriented software systems rapidly gain importance across application domains: They emphasize functionality (services), rather structural entities (components), as the basic building block for system composition. More specifically, services coordinate the interplay of components to accomplish specific tasks. In this article, we establish a foundation of service orientation: Based on the Focus theory of distributed systems (see Broy and Stølen [2001]), we introduce a theory and formal model of services. In Focus, systems are composed of interacting components. A component is a
total
behavior. We introduce a formal model of services where, in contrast, a service is a
partial
behavior. For services and components, we work out foundational specification techniques and outline methodological development steps. We show how services can be structured and how software architectures can be composed of services and components. Although our emphasis is on a theoretical foundation of the notion of services, we demonstrate utility of the concepts we introduce by means of a running example from the automotive domain.
The correct interplay among components in a distributed, reactive system is a crucial development task, particularly for embedded systems such as those in the automotive domain. Model-based development is a promising means for capturing key structural and behavioral requirements before implementing code. Current development approaches focus on components as the central development entity, leaving component integration as a separate and error-prone task in later stages of the system development process. This approach is particularly problematic in the area of Qualityof-Service properties that are inherently end-to-end. We address this problem by using a model where system functions, not components implementing them, are central from the early phases of requirements capture through implementation. We develop a domain model for system functions (or services) based on interaction patterns; this model captures deadline specifications ranging from individual messages to entire services. Using a combination of modeling tools and code-generators for the RT CORBA platform, we provide an experimentation platform for monitoring these specified deadlines in executable specifications.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.