Service-oriented architecture
Origem: Wikipédia, a enciclopédia livre.
Service-oriented architecture - SOA ou ainda, em português, arquitetura orientada a serviços, é um estilo de arquitetura de software cujo princípio fundamental preconiza que as funcionalidades implementadas pelas aplicações devem ser disponibilizadas na forma de serviços.[1][2] Freqüentemente estes serviços são organizados através de um "barramento de serviços" (enterprise service bus, em inglês) que disponibiliza interfaces, ou contratos, acessíveis através de web services ou outra forma de comunicação entre aplicações.[3][2][4] A arquitetura SOA é baseada nos princípios da computação distribuída e utiliza o paradigma request/reply para estabelecer a comunicação entre os sistemas clientes e os sistemas que implementam os serviços. [5]
Além da perspectiva estritamente técnica, a arquitetura orientada a serviços também se relaciona com determinadas políticas e conjuntos de "boas práticas" que pretendem criar um processo para facilitar a tarefa de encontrar, definir e gerenciar os serviços disponibilizados.[6] [7]
A arquitetura orientada a serviços também se insere em um processo de reorganização dos departamentos de tecnologia da informação das organizações, permitindo um melhor relacionamento entre as áreas que dão suporte tecnológico à empresa e as áreas responsáveis pelo negócio propriamente dito, graças a maior agilidade na implementação de novos serviços e reutilização dos ativos existentes. [8][9]
Índice |
[editar] Serviço
O serviço, no ponto de vista da arquitetura SOA, é uma função de um sistema computacional que é disponibilizado para outro sistema na forma de um serviço. Um serviço deve funcionar de forma independente do estado de outros serviços e deve possuir interface bem definida. Normalmente, a comunicação entre o sistema cliente e aquele que disponibiliza o serviço é realizada através de web services.
[editar] Processos
Mais do que uma tecnologia, SOA também influencia regras e processos de negócios, além de muitas vezes implicar reengenharia de software simultaneamente. - Gartner Group
A Arquitetura Orientada a Serviços pode ser bem representada a partir do seguinte processo, chamado de "find-bind-execute paradigm" o que significa aproximadamente paradigma de "procura-consolida-executa". Tal conceito é análogo a "Ciclo de Deming" aplicado aos serviços, que define o ciclo que envolve o planejamento, a execução, o monitoramento e a tomada de ação pró ativa para a melhoria da qualidade.
Tecnicamente falando, o processo preconiza que os provedores de serviços registrem informações em um registro central, com suas características, indicadores, e aspectos relevantes às tomadas de decisões. O registro é utilizado pelo cliente para determinar as características dos serviços necessários, e se o mesmo estiver disponível no registro central, como por exemplo por um catálogo de serviços, o cliente poderá utilizá-lo, sendo este oficializado através de um contrato que enderece este serviço.
[editar] Tecnologia
O termo "Service-Oriented Architecture" (SOA) ou Arquitetura Orientada a Serviços expressa um conceito onde aplicativos ou rotinas são disponibilizadas como serviços em uma rede de computadores (Internet ou Intranets) de forma independente e se comunicando através de padrões abertos. A maior parte das implementações de SOA se utilizam de Web services ( SOAP , REST e WSDL). Entretanto, uma implementação de SOA pode se utilizar de qualquer tecnologia padronizada baseada em web.
[editar] Definições de SOA
O SOA coloca a prestação de serviço como eixo de todo o negócio, dando destaque à gestão de serviços e ao cliente.
Termo | Definição / Comentário |
---|---|
Serviço | É uma função independente, sem estado (stateless) que aceita uma ou mais requisições e devolve uma ou mais respostas através de uma interface padronizada e bem definida. Serviços podem também realizar partes discretas de um processo tal como editar ou processar uma transação. Serviços não devem depender do estado de outras funções ou processos. A tecnologia utilizada para prover o serviço, tal como uma linguagem de programação, não pode fazer parte da definição do serviço. |
Orquestração | Processo de sequenciar serviços e prover uma lógica adicional para processar dados. Não inclui uma representação de dados. |
Stateless | Não depende de nenhuma condição pré-existente. Os serviços não devem depender de condições de outros serviços. Eles recebem todas as informações necessárias para prover uma resposta consistente. O objetivo de buscar a característica de stateless dos serviços é possibilitar que o consumidor do serviço possa sequenciá-lo, ou seja, orquestrá-los em vários fluxos (algumas vezes chamados de pipelines) para executar a lógica de uma aplicação. |
Provedor | O recurso que executa o serviço em resposta a uma requisição de um consumidor. |
Consumidor | É quem consome ou pede o resultado de um serviço fornecido por um provedor. |
Descoberta | SOA se baseia na capacidade de identificar serviços e suas características. Conseqüentemente, esta arquitetura depende de um diretório que descreva quais os serviços disponíveis dentro de um domínio. |
Binding | A relação entre os serviços do provedor e do consumidor deve ser idealmente dinâmica; ela é estabelecida em tempo de execução através de um mecanismo de binding. |
[editar] Ver também
- Arquitetura de software
- Arquitetura da informação
- ITIL
- Orquestração e Coreografia
- Process Tagging
- COA - Control Oriented Architecture
Referências
- ↑ SOA Working Group of The Open Group. Definition of SOA (inglês). Página visitada em 4 de junho de 2007.
- ↑ 2,0 2,1 Boris Lublinsky. Defining SOA as an architectural style (ingles). Página visitada em 4 de junho de 2007.
- ↑ Dirk Krafzig, Karl Banke, Dirk Slama. Enterprise SOA: Service-Oriented Architecture Best Practices. 1.ed. Estados Unidos da América: Prentice Hall, 2004. ISBN 0131465759
- ↑ Martin Keen, Susan Bishop, Alan Hopkins, Sven Milinski, Chris Nott, Rick Robinson, Jonathan Adams, Paul Verschueren, Amit Acharya. Patterns: Implementing an SOA using an Enterprise Service Bus (inglês). Página visitada em 4 de junho de 2007.
- ↑ Raghu R. Kodali. What is service-oriented architecture? (inglês). Página visitada em 4 de junho de 2007.
- ↑ Bobby Woolf. Introduction to SOA governance (inglês). Página visitada em 4 de junho de 2007.
- ↑ OASIS. Reference Model for Service Oriented Architecture 1.0 (inglês). Página visitada em 4 de junho de 2007.
- ↑ Chris Harding, The Open Group. Achieving Business Agility through Model-Driven SOA. Página visitada em 4 de junho de 2007.
- ↑ Rich Rogers. Reuse engineering for SOA. Página visitada em 4 de junho de 2007.
[editar] Ligações externas
- Norbert Bieberstein et al. Service-Oriented Architecture Compass by Pearson 2006
- IBM Systems Journal edition on SOA
- Oracle Service-Oriented Architecture Technology Center
- Revista PortalBPM
- Seebeyond - ICAN