Java Reference
In-Depth Information
Handling
Legacy
Programs
and
Heterogeneity
Within Your SOA
Problem
Your evolving SOA defines services in different ways: you have some services that use WSDL
and SOAP over HTTP, you have some standard JMS messaging services that use mediators,
you have a couple of services defined using RESTful services implemented in PHP and need
to unify them all.
Solution
In fact, you don't need to unify them all. This is not a problem, and may be a sign that you're
doing some things right. Of course, it would be convenient if there were only one way to do
everything in the world, but there isn't. So just make sure that you know exactly what services
you actually have (a registry/repository product helps with this) and know the consumers of
your services. As your SOA grows, make sure that you have products in place to identify
“rogue” services.
Discussion
There is not one single way to create a SOA, and an enterprise large enough to bother with
creating an SOA will have services defined in different languages. Programs that have been
running for 15 or 20 years on a mainframe should not be ripped out and replaced just because
they are not written in the language du jour. They have stood the test of time, and more im-
portantly, they do what they are supposed to in a reliable way. There may be considerable
knowledge within your enterprise about how those programs work and what they do (even if
most of that is stored in an old-timer's head). In fact, this situation is exactly what SOA is
intended to address.
There are many options (which are generally vendor-specific) for wrapping legacy programs
to expose them over a network so that they are accessible within a SOA. If a legacy program
or some generated “modernization” wrapper code does not present an interface that you want
to carry over into the future, consider using the Facade pattern to present to the world the in-
terface that you want it to see, at the level of granularity that you like. Under the hood, use
adapter code to connect with the legacy program.
With respect to having a variety of platforms implementing your services, such as SOAP/
WSDL, REST, or straight Java components, that is OK. You want to have your services visible
Search WWH ::




Custom Search