CORBA is now established as one of the main contenders in object-oriented m
iddleware. Beyond the definition of this standard for distributed object sy
stems, the Object Management Group (OMG) has specified several object servi
ces (Common Object Services, COS) that should foster the interoperability o
f distributed applications. Based on experiment, the goal of this paper is
to show that the OMG's style of specification of the CORBA services is not
suited to guarantee that implementers will produce interoperable and substi
tutable implementations. To illustrate our point, we give an account of an
experiment based upon the formal specification of one COS, namely the CORBA
Event Service. This formal specification highlights several ambiguities an
d under-specifications in the OMG document. We then test several commercial
and public domain implementations of the CORBA Event Service, in order to
assess how the implementers have dealt with these under-specifications. We
show that the choices made by the implementers lead to incompatible impleme
ntations. We finally suggest a solution to overcome the problem of specific
ation of object services, which satisfies the views of both implementers an
d users. Specifically, we suggest that the specification of such services b
e made using a formal description technique, and that implementers be provi
ded with test cases derived from the formal specification.