Six ways to make SOA services more reusable

Summary:Achieving service reuse is a multi-dimensional problem that ties into technical approaches as well as business governance. In my last post, I surfaced some of JP Morgenthal's concerns about the reusability of services in their current state (or statefulness).

Achieving service reuse is a multi-dimensional problem that ties into technical approaches as well as business governance. In my last post, I surfaced some of JP Morgenthal's concerns about the reusability of services in their current state (or statefulness).

But there are steps that can be taken to ensure that services that are put out there are as reusable as technically possible. In a new article over at SOA Magazine, Vijay Narayanan explains some of the elements that need to be considered when building a service intended for reuse. (Which, in an SOA context, should be most of them.)

Vijay provides the following guidelines to developers of what will hopefully be reusable services:

Decouple the Physical Transport from the Service Logic: "This will ensure that the service can be bound to additional transports gracefully and provide flexibility offer transports on an as needed basis."

Provide Standard Interfaces for Service Access: This provides "the flexibility to change implementations over time or offer multiple implementations based on [service level agreement] requirements."

Offer Standardized Publications of Your Business Processes and Entity Services: Make sure messages aren't too specific to technologies, or to consumers. "These standard publication messages need to reuse your business schema data types, object definitions, as well as underlying service components."

Create Service Adapters for Backwards Compatibility: This approach ensures that the code base is thinner due to the reused service logic; isolates and encapsulates the service adapter layer for easier replacement; makes the adapter reusable across transports to avoid custom solutions; and modularizes adapter itself.

Apply Cross-Cutting Concerns Horizontally: "Never put logic for capabilities in a single service because chances are you will surely need them for another one."

Ensure that Your Services are Interoperable: "Take no chances and ensure that the WSDL document can be consumed successfully by the major technology platforms and that your target consumers can generate proxies and XML data bindings from the WSDL."

To ensure reuse, Vijay urges developers and architects to make sure "their design decisions are made to decouple services from transport, distribution channel, access pattern and standard messaging interfaces."

Topics: Software Development, Browser, Enterprise Software, Software

About

Joe McKendrick is an author and independent analyst who tracks the impact of information technology on management and markets. Joe is co-author, along with 16 leading industry leaders and thinkers, of the SOA Manifesto, which outlines the values and guiding principles of service orientation. He speaks frequently on cloud, SOA, data, and... Full Bio

zdnet_core.socialButton.googleLabel Contact Disclosure

Kick off your day with ZDNet's daily email newsletter. It's the freshest tech news and opinion, served hot. Get it.

Related Stories

The best of ZDNet, delivered

You have been successfully signed up. To sign up for more newsletters or to manage your account, visit the Newsletter Subscription Center.
Subscription failed.