InfoQ

InfoQ

News

My Bookmarks

Login or Register to enable bookmarks for unlimited time.

The content has been bookmarked!

There was an error bookmarking this content! Please retry.

SOA Anti-Principles?

Posted by Mark Little on Mar 07, 2010

Sections
Enterprise Architecture
Topics
SOA ,
SOA Platforms
Tags
Patterns ,
Patterns and Practices

First there were software patterns and anti-patterns, then they were applied to SOA and Web Services by a range of vendors and practitioners, and now Steve Jones, who wrote about SOA anti-patterns several years ago, has raised the topic of anti-principles. According to Steve, a principle is ...

[...] a core concept that you are going to measure things about.

[...]In the same way as Anti-Patterns give you pointers when its all gone wrong then Anti-Principles are the things that you will actively aim to avoid during the programme.

In the entry Steve mentions SOA principles including "Loose Coupling" and "Clear Interfaces", but points out that whereas people are often able to list such things, they often won't list (discuss) the Anti-Principles, which are often more important as they indicate problem areas to try to avoid. A quick search through the literature, both online and offline, illustrates a breadth of experience around principles, such as those listed by Stefan Tilkov, Thomas Erl or others. Although there is some literature on anti-patterns, most are either assumed or ignored.

So what makes a good SOA anti-pattern? Steve takes a stab at a few, but there may be others.

  • Small return Values: "This is where people have been used to Batch interface where returns are just codes and descriptions with reports being used to indicate problems. The sort of statement here is just return a code and description rather than returning a decent amount of data."
  • Direct Calling: "This anti-principle is all about where people just get a WSDL and consume it directly without any proxy or intermediary. Its programme suicide and it shouldn't be done."
  • Interface Generation: "This anti-principle says that you shouldn't generate your interfaces from code but should design them up front and make them explicit. So from an anti-principle perspective you are banning the "right-click generate WSDL" IDE approach to Web Service exposure."

Over the years since premier book on the subject of patterns was released, there has been a lot written about the benefits they bring to engineers and their projects. While the (re-)use of patterns and avoidance of anti-patterns has become almost second nature to most developers, it seems that Steve has a point that principles and anti-principles are as important yet too often overlooked, at least as far as SOA is concerned.

  • This article is part of a featured topic series on SOA
SOA Anti Patterns by Paul Fremantle Posted
SOA Anti-Principles? by Anthony Rivera Posted
OO by Jean-Jacques Dubray Posted
  1. Back to top

    SOA Anti Patterns

    by Paul Fremantle

    I talked about some SOA Anti-Patterns in my talk at QCon 2009 here:
    www.infoq.com/presentations/3-SOA-Case-Studies-...

    Interestingly mine were much more about organization, project lifecycle and agility than technical design.

    Paul Fremantle
    CTO, WSO2

  2. Back to top

    SOA Anti-Principles?

    by Anthony Rivera

    I was expecting more from the list but I guess one gets the idea behind the topic anyway.

    Is it possible to have anti-principles which are clearly opposites of the service orientation principels, e.g. Tight-coupling vs Loose-coupling?

    Cheers.

  3. Back to top

    OO

    by Jean-Jacques Dubray

    I agree :-) Interestingly enough, this is all that OO (and Distributed-OO) does very very well.

Educational Content

10 tips on how to prevent business value risk

One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.

Interview: Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives

InfoQ spoke to the authors of Software Systems Architecture on a couple of new topics, the System Context viewpoint and Agile, which have been added to the second edition.

Beauty Is in the Eye of the Beholder

Alex Papadimoulis discusses ugly code, where it comes from, how to avoid it, and how to get rid of it.

Architecting Visa for Massive Scale and Continuous Innovation

John Davies examines Visa’s architecture and shows how enterprises have architected complex integrations incorporating Hadoop, memcached, Ruby on Rails, and others to deliver innovative solutions.

Max Protect: Scalability and Caching at ESPN.com

Sean Comerford unveils ESPN.com’s architecture, what components are used and why, and the current changes the website goes through.

The Seven Deadly Sins of Enterprise Agile Adoption

Are there repeated patterns of failure on Enterprise Agile Enablement efforts? Sanjiv and Arlen discuss Seven Deadly Sins to avoid when adopting Agile in an enterprise.

Questions for an Enterprise Architect

Erik Dörnenburg answers: What is Enterprise and Evolutionary Architecture?, discussing 4 issues: Turning strategy into execution, Ensuring conformance, Where do the architects sit? Buying or building?

Wrap Your SQL Head Around Riak MapReduce

Sean Cribbs explains what Map-Reduce and Riak are, why and how to use Map-Reduce with Riak, and how to convert SQL queries into their Map-Reduce equivalents.