In E. Dunican & T.R.G. Green (Eds). Proc. PPIG 16 Pages 57-65 16 th Workshop of the Psychology of Programming Interest Group. Carlow, Ireland, April 2004 www.ppig.org CORBAview : A visualisation tool to aid in the understanding of CORBA-based distributed applications Declan Ryan Department Of Computer Science University of Limerick, Ireland declan.p.ryan@ul.ie Dr.Chris Exton Department Of Computer Science University of Limerick, Ireland chris.exton@ul.ie Keywords: POP-I.C. educational technology, POP-II.A. novices, POP-III.D. visualisation Abstract Middlewares provide the fundamental technology needed to create distributed applications, allowing developers to concentrate on their own specific needs. The developer may end up creating a very small part of the overall system themselves. They are able to make use of tried and tested middleware to aid in their application development. The tools provided by the CORBA middleware mean that much of the code used to create the distributed application is automatically generated for the developer. For a student learning about these middlewares, much of the development of the application that they are creating is done by pre-compiled, third party software. Understanding how the distributed application works can be difficult when you have only developed a very small part of the overall system. This paper describes CORBAview, a visualisation tool that gathers and displays the network communication and inner workings of the objects in a CORBA-based distributed application. Introduction As large scale computer networks become more prominent in business and home use, so too does the middleware that supports their use. These middlewares provide the fundamental technology needed to create distributed applications, allowing developers to concentrate on their own specific needs, without having to develop the application from scratch. One such middleware is CORBA (Common Object Request Broker Architecture). The CORBA specification has been adopted by more than 800 companies, and is a vendor independent architecture (OMG 2002). CORBA is based on the principles of object orientation. All CORBA applications are made up of objects. The interfaces to all of the objects is strictly defined, whilst the internal workings of the objects are hidden from the rest of the system. Objects with the same functionality from different vendors could have the same interfaces, but the internal structure and design may be completely different. A typical example would be the CORBA ORB (Object Request Broker). The ORB handles request routing, fault tolerance, load balance etc. It is the hub of the CORBA-based application. The ORB must provide certain services, with set interfaces to each, but each vendor may handle the provision of these services differently. Through the use of an IDL (Interface Definition Language), all objects can communicate with each other, regardless of the language the were written in. The developer specifies the interfaces to the services that will be provided by the server and accessible by the clients. The IDL compiler then creates the stubs and skeletons that will be used by the clients and servers respectively to convert the arguments from the native language to the IDL, or vice versa. This ensures that objects written in different langauges can commuincate with each other, and that the developer need only specify the interfaces, the actual distribution of the requests and replies are handled automatically