SlideShare uma empresa Scribd logo
1 de 12
Baixar para ler offline
PUC-Campinas Projeto Final A
ThingProvider- Página 1 de 12
PONTIFÍCIA UNIVERSIDADE CATÓLICA
ENGENHARIA ELÉTRICA - CEATEC
Projeto Final A
PROPOSTA DE PROJETO TÉCNICO
ThingProvider
Nome do aluno (a): Kevin Matheus Martins
Orientador: Fabio Pereira Benjovengo
PUC-Campinas Projeto Final A
ThingProvider- Página 2 de 12
ÍNDICE
1 Introdução.................................................................................................................... 3
2 Descrição do Projeto.................................................................................................... 3
2.1 Justificativa........................................................................................................... 3
2.2 Objetivo................................................................................................................ 4
2.3 Funcionalidades ................................................................................................... 4
2.4 Arquitetura............................................................................................................ 5
2.4.1 ThingProviderNode.............................................................................................. 5
2.4.2 ThingProvider....................................................................................................... 5
2.4.3 ThingProviderWeb............................................................................................... 6
2.4.4 ThingProviderAuthentication............................................................................... 7
2.5 Produto................................................................................................................. 7
3 Metodologia ................................................................................................................. 8
4 Atividades .................................................................................................................. 10
5 Cronograma............................................................................................................... 10
6 Riscos e mitigação..................................................................................................... 11
7 Recursos materiais .................................................................................................... 11
8 Referências................................................................................................................ 11
PUC-Campinas Projeto Final A
ThingProvider- Página 3 de 12
1 Introdução
Com a crescente necessidade de integrar diferentes sistemas o conceito de APIs(application
programming interface) se tornou bastante popular e se mostrou como uma das melhores soluções
para a exposição de serviços, permitindo a gerencia de serviços escaláveis, flexíveis e seguros.
Atualmente as APIs são construídas em sua maior parte utilizando os conceitos do modelo
arquitetural REST(Representational State Transfer) onde recursos são gerenciados e identificados
com o conceito de URI(Uniform Resource Identifier) sobre o protocolo HTTP(The Hypertext
Transfer Protocol) representando seus recursos com múltiplos formatos sendo o mais comum deles o
JSON(JavaScript Object Notation).
Em grandes e pequenas implantações de IOT(Internet of things) são comumente utilizadas os
conceitos de monólitos fazendo com que a arquitetura da solução seja eficaz, porém qualquer
alteração fará com que todo o sistema seja recarregado. Uma alternativa recente aos monólitos é a
arquitetura voltada aos microserviços onde o sistema como um todo é dividido em pequenos
serviços independentes, flexíveis e escaláveis.
A aplicação de microserviços junto as APIs pode tornar as implantações de IOT mais
baratas, escaláveis, resistente a erros além de prover um design eficiente para a heurística da IOT.
2 Descrição do Projeto
Os dispositivos de IOT precisam manter o tráfico de rede pequeno além de necessitar que
este seja rápido dado que possuem uma memória pequena e limitada, um baixo poder de
processamento de grandes informações e consumo limitado de energia devido suas baterias. Esse
cenário caracteriza a exposição de serviços onde este irá processar apenas as requisições de seus
serviços expostos, ficando a responsabilidade de quem fez a requisição processá-la e tomar decisões
sobre está.
2.1 Justificativa
A aplicação do conceito de microservicos e APIs voltadas a IOT prove melhorias de
performance e custos além de permitir integração entre diversos sistemas e remover a
necessidade de reinicialização completa do sistema em casos de erro.
PUC-Campinas Projeto Final A
ThingProvider- Página 4 de 12
Em ambientes locais é difícil o compartilhamento de dados entre usuários devido à
inexistência de plataformas simples com este fim. É necessária uma plataforma que demonstre
quais os serviços locais estão disponíveis e quais são os recursos para utiliza-las.
2.2 Objetivo
Aplicar os conceitos arquiteturais de microservicos e exposição de serviços REST em
aplicações de IOT, prover uma plataforma para exposição de serviços e demonstrar que o custo,
performance e compartilhamento de serviços gera melhorias quanto comparadas a arquitetura
monolítica.
2.3 Funcionalidades
O sistema será divido em quatro grandes módulos sendo:
 ThingProviderAuthenticator
Autenticação;
Criação de novos usuários;
Segurança;
 ThingProviderWeb
Interfaces com o usuário;
Filtros;
 ThingProviderNodes
Disponibilização de APIs para repasse do ThingProvider;
 ThingProvider
Gerencia das APIs;
Servidor de aplicação;
Exposição de serviços;
PUC-Campinas Projeto Final A
ThingProvider- Página 5 de 12
2.4 Arquitetura
2.4.1 ThingProviderNode
Será considerado um nó todo componente que estiver expondo uma API de modo que se o
mesmo componente expuser mais de uma API este será compreendido como mais de um nó no
sistema.
Figura 1-ThingProviderNode
Para o teste de conceito será utilizado um dos modelos do produto Arduinio sendo este uma
plataforma de prototipagem eletrônica junto a sensores que irão captar a informações para exposição
dos serviços. Para criação dos serviços será utilizada a biblioteca open source aREST que possibilita
a criação de web services restfull com facilidade.
Cada sensor gerará uma API baseada nos principais verbos do protocolo HTTP que sejam
condizentes com a finalidade deste.
2.4.2 ThingProvider
O servidor do ThingProvider será responsável pela gerencia das APIs locais ,
disponibilizando serviços CRUD de APIs, busca e controles de usuário. Sua finalidade é prover uma
maneira fácil para que os usuários compartilhem os serviços disponíveis.
Este também irá disponibilizar uma API para comunicação com o front-end e o módulo de
autenticação.
PUC-Campinas Projeto Final A
ThingProvider- Página 6 de 12
Figura 2-ThingProviderServer
Para exposição das APIs será necessário que estas sejam cadastradas pelos usuários.
Este módulo será desenvolvido utilizando a linguagem de programação Java junto ao
framework Spring.
2.4.3 ThingProviderWeb
Este componente será a parte de integrações gráficas com o usuário provendo maneiras de
este interagir com o nosso back-end. Para construção te telas será utilizado os dados provindos da
API do ThingProvider e serão construídas utilizando o framework JavaScript React.
Figura 3-ThingProviderWeb
PUC-Campinas Projeto Final A
ThingProvider- Página 7 de 12
2.4.4 ThingProviderAuthentication
Este módulo será o responsável pelo login dos usuários em nossa aplicação , gerando
segurança ao nosso sistema.
Irá utilizar algumas APIs disponibilizadas pelo ThingProvider e será desenvolvido utilizando
a linguagem Java e o framework SpringSecurity.
Figura 4-ThingProviderAuthentication
2.5 Produto
O produto completo do ThingProvider será a integração de todos seus componentes
permitindo a completa utilização do sistema.
Figura 5-ThingProvider
PUC-Campinas Projeto Final A
ThingProvider- Página 8 de 12
3 Metodologia
Todo desenvolvimento do projeto será mantido na plataforma GitHub no repositório
ThingProvider(https://github.com/kevinmmartins/ThingProvider) utilizando o modelo Kanban para
controle de tarefas junto as issues que devem ser desenvolvidas e a milestone referente a está.
Figura 6-Issues
Figura 7-Detalhes das issues
PUC-Campinas Projeto Final A
ThingProvider- Página 9 de 12
Figura 8- Projetos
Figura 9-Kanban
Problemas encontrados durante o projeto devem ser abertos como issues de erros e serão
tratadas ao final do desenvolvimento dos módulos do ThingProvider para que seu impacto no
cronograma seja pequeno.
Para análise dos resultados será verificado a quantidade de requisições em que um nó irá
suportar demonstrando a correta abordagem no compartilhamento de serviços. Também será gerado
casos onde uma API esteja indisponível e que o restante do sistema não seja afetado para demonstrar
uma das vantagens da aplicação dos conceitos nos microserviços em IOT.
PUC-Campinas Projeto Final A
ThingProvider- Página 10 de 12
Para verificação do módulo de interface com o usuário junto à aplicação será demonstrado
que este consegue efetuar operações básicas além de descobrir novos serviços para sua utilização.
4 Atividades
Criação do projeto – Fundação de todos os projetos antes dos desenvolvimentos;
Proposta de projeto – Elaboração da proposta de projeto;
Análise de dados – Criação de todas as entidades do negócio antes de desenvolver as
operações básicas;
Desenvolvimento do CRUD- Após criação das entidades devem-se criar as operações básicas
para manuseio destas;
Criação de serviços do Server- Disponibilizar uma API para ser consumida pelo
ThingProviderWeb;
Criação de nós- Criação de no mínimo um nó com a biblioteca aREST;
GUI- Criação da camada de interfaces com o usuário;
Authentication- Criação do módulo de autenticação;
Teste de conceito- Integrar todos os módulos;
Análise do teste de conceito- Verificar os dados obtidos e confronta-los com os objetos do
projeto;
5 Cronograma
Tabela 1 – Cronograma do projeto
FEVEREIRO MARÇO ABRIL MAIO JUNHO
ATIVIDADE 14 21 07 14 21 25 28 04 11 18 25 29 02 09 16 23 30 03 06 13 21 28
Criação do projeto X X X
Proposta de projeto X X
Criação de nós X X X
Análise de dados X X
Desenvolvimento do
CRUD
X X
PUC-Campinas Projeto Final A
ThingProvider- Página 11 de 12
GUI X X X
Teste de conceito X X
Análise do teste de
conceito
X
6 Riscos e mitigação
Biblioteca Arest se mostrar de difícil utilização ou de escopo não genérico e outra solução necessitar
ser implementada;
Arquitetura utilizada na aplicação se mostrar ineficaz ou de configuração complexa necessitando
alterações;
Mudança de escopos definidos nas sprints;
Falta de tempo devido a necessidade de aprendizado de novas tecnológicas por parte do
desenvolvedor;
7 Recursos materiais
Micro controlador – R$40;
Sensor de chuva – R$15;
Internet shield – R$30;
Servidor (será utilizado um equipamento já adquirido);
Software – Todos os softwares utilizados são livres;
8 Referências
Medium- IoT is eating the world: APIs and REST. Disponível em <
https://medium.com/@AlexandraBowen/iot-is-eating-the-world-apis-and-rest-9e0321bc6cbf >.
Acesso em 24 Abril 2018.
D Zone- REST Without JSON: The Future of IoT Protocols. Disponível em <
https://dzone.com/articles/json-http-and-the-future-of-iot-protocols>. Acesso em 24 Abril 2018.
InforQ-rest e internet das coisas. Disponível em <
https://www.infoq.com/br/news/2013/12/rest-iot#>. Acesso em 24 Abril 2018.
PUC-Campinas Projeto Final A
ThingProvider- Página 12 de 12
Multi-IOT e micro serviços. Disponível em < http://www.grupomult.com.br/iot-
comunicacao-de-dados-e-microservicos-uma-visao-integrada-para-suportar-industria-4-0/>. Acesso
em 24 Abril 2018.
aREST-Rest library . Disponível em < https://arest.io/get-started>. Acesso em 24 Abril 2018.
Spring-Spring Framework. Disponível em < https://spring.io/>. Acesso em 24 Abril 2018.
Java- Java software . Disponível em < https://java.com/en/download/>. Acesso em 24 Abril
2018.
React-JavaScript library. Disponível em < https://reactjs.org/>. Acesso em 24 Abril 2018.
Github-Git repository. Disponível em < https://github.com/>. Acesso em 24 Abril 2018.

Mais conteúdo relacionado

Semelhante a ThingProvider-Proposal

Monografia_AWS_ProtocolosIOT_DenisStorti_v1.1
Monografia_AWS_ProtocolosIOT_DenisStorti_v1.1Monografia_AWS_ProtocolosIOT_DenisStorti_v1.1
Monografia_AWS_ProtocolosIOT_DenisStorti_v1.1Denis Storti da Silva
 
[DTC21] Thiago Lima - Do Zero ao 100 no Mundo de Microservices
[DTC21] Thiago Lima - Do Zero ao 100 no Mundo de Microservices[DTC21] Thiago Lima - Do Zero ao 100 no Mundo de Microservices
[DTC21] Thiago Lima - Do Zero ao 100 no Mundo de MicroservicesDeep Tech Brasil
 
AAB301 - Rich Internet Application - wcamb
AAB301 - Rich Internet Application - wcambAAB301 - Rich Internet Application - wcamb
AAB301 - Rich Internet Application - wcambMicrosoft Brasil
 
Modular Monoliths - Como é possível organizar sua aplicação para habilitar um...
Modular Monoliths - Como é possível organizar sua aplicação para habilitar um...Modular Monoliths - Como é possível organizar sua aplicação para habilitar um...
Modular Monoliths - Como é possível organizar sua aplicação para habilitar um...Luiz Costa
 
TDC2018SP | Trilha Microservices - Modular Monoliths - Como e possivel organi...
TDC2018SP | Trilha Microservices - Modular Monoliths - Como e possivel organi...TDC2018SP | Trilha Microservices - Modular Monoliths - Como e possivel organi...
TDC2018SP | Trilha Microservices - Modular Monoliths - Como e possivel organi...tdc-globalcode
 
Sistema de Ponto Eletrônico Digital: projeto e implementação de hardware e so...
Sistema de Ponto Eletrônico Digital: projeto e implementação de hardware e so...Sistema de Ponto Eletrônico Digital: projeto e implementação de hardware e so...
Sistema de Ponto Eletrônico Digital: projeto e implementação de hardware e so...Andre Devecchi
 
201406Carvalho
201406Carvalho201406Carvalho
201406CarvalhoAfonso Pra
 
Portfolio Grupo 4 ADS Unopar Desafios1-2-3-4
Portfolio Grupo 4 ADS Unopar Desafios1-2-3-4Portfolio Grupo 4 ADS Unopar Desafios1-2-3-4
Portfolio Grupo 4 ADS Unopar Desafios1-2-3-4Adilson Nascimento
 
Documento de arquitetura do software
Documento de arquitetura do softwareDocumento de arquitetura do software
Documento de arquitetura do softwareFábio Ferreira
 
Como DDD e Strategic Design estão nos ajudando a modernizar um Legado
Como DDD e Strategic Design estão nos ajudando a modernizar um LegadoComo DDD e Strategic Design estão nos ajudando a modernizar um Legado
Como DDD e Strategic Design estão nos ajudando a modernizar um LegadoLuiz Costa
 
Plano do projeto de software SIGEM - Sistema de gestão de materiais
Plano do projeto de software SIGEM - Sistema de gestão de materiaisPlano do projeto de software SIGEM - Sistema de gestão de materiais
Plano do projeto de software SIGEM - Sistema de gestão de materiaisMarcos Pessoa
 
ASP.Net MVC 3 - o que há de novo (TechEd)
ASP.Net MVC 3 - o que há de novo (TechEd)ASP.Net MVC 3 - o que há de novo (TechEd)
ASP.Net MVC 3 - o que há de novo (TechEd)Giovanni Bassi
 
Proposta lucas simon-rodrigues-magalhaes
Proposta lucas simon-rodrigues-magalhaesProposta lucas simon-rodrigues-magalhaes
Proposta lucas simon-rodrigues-magalhaeslucassrod
 
Keynote Visual Studio Summit 2016
Keynote Visual Studio Summit 2016Keynote Visual Studio Summit 2016
Keynote Visual Studio Summit 2016Ramon Durães
 

Semelhante a ThingProvider-Proposal (20)

Monografia_AWS_ProtocolosIOT_DenisStorti_v1.1
Monografia_AWS_ProtocolosIOT_DenisStorti_v1.1Monografia_AWS_ProtocolosIOT_DenisStorti_v1.1
Monografia_AWS_ProtocolosIOT_DenisStorti_v1.1
 
Intro aspnet webapi
Intro aspnet webapiIntro aspnet webapi
Intro aspnet webapi
 
[DTC21] Thiago Lima - Do Zero ao 100 no Mundo de Microservices
[DTC21] Thiago Lima - Do Zero ao 100 no Mundo de Microservices[DTC21] Thiago Lima - Do Zero ao 100 no Mundo de Microservices
[DTC21] Thiago Lima - Do Zero ao 100 no Mundo de Microservices
 
AAB301 - Rich Internet Application - wcamb
AAB301 - Rich Internet Application - wcambAAB301 - Rich Internet Application - wcamb
AAB301 - Rich Internet Application - wcamb
 
Modular Monoliths - Como é possível organizar sua aplicação para habilitar um...
Modular Monoliths - Como é possível organizar sua aplicação para habilitar um...Modular Monoliths - Como é possível organizar sua aplicação para habilitar um...
Modular Monoliths - Como é possível organizar sua aplicação para habilitar um...
 
TDC2018SP | Trilha Microservices - Modular Monoliths - Como e possivel organi...
TDC2018SP | Trilha Microservices - Modular Monoliths - Como e possivel organi...TDC2018SP | Trilha Microservices - Modular Monoliths - Como e possivel organi...
TDC2018SP | Trilha Microservices - Modular Monoliths - Como e possivel organi...
 
Sistema de Ponto Eletrônico Digital: projeto e implementação de hardware e so...
Sistema de Ponto Eletrônico Digital: projeto e implementação de hardware e so...Sistema de Ponto Eletrônico Digital: projeto e implementação de hardware e so...
Sistema de Ponto Eletrônico Digital: projeto e implementação de hardware e so...
 
201406Carvalho
201406Carvalho201406Carvalho
201406Carvalho
 
Asp net mvc
Asp net mvcAsp net mvc
Asp net mvc
 
Portfolio Grupo 4 ADS Unopar Desafios1-2-3-4
Portfolio Grupo 4 ADS Unopar Desafios1-2-3-4Portfolio Grupo 4 ADS Unopar Desafios1-2-3-4
Portfolio Grupo 4 ADS Unopar Desafios1-2-3-4
 
Documento de arquitetura do software
Documento de arquitetura do softwareDocumento de arquitetura do software
Documento de arquitetura do software
 
Web services
Web  servicesWeb  services
Web services
 
Como DDD e Strategic Design estão nos ajudando a modernizar um Legado
Como DDD e Strategic Design estão nos ajudando a modernizar um LegadoComo DDD e Strategic Design estão nos ajudando a modernizar um Legado
Como DDD e Strategic Design estão nos ajudando a modernizar um Legado
 
Plano do projeto de software SIGEM - Sistema de gestão de materiais
Plano do projeto de software SIGEM - Sistema de gestão de materiaisPlano do projeto de software SIGEM - Sistema de gestão de materiais
Plano do projeto de software SIGEM - Sistema de gestão de materiais
 
ASP.Net MVC 3 - o que há de novo (TechEd)
ASP.Net MVC 3 - o que há de novo (TechEd)ASP.Net MVC 3 - o que há de novo (TechEd)
ASP.Net MVC 3 - o que há de novo (TechEd)
 
Proposta lucas simon-rodrigues-magalhaes
Proposta lucas simon-rodrigues-magalhaesProposta lucas simon-rodrigues-magalhaes
Proposta lucas simon-rodrigues-magalhaes
 
Relatorio de analise mural tic
Relatorio de analise mural ticRelatorio de analise mural tic
Relatorio de analise mural tic
 
Keynote Visual Studio Summit 2016
Keynote Visual Studio Summit 2016Keynote Visual Studio Summit 2016
Keynote Visual Studio Summit 2016
 
Artigo sd
Artigo sdArtigo sd
Artigo sd
 
Autenticacao visual
Autenticacao visualAutenticacao visual
Autenticacao visual
 

ThingProvider-Proposal

  • 1. PUC-Campinas Projeto Final A ThingProvider- Página 1 de 12 PONTIFÍCIA UNIVERSIDADE CATÓLICA ENGENHARIA ELÉTRICA - CEATEC Projeto Final A PROPOSTA DE PROJETO TÉCNICO ThingProvider Nome do aluno (a): Kevin Matheus Martins Orientador: Fabio Pereira Benjovengo
  • 2. PUC-Campinas Projeto Final A ThingProvider- Página 2 de 12 ÍNDICE 1 Introdução.................................................................................................................... 3 2 Descrição do Projeto.................................................................................................... 3 2.1 Justificativa........................................................................................................... 3 2.2 Objetivo................................................................................................................ 4 2.3 Funcionalidades ................................................................................................... 4 2.4 Arquitetura............................................................................................................ 5 2.4.1 ThingProviderNode.............................................................................................. 5 2.4.2 ThingProvider....................................................................................................... 5 2.4.3 ThingProviderWeb............................................................................................... 6 2.4.4 ThingProviderAuthentication............................................................................... 7 2.5 Produto................................................................................................................. 7 3 Metodologia ................................................................................................................. 8 4 Atividades .................................................................................................................. 10 5 Cronograma............................................................................................................... 10 6 Riscos e mitigação..................................................................................................... 11 7 Recursos materiais .................................................................................................... 11 8 Referências................................................................................................................ 11
  • 3. PUC-Campinas Projeto Final A ThingProvider- Página 3 de 12 1 Introdução Com a crescente necessidade de integrar diferentes sistemas o conceito de APIs(application programming interface) se tornou bastante popular e se mostrou como uma das melhores soluções para a exposição de serviços, permitindo a gerencia de serviços escaláveis, flexíveis e seguros. Atualmente as APIs são construídas em sua maior parte utilizando os conceitos do modelo arquitetural REST(Representational State Transfer) onde recursos são gerenciados e identificados com o conceito de URI(Uniform Resource Identifier) sobre o protocolo HTTP(The Hypertext Transfer Protocol) representando seus recursos com múltiplos formatos sendo o mais comum deles o JSON(JavaScript Object Notation). Em grandes e pequenas implantações de IOT(Internet of things) são comumente utilizadas os conceitos de monólitos fazendo com que a arquitetura da solução seja eficaz, porém qualquer alteração fará com que todo o sistema seja recarregado. Uma alternativa recente aos monólitos é a arquitetura voltada aos microserviços onde o sistema como um todo é dividido em pequenos serviços independentes, flexíveis e escaláveis. A aplicação de microserviços junto as APIs pode tornar as implantações de IOT mais baratas, escaláveis, resistente a erros além de prover um design eficiente para a heurística da IOT. 2 Descrição do Projeto Os dispositivos de IOT precisam manter o tráfico de rede pequeno além de necessitar que este seja rápido dado que possuem uma memória pequena e limitada, um baixo poder de processamento de grandes informações e consumo limitado de energia devido suas baterias. Esse cenário caracteriza a exposição de serviços onde este irá processar apenas as requisições de seus serviços expostos, ficando a responsabilidade de quem fez a requisição processá-la e tomar decisões sobre está. 2.1 Justificativa A aplicação do conceito de microservicos e APIs voltadas a IOT prove melhorias de performance e custos além de permitir integração entre diversos sistemas e remover a necessidade de reinicialização completa do sistema em casos de erro.
  • 4. PUC-Campinas Projeto Final A ThingProvider- Página 4 de 12 Em ambientes locais é difícil o compartilhamento de dados entre usuários devido à inexistência de plataformas simples com este fim. É necessária uma plataforma que demonstre quais os serviços locais estão disponíveis e quais são os recursos para utiliza-las. 2.2 Objetivo Aplicar os conceitos arquiteturais de microservicos e exposição de serviços REST em aplicações de IOT, prover uma plataforma para exposição de serviços e demonstrar que o custo, performance e compartilhamento de serviços gera melhorias quanto comparadas a arquitetura monolítica. 2.3 Funcionalidades O sistema será divido em quatro grandes módulos sendo:  ThingProviderAuthenticator Autenticação; Criação de novos usuários; Segurança;  ThingProviderWeb Interfaces com o usuário; Filtros;  ThingProviderNodes Disponibilização de APIs para repasse do ThingProvider;  ThingProvider Gerencia das APIs; Servidor de aplicação; Exposição de serviços;
  • 5. PUC-Campinas Projeto Final A ThingProvider- Página 5 de 12 2.4 Arquitetura 2.4.1 ThingProviderNode Será considerado um nó todo componente que estiver expondo uma API de modo que se o mesmo componente expuser mais de uma API este será compreendido como mais de um nó no sistema. Figura 1-ThingProviderNode Para o teste de conceito será utilizado um dos modelos do produto Arduinio sendo este uma plataforma de prototipagem eletrônica junto a sensores que irão captar a informações para exposição dos serviços. Para criação dos serviços será utilizada a biblioteca open source aREST que possibilita a criação de web services restfull com facilidade. Cada sensor gerará uma API baseada nos principais verbos do protocolo HTTP que sejam condizentes com a finalidade deste. 2.4.2 ThingProvider O servidor do ThingProvider será responsável pela gerencia das APIs locais , disponibilizando serviços CRUD de APIs, busca e controles de usuário. Sua finalidade é prover uma maneira fácil para que os usuários compartilhem os serviços disponíveis. Este também irá disponibilizar uma API para comunicação com o front-end e o módulo de autenticação.
  • 6. PUC-Campinas Projeto Final A ThingProvider- Página 6 de 12 Figura 2-ThingProviderServer Para exposição das APIs será necessário que estas sejam cadastradas pelos usuários. Este módulo será desenvolvido utilizando a linguagem de programação Java junto ao framework Spring. 2.4.3 ThingProviderWeb Este componente será a parte de integrações gráficas com o usuário provendo maneiras de este interagir com o nosso back-end. Para construção te telas será utilizado os dados provindos da API do ThingProvider e serão construídas utilizando o framework JavaScript React. Figura 3-ThingProviderWeb
  • 7. PUC-Campinas Projeto Final A ThingProvider- Página 7 de 12 2.4.4 ThingProviderAuthentication Este módulo será o responsável pelo login dos usuários em nossa aplicação , gerando segurança ao nosso sistema. Irá utilizar algumas APIs disponibilizadas pelo ThingProvider e será desenvolvido utilizando a linguagem Java e o framework SpringSecurity. Figura 4-ThingProviderAuthentication 2.5 Produto O produto completo do ThingProvider será a integração de todos seus componentes permitindo a completa utilização do sistema. Figura 5-ThingProvider
  • 8. PUC-Campinas Projeto Final A ThingProvider- Página 8 de 12 3 Metodologia Todo desenvolvimento do projeto será mantido na plataforma GitHub no repositório ThingProvider(https://github.com/kevinmmartins/ThingProvider) utilizando o modelo Kanban para controle de tarefas junto as issues que devem ser desenvolvidas e a milestone referente a está. Figura 6-Issues Figura 7-Detalhes das issues
  • 9. PUC-Campinas Projeto Final A ThingProvider- Página 9 de 12 Figura 8- Projetos Figura 9-Kanban Problemas encontrados durante o projeto devem ser abertos como issues de erros e serão tratadas ao final do desenvolvimento dos módulos do ThingProvider para que seu impacto no cronograma seja pequeno. Para análise dos resultados será verificado a quantidade de requisições em que um nó irá suportar demonstrando a correta abordagem no compartilhamento de serviços. Também será gerado casos onde uma API esteja indisponível e que o restante do sistema não seja afetado para demonstrar uma das vantagens da aplicação dos conceitos nos microserviços em IOT.
  • 10. PUC-Campinas Projeto Final A ThingProvider- Página 10 de 12 Para verificação do módulo de interface com o usuário junto à aplicação será demonstrado que este consegue efetuar operações básicas além de descobrir novos serviços para sua utilização. 4 Atividades Criação do projeto – Fundação de todos os projetos antes dos desenvolvimentos; Proposta de projeto – Elaboração da proposta de projeto; Análise de dados – Criação de todas as entidades do negócio antes de desenvolver as operações básicas; Desenvolvimento do CRUD- Após criação das entidades devem-se criar as operações básicas para manuseio destas; Criação de serviços do Server- Disponibilizar uma API para ser consumida pelo ThingProviderWeb; Criação de nós- Criação de no mínimo um nó com a biblioteca aREST; GUI- Criação da camada de interfaces com o usuário; Authentication- Criação do módulo de autenticação; Teste de conceito- Integrar todos os módulos; Análise do teste de conceito- Verificar os dados obtidos e confronta-los com os objetos do projeto; 5 Cronograma Tabela 1 – Cronograma do projeto FEVEREIRO MARÇO ABRIL MAIO JUNHO ATIVIDADE 14 21 07 14 21 25 28 04 11 18 25 29 02 09 16 23 30 03 06 13 21 28 Criação do projeto X X X Proposta de projeto X X Criação de nós X X X Análise de dados X X Desenvolvimento do CRUD X X
  • 11. PUC-Campinas Projeto Final A ThingProvider- Página 11 de 12 GUI X X X Teste de conceito X X Análise do teste de conceito X 6 Riscos e mitigação Biblioteca Arest se mostrar de difícil utilização ou de escopo não genérico e outra solução necessitar ser implementada; Arquitetura utilizada na aplicação se mostrar ineficaz ou de configuração complexa necessitando alterações; Mudança de escopos definidos nas sprints; Falta de tempo devido a necessidade de aprendizado de novas tecnológicas por parte do desenvolvedor; 7 Recursos materiais Micro controlador – R$40; Sensor de chuva – R$15; Internet shield – R$30; Servidor (será utilizado um equipamento já adquirido); Software – Todos os softwares utilizados são livres; 8 Referências Medium- IoT is eating the world: APIs and REST. Disponível em < https://medium.com/@AlexandraBowen/iot-is-eating-the-world-apis-and-rest-9e0321bc6cbf >. Acesso em 24 Abril 2018. D Zone- REST Without JSON: The Future of IoT Protocols. Disponível em < https://dzone.com/articles/json-http-and-the-future-of-iot-protocols>. Acesso em 24 Abril 2018. InforQ-rest e internet das coisas. Disponível em < https://www.infoq.com/br/news/2013/12/rest-iot#>. Acesso em 24 Abril 2018.
  • 12. PUC-Campinas Projeto Final A ThingProvider- Página 12 de 12 Multi-IOT e micro serviços. Disponível em < http://www.grupomult.com.br/iot- comunicacao-de-dados-e-microservicos-uma-visao-integrada-para-suportar-industria-4-0/>. Acesso em 24 Abril 2018. aREST-Rest library . Disponível em < https://arest.io/get-started>. Acesso em 24 Abril 2018. Spring-Spring Framework. Disponível em < https://spring.io/>. Acesso em 24 Abril 2018. Java- Java software . Disponível em < https://java.com/en/download/>. Acesso em 24 Abril 2018. React-JavaScript library. Disponível em < https://reactjs.org/>. Acesso em 24 Abril 2018. Github-Git repository. Disponível em < https://github.com/>. Acesso em 24 Abril 2018.