  A key objective for ubiquitous environments is to enable system
interoperability between system's components that are highly heterogeneous. In
particular, the challenge is to embed in the system architecture the necessary
support to cope with behavioral diversity in order to allow components to
coordinate and communicate. The continuously evolving environment further asks
for an automated and on-the-fly approach. In this paper we present the design
building blocks for the dynamic and on-the-fly interoperability between
heterogeneous components. Specifically, we describe an Architectural Pattern
called Mediating Connector, that is the key enabler for communication. In
addition, we present a set of Basic Mediator Patterns, that describe the basic
mismatches which can occur when components try to interact, and their
corresponding solutions.
