Arquitetura Orientada a Serviços

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.