The swordfish (xiphias gladius) uses its sharp elongated bill to slash through its prey making sushi of smaller fish.
Likewise, the advocates of a service-oriented architecture (SOA) platform codenamed Swordfish, which is now making its way through the Eclipse incubator process, argue it will slash through obstacles to SOA development.
Those obstacles include political infighting between advocates of the Java Business Integration (JBI) and Service Component Architecture (SCA) specifications as well as features missing in the Java Enterprise Edition (JEE), said Ricco Deutscher, CTO at SOPERA GmbH, a spinoff of Deutsche Post AG. The parent company developed its own SOA platform to handle logistics applications. Deutscher is now leading the open sourcing of the Open Service Gateway initiative (OSGi)-based SOA platform in Eclipse.
In the third quarter of this year, Swordfish is scheduled to emerge from incubation as the SOA runtime integrated with Eclipse SOA Tools Project (STP) and the Web Tools Project (WTP), Deutscher said. Swordfish will also make the best use of both JBI and SCA, ending that rivalry, and employ OSGi to replace Java EE and even Spring, he added.
In this view, STP and WTP will provide the development tools and Swordfish will provide the enterprise service bus (ESB) runtime that unifies JBI and SCA.
"In the past there were a lot of political issues around JBI and SCA," Deutscher said. "Some vendors claimed the standards are contradicting or overlapping. From our point of view they are totally complementary. SCA addresses a completely different topic than JBI."
From Deutscher's perspective, SCA is about "assembly and deployment of composite applications," and JBI covers "runtime execution of service components."
Deutscher said the existing component models for SOA also have gaps. He rates Java EE 5 as too heavyweight and complex with static deployment descriptors. Spring, on the other hand, does not allow dynamic deployment or reconfiguration, and lacks support for "true modularization," he said.
His choice, which is also the choice of the Eclipse Foundation, is OSGi. "OSGi is from our point of view the winning component model," Deutscher said. "It's dynamic. It's easy to use. It is mature. We believe that OSGi gets momentum in the future and will diminish JEE and Spring."
Anne Thomas Manes, research director for Burton Group Inc., has not reviewed Swordfish, but is familiar with the Deutsche Post SOA framework it is based upon, which also incorporated OSGi, a technology that she says has real value.
"OSGi is a packaging system," she explained. "It's Java-specific. It actually grew out of the set-top market. That idea was it would provide a way to download applications on a set-top box. It was focused on the appliance-based environments."
OSGi dates back to 1999 and thus pre-dates SOA and even Web services. And while OSGi may not be a household name, even in the households of SOA developers, it has potential.
"There's a lot of nice features to OSGi," Manes said. "You deliver software in something called a bundle. As part of the bundle it identifies the manifest of all the things that are in there and also identifies the dependencies that this code has. Then the OSGi runtime can look at it and say in order to deploy this I have to get these things that are listed in the dependencies, and get those installed first. It's a very clean and elegant way to package stuff up. The idea here is that you are going to package up services using OSGi."
This also makes it a natural for the plug-in philosophy of Eclipse."Eclipse uses OSGi, so the way plug-ins work is they are packaged as OSGi bundles," Manes said. "I like OSGi very much. It's a much better way of delivering stuff than JARs [Java ARchives] or EARs [Enterprise Archives] because none of those other archive files have that dependency mapping and management capability that OSGi has built in. So it's a very lightweight common framework for creating distributions and enabling dynamic loading and execution of those distributions."
In Deutscher's view of Swordfish, SCA provides a common programming model and a common description format. JBI provides a common messaging model. OSGi provides a common deployment model and a common runtime component model.
"We're leveraging the best of all three technologies," he said.