Descoberta de Serviços
em Ambientes Móveis
Lindonete Gonçalves Siqueira
Mauro Carvalho Lopes Silva
Conteúdo






Introdução
MNCRS
SLP
JINI
Moca
Bibliografia
Lindonete Siqueira - Mauro Lopes
2
Introdução

Aumento na utilização de dispositivos móveis


redução de peso, consumo e volume.
Portabilidade - > mobilidade.
Lindonete Siqueira - Mauro Lopes
3
Introdução

Um dispositivo móvel necessita conhecer os
serviços que estão disponíveis em uma rede.
Lindonete Siqueira - Mauro Lopes
4
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
5
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
6
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
7
Especificação MNCRS
Lindonete Siqueira - Mauro Lopes
8
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
9
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
10
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
11
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
12
Interação entre os componentes do
SLP
Lindonete Siqueira - Mauro Lopes
13
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
14
Arquitetura do SLP

Localização de serviços
Lindonete Siqueira - Mauro Lopes
15
Arquitetura do SLP

Anuncio de serviços
Lindonete Siqueira - Mauro Lopes
16
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
17
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
18
Arquitetura do SLP

Localização de um DA.
Lindonete Siqueira - Mauro Lopes
19
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
20
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
21
Arquitetura
Lindonete Siqueira - Mauro Lopes
22
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
23
Arquitetura

Lookup Service

Discovery


Encontrar o Lookup Service
Join
Lindonete Siqueira - Mauro Lopes
24
Arquitetura
Registrando um Serviço - 1
Lindonete Siqueira - Mauro Lopes
25
Arquitetura
Registrando um Serviço - 2
Lindonete Siqueira - Mauro Lopes
26
Arquitetura
Registrando um Serviço - 3
Lindonete Siqueira - Mauro Lopes
27
Arquitetura
Registrando um Serviço - 4
Lindonete Siqueira - Mauro Lopes
28
Arquitetura
Buscando um serviço - 1
Lindonete Siqueira - Mauro Lopes
29
Arquitetura
Buscando um serviço - 2
Lindonete Siqueira - Mauro Lopes
30
Arquitetura
Buscando um serviço - 3
Lindonete Siqueira - Mauro Lopes
31
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
32
Exemplo:
Sistema Infotronic do Chrysler Cruiser
2000 – EUA.
Lindonete Siqueira - Mauro Lopes
33
Exemplo:
Sistema Infotronic do Chrysler Cruiser
2000 – EUA.
Lindonete Siqueira - Mauro Lopes
34
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
35
SLP X JINI

JINI



SLP



Interface de Serviços
Java, RMI, mover objetos entre JVM
Interface – brigde SLP/JINI
Qualquer linguagem
Arquiteturas semelhantes
Lindonete Siqueira - Mauro Lopes
36
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
37
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
38
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
39
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
40
Arquitetura dos Serviços
Lindonete Siqueira - Mauro Lopes
41
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
42
Serviço de Registro

Para obter um Serviço







Um objeto pede ao Serviço de Registro realizar um lookup
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
43
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
44
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
45
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
46
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
47
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
48
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
49
Serviços de Aquisição
Lindonete Siqueira - Mauro Lopes
50
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
51
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
52
Serviços de Descoberta
Lindonete Siqueira - Mauro Lopes
53
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
54
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
55
Segurança
Lindonete Siqueira - Mauro Lopes
56
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
57
Serviços de Atualização
Lindonete Siqueira - Mauro Lopes
58
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
59
Sumário de características
Lindonete Siqueira - Mauro Lopes
60
Bibliografia

Artigos

Marcus Amorim Leal, Jini e Redes Espontâneas , PUCRio, Introdução à Computação Móvel – 2001.
Carlos Rodrigo Souza Santos, JINI: Uma arquitetura

UFMA, 2003.
Raul Gupta; Sumeet Talwar; Dharma P. Agrawal,

de computação distribuída baseada na plataforma Java,
Jini Home Networking: A Step toward Pervasive
Computem, IEEE, 2002.
Lindonete Siqueira - Mauro Lopes
61
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
62
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/am
cpaper.pdf
Lindonete Siqueira - Mauro Lopes
63
Download

Apresentação