SOA: objetivos e benefícios estratégicos

É certo que o paradigma de sistemas computacionais está em constante evolução. Muitas destas evoluções vêm para aumentar a produtividade do processo de desenvolvimento de software, diminuir custos operacionais, estabelecer diretrizes de governança de TI, entre outros. O problema é que com essa miscigenação de conceitos, frameworks e metodologias, nem sempre é possível manter o alinhamento estratégico entre o negócio e a TI,  por falta de maturidade nos conceitos utilizados, disparidade de interesses entre os especialistas de negócio e os especialistas de TI ou simplesmente por não ter maturidade para fazer as engrenagens se encaixarem e fazer o mecanismo funcionar adequadamente, ocasionando muitas vezes, por exemplo, em cenários semelhantes às salas de guerra.

engrenagem-soa-integracao-estrutura

Deixar de enxergar a TI como um segmento separado do negócio e vice versa, é algo relativamente custoso para muitos profissionais na nossa área, porém, o paradigma de arquitetura orientada a serviço surge para fortificar ainda mais a necessidade de paridade entre o negócio e a TI para um bem maior, longe dos egos e holofotes, uma vez que para se alcançar as premissas de SOA é necessário que ambos os setores trabalhem em conjunto do início ao fim. Pensando nisto, hoje abordaremos os objetivos e benefícios estratégicos que a metodologia SOA pode proporcionar. Vamos nessa!

A arquitetura orientada a serviços se baseia em alguns objetivos estratégicos capazes de trazer a longo prazo benefícios maiores para a organização como um todo.

Mas a longo prazo porque, Raphael? Ter um ambiente baseado em SOA exige muita maturidade dos processos como um todo. Partindo do princípio básico que a maturidade em algo é obtida por meio de experiências passadas – boas e ruins -, lições aprendidas, entre outros aspectos, me sinto confortável em dizer que os benefícios são alcançados a longo prazo. Sem mais delongas, vamos ao que importa.

Os objetivos estratégicos da SOA são:

  • Aumentar a interoperabilidade instríseca entre as aplicações.
  • Aumentar a diversidade de fornecedores.
  • Aumentar o alinhamento entre a TI e o negócio.
  • Aumentar a federalização da camada de serviços da organização.

Como falei acima, estes objetivos trazem alguns benefícios à corporação, são eles:

  • Redução do peso da TI para o negócio.
  • Aumento da agilidade operacional.
  • Aumento do ROI (Return over Investiment)

Aumentar a interoperabilidade intrínseca entre as aplicações

Para ajudar-nos a definir conceitualmente este tópico, temos duas palavras chave que devemos compreender:

  • Interoperabilidade: capacidade que um software ou solução tem de interagir ou trocar dados com outros softwares ou soluções.
  • Integração: esforço gasto para atingir a interoperabilidade entre sistemas ou soluções.

Com base nesta definição, podemos afirmar que quando o software é criado pensando na capacidade de comunicação e troca de dados com outras soluções, independente de quem criou ou quando foi criado, e não mais simplesmente em atender determinada funcionalidade, o processo de integração entre as partes se torna relativamente mais simples e menos onerosa para o negócio como um todo.

Seria realmente lindo se todo software fosse projetado e construído com essa visão, não é mesmo? Mas esta é uma realidade muito distante, onde comumente a necessidade de comunicação com outras soluções surge quando o projeto já está em andamento e em construção. O que nos leva a um cenário de alto custo de integração.

Desta forma, podemos pensar no cenário onde seus softwares de terceiro se comunicam com as aplicações legadas, que por sua vez se comunicam com webservices utilitários e envia a resposta da requisição para um serviço de auditoria, etc. Mas já pensou se cada um dos serviços resolvesse definir sua própria forma de comunicação? Não daria muito certo, não é mesmo? Para isto, veremos que o conceito de federalização atua diretamente neste ponto.

Aumentar a federalização da camada de serviços da organização

O objetivo de federalizar uma camada de serviço é unificar ambientes heterogêneos, permitindo a gestão independente e a interoperabilidade entre eles. Este processo define uma forma padrão de comunicação entre os serviços, ou seja, um contrato de serviço. Este contrato permite se comunicar independente da plataforma utilizada para a criação do serviço ou suas regras de negócio. Veja, neste momento você passa a se preocupar em atender aos requisitos do contrato padrão e não mais em como atender determinada regra de integração dos outros serviços. A partir do momento em que chamo um recurso mapeado no contrato padrão, a forma como ele se comporta internamente não importa! Ou seja, como o serviço A e o serviço B tem conhecimento de um contrato padrão de comunicação entre eles, o esforço de integração é reduzido drasticamente, aumentando a produtividade e a capacidade da TI em atender outros requisitos do negócio.

Aumentar a diversidade de fornecedores

Este tópico é tido como uma opção no mundo SOA, não como requisito. Eu diria que é uma opção muito interessante, por sinal. Hoje temos várias empresas de TI no Brasil e no mundo que vendem N produtos proprietários. Imagine a seguinte situação: A empresa XPTO é líder de mercado numa plataforma de gestão empresarial (ERP), onde o módulo de administração de pessoas é o mais reconhecido e recomendado do mercado. Compramos então este módulo para nossa empresa. 6 meses depois nosso diretor identificou a necessidade de controlar as despesas de cada departamento, bem como a necessidade de melhorar o processo financeiro como um todo da organização. Porém, o módulo financeiro da empresa XPTO não é lá essas coisas, mas já o da empresa YQUS é excelente. Analisando a viabilidade de integração entre o módulo de pessoas da empresa XPTO e o módulo financeiro da empresa YQUS, a TI da empresa identificou que existe uma incompatibilidade de comunicação entre as aplicações. Este cenário muitas vezes leva o negócio a se prender em determinado fornecedor, minimizando a possibilidade de ter um ambiente mais produtivo e eficiente, simplesmente por problemas de integração.

A partir do momento em que a empresa define operar com serviços dispostos em interface de terminal e com contrato de serviço padrão – conceito de federalização -, este cenário deixa de ser um problema. Desta forma, o módulo de administração de pessoas é colocado na camada de serviço da empresa sob o regime de um contrato padrão de comunicação. O mesmo é feito com o módulo financeiro. A partir do momento em que estas soluções são colocadas na camada de serviço da empresa como uma interface de terminal e com um contrato de comunicação padrão, como cada uma das aplicações funciona se torna irrelevante para os serviços, pois o que será consumido é o contrato. Isso aumenta consideravelmente a capacidade de expansão e evolução do negócio, onde se pode tirar o melhor de cada produto sem se preocupar na compatibilidade entre eles.

Aumentar o alinhamento entre a TI e o negócio

Conceitos envolvidos neste tópico:

  • Lógica de negócio: são soluções geradas a partir do modelo de negócio para atender um determinado objetivo.
  • Serviço de negócio: serviço gerado para atender uma determinada lógica de negócio. Deve ser flexível o bastante para ser adaptado conforme a necessidade do negócio.

O alinhamento entre a TI e o negócio expõe a capacidade da TI em se expandir e evoluir de acordo com as necessidades do negócio. Veja que existe um laço muito estreito aqui – expandir e evoluir conforme a necessidade do negócio. Em projetos de software mais tradicionais, o analista de negócios faz o levantamento dos requisitos negociais, gera então o modelo de negócio e o repassa para o arquiteto de software. Por sua vez, o arquiteto interpreta o modelo de negócio e define um produto para atender as diretrizes do modelo.

Em contrapartida, em projetos baseados em SOA, as definições cruciais são tomadas por especialistas de negócio e TI em conjunto. O analista de negócio levanta os requisitos e gera o modelo de negócio. Feito isto, é iniciado o processo de análise e modelagem, onde participam os especialistas supracitados. Nesta fase os envolvidos definem um design conceitual do modelo de negócio, gerando as lógicas de negócio. Com a lógica de negócio bem definida, o arquiteto pode gerar os serviços de negócio para atender uma determinada lógica. É importante ressaltar que o conceito de composição de serviços é altamente aplicável por aqui. Se um serviço de Pedidos foi desenvolvido para atender uma determinada lógica de negócio, se aparecer uma outra lógica que necessita utilizar Pedidos, este serviço passa a compor os serviços de negócio daquela lógica.

Redução do peso da TI para o negócio

Quando os objetivos da SOA são devidamente implantados, consequentemente a TI passa a ter um peso muito menor para a empresa como um todo, pois a redundância de serviços criados é eliminada, reduzindo drasticamente o desperdício de recursos com custos operacionais oriundos do retrabalho e outros. Isto faz com que a TI tenha maior controle sobre seus recursos, influenciando diretamente na agilidade operacional para atender as necessidades do negócio.

Aumento da agilidade operacional

Representa a capacidade da TI em se adequar e expandir conforme as necessidades do negócio. Quanto mais capacidade a TI tiver, maior será sua eficiência no processo de reação e adaptação.

Aumento do ROI

O retorno do investimento representa valores tangíveis, positivos ou não, em relação ao que foi investido com custos de produção, operação e gestão. A SOA tem como premissa extrair o máximo valor de um determinado serviço, ainda que o custo operacional seja maior do que o planejado, visando aumentar consideravelmente o ROI a médio prazo.

Como tem sido sua experiência com SOA? Compartilhe sua experiência abaixo!

Espero que tenham gostado. Abraço!

Raphael Oliveira Neves

Mais artigos deste autor »

Engenheiro de software com 6+ anos de experiência em projetos de arquitetura e desenvolvimento de sistemas em Java, certificado Oracle, aspirante à escritor nas horas vagas e entusiasta de novas tecnologias.


2 Comentários

Rafael
1

Raphael… muito obrigado pelo seu artigo.
Sou um profissional TI em ascenção aqui em Campinas/SP, a cidade aqui é enorme e novos negócios estão sempre surgindo… por isso a demanda aqui é caótica.
Então graças a este artigo eu iniciei um novo negocio aqui, uma agencia de desenvolvimento de aplicações web e junto com ela publicidade.
A ideia esta amadurecendo estou começando a ver resultado… Obrigado pelo artigo foi esclarecedor pra mim.

Deixe seu comentário

Seu endereço de e-mail não será publicado. Campos com * são obrigatórios!