Another SOA Guiding Principle. SOA can be realized through a variety of technologies and standards. Just like you cannot buy SOA through a product or technology, or use an ESB and get SOA, you can have a SOA using many different technologies.
SOA can be realized through a variety of products and standards, like ESBs from IBM, Mule or JBoss, or even technologies like Enterprise Application Integration middleware or even Spring Integration. You can balance it between two vendors, and all of them included in your SOA design and implementation. SOA is really technology neutral.
One of my clients has Integration Bus, another has Mule, another has JBoss, one has all three with each performing a task that is well suited to that technology. You can use HTTP for transport, or JMS for transport, or MQ for transport or a mix. Service Oriented Solutions can therefore be built using just about any technologies and standards that are suitable for distributed computing.
Here are some examples:
One of my clients uses Spring Integration for their SOA Implementation. The key is that they use a Standardized Service Contract and Canonical Schema design patterns to achieve their SOA without an ESB. The Spring Integration services were therefore reusable and composable.
Another client used Message Broker and they did the same thing, they standardized on MQ Transport and SOAP messages with a canonical payload schema. The used Websphere Service Registry and Repository for the Official Endpoint pattern.
Another used a combination of IBM Integration Bus ESB and JBoss Fuse and JBoss Data Virtualization with a JMS Transport.
So to reiterate, you can use a variety of products, technologies and standards to implement your SOA Design.