Term Project Proposal
Fall Semester 1999
University of Missouri
Jim Ries, 423566
The Educational Information Architecture (EIA) relies on multiple distributed agents to provide services to students and course facilitators. The EIA specification states that implementation will be done using Java, XML, and CORBA. However, it seems probable that the ease of use of Java RMI will make this transport an early foundation for the development of EIA. RMI abstracts away the details of low-level communication, allowing the programmer to focus on more high-level issues. However, Java RMI is notoriously deficient in regard to performance. While performance may not be critical to many aspects of EIA, it will certainly be important to the transfer of large multimedia data (e.g., video) and also to agent interactions which involve large numbers of small messages (e.g., negotiation for content). These issues may be especially relevant as EIA scales up to be an infrastructure for national or even global education. In addition, EIA is targeted to serve underrepresented groups and institutions that may not have high speed networking resources. This also points to the importance of optimizing the performance of EIA.
This project is proposed to study the performance of Java RMI under a variety of conditions which may be encountered in the EIA. If performance appears lacking in a given scenario, alternatives will be studied and trade-offs examined. For example, if transferring very large multimedia data is unacceptably slow using Java RMI, the project will examine possible alternatives. These will include using the Java Native Interface (JNI) to call Distributed Computing Environment standard Remote Procedure Calls (RPC's), using direct socket calls, or using alternative RMI replacements (e.g., KaRMI; see Nester, Philipsen, and Haumacher, "A More Efficient RMI for Java", Proceedings of the ACM 1999 conference on Java Grande, pp. 152-159). It may also be useful to study the performance of alternative distributed object technologies such as CORBA or DCOM as possible ways to provide RMI's pleasant programmer interface through higher performance means.
The project will initially commence by identifying a set of scenarios for common usage of RMI in the EIA context. Among others, these may include:
· Content negotiation between student agents and teaching agents.
· Large scale content transfers and between course agents.
· Small scale content transfers (updates) between course agents.
· Content delivery from teaching agents to students agents.
· Assignment submission from student agents to teaching agents.
· Student agent to student agent interactive "chats".
Each of the identified scenarios will be benchmarked using standard Java RMI as the transport mechanism. Trials will be conducted using both a LAN (10 - 100 Mbit Ethernet) and a dial-up Internet connection (56K V.90 modem).
The second phase of the study will commence by choosing several alternative transports to replace Java RMI. Each of these transports will also be benchmarked using the above scenarios and the results will be compared. Transports may include:
· Raw TCP/IP sockets using Java.
· DCE RPC's through Java JNI.
· KaRMI replacement for Java RMI.
· CORBA (if time permits).
· DCOM through Java JNI (if time permits).
· A compression mechanism on top of one of these transports (if time permits).
Finally, all of the performance metrics will be analyzed and compared. Recommendations and conclusions will be presented.
It is expected that Java RMI will not perform well in scenarios which involve a lot of small transfers and/or object serialization. RMI may also be a poor performer for very large data transfers as compared to optimized schemes such as DCE pipes. If either of both of these expectations bear out, it is hoped that one or more of the suggested replacement schemes may provide good performance.
In any case, this project will provide some interesting performance data comparing several popular transport mechanisms. It will either affirm expectations concerning performance limitations for the more abstract transports such as RMI, RPC, and the like, or may lay to rest performance concerns in this area. Regardless of the final outcome of this experiment, useful information will be gleaned.