Another view on 'contract-first' vs. 'code-first' approach to SOA

IONA's Steve Vinoski saw my recent post on the potential issues with SOA services that are automatically generated -- or what he calls "code-first services" -- and provides more insights on the approach. Steve makes the distinction between code-first services and "contract-first" services that are designed and run independently of any underlying technology.

IONA's Steve Vinoski saw my recent post on the potential issues with SOA services that are automatically generated -- or what he calls "code-first services" -- and provides more insights on the approach.

Steve makes the distinction between code-first services and "contract-first" services that are designed and run independently of any underlying technology. 

Code-first services are "services where someone writes a normal programming language artifact, usually a Java or C++ object, and then turns it directly into a distributed service," Steve says, largely agreeing that such objects are typically "not designed to deal with distributed system issues, such as partial failure." Plus, often, such services may lock enterprises into a particular programming language. 

However, Steve observes, "sometimes developers still want to take the code-first approach," and may or may not be aware that there may long-term ill effects down the road. The bottom line is, rightly or wrongly, that is what they have determined they need, and vendors and suppliers must meet this need.

Steve also takes issue with Ronan Bradley's statements that IONA's Celtix Enterprise goes too far down the generated-service path through the use of the JAX-WS standard. "I'm not sure why he also chooses to ignore all the contract-first service support that Celtix Enterprise also offers," Vinoski said.