As you know, Islam prohibits the depictions of the human form in
photographs, in statues or in paintings.
You shouldn't believe everything that you read in the press. The
Taliban, with their interpretation of Islam, believe it to "prohibi[t]
the depictions of the human form in photographs, in statues or in paintings."
Apparently they haven't read
The Quran carefully enough.
There seems to be a great deal of confusion regarding xml-based point-to-point request/reply mechanisms such as
SOAP (and its precedent XML-RPC). This type of mechanism has been identified, explored, developed, and deployed over the past 3 decades in various forms and realizations. That the preceding sentence is necessitated where
'well-understood' would have been sufficient is indicative of the general developer confusion in the debates on these
techniques. And what is specially puzzling is the apparent weak-grasp of authors of such protocols on the issues involved.
Lets clear the smoke.
If "two" (forget more for a
second) "alien-things" happened to agree to use a messaging protocol, such as SOAP, well, right there we would have a minor (but cosmic, considering that "alien-things" are involved) miracle, since
apparently they communicated their agreement without a common communication
means. (No. Telepathy doesn't count.)
Smoke: XML messaging (SOAP) works miracles!
Fact: "[A]lien-things" first need a common mechanism for reaching
consensus regarding communication of information..
So lets say they belong to the Inter-Galactic Alliance of Geeky
"Alien-Things" [I-GAGA-T(TM)], governed by the
I-GAGA-T's strict policies regarding communication means deployment. [Kinda like the saying "lets all use HTTP"].
Then, our two brave "alien-things", charter members of I-GAGA-T (affectionately
known to each other as GAGAs), decide to communicate using SOAP, at which point they have fulfilled "the ONLY requirement when doing
client/server" according to their recently hired communication consultant, an
Earthling named garoush. [Believe me folks, I am not making this
up. A true story from the GAGA archives.]
But have they?
No. One of the GAGAs decides to send a message using SOAP
to its newly acquired friend! So the trusty (and somewhat rusty) SOAP client is fired up and the message is sent. And guess what? Promptly comes the
standard error reply: "Message received, NOT understood. Ca va?"
Put simply, using SOAP, two or more 'alien-things' can communicate to each other as long as they agree on the SOAP protocol - which is the ONLY requirement when doing client/server using SOAP.
So, put simply, the above is a false statement.
[And this point in the story, we find an agitated and nervous garoush,
furiously sending SOAPy messages to Earth: "<help>Me!!</help>"
-- Lets hope that back on Earth, garoush's friends have first agreed on the
Rescue-Message-Format! (But maybe they didn't, hey garoush? "Just
use SOAP" he used to say back on Earth. Well... Just use SOAP
then:) )]
SOAP, and XML-RPC,
both provide a means for one GAGA to send messages to another GAGA, even if the
two GAGA have discovered each
other for the very first time. And this messaging
protocol, based on the well-understood [there!] request-reply
paradigm, and utilizing a standard XML-based message
container, delivers SOAP-compliant
XML messages from the sender to the receiver.
So as garoush learned/will-learn [funny thing, this space-time continuum]
from his consulting gig to the GAGAs, <help>Me!</help> is not
defined. For the content of the message, which delivers information from
garoush back to Earth, to be understood by the recipient's), he and his
hoped-for-rescuers would have first needed to agree on the format of encoding
information in your SOAPy messages.
Sure CORBA, DCOM, COM+, Java, etc. allow you to enable two different components to talk to each other, but those technologies do it in such a way that you must have a 'piece' of the server (called the client) to be delivered and used by the client developer. Thus, to talk with a 'server' you must meet the needs of the 'server' when using CORBA, DCOM, COM+, Java, etc.
With SOAP, this is all eliminated. As long as the server publishes its API via the SOAP protocol, I can write my client to talk with the server using what ever I want. This frees me from having to 'embed' in my client a piece of the server -- thus there is no longer any 'hard-coupling' between two 'things'.
[We'll skip the fact that SOAP, CORBA, [D]COM[+], and "Java" are a
rather orthogonal
set of technologies...]
What is apparently not understood by garoush is that CORBA, DCOM, COM+, Java
RMI, do much much more than just simply pass messages from one GAGA to
another. [I recommend this
great book written specifically for GAGAs for more information on what real
(i.e. working) Inter-GAGA Communication Protocols require to function.
(Check out the
GAGAs on the cover!)].
Lets just take Java's
RMI as an example. What's this with RMI you say? Why didn't they
call it Java RPC? I'm glad you asked. See the 'M' in
RMI? That's a method, which is a procedurebound to
an object. The P in RPC refers to a procedure, which is not
necessarily bound to anything. To invoke a method of an object,
you first need to get
a handle on the object, a remote reference. Any object you say?
No. Objects which have been registered with a Registry/Directory
Service (UDDI anyone?)
Then you pass the method invocation message to the remote object and a
bit of infrastructure on the receiving end maps
your method invocation message to an actual method call on the specific object
you are invoking. This sub-process of mapping your messages to actual method
calls on a specific object uses a
messaging protocol which is analogous to what SOAP specifies.
So:
Smoke: SOAP (& XML-RPC) are distributed object
technologies! [This goes beyond Smoke and verges on GAGA
humor..]
Fact: SOAP is a Simple Xml-based Messaging Protocol
(SXMP)
Fact: By the time you have implemented a true Simple Object Access
Protocol using a SXMP, you will have something that will look awfully
close to RMI. (With the exception that RMI doesn't shuffle needlessly
verbose ASCII bits through its system-level plumbing, but your SOAP does.)
In short, by the time you have provided the functionality of an RMI
mechanism, such as Java RMI, using SOAP (or any RPC mechanism), you will have
accomplished, by the
prerequisite functionality of the task at hand, a fairly complex bit of
software engineering. Congratulations! (CORBA? Oh boy...)
In short, using SOAP, we now enable a true 'smart' data-exchange-protocol between two systems such that development is now at the level of "data-exchange" rather
than API, SDK, language, etc.
No. More likely, you will realize that having standardized on the
data-exchange, you have in effect delegated the complexity of building a
distributed object system to the client as opposed to the infrastructure.
Now that is smart. [Good going there Bill!]
[Meanwhile, back on Earth, garoush's friends and would-be rescuers [will]
happen upon a long forgotten SOAP Server log file. There, buried among
other debug and error messages is the messaging logging the error message the
SOAP server sent back to garoush back on planet X. "Ouch" says
one of garoush's friends. "I hope he is OK". Now, isn't it
just great that XML messages are human readable? (Its too back
Servers aren't human -- damn shameful waste of all that human readable
information!)]
You shouldn't believe everything that you read in the press. The Taliban, with their interpretation of Islam, believe it to "prohibi[t] the depictions of the human form in photographs, in statues or in paintings." Apparently they haven't read The Quran carefully enough.
Indeed. Glory be To HIM.
As in bricks are a sub-set of a building.
.NET, Java would have been handed off to a standards body, and there would be no XML.)
(And if Sun had really undestood the business model behind
Lets clear the smoke.
If "two" (forget more for a second) "alien-things" happened to agree to use a messaging protocol, such as SOAP, well, right there we would have a minor (but cosmic , considering that "alien-things" are involved) miracle , since apparently they communicated their agreement without a common communication means. (No. Telepathy doesn't count.)
Smoke: XML messaging (SOAP) works miracles!
Fact: "[A]lien-things" first need a common mechanism for reaching consensus regarding communication of information..
So lets say they belong to the Inter-Galactic Alliance of Geeky "Alien-Things" [I-GAGA-T(TM)], governed by the I-GAGA-T's strict policies regarding communication means deployment. [Kinda like the saying "lets all use HTTP"]. Then, our two brave "alien-things", charter members of I-GAGA-T (affectionately known to each other as GAGAs), decide to communicate using SOAP, at which point they have fulfilled "the ONLY requirement when doing client/server" according to their recently hired communication consultant, an Earthling named garoush . [Believe me folks, I am not making this up. A true story from the GAGA archives.]
But have they?
No. One of the GAGAs decides to send a message using SOAP to its newly acquired friend! So the trusty (and somewhat rusty) SOAP client is fired up and the message is sent. And guess what? Promptly comes the standard error reply: "Message received, NOT understood. Ca va?"
So, put simply, the above is a false statement.
[And this point in the story, we find an agitated and nervous garoush, furiously sending SOAPy messages to Earth: "<help>Me!!</help>" -- Lets hope that back on Earth, garoush's friends have first agreed on the Rescue-Message-Format! (But maybe they didn't, hey garoush? "Just use SOAP" he used to say back on Earth. Well ... Just use SOAP
then :) )]
SOAP, and XML-RPC, both provide a means for one GAGA to send messages to another GAGA, even if the two GAGA have discovered each other for the very first time. And this messaging protocol , based on the well-understood [there!] request-reply paradigm, and utilizing a standard XML-based message container , delivers SOAP-compliant XML messages from the sender to the receiver.
So as garoush learned/will-learn [funny thing, this space-time continuum] from his consulting gig to the GAGAs, <help>Me!</help> is not defined. For the content of the message, which delivers information from garoush back to Earth, to be understood by the recipient's), he and his hoped-for-rescuers would have first needed to agree on the format of encoding information in your SOAPy messages.
[We'll skip the fact that SOAP, CORBA, [D]COM[+], and "Java" are a rather orthogonal set of technologies ...]
What is apparently not understood by garoush is that CORBA, DCOM, COM+, Java RMI, do much much more than just simply pass messages from one GAGA to another. [I recommend this great book written specifically for GAGAs for more information on what real (i.e. working) Inter-GAGA Communication Protocols require to function. (Check out the GAGAs on the cover!)] .
Lets just take Java's RMI as an example. What's this with RMI you say? Why didn't they call it Java RPC? I'm glad you asked. See the 'M' in RMI? That's a method, which is a procedure bound to an object. The P in RPC refers to a procedure, which is not necessarily bound to anything. To invoke a method of an object, you first need to get a handle on the object, a remote reference. Any object you say? No. Objects which have been registered with a Registry/Directory Service ( UDDI anyone?) Then you pass the method invocation message to the remote object and a bit of infrastructure on the receiving end maps your method invocation message to an actual method call on the specific object you are invoking. This sub-process of mapping your messages to actual method calls on a specific object uses a messaging protocol which is analogous to what SOAP specifies.
So:
Smoke: SOAP (& XML-RPC) are distributed object technologies! [This goes beyond Smoke and verges on GAGA humor..]
Fact: SOAP is a Simple Xml-based Messaging Protocol (SXMP)
Fact: By the time you have implemented a true Simple Object Access Protocol using a SXMP, you will have something that will look awfully close to RMI. (With the exception that RMI doesn't shuffle needlessly verbose ASCII bits through its system-level plumbing, but your SOAP does.)
In short, by the time you have provided the functionality of an RMI mechanism, such as Java RMI, using SOAP (or any RPC mechanism), you will have accomplished, by the prerequisite functionality of the task at hand, a fairly complex bit of software engineering. Congratulations! (CORBA? Oh boy ...)
No. More likely, you will realize that having standardized on the data-exchange, you have in effect delegated the complexity of building a distributed object system to the client as opposed to the infrastructure.
Now that is smart. [Good going there Bill!]
[Meanwhile, back on Earth, garoush's friends and would-be rescuers [will] happen upon a long forgotten SOAP Server log file. There, buried among other debug and error messages is the messaging logging the error message the SOAP server sent back to garoush back on planet X. "Ouch" says one of garoush's friends. "I hope he is OK". Now, isn't it just great that XML messages are human readable? (Its too back Servers aren't human -- damn shameful waste of all that human readable information!)]
Smoke: SOAP/XML is a great leap forward!
Fact: Bubble Economies produce Bubble Technologies .