• Aucun résultat trouvé

1 Propri´ et´ es des B´ etons

1.1 G´ en´ eralit´ es sur les BAP

Este sistema utiliza uma base de dadosonline, que lhe permite armazenar os dados, além

de possibilitar a posterior exposição dos mesmos, através de uma aplicação móvel. Assim sendo, nesta secção são descritos os procedimentos e ferramentas utilizadas na implementação destacloud, para o efeito pretendido.

4.4.1 Firebase Realtime Database

Um dos principais objetivos do sistema proposto é a comunicação, em tempo real, entre o controlador, a base de dadosonline e a aplicação, para a exposição imediata da informação

recolhida pelo sensor.

Este banco de dados hospedado na nuvemNoSQL5 utiliza a sincronização, em vez das recorrentes solicitações HTTP, o que permite a recepção dos dados pelos dispositivos envolvidos, num espaço de tempo mais reduzido, o que confirma a sua utilidade no que diz respeito à comunicação em tempo real. De salientar que a comunicação que é estabelecida entre o controlador e a base de dados, e entre esta e a Aplicação Móvel, estão dependentes da disponibilidade de uma rede de comunicação.

A Firebase Realtime Database é um dos diversos serviços gratuitos disponibilizados

pela Google, ainda que, neste caso, existam algumas funcionalidades que apenas estão

disponíveis a utilizadores que contribuam financeiramente.

Deste modo, a FRD é um componente essencial deste sistema, pois armazena todas as leituras efetuadas, possibilitando a sua visualização, através da Aplicação Móvel, o que é possível perceber pela observação do esquema representado na Figura4.11. Além do mais, alguns dos parâmetros fulcrais ao bom funcionamento do sistema são programáveis, remotamente, pois são editáveis na base de dados, que comunica bidirecionalmente com ambos os componentes do sistema [24].

Figura 4.11: Esquema de Comunicação da Informação

5Classe definida de bases de dados que fornecem mecanismos de armazenamento da informação e

4.4.2 Integração no Sistema

A integração da base de dados, tendo em consideração a sua capacidade de comunicação bidirecional, envolve a leitura e escrita de informação através de ambos os componentes, do sistema.

Quanto às configurações ao nível daFirebase, foi necessária a alteração das permissões

de acesso à escrita e leitura (Figura 4.12, na base de dados, permitindo o seu acesso externo (regras de segurança definidas como públicas):

Figura 4.12: Regras de segurança, da base de dados

Integração da FRD, no Controlador

A FRD permite a escrita e leitura de informação, no controlador deste sistema, com recurso às bibliotecas existentes desta plataforma, para Python. Existem então quatro

operações realizadas, duas ao nível de escrita, e duas ao nível de leitura.

Ao executar um ciclo, é definido um período de tempo de espera, para a realização de nova leitura, sendo este período personalizável (em segundos) na AM do sistema, iniciando a aplicação com uma conta com privilégios de administração, o que é visível na Figura4.13.

A segunda operação de leitura, efetuada sobre a FRD, corresponde à definição do mé- todo de análise da informação, tal como indica a Figura4.12. Tal como foi mencionado na secção onde os métodos são abordados, existem dois modos de funcionamento ("Normal"e "Imagem"), o que é também programável, na aplicação móvel.

Ao efetuar um ciclo, o controlador efetua uma operação de leitura, onde verifica como está definido, atualmente, o node correspondente, o que é realizado recorrendo ao co-

mando firebase.get(), que é um método assíncrono, que requer dois argumentos. O pri-

meiro, corresponde ao percurso, na árvore principal, até ao node pretendido, enquanto

que o segundo é o identificativo deste, cujo valor pode ser definido, ou não, retornando, neste caso, todos os dados presentes.

As operações de escrita sobre a base de dados são as responsáveis pela possível visua- lização da informação, ao nível da AM. Existem então dois tipos de operações deste tipo, que operam de modos completamente distintos:

4 . 4 . I N T E R AÇ ÃO C O M A CLOUD

Figura 4.13:Nodes de parametrização do sistema

(a vermelho a periodicidade das leituras, e a verde o modo de análise da informação)

• Firebase.patch (path, snapshot) - Cada vez que é efetuado um ciclo, os campos indi- cados pelosnapshot, no node da árvore JSON identificado por path, são atualizados.

Campo responsável pela exposição da informação, em tempo real;

• Firebase.post (path, snapshot) - Esta é a operação responsável pelo armazenamento do histórico da informação, posteriormente utilizada ao nível da aplicação móvel. Neste campo, as variáveis funcionam de forma semelhante as anteriores, com a diferença que, neste caso, também a data e hora da leitura são enviados para a base de dados. A informação permanecerá armazenada, contrariamente ao que acontece no caso dopatch().

Integração da FRD, na Aplicação Móvel

Ao nível da Aplicação Móvel, foi necessário realizar algumas configurações, auxiliadas pelo assistente de conexão àFirebase, presente no SDK Manager, do Android Studio.

No ficheirobuild.gradle, referente ao módulo, adicionaram-se as implementações que

permitem a compatibilização de versões entre as ferramentas e acrescentou-se a depen- dência dos serviços daGoogle, e da Firebase.

Assim, após a realização destas etapas, é possível interligar o ficheiro JSON, da base de dados deste sistema, com a AM. Nas atividades da AM, são aplicadas, tal no controlador, tanto operações de escrita, como de leitura, sobre a FRD. Deste modo, como acontece no

Python, existem também bibliotecas de auxílio à implementação em Java.

Praticamente todas atividades desenvolvidas ao nível da AM envolvem algum tipo de operação, sendo que a maioria envolve apenas leituras, que requerem a criação de eventos que obterão a informação, no caminho especificado, para a referência definida.

Por fim, as operações de escrita sobre a FRD estão presentes apenas nas atividades da AM responsáveis pelas parametrizações das leituras e dos utilizadores. Para tal, basta afixar um valor, nonode especificado, para a referência e instância definidas (setValue()).

4.4.3 Armazenamento e Estruturação da Informação

A informação, em grande parte das bases de dados, é armazenada recorrendo, tanto a tabelas, como a registos. NaFirebase Realtime Database, este armazenamento é estruturado

com recurso a objetos JSON, que é um formato de organização de dados. Constituição e Descrição da FRD

Pelo exposto, um banco de dados da FRD é composto essencialmente pela denominada "árvore"JSON (Figura4.14) e, ao adicionar informação, esta torna-se umnode na estrutura,

ao qual está associada uma chave identificativa, sendo esta chave personalizável, caso seja uma necessidade do utilizador.

No caso deste sistema, a informação encontra-se organizada em cinco secções princi- pais. Em primeiro lugar, para a informação que é exposta, em tempo real, existe umnode,

que contém o estado de ocupação, em cada uma das portas. Onode seguinte contém a

mesma informação que o anterior, com o acréscimo da data e hora em que foi efetuada a medição. Além destes, os dois seguintes contêm parâmetros do sistema, mencionados an- teriormente, o período de execução de ciclos, e o modo de processamento da informação. O último node está relacionado com a informação acerca de utilizador, isto é, é o

responsável por distinguir o papel do utilizador, no sistema (administrador ou utiliza- dor normal) e armazenar a informação introduzida, pelo mesmo, na instância de registo da conta. Quando um utilizador se regista no sistema, é-lhe atribuído um ID, pelaFire- base Authentication, ID este que é armazenado na FRD, com o respetivo email associado,

papel no sistema e outros dados (número de identificação, data de nascimento e nome completo).

4 . 5 . A P L I C AÇ ÃO M Ó V E L D O S I S T E M A