• Post Reply Bookmark Topic Watch Topic
  • New Topic

what is SOAP?  RSS feed

 
Anonymous
Ranch Hand
Posts: 18944
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Sorry about the questions, but I just began to learn Java..
Could you tell me what SOAP is?
I know SOAP is a protocol to Internet.
If so, is there a difference between SOAP and HTTP?
Do they work different?
because both are Internet Protocols, aren't they?

If you want, could you tell me a link where i can find more informacion?
Thanks in advance.
 
Conrad D'Cruz
Greenhorn
Posts: 14
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
>>Could you tell me what SOAP is?
SOAP (Simple Object Access Protocol)
used for accessing objects and messages
across a distributed environment
>>I know SOAP is a protocol to Internet.
>>If so, is there a difference between SOAP and >>HTTP?
They address two different areas ... HTTP
is the underlying transport protocol (which
rides on IP).
Think of it as layers of in a communications
solution ... SOAP is used to access data/messages
and HTTP is the protocol for transport.
>>Do they work different? because both are >>Internet Protocols, aren't they?
At the very core is the IP protocol ...
>>If you want, could you tell me a link where i >>can find more informacion?
The WWW Consortium has a plethora of details
and information on both protocols ...
http://www.w3.org/
CFD
 
Corey McGlone
Ranch Hand
Posts: 3271
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
SOAP (Simple Object Access Protocol)
used for accessing objects and messages
across a distributed environment

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
 
Conrad D'Cruz
Greenhorn
Posts: 14
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
You are not tied in to any one
language to be able to use SOAP.
Since this is a Java Forum we
will only evangelize Java-SOAP.
Actually any OO language can be used for
writing SOAP code as long as the
libraries are available for that particular
language.
You will also hear a lot about XML
when you read and study SOAP. XML
is used for modeling the data that is
accessed or transported using SOAP calls.
As if this was not confusing enough,
the whole area of Web Services introduces
more acronyms and technologies. So in
addition to SOAP you will have to understand
WSDL and UDDI.
So Web Services are services that will be
exposed and accessed using SOAP where HTTP
is the transfer (I used the word transport
in my previous reply which was not accurate)protocol. The actual data is transfered
over the internet or intranet using the
IP protocol.
Hope that helps.
 
Conrad D'Cruz
Greenhorn
Posts: 14
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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
 
Andy Rodriguez
Ranch Hand
Posts: 95
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
http://www.javaranch.com/cgi-bin/ubb/ultimatebb.cgi?ubb=get_topic&f=51&t=000122
And i can't find the URL of the first ever thread on this forum ...
 
Corey McGlone
Ranch Hand
Posts: 3271
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thanks, Conrad - that helped a lot, actually. So, RMI ties you to Java and CORBA, even though it allows you to connect varying systems, is bulky and expensive, right?
Your discussion of firewalls has brought another question to mind. Some time ago, I tinkered with RMI for a while to get a better feel for how it works. I created a simple messaging application (similar to ICQ or AIM) just to see how it worked. The application worked well until I tried to use it through a firewall. I never looked into RMI enough to see how to get through the firewall (and that isn't really the point of this post, either).
What I'd like to know is, can SOAP be used efficiently to create small applications that need to go through a firewall? I'm talking about lesser applications that don't require thousands of man hours. Often, I've seen small utility apps built that people will use but, when a firewall comes into play, many of these apps fall apart. Can SOAP be used efficiently to create apps like this?
Thanks,
Corey
 
William Brogden
Author and all-around good cowpoke
Rancher
Posts: 13078
6
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
"can SOAP be used efficiently to create small applications" Emphatically yes! In fact most SOAP applications so far seem to fit this category.
Penetrating firewalls is what SOAP over HTTP is all about. If you have Tomcat or other modern servlet container installed, download Apache SOAP or maybe the GLUE package, and jump right in.
Bill
 
Doug Wang
Ranch Hand
Posts: 445
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
SOAP applications can be small and the messages carried by SOAP can be small or very large(depends on the objects it access). But, as we all know, the bandwidth of Internet is growing cheaper and cheaper.
Bill, is that right?
Doug
[ January 24, 2002: Message edited by: Doug Wang ]
 
Conrad D'Cruz
Greenhorn
Posts: 14
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
>>Thanks, Conrad - that helped a lot, actually. >>So, RMI ties you to Java and CORBA, >>even >>though it allows you to connect varying >>systems, is bulky and expensive, >>right?
With RMI you are restricted to just Java. You can use Java for CORBA applications. That is, you can develop all your distributed CORBA applications in Java only if you so desire. However, from past experience, CORBA implementations are big and expensive
so it is not very wise to use CORBA for a distributed Java application unless there is a compelling reason to do so.
>> The application worked well until I tried to >>use it through a firewall. I never >>looked >>into RMI enough to see how to get through the >>firewall
The default RMI port number is 1099. If the server side was started on this port or any other port, you need to open up that port on the firewall for the client to communicate with the server across a firewall.
>>What I'd like to know is, can SOAP be used >>efficiently to create small applications >>that >>need to go through a firewall?
Yes … Web Services (SOAP) use HTTP to transfer data. HTTP runs on default port:80. Most firewalls have that port open to allow web access from the intranet. Occasionally, a web server is launched on a different port (8080 etc) in which case that port will have to be opened for two way communications on the firewall.

I have compiled and run Java clients against some of the web services at http://www.xmethods.com/ across my firewall successfully. The Weather-Temperature service is a good one to test run and see the format of the client code.
 
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!