Vantagens e Desvantagens de SOA

Veja neste artigo uma apresentação da Arquitetura Orientada a Serviços (SOA), as vantagens e desvantagens em utilizá-la em projetos.

Figura 1. Service Oriented Architecture. Fonte: Information Systems

Arquitetura Orientada a Serviços (SOA) não é uma tecnologia, não é uma metodologia, não é um serviço, mas é um conceito de arquitetura corporativo que promove a integração entre o negócio e a TI por meio de conjunto de interfaces de serviços acoplados. Este trabalho consiste em apresentar uma revisão bibliográfica sobre vantagens e desvantagens de SOA. Com ele será demonstrado que apesar dessa arquitetura estar em alta no mercado, ainda muitas iniciativas falham, e como boas praticas podem ajudar na implementação.

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 (AVELLAREDUARTE, 2012). As empresas precisam responder de forma efetiva e rápida ao mercado, sendo assim, as aplicações tem que ter 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.

Nas corporações é muito comum os processos serem tratados por departamentos, cada área só visualiza as suas tarefas, as pessoas não visualizam que fazem parte de um processo que pode começar em uma área e terminar em outra. Essa arquitetura tem como objetivo integrar as aplicações, disponibilizar maior flexibilidade para mudanças, suportar serviços independentes de plataforma e protocolos.

Serviços são módulos de negócio ou funcionalidades que possuem interfaces expostas que são invocadas via mensagens. Interfaces disponibilizam recursos sem que a implementação do serviço seja conhecida.

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.

Um dos componentes mais importante em SOA é o ESB (Barramento de Serviços Corporativos), ele não implementa a arquitetura, mas oferece as funcionalidades para implementá-la. O barramento provê uma camada de abstração acima de um sistema de mensageria que permite a integração entre os aplicativos.

Este trabalho tem como objetivo mostrar as vantagens e desvantagens em uma arquitetura orientada a serviços e como evitar que implementações de projetos falhem. Serão mostrados os pontos importantes que devem ser observados em uma arquitetura orientada a serviços.

Nas próximas seções deste trabalho é apresentado, de maneira mais detalhada, como funciona uma arquitetura orientada a serviços.

Revisão Bibliográfica

Serviçõs

Um serviço é uma atividade ou conjunto de atividades de natureza intangível que é o relacionamento entre um provedor e um consumidor. A interação acontece em respostas síncronas ou assíncronas (GRONROOS, 2006). Na prestação de serviços, existe um fornecedor que fornece algum tipo de serviço e o consumidor que consome o serviço fornecido. Abaixo se vê a figura de um ambiente de prestação de serviço.

Um exemplo de serviço é a energia elétrica que chega à sua casa. Há a geração, depois tem transmissão e por último tem distribuição. Para o usuário não importa todas essas etapas, o que importa são os benefícios que geram esse serviço. A seguir estão os princípios de design de serviços listador por Thomas ERL(2009):

Serviços expõem seus membros através de um contrato de serviço. No contrato são definidas quais operações serão disponibilizadas e nele está presente a interface técnica. Essas interfaces são as ligações entre um serviço e as aplicações que irão consumi-lo, expondo somente as operações desejadas.

Arquitetura de Software

A arquitetura de software consiste em documentar o que um sistema precisa ter em termos de componentes computacionais e os relacionamentos entre eles, os padrões que serão usados e suas restrições (SHAW e GARLAN, 1996).

Para construir um software, precisamos ter uma fundação sólida. A arquitetura de software estuda como deve ser feito o software, definindo todos os componentes que devem ser utilizados, estudando os requisitos funcionais e não funcionais do sistema.

A arquitetura de software procura construir uma relação entre os requisitos de negócio e os requisitos técnicos, entendo o funcionamento e então encontrando maneiras de implementar as funcionalidades do sistema. Uma arquitetura bem planejada reduz os riscos de negócio. Alguns benefícios são listados por MARZULLO (2009):

No desenvolvimento de software é muito importe o papel do arquiteto, podemos dividir em três papeis:

Eis algumas funções do arquiteto de software.

SOA

Algumas pessoas dizem que o termo arquitetura orientada a serviços (SOA) foi criado por um analista do Grupo Gartner chamado Alenxander Pasik, em 1994. Outras dizem que os primeiros indícios e discussões foram por volta do ano 2000, de estudos da Microsoft e IBM sobre a tecnologia de Web Service. O que pode ser afirmado é que, atualmente, é visto como uma técnica que cobri melhor as necessidades do mercado. (MARZULLO, 2009).

É uma arquitetura que promove a integração do negócio com a tecnologia da informação com componentes de serviços, esse componente é o principal item dessa arquitetura. 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. (SILVA, 2012).

O foco em SOA é 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, agilidade nas mudanças.

Podemos dizer que SOA é assunto novo, e algumas pessoas confundem o que realmente é essa arquitetura. Abaixo se vê algumas informações erradas sobre ela.

SOA é um conceito de arquitetura que traz maiores prioridades de inovação, aumentando a capacidade de colaboração entres aplicativos e inovando os modelos de negócio e processos. Dizer que uma empresa precisa inovar seu negócio, é a mesma coisa em dizer que é preciso mudar, não existe uma inovação sem mudança, é essa arquitetura facilita as mudanças.

Web Service

Web Service é disponibilização de um serviço pela Internet que pode ser acessado em qualquer lugar. Os clientes enviam requisições com informações bem definidas e recebem respostas que podem ser síncronas ou assíncronas (MARZULLO, 2009).

A disponibilização de um serviço é através de um contrato, que é uma interface que disponibiliza as suas funcionalidades, com uma infraestrutura leve e desacoplada de plataforma que facilita a integração em diferentes tecnologias.

Web Service tem que ser visto por um conjunto de tecnologias, que são citadas por MARZULLO (2009).

ESB

Enterprise Service Bus (ESB) é um barramento de serviços corporativos que fornece uma abstração de camadas na implementação de um sistema empresarial de mensagens. Combina uma abordagem orientada a eventos e orientada a serviços, simplificando integrações de negócios e unindo plataformas heterogêneas e ambientes (MARÉCHAUX, 2006)

ESB é um dos mais importantes componentes de SOA, é um software de infraestrutura que torna os serviços de negócios reutilizáveis e amplamente disponíveis para usuários, aplicações, processo e outros serviços.

Para desenvolver as integrações é cada vez mais complicado e não é rápido como o mercado exige, os barramentos de serviços corporativos aceleram e simplificam as integrações nas aplicações. Empresas como Totvs, IBM e Microsoft vendem essa ferramenta. Principais características dessas ferramentas são:

Desenvolvimento

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).

Implementações de SOA Falham

Falhas em iniciativas SOA não serão publicadas pelos consultores ou fornecedores, o que é vendido é mundo perfeito dessa arquitetura, sendo assim, não expondo alguns cuidados que as empresas deveriam tomar, caso acontece, alguns riscos poderiam ser diminuídos (CARVALHO, 2012).

Alguns erros comuns de SOA são tratar funções de negócio como módulos de softwares técnicos, delegar o projeto para os técnicos, implantar um projeto que não tem valor expressivo para a companhia, decisão de implantação por pessoas que não são da área de estratégia, iniciativas SOA falham por causa das pessoas. São listadas algumas das razões por KAVIS (2008).

Vantagens da Arquitetura Orientada a Serviços

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).

Mudar o negócio e os sistemas das empresas não é uma tarefa fácil, particularmente em um contexto de mudanças constantes, a implantação de SOA não é diferente, sendo assim, porque deve ser utilizada essa arquitetura? Abaixo são listadas algumas vantagens que ela pode trazer para o negócio.

Desvantagens da Arquitetura Orientada a Serviços

A principal preocupação em implementações dessa arquitetura é a questão da segurança. Em uma pesquisa global patrocinada pela CA, 43% dos executivos classifica a segurança como o ponto mais crítico nas iniciativas SOA. (TI INSIDE ONLINE, 2012).

Todos os tipos de desenvolvimento de software tem suas desvantagens, na arquitetura orientada a serviço não é diferente, ela depende da implementação de normas, não é utilizada em aplicações com grande transferência de dados, alto acoplamento e aplicações que precisam manter estado. A seguir são listadas algumas desvantagens.

Boas práticas para implantar SOA

Adotar SOA é conseguir uma solução que assegure uma agilidade comercial e reutilização de funcionalidades. A primeira etapa em adotar essa arquitetura é identificar desafios ou prioridades comerciais importantes à integração. Alguns dos princípios implantados em SOA são escolhidos de modo que atendam as necessidades comercias, ofereçam um bom tempo para concretizar o valor e dando o melhor suporte ao crescimento de longo prazo para as empresas (MICROSOFT, 2012).

O desafio de fornecer aplicações baseadas em SOA está em identificar os problemas que podem acontecer e ter um plano para resolvê-los sem ter impactos na implementação.

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.

A adoção de uma estratégia de SOA precisa ter soluções que estejam alinhas com o negócio e os processos dos setores da empresa. Abaixo alguns desafios técnicos e organizacionais para implementação de SOA são listados.

Para ter uma implementação bem sucedida, depende da abordagem cuidadosa do planejamento da arquitetura de negócios. A ferramenta mais importante é o conjunto de boas práticas. Aprender com as experiências das empresas que já passaram pelos processos de implantação é um bom começo para ter sucesso na implementação de SOA. (FRONCKOWIAK, 2012).

SOA é considerado como chave para melhorar a eficiência de TI, mas para implementar em um negócio, é preciso ter muito mais do que apenas conhecimento técnico. É essencial aprimorar as habilidades em práticas de gestão, utilizando as melhores práticas em relação a SOA. São listadas algumas boas práticas.

Conclusão

O mercado é baseado em processos de negócio, adotar SOA é essencial para as empresas, alinhando TI com o negócio, agilidade, reuso, facilidade na manutenção, flexibilidade e rapidez nas mudanças de processo.

Os desafios que tem essa arquitetura não são na tecnologia, mas nas pessoas que lideram a abordagem orientada a serviço. Para que essa arquitetura seja um caso de sucesso, tem que ter uma mudança organizacional, a área de estratégia da empresa deve garantir o patrocínio e acreditar que SOA é importante para os negócios.

Esse trabalho mostrou as vantagens que essa arquitetura pode trazer para o negócio, as desvantagens que nos próximos anos serão estudadas para formar uma arquitetura mais eficiente e como boas práticas podem ajudar a iniciativas em SOA. Os próximos desafios em SOA estão diretamente relacionados a fornecer serviços com mais segurança e conscientização das pessoas que estão envolvidas nos processos.

Uma conclusão é que abordagem tradicional de desenvolvimento de software não é mais capaz de trazer vantagens à organização, e que SOA responde de forma efetiva e rápida aos negócios.

Referências:

Artigos relacionados