A Service Component Architecture (SCA) consiste em um conjunto de especificações que descreve um modelo para a criação de aplicativos e sistemas utilizando uma metodologia SOA (Arquitetura Orientada a Serviços).
SOA é uma estrutura que combina funções e processos de negócios individuais e serviços chamados para implementar aplicativos e processos de negócios sofisticados. Em uma estrutura SOA, os componentes de negócios com alta granularidade são relativamente expostos como serviços. A SOA estrutura recursos de TI como uma série de serviços reutilizáveis, os quais são fracamente acoplados e que são neutros em termos de plataforma e de implementação. A SOA projeta soluções como montagens de serviços, os quais são conectados por meio de interface e contratos bem especificados.
A SCA estimula uma organização de SOA do código do aplicativo de negócios baseado em componentes que implementam a lógica de negócios, que oferecem seus recursos por meio de interfaces orientadas ao serviço e os quais utilizam funções oferecidas por outros componentes, por meio de interfaces orientadas ao serviço chamadas referências de serviços.
A especificação de SCA simplesmente define uma forma de modelar uma interface de serviço. Uma interface de serviço é a separação entre as duas partes de um aplicativo de SOA. A interface de serviço especifica aquilo que o provedor (SOA-SP) precisa implementar e aquilo que o coordenador (SOA-SC) pode chamar. Uma interface de serviço SCA é uma interface totalmente desenvolvida, efetivamente compreendida como um documento de Web Services Definition Language (WSDL) ou como uma interface Java.
As implementações do provedor de serviços em uma SCA são denominadas componentes de serviços. Uma implementação de componente se serviço pode ser um dos seguintes itens:
Implementações de serviços e clientes de serviços
As implementações de serviços são implementações concretas de lógica de negócios, que fornece serviços e/ou utiliza serviços. Essas implementações utilizam uma ou muitas tecnologias de implementação, tais como Java ou C++. A implementação é o funcionário do processo de negócios. Uma implementação pode fornecer um serviço, o qual é um conjunto de operações definidas por uma interface utilizada por outros componentes.
As implementações também podem utilizar outros serviços, denominados referências de serviços, que indicam a dependência da implementação em serviços fornecidos em algum outro lugar. Uma implementação também pode conter uma ou mais propriedades configuráveis. Uma propriedade é um valor de dados que pode ser configurado externamente e que afeta a função de negócios da implementação.
Os serviços de SCA geralmente utilizam dados de negócios em estilo de documento para parâmetros e valores de retorno, sendo que, preferencialmente, esses parâmetros são representados sendo utilizados como Service Data Objects (SDOs) (consulte a seção Recursos para obter mais informações). Os serviços, as referências e as propriedades são os aspectos configuráveis de uma implementação. A SCA refere-se a elas coletivamente como um tipo de componente.
A configuração de uma referência é feita ao ligar a referência a um serviço de destino, o qual será, então, utilizado pela implementação quando esta chamar uma referência. A configuração de uma propriedade envolve a definição de um valor de dados específico para a propriedade. Em uma estrutura de SCA, uma implementação pode ser utilizada para construir diversos componentes diferentes, com cada componente tendo uma configuração diferente das referências e das propriedades. Os componentes e seus serviços são utilizados por outros componentes locais ou por componentes que podem ser utilizados para acesso remoto.
Montagem de módulo
Um módulo SCA é a maior composição de componentes fortemente acoplados que são desenvolvidos e implementados juntos em um sistema SCA. Ele é a unidade básica da composição fracamente acoplada dentro de um sistema SCA. Um módulo de SCA contém um conjunto de componentes, serviços externos, pontos de entrada e as conexões que as interconectam. Os módulos contribuem com implementações de serviços para um Sistema SCA.
Os pontos de entrada definem os serviços públicos fornecidos pelo módulo, os quais podem ser utilizados por outros componentes dentro do mesmo módulo ou disponibilizados para uso fora do módulo. Eles são utilizados para publicar serviços fornecidos por um módulo utilizando uma ligação específica.
Os serviços externos em um módulo representam serviços remotos fornecidos por outros módulos. Eles são externos ao módulo SCA que utiliza o serviço. Esses serviços externos podem ser acessados pelos componentes no módulo como qualquer serviço fornecido por um componente SCA. Os serviços externos utilizam ligações para descrever o acesso a serviços externos.
Construindo um projeto da SCA
Todo o desenvolvimento de um projeto da SCA ocorre no sistema do WebSphere Integration Developer. Consulte o centro de informações do WebSphere Integration Developer, em http://publib.boulder.ibm.com/infocenter/dmndhelp/v6rxmx/index.jsp, para obter informações detalhadas.