Originally posted by Corey McGlone:
I'm going to plead ignorance here because I know little about SOAP. Does SOAP do the same thing as RMI? If so, what is the need for both of them? If not, what's the difference?
Thanks,
Corey
There is no such thing as an ignorant question :-)
I have heard answers in the past that meet that
qualification :-)
RMI (Remote Method Invocation) allows you
to access methods on objects in java virtual
machines on distributed platforms. The
protocol used was unique to Java and did not
allow non-Java applications to be used.
You must have heard of CORBA (Common Object
Request Brokering Architecture). As Emerill
Lagasse would say ... that takes it up a notch.
CORBA had a mechanism that allowed distributed
objects on cross platform implementations to talk
to each other and allow method invocations. (It was big and expensive to do CORBA implementations)
CORBA used IIOP (The Internet Inter-Orb protocol)
Along came
EJB ... a protocol RMI-IIOP was standardized to allow EJBs (Enterprise Java Beans)
to communicate with CORBA systems.
Now all of these protocols did ride on IP (internet protocol) and assume that the
distributed systems can communicate on some
network where there is sufficient bandwidth and
security ... if you wanted to have these
go across the the public internet, you would
have to drill a nice big hole in your firewall on
each of the ports used for these communications.
What about the problem of data format?
So along came SOAP. SOAP not only
standardized the format for transporting
data ... ie XML .. it also addresses the
need for using a widely available protocol that
can go through firewalls without invoking
the wrath of your friendly systems/firewall admin.
You don't have to give up your first born child
to be able to do distributed object access across
your firewall.
This happens because of the use of HTTP as the
transfer protocol.
In addition to just SOAP for access ...
Web Services defines WSDL (a standard format
for defining a service you want to access)
and UDDI (how do you publish, find and define)
well known services.
Some more work has to be done in the area
of web services .. for eg: distributed
transactions and security and last but not
the least ... performance.
Hope that summary helps
CFD