Upload
alexandre-lira
View
213
Download
0
Embed Size (px)
Citation preview
7/28/2019 Arquitetura Orientada a Servios
1/5
1.1. Arquitetura Orientada a Servios
Segundo Josuttis (2007), Arquitetura Orientada a Servios um paradigma
(conceito ou filosofia) que lida com sistemas distribudos que, necessariamente, nopertencem a um mesmo proprietrio. Dessa forma, SOA uma maneira de pensar que
guia o modo como sistemas so projetados, desde sua arquitetura at sua
implementao.
SOA tem o propsito de tratar os requisitos de baixo acoplamento,
desenvolvimento baseado em padres, computao distribuda independente de
protocolo, mapeamento dos sistemas de informao da organizao para todos os
seus fluxos de processos de negcios, integrao de aplicaes, gerncia de
transaes, polticas de segurana e coexistncia de sistemas em mltiplas plataformas
e tambm sistemas legados (Papazoglou et al, 2007).
SOA estabelece um modelo arquitetural que permite aumentar a eficincia,
agilidade e produtividade de um negcio, a partir da utilizao de servios como
principal meio no qual a soluo representada em suporte a realizao de um
objetivo estratgico para a organizao (Erl, 2012). SOA pode ser vista como um
paradigma para o desenvolvimento de sistemas distribudos de modo que as
funcionalidades sejam compostas a partir de um conjunto de servios, onde estes
podem ser reutilizveis por outras aplicaes ou servios.
Dentro do modelo arquitetural de SOA, Erl (2005) afirma que existem trs
nveis de abstrao, que compem uma arquitetura SOA: Orquestrao de Servios,
Servios de Negcio e Servios de Aplicao. Essas camadas so utilizadas para criar
sistemas mais flexveis e evita que um servio tenha complexidade alm da necessria.
A figura 1 mostra o modelo arquitetural de SOA e os nveis de abstrao citados por Erl
(2005):
7/28/2019 Arquitetura Orientada a Servios
2/5
Figura 1 - Modelo Arquitetural de SOA e os nveis de Abstrao na camada de Servios.
(Figura retirada de Erl, 2005).
A criao de camadas independentes de servios vista na figura anterior,
tambm facilita a manuteno e evoluo dos mesmos atravs da criao de nveis de
abstrao.
A camada de servios de aplicao a camada base que existe para fornecer
servios reutilizveis, chamados de Application Services, relacionados ao
processamento de dados em ambientes de aplicao novos ou legados.
O segundo nvel de abstrao a camada de servios de negcio. Atravs dos
Business Services, a camada de servios de negcio tem como objetivo representar a
lgica do negcio da forma mais pura possvel. Business Services so responsveis por
expressar a lgica dos negcios atravs da orientao a servios.
Por fim, a camada de orquestrao de servios que tem o objetivo de gerenciar
a interao entre os diversos servios pertencentes a um fluxo de trabalho. A camada
de orquestrao de servios consiste em um ou maisprocess services que compem os
business e application services de acordo com as regras de negcio embutidas em um
processo.
1.1.1. Por que adotar SOA?
7/28/2019 Arquitetura Orientada a Servios
3/5
Segundo Medeiros (2010), existem diversas razes pelas quais se deve
desenvolver um software orientado a servios. As principais so:
Reusabilidade: Conforme os mercados vo se interligando cada vez mais, oambiente de negcios vai se tornando cada vez mais complexo. Segundo
Medeiros (2010), em um contexto de SOA, a reusabilidade alcanada a partir
da composio de servios j existentes com a criao de novos servios.
Segundo Erl (2009), um dos principais objetivos por trs da reusabilidade em
SOA permitir que, em longo prazo, haja um aumento significativo do retorno
em relao ao investimento inicial, permitindo que novos servios sejam feitos
a partir da composio de servios j existentes;
Integrao e Interoperabilidade: Segundo Erl (2005), servios devem ser feitosde modo que sejam utilizados princpios de design, como uso de padres
abertos e disponibilizao de um ambiente de descoberta de servios, que
permitam aos servios serem naturalmente interoperveis. Promover essas
caractersticas pode diminuir significativamente o custo e o esforo em cumprir
requisitos futuros de integrao entre aplicativos. Segundo Medeiros (2010),
SOA permite que as organizaes selecionem entre os diversos produtos de
fornecedores, uma vez que possibilita a existncia de um ambiente
heterogneo, fator diretamente ligado a integrao.
1.1.2. Caractersticas
Sistemas Distribudos
Conforme as empresas crescem, se tornam mais complexas, com mais e mais
sistemas e envolvidas com cada vez mais empresas (Josuttis, 2007). Dessa forma,
solues que envolvem SOA do suporte a integrao com sistemas pertencentes a
diferentes empresas e que podem ter sido desenvolvidos em diferentes plataformas e
linguagens de programao (Medeiros, 2010), alm de permitir que fornecedores e
7/28/2019 Arquitetura Orientada a Servios
4/5
consumidores de servio possam interagir de maneira mais fcil, permitindo a
realizao de funcionalidades de maneira distribuda (Josuttis, 2007).
Diversos Fornecedores
Outra caracterstica de SOA, alm dos grandes sistemas distribudos, que
diferentes partes de um sistema podem pertencer a diversos fornecedores (Medeiros
2010 apud MacKenzie et al., 2006). SOA inclui prticas e processos que se baseiam no
fato de que partes dos sistemas distribudos no so controladas por um nico
proprietrio (Josuttis, 2007). Dessa forma, SOA precisa lidar com diferentes
plataformas, linguagens, Bugs e polticas de acesso.
Heterogeneidade
Segundo Medeiros (2010), grandes sistemas podem ser compostos por
mainframes, bancos de dados, aplicaes Java, e assim por diante. No passado,
algumas abordagens propostas para resolver o problema da integrao em sistemas
distribudos eliminavam a heterogeneidade (Josuttis, 2007). Porm, por motivos j
citados, esse um fator que no se pode ignorar e que deve ser tratado. Dessa forma,
SOA aceita e apoia a heterogeneidade como forma de tratar grandes sistemas
distribudos (Medeiros, 2010).
1.1.3. Conceitos
Servios
SOA focada em processos de negcio e um servio pode ser definido como
uma funcionalidade que representa um processo de negcio ou parte dele,
disponibilizado atravs de uma interface de acesso bem definida.
Para Erl (2005), servios so unidades pertencentes a um contexto (processo,
entidade, etc.) que existem e funcionam de forma autnoma e que obedecem a um
conjunto de princpios que os possibilita evoluir continuamente, mantendo sua
padronizao e uniformizao. Dias (2008) define um servio como um contrato, um
7/28/2019 Arquitetura Orientada a Servios
5/5
ou mais interfaces e uma implementao. J Josuttis (2007), d uma nfase mais
tcnica ao definir um servio como uma interface para mltiplas mensagens que
retorna uma informao e/ou altera o estado de uma entidade associada.
Interoperabilidade
Com sistemas cada vez mais complexos, houve a necessidade de ser ter
sistemas heterogneos. O conceito de interoperabilidade vem com o objetivo de fazer
com que sistemas desenvolvidos em diferentes plataformas possam trocar
informaes. Segundo Josuttis (2007), interoperabilidade o inicio de tudo para SOA.
A partir dela que processos de negcio espalhados por vrios sistemas distribudos
podem ser desenvolvidos. Em SOA, os processos so desenvolvidos de modo que
estejam disponveis para serem utilizados por outros sistemas. Para Erl (2005), a
interoperabilidade em SOA motivada por fatores como o uso obrigatrio de padres
abertos, a existncia de diversos fornecedores e os mecanismos de descoberta.