Sie sind auf Seite 1von 20

Per form an ce E val uati on of

Ja va R MI

A Distributed Object Architecture for


Internet Based Applications

By Idowu Samuel
samido@student.ltu.se
Paper Information

v Department of Computer and Information


Sciences University of North Florida
Jacksonville
 -Sanjay P. Ahuja & Renato Quintao
v
v Publication Year: 2000
v
v Reason for selection :
ü I Simply got intrigued by the features of
RMI
ü We had a lecture on RMI
v
Introduction
In the Good Old Days...
Distributed applications have been around

for some time now and many tools and


standards have been used in the past to
develop these applications.

 Berkeley sockets (BSD Socket API)


 Remote Procedure Call (RPC)
 Distributed Computing Environment
(DCE)
Problems with earlier standards

q Use Low-level, data transmission APIs and


protocols
q sockets programming is tedious
q Error prone for implementing complex
protocols
q All use procedural paradigm which gets very
complex when trying to develop distributed
applications
DISTRIBUTED
q OBJECT SYSTEMS

q
Java RMI
(Remote Method Invocation)
 One of the major distributed object systems
available today: Java RMI is a Java based
approach for distributing objects.


Why evaluate performance of RMI?
Since Java RMI is increasingly being used in

Internet based applications



 Designers of distributed object systems need
to be aware of the performance in terms of
– response time
– services provided
– architectural characteristics of RMI
Our Focus?

– To Evaluate the performance of RMI


empirically and compares its
performance with the Java Sockets
API

– Evaluates the benefits of RMI to
distributed application developers

– Insight into the performance aspects and
other tradeoffs involved when using the
Java RMI distributed object
architecture.
Why compare with Java Sockets API?

– Sockets have the


least overhead
as compared to
other
distributed
technologies.

– Java based
sockets are easy
to use


Features of java RMI
– Remote object implementations.
– Client interfaces, or stubs, to the remote
object.
– A remote object registry for finding
objects on the network.
– A network protocol for communication
between remote objects and their client
(JRMP, i.e. Java Remote Method Protocol).
– A facility for automatically creating
(activating) remote objects on demand.
Basic RMI architecture
 The stub / skeleton layer: provides
the interface that client and server
application objects use to interact
with each other.
 Remote reference layer: middleware
between the stub/skeleton layer and
the underlying transport protocol.
 The transport protocol layer: binary
data protocol that sends remote
object requests over the wire.
Basic RMI architecture (Contd)
return parameters

method invocation on

Client
client

RMI Client / Server


model

parameters
Server

method invocation on
server
Basic RMI architecture (Contd)

Client Server

Stubs Skeletons

Remote Remote
Reference Reference

Transport
Performance Evaluation
2 client-server application was developed
using RMI and the Java Sockets API

Ø Both apps were developed and executed on


the same Sun workstations running
Solaris
Ø
Ø The LAN environment was a 100 Mbps Fast
Ethernet.

Features of the Server/Client App

 multithreaded “database” server that


access records
 The server performs read and update
operations. (common in web-based
applications)
 response time seen by the user is an
important quality of service
parameter.
 the response time was used as a basis
for comparison of the two technologies

Read Operation Result

Number of Clients (threads)


Update Operation Result

Number of Clients (threads)


Result Discussion

 the Socket version of the application


has better response times than the RMI
version but not by a significant
amount.
 But this is more than offset when we
consider that
– RMI offers the fastest development time
since no low level protocol design is
required

Suggestion & Conclusion

vRMI performance is not significantly


slower than the Java Sockets version
of the same client-server application.
vRMI reduces development time
significantly
vRMI is easier to learn
vIntegrates into Java applications
seamlessly

THANK YOU

Das könnte Ihnen auch gefallen