A IBM apresentou um modelo de programação SOA (Arquitetura Orientada a Serviços) para implementar serviços e montá-los em soluções. A SOA permite construir, implementar, integrar e gerenciar esses serviços de forma independente dos aplicativos e das plataformas de computação nas quais estão sendo executados.
A SCA (Service-component Architecture) e o SDO (Service Data Objects) fornecem as bases para esse modelo de programação SOA. A SCA define o modelo para descrever os componentes de serviços e oferece uma maneira de montá-los em soluções; o SDO define um modelo para as informações transferidas entre esses componentes. A SCA e o SDO baseiam-se em padrões de serviços da Web, como WSDL, XSD (XML Schema Definition Language) e WS-Policy (Web Services Policy Framework), e estendem esses padrões de interoperabilidade para definir um modelo de componente para a SOA.
A Service Component Architecture separa a lógica de negócios da implementação, de forma que você possa se concentrar na montagem de um aplicativo integrado sem conhecer detalhes da implementação. A implementação de serviços está incluída em componentes SCA.
A SCA permite agrupar componentes dentro de um módulo SCA e especificar quais serviços são expostos pelo módulo para solicitantes externos. O benefício é que uma alteração nos serviços dentro de um módulo não impactam nenhum outro módulo fornecido, contanto que a interface do módulo alterado permaneça a mesma.
O modelo de programação SOA está descrito no artigo developerWorks da IBM, "Introduction to the IBM SOA programming model", disponível no endereço http://ibm.com/developerworks/webservices/library/ws-soa-progmodel/.
Além de utilizar o modelo de programação SOA para desenvolver novos serviços, é possível utilizar a arquitetura orientada a serviços e o WebSphere ESB para fornecer aplicativos existentes como serviços, com pouca ou nenhuma alteração nesses aplicativos.