Arquivo da categoria: Artigos

SOA – Arquitetura Orientada a Serviços

Terminologia

SOA é sigla para Service Oriented Architecture, ou Arquitetura Orientada a Serviço, em tradução livre do inglês.

Definições

Cabem aqui algumas definições que podem ser encontradas na Internet.

SOA é uma abordagem arquitetural corporativa que permite a criação de serviços de negócio interoperáveis que podem facilmente ser reutilizados e compartilhados entre aplicações e empresas.” – Gartner Group

Um paradigma para organizar e utilizar capacidades distribuídas que podem estar sob o controle de diferentes domínios de propriedade. Provê uma maneira uniforme de oferecer, descobrir, interagir e utilizar capacidades para produzir efeitos desejados consistentes com pré-condições e expectativas mensuráveis.” – OASIS (Advancing Open Standars for the Information Society)

É um estilo de arquitetura de software cujo princípio fundamental prega que as funcionalidades implementadas pelas aplicações deve ser disponibilizadas na forma de serviços. Frequentemente, estes serviços são conectados através de um ‘barramento de serviços’ que disponibiliza interfaces, ou contratos, acessíveis através de web services ou outra forma de comunicação entre aplicações.” – Wikipédia

SOA é uma filosofia de TI que visa facilitar a integração entre sistemas, orientando a criação e a disponibilização de soluções modulares e fracamente-acopladas baseadas no conceito de serviços.” – iProcess

Introdução

Associar processos de negócios à TI. Em resumo, SOA é o conceito que define uma arquitetura que permite entregar processos de negócio como serviços e aumentar o crescimento das aplicações de negócios.

O SOA promove a idéia de que aplicações de TI são fornecedoras e consumidoras de serviços agindo juntas para sustentar os objetivos de negócio da organização. Essa abordagem de arquitetura empresarial é uma solução que compõe sistemas fracamente-acoplados no qual os componentes dos sistemas são bastante independentes.

Características Principais

  • Composição de serviços
  • Acoplamento fraco de serviços
  • Abstração de plataformas e tecnologias de infra-estrutura
  • Uso de padrões
  • Incentivo à reutilização de componentes

Serviços

Serviço é nada mais do que uma função ou processamento lógico ou processo de negócio que é bem definido, auto-contido e não depende do contexto ou estado de outros serviços.

Um Processo de Negócio pode ser decomposto numa série de Serviços, sendo que cada um destes Serviços executa uma parte do Processo.

O Serviço pode surgir como uma forma de resolver alguns problemas de integração de sistemas.

Para uma leitura mais completa sobre O que é Serviço visite este link: iProcess – O que é um Serviço?

Design

A arquitetura orientada a serviços é uma coleção de muitos serviços na rede. Esses serviços se comunicam uns com os outros e estas comunicações envolvem troca de dados e até coordenação de serviços. SOA é utilizada para o desenvolvimento de aplicações distribuídas e fracamente-acopladas. Hoje o SOA é baseado em Web Services.

A SOA também é uma arquitetura flexível e padronizada que se concentra na abordagem centrada nos negócios. Essa abordagem sustenta a integração dos negócios como tarefas repetitivas ou serviços ligados para projetar e desenvolver soluções flexíveis de TI, que por sua vez permitem aos componentes de processos de negócio serem orquestrados e montados de uma maneira mais eficiente e entregarem capacidades de negócio e serviços de alto desempenho. A SOA unifica processos de negócio estruturando grandes aplicações como uma coleção ad-hoc de módulos menores chamados serviços.

Nesse modelo, clientes consomem serviços, ao invés de invocarem diretamente métodos discretos. Isso alivia a dor associada com a necessidade de se acessar objetos complexos. A camada de serviços fica acima da camada de negócio (onde se tem todos os objetos complexos e regras de negócio).

Logo, a camada de serviços provê a coleção de diferentes serviços que podem ser referenciados pelos clientes ou consumidores. Os serviços são responsáveis por orquestrar as chamadas a cada objetos de negócio, gerenciando as respostas e agindo de acordo. Os métodos de um serviço podem invocar e gerenciar diversos objetos de negócio.

SOA e Web Services

Os Web Services não são necessariamente orientados a serviço, eles representam uma solução para se implementar uma estratégia SOA. Web Services fornecem uma implementação baseada em padrões necessários de SOA em que os serviços são descritos usando WSDL e acessados via SOAP. Assim, a interoperabilidade entre plataformas organizacionais e dos limites da rede se torna viável.

Web Services são unidades lógicas que permitem programas escritos em diferentes linguagens de programação em diferentes plataformas se comunicarem através de protocolos padrão da Internet.

Web Services representam, atualmente, a melhor tecnologia para se implementar SOA.

SOAP – Simple Object Access Protocol

Uma das melhores maneiras de se comunicar entre aplicações é via HTTP, porque o HTTP é suportado por todos os navegadores e servidores de Internet. O SOAP foi criado para alcançar este objetivo.

O SOAP fornece uma forma de comunicação entre os aplicativos em execução em sistemas operacionais diferentes, com diferentes tecnologias e linguagens de programação.

WSDL é um documento escrito em XML. O documento descreve um web service. Ele especifica a localização do serviço e as operações (ou métodos) que o serviço expõe.

Vantagens do SOA

  • Reusabilidade
  • Flexibilidade
  • Independente de plataforma
  • Interoperabilidade
  • Modularidade
  • Desenvolvimento, implantação e manutenção incrementais.

Leitura Complementar

Referências: