Qual é a diferença entre microsserviços e SOA

Índice:

Anonim

o principal diferença entre microsserviços e SOA é que Microservice é um tipo de SOA que divide um aplicativo em um grupo de serviços separados, enquanto SOA é um estilo de design de software que permite que os componentes do aplicativo forneçam serviços a outros componentes em uma rede.

Normalmente, um aplicativo monolítico é uma única unidade que hospeda vários componentes de software. É possível hospedar e entregar os componentes juntos. Existem algumas desvantagens em aplicativos monolíticos. Além disso, os programadores podem implementá-los usando várias tecnologias. Portanto, esses aplicativos não são flexíveis e a falha em um componente pode afetar todo o sistema. Portanto, isso faz com que esses aplicativos não sejam confiáveis. Além disso, esses aplicativos não são escaláveis ​​e dificultam o desenvolvimento de grandes aplicativos. Microsserviços e SOA são duas arquiteturas que ajudam a superar as limitações dos aplicativos de arquitetura monolítica.

Microsserviços, aplicativo monolítico, API REST, SOA

O que são microsserviços

Microsserviço é um estilo de arquitetura que divide um aplicativo em um conjunto de serviços independentes e cada serviço funciona separadamente. Portanto, é uma arquitetura descentralizada ou arquitetura refinada.

Existem dois tipos de serviços em um microsserviço: serviço funcional e serviço de infraestrutura. O serviço funcional é um serviço que contém a lógica de negócios de um determinado recurso, enquanto o serviço de infraestrutura é um serviço que executa operações não comerciais e não funcionais.

Em um microsserviço, a comunicação entre os componentes ocorre por meio de uma camada de API. Em outras palavras, não há middleware. Geralmente, uma API REST ajuda a estabelecer a comunicação entre os componentes.

Por exemplo, suponha um aplicativo de compras. Conta de usuário, catálogo de produtos e carrinho de compras são recursos separados. Cada recurso se divide em tarefas separadas e cada tarefa lida com um serviço separado. Por exemplo, o recurso de carrinho de compras tem tarefas como exibir produto e atualizar tarefas de produto. Além disso, o serviço do produto de exibição lida com o produto de exibição enquanto o serviço do produto de atualização lida com o serviço do produto de atualização. Em outras palavras, cada serviço executa uma tarefa específica.

O que é SOA

SOA é um estilo de design de software que fornece serviços para outros componentes usando componentes de aplicativo. Esses componentes do aplicativo se conectam entre si usando protocolos de comunicação. Um serviço é uma unidade discreta de funcionalidade. Além disso, é acessível remotamente e pode ser atualizado de forma independente.

Vários tipos de serviços em SOA são os seguintes.

Serviço Comercial é um serviço que executa a operação principal do negócio.

Serviço Empresarial implementa a funcionalidade definida pelo serviço de negócios e usa o serviço de aplicativo e o serviço de infraestrutura.

Serviço de aplicativo representa a funcionalidade central do recurso e é possível invocá-los diretamente ou por meio de uma interface de usuário.

Serviço de infraestrutura é um tipo de serviço que lida com operações não comerciais e não técnicas. (auditoria, segurança etc.)

Além disso, diferentes linguagens e componentes ajudam no desenvolvimento dos componentes. Em SOA, há um middleware de mensagens, como Enterprise Service Bus (ESB), para permitir a comunicação entre vários componentes do aplicativo.

Por exemplo, suponha um aplicativo de compras. Possui aplicativos separados, como aplicativo de conta de usuário, aplicativo de carrinho de compras e aplicativo de catálogo de produtos. Cada aplicativo consiste em várias pequenas tarefas. Além disso, todos eles se conectam para criar um único serviço de aplicativo.

Diferença entre microsserviços e SOA

Definição

Microsserviços se referem a um estilo de desenvolvimento de software que é uma variante da arquitetura orientada a serviços (SOA) que estrutura um aplicativo como uma coleção de serviços fracamente acoplados. Em contraste, SOA é um estilo de design de software em que os serviços são fornecidos a outros componentes por componentes de aplicativo, por meio de um protocolo de comunicação em uma rede. Portanto, isso descreve a diferença entre microsserviços e SOA.

Tipo de arquitetura

Além disso, microsserviços é uma arquitetura de granulação grossa ou arquitetura descentralizada, enquanto SOA é uma arquitetura de granulação fina ou arquitetura centralizada.

Tipos de serviço

Enquanto os microsserviços têm serviços funcionais e de infraestrutura, SOA tem serviços de negócios, corporativos, de aplicativos e de infraestrutura. Portanto, esta é outra diferença entre microsserviços e SOA.

Comunicação

Além disso, uma outra diferença entre microsserviços e SOA é que os microsserviços usam uma camada de API para comunicação, enquanto SOA usa middleware para comunicação.

Threading

Além disso, os microsserviços são single threaded, enquanto SOA é multithread. Portanto, essa também é uma diferença entre microsserviços e SOA.

Aplicativo

É possível expor e acessar todos os serviços de microsserviços por meio do mesmo protocolo de acesso remoto, enquanto SOA ajuda a integrar vários sistemas usando diferentes protocolos em um ambiente heterogêneo.

Conclusão

A principal diferença entre Microservices e SOA é que Microservice é um tipo de SOA que divide um aplicativo em um grupo de serviços separados. Em geral, SOA é um estilo de design de software em que os componentes do aplicativo fornecem serviços para os outros componentes em uma rede. Em resumo, Microservice é uma variante ou tipo de SOA.

Referências:

1. “Microsserviços.” Wikipedia, Wikimedia Foundation, 25 de abril de 2019, disponível aqui. 2. “Arquitetura Orientada a Serviços”. Wikipedia, Wikimedia Foundation, 19 de abril de 2019, disponível aqui. 3.edureka! YouTube, YouTube, 12 de março de 2018, disponível aqui.

Cortesia de imagem:

1. ”Novo Serviço” de Xiaoan888 - Trabalho próprio (CC BY-SA 4.0) via Commons Wikimedia2. ”SOA DP Event-Driven Messaging B” (CC BY-SA 3.0) via Commons Wikimedia

Qual é a diferença entre microsserviços e SOA