Roger Voss
Posts: 27
Nickname: rogerv
Registered: Aug, 2005
|
|
Re: Are Web Services Real? Part II
|
Posted: Aug 3, 2006 12:40 AM
|
|
My gut intuition toward the likes of CORBA and Web services was that there is a smell about them (despite all the hype/pressure that attempts to compel one to pick them up). Thanks Bruce for putting to words what my gut has been telling me all along.
As to all you dudes chiming in with how great RPC with automatic data marshaling is, etc., etc. - I go with just JMS messaging everywhere throughout my distributed applications. I gave up on remoted interfaces and all manner of synchronous RPC about five years ago and these days regard both as anti-patterns. Here's my laundry list of pro async messaging bullets (a crude JMS manifesto):
* The JMS APIs are pretty darn simple and are consistent regardless of whether programming to them in Java, C# .NET, or C/C++ (very heterogeneous)
* The JMS APIs are very stable - code written to them will not be obsoleted by a radically revised spec, best practice, or some such. Such JMS code will run in stable manner for year after year after year...
* JMS has superior asynchronous semantics versus inferior synchronous behavior of RPC or remoted interfaces (distributed objects). See my JMS related writings: http://www.vossnet.org/jms-links.html
* JMS enables/promotes easy separation of concerns regarding handling exceptions generated from the underlying i/o transport vs any of the business logic of the remoted interaction. Don't have to spread that remote i/o error handling crap around throughout an application that does a lot of distributed interaction, but instead keep it centralized, while hardening capabilities like auto-reconnect and transparent failover.
* Binding distributed nodes via remoted interfaces (distributed objects) leads to tight coupling or brittleness. This makes evolution of distributed systems more difficult to manage (in contrast, is easier to evolve XML document schemas in a way that does not break existing code - ultimately the distributed data/event-notification model is superior to the distribute object model)
* Of ultra importance in enterprise IT settings, XML documents as message payloads enable easy participation for business analyst (in contrast, object interfaces and RPC function calls are for geeky programmers only - and hence greatly diminishes their value for devising enterprise distributed systems). The thing about messaging based systems is that they're so innately simple that everybody soon begins to grok them. Not so some uber geek monstrosity built off of of a technology like JINI.
After all these many years and several generations of attempts at distributing object via remoted interfaces, is high time that people finally face up to the unwelcome reality - the distributed object remoted interface constitutes an anti-pattern. (Is probably the most insidious one ever because so many have kept after it for so long while still being unable to perfect it to work reasonably in actual practice.)
|
|