Computação Móvel Projecto Objectivos gerais Desenvolver uma aplicação num domínio aplicacional específico que envolva replicação e sincronização de dados entre um repositório de dados central e um ou mais dispositivos móveis, tendo estes últimos a possibilidade de alterar alguns dados e de replicar e sincronizar dados entre si enquanto estão desligados da rede Certificado energético • Obrigatória emissão a partir de Janeiro de 2009 • Quantifica e classifica o desempenho energético da habitação numa escala de classes energéticas • Apresenta uma lista de medidas que permitirão melhorar o desempenho energético • Apenas pode ser emitido por um técnico devidamente credenciado Projecto da disciplina • Implementação de uma aplicação para Personal Digital Assistant (PDA) • Permite ao técnico introduzir os dados técnicos da habitação durante o processo de vistoria e armazenar esses dados na base de dados local do dispositivo • Permite a posterior sincronização entre a base de dados local do dispositivo e um repositório central de dados para futura análise dos dados Empresa de certificação energética • • • • Centros de certificação Técnicos Agentes de fiscalização Estagiários Centros de certificação distritais • Cada centro distrital dispõe de um servidor o qual mantém uma réplica da base de dados da empresa que contém os dados relativos a todos os pedidos de certificação a nível nacional. • Cada centro distrital actualiza a sua réplica da base de dados com os dados dos pedidos de certificação para habitações situadas no seu distrito, sendo essas actualizações periodicamente propagadas para os servidores dos outros centros distritais. • Dispõe de técnicos credenciados • No caso de não dispor de técnicos suficientes para responder às várias solicitações para um determinado dia deve solicitar aos centros vizinhos o envio de técnicos Processo de certificação energética • O cliente contacta o call center da empresa de certificação para agendar a visita de um técnico credenciado • A empresa possui um centro de certificação em cada um dos distritos do país sendo o pedido do cliente redireccionado para o centro do distrito onde está situada a habitação • Um técnico visita a habitação e recolhe os dados • Os dados são enviados para o centro de certificação • Os dados são alvo de análise para emissão do certificado energético Técnicos • Sincroniza o seu PDA com o servidor do seu centro distrital para obter uma lista das habitações que deverá visitar ao longo do dia. • Durante cada visita o técnico procede ao levantamento das características técnicas da habitação introduzindo os dados recolhidos no seu PDA. • Normalmente, no fim do dia, o técnico sincroniza novamente o seu PDA com o servidor do seu centro distrital para transferir os dados recolhidos ao longo do dia • O técnico tem também a possibilidade de proceder à sincronização com um qualquer outro servidor em qualquer altura do dia Agentes de fiscalização • Cada centro distrital envia periodicamente agentes de fiscalização a um certo número de habitações escolhidas aleatoriamente de entre as habitações já visitadas pelos seus técnicos. • O centro distrital nunca envia fiscais para fiscalizar habitações situadas noutros distritos • O agente de fiscalização é, para todos os efeitos, um técnico credenciado e repete todas as tarefas do processo de vistoria utilizando o mesmo tipo de PDA Estagiários • Durante o período de estágio cada técnico estagiário é acompanhado por um técnico sénior • O técnico sénior avalia o desempenho do estagiário durante esse período • O técnico estagiário realiza as mesmas tarefas que o seu técnico sénior • O técnico estagiário só tem permissões para sincronizar os dados do seu PDA com o servidor depois de ter recebido aprovação por parte do seu sénior • A autorização é realizada através da sincronização de dados entre os dois PDAs (o do técnico estagiário e o do seu sénior) e a detecção e correcção de todos os erros Descrição do projecto • Desenvolvimento de uma solução que suporte o modelo de utilização já descrito – com vários servidores que armazenam os dados referidos e – uma aplicação para os dispositivos móveis que permita a alteração de dados • A solução deve suportar a sincronização de dados – entre o PDA de cada técnico e o servidor – entre PDAs distintos • Os conflitos que forem detectados no decorrer da sincronização devem ser resolvidos de acordo com um conjunto de regras. • A quantidade de informação transportada no PDA do técnico deve ser minimizada Bases de dados • Os esquemas das bases de dados ficarão ao critério dos alunos desde que suportem os requisitos de domínio enunciados • Deverão ser criados um conjunto de scripts SQL para criação do estado inicial das bases de dados dos servidores • Aspectos em aberto devem ser cuidadosamente analisados • Decisões tomadas devem ser justificadas no relatório do projecto Bases de dados (técnicos) • • • • Nome completo Distrito onde exerce funções Tipo de técnico: fiscal, sénior, estagiário Identificação do técnico responsável pela sua formação (se aplicável) Bases de dados (habitações) • Morada • Nome do cliente • Características técnicas – Topologia (T0, T1, T2, etc.) – Eficiência do sistema de arrefecimento (numa escala de 1 a 5) – Eficiência do sistema de aquecimento (numa escala de 1 a 5) – Eficiência do isolamento térmico nas paredes e pavimentos (numa escala de 1 a 5). – Tipo de cobertura (telhado, placa ou piso superior) – Utilização de vidros duplos ou simples nas janelas Bases de dados (habitações a visitar) • Morada da habitação • Data e hora da visita • Identificação do técnico atribuído Arquitectura • Plataforma .NET Compact Framework 2.0 • Sistema operativo PocketPC 2003 SE (ou versão superior) • Desenvolvimento em C# (versão 2.0) • SQL Server 2005 para repositório de dados • SQL Server Compact Edition v. 3.1 nos PDAs Fases do projecto 1. Implementação da sincronização entre PDA e servidor através da funcionalidade de merge replication do SQL Server Compact Edition 2. Implementação do protocolo de replicação com suporte a múltiplos servidores 3. Implementação da sincronização directa entre PDAs Fase um (1) • Um único servidor • Não há sincronização directa entre PDAs • Implementar a sincronização entre PDA e servidor através do recurso à funcionalidade de merge replication oferecida pelo SQL Server Compact Edition • A interface gráfica da aplicação cliente e a lógica de negócio do domínio aplicacional deverão estar completamente implementadas Fase um (2) Fase dois (1) • Implementar a sincronização entre PDAs e múltiplos servidores • A aplicação cliente deverá permitir seleccionar qual o servidor com o qual será efectuada a sincronização • Os dados obtidos pelo PDA a partir do servidor seleccionado devem satisfazer a garantia de sessão Read your Writes – Implementar um protocolo de replicação que suporte múltiplos servidores, que substituirá o recurso à funcionalidade de merge replication oferecida pelo SQL Server Compact Edition • Implementar a propagação de actualizações entre servidores, sendo este processo desencadeado quando é detectado que os dados da base de dados estão desactualizados em relação aos dados do PDA • A aplicação cliente deverá continuar a suportar o modelo arquitectural da fase anterior, não sendo no entanto necessário suportar a interoperabilidade entre os dois modelos Fase dois (2) SQL Server SQL Server Propagação de alterações BD BD Dispositivo Móvel (PDA) SQL Server CE Client Agent Aplicação Cliente SQL Server CE DataSet BD Fase três (1) • O objectivo desta fase consiste em adicionar à aplicação cliente desenvolvida nas fases anteriores a funcionalidade de sincronização directa entre PDAs • A funcionalidade de merge replication do SQL Server Compact Edition não suporta sincronização directa entre PDAs, pelo que esta deverá ser implementada de raiz • A aplicação cliente deverá continuar a suportar o modelo arquitectural das fases anteriores. Fase três (2) SQL Server SQL Server Propagação de alterações BD BD Dispositivo Móvel (PDA) SQL Server CE Client Agent Dispositivo Móvel (PDA) Aplicação Cliente Aplicação Cliente SQL Server CE SQL Server CE DataSet BD SQL Server CE Client Agent XML DataSet BD Interface gráfica do dispositivo • Consultar a lista de habitações por visitar • Introduzir os dados técnicos da habitação • Sincronizar explicitamente os dados locais com um dos servidores • Sincronizar explicitamente os dados locais com um outro PDA e detectar erros nos dados (conflitos) e corrigir esses erros (resolver os conflitos) Resolução de conflitos de dados • Conflitos de dados entre o servidor do centro distrital e o PDA do agente de fiscalização – os dados do PDA (introduzidos pelo fiscal) prevalecem sempre sobre os dados do servidor (introduzidos pelo técnico). • Conflitos de dados entre o servidor do centro distrital e o PDA do técnico estagiário – os dados do servidor (introduzidos pelo técnico sénior) prevalecem sempre sobre os dados do PDA (introduzidos pelo técnico estagiário), excepto quando os dados do PDA foram aprovados pelo técnico sénior (por sincronização entre PDAs), situação na qual os dados do PDA prevalecem sobre os dados do servidor • Conflitos de dados entre o PDA do técnico estagiário e o PDA do seu sénior – a resolução deverá ser feita manualmente para cada item, devendo a interface gráfica da aplicação do PDA permitir escolher qual das duas versões deverá ser guardada ou introduzir novos valores (por ex., o técnico sénior poderá introduzir erros propositadamente para testar o estagiário na sua detecção) Entrega • Enviar email dirigido ao docente das aulas de laboratório, com indicação do número do grupo e identificação dos seus elementos e tendo como anexo um arquivo zip contendo: – Código fonte do projecto – Relatório sucinto com o máximo de 4 páginas (formato PDF, RTF ou documento do Word) – Um script SQL que permita, de acordo com o esquema da base de dados, a criação do estado inicial da base de dados no servidor central. Avaliação • Checkpoint no dia ??? • Entrega do projecto até ao dia 25 de Maio de 2009 (inclusive) • Visualizações na semana de 1 de Junho • Discussões na semana de 8 de Junho