Buscar

Trabalho SOA

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 11 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 11 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 11 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Introdução
O desenvolvimento de sistemas muitas vezes esbarra no modelo de negócios gerido pelas empresas. Os impasses trazem prejuízos e problemas de comunicação entre as partes, o que acaba dando origem a produtos que não cumprem com as expectativas. Para resolver esse problema, foi criada a SOA, um modelo de arquitetura de software cujo objetivo é alinhar os negócios com o desenvolvimento de tecnologia.
SOA - Service Oriented Arquitecture
Muitas empresas atualmente possuem uma grande quantidade de aplicações de diversas tecnologias, plataformas e linguagens de programação, realizar a integração de todos esses sistemas pode ser uma tarefa difícil. A globalização e o comércio eletrônico estão cada vez mais acelerando as novas demandas dos consumidores e reduzindo o ciclo de vida dos produtos (ENDREI et al., 2004). A arquitetura orientada a serviços possui uma nova abordagem para construção de sistemas distribuídos e vem para atender este novo mercado ágil e flexível. SOA está disposto a resolver o "gap" existente entre o negócio e a tecnologia de informação (TI), principalmente no sentido semântico, onde os pessoas de negócio e de TI aparentemente falam e pensam em linguagens totalmente diferentes, esta nova abordagem aproxima os negócios da TI como nunca foi antes. O objetivo do SOA é estruturar grandes sistemas distribuídos baseados nas abstrações de regras e funções de negócios. SOA aceita de uma forma única, manter a flexibilidade em grandes sistemas distribuídos, suportar a heterogeneidade, a descentralização e a tolerância a falha. O problema é que SOA não pode ser comprado, SOA é um paradigma, é uma nova forma de pensar e desenvolver sistemas distribuídos (JOSUTTIS, 2007). Para (OASIS, 2006) SOA é definida como sendo: "Um paradigma para organização e utilização de competências distribuídas que estão sob controle de diferentes domínios proprietários." A idéia do SOA para o modelo de referência desenvolvido pela (OASIS, 2006) é disponibilizar uma solução desenvolvida por uma entidade (pessoa ou organização) para resolver um determinado problema para outras entidades, pois esta solução/competência pode ser compatível com o requisito/necessidade de outras entidades. Desta forma, não existe uma relação de um para um entre as competências e as necessidades das entidades, a granularidade das competências e necessidades podem variar do fundamental ao complexo, assim uma necessidade pode requerer mais de uma competência e uma competência pode atender a mais de uma necessidade. Enquanto as competências e necessidades existem independentes do SOA, no ambiente SOA os serviços são formas de colocar as competências e necessidades juntas. Em geral, as entidades que oferecem competências são vistas como provedores de serviços e as entidades que fazem uso destes serviços para atender as suas necessidades são denominadas como consumidores de serviços. Portanto, para que seja possível a interação entre os serviços que implementam as competências e necessidades das entidades é necessário a colaboração, conforme apresentado na figura abaixo, entre os serviços 1) consumidor: aplicação ou outro serviço que necessita de um serviço e o executa de acordo com o contrato de interface; 2) provedor: entidade que aceita e executa as requisições dos consumidores, este publica seus serviços e os registra por meio de um contrato de interface; e 3) de registro: contém um repositório de serviço disponíveis e permite a procura destes. A colaboração entre estes serviços segue o paradigma de "encontrar, conectar e invocar", onde o consumidor realiza uma localização dinâmica do serviço requisitado que foi publicado anteriormente por um provedor, esta localização é realizada por meio de consulta no serviço de registro e após encontrado, o consumidor conecta e invoca o serviço solicitado (ENDREI et al., 2004).
CONCEITOS
Na arquitetura orientada a serviços serviço, interoperabilidade e baixo acoplamento são conceitos importantes que devem ser vistos com mais detalhes (JOSUTTIS, 2007).
1 Serviços
SOA é focado em processos de negócio e estes processos são realizados por meio de atividades e tarefas em diferentes sistemas, assim sendo, podemos dizer que um serviço é uma funcionalidade que corresponde a uma atividade ou tarefa de um processo de negócio. Tecnicamente, um serviço é uma interface para mensagens que retornam informação ou alteram o estado de uma entidade. De acordo com este conceito tudo que pode ser usado como uma interface e representa uma funcionalidade de negócio, pode ser chamado de serviço, mas nem toda interface pode ser considerada serviço em um ambiente SOA. Por exemplo, a figura 3 representa uma interface que permite criar, ler, alterar e excluir um cliente, mas na figura 4 temos as mesmas funcionalidades separadamente descritas em uma interface bem definida, representando o comportamento e a semântica de cada serviço disponibilizado. Em suma, serviço é a representação de alguma funcionalidade de negócio utilizando uma determinada tecnologia de informação, como por exemplo, "criar um cliente", "transferir dinheiro", etc.
Fig. 3 Exemplo de interface tecnicamente alinhada ao negocio.
Fig. 4 Tecnica de interface bem definida alinhada ao negócio.
2 – Interoperabilidade
Em ambientes heterogêneos, a principal meta a ser alcançada é facilitar a conexão entre os sistemas neste ambiente e esta facilidade é conhecida como alta interoperabilidade. Portanto, em SOA, alta interoperabilidade é o início e não o fim. Interoperabilidade é a base para começamos a implementar as funcionalidades de negócios (serviços) em sistemas distribuídos.
3 – Baixo Acoplamento
Baixo acoplamento é um conceito e não um ferramenta para a minimização das dependências entre os sistemas. Quando dependências são minimizadas, as modificações tem seus impactos minimizados, e os sistemas ainda funcionam mesmo quando partes do mesmo não estão operando. A minimização das dependências contribui para a tolerância à falha e a flexibilidade, que é exatamente o que precisamos em um ambiente SOA.
Fig. 5 Formas de acoplamento em SOA.
Ao projetar um sistema baseado no paradigma SOA devemos definir o volume de acoplamento que será introduzido. Na tabela 1 apresentamos alguns tópicos que devem ser considerados quando pensamos em acoplamento. Observe que isto não é uma lista de conferência, onde todos os itens sobre baixo acoplamento devem ser implementados, entretanto se nenhum desses itens for previsto no projeto não podemos considerá-lo como uma solução SOA (JOSUTTIS, 2007).
Enterprise Service Bus - (ESB)
Serviços Web é uma das bases fundamentais para a implementação de um sistema baseado no paradigma SOA, mas para utilizar este recurso existem importantes considerações que afetam a flexibilidade e a manutenção de uma solução SOA. Primeiro, a natureza básica de conexão ponto-a-ponto dos serviços Web significam que o consumidor do serviço terá que ser alterado quando a interface do serviço provedor houver mudança. Segundo, a arquitetura pode se tornar frágil e inflexível quando um grande número de consumidores e provedores se conectam ponto-a-ponto. Terceiro, o consumidor que necessitar de um adaptador de protocolo apropriado de cada provedor de serviço, trará como conseqüência a necessidade de publicar múltiplos adaptadores de protocolo através de muitas aplicações clientes, incrementando os custos e a manutenção do sistema. Por estas razões que o ESB é uma abordagem utilizada em soluções SOA que é dirigida para resolver estas questões (ENDREI et al., 2004). Suas principais responsabilidades são:
• Prover conectividade entre o consumidor e o provedor;
• Transformar, quando necessário, os formatos das mensagens entre o consumidor e o provedor;
• Converter protocolos de transporte entre o consumidor e o provedor;
• Realizar o correto roteamento da requisição do consumidor ao provedor do serviço.
Como observamos, ESB não é um produto, mas uma boa prática para implementar arquiteturasorientadas à serviços. Na figura 23 apresentamos a arquitetura ESB que possibilita a interoperabilidade e o baixo acoplamento entre os serviços. Neste esquema, os "interceptores"possuem a responsabilidade de conectar dinamicamente o consumidor e o provedor do serviço, consultando o serviço no servidor UDDI.
As vantagens da SOA
Assim como qualquer tipo de arquitetura de software, a SOA possui vantagens e desvantagens.
1. Reutilização
Os serviços são independentes entre si. Logo eles podem ser reaproveitados em outros programas que também empreguem a mesma filosofia de implementação. O reúso também traz produtividade às equipes, uma vez que elas podem focar em serviços que ainda não foram reutilizados.
2. Flexibilidade
O isolamento dos módulos permite uma maior flexibilidade como um todo. Novas regras de negócio podem ser concebidas alterando os serviços pertencentes ao sistema ou mudando a comunicação entre eles.
3. Fácil manutenção
Como os módulos são isolados, a manutenção se torna mais fácil. O problema é resolvido dentro de um módulo específico sem afetar os demais.
4. Alinhamento com o negócio
Os processos são visualizados de maneira mais fácil, devido aos serviços representarem cada etapa do negócio. Dessa maneira, é possível alinhar melhor seus objetivos com essa arquitetura.
5. Interoperabilidade
Os serviços são independentes da plataforma ou da tecnologia. Eles podem ser desenvolvidos usando qualquer linguagem de programação em qualquer sistema operacional, desde que consigam comunicar entre si. O resultado é a integração com outros sistemas, serviços e aplicações.
6. Padronização
Toda a SOA é baseada em padrões de comunicação. Então apesar da interoperabilidade e diversidade de aplicações e serviços dentro do produto, eles devem utilizar a mesma comunicação.
7. Abstração
Os serviços são abstraídos da implementação. Isso quer dizer que o desenvolvimento não é específico para um sistema e pode ser adaptado conforme a sua utilização.
As desvantagens da SOA
Agora que já sabemos quais são as vantagens da SOA, está na hora de conhecermos suas limitações. Veja 6 desvantagens dessa arquitetura, ainda segundo a DevMedia:
1. Complexidade
Como uma grande quantidade de serviços precisa ser coordenada, a dificuldade de gerenciamento aumenta sensivelmente. A heterogeneidade dos serviços e o fato deles serem desenvolvidos por empresas diferentes usando linguagens distintas também é um fator de complexidade.
2. Performance
O desempenho da SOA é altamente dependente do servidor onde estão hospedados os módulos. A disponibilidade da rede também pode ser causa de gargalos e lentidão dos serviços.
3. Robustez
Erros no programa podem ser incontroláveis e não tratáveis. Isso acontece porque cada módulo lida com exceções de forma diferente e a arquitetura tem dificuldade para dar manutenção a sistemas heterogêneos.
4. Disponibilidade
Esse problema é bastante similar àquele enfrentado por serviços web. Quando há queda do servidor ou da rede, todo o resto fica indisponível.
5. Testabilidade
Assim como vimos para a robustez, os testes e debugs são tarefas difíceis para os desenvolvedores, uma vez que as aplicações são heterogêneas.
6. Segurança
Os serviços disponibilizados na rede estão suscetíveis a ataques e interceptação de dados. Também estão vulneráveis à sobrecarga de usuários e a outros problemas oriundos desse tipo de plataforma.
Os desafios da SOA no mercado
O grande desafio da implementação da SOA nas empresas está em alterar seu plano de negócios. Para que funcione, é importante que no começo de um projeto as várias áreas de desenvolvimento sejam desenhadas para atuarem como módulos independentes.
Dessa maneira, o desenvolvimento poderá ser feito como se fossem serviços separados. A equipe conseguirá avaliar quais módulos precisam ser desenvolvidos e quais podem ser adquiridos por meio de terceirização ou reutilização de produtos já prontos.
Há ainda as questões de segurança e de governança de TI. É preciso definir bem quais dados serão acessados por esses serviços sem comprometer o modelo de negócios da empresa. O problema da governança tem suas limitações quando o assunto envolve os serviços terceirizados.
No entanto, os benefícios valem a pena perante os desafios. O uso da SOA aumenta a maturidade do software e transmite mais confiabilidade para os clientes. A equipe ganha foco para desenvolver as partes que realmente importam. Já os clientes se beneficiam com um produto mais estável e fluido.
A adoção da SOA traz o alinhamento entre tecnologia e processo. O mercado, no entanto, precisa apoiar essa iniciativa. Os setores de estratégia das empresas devem sofrer uma mudança organizacional para que sua filosofia seja implementada com sucesso.
Para finalizar, podemos afirmar que a aplicação da SOA vai além da criação de serviços como módulos independentes e de sua utilização através de protocolos de web services. É preciso que haja a integração completa entre o modelo de negócio proposto e a tecnologia desenvolvida que faça suporte a ele.
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.
REFERENCIAS
https://www.treinaweb.com.br/blog/voce-sabe-o-que-e-arquitetura-orientada-a-servicos-soa/
https://www.devmedia.com.br/vantagens-e-desvantagens-de-soa/27437
https://www.devmedia.com.br/introducao-a-arquitetura-orientada-a-servicos-soa/27260
https://transformacaodigital.com/desvendando-a-soa-arquitetura-orientada-a-servicos/
https://www.opus-software.com.br/o-que-e-soa-e-quais-os-beneficios/

Continue navegando