@InProceedings{Abramsky08, title = "{T}ypes, {O}rthogonality and {G}enericity: {S}ome {T}ools for {C}ommunicating {P}rocess {A}rchitectures", author= "Abramsky, Samson", editor= "Welch, Peter H. and Stepney, S. and Polack, F.A.C and Barnes, Frederick R. M. and McEwan, Alistair A. and Stiles, G. S. and Broenink, Jan F. and Sampson, Adam T.", pages = "1--13", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2008", isbn= "978-1-58603-907-3", year= "2008", month= "sep", abstract= "We shall develop a simple and natural formalization of the idea of \textlessi\textgreaterclient-server\textless/i\textgreater architectures, and, based on this, define a notion of \textlessi\textgreaterorthogonality\textless/i\textgreater between clients and servers, which embodies strong correctness properties, and exposes the rich logical structure inherent in such systems. Then we generalize from pure clients and servers to \textlessi\textgreatercomponents\textless/i\textgreater, which provide some services to the environment, and require others from it. We identify the key notion of \textlessi\textgreatercomposition\textless/i\textgreater of such components, in which some of the services required by one component are supplied by another. This allows complex systems to be built from ultimately simple components. We show that this has the logical form of the \textlessi\textgreaterCut rule\textless/i\textgreater, a fundamental principle of logic, and that it can be enriched with a suitable notion of \textlessi\textgreaterbehavioural types\textless/i\textgreater based on orthogonality, in such a way that correctness properties are preserved by composition. We also develop the basic ideas of how logical constructions can be used to develop \textlessi\textgreaterstructured interfaces\textless/i\textgreater for systems, with operations corresponding to logical rules. Finally, we show how the setting can be enhanced, and made more robust and expressive, by using \textlessi\textgreaternames\textless/i\textgreater (as in the \π-calculus) to allow clients to bind dynamically to generic instances of services." }