Apologies for the rant, but...
I'd like to see a serious enterprise-grade SOA framework that is either
written in an agile language or supports them well. Doesn't matter if it's
Ruby or Python. Python's Twisted has PB, but it's several steps short of
what is really needed. Ruby has nothing close yet.
Having worked with a number of "enterprise-grade SOA frameworks" I think the best available one, by a long shot, is HTTP and and a good glue language (Perl is the most common, Ruby is moving way faster though). (2)
A realistic SOA framework is a set of state transfer idioms and protocols which will be adhered to as best as possible across languages, platforms, and applications. The most useful set of guidelines for this which I have seen as an implementor (NOT as a vendor) is Roy Fielding's thesis. (1) I believe that a push model is also important, but for that we have no good solution yet, in any language, for any platform.
This is all completely language independent. In my experience the tools and systems which have tried to create a super-high level language for integration/SOA have pretty much been abysmal failures, and the folks embracing protocol based and idiomatic integration at a lower level have met with lots of success. This is, of course a generality, but the correlation is very high based on the data available to me.
One big problem seems to be that, by and large, when people are shopping for an SOA framework they are looking for way to make non-programmers (in which category I include incompetent programmers) into useful programmers. This is all well and good, but training and protocol understanding, not tooling to abstract the solution away form the problem, is a much more fruitful path.
This is not to say the building these systems is simple with protocols and glue, and that sophisticated tools are not useful, but that the sophisticated tools which are useful are generally the ones which embrace the wire protocols and data idioms rather than hide them. Point of reference, mod_rewrite has done more good for distributed systems than all of WS-* in its entirety or any of its parts.
My 2p =)
-Brian
1. Architectural Styles and the Design of Network-based Software Architectures
2. For the enterprisey folks out there, JBI based tooling, and its competitors in the programming standards space (SCA, Indigo, ???), when the API's are used directly, is HTTP with a set of idioms glued on top and a mediocre to poor glue language. When drag and drop is used to generate Java/C# by folks who don't know what an idempotent method is, it is generally borkage.
···
On Jun 6, 2006, at 9:52 AM, Francis Cianfrocca wrote: