Download - Performance Evaluation of Java RMI
![Page 1: Performance Evaluation of Java RMI](https://reader030.vdocument.in/reader030/viewer/2022032414/56813347550346895d9a4182/html5/thumbnails/1.jpg)
Performance Evaluation of Java RMI
A Distributed Object Architecture for Internet Based Applications
By Idowu Samuel
![Page 2: Performance Evaluation of Java RMI](https://reader030.vdocument.in/reader030/viewer/2022032414/56813347550346895d9a4182/html5/thumbnails/2.jpg)
Paper Information
Department of Computer and Information Sciences University of North Florida Jacksonville -Sanjay P. Ahuja & Renato Quintao
Publication Year: 2000
Reason for selection: I Simply got intrigued by the features of RMI We had a lecture on RMI
![Page 3: Performance Evaluation of Java RMI](https://reader030.vdocument.in/reader030/viewer/2022032414/56813347550346895d9a4182/html5/thumbnails/3.jpg)
Introduction
![Page 4: Performance Evaluation of Java RMI](https://reader030.vdocument.in/reader030/viewer/2022032414/56813347550346895d9a4182/html5/thumbnails/4.jpg)
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)
![Page 5: Performance Evaluation of Java RMI](https://reader030.vdocument.in/reader030/viewer/2022032414/56813347550346895d9a4182/html5/thumbnails/5.jpg)
Problems with earlier standards
Use Low-level, data transmission APIs and protocols
sockets programming is tedious
Error prone for implementing complex protocolsAll use procedural paradigm which gets very complex when trying to develop distributed applications
Solution
DISTRIBUTED OBJECT SYSTEMS
![Page 6: Performance Evaluation of Java RMI](https://reader030.vdocument.in/reader030/viewer/2022032414/56813347550346895d9a4182/html5/thumbnails/6.jpg)
Java RMI (Remote Method Invocation)
One of the major distributed object systems available today: Java RMI is a Java based approach
for distributing objects.
![Page 7: Performance Evaluation of Java RMI](https://reader030.vdocument.in/reader030/viewer/2022032414/56813347550346895d9a4182/html5/thumbnails/7.jpg)
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
![Page 8: Performance Evaluation of Java RMI](https://reader030.vdocument.in/reader030/viewer/2022032414/56813347550346895d9a4182/html5/thumbnails/8.jpg)
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.
![Page 9: Performance Evaluation of Java RMI](https://reader030.vdocument.in/reader030/viewer/2022032414/56813347550346895d9a4182/html5/thumbnails/9.jpg)
Why compare with Java Sockets API?
– Sockets have the least overhead as compared to other distributed technologies.
– Java based sockets are easy to use
![Page 10: Performance Evaluation of Java RMI](https://reader030.vdocument.in/reader030/viewer/2022032414/56813347550346895d9a4182/html5/thumbnails/10.jpg)
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.
![Page 11: Performance Evaluation of Java RMI](https://reader030.vdocument.in/reader030/viewer/2022032414/56813347550346895d9a4182/html5/thumbnails/11.jpg)
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.
![Page 12: Performance Evaluation of Java RMI](https://reader030.vdocument.in/reader030/viewer/2022032414/56813347550346895d9a4182/html5/thumbnails/12.jpg)
Basic RMI architecture (Contd)
Clie
ntS
erve
r
return parameters
method invocation on client
parameters
method invocation on server
RMI Client/Server model
![Page 13: Performance Evaluation of Java RMI](https://reader030.vdocument.in/reader030/viewer/2022032414/56813347550346895d9a4182/html5/thumbnails/13.jpg)
Basic RMI architecture (Contd)
Client Server
Stubs Skeletons
Remote Reference
Remote Reference
Transport
![Page 14: Performance Evaluation of Java RMI](https://reader030.vdocument.in/reader030/viewer/2022032414/56813347550346895d9a4182/html5/thumbnails/14.jpg)
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.
![Page 15: Performance Evaluation of Java RMI](https://reader030.vdocument.in/reader030/viewer/2022032414/56813347550346895d9a4182/html5/thumbnails/15.jpg)
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
![Page 16: Performance Evaluation of Java RMI](https://reader030.vdocument.in/reader030/viewer/2022032414/56813347550346895d9a4182/html5/thumbnails/16.jpg)
Read Operation Result
1 2 3 4 5 6 70
10
20
30
40
50
60
70
Read Operation
RMISocket
Tim
e (M
illi
seco
nd
s)
Number of Clients (threads)
![Page 17: Performance Evaluation of Java RMI](https://reader030.vdocument.in/reader030/viewer/2022032414/56813347550346895d9a4182/html5/thumbnails/17.jpg)
Update Operation Result
1 2 3 4 5 6 70
20
40
60
80
100
120
140
Update Operation
RMISocket
Tim
e (M
illi
seco
nd
s)
Number of Clients (threads)
![Page 18: Performance Evaluation of Java RMI](https://reader030.vdocument.in/reader030/viewer/2022032414/56813347550346895d9a4182/html5/thumbnails/18.jpg)
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
![Page 19: Performance Evaluation of Java RMI](https://reader030.vdocument.in/reader030/viewer/2022032414/56813347550346895d9a4182/html5/thumbnails/19.jpg)
Suggestion & Conclusion
RMI performance is not significantly slower than the Java Sockets version of the same client-server application.
RMI reduces development time significantlyRMI is easier to learnIntegrates into Java applications seamlessly
![Page 20: Performance Evaluation of Java RMI](https://reader030.vdocument.in/reader030/viewer/2022032414/56813347550346895d9a4182/html5/thumbnails/20.jpg)
THANK YOU