Abstract

Type checking is at the heart of distributed systems. The ability to be able to configure objects and have them interwork correctly may well be regarded as the fundamental issue in the development of reliable distributed systems. The type system put forward in the current standardisation activity of Open Distributed Processing (ODP), however, is both and incorrect. The inadequacy is due to the scope of the type system being based entirely on syntactic issues. To achieve reliable interoperability between systems, a type system should deal with behavioural (semantic) issues as well as non-functional issues, aspects of the type that its signature and behaviour do not capture. The incorrectness is due to the syntactic issues not being dealt with correctly. That is, clients and servers have fundamentally different type rules that apply to them. We provide a Z specification of a robust type system that deals with the syntactic aspects of types (correctly) as well as a treatment of the behavioural and non-functional aspects of types.