Traditional tracing mechanisms were usually developed for use in a single-computer environment. Moreover, they are bound to a speci c programming language. Today's highly distributed and heterogeneous computing environments require new tracing methodologies. The paper addresses this problem by reviewing ways how the middleware might and should support tracing. In particular, CORBA meta-objects that can be applied for tracing, are studied. One of them, namely the interceptor concept is presented in more depth, followed by a detailed description of an interceptor-based tracing architecture for CORBA applications. Implementation details and evaluation experience is given.
IntroductionAs computers are more and more interconnected, the target of software development also becomes a distributed, heterogeneous system, rather than a single computer [1]. As a result, new techniques, methodologies and tools are required to facilitate the development of distributed software. Also, as components of di erent platform, architecture and programming language are interconnected, integration becomes a major challenge. Since the object-oriented paradigm has provided a very good integration scheme, object-oriented distributed systems enjoy great prosperity. This is why we focus mainly on the tracing of object-oriented distributed systems and particularly on CORBA (Common Object Request Broker Architecture [2]), being the most widely used middleware system.Besides these rather technical arguments, there are also some other factors to consider.The rst is the wide spread of e-business, bringing along a boom for CORBA and similar middleware technologies as well. Another, not so widely recognized, but equally important fact is the emergence of embedded distributed systems. The idea of using standard middleware solutions in embedded environments is gaining popularity. Just consider the various intelligent electronic units that can be found on an airplane: a complex distributed system, where the individual components may communicate and co-operate using CORBA for instance. Obviously, tracing is a vital and complicated task in such an environment [3].A third issue is the ever-growing competition on the market. Software development companies are supposed to create complex and reliable distributed systems. Parallel to these requirements, the time-to-market pressure also keeps growing. This, too, results in the need for methods and tools to make distributed software development an easier and quicker task, rendering tracing indispensable.