Como Construir uma Arquitetura Orientada a Serviços (SOA)
© .com | Bakhtiar Zein
neste artigo, vamos focar no tema da Arquitetura Orientada a Serviços (SOA). Começamos com um mergulho profundo em 1) SOA: uma descrição e depois discutimos 2) Construindo uma arquitetura orientada a serviços.
arquitetura orientada a serviços: uma descrição
o que é SOA?SOA ou Arquitetura Orientada a serviços é um método através do qual diferentes tipos de serviços podem interagir uns com os outros de forma independente. Um serviço é uma parte autónoma da funcionalidade, e vários serviços podem ser combinados para fornecer uso e funcionalidade de um aplicativo de software em grande escala. O SOA faz é que torna mais simples para as peças de software em PCs que estão conectados a uma rede para interagir e cooperar. O padrão de design do SOA é tal que os componentes de aplicativos nele podem oferecer serviços a outros componentes, principalmente em uma rede. Cada sistema de computador pode executar qualquer número de serviços, cada um dos quais é construído para trocar informações com qualquer outro serviço diferente em uma rede sem ajuda humana.
na terminologia de negócios, SOA é um conjunto de serviços de TI alinhados aos negócios que, juntos, atendem aos objetivos e processos da empresa de negócios. O projeto estrutural da SOA garante que haja um alinhamento com os requisitos do negócio, bem como a solução tecnológica do mesmo.
os principais elementos do SOA
Aqui estão os principais elementos do SOA:
- SOA Drivers-SOA drivers ou drivers de negócios corporativos incluem coisas como concorrência, estratégia, forças regulatórias e forças de mercado. Todas essas coisas se unem para impulsionar a arquitetura de negócios e dar forma ao gerenciamento de desempenho em todo o negócio
- SOA enablers-os cinco principais facilitadores SOA são Enterprise business model, business performance optimization, Portfolio Rationalization, Enterprise semântica definition e Key performance indicators. Ter um modelo de negócio é importante para o correto alinhamento dos serviços com os objetivos e objetivos do negócio. O modelo de informações semânticas fornece as informações comuns e gerais relacionadas aos negócios para uma determinada empresa. Os principais indicadores de desempenho ou KPIs tornam possível a avaliação do impacto do SOA e facilitam a medição dos processos de negócios. Por outro lado, a racionalização de portfólio torna possível a consolidação e simplificação de aplicativos, dados e infraestrutura.
- SOA Implementation – no que diz respeito à implementação, os serviços e processos de negócios são os principais aspectos. Os processos de negócios estão principalmente associados às metas e objetivos de negócios das operações, enquanto, por outro lado, os Serviços de negócios devem estar bem alinhados e são críticos para a implementação de SOA flexível e bem-sucedida. Alguns dos outros aspectos relacionados à implementação SOA são repositórios de conteúdo corporativo, mensagens semânticas e serviços de integração. As informações representam os recursos de dados da empresa, e esses dados são passados na forma de documentos que fornecem uma espécie de mensagens semânticas entre serviços e processos.Suporte SOA – todas as funções e elementos dos aplicativos e sistemas existentes são disponibilizados e utilizáveis para os serviços com o Suporte de alguns serviços de integração que tiram as tampas das funções existentes por meio de novas interfaces de serviço.
os principais princípios da SOA
a seguir está a lista dos principais princípios da SOA:
- arquitetura de Serviço – o layout físico ou design de serviços individuais que superam todos os recursos usados por um serviço.Arquitetura de composição de Serviço-Todos os serviços desenvolvidos usando métodos de design orientados a serviços são centrados na composição, e essa é sua principal característica. Essa arquitetura, portanto, é a composição de arquiteturas individuais de vários serviços.
- Service inventory architecture – esta arquitetura é formada a partir do Service inventory blueprint, onde o service inventory é composto por serviços que automatizam os procedimentos das empresas.
- Arquitetura Corporativa orientada a serviços – esse tipo constitui composição, serviço e arquiteturas de inventário.
a evolução do conceito SOA
- design monolítico – este projeto estava relacionado à codificação processual relativamente não estruturada
- design orientado a objetos e estruturas – este é o design que envolve unidades de programa baseadas em funcionalidades.
- Design Cliente-Servidor – design de duas camadas) – este é o conceito de design distribuído e está relacionado ao agrupamento de funcionalidades em duas camadas.
- Design de objetos distribuídos – design multitier) – este design envolve interações de objetos em um ambiente heterogêneo e design de objetos distribuídos.Arquitetura de modelo de objeto componente-este é um design no qual há uma agregação de itens em partes baseadas em lógica com tipos fortes, bem como uma interface bem definida.
- Arquitetura Orientada a Serviços – este é um projeto que envolve interações e comunicações entre Serviços de granulação grosseira com interfaces padrão para interoperações flexíveis.
SOA e JAVA
muitos desenvolvedores pensam que SOA, assim como serviços da web, são sinônimos um do outro, mas isso não é verdade. Eles também podem acreditar que simplesmente não é possível construir SOA sem usar serviços da web, mas na realidade, SOA é um princípio de design, mas os serviços da web são uma espécie de tecnologia de implementação. Isso significa que SOA pode ser de fato construído sem fazer uso de tecnologia de implementação de um determinado tipo. Mas Java é outro tipo de tecnologia tradicional que pode ser usada para desenvolver ou construir Arquitetura Orientada a serviços.
o principal objetivo do SOA é desenvolver um acoplamento solto entre os módulos, e um aplicativo pode ser construído onde os módulos não são acoplados um ao outro com muita força. Esse tipo de estrutura pode ser construído ou formado com a ajuda de JAVA.
quais são as características do SOA?
- conexão frouxa – os serviços no SOA são vinculados livremente para formar uma conexão. Isso dá um pressuposto ao mínimo da interdependência entre cada serviço. A ideia principal é reduzir a interdependência ao nível em que a compatibilidade ainda é mantida.
- a interface de serviços padronizada – um requisito básico do SOA é a necessidade de padronização de interfaces e detalhes. Os detalhes devem incluir quais dados são necessários, como um serviço pode ser usado e como as regras devem ser aplicadas.
- reutilização – na SOA, a reutilização de serviços também é possível na cadeia de processos por outras partes e para outros tipos de propósitos.
- Localizabilidade de um serviço-outra característica é que um serviço deve ser facilmente encontrado para usá-lo. Para todos os consumidores, Os repositórios de serviços são disponibilizados e esses repositórios consistem na interface e no método de implementação do serviço.Autonomia de Serviço-cada serviço deve ser capaz de trabalhar e funcionar de forma independente. Este termo aponta para os serviços que são autossuficientes e são capazes de gerenciar recursos, lógica e meio ambiente por conta própria.
- capacidade de orquestração de Serviços – este é um processo em que um serviço individual é combinado com outros serviços para resultar em processos ou unidades de negócios maiores. Esta é uma característica ou requisito adicional para SOA.
- apatridia dos Serviços-o desempenho dos serviços é baseado no conceito de que um serviço definido é prestado. Isso leva em consideração a retenção de dados, mas somente se o requisito for especificado ou solicitado especialmente.
> Vantagens e benefícios de SOA
- Melhores retornos sobre o investimento – Um dos maiores benefícios de SOA é que ele oferece um excelente retorno sobre o investimento. Como o processo envolve a criação de camadas robustas, cada uma dessas camadas de serviço oferece um melhor retorno sobre o investimento que foi feito para criar o software.Mobilidade de Código-este é mais um benefício importante do SOA e é possível porque há uma transparência de localização na arquitetura orientada a serviços. A maioria dos clientes não se importa onde os serviços estão localizados porque há uma ligação dinâmica, bem como a pesquisa de serviços. Isso significa que as empresas que usam SOA podem mover serviços para diferentes máquinas ou movê-los para provedores de serviços externos.
- a reutilização-outra vantagem do SOA é que os vários códigos e serviços podem ser usados repetidamente. Há a conveniência de reutilização de serviço em tempo de execução, e é tão fácil quanto encontrar um serviço no diretório e vinculá-lo. Os desenvolvedores não precisam se preocupar com plataformas e outras incompatibilidades.
- Suporte para vários tipos de clientes-qualquer empresa pode usar vários tipos de clientes e vários clientes para acessar um serviço no SOA. Isso ocorre porque em tal estrutura ou conceito, as camadas foram divididas em serviço, e camadas de cliente e vários tipos de cliente são mais simples de implementar.
- um nível mais alto de disponibilidade – vários servidores têm vários casos de serviços usando-os devido ao fato de que SOA suporte a transparência de localização. Isso significa que a disponibilidade geral é muito alta. Por exemplo, se uma máquina ou parte de uma rede parar de funcionar ou tiver algum problema, as solicitações podem ser redirecionadas para outros serviços sem que o cliente saiba ou seja incomodado por ela.
- menos defeitos-esta é uma grande vantagem do SOA. A probabilidade de defeitos é muito menor, e o teste geral é muito melhor devido às interfaces publicadas de serviços que podem ser testadas facilmente. Mais testes se traduz em um maior nível de precisão e menos defeitos.
SOA Challenges
- falta de espaço de teste-um dos maiores desafios no SOA é a falta de espaço de teste. Em uma arquitetura típica, não há ferramentas ou métodos bem formados ou sofisticados para testar um serviço sem cabeça, como uma mensagem ou serviço de banco de dados. O principal objetivo da SOA é oferecer agilidade às empresas e empresas. Mas, devido à falta de confiança horizontal, é preciso investir em uma estrutura de teste que facilite o desafio.
- gerenciar metadados de Serviços – este é um desafio comum e muito óbvio do SOA. Gerenciar os metadados dos serviços não é apenas difícil, mas muitas vezes muito complicado. Um espaço arquitetônico baseado em serviço envolve serviços interagindo uns com os outros trocando mensagens. Em tal cenário, um único serviço pode às vezes ter milhões de mensagens geradas. Gerenciar esses muitos serviços pode se tornar muito difícil, especialmente quando os Serviços são entregues por diferentes empresas e departamentos dentro de uma empresa. Isso cria muitos problemas de confiança.
- fornecer níveis corretos de Segurança-outro desafio da SOA é fornecer níveis apropriados de segurança. A segurança gerenciada por aplicativos não é o método ou modelo correto para proteger serviços porque os modelos de segurança projetados em aplicativos não podem ser suficientes quando o aplicativo se mostra para outros.Interoperabilidade-isso se torna um aspecto crucial das implementações SOA. Muitas vezes, na busca de reduzir ou diminuir a interdependência dos serviços, a compatibilidade entre eles pode reduzir, mas a dependência deve ser reduzida a um nível tal que a compatibilidade ainda possa ser mantida.
- hype do Fornecedor – há um hype significativo do fornecedor relacionado ao SOA, e isso cria um certo nível de expectativas indevidas. Embora existam muitas vantagens do SOA, ele também pode ter várias desvantagens. Por exemplo, SOA não garante uma redução nos custos de TI e nem promete melhoria na agilidade dos sistemas. Assim, seria melhor se houvesse uma distinção clara entre hype e realidade.
construindo uma arquitetura orientada a serviços
SOA Framework
para entender como SOA é construído, você primeiro precisará entender qual é sua estrutura.
SOA é visto como 5 camadas horizontais diferentes que são:
- camada de interface do consumidor-esses são os aplicativos que acessam interfaces de serviço ou aplicativo.
- camada de processo de negócios – esta é uma camada que é um serviço que representa casos de uso de negócios no que diz respeito aos aplicativos.
- Serviços-muitos serviços são combinados para criar uma empresa inteira.
- componentes de Serviço – estes são os componentes ou peças que são usados para construir serviços como interfaces tecnológicas e bibliotecas técnicas, etc.
- sistemas operacionais – esta é a camada que contém padrões técnicos, modelos de dados e repositório de dados, etc.
a seguir estão as camadas verticais da estrutura SOA que são aplicadas e suportadas pelas horizontais:
- camada de integração-esta camada consiste em suporte de protocolo ou integração de plataforma, integração de dados, integração de aplicativos e serviços, etc.
- qualidade do serviço-os fatores que compõem a qualidade do serviço incluem disponibilidade, segurança, desempenho e outros.
- informacional-essa camada faz principalmente o trabalho de fornecer informações relacionadas a negócios.
- Governança – essa camada ou camada de estratégia de TI é governada por camadas horizontais para atingir a capacidade, bem como o modelo operacional, conforme necessário.
SOA Implementation Framework (SOAIF)
SOA implementation needs and requires run-time infrastructural software as well as tools. Isso pode ser coletivamente referido como estrutura de implementação de arquitetura orientada a serviços ou SOAIF. Este conceito visa uma estrutura abrangente que oferece todos os tipos de tecnologia que uma empresa pode exigir não apenas construir, mas também executar SOA. Um SOAIF consiste e inclui recursos de tempo de execução e tempo de design. Ele também inclui uma funcionalidade de software que uma empresa pode precisar de executar uma SOA e também construí-lo, incluindo orientada a serviços:
- Modelagem
- Integração
- Ferramentas
- Administração
- Segurança
- Processos
Abordagens SOA
Existem três grandes tipos de métodos ou abordagens que têm vindo a surgir para informações do clube, díspares e sistemas em uma empresa. À medida que diferentes provedores de serviços e empresas correm para fornecer soluções para clientes e consumidores, essas abordagens ajudam a atender aos requisitos de serviços assíncronos, de grãos grosseiros e vagamente clubbed.
1. O Enterprise Service Bus
a primeira abordagem que ajuda a construir e implementar um SOA ideal é o enterprise service bus ou ESB. Essa abordagem ajuda a coordenar e organizar os diferentes elementos que estão na forma de serviços distribuídos em uma rede. Essa abordagem considera os sistemas como serviços discretos e distribuídos que se conectam entre si por meio de infraestrutura orientada a mensagens assíncrona. Esse tipo de infraestrutura orientada a mensagens torna possível ter conexões fracamente acopladas entre serviços ou módulos independentes.
2. Gestão de processos de negócios
muitas empresas, há muitos anos, tentaram resolver problemas de processos de negócios pela implementação da abordagem de gerenciamento de processos de negócios. Essa abordagem leva em consideração os ativos e sistemas de TI como atividades ou tarefas que participam de procedimentos de negócios bem sincronizados e bem orquestrados. As ferramentas BPM são usadas principalmente no momento da modelagem e design de procedimentos, em vez de usá-los para construir processos que possam atingir os objetivos de integração. Este é o principal desafio do BPM. Por soluções BPM por conta própria são suficientes para atender aos requisitos SOA porque eles não consistem no ambiente de tempo de execução necessário para módulos fracamente acoplados.
3. Integração orientada a serviços
a terceira e última abordagem para a implementação adequada do SOA é a abordagem de integração orientada a serviços. Essa abordagem específica faz uso das regras ou princípios de orientação arquitetônica para construir um ambiente ou ecossistema de serviços que as empresas possam combinar dinamicamente e criar processos de nível superior que possam atender a requisitos em constante mudança e evolução. Essa abordagem passa por módulos fortemente acoplados e frágeis, criando uma distinção entre o consumidor e o produtor de um serviço. Assim, impõe o aspecto do acoplamento solto necessário para implementar SOA adequadamente para atender aos requisitos de negócios. Mesmo essa abordagem por si só não é suficiente para garantir interações de longa duração entre os Serviços.
as melhores práticas para a construção de um SOA
ao construir um SOA, é preciso seguir algumas das melhores e mais vantagens práticas. Essas práticas são fornecidas da seguinte forma:
- as tecnologias de implementação são muito sensatas, e é preciso lembrar de não pular para elas por causa de sua popularidade. É preciso considerar cuidadosamente se os serviços da web fazem ou não mais sentido para seus requisitos e necessidades. É importante lembrar que a construção de aplicativos orientados a serviços, fazendo uso de tecnologias como o RMI, pode ser mais adequada para o caso de uma empresa, em vez de serviços da web.
- deve-se lembrar de não criar ou construir módulos muito bem ligados ou acoplados, pois isso leva a uma configuração ou infraestrutura frágil.
- é importante manter a interoperabilidade e, para isso, é preciso seguir as melhores práticas do WS-I.
- se você não vê nenhum sentido em usar serviços da web, então há muitas outras opções alternativas também que podem ser escolhidas.