Universidade Federal de Campina Grande Centro de Engenharia Elétrica e Informática Departamento de Sistemas e Computação Disciplina: Projeto I Professora: Francilene Garcia Equipe: Carolina Nogueira de Souza Cayo Mesquita Amorim Wesley Michel Mendes da Cruz Projeto Arquitetural do IEmbedded
IEMBEDDED Objetivo do Sistema: O Sistema IEmbedded será desenvolvido com a finalidade de integrar os subsistemas: GForge, Biblioteca de Dispositivos Móveis, Biblioteca de Livros e o Sistema de Notícias do Laboratório de Sistemas Embarcados e Computação Pervasiva da Universidade Federal de Campina Grande. Descrição dos Subsistemas: GForge: Trata-se de um repositório onde são armazenados os projetos que são desenvolvidos no Embedded. Nesse repositório é possível localizar os projetos que o usuário participa, bem como as tarefas predefinidas para esse usuário dentro de cada projeto. Biblioteca de Dispositivos Móveis: Semelhante a um sistema de biblioteca convencional, o serviço de biblioteca de dispositivos móveis permite a um membro do laboratório fazer reserva e empréstimos dos dispositivos móveis do laboratório para o desenvolvimento e testabilidade de sistemas embarcados. Biblioteca de Livros: o laboratório possui livros direcionados à sua área de pesquisa e permite que os membros obtenham esses livros na forma de empréstimo durante as pesquisas para o desenvolvimento dos projetos. Sistema de Notícias: Consiste em um sistema de divulgação das atividades desenvolvidas e dos eventos ocorridos no Embedded. Accounts: é um subsistema de registro de usuários que contém as informações relativas aos membros do laboratório Embedded, como, por exemplo, nome de usuário, senha e e-mail. Descrição do IEmbedded: Trata-se de um Sistema Web semelhante ao Igoogle, que visa a integração de diversos sistemas. O IEmbedded apresentará em seu portal as principais funcionalidades de cada subsistema e permitirá ao usuário realizar operações sobre eles sem que seja necessário o acesso direto ao subsistema solicitado. Assim, o usuário poderá gerenciar todos os seus serviços a partir de um único lugar: o portal do IEmbedded.
Requisitos Funcionais: O sistema deve oferecer as principais funcionalidades de cada subsistema integrado. Assim, deverá exibir: GForge: Projeto da tarefa Tarefas pendentes Status da tarefa Data de entrega Notícias: As notícias mais recentes do laboratório. Devices: Data de Entrega Data de Reserva Alerta para Prazos Efetuar reservas Biblioteca: Data de Entrega Data de Reserva Alerta para Prazos Efetuar reservas Requisitos Não Funcionais: Utilização do Framework Grails; Interface web com comunicação via browsers; Capacidade máxima de 200 usuários simultâneos; Registro de Transações; Testes de aceitação automatizados; Padrão do Projeto: O padrão utilizado na arquitetura no IEmbedded será o MVC fornecendo uma maneira de dividir a funcionalidade envolvida na manutenção e apresentação dos dados de uma aplicação. Usando o padrão MVC fica fácil mapear esses conceitos no domínio de aplicações Web multicamadas. Os riscos de nossa arquitetura são: Quantidade de acessos simultâneos aos sistemas, ou seja, escalabilidade; Disponibilidade de utilização do sistema; Tempo de resposta quando o sistema estiver saturado; Segurança da informação.
A segurança da informação fica assegurada pela utilização do protocolo HTTPS. Como trata se de um sistema de integração baseado em sistemas préexistentes, características como disponibilidade, número de acessos e tempo de resposta ficam atreladas aos bancos de dados dos sistemas legados e a disponibilidade do servidor do Embedded, sendo a equipe WebEfforts do Laboratório de Sistemas Embarcados e Computação Pervasiva, responsável pelo tratamento e minimização desses riscos. Arquitetura Geral do Sistema Como funciona: O usuário acessa o sistema através de um browser que realiza requisições HTTP/HTTPS ao servidor. Mensagens são enviadas pela camada de apresentação à camada de negócio, que se comunica com os subsistemas através do gerenciador de subsistemas utilizando Web Services, atendendo as ações do usuário, como autenticação e acesso aos subsistemas. A comunicação com a camada de persistência acontece de forma transparente através do Grails. Portabilidade: A utilização do Framework Grails e consequentemente da linguagem Groovy oferece ao sistema uma maior portabilidade, uma vez que a linguagem Groovy executa sobre a máquina virtual Java. Assim, para executar o sistema o usuário necessita apenas de um browser e uma JVM instalados no computador, não dependendo assim do sistema operacional específico em atividade na máquina.
Camada de apresentação: A comunicação com o usuário acontecerá através de páginas web no portal do IEmbedded. A camada de apresentação é composta por: Tela de Login: responsável pela entrada dos dados do usuário, login e senha, para autenticação do usuário no sistema. Tela de Logout: após sair do sistema uma tela informativa é exibida ao usuário. Tela de gerenciamento de informações: permite ao usuário modificar as informações do seu perfil. Tela de Help: uma tela de ajuda deve ser mostrada ao usuário sempre que solicitado. Essa página contém informações de utilização do sistema. Tela de esqueceu a senha: sempre que um usuário esquecer a senha ele pode solicitar o reenvio da sua senha. Para isso, ele deve informar seu nome de usuário registrado no sistema. Tela principal: exibe as informações obtidas dos subsistemas após as requisições dos usuários.
Camada de negócio: A camada de negócio consiste em um gerenciador de subsistemas, que é a controladora do sistema, responsável pela integração dos subsistemas ao sistema principal e um gerenciador de Sessão interno a esse gerenciador. Características de Evolução: Os subsistemas independem uns dos outros. Essa independência entre subsistemas e o fato da comunicação com as outras camadas ser realizada pelo gerenciador de Subsistemas facilitam uma posterior integração de novos subsistemas uma vez que será necessário apenas estabelecer a comunicação do gerenciador com o subsistema através de um WebService.
Gerenciador de Sessão: O Gerenciador de sessão é responsável pela autenticação de usuários e por manter informações relativas a esses usuários durante as sessões. Esse gerenciamento é realizado através do subsistema Accounts. O Accounts é um subsistema já existente que contém as informações relativas aos membros do laboratório Embedded, como, por exemplo, nome de usuário, senha e e-mail. Gerenciador de Subsistemas: O Gerenciador de subsistemas é o responsável por responder às requisições dos usuários obtendo os dados a partir dos subsistemas integrados: Accounts, Biblioteca, Devices, GForge e Notícias. O acesso ao sistema só é permitido a usuários previamente cadastrados e que, portanto, possuem login e senha registrados no
Accounts. Objetivando aumentar a segurança, utilizamos o protocolo https para a comunicação criptografada do cliente com o servidor. Assim, a senha fica protegida contra a interceptação de terceiros; Camada de Persistência: Camada responsável por persistir os dados dos usuários e subsistemas para eventuais consultas. O framework de desenvolvimento é o GRAILS. Trata-se de um framework open-source para aplicação web que tem a influência da linguagem Groovy e complementa o desenvolvimento de aplicações Java para Web. A parte da persistência dos dados no projeto é feita através de uma implementação da especificação do Hibernate em Grails. O Hibernate é uma framework open source para persistência de objetos em bases de dados relacionais.