Measuring and Modelling RPC Performance in OSF DCE
Middleware is an enabling layer that enables developers to build distributed applications on heterogeneous computer systems that are provided by different vendors. Middleware provides to the distributed applications a group of distributed services that mask the details of different operating systems and networks. The Open Software Foundation's Distributed Computing Environment (DCE) is the current de facto standard for middleware. DCE is based on the popular client/server model.. The communication - the core service of DCE - is performed by the Remote Procedure Call (RPC) facility. RPC performance is of vital importance to the performance of both DCE applications and the DCE system, because RPC forms the basis of communication for DCE and DCE applications. The RPC communication of DCE is performed by the RPC Runtime, which works according to the RPC protocols. RPC data is fragmented/reassembled by the RPC protocols and the lower layer network protocols. This adds overhead at both the client/server processor and the network, affects the RPC performance, and, with other operations introduced by RPC protocol, make the RPC-caused network traffic bears certain characteristics. Understanding the characteristics of RPC-caused network traffic is useful in understanding issues relating to DCE performance. Many factors affect DCE RPC performance. Among them, network utilisation and underlying transport protocols are important because RPC relies on the network for communication. Another important factor is interoperation, the need to operate across different platforms, because DCE is designed to help the distribution of applications on different platforms and operating systems. This research deals with the performance of DCE RPC. The focus is on the measurement and modelling of the packet arrival process of RPC-caused network traffic in the DCE environment, and the measurement of the latency and capacity of DCE RPC when running synthetic DCE applications, as a function of network utilization, underlying transport protocols, and interoperation of platforms/OSs. The purpose is to provide a better understanding of RPC and its performance issues.