Joint Modular Language Conference 2006, Oxford, UK, 13- September 15, 2006
Interfaces rather than components carry component-based software ar-chitectures. This follows directly from the design of component interfaces and contractual obligations before the implementation of components. We suggest separating component interfaces and component services such as protocol check-ing, synchronization, parallelization and caching into dedicated components which we call connectors. Connectors channel the communication so that com-ponents do not communicate directly with each other. Thus connectors foster the standardization of identifiable component contracts, accelerate the development of complementing or competing components, and improve the testability, porta-bility and maintainability of component-based programs.