Wireless Java RMI Stefano Campadello, Oskari Koskimies, Kimmo Raatikainen Department of Computer Science, University of Helsinki P.O. Box 26 (Teollisuuskatu 23) FIN-00014 UNIVERSITY OF HELSINKI Finland [First name].[Last name]@cs.Helsinki.FI Heikki Helin Sonera Ltd. P.O. Box 970 (Teollisuuskatu 13) FIN-00051 SONERA Finland heikki.j.helin@sonera.com Abstract Due to its high protocol overhead, both in data traffic and in round-trips, Java RMI is poorly suited for communi- cation over slow wireless links. However, its performance can be enhanced without breaking compatibility with Java RMI specification, and with minimal changes to existing software and network hosts. This paper analyzes the rea- sons for the poor performance of Java RMI, outlines a so- lution based on mediator technology and evaluates the per- formance of a prototype implementing the solution. 1. Introduction Remote Method Invocation (RMI) [20] is the object- oriented version of the well-known Remote Procedure Call [7]. RMI is essentially the same concept that allows the programmer to transparently invoke methods on objects that reside on another computer. In this way, the object-oriented paradigm is preserved in distributed computing. There are several implementation architectures for the remote method invocation. The most well-known one is CORBA [23], which has several commercial implementations available. However, with the success of the Java language, Java RMI is earning more and more attention. In contrast to CORBA that is programming language independent, Java RMI only works between Java programs. On the other hand, Java RMI is far more flexible than CORBA. Jini Connection Technol- ogy [2] and most Agent Platforms use Java RMI as a com- munication framework. The importance of Java RMI also increases due to the announcements of many mobile termi- nal device manufacturers that their equipment will support Java in the future. Current and forthcoming wireless data services—GSM Data Service, GPRS, UMTS, wireless LAN—enrich the options for communications. Unfortunately, the current Internet-based solutions are not able to fulfill all the needs of nomadic users [21]. The environment of mobile com- puting is very different compared to today’s environment of traditional distributed systems in many respects. Band- width, latency, delay, error rate and interference, among other things, may change dramatically as a nomadic end- user moves from one location to another—from an environ- ment to another: from a wired LAN via a wireless LAN to a GPRS/UMTS network for example. Today the Internet offers a communication backbone to an ever-increasing amount of information services. In fact some persons (not necessarily addicted but primarily due to their profession) have become increasingly dependent on access to those services. By using wireless networks, those persons can utilize network information services even when they are on the move. However, current communication services do not work well in a mobile environment because applications and middleware products, on which the appli- cations run, were designed for fixed, reliable networks. The problems are due to manifold reasons; including sudden loss of connectivity, low bandwidth, high latency, and high cost of wireless communication. Many of the problems can be solved by using light-weight, mobile-aware protocols and middleware in the wireless environment. Given that Java RMI is gaining popularity, it is only a matter of time before the performance of Java RMI over wireless links becomes important. We have analyzed and measured performance characteristics of Java RMI over GSM Data Service and High Speed Data Service [10]. We examined two platforms—Linux and Windows NT— and several variations of a commercially available GSM HSCSD. The results are not encouraging: Java RMI works poorly in slow wireless environments. This is due to the well-known poor performance of TCP in a wireless envi- ronment but also due to the Java RMI protocol itself. 1