A importância da Arquitetura Orientada a Serviços.

Para quem é da área de tecnologia da informação, quando se trata aplicações a nível empresarial, é comum ouvir sobre “arquitetura SOA”.  Mas, o que é isso? Quando se trata de SOA, existem muitas ideias equivocadas do que se trata o termo. A Arquitetura Orientada a Serviços (SOA) não é uma tecnologia, não é um produto, não é um web service e nem uma metodologia, mas sim um conceito de arquitetura corporativa que promove a integração entre o negócio e a TI por meio de conjunto de interfaces de serviços. Neste texto, serão abordados os principais requisitos do SOA e como sua utilização traz benefícios, se feita corretamente.

A arquitetura de software procura construir uma relação entre os requisitos de negócio e os requisitos técnicos de uma organização, entendo o funcionamento e encontrando maneiras de implementar as funcionalidades do sistema. Uma arquitetura bem planejada reduz os riscos de negócio. E é isso que o SOA faz –  Service-Oriented Architecture (SOA) ou, em português, Arquitetura Orientada a Serviços – é um modelo de planejamento de estratégia da área de tecnologia da informação, alinhando diretamente aos objetivos de negócios de uma organização. Esta ponte permite expor as funcionalidades dos aplicativos em serviços padronizados e interrelacionados.

As duas primeiras palavras (Service Oriented) estão relacionadas a uma metodologia para desenvolvimento de software. A terceira palavra (Architecture) faz referência a todos os ativos de software de uma empresa (assim como uma planta arquitetônica) e é uma representação de todas as peças que, juntas, formam uma construção. Portanto, “service-oriented architecture” é uma estratégia que proclama a criação de todos os ativos de software de uma empresa via metodologia de programação orientada a serviços.

Nas corporações é muito comum os processos serem tratados separadamente por departamentos, sendo assim, cada área visualiza apenas as suas tarefas e não visualizam outras informações que fazem parte de um processo que pode começar em uma área e terminar em outra. A arquitetura SOA tem como objetivo integrar as aplicações, disponibilizar maior flexibilidade para mudanças, suportar serviços independentes de plataforma e protocolos. Como as empresas precisam responder de forma efetiva e rápida às mudanças de mercado, as aplicações precisam possuir flexibilidade em executar mudanças rapidamente. Existem inúmeras aplicações dentro dos departamentos que precisam ser integradas com o objetivo de atingir agilidade e simplificar processos de negócio.

O SOA promove a integração do negócio com a tecnologia da informação através de componentes de serviços, e esse componente é o principal item dessa arquitetura. Os Serviços utilizados na arquitetura são módulos de negócio ou funcionalidades que possuem interfaces expostas por meio de contratos, e os serviços consumidos por meio de mensagens. As Interfaces disponibilizam recursos sem que a implementação do serviço seja conhecida. Explicando de maneira mais simples: a tecnologia expressa de forma que a área de negócios possa entender, e não como um aplicativo enigmático. No centro do conceito de serviços está a ideia de que é possível definir partes dos códigos de software em porções significativas o suficiente para serem compartilhadas e reutilizadas em diversas áreas da empresa. Com isso, algumas tarefas passam a ser automatizadas.

Estes são os princípios de design de serviços, por Thomas ERL (2009):

  • Serviços são reutilizáveis.
  • Serviços compartilham um contrato formal.
  • Serviços possuem um baixo acoplamento.
  • Serviços abstraem a lógica.
  • Serviços são capazes de se comporem.
  • Serviços são autônomos.
  • Serviços evitam alocação de recursos por longos períodos.

O SOA trata os requisitos de baixo acoplamento, desenvolvimento baseado em padrões, computação distribuída independente de protocolo, integração de aplicações e sistemas legados. O ESB (Enterprise Service Bus) é um dos mais importantes componentes de SOA: é um software de infraestrutura no qual combina uma abordagem orientada a eventos e orientada a serviços, simplificando integrações de negócios e unindo plataformas heterogêneas e ambiente, oque torna os serviços de negócios reutilizáveis e amplamente disponíveis para usuários, aplicações, processo e outros serviços. (MARÉCHAUX, 2006). Ele não implementa a arquitetura, mas oferece as funcionalidades para implementá-la. O desenvolvimento de integrações é complexo e não é rápido como o mercado exige, então os barramentos de serviços corporativos aceleram e simplificam as integrações nas aplicações. Empresas como IBM, Oracle e WSO2 vendem essa ferramenta.

As principais características do ESB são:

  • Roteamento de mensagens.
  • Conversão de protocolo de transporte.
  • Requisição de serviços.
  • Transformação de mensagens.
  • Distribuição de eventos de negócio.
  • Mediação e orquestração.

“Estratégica arquitetural não é um simples desenvolvimento de software, é governança de processos, serviços e pessoas, metodologia de desenvolvimento centralizado e o envolvimento de todos que estão envolvidos nos processos. É uma arquitetura que precisa do patrocínio dos executivos do alto escalão, para proporcionar a TI o conhecimento dos processos e conseguindo adesão para o compartilhamento corporativo.” (KLEIN, 2012).

 

Quais as vantagens do desenvolvimento Orientado a Serviços (SOA)?

Os resultados que SOA traz são: agilidade para atender as novas demandas, flexibilidade nas mudanças, redução de custo e reuso de serviços. O foco nessa arquitetura é a construção e disponibilização de serviços de negócio, evitar replicação de dados, reuso e facilidade de manutenção de sistemas, integração entre os sistemas, visão e controle do processo de negócio.

O Conceito de arquitetura SOA traz maiores prioridades de inovação na, aumentando a capacidade de colaboração entres aplicativos e inovando os modelos de negócio e processos.

Reutilização de software

O reuso de serviços é grande vantagem dessa arquitetura, aumentando produtividade, alinhamento com negócio, melhorias para corporação e facilidade na gerencia da tecnologia da informação, focando em melhorias continuas e automatizando os processos, disponibilizando qualidade nas informações trafegadas na empresa (SOBRINHO, 2011). Se um pacote de códigos que constitui um serviço que contém tamanho e escopo certos, então ele poderá ser reutilizado da próxima vez que uma equipe de desenvolvimento precisar de uma função específica para um novo aplicativo que queira desenvolver.

Produtividade:

Com o reuso, a equipe de desenvolvimento pode reutilizar serviços em outros projetos, diminuindo o tempo de desenvolvimento. Se os desenvolvedores reutilizam serviços, os projetos de software podem andar mais rápido e a mesma equipe de desenvolvimento pode trabalhar em mais projetos. A integração se torna mais barata (no mínimo 30%, de acordo com estimativas do Gartner) e mais rápida, eliminando alguns meses dos ciclos de desenvolvimento de novos projetos.

 Melhor alinhamento com o negócio:

A área de negócio visualiza os processos alinhados com a tecnologia. A arquitetura orientada a serviços é o panorama geral de todos os processos e fluxos de negócio de uma empresa. Significa que o pessoal de negócio pode visualizar como a empresa é construída em termos de tecnologia. Assim, os projetos de TI são apresentados em termos de atividades e processos de negócio e não na forma de aplicativos complexos, o que torna mais palatável e convincente para a área de negócios.

Uma maneira melhor de vender arquitetura para o negócio (e TI):

Reutilização, maior produtividade e agilidade em TI e uma infra-estrutura de software ajustada para processos de negócio específicos são as peças chave do SOA, tornando-o assim, uma maneira melhor da área de negócios perceber os serviços de TI.

Adotar SOA como arquitetura é conseguir uma solução que assegura agilidade comercial e reutilização de funcionalidades. Os princípios implantados em SOA são escolhidos de modo que se encaixem nas necessidades comercias, ofereçam um bom tempo para concretizar o valor e dar o melhor suporte ao crescimento de longo prazo para as empresas. É importante não tentar implantar o SOA sem ajuda externa, pois é um estilo arquitetural difícil de aplicar, necessitando então da necessidade de uma consultoria para ser realizado da maneira mais correta e eficaz.. Para que uma iniciativa em SOA seja bem sucedida, precisa de arquitetura de referência bem estruturada, uma politica de governança e uma infraestrutura bem planejada.

 

Bibliografia: