Ambientes de suporte à colaboração móvel Introdução à Computação Móvel Prof. Markus Endler Hana Karina S. Rubinsztejn Roteiro Motivação MOTION JEDI YACO STEAM YCab Conclusões Motivação Desenvolvimento de redes sem fio Crescimento do uso de dispositivos portáteis e móveis com interface de rede sem fio Características: Conectividade intermitente Recursos limitados Mobilidade Necessidade de novas aplicações para estes ambientes Exemplo de aplicações Trabalho em equipe (colaboração) móvel em empresas Empregados desejam continuar o trabalho durante a locomoção de um lugar a outro Colaboração entre grupos com interesse comum/proximidade Gerenciamento de tráfego Motivação Serviços necessários Localização e compartilhamento de informações Comunicação Formação de grupos Baseados em interesses comuns Proximidade Adaptações Explorem informações de contexto Perfis de usuário/dispositivo MOTION MObile Teamwork Infrastructure for Organizations Network Arquitetura de tecnologia de comunicação e informação com boa escalabilidade e flexibilidade para colaboração móvel Utiliza Peer-to-Peer para compartilhamento de artefatos e Publish/Subscribe para mensagens e eventos Engin Kirda, Pascal Fenkan, Gerald Reif e Harald Gall Distributed Systems Group in the Information Systems Institute MOTION Arquitetura MOTION MOTION Serviços de grupo (TWS) Componente DUMAS Gerenciamento de recursos (usuários, artefatos e comunidade) Gerenciamento das permissões de acesso sobre os recursos µDUMAS - implementação para dispositivos limitados (PDA) Comunicação entre µDUMAS e DUMAS é realizada através da publicação de eventos XML Componente de mensagens Serviço de mensagem integrado que possibilita o usuário comunicar e trocar informações (SMTP, SMS, WAP SI) Sistema Usuário Comunidade MOTION Serviços TWS (cont) Componente Publish/Subscribe Repositório MOTION Armazenamento de artefatos e meta-dados (perfis XML); Gerenciador de artefatos Assinatura/Registro de eventos Uso de callbacks - intermediário entre o usuário e o sistema Pub/Sub; Compartilhamento de artefatos – via HTTP Busca distribuída Localizar uma informação em uma configuração distribuída fracamente acoplada Busca avançada - através da especificação de propriedades do artefato YACO University of L’Aquila Yet Another Framework for Supporting Mobile and Collaborative Work Framework para trabalho colaborativo móvel Siena - sistema pub/sub baseado em conteúdo Seleciona os eventos de interesse e entrega ao usuário Conjunto de operadores usados nos filtros que especificam as restrições sobre os atributos Algoritmos de roteamento otimizado MobiKit - serviço de suporte a mobilidade de clientes em sistemas Pub/Sub Mauro Caporuscio e Paola Inverardi YACO MobiKit Gerencia publicações e requisições dos clientes, durante desconexões e trocas de ponto de acesso destes Serviço é implementado por componentes estáticos (mobility proxy objects) que rodam nos pontos de acesso do sistema P/S Funções move-out e move- in YACO Arquitetura do Sistema YACO Serviços Mensagens Busca distribuída de artefatos parâmetros de busca e permissões de acesso Serviço de transferência de arquivos destino: user-ID, group_ID ou all_user Uso de mensagens ponto-a-ponto para requisição de download e envio de artefatos Descoberta de Usuários Publicação de evento de novo usuário indicando seu perfil Busca especificando parâmetros específicos JEDI POLITECNICO DI MILANO Java Event-based Distributed Infrastructure Objetos ativos Objetos reativos Despachante de eventos Produtores e consumidores Logicamente centralizado. Implementado como servidores distribuídos com topologia hierárquica Filtros através de expressões para assunto e propriedades Ordenação causal de eventos Suporte à mobilidade Funções MoveIn e MoveOut G Cugola, E Di Nitto, A. Fuggeta JEDI OPSS (ORCHESTRA Process Supoprt System) Suporte ao desenvolvimento e operação de serviços de negócio Requisitos: escalabilidade, usuários dinâmicos… Arquitetura OPSS: Agentes (softwares ou humanos) executam atividades descritas Despachante de eventos Servidor de estado Visualizador OPSS JEDI Servidor de estado Repositório persistente do estado de processos Entidades: Atividades, Recursos, Artefatos Controle via transição de estados Tripla (evento, condição, ação) Visualizador Ferramenta de monitoração do estado do processo STEAM Scalable Timed Events And Mobility Middleware baseado em eventos para aplicações colaborativas baseadas em localização Modelo ad-hoc suporta acoplamento dinâmico de componentes Arquitetura distribuída 802.11b Não requer infra-estrutura Middeware no dispositivo, e todos com mesmas habilidades Componentes são location-aware Filtro distribuído de notificações de eventos © René Meier e Vinny Cahill STEAM Arquitetura STEAM STEAM Serviço de eventos Eventos Filtros distribuídos Por assunto, conteúdo e proximidade Disseminação multi-hop de eventos Tipos de eventos: (assunto, conteúdo, atributos) Proximidade: móvel ou estacionária Proximidade limita a propagação dos eventos Serviço de Localização Dados de sensores para cálculo localização geográfica. Ex: GPS STEAM Serviço de descoberta de proximidade (PDS) Uso de beacons para descoberta Mapeia proximidades a grupos e a subscriptions Serviço de comunicação de grupos baseado em proximidade (PGCS) Identificadores de grupo calculados por uma função hashing: assunto, proximidade (formato, dimensão e localização) Entidades calculam o identificador do grupo de interesse Permite o ingresso ao grupo, recebendo apenas eventos relevante YCab Framework para serviços colaborativos Redes ad-hoc Provê uma API leve e flexível que permite os desenvolvedores criar rapidamente aplicações colaborativas otimizadas Implementado em Java; Comunicação multicast sobre 802.11 Controle descentralizado Serviços pré-definidos © Dominik Buszko, Wei-Hsing Lee e Abdelsalam Helal YCab Componentes do framework Gerentes de serviço e comunicação; Serviços de eleição e de sessão; Gerente de reconstituição de estado; Componentes GUI; YCab Gerente de comunicação Core Messages Comunicações assíncrona entre os clientes através de MulticastSocket Requer sincronização entre o “Thread Produtor” e o “Thread Consumidor” Gerente do cliente Responsável pela administração dos serviços, mantendo um mapeamento das propriedades do cliente, tais como, nome, grau, status do cooordenador Responsável por instanciar, inicializar e manter referências para todos componentes; YCab Gerente de estado Mantém o estado da sessão Mantém uma lista de todos os serviços registrados API provê facilidades para gerenciar o estado dos dados para cada serviço O estado do serviço consiste das mensagens enviadas para ele Atualizar, recuperar as informações de estado; ou limpar os dados Roteador de Mensagem Responsável por rotear as mensagens para o serviço apropriado; Modos de Operação Modo normal; Modo de reconstituição/restauração de estado YCab Controle descentralizado (protocolos) Criação, união, saída de sessão de colaboração Reconstituição de estado Eleição do líder (coordenador da sessão) Pigging YCab Serviços Serviços obrigatórios Serviço de eleição de líder Serviço do gerente de sessão Serviços opcionais: Serviço de ping Chat Área de desenho Visualizador de imagens Serviço GPS Serviço de informações do cliente Conclusões Rede Comunicação Contexto Implemetação MOTION IE Pub/Sub e P2P Notebook, desk, PDA YACO IE Pub/Sub Protótipo inicial JEDI IE Pub/Sub -- STEAM AH Pub/Sub YCab AH Multicast 802.11 Localização Notebook Notebook Conclusões MOTION YACO JEDI STEAM YCab Sim Sim Sim Só grupo Sim Sim (P2P) Sim (P/S) Sim Não (imagens) Eventos Sim Sim Sim Sim Não Busca distribuída Sim Sim Não Não Não Controle acesso Sim Sim Não Não Não Coordenação cliente/sessão Sim Não Não Sim Sim (descent) Comunicação Grupo Sim Sim Não Sim (proximidade) Sim Sim (P/S) Sim (P/S) Sim Grupos prox Peer-list Localização Não Não Não Sim – GPS Sim – GPS Chat/quadro branco Não Não Não Não Sim Mensagens Compartilhamento de artefatos Descoberta user Dúvidas ?