5. I MPLEMENTAÇÃO DO S ISTEMA
5.3. D ESENVOLVIMENTO DO BACK END
O desenvolvimento foi iniciado pelas partes fundamentais para o funcionamento, a base de dados e o sistema de autenticação. Uma vez que todo o resto do sistema assenta em cima destes dois componentes, é importante que eles fiquem muito bem definidos desde o início de forma a não serem um limitador no resto do processo de desenvolvimento.
Depois destes módulos iniciais, foram desenvolvidas as restantes partes do back-end do sistema: o sistema de comunicação com as aplicações terceiras e o sistema de validação dos pedidos de ajuda recebidos.
O processo de desenvolvimento de todas estas áreas do back-end será apresentado ao longo dos próximos pontos pela ordem descrita acima: primeiro é apresentado o desenvolvimento da base de dados e do controlo de acesso, seguindo-se o desenvolvimento do sistema de comunicação e da validação de pedidos.
5.3.1. B
ASE DE DADOSPara o desenvolvimento da base de dados foram inicialmente criados os vários modelos de dados a utilizar no sistema. Estes modelos de dados foram criados com base no diagrama de classes do capítulo anterior.
A plataforma ASP.NET pode depois gerar automaticamente a base de dados relacional com base nos modelos de dados criados. Caso a base de dados não exista, o sistema cria a base de dados completa.
Se a base de dados já existir e não coincidir com o modelo de dados do sistema, é necessário fazer uma migração da base de dados. Para evitar tais problemas durante o desenvolvimento, a estrutura dos dados deve estar bem definida para evitar que sejam encontradas lacunas no mesmo mais à frente que levem a uma edição da base de dados e da criação de migrações. A base de dados gerada também inclui as várias tabelas do sistema de autenticação da plataforma, bem como algumas tabelas intermédias criadas nas relações de muitos para muitos. Na Figura 21 é apresentado o modelo relacional da base de dados gerada.
IMPLEMENTAÇÃO DO SISTEMA
48
Figura 21: Modelo relacional da base de dados
Neste modelo relacional é possível ver que a estrutura da base de dados é baseada no diagrama de classes apresentado na Secção 4.5. Foram, no entanto, introduzidas algumas alterações, algumas para facilitar o desenvolvimento, outras devido à plataforma de desenvolvimento escolhida.
IMPLEMENTAÇÃO DO SISTEMA
Começando pelas alterações causadas pela plataforma de desenvolvimento, as tabelas relativas à autenticação (Utilizadores, Funcoes e FuncoesDeUtilizadores) foram alteradas pelo sistema de autenticação. Foram adicionados alguns campos, mas as tabelas e os campos previstos no diagrama de classes continuam a existir e têm a mesma função.
Uma das alterações introduzidas para facilitar o desenvolvimento foi o agrupamento das várias tabelas de histórico de pedidos numa única tabela. No diagrama de classes os vários campos eram a sua própria classe de forma a poder guardar vários no mesmo pedido. Na base de dados desenvolvida, o pedido guarda sempre as informações mais recentes e um histórico das alterações de todos os campos é guardado na tabela AlteracoesPedidos, de forma a facilitar o acesso às informações mais recentes e a um histórico completo. A validação foi também separada do pedido e agora é uma entidade própria, Avisos, uma vez que o formato anterior não permitia guardar mais do que um aviso relativo a cada pedido de ajuda.
Outra alteração foi a separação das autorizações e das aplicações. No formato apresentado no diagrama de classes não era possível guardar um histórico das autorizações das aplicações, algo que deve ser guardado, uma vez que é possível desautorizar e voltar a autorizar aplicações. Como tal, foi decidido separar as duas entidades.
Por fim foram criadas as entidades Definicoes e AlteracoesDefinicoes de forma a poder guardar as definições atuais da plataforma e um histórico de alterações das mesmas.
5.3.2. C
ONTROLO DE ACESSONum sistema que envolve pessoas em situações de emergência e informação sensível é obrigatório controlar o acesso a toda a informação armazenada e impedir que certos dados pessoais sejam visíveis por pessoas alheias.
Através do sistema de autenticação da plataforma ASP.NET, foi limitada a possibilidade de visualização e edição de pedidos de ajuda aos operadores e à pessoa que enviou o pedido original. A possibilidade de controlar as definições do sistema, bem como do próprio controlo de acesso está apenas disponível aos administradores.
De forma a controlar possíveis abusadores do sistema, foi implementado um sistema de bloqueio automático de endereços que enviem vários pedidos de ajuda falsos de forma consecutiva. Por último, de forma a poder identificar as várias aplicações autorizadas, foi criado um sistema que gera automaticamente chaves únicas a cada uma das aplicações que devem ser enviadas em cada pedido de ajuda criado através das mesmas. A existência de aplicações autorizadas permite facilitar o contacto com o programador das mesmas quando é detetado um erro na implementação (vários pedidos de ajuda inválidos da mesma aplicação) bem como facilitar a identificação de utilizadores mal-intencionados.
5.3.3. C
OMUNICAÇÃO COM AS APLICAÇÕESTal como acontece com os humanos, a comunicação de vários sistemas informáticos depende da existência de uma linguagem. Existem várias destas linguagens de comunicação definidas para comunicação pela rede.
Nos próximos parágrafos serão descritos a linguagem de comunicação utilizada e o protocolo de comunicação com as aplicações que foi desenvolvido de forma para que as aplicações possam enviar (RF01) e atualizar (RF02) pedidos de ajuda.
IMPLEMENTAÇÃO DO SISTEMA
50