Comparison between-rpc-rmi-and-webservices-son-1228374226080667-8

helpsoft01 11,467 views 25 slides Dec 30, 2011
Slide 1
Slide 1 of 25
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25

About This Presentation

ok


Slide Content

By
Jihed Othmani
Jing Wang
Karim Jouini
Mathieu Martin
1

Outline
The need
RPC (Remote Procedure Call)
Quick introduction
Samples
Advantages & disadvantages
Future?
RMI (Remote Method Invocation)
Quick introduction
Samples
Advantages & disadvantages
Future?
WebServices
Quick introduction
Samples
Advantages & disadvantages
Recap & Conclusion
2

The Need
More and more devices are connected, tempting us to
take advantage of their computational capabilities.
We would like to communicate, reuse code, share
services.
There are a lot of opportunities to leverage services
offered by others and to make your application publicly
available.
Provide a service without sharing code.
So : we need a standardization of protocols to ease
communication at the application layer.
That’s what we call middlewares.
3

4

RPC – Quick Introduction
First system to address the need to communicate
across process’ and machines boundaries.
RPC was first described in 1976 by the RFC707.
Xerox used RPC in the popular software “courier”, 1981.
Paradigm:
The client process has to “know” the serving process
and instantiates the communication.
The client process calls a distant procedure and waits
for the response (or fail).
5

RPC – Samples
A “simple” server (part 1)
6

A “simple” server (part 2)
7

A “simple” client using our previous server
8

RPC – Advantages
Advantages :
Very simple logic and very low level, gives to the
programmer a lot of freedom to implement different
mechanisms on top of it.
Can be implemented by any language (including C !).
RPC exists since 1976, so its maturity and solidity are
undoubted.
9

RPC – Disadvantages
Using RPC can become very complex
The complexity is exposed as the number of procedures
Interaction with such a module requires using all these
interfaces in the right way and sequence.
A lot of code is needed for even simple applications.
RPC gives no answer to fundamental questions:
How to find peers ?
How to distribute the workload over multiple servers?
How failure and recovery should be handled?
How to send/receive complex data structures.
Security? Sasser, blaster, etc … Are RPC-vulnerability exploits
There are multiple different and incompatible RPC
protocols.
10

RPC – Future ?
RPC is way too complex to be used as middleware in
modern software.
RPC can be used as low level layer for more powerful
middleware layers, that would be able to provide us
with :
OOP
Load balancing
Failure detection/correction
Etc …
11

12

RMI – Quick Introduction
The Java Remote Method Invocation API, or Java RMI,
is a Java application programming interface for
performing the object equivalent of Remote
Procedure Calls.
There are two common implementations of the API.
Java Remote Method Protocol (JRMP)
In order to support servers running in a non-JVM
context, a CORBA version was later developed.
Uses HTTP or IIOP as communication layer.
13

RMI – Samples
Here is a Server publishing a “Hello” Object
14

RMI – Samples
Here is client invoking the previous “Hello” Object
and calling “HelloFromServer()” On it !
15

RMI – Advantages & disadvantages
Advantages
Java, so portable and Oriented Object.
NAT-Firewall traversal capabilities.
Asynchronous possibilities with ARMI (Async’-RMI).
Easier to use and setup than CORBA.
RDMI enables dynamic invocation.
First attempt to address security.
Latest versions are CORBA-compatible (using IIOP).
Disadvantages
Java only…
16

RMI – Future ?
RMI still needs to find answers to:
How to implement real server-level security ?
How to perform load balancing ?
How to use RMI in other languages ?
17

18

Web Services – Quick Introduction
A software system designed to support interoperable
machine-to-machine interaction over a network.
It refers to clients and servers that communicate over
the HTTP protocol used on the Web.
Web services range from such major services as
storage management down to much more limited
services such as the furnishing of a stock quote.
19

Web Services – Advantages
Universal Support.
Protocol not Platform.
Low Product Costs.
Evolutionary thanks to XML.
Business Oriented.
The standardized nature of the pieces that implement a Web service solves
many problems related to intersystem communication. For example:
The HTTP standard allows more systems to communicate with one another.
SOAP (built on XML) standardizes the messaging capability on different systems.
UDDI standardizes the publishing and finding of Web services.
WSDL standardizes the description of Web services, so providers and requesters
speak the same language.
Opportunities to take advantage of services offered by others and to make
your applications available to others as a Web service.
 Mashups (ex: Jogli.com)
20

Web Services – Disadvantages
No security standards: Web services are exposed to the public
using http-based protocols.
Adopting open security standards like SSL or XML-encryption
may be a solution.
Processing time and data traffic costs are significantly higher
Very verbose : Multiplication of the conveyed information mass.
But:
To buy a faster CPU is cheaper than employing a programmer and
systems administrator capable of handling RMI.
Performance differences less marked for more realistic applications
than for toys like “calculator”.
You can use cloud systems to easily scale.
No load balancing at the protocol level.
21

Web Services – Samples
Google's Web Service - access the Google search
engine.
Amazon's Web Service - access Amazon's product
information .
XMethods - collection of information about existing
Web services.
Getting the last stock quote.
22

23

Recap
24
RPC RMI Web Services
Birth 1976 - 1981 ~ 1990 ~ 2000
Platform Library and OS-
dependant
Java Independent 
Transport OS-Dependent HTTP or IIOP HTTP(s)
Dev Cost Huge Reasonable Low
Security None Client-level Transport Level
Overhead None OOP + HTTP XML + HTTP
Dynamic invocationNone Yes, using RDMINatural
Versioning Huge problem Possible using
RDMI
Natural
Service lookup Impossible Java Naming and
Directory
UDDI

25
Tags