Devs Need Unified SOA Blueprints, Practices
Execs at The Middleware Co., founders of TheServerSide.com and TheServerSide.net, say that current enterprise developers need to learn some new skills to be marketable in the coming world of Service-Oriented Architectures (SOAs).
To help bridge the gap, TMC is working with enterprise vendors to draft a set of SOA Blueprints that apply to a wide variety of enterprise developers -- including Java, .NET and C++. Different from Java Pet Store, SOA Blueprints is modeled as a language-agnostic spec, so that developers can use it for Java, .NET and web services, Middleware Co. COO Tyler Jewel told IDN. TMC even plans an Open Source version of the SOA Blueprints, Jewel added.
"There are many SOA-related skills that Java and .NET developers will need to pick up on that they aren't accustomed to [using]," Jewel said. Among those, he listed interoperability, change management and versioning.
"When you're exposing services in a multi-platform environment, these are all handled differently in SOA than in J2EE," he said. And, this skills gap is a key reason why TMC is working to develop language-agnostic SOA Blueprints, and not just one version for J2EE developers and another for .NET.
That's not to say that all developers will be looking at SOA from a standing start, Jewel added. "Object-oriented developers, for instance, have an amazing ability to do abstractions and modeling of very complex systems in units of work. That's a fundamental precept in SOA, so developers should think of modeling services so they can be aggregated and orchestrated." Jewel also said that developers can apply their logic and reasoning skills to higher-level functions, such as business process management and workflows.
In fact, Jewel described SOA Blueprints as a "best practice by example" project. It models a fictitious corporation, , GeneriCo, starting to set up its infrastructure using SOA. In these hypotheticals, GeneriCo is offering a generic service, requiring several real-world applications (purchasing, inventory, order entry, etc.) described in an architecturally neutral way. This was the SOA Blueprints permit implementations to come from the middleware community using a variety of technologies including web services, J2EE and .NET, according to TMC's SOA Blueprints introductory documents.
GeneriCo includes a unified service-oriented security provisioning system, a multi-function employee portal and an HR application. These utilize services that depend upon databases and legacy systems. The current version of SOA Blueprints (.4) assumes a "greenfield" SOA project, Jewel said, in which GeneriCo has decided to implement all systems as SOAs. The tougher part, how to integrate and/or migrate legacy apps and database into an SOA environment, will come later, he said.
Where are the SOA Best Practices?
Where can enterprise developers get a jump on SOA Best Practices? IDN asked Jewel whether the ongoing work on EJB 3.0 might help J2EE developers get a grasp on these new SOA skills and approaches. Not really, he replied.
While Jewel says he is "impressed" with the work being done by the EJB 3.0 Expert Group, he quickly added that J2EE developers must focus on other technologies to come up to speed on SOA requirements. "Is EJB 3.0 a beacon or an indicator of the types of skills a [J2EE] developer needs to learn to work with SOAs? No," Jewel said, noting that "SOAs are about end points, how they communicate with one another and how you manage these end points. But SOA does not dictate how the end points should be implemented."
So, Jewel said, the key take-away for developers is that rather than focus on the end points themselves, devs should focus on how the end points communicate with one another. "What EJB 3.0 is doing is making it easier to implement an end point, but SOA skills are more based on looking at the conversations between end points," he stated.
He explained the concept further by citing a programming example from TMC's working draft of SOA Blueprints: "When you talk about exposing a business service in SOA, such as filing an expense report, you need to care a lot about how the conversation should be started, how it will continue, and how it will end, as well as what the interfaces will be. A lot of database, legacy, J2EE and .NET code has to be written to make that happen."
Jewel likened devising SOAs Blueprints to "blending" the skills used by enterprise developer and integration developers.
"In these blueprints, we're looking to create Best Practices [for SOAs] from skills used by the enterprise application developers to build tightly coupled, fine-grained apps with the more coarse-grained, loosely coupled approaches used by today's integration developers, [such as those working with WebMethods and Vitria]," he said. "So, with SOA Blueprints, we're trying to teach people more about how they can decide what is the right granularity, and how they make the trade-off between one and the other. Our goal with SOA Blueprints is to begin to scope the best practices for these kind of decisions."
What's the motivation for developers to learn these SOA skills at this point in SOA's evolution?
"The world today is flooded with people who are fantastic at implementing end points," Jewel said, "but there's a dire need for people who can design a service-oriented system, and [design] these conversations between end points that require message brokers, security provisions and change control and a lot of other [support services] that go along with these."
Third-party experts from the community, including BEA, Collaxa, CapeClear and CGEY, have been involved in pre-release feedback. The first implementation is based on BEA WebLogic Platform 8.1. TMC is also in discussion with several other vendorsabout participating in the SOA Blueprints projects, including IBM, Microsoft, Oracle and Amazon.com, Jewel added. He expects TMC to release, with partners, the full SOA Blueprints version 1.0 later this year.