-
Notifications
You must be signed in to change notification settings - Fork 0
2. Justificativa
A explosão da internet mudou a realidade da comunicação, trazendo novas demandas que tiveram como resposta as aplicações distribuídas. Empresas tem contratado sistemas de diferentes fornecedores, com efeito, surge a necessidade de se fazer a integração desses sistemas de informação. Mais recentemente, acompanhamos o crescimento da internet das coisas (IoT), onde cada vez mais temos diferentes tipos de dispositivos acessando serviços na Nuvem.
Todos os dias estamos recuperando ou inserindo novos dados em alguma API na Internet. Faz-se necessário um modelo arquitetural simples e eficiente, que ajude a tornar os sistemas escalonáveis e flexíveis e as API tornam isso possível. Uma API modelada de forma correta é simples e intuitiva de ser utilizada.
O desenvolvimento de sistemas distribuídos baseados em API é um padrão amplamente adotado pelo mercado, que por ser bem conhecido fica mais simples de fazer as integrações. Prover e consumir API é independente de linguagem de programação. Uma API desenvolvida em Java pode ser consumida por uma aplicação desenvolvida em qualquer outra linguagem, como Python ou JavaScript. APIs trazem o requisito da interoperabilidade, pois podem interagir entre si além de serem consumidas por outros sistemas.
REST é o estilo arquitetural de desenvolvimento de API mais difundido do mercado e gRPC é uma arquitetura mais moderna, com características interessantes e promissoras, apadrinhada pela gigante Google, é apontada como a arquitetura de API do futuro.
Acreditamos que estudar e implementar estas arquiteturas contribuirá para a formação e auxiliará no crescimento profissional e individual para a busca de oportunidades de alta qualificação no mercado de trabalho.
Éder Marques - @earmarques - [email protected]
All rights reserved - Distributed above GPL3 license. See LICENSE to more information.
-
Resumo
-
1. Introdução
-
2. Justificativa
-
3. Objetivos
-
4. Fundamentação Teórica
4.1. RPC Legado
4.2. REST
4.3. gRPC
4.4. Golang
4.5. Dart
4.6. Protocol Buffers
-
5. Trabalhos Similares
-
6. Metodologia
-
7. Desenvolvimento
7.1. JavaScript - Sorteador de número
7.1.1. Definição de contrato – sorteio.proto
7.1.2. Servidor gRPC – NodeJS
7.2. Golang – Fornecedor de id
7.2.1. Definição de contrato – gerador_id.proto
7.2.2. Servidor gRPC – Golang
7.3. Dart – Banco de dados
7.3.1. Definição de contrato – aluno.proto
7.3.2. Servidor gRPC de banco de dados e Cliente gRPC de Golang
7.4. Java – Aplicação Cliente
7.5. Simulação
-
8. Resultados e Discussões
-
9. Conclusões
-
Referências