Post on 21-Apr-2015
Descoberta de Serviços em Ambientes Móveis
Lindonete Gonçalves Siqueira
Mauro Carvalho Lopes Silva
Lindonete Siqueira - Mauro Lopes 2
Conteúdo
Introdução MNCRS SLP JINI Moca Bibliografia
Lindonete Siqueira - Mauro Lopes 3
Introdução
Aumento na utilização de dispositivos móveis redução de peso, consumo e volume. Portabilidade - > mobilidade.
Lindonete Siqueira - Mauro Lopes 4
Introdução
Um dispositivo móvel necessita conhecer os serviços que estão disponíveis em uma rede.
Lindonete Siqueira - Mauro Lopes 5
Introdução
Problema: necessidade de configurar o dispositivo e conhecer a localização dos respectivos recursos.
Solução: componente no sistema que realize esta tarefa. Conhecer os recursos existentes. Selecionar um recurso pretendido, abstraindo
detalhes como localização A este componente chamamos:
Descoberta de Serviços.
Lindonete Siqueira - Mauro Lopes 6
MNCRS
MNCRS Work Group - elaborou uma especificação denominada: Mobile Network Computer Reference
Specification (MNCRS), onde é definido o que é um Mobile Network Computer e onde propõe um conjunto de padrões para interação entre aplicações, servidores e protocolos de rede.
Lindonete Siqueira - Mauro Lopes 7
Especificação MNCRS
O modelo proposto divide-se em dois níveis: Nível superior, que consiste numa API,
através da qual as aplicações interrogam a localização dos serviços.
Nível inferior, que consiste num protocolo que recebe as interrogações do nível superior, envia a rede, processa-as e retorna ao nível superior, onde por sua vez são repassadas a aplicação.
Lindonete Siqueira - Mauro Lopes 8
Especificação MNCRS
Lindonete Siqueira - Mauro Lopes 9
Especificação MNCRS
Esta divisão garante: Os fabricantes de aplicações tem uma
interface comum para seu desenvolvimento.
Os fornecedores de serviços sabem que seus serviços disponibilizados podem ser usados por clientes móveis.
Lindonete Siqueira - Mauro Lopes 10
Especificação MNCRS
Acesso à rede e suporte a mobilidade Acesso a rede através de um endereço
IP válido para aquela rede. DHCP – permitindo aos dispositivos
móveis obterem dinamicamente um endereço IP
Problema: deslocamento entre sub-redes.
Protocolo Mobile IP.
Lindonete Siqueira - Mauro Lopes 11
Service Location Protocol (SLP)
Protocolo padronizado para localização de serviços em ambiente de rede baseado em IP
Preconizado pelo IETF. Processo automatizado. SLP fornece mecanismos necessários
para a descoberta de serviços na rede, sem a necessidade de conhecer a localização dos mesmos e de configuração manual.
Lindonete Siqueira - Mauro Lopes 12
Service Location Protocol (SLP)
A arquitetura possui 3 entidades: UA (User Agent) – trabalham em função de
um aplicação cliente que pretende localizar um serviço.
SA (Server Agent) - trabalham em funçao de um serviço, anunciando sua disponibilidade.
* DA (Directory Agent) – funciona como uma central que armazena informações referentes a localização e disponibilidade dos serviços.
Lindonete Siqueira - Mauro Lopes 13
Interação entre os componentes do SLP
Lindonete Siqueira - Mauro Lopes 14
Arquitetura do SLP
A comunicação entre os componentes é feita sobre TCP/IP e pode funcionar de duas formas: Ponto a ponto (unicast) Multicast
Lindonete Siqueira - Mauro Lopes 15
Arquitetura do SLP
Localização de serviços
Lindonete Siqueira - Mauro Lopes 16
Arquitetura do SLP
Anuncio de serviços
Lindonete Siqueira - Mauro Lopes 17
Arquitetura do SLP
Anuncio de serviços AS envia uma mensagem – Registro de
Serviço ao AD. Mensagem - > URL do serviço.
Sintaxe = serviço:<tipo>://<endereço>. Se serviço deixa de ser disponível, o
seu AS envia a mensagem – Fim de Registro de Serviço – ao AD que eliminam esse registro.
Lindonete Siqueira - Mauro Lopes 18
Arquitetura do SLP
Localização de um DA. Redução de mensagens na rede.
Como localizar um AD? Configuração estática. DHCP. Localização ativa. Localização passiva.
Lindonete Siqueira - Mauro Lopes 19
Arquitetura do SLP
Localização de um DA.
Lindonete Siqueira - Mauro Lopes 20
JINI
Sistema de localização de serviços, de propriedade da Sun Microsystems.
Baseado na arquitetura Java. Funciona sob o mesmo paradigma do
SLP. Tira proveito da possibilidade de
trafegar código executável pela rede utilizando RMI para acessar o serviço.
Lindonete Siqueira - Mauro Lopes 21
JINI
Ao necessitar de um serviço o cliente efetua o download de um objeto proxy Java, um código executável pela JVM, capaz de invocar, remotamente, métodos na entidade que oferece o serviço, e ainda enviar dados necessários ao cumprimento da tarefa.
Lindonete Siqueira - Mauro Lopes 22
Arquitetura
Lindonete Siqueira - Mauro Lopes 23
Arquitetura
Cada serviço oferece uma funcionalidade que pode ser acessada através de interfaces definida pelo serviço.
Cada dispositivo pode agir como cliente ou servidor, dependendo se ele está requisitando ou providenciando serviço.
Lindonete Siqueira - Mauro Lopes 24
Arquitetura
Lookup Service
Discovery Encontrar o Lookup Service
Join
Lindonete Siqueira - Mauro Lopes 25
ArquiteturaRegistrando um Serviço - 1
Lindonete Siqueira - Mauro Lopes 26
ArquiteturaRegistrando um Serviço - 2
Lindonete Siqueira - Mauro Lopes 27
ArquiteturaRegistrando um Serviço - 3
Lindonete Siqueira - Mauro Lopes 28
ArquiteturaRegistrando um Serviço - 4
Lindonete Siqueira - Mauro Lopes 29
ArquiteturaBuscando um serviço - 1
Lindonete Siqueira - Mauro Lopes 30
ArquiteturaBuscando um serviço - 2
Lindonete Siqueira - Mauro Lopes 31
ArquiteturaBuscando um serviço - 3
Lindonete Siqueira - Mauro Lopes 32
Jini
Leasing Um serviço é alugado para um cliente
por um quantidade de tempo fixa. Quando expira esse tempo o cliente
renova o aluguel pra continuar acessando o serviço.
O aluguel expira pra todos os usuários quando o serviço não está disponível.
Lindonete Siqueira - Mauro Lopes 33
Exemplo:Sistema Infotronic do Chrysler Cruiser2000 – EUA.
Lindonete Siqueira - Mauro Lopes 34
Exemplo:Sistema Infotronic do Chrysler Cruiser2000 – EUA.
Lindonete Siqueira - Mauro Lopes 35
Exemplo:
Uma impressora pode se conectar a uma rede e divulgar seus serviços.
Pode ainda divulgar mudanças de estado.
Uma câmera digital nessa mesma rede pode achar a impressora e solicitar a impressão de fotos num determinado formato.
Lindonete Siqueira - Mauro Lopes 36
SLP X JINI
JINI Interface de Serviços Java, RMI, mover objetos entre JVM
SLP Interface – brigde SLP/JINI Qualquer linguagem
Arquiteturas semelhantes
Lindonete Siqueira - Mauro Lopes 37
MOCA
Ambiente de Programação e Run-time para dispositivos de computação móvel.
Um framework component baseado em componentes de software chamados Serviços
Devido a portabilidade este foi escrito em JAVA.
Lindonete Siqueira - Mauro Lopes 38
Características do MOCA
100% JAVA Permite a descoberta dinâmica e
download de serviços publicados por dispositivos vizinhos
Pouco consumo de memória (lazy loading) As aplicações podem residir localmente ou
ser descarregadas da rede (software dinâmico)
Uso extensivo da JVM Alto grau de transparência de localização
Lindonete Siqueira - Mauro Lopes 39
Arquitetura dos Serviços
O MOCA fornece um serviço de framework que dá suporte ao desenvolvimento e execução de aplicações em dispositivos de computação móvel
Diferença entre Serviço e Aplicação Serviços
Componente de software que encapsula funções específicas e fornece uma interface para estas funcionalidades
Podem ser acessados por Aplicações ou outros Serviços
Podem ser locais (Cache de arquivos locais) ou remotos (serviço de impressão)
Lindonete Siqueira - Mauro Lopes 40
Arquitetura dos Serviços
Aplicação Um programa escrito em Java que
declara um método main e é distribuído em um ou mais arquivos de classe
As aplicações usam serviços através das interfaces fornecidas
Cada aplicação possui um único grupo de threads e um espaço de nome privado
O acesso aos serviços podem ser limitados através de políticas de segurança
Lindonete Siqueira - Mauro Lopes 41
Arquitetura dos Serviços
Lindonete Siqueira - Mauro Lopes 42
Serviço de Registro
Elemento central da Arquitetura do MOCA Realiza dois papeis
Atua como uma central de repositório de serviços Encapsula as políticas de gerenciamento do ciclo
de vida dos serviços Realiza o registro, atualização, resolve e exclui
serviços Descritor de Serviço:
Nome da Interface Nome da Implementação URL (opcional)
Lindonete Siqueira - Mauro Lopes 43
Serviço de Registro
Para obter um Serviço Um objeto pede ao Serviço de Registro realizar um
look-up A entrada mínima requerida é o nome da interface
do serviço O Serviço de Registro retorna a referencia para uma
implementação do objeto cujo a interface foi requerida
O requerente pode acessar o Serviço via os métodos disponibilizados na interface
O Serviço de Registro não faz distinção entre serviços locais ou remotos
Lazy Loading Período de Validade
Lindonete Siqueira - Mauro Lopes 44
Serviços Essenciais
É um subconjunto dos serviços gerenciados pelo MOCA
Os Serviços Essenciais são usados por serviços customizados ou application class carregadas.
Sem os Serviços Essenciais o MOCA não tem como carregar serviços adicionais ou aplicações
São implementados como uma extensão da JVM São carregados junto com o processo de
carregamento das classes do JAVA e existe no espaço de nome da JVM
Lindonete Siqueira - Mauro Lopes 45
Serviços Essenciais
Existem 3 Serviços Essenciais Cache de Arquivo Local Carregamento de Arquivos Gerenciamento de Aplicações
Cache de Arquivo Local Gerencia um repositório de arquivos .class do Java,
associados aos serviços e aplicações correntemente carregados no dispositivo
Implementado no topo do sistema de arquivos local do dispositivo
O esquema de substituição do conteúdo da cache pode adotar ambas as políticas (implícita ou explicita)
Sem o serviço de cache o MOCA não consegue carregar qualquer serviço ou aplicação
Lindonete Siqueira - Mauro Lopes 46
Serviços Essenciais
Carregamento de Arquivos Usado para carregar arquivos da Rede É considerado um serviço pseudo-essencial Dispositivos em modo desconectado Inabilidade de descobrir e descarregar qualquer serviço ou
aplicação Gerenciamento da Aplicação
Gerenciamento do ciclo de vida da aplicação Utilizado para para criar, suspender ou destruir aplicações Para cada aplicação o Gerente de Aplicações aloca e
gerencia um grupo de threads Uso de um espaço de nome privado para isolar aplicações
e limitar o conjunto de serviços visíveis pela Aplicação
Lindonete Siqueira - Mauro Lopes 47
Serviços de Aquisição
Sem uma maneira conveniente de distribuir ou adquirir um componente, o Modelo de Componentes terá pouca chance de ser usado
Um Serviço é composto de duas partes Interface – arquivo de classe da interface Implementação – arquivos de classe da implementação
No MOCA o carregamento de serviços é realizado pelo Serviço de Carregamento de Classes
O carregamento de um Serviço é realizado em um processo de duas fases
Lindonete Siqueira - Mauro Lopes 48
Serviços de Aquisição
Primeira Fase Ao Serviço de Carregamento de Classe é solicitado a
carregar um arquivo de classe de interface do serviço requerido
Uso do Repositório de Interfaces Segunda Fase
Os arquivos de classe da implementação do serviço requerido são carregados
Localização dos arquivos de implementação URL – usado para serviços descobertos
dinamicamente Serviço de Nomes para traduzir nomes de interfaces
e implementações em URL
Lindonete Siqueira - Mauro Lopes 49
Serviços de Aquisição
Arquivos de Classe de Implementação e Interfaces devem fazer parte pacotes Java específicos
Todas as interfaces estão em um pacote service.interfaces
Service.interface.MinhaInterface – arquivo de classe da interface
Service.MinhaInterface – arquivo de classe de implementação
Lindonete Siqueira - Mauro Lopes 50
Serviços de Aquisição
Lindonete Siqueira - Mauro Lopes 51
Serviços de Descoberta MOCA fornece mecanismos que permitem a dispositivos
móveis descobrir serviços em dispositivos vizinhos Alto grau de transparência na localização de
serviços A descoberta de um serviço de impressão provido
por uma impressora vizinha Aplicações MOCA podem adaptar os dispositivos
móveis ao ambiente O Serviço de Descoberta no MOCA é baseado no
Modelo Multicast Serviços exportados são representados por um
descritor de Serviço
Lindonete Siqueira - Mauro Lopes 52
Serviços de Descoberta
Lazy Strategy – Ajuda a minimizar o consumo de memória e o overhead na rede
Período de Validade – semelhante ao Garbage Collection em uma JVM
O Serviço de descoberta no MOCA é implementado por dois serviços opcionais Broadcaster Listener
Broadcaster – lista de serviços exportados Listener – monitora o broadcast
Lindonete Siqueira - Mauro Lopes 53
Serviços de Descoberta
Lindonete Siqueira - Mauro Lopes 54
Segurança
Devido a sua natureza portável e habilidade a dinamicamente descarregar código, dispositivos de computação móvel são particularmente suscetíveis a ataques
Modelo de segurança provido pelo Java é inadequado para controlar o acesso aos recursos em um dispositivo móvel
MOCA dividiu o código descarregado em duas categorias Serviços Aplicação
Lindonete Siqueira - Mauro Lopes 55
Segurança
Serviços são confiáveis Usa Encriptação e Assinatura Digital Acesso aos recursos do dispositivo
determinado por uma política que associa direitos com assinatura de código
Aplicações são não confiáveis Usa serviços para garantir acesso aos recursos Acesso a serviços é determinado por uma
política que associa direitos com categorias de aplicações
Lindonete Siqueira - Mauro Lopes 56
Segurança
Lindonete Siqueira - Mauro Lopes 57
Serviços de Atualização
MOCA suporta atualização dinâmica da implementação dos serviços
Interface de Serviços devem ser imutáveis Reescrever uma aplicação devido a mudança de
uma interface Implementação dos Serviços disponíveis podem
ser atualizadas a qualquer momento Adaptadores de Serviços são utilizados para
suportar a atualização dinâmica Para atualizar uma implementação, o Serviço de
Registro simplesmente associa o Adaptador com a nova implementação
Lindonete Siqueira - Mauro Lopes 58
Serviços de Atualização
Lindonete Siqueira - Mauro Lopes 59
Cenário
Exemplo de como os dispositivos móveis podem descobrir serviços demonstrando de forma prática como esse processo ocorre
Neste cenário veremos como ocorre: A Descoberta de um serviço O Registro dos Serviços Lazy Loading Strategy Período de Validade
Lindonete Siqueira - Mauro Lopes 60
Sumário de características
Lindonete Siqueira - Mauro Lopes 61
Bibliografia
Artigos Marcus Amorim Leal, Jini e Redes
Espontâneas , PUC-Rio, Introdução à Computação Móvel – 2001.
Carlos Rodrigo Souza Santos, JINI: Uma arquitetura de computação distribuída baseada na plataforma Java, UFMA, 2003.
Raul Gupta; Sumeet Talwar; Dharma P. Agrawal, Jini Home Networking: A Step toward Pervasive Computem, IEEE, 2002.
Lindonete Siqueira - Mauro Lopes 62
Bibliografia
Artigos Bruno F. Souza, A vida, o Universo e Tudo Mais
JINI 2.0 Segurança em Aplicações, Revista Java Magazine. Edição 11.
Rui F. Pereira; Mário J. Silva, Descoberta de Serviços em Ambientes Móveis , Faculdade de Ciências da Universidade de Lisboa.
Alexandre A. Pires; Otto Carlos M. B. Duarte, Segurança em Localização de Serviços.
Lindonete Siqueira - Mauro Lopes 63
Bibliografia
Site The Jini Product Home Page, disponível
na www em http://java.sun.com/jini. Sun Microsystems.
http://www.ime.usp.br/~lmap/mestrado.html
http://www.ececs.uc.edu/~srao/projects/amcpaper.pdf