• Nenhum resultado encontrado

A Figura 3.4 ilustra a arquitetura geral do Swish com recurso ao diagrama de implementa¸c˜ao UML. Um analista com permiss˜oes e liga¸c˜ao `a Internet acessa `a aplica¸c˜ao web, uma interface responsiva que se adapta a diferentes dispositivos como tablets, computadores port´ateis, smartphones, entre outros. Ap´os a escolha de um jogo para an´alise, a aplica¸c˜ao web ir´a fazer pedidos `a API de processamento como as coordenadas dos jogadores no jogo escolhido ou o c´alculo de velocidades, distˆancias e outras vari´aveis.

A aplica¸c˜ao web e a API de processamento ir˜ao, por sua vez, fazer pedidos `a base de dados, que cont´em os dados dos jogos, jogadores e equipas, para satisfazerem os pedidos os analistas.

Figura 3.4 – Proposta de arquitetura para o Swish com recurso ao diagrama de implementa¸c˜ao UML.

3.6. CONSIDERAC¸ ˜OES FINAIS 35

3.6

Considera¸c˜oes finais

No presente cap´ıtulo foi proposto o modelo conceptual para a conce¸c˜ao do Swish, com base nos requisitos funcionais e n˜ao funcionais definidos com a equipa de investigadores do CIDESD.

Foi construido um modelo conceptual de classes com recurso ao diagrama de classes UML que servir´a como base para a constru¸c˜ao da base de dados. As classes afetas aos jogos foram desenhadas tendo como ponto de partida os ficheiros com dados espa¸cotemporais disponibilizados e analisados no subcap´ıtulo 3.3.

Foi ainda proposta uma arquitetura para o sistema, que contempla uma aplica¸c˜ao web com a qual os analistas ir˜ao interagir, uma API para o processamento dos dados e a base de dados que ir´a guardar os dados relativos a jogos, jogadores e equipas.

4

Implementa¸c˜ao

Neste cap´ıtulo ser´a apresentada a implementa¸c˜ao do sistema de an´alise dados espa¸cotemporais relativos a jogos de desportos de equipa, as tecnologias usadas no processo e explicadas as decis˜oes tomadas durante a fase de desenvolvimento da plataforma. O cap´ıtulo ir´a come¸car com a apresenta¸c˜ao da arquitetura do Swish e as tecnologias usadas em cada um dos componentes.

Ser˜ao depois apresentadas as interfaces do sistema, como a p´agina de jogo, onde ser˜ao mostrados os c´alculos e diagramas dispon´ıveis, incluindo os algoritmos usados.

Os sistemas de autentica¸c˜ao e de escolha do desporto que a plataforma usa ser˜ao referidos apenas no Cap´ıtulo 5.

38 CAP´ITULO 4. IMPLEMENTAC¸ ˜AO

4.1

Arquitetura do sistema e tecnologias usadas

Figura 4.1 – Arquitetura do Swish.

Na Figura 4.1´e apresentada a arquitetura do Swish, com os diversos componentes, incluindo as tecnologias utilizadas. Os componentes interligam-se com recurso a diferentes protocolos.

A aplica¸c˜ao Web poder´a ser acedida por qualquer dispositivo autorizado que tenha acesso `a Internet. Para a constru¸c˜ao de p´aginas web dinˆamicas foi utilizado o ASP.NET Core, uma tecnologia da Microsoft com um tamanho menor, quando comparada com a antecessora, a framework .NET, otimizada para os servi¸cos cloud e modular (Chiaretta,2018).

Uma das grandes vantagens do ASP.NET Core ´e o facto de as aplica¸c˜oes criadas serem cross-platform, ou seja, podem ser distribu´ıdas em sistemas Windows, Linux, macOS e Docker, ao contr´ario do ASP.NET, limitado ao Windows. Como linguagem de programa¸c˜ao, o ASP.NET Core usa o C#, uma linguagem orientada a objetos, multiparadigma, que surgiu em 2000.

O HangFire1 ´e uma framework open-source para o ASP.NET Core que ajuda na cria¸c˜ao, processamento e gest˜ao de processos em segundo plano. Os processos s˜ao guardados numa base de dados para que haja a garantia de que s˜ao processados pelo menos uma vez. Caso surjam problemas como exce¸c˜oes, t´ermino inesperado

4.1. ARQUITETURA DO SISTEMA E TECNOLOGIAS USADAS 39

de processos ou o fecho da aplica¸c˜ao, o HangFire possuiu mecanismos para que os processos sejam retomados. Vem com uma interface incorporada que oferece informa¸c˜oes como a mem´oria utilizada e que permite a monitoriza¸c˜ao dos pedidos.

Como tecnologia do lado do cliente para a cria¸c˜ao das visualiza¸c˜oes foi usado o D3.js, uma biblioteca Javascript que faz uso dos padr˜oes SVG, HTML e Cascading Style Sheets (CSS) para produzir visualiza¸c˜oes dinˆamicas e interativas em navegadores Web (Bao and Chen, 2014). O estado da arte mostrou que os ´unicos autores que referiram as tecnologias usadas optaram pela constru¸c˜ao de aplica¸c˜oes Web, com o uso do D3.js para a cria¸c˜ao das visualiza¸c˜oes (Pileggi et al.,2012;Perin et al.,2013;

Beshai, 2014).

O Higcharts 2 ´e uma biblioteca Javascript que usa o padr˜ao SVG para criar gr´aficos interativos e responsivos. Podem ser criados v´arios tipos de gr´aficos, como gr´aficos de barras e de linha, que trazem funcionalidades como a exporta¸c˜ao do gr´afico para PNG ou PDF e a amplia¸c˜ao em ´areas de interesse.

Os pedidos de c´alculos de vari´aveis, que surgem ap´os a intera¸c˜ao do analista com a aplica¸c˜ao Web, s˜ao processados por um web service, constru´ıdo com recurso ao ASP.NET Core Web API. Esta framework permite a constru¸c˜ao da API com uma arquitetura REST e a serializa¸c˜ao simples das respostas para JavaScript Object Notation (JSON).

Na camada de acesso aos dados ´e usado o Entity Framework Core, um ORM open-source que permite que o programador trabalhe com os dados usando objetos de classes espec´ıficas, sem foco nos detalhes das bases de dados relacionais onde os dados s˜ao guardados (Adya et al., 2007). Com esta framework ´e poss´ıvel trabalhar com um n´ıvel de abstra¸c˜ao superior quando se manipulam dados e criar e manter aplica¸c˜oes que lidam com dados com menos c´odigo, quando comparadas com aplica¸c˜oes tradicionais.

Foi usada a abordagem Code-First (Lerman, 2010), em que o programador se foca na cria¸c˜ao das classes em vez do planeamento da base de dados, invertendo

40 CAP´ITULO 4. IMPLEMENTAC¸ ˜AO

a abordagem mais antiga em que primeiro ocorria a cria¸c˜ao da base de dados e s´o depois eram criadas as classes equivalentes. Atrav´es do sistema de migra¸c˜oes a base de dados podem ser facilmente alteradas conforme as mudan¸cas no requisitos ou a necessidade de alterar ou criar novos atributos.

O sistema de gest˜ao de base de dados escolhido foi o MySQL, que ´e, atualmente, um dos sistemas mais populares (Taguinod et al., 2015). O uso do sistema de migra¸c˜oes oferece facilidades na troca e teste de outros sistemas de gest˜ao de base de dados durante a fase de desenvolvimento. O modelo conceptual de classes foi implementado na base de dados referida anteriormente.

4.2

Integra¸c˜ao, distribui¸c˜ao e testes cont´ınuos com

Documentos relacionados