I sympathize with your views, Gregg.
I use Java for most of my own development work. I am also a long-time
Jini fan, and support your efforts to proselytize it. Finally, I think
XML is a very poor language, being essentially a _syntax_ developed from
a convenience technique for use by publishers (SGML). XML has no true
_semantics_ - which is the heart of the problem, isn't it.
Like it or not, the world hasn't settled on RMI, of any other technique
designed for _object_ exchange. Rather, XML-over-HTTP in some form,
whether you use REST, SOAP, XML-RPC, ATOM, RSS or anything else to
achieve this, has become the de facto standard for _data_ exchange.
So a computer program consuming services needs to construct XML data for
parameters and make sense of XML data received back, which means mapping
program objects to and from XML text. And for complex objects, an XML
schema or DTD does not provide enough information to do this - there are
many possible mappings each way.
The object-XML mapping problem is analogous to the (more
well-recognized) object-relational mapping problem. And in both cases,
there is no magic bullet - no unambiguous way to do the mapping, which
means there is no algorithm for achieving it without human involvement.
Developers still have to mess around configuring property files at both
provider and consumer ends.
So I agree Jini would have been a better solution. But unfortunately I
don't share your optimism (if this is the right word) that XML will
gradually become a re-invented Jini. I don't think this is possible,
for the reasons given above.
It's an unholy mess. It would have been bad enough if services
exchanged relational data between provider and consumer - at least then
we'd have only one horrendous mapping problem. As it is, we have two,
and no prospect of either problem going away.
And to my mind, the XML mapping problem does pull the rug from under the
feet of many widely-touted claims for SOA. How can providers and
consumers be truly independent if they have to share object declarations
not found in a service definition - i.e., share a code base?
--
All the best
Keith
http://keith.harrison-broninski.info
Gregg Wonderly wrote:
Keith Harrison-Broninski wrote:
> But what client technologies allow you to call services from anywhere,
> without access to the producer's code base, and utilize
programmatically
> the complex objects that are returned?
>
> I have asked exactly this question before to this group
>
<http://tech.groups.yahoo.com/group/service-orientated-architecture/message/2400
<http://tech.groups.yahoo.com/group/service-orientated-architecture/message/2400>>,
> since I have been looking for solutions since 2001. And the _only_
> practical suggestion I got was from Aleksander Slominski, whose XSUL
> project <http://www.extreme.indiana.edu/xgws/xsul/
<http://www.extreme.indiana.edu/xgws/xsul/>> includes a "Super
> Dynamic Invoker" (based on WSIF, which I also used in an earlier
attempt
> to deal with the problem).
But, as you know Keith, mobile code platforms such as Java make this
trivial to
do. It's only because you are demanding that the client and server be
completely arbitrary that you can't utilize the simplicity of mobile
code to
just share the interfaces.
There are so many places in XML where more semantics are being
defined, at some
point, there will probably be a very refined expression language for
math as
well as a logic language for control (there are fragments everywhere)
that is
universal. At that point, I'll throw my hands up and ask "why didn't
we just
pick Java instead of reinventing everything?"
Gregg Wonderly