uma arquitetura para acesso e integração de dados em aplicações sensíveis ao contexto natália...

45
Uma Arquitetura para Acesso e Integração de Dados em Aplicações Sensíveis ao Contexto Natália Quirino de Oliveira Orientador: Prof. Dr. Alvaro Cesar Pereira Barbosa Mestrado em Informática Universidade Federal do Espírito Santo

Upload: internet

Post on 21-Apr-2015

103 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Uma Arquitetura para Acesso e Integração de Dados em Aplicações Sensíveis ao Contexto Natália Quirino de Oliveira Orientador: Prof. Dr. Alvaro Cesar Pereira

Uma Arquitetura para Acesso e Integração de Dados em Aplicações Sensíveis ao Contexto

Natália Quirino de Oliveira

Orientador: Prof. Dr. Alvaro Cesar Pereira Barbosa

Mestrado em Informática

Universidade Federal do Espírito Santo

Page 2: Uma Arquitetura para Acesso e Integração de Dados em Aplicações Sensíveis ao Contexto Natália Quirino de Oliveira Orientador: Prof. Dr. Alvaro Cesar Pereira

Contexto e motivação Computação ubíqua Aplicações sensíveis ao contexto

Automatizar tarefas Situação do usuário Situação do ambiente

Page 3: Uma Arquitetura para Acesso e Integração de Dados em Aplicações Sensíveis ao Contexto Natália Quirino de Oliveira Orientador: Prof. Dr. Alvaro Cesar Pereira

Contexto e motivação

Integração de dados contextuais Vários domínios Projetos DBMware, Infraware, CoDIMS,

Telecardio

Page 4: Uma Arquitetura para Acesso e Integração de Dados em Aplicações Sensíveis ao Contexto Natália Quirino de Oliveira Orientador: Prof. Dr. Alvaro Cesar Pereira

Infraware

Page 5: Uma Arquitetura para Acesso e Integração de Dados em Aplicações Sensíveis ao Contexto Natália Quirino de Oliveira Orientador: Prof. Dr. Alvaro Cesar Pereira

CoDIMS original

Outras instâncias: CoDIMS-G, MECD E, neste trabalho, o CoDIMS-CA

Page 6: Uma Arquitetura para Acesso e Integração de Dados em Aplicações Sensíveis ao Contexto Natália Quirino de Oliveira Orientador: Prof. Dr. Alvaro Cesar Pereira

Objetivo

Nova instância do CoDIMS (CoDIMS-CA) para atender aos projetos Infraware e Telecardio

Definição de uma arquitetura para integração de dados contextuais

Definição de uma estratégia para execução distribuída de consultas

Page 7: Uma Arquitetura para Acesso e Integração de Dados em Aplicações Sensíveis ao Contexto Natália Quirino de Oliveira Orientador: Prof. Dr. Alvaro Cesar Pereira

Overview

Page 8: Uma Arquitetura para Acesso e Integração de Dados em Aplicações Sensíveis ao Contexto Natália Quirino de Oliveira Orientador: Prof. Dr. Alvaro Cesar Pereira

Para atingir os objetivos:

Conceitos e Tecnologias

Requisitos

Trabalhos Relacionados

Page 9: Uma Arquitetura para Acesso e Integração de Dados em Aplicações Sensíveis ao Contexto Natália Quirino de Oliveira Orientador: Prof. Dr. Alvaro Cesar Pereira

Conceitos e Tecnologias

Framework Componentes Wrappers Metadados Ontologias Bancos de dados: ativos, temporais,

espaciais

Page 10: Uma Arquitetura para Acesso e Integração de Dados em Aplicações Sensíveis ao Contexto Natália Quirino de Oliveira Orientador: Prof. Dr. Alvaro Cesar Pereira

Requisitos

Acesso e integração de dados Entrega ativa de dados Dinamismo das informações Metadados Perfil de usuário Configuração e extensibilidade Histórico contextual Prioridade entre consultas

Page 11: Uma Arquitetura para Acesso e Integração de Dados em Aplicações Sensíveis ao Contexto Natália Quirino de Oliveira Orientador: Prof. Dr. Alvaro Cesar Pereira

Trabalhos relacionados

Nexus DBGlobe Mogatu MoCA Awareness

Page 12: Uma Arquitetura para Acesso e Integração de Dados em Aplicações Sensíveis ao Contexto Natália Quirino de Oliveira Orientador: Prof. Dr. Alvaro Cesar Pereira

Trabalhos relacionados

Sub-conjuntos de requisitos atendidos

Page 13: Uma Arquitetura para Acesso e Integração de Dados em Aplicações Sensíveis ao Contexto Natália Quirino de Oliveira Orientador: Prof. Dr. Alvaro Cesar Pereira

Trabalhos relacionados

Aspectos de entrega Hipac Snoop Liquid CoDIMS-CA

Linguagem específica Sim Sim Sim Sim

Eventos compostos Não Sim Sim Sim

Distribuição Não Não Sim Sim

Novos operadores Não Sim Não Sim

Page 14: Uma Arquitetura para Acesso e Integração de Dados em Aplicações Sensíveis ao Contexto Natália Quirino de Oliveira Orientador: Prof. Dr. Alvaro Cesar Pereira

Arquitetura conceitual

Page 15: Uma Arquitetura para Acesso e Integração de Dados em Aplicações Sensíveis ao Contexto Natália Quirino de Oliveira Orientador: Prof. Dr. Alvaro Cesar Pereira

Diagrama de componentes

Page 16: Uma Arquitetura para Acesso e Integração de Dados em Aplicações Sensíveis ao Contexto Natália Quirino de Oliveira Orientador: Prof. Dr. Alvaro Cesar Pereira

Diagrama de classes

Page 17: Uma Arquitetura para Acesso e Integração de Dados em Aplicações Sensíveis ao Contexto Natália Quirino de Oliveira Orientador: Prof. Dr. Alvaro Cesar Pereira

Diagrama de classes (cont.)

Page 18: Uma Arquitetura para Acesso e Integração de Dados em Aplicações Sensíveis ao Contexto Natália Quirino de Oliveira Orientador: Prof. Dr. Alvaro Cesar Pereira

Exemplo de Aplicação: Telemedicina

Monitorar ininterruptamente e remotamente pacientes que têm doenças crônicas Isquemia do miocárdio

Integração de eletrocardiograma, outros sinais vitais, prontuário do paciente

Page 19: Uma Arquitetura para Acesso e Integração de Dados em Aplicações Sensíveis ao Contexto Natália Quirino de Oliveira Orientador: Prof. Dr. Alvaro Cesar Pereira

Exemplo de Aplicação: Projeto Telecardio

Page 20: Uma Arquitetura para Acesso e Integração de Dados em Aplicações Sensíveis ao Contexto Natália Quirino de Oliveira Orientador: Prof. Dr. Alvaro Cesar Pereira

Exemplo de Aplicação: Deseja-se monitorar um paciente que se

encontra em casa, com um dispositivo holter que se comunica uma unidade base local. A unidade base se comunica com o servidor localizado no hospital

Dados são gerados pelo holter a cada 30 segundos

Monitoramento periódico ou emergências Integração de dados de prontuário, ECG

(freqûencia cardíaca) e temperatura

Page 21: Uma Arquitetura para Acesso e Integração de Dados em Aplicações Sensíveis ao Contexto Natália Quirino de Oliveira Orientador: Prof. Dr. Alvaro Cesar Pereira

Subscrição em formato SQL-Like

SELECT p.idPaciente, p.nome, p.idade,last 10 e.FC valuesFROM paciente p, ecg e, temperatura tWHEN e.FC onIncrease AND e.FC > 90 AND t.temperatura onIncrease AND t.temperatura > 39 AND p.fumante = “sim”

Page 22: Uma Arquitetura para Acesso e Integração de Dados em Aplicações Sensíveis ao Contexto Natália Quirino de Oliveira Orientador: Prof. Dr. Alvaro Cesar Pereira

Fontes Utilizadas

Fonte de Dados Nome Origem dos dados Tipo dos dados

Registros de Pacientes(idPaciente,nome,idade,sexo,fumante)

Prontuário Servidor do hospital

Relacional

ECG de pacientes(idPaciente, FC,data-hora)

ECG Sensor no paciente

XML

Temperatura de pacientes(idPaciente, temperatura, data-hora)

Temperatura Sensor no paciente

TXT

Page 23: Uma Arquitetura para Acesso e Integração de Dados em Aplicações Sensíveis ao Contexto Natália Quirino de Oliveira Orientador: Prof. Dr. Alvaro Cesar Pereira

Web services criados

A seguinte distribuição foi utilizada no estudo de caso

Enfoque na distribuição das fontes de dados

Page 24: Uma Arquitetura para Acesso e Integração de Dados em Aplicações Sensíveis ao Contexto Natália Quirino de Oliveira Orientador: Prof. Dr. Alvaro Cesar Pereira

Árvore de execução de consultas

Conjunto resultado

Page 25: Uma Arquitetura para Acesso e Integração de Dados em Aplicações Sensíveis ao Contexto Natália Quirino de Oliveira Orientador: Prof. Dr. Alvaro Cesar Pereira

Plano de Execução de Consultas<operator execution-step ="1"><Scan table="Temperatura">

<column name="idPaciente" /> <column name=“temperatura"/><constraint leftArg=”temperatura” operation=”bigger” rightArg=”39”/> <constraint OnIncrease column name=“temperatura"/> <consumer id="3"/> </scan> </operator>

<operator execution-step ="2"> <Scan table=”ECG”><column name="idPaciente" /> <column name="FC"/><constraint leftArg=”FC” operation=”bigger” rightArg=”90”/><constraint OnIncrease column name="FC"/> <consumer id="3"/> </scan> </operator>

<operator execution-step ="3"> <And left-producer="1" right-producer="2"><constraint leftArg="idPaciente" operation="equals" rightArg="idPaciente"/><consumer id="5"/></And></operator>

<operator execution-step ="4"> <Scan table="Prontuario"><column name="idPaciente” /> <column name=“idade "/><column name="nome "/><constraint leftArg=”fumante” operation=”equals” rightArg=”sim” /><consumer id=”5”/> </scan></operator>

<operator execution-step="5"> <Join left-producer="3" right-producer="4"> <constraint leftArg="idPaciente" operation="equals" rightArg="idPaciente"/> </ join></operator>

Page 26: Uma Arquitetura para Acesso e Integração de Dados em Aplicações Sensíveis ao Contexto Natália Quirino de Oliveira Orientador: Prof. Dr. Alvaro Cesar Pereira

Gerente de tarefas

Processador de consultas

MEC

Fabrica de MECs

OP aoAumentar

WrapperECG

Fabrica de agentes

Agente

WrapperMédico

OP Join

Metadados

OP aoAumentar

OP scan

OP and

Temp = 40Frequencia = 65Frequencia = 91

Histórico de eventos

Agente

Temp > 39 FC > 90 Fumante = “sim”

Page 27: Uma Arquitetura para Acesso e Integração de Dados em Aplicações Sensíveis ao Contexto Natália Quirino de Oliveira Orientador: Prof. Dr. Alvaro Cesar Pereira

Conjuntos resultado Resultset do operador Scan: Temperatura

<Resultset xmlns=""><tupla xmlns="" idPaciente="00001" temperatura=“40"/><tupla xmlns="" idPaciente="00002" temperatura=“40"/></Resultset>

Resultset do operador Scan: frequência cardíaca<Resultset xmlns=""><tupla xmlns="" idPaciente="00001" FC="92" /><tupla xmlns="" idPaciente="00003" FC="93" /></Resultset>

Resultset do operador And:<Resultset xmlns=""><tupla xmlns="" idPaciente="00001" FC="92“ temperatura=“40”/></Resultset>

Resultset do operador Scan: paciente<Resultset xmlns=""><tupla xmlns="" idPaciente="00001“ nome=“Fulano da Silva” idade="52" sexo=”masculino” fumante="sim” /> </Resultset>

Resultset do operador Join:<Resultset xmlns=""><tupla xmlns="" id_paciente="00001" temperatura=“40" FC=”92” idade="52” sexo=”masculino” fumante="sim /></Resultset>

Page 28: Uma Arquitetura para Acesso e Integração de Dados em Aplicações Sensíveis ao Contexto Natália Quirino de Oliveira Orientador: Prof. Dr. Alvaro Cesar Pereira
Page 29: Uma Arquitetura para Acesso e Integração de Dados em Aplicações Sensíveis ao Contexto Natália Quirino de Oliveira Orientador: Prof. Dr. Alvaro Cesar Pereira
Page 30: Uma Arquitetura para Acesso e Integração de Dados em Aplicações Sensíveis ao Contexto Natália Quirino de Oliveira Orientador: Prof. Dr. Alvaro Cesar Pereira

Implementação

JDOM SAX Tomcat NetBeans PostgreSQL

Page 31: Uma Arquitetura para Acesso e Integração de Dados em Aplicações Sensíveis ao Contexto Natália Quirino de Oliveira Orientador: Prof. Dr. Alvaro Cesar Pereira

Conclusão

Avanços na popularização de dispositivos Computação ubíqua, sistemas sensíveis ao

contexto: maior interação com os usuários Necessidade de arquiteturas apropriadas Nova instância do CoDIMS, o CoDIMS-CA

Page 32: Uma Arquitetura para Acesso e Integração de Dados em Aplicações Sensíveis ao Contexto Natália Quirino de Oliveira Orientador: Prof. Dr. Alvaro Cesar Pereira

Contribuições

Lista de requisitos para integração de dados contextuais

Máquina de execução de consultas distribuida para entrega ativa de dados

Fábricas e distribuição de agentes e operadores Arquitetura configurável e flexível Definição de esquemas XML Implementação do protótipo

Reutilização do framework CoDIMS

Publicações

Page 33: Uma Arquitetura para Acesso e Integração de Dados em Aplicações Sensíveis ao Contexto Natália Quirino de Oliveira Orientador: Prof. Dr. Alvaro Cesar Pereira

Requisitos atendidos

Acesso e integração de dados Entrega ativa de dados Dinamismo das informações Metadados Perfil de usuário Configuração e extensibilidade Histórico contextual Prioridade entre consultas

Page 34: Uma Arquitetura para Acesso e Integração de Dados em Aplicações Sensíveis ao Contexto Natália Quirino de Oliveira Orientador: Prof. Dr. Alvaro Cesar Pereira

Requisitos não atendidos

Contexto espaço-temporal Linguagens específicas

Modificações na ACID Mobilidade

Page 35: Uma Arquitetura para Acesso e Integração de Dados em Aplicações Sensíveis ao Contexto Natália Quirino de Oliveira Orientador: Prof. Dr. Alvaro Cesar Pereira

Comparação com outras arquiteturas

Distinções na detecção de eventos e processamento de consultas

Estratégia de execução de consulta Adição de novos componentes

Page 36: Uma Arquitetura para Acesso e Integração de Dados em Aplicações Sensíveis ao Contexto Natália Quirino de Oliveira Orientador: Prof. Dr. Alvaro Cesar Pereira

Trabalhos futuros

Otimização dinâmica de consultas Estatísticas e gerenciamento de fontes Desenvolvimento de wrappers (imagens

médicas, GPS) Tolerância a falhas Estudos sobre novos componentes (histórico,

perfil) Estudo de grids para integração de dados

contextuais

Page 37: Uma Arquitetura para Acesso e Integração de Dados em Aplicações Sensíveis ao Contexto Natália Quirino de Oliveira Orientador: Prof. Dr. Alvaro Cesar Pereira

Agradecimentos

CNPq e FAPES, pelo apoio financeiro UFES/PPGI, pela oportunidade e

conhecimento recebido Alunos do PET Engenharia de

Computação (Bruna Colnago e Igor Magri), pelo apoio na implementação

Page 38: Uma Arquitetura para Acesso e Integração de Dados em Aplicações Sensíveis ao Contexto Natália Quirino de Oliveira Orientador: Prof. Dr. Alvaro Cesar Pereira

Uma Arquitetura para Acesso e Integração de Dados em Aplicações Sensíveis ao Contexto

Natália Quirino de Oliveira

Orientador: Prof. Dr. Alvaro Cesar Pereira Barbosa

Mestrado em Informática

Universidade Federal do Espírito Santo

Page 39: Uma Arquitetura para Acesso e Integração de Dados em Aplicações Sensíveis ao Contexto Natália Quirino de Oliveira Orientador: Prof. Dr. Alvaro Cesar Pereira

Subscrição histórico - XML <?xml version="1.0" ?> <subscription xmlns="http://www.w3schools.com"> <substype valor="Last-values"></substype> <appid valor="111"></appid> <userid valor="222"></userid> <usergroup valor="333"></usergroup> <atributos> <atributo valor="ECG"></atributo> <atributo valor="pressao"></atributo> </atributos> </subscription>

Page 40: Uma Arquitetura para Acesso e Integração de Dados em Aplicações Sensíveis ao Contexto Natália Quirino de Oliveira Orientador: Prof. Dr. Alvaro Cesar Pereira

Armazenamento histórico - XML

<?xml version="1.0" encoding="UTF-8"?> <historico> <atributo>ECG</atributo> <tabela>sinaisVitais</tabela> <inicioArmazenamento>10:02:05</

inicioArmazenamento> <granularidade>00:01:00</granularidade> <valor>90</valor> <valor>87</valor> </historico>

Page 41: Uma Arquitetura para Acesso e Integração de Dados em Aplicações Sensíveis ao Contexto Natália Quirino de Oliveira Orientador: Prof. Dr. Alvaro Cesar Pereira

Fonte indisponível - XML <fonteIndisponivel idFonte=”1234”> <periodo> <dataInicio> 2007/03/01 23:42:22 </dataInicio> <dataFinal> 2007/03/01 23:51:32 </dataFinal> </periodo> <periodo> <dataInicio> 2007/02/01 10:40:11 </dataInicio> <dataFinal> 2007/02/01 11:20:36 </dataFinal> </periodo> </fonteIndisponivel>

Page 42: Uma Arquitetura para Acesso e Integração de Dados em Aplicações Sensíveis ao Contexto Natália Quirino de Oliveira Orientador: Prof. Dr. Alvaro Cesar Pereira

Event Report - XML

<eventReport> <tipo>anomaliaECG</tipo> <idEvento></idEvento> </eventoInicial timestamp=10:20:13

evento=”ev1”> </intermediario timestamp=10:21:42

evento=”ev2”> </eventoFinal timestamp=10:21:42 evento=”ev4”> </disparo timestamp=”10:21:59”> </eventReport>

Page 43: Uma Arquitetura para Acesso e Integração de Dados em Aplicações Sensíveis ao Contexto Natália Quirino de Oliveira Orientador: Prof. Dr. Alvaro Cesar Pereira

Perfil SELECT * FROM medico m WHERE m.especialidade = “oftamologista”

<perfil> <coluna nome="bairro" valor="Jardim Camburi"

eliminatorio="false" /> <coluna nome="convenio" valor="Casufes"

eliminatorio="true" /> </perfil>

SELECT * from medico m WHERE m.especialidade = “oftamologista” AND m.convenio =

“casufes” ORDER BY m.bairro

Page 44: Uma Arquitetura para Acesso e Integração de Dados em Aplicações Sensíveis ao Contexto Natália Quirino de Oliveira Orientador: Prof. Dr. Alvaro Cesar Pereira

Interfaces para Web Services public interface InterfaceSubscricao {

public void popularSubscricao(String arquivo);}

public interface InterfaceAgente { public void iniciarMonitoramento(); public void pausarMonitoramento(); public void cancelarMonitoramento(); public void run();}

public interface InterfaceGerenciaFonte { public void checarTodasFontes(); public void checarFonte(Fonte f); public void monitorarStatusFontes(); public void alertarDesconexao(Fonte f);}

Page 45: Uma Arquitetura para Acesso e Integração de Dados em Aplicações Sensíveis ao Contexto Natália Quirino de Oliveira Orientador: Prof. Dr. Alvaro Cesar Pereira

Interfaces para Web Services (cont.) public interface InterfacePerfil {

public void popularPerfil(int idUsuario, String arquivo); public void personalizarConsulta(String arqPerfil, String arqConsulta); public void consultarPerfil(int idUsuario);}

public interface InterfaceHistorico { public Vector obterDadosHistoricos(String atributo, String tabela); public void armazenarHistorico(String atr, String tab, String valor); public void iniciarArmazenamento(String atributo, String tabela); public void pausarArmazenamento(String atributo, String tabela);}

public interface InterfaceGerenciaTarefas { public void checarMaiorPrioridade(); public void adicionarSubscricao(Subscricao s); public void removerSubscricao(int id);}