|
Implementing Protocols in Java: The Price of Portability*
Bobby Krupczak, Ken Calvert, Mostafa Ammar
College of Computing
Georgia Institute of Technology
Atlanta, GA 30332-0280
Overview
As the number and variety of Web- and network-based applications
continues to increase, so does the need for flexible communication
protocols and services to support them. Traditionally, a major
impediment to deployment of new protocols is the need to upgrade
millions of end-systems with compatible implementations. At the same
time, Java --- a language explicitly designed to support development
and distribution of new applications via the Web --- is emerging as a
(potentially) ubiquitous system platform. It is therefore natural to
consider whether Java might speed the introduction of protocols to
better support new applications. In this paper, we investigate the
tradeoffs involved in using Java for protocol implementation and
deployment. Using insights from a Java-based protocol suite and
supporting subsystem we have implemented, we describe the benefits of
using the Java language and quantify the performance cost of
implementing a protocol in Java for various combinations of
interpretation and compilation. We find that the performance cost of
using Java-based protocols is presently equivalent to four years of
hardware performance gains, i.e., interpreted, Java-based protocol
performance on current hardware is roughly equivalent to the
performance of compiled C code on four-year-old hardware.
*This work was supported in part by grants from the National
Science Foundation (NCR-9612855, NCR-9628379, and NCR-9305115).
Papers
- Bobby Krupczak, Ken Calvert, Mostafa Ammar. "Implementing
Protocols in Java: The Price of Portability", Technical Report
GIT-CC-97-21, Georgia Institute of Technology, August, 1997.
The Distribution
Questions, comments to Bobby Krupczak (rdk@cc.gatech.edu). Please read
the copyright notice in the file COPYRIGHT contained in each
distribution.
Download
For more information, visit: http://www.empiretech.com/hotlava
|