Faculdade de Engenharia da Universidade do Porto MIEIC - Laboratório de Gestão de Projectos Relatório de Arquitectura mPCOL João Pereira – [email protected] Tiago Pereira – [email protected] Manuel César – [email protected] Sérgio Cleto – [email protected] Filipe Mota – [email protected] Carlos Frias – [email protected] Relatório de Especificação de Requisitos - mPCOL Porto - Março de 2013 Índice Introdução ...................................................................................................... 3 Representação da Arquitetura ....................................................................... 4 Visão global ............................................................................................... 4 Navegação na aplicação ................................................................................ 6 Diagrama de Classes ..................................................................................... 7 Protocolos de Comunicação .......................................................................... 8 Descrição das Tecnologias Utilizadas ........................................................... 9 Conclusão .................................................................................................... 12 2 Laboratório de Gestão de Projetos Relatório de Especificação de Requisitos - mPCOL Introdução Com este relatório a equipa tem como finalidade apresentar e especificar a versão final de toda a arquitetura da aplicação desenvolvida definindo, assim, todas as camadas a ela inerentes. Será apresentada uma visão global do sistema e do meio envolvente, bem como uma visão detalhada dos diversos componentes de software que constituem o sistema, e o porquê das escolhas efetuadas, quer ao nível das tecnologias a utilizar, quer ao nível lógico da arquitetura. A arquitetura e este relatório foram produzidos sempre tendo em vista a melhor abordagem para atingir a resolução do desafio proposto. Este relatório foi alterado ao longo do desenvolvimento, pelo que a informação que se segue é considerada final após várias alterações ao produto. 3 Laboratório de Gestão de Projetos Relatório de Especificação de Requisitos - mPCOL Representação da Arquitetura Visão global Imagem 1 - Visão genérica do sistema A figura acima representa uma visão genérica do sistema implementado bem como as várias entidades envolvidas. 4 Laboratório de Gestão de Projetos Relatório de Especificação de Requisitos - mPCOL O sistema baseia-se numa aplicação para Windows 8 que pretende estender as funcionalidades já existentes, a nível de gestão, no portal do colaborador da empresa CPC.iS.com base nas tecnologias enumeradas (HTML5, CSS3, Javascript e JSON). Para utilizar estas funcionalidades, a aplicação acederá diretamente ao servidor da empresa, através de Internet ou uma rede móvel, permitindo assim a execução de ações de gestão, desde a definição de férias à justificação de faltas, entre outras várias opções. Para posterior consulta, os dados serão armazenados e encriptados no dispositivo, para que não seja necessário um acesso direto ao servidor para os consultar. 5 Laboratório de Gestão de Projetos Relatório de Especificação de Requisitos - mPCOL Navegação na aplicação class Flow Chart Login(UI1) Home(UI2) Marcação de Férias(UI2) Justificação de Ausência(UI2) Consulta de Pedidos(UI2) Imagem 2 – Diagrama de navegação O diagrama anterior representa a navegação entre as interfaces (UI) da aplicação. A interface da aplicação será simples, para assim tornar mais intuitiva a utilização da aplicação. Haverá assim uma primeira interface, na qual o utilizador se poderá autenticar. Quando o utilizador realizar a sua autenticação com sucesso, ser-lhe-á apresentado nova interface, na qual poderá aceder às principais funcionalidades da aplicação. A segunda interface será uma interface que se desenvolve na horizontal, característica das interfaces das aplicações para Windows 8. 6 Laboratório de Gestão de Projetos Relatório de Especificação de Requisitos - mPCOL Diagrama de Classes class Class Model Notificação - idpedido: int idnotif: int estado: string Login - username: string password: string idcolaborador: int IDia Pedidos Colaborador - id: int Nome: string Password: string foto: string pedidos: List<Pedido> saldo: int - DataInicio: string DataFim: string Estado: string id: int tipo: string data: string obs: string dias: List<IDia> - dia: int diasemana: string mes: int ano: int tipo: string Imagem 3 - Estrutura de dados a utilizar De forma a armazenarmos toda a informação correspondente aos colaboradores será criado a estrutura de dados apresentada. Os nomes das classes são alusivos ao tipo de dados que elas irão armazenar. 7 Laboratório de Gestão de Projetos Relatório de Especificação de Requisitos - mPCOL Protocolos de Comunicação Para efetuar a comunicação entre os dispositivos front-end e os servidores, serão desenvolvidos uma série de Webservices, na framework .NET a criar. Apresentamos, então, uma lista dos Webservices que serão desenvolvidos, acompanhados de um diagrama de sequência, de forma a melhor exemplificar o seu funcionamento. ID Nome Breve descrição Utilizado em Informação entrada Informação resposta 8 WS01 efectuaLogin Responsável pela comunicação de dados de login ao servidor e receção do segredo e token UI01 de Credenciais do colaborador (username e password) de Em caso de uma autenticação bem sucedida, ID interno do colaborador para uso nos restantes webservices. Em caso de uma autenticação mal sucedida, mensagem de erro. Laboratório de Gestão de Projetos Relatório de Especificação de Requisitos - mPCOL ID Nome Breve descrição Utilizado em Informação entrada Informação resposta WS02 NovoPedido Responsável pela obtenção dos dados de Pedidos ao servidor UI02 de ID interno do Colaborador, String com o Pedido(JSON) ID Nome Breve descrição Utilizado em Informação entrada Informação resposta WS03 UploadFile Responsável por fazer upload de Ficheiros UI02 de String filename e uma string fileContents de ID do Pedido (em JSON) de - « 9 Laboratório de Gestão de Projetos Relatório de Especificação de Requisitos - mPCOL Protocolos de encriptação de dados – PasswordVault e CryptoJS De modo a agilizar e ao mesmo tempo assegurar a confidencialidade dos dados dos utilizadores ao nível da aplicação foi utilizado a API PasswordVault. Esta permite o armazenamento da informação de autenticação no gestor de credenciais do Windows8 utilizando a encriptação do mesmo. Com isto conseguimos também disponibilizar ao utilizador uma sessão de login, permitindo a um colaborador autenticado aceder à aplicação sem repetir o processo de login. Tendo em conta que os dados de autenticação serão verificados num servidor remoto, tornou-se importante e quase obrigatório a encriptação dos dados. Para o efeito foi utilizado o cryptoJS que permite a aplicação de vários algoritmos de encriptação. O escolhido foi o algoritmo de hash SHA-512. É em todo igual ao algoritmo SHA-256 mas utiliza palavras de 64 bits ao contrário de 32, permitindo ainda uma melhoria de 50% de desempenho na aplicação do algoritmo. Formato de comunicação de dados O formato para comunicação de dados a utilizar será JSON, quer por ser uma opção fiável e segura quer pela forma simples de estruturar as respostas aos pedidos enviados. Embora baseado em Javascript, é completamente independente da linguagem de programação usada, o que o torna ideal para o desenvolvimento de aplicações para multi-plataformas. Segurança no protocolo de comunicação Ainda que não implementado as medidas de segurança na comunicação com o servidor poderão ser feitas ao nível da camada de transporte. Idealmente, será usado TLS 1.2 mas para a aplicação ser o mais compatível possível, SSL 3.0 é uma alternativa viável. Em relação a encriptação a ser usada, um algoritmo de hash SHA-256 garantirá a segurança dos dados. 10 Laboratório de Gestão de Projetos Relatório de Especificação de Requisitos - mPCOL Serviços de dados locais Para garantir o acesso aos dados locais em caso de inexistência do acesso à internet, é requisitado ao utilizador o login. Caso este exista no gestor de credenciais do Windows8 o utilizador tem acesso à informação guardada pela aplicação a nível local em modo de consulta. Com isto garantimos que só os colaboradores autenticados anteriormente sob a proteção do gestor de credenciais, tem acesso aos seus dados. Linguagens de desenvolvimento Para o desenvolvimento da nossa aplicação será utilizado HTML5 combinado com CSS3 e Javascript. Esta combinação é das mais usadas, já que permite explorar ao máximo todas as funcionalidades que uma aplicação para windows8 possa ter. Para além do mais, HTML5 /Javascript tornam possível a expansão para outras plataformas o que faz deste fator o mais importante para a escolha desta combinação. HTML5 / Javascript são suportados por qualquer plataforma onde esta aplicação poderá ser usada. Como tal, o grande objetivo de permitir que a aplicação seja expansível a outras plataformas fica resolvido para além de facilitar a implementação aos membros da equipa já bastante ambientados a estas linguagens. 11 Laboratório de Gestão de Projetos Relatório de Especificação de Requisitos - mPCOL Conclusão Com o projecto concluído é possível tirar algumas conclusões e ideias para projectos futuros. Sendo o desenvolvimento de uma aplicação para o Windows 8 algo novo para o grupo, foi possível aprendermos algumas lições ao longo do projecto. A principal destas é que apesar de o grupo ter optado por utilizar ferramentas que, à partida, seriam multiplataforma acabou por encontrar várias funcionalidades muito úteis em ferramentas específicas da Microsoft, o que fez com que a aplicação perde-se, em grande parte, a possibilidade de ser facilmente implementada noutras plataformas, como são exemplo o iOS e o Android. 12 Laboratório de Gestão de Projetos