SóProvas


ID
1190287
Banca
FGV
Órgão
DPE-RJ
Ano
2014
Provas
Disciplina
Arquitetura de Software
Assuntos

José adotou uma arquitetura orientada a serviços (SOA) para desenvolver uma aplicação e disponibilizar suas funcionalidades como serviços interoperáveis e reutilizáveis. Para que as funcionalidades da aplicação estejam de acordo com o paradigma SOA, José deve:

Alternativas
Comentários
    • d) implementar as funcionalidades do sistema na forma de serviços, garantindo que estes mantenham um baixo acoplamento, uma alta coesão e sejam de uma granularidade grossa. 

  • A granularidade dos serviços é utilizada para mensurar a profundidade de abstração que foi aplicado. A granularidade pode ser dividida em duas partes, sendo: granularidade fina (fine-grained) e granularidade grossa (coarse-grained), onde granularidade fina determina que precisamos de muitos "grãos", enquanto na granularidade grossa, teremos poucos "grãos", bem maiores.

    Com a granularidade fina, teremos serviços com poucas operações, mas dividiremos essas operações por vários serviços. 

    Já com a granularidade grossa, isso se inverte, ou seja, teremos poucos serviços, mas cada um deles conterá uma porção bem maior de operações. 

    Cada uma das técnicas tem suas vantagens e desvantagens, e ao meu ver, quando temos uma granularidade fina, temos pequenos "blocos" de funcionalidades bem específicas e muitas vezes independentes, e que ficam bem mais fáceis de serem atualizadas, distribuídas e gerenciadas, mas isso pode se tornar complexo demais para aqueles que consomem os serviços, já que terão que compor e sincronizar suas operações, para que atinja um determinado objetivo. 

    Por outro lado, a granularidade grossa pode tornar os serviços mais auto-suficientes, mas o problema disso é que cada serviço poderá, acidentalmente, fazer muito mais trabalho do que ele realmente deveria, e que muitas vezes precisará recorrer à outros serviços, para que, também, atinjam o seu objetivo, aumentando assim o acoplamento.

    http://www.linhadecodigo.com.br/artigo/2599/granularidade-de-servicos.aspx#ixzz3OZiyYJEk

  • Qual o erro da C?

  • A letra C diz que vc deve utilizar padrões de projeto. Ou seja, refere-se a detalhes de implementação. SOA não trata disso, é independente de tecnologia ou padrões de projeto. 

  • Analise das opções:

    a) utilizar o protocolo HTTP como contrato formal, permitindo assim que qualquer aplicação cliente acesse os serviços da aplicação desenvolvidos por José. (Errado - WSDL tem informações contrato formal)

    b) utilizar um repositório WSDL para disponibilizar contratos SOAP, aumentando a coesão e diminuindo o acoplamento do sistema. (Errado - O repositório UDDI para recuperar web services e suas principais partes são Registro e Descoberta )

    c) implementar os serviços da aplicação utilizando padrões de projeto que permitam que um componente de software que implementa um determinado serviço seja utilizado em outro sistema. (Errado - SOA é independente de arquitetura tecnologica)

    d) implementar as funcionalidades do sistema na forma de serviços, garantindo que estes mantenham um baixo acoplamento, uma alta coesão e sejam de uma granularidade grossa. (Correto - Principios básicos de SOA: baixo acoplamento e alta coesão e granulidade que pode ser fina ou grossa depende do desenho do serviço - http://www.linhadecodigo.com.br/artigo/2599/granularidade-de-servicos.aspx )

    e) utilizar um mecanismo de autenticação e HTTPs para garantir a segurança da sua aplicação e para garantir o alto acoplamento entre cliente e provedor de serviços. (Errado - Principio básico de SOA é baixo acoplamento)

  • O erro da letra c) é que a maior parte da literatura diz que não existem padrões de projeto SOA bem aceitos até o presente momento.

    Não sei se mudou alguma coisa desde então, mas em 2014 com certeza era assim.