We present and formalize concepts for the structured specification of system behavior based on services. Services are patterns of interaction between reactive components, thus supporting especially the development of distributed systems. We introduce a core set of concepts for the specification of basic services as well as for the combination of those to complex functionality. The result is an expressive mechanism for structured behavioral specifications. While basically independent from specific notations, we demonstrate the application of those concepts using (High-level) Message Sequence Charts and Mode Diagrams for the specification of services and their combination. We illustrate the approach using a simple telephone system as a running example.