The Source for Java Technology Collaboration
User: Password:



Start New Message Delete Post a Reply

Article: 
 Understanding Service Oriented Architecture
Subject:  A philosophical argument?
Date:  2006-04-12 07:27:24
From:  dwalend
Response to: A valiant try but irrelevant....


Wow... I didn't expect a philosophical discussion. I was hoping more for comments like, "I'm using technology X to get feature A," so I could skip over the drab also-ran technologies to the good stuff.
<p/>
Threadweaver, you've told us you don't like CMP-EJB and don't like CORBA. What do you like to use?
<p/>
Threadweaver, treating your data-bearing objects as immutable documents works wonders in concurrent systems. Less-gifted developers understand just what they're dealing with. Throwing them into thread-aware thread-safe transactional code is inviting disaster. In a distributed system, you get half of DOA just because each process gets its own deep copy of the data.
<p/>
Vfrisina, I'm with you. The working title was Smells like SOA. At one start-up, we figured out how to make this stuff work, but it was very hard to describe. There is value to having solid definitions. Industry was distracted by academia's traveling computing agents in the late 1990s. If they'd focused on messaging instead, we wouldn't have needed a week-long seminar to make the pitch. Now I can go to a customer and pitch "a distributed system of services." The customer nods his head, refers to his own strategic initiative and we dive into details.
<p/>
Threadweaver, you've uncovered an interesting dichotomy between concepts and bits, and dived into the problem of making them match up. CMP-EJB is bits. It comes in a .jar file, and has a fat PDF spec. (New EJB specs are like a bad sequel to a bad movie, "EJB 4: CMP -- The Apology.") Vfrisina is right. Using WS-2 standards is as likely to get SOA benefits as using Java is to get good OO benefits. If someone shortcuts your architecture, things will break.
<p/>
I see new conceptual approaches to coding coming from two sources: academia and industry. LISP university labs created object-oriented programming (and constantly point out how we got it wrong and they got it right) and now are pushing aspects. Universities came up with web agents. Industry is for profit; either they want to sell us something expensive or they want us to build something interesting. The former results in application servers and the later results in brilliant things like JINI.
<p/>
CORBA has some serious problems. I started working with this thing in 1995. Some of the people we work with still use it. The biggest problem in CORBA is its reliance on IDL. Basically the IDL rigidly defines the pipe that the data flows through. If the IDL changes, the code through the entire pipe has to change. (Anything relying on XMLSchema in the pipes risks the same sort of woe.) Other serious problems I've observed are an over-reliance on RPC-style programming and on hard addresses for distributed parts. When the system makes a jump in scale, it tends to fly apart. Later add-ons to the spec try to fix these problems, but the culture already jelled into weaker forms.
<p/>
I always have trouble naming my projects. "Pluggable Popsicles" would be a great name for a persistence engine. Can I steal it?

 Feed java.net RSS Feeds