Welcome!

SOA & WOA Authors: Maureen O'Gara, John Savageau, Greg Ness, Bruce Johnston, Ellen Rubin

Related Topics: SOA & WOA

SOA & WOA: Article

Is SOA Non-Trivial?

Exploring key service characteristics

Have you ever wondered what makes for good SOA style services? Well, wonder no more. Good services must be:

  • Reusable
  • Contract based
  • Composable
  • Abstract
  • Autonomous
  • Extensible
  • Discoverable
  • Stateless
  • Distributed
  • Manageable
  • You've most likely yawned over such lists before, and this exposition will probably be no different. However, in case you're wondering what I think about such things, read on. Be warned, there are no pictures...

    Reusable
    A service is said to be reusable if it can be used in more than one context, even in contexts for which it wasn't originally designed.

    How do we achieve this noble goal?

    1. Business Domain Modeling
    If you understand your business domain, and model services according to that domain, your services stand a better chance of being reused than if they were built in isolation according to localized requirements. In other words, business process modeling, not individual project demands, should drive the requirements for services.

    2. Adaptability
    If your service can be easily extended, then it can be reused. Extensibility is about being able to change the service implementation or extending the interface without affecting existing customers. Extensibility is achieved through interface abstraction and well-defined versioning policies, but also surprisingly through aspects like testability and staff resourcing capability.

    Testability is about verifying service backward compatibility using an automated regression test suite (that includes both functional and performance aspects of that service) that is key to service extensibility.

    With respect to staff resourcing, delays in making required changes to services will hinder service reuse, so flexible resourcing capabilities are required.

    3. Capacity Management
    Eh? Yes, unless your service environment can support additional customers, that service cannot be said to be reusable. Capacity management is about sizing and providing service operating environments both for current and projected consumer volumes.

    4. Visibility
    If people don't know about services, then they won't be reused. A well-designed and publicized service registry will help potential customers to quickly identify services that meet their needs.

    5. Governance
    Even if you have done all of the above, people will find reasons not to reuse, e.g., if the service does not exactly match the customer's requirements or the customer is not prepared to wait for the service to be enhanced. To help with such cases, governance using both carrot and stick is required. Governance is first about defining the rules, then helping people to understand and follow the rules.

    More Stories By Robert Morschel

    Robert Morschel is chief architect at Neptune Software Plc and has extensive experience in distributed software development for companies such as British Telecom, Nomura and Fidelity Investments. He blogs on SOA at soaprobe.blogspot.com.

    Comments (0)

    Share your thoughts on this story.

    Add your comment
    You must be signed in to add a comment. Sign-in | Register

    In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.