An article by Damian Smith has some interesting things to say about service oriented architecture (SOA). He first compares the software industry today with the automobile industry in the 1980s: a few major players, all massively vertically integrated, little customer choice.
Then he notes that in the automobile industry, competitive pressures led to the definition of common platforms, disaggregation, offshoring, etc.--basically a move to a horizontally stratified market, in which (counterintuitively?) vendors differentiate by how they put together standard pieces:
Although components continue to be manufactured offshore by a wide range of component suppliers, the cars themselves are assembled onshore, close to the consumer, where they can be customized to their desires and needs.
He then argues that:
Over the next five to 10 years, SOA will facilitate developments in the software industry similar to those that have taken place in the auto industry.
Although services will predominantly be developed offshore, applications will be assembled onshore where they can be customized to client needs. Services will come from a variety of sources, including major software vendors, open source developers, and offshore niche vendors. If a suitable existing service is not available, new services will be home grown using custom development (SODA) technologies, Business Process Management (BPM) and/or Business Process Execution Language (BPEL) tools.
Applications and services will be deployed on both public and private open platforms. Organizations will provide private service platforms within their firewalls, probably using network devices, and will deploy services and assemble applications via those platforms. Public service platforms will be provided over the Internet and applications will be assembled and deployed using open source, home grown, and micro-charged Software as a Service (SaaS) offerings.
As integration will no longer be a barrier, assembled applications will be very specific to organizations’ needs and desires. In effect, we will be back to best-of-breed, but at the service level rather than the application level. As a result, all applications will be ‘custom’ to some degree and services will be added, removed, and replaced as business needs change—think plug and play concepts applied to applications.
He also has some interesting things to say about how this transformation is going to be achieved:
A cultural change to create and use reusable services will have to be facilitated. More formal methodology and tighter management and governance will have to be adopted. Carrots and sticks will need to be created to encourage and enforce reuse, and rules and guidelines regarding service ownership, sharing, and accountability will need to be developed.
We've been working for several years with Web Services in the Globus team, and overall this has been a positive experience. We're now starting to gain experience with service outsourcing and composition (e.g., with BPEL in caBIG).