Академический Документы
Профессиональный Документы
Культура Документы
UDESC/UNISOCIESC
Inovao no Ensino/Aprendizagem em
Engenharia
1 INTRODUO
O conceito de cidades inteligentes vem ganhando fora nos ltimos anos por suas
caractersticas inovadoras com a proposta de melhorar a qualidade de vida de seus habitantes,
atravs de rotinas que permitem as pessoas usar melhor seu tempo e facilitar a difuso de
informaes relevantes.
Existem vrias ferramentas que podem ser usadas para a implementao eficiente de um
"ambiente inteligente", uma que vem ganhando destaque nos ltimos anos a Internet das
Coisas - IoT [Gubbi et al., 2013]). Para fazer isso na prtica, torna-se necessrio um sistema
robusto capaz de armazenar essas informaes e que pode ser facilmente acessado e
manipulado por meio de um padro conhecido por todos os que usaro sua interface. Um
ambiente inteligente definido como um sistema onde a computao penetrante e usada
para melhorar a experincia humana, como para a partilha de til de dados ou algo mais como
um sistema de tomada de deciso [Cicirelli F & Vinci, 2016].
Este trabalho prope uma API de Sala de Aula Inteligente, que administra informaes
relacionadas a horrios de aula, atividades, informaes relevantes sobre cursos universitrios,
e quaisquer outros assuntos relacionados a um ambiente tanto escolar como acadmico, foi
escrita no Node.JS [Tilkov & Vinoski, 2010] que acessa um banco de dados construdo no
PostgreSQL, ambos armazenados em containers criados utilizando Docker [Airton Lastori,
2015]. Inicialmente, a API surge para atender as necessidades do projeto denominado
SmartClass ou Sala de Aula Inteligente, dentro da disciplina de Redes de Computadores 2 do
Curso de Engenharia da Computao da Universidade Federal do Par, onde a API era
responsvel por fazer o gerenciamento dos dados por meio das requisies, juntamente com
Joinville/SC 26 a 29 de Setembro de 2017
UDESC/UNISOCIESC
Inovao no Ensino/Aprendizagem em
Engenharia
uma rede MQTT (Message Queue Transporte de Telemetria) [Hunkeler et al., 2008] que
utilizava sensores para coletar informaes sobre o ambiente acadmico e meteorolgico e um
aplicativo mvel que mostrava tais informaes aos usurios, facilitando a comunicao entre
o aluno e os assuntos acadmicos.
Desse modo, o objetivo da SmartClass API propor uma ferramenta adaptvel que pode
ser modificada e portada para qualquer outro ambiente de interesse com um mnimo
necessrio de codificao e configurao, em outras palavras, uma ferramenta que pode ser
implantada em qualquer meio estudantil. Dispondo do cdigo livre para acesso na plataforma
Github, cujo nome do projeto SmartClass-UFPA/server.
Agora vamos explicar como a API foi desenvolvida. Este artigo est organizado da
seguinte forma: a Seo 2 mostra uma viso geral sobre as ferramentas e conceitos utilizados
no projeto. A Seo 3, descreve a construo do banco de dados e API de Sala de Aula de
Inteligente. A Seo 4, mostra os resultados obtidos da API sendo utilizada no projeto
SmartClass em uma turma na UFPA Campus Belm, e na Seo 5, a concluso obtida a
partir deste projeto.
2 VISO GERAL
A API uma maneira de conectar o banco de dados da web com seu aplicativo de forma
simples. O uso de APIs bastante comum porque, depois de configurado, pode ser lido por
qualquer tipo de aplicativo apenas fazendo requisies HTTP. O uso de APIs para tornar a
comunicao entre o banco de dados e sua aplicao muito eficaz, caso contrrio, o banco
Joinville/SC 26 a 29 de Setembro de 2017
UDESC/UNISOCIESC
Inovao no Ensino/Aprendizagem em
Engenharia
de dados seria vulnervel a qualquer tipo de invaso ou erro de cdigo. Basicamente o seu
programa funciona enviando pedidos para a API e ela lida com essas informaes e as envia
de volta ao banco de dados, ele envia a informao que tratada pela API e sua aplicao,
geralmente no formato JSON, que leve e fcil de ler. A Figura 2 representa o papel de
uma API.
2.3 Postgresql
O servidor criado dividido em duas partes que so o banco de dados Postgre e Node.js
Server com API REST. O banco de dados possui cinco tabelas com informaes sobre
Joinville/SC 26 a 29 de Setembro de 2017
UDESC/UNISOCIESC
Inovao no Ensino/Aprendizagem em
Engenharia
atividades, notas, aulas, horrios e cursos, as informaes detalhadas sobre as tabelas esto na
Figura 3. O servidor tem a responsabilidade de estabelecer comunicao entre aplicativos e
banco de dados de forma simples e padronizada para facilitar o acesso a informaes por
aplicativos externos que tenham autorizao para o acesso. O servidor foi construdo usando o
mecanismo de JavaScript chamado Node.js, que permite que voc desenvolva aplicativos no
lado do servidor usando o Javascript. Foi utilizada a biblioteca Express para Node.js para criar
a API REST para responder solicitaes HTTP feitas pelos aplicativos externos.
Figura 3 - Ilustrao das tabelas do banco de dados, com campos e tipos de dados.
Foi construdo controladores especficos para cada tabela no banco de dados de acordo
com as necessidades de aplicativos externos. Por exemplo, na tabela de informaes sobre
cursos (a tabela "Cursos") possui um controlador com funes para adicionar, atualizar, ler e
excluir entradas na tabela atravs de solicitaes HTTP feitas por agentes externos. A tabela 1
mostra alguns dos controladores utilizados no servidor e o caminho utilizado para fazer
transaes no banco de dados.
Tanto o servidor com API REST e o servidor PostgreSQL foram implementados usando
continer Docker. O container com banco de dados usou a imagem oficial do PostgreSQL
chamado "postgre" e o container com Node.js usou a imagem oficial de Node.js chamada
"node", essas imagens esto disponveis no Docker Hub. O uso de containers garante
flexibilidade, escalabilidade e tornam o controle mais simples. Os links em container com
servidor e banco de dados foram criados usando redes docker, que permitem estabelecer uma
rede virtual deixando um grupo isolado em relao a outros containers de forma a melhorar a
disponibilidade e a segurana. Na Figura 4 h uma ilustrao sobre as redes de containers,
suas relaes e alguns parmetros do Docker, como rede, volumes e portas, por exemplo,
tomando como base o projeto SmartClass-UFPA.
5 CONSIDERAES FINAIS
Agradecimentos
REFERNCIAS BIBLIOGRFICAS
Artigos de jornais:
MERKEL, D. (2014). Docker: lightweight linux containers for consistent development and
deployment. Linux Journal, 2014.p.239.
Internet:
IMASTERS, Airton Lastori (2015). Utilizando Docker com MySQL. Disponvel em: <
https://imasters.com.br/banco-de-dados/mysql/utilizando-docker-com-
mysql/?trace=1519021197&source=single> Acesso em: 15 fev. 2017.
Joinville/SC 26 a 29 de Setembro de 2017
UDESC/UNISOCIESC
Inovao no Ensino/Aprendizagem em
Engenharia
NodeBr (2017), Admin. O que o NPM do Node.JS. Disponvel em: < http://nodebr.com/o-
que-e-a-npm-do-nodejs/> Acesso em: 20 fev. 2017.
Trabalhos em eventos
DUSIA A, Y. Y. and M, T. (2015). Network quality of service in docker containers - IEEE
International Conference on Cluster Computing.
TILKOV, S. and VINOSKI, S. (2010). Node. js: Using javascript to build high-performance
network programs - IEEE Internet Computing, 14(6):8083.
Abstract: The SmartClass API project aims to face difficulties around communication of the
student inside and outside the academic environment, being hard confront by the absence of
technologies or systems. Thus, the project consists in an API, that uses open source tools
present in many current applications, such as, virtualization containers using Docker,
ProstgreSQL database and NodeJS framework.