630 likes | 745 Views
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. Introdução. Aumento na utilização de dispositivos móveis redução de peso, consumo e volume. Portabilidade - > mobilidade.
E N D
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
Introdução • Aumento na utilização de dispositivos móveis • redução de peso, consumo e volume. • Portabilidade - > mobilidade. Lindonete Siqueira - Mauro Lopes
Introdução • Um dispositivo móvel necessita conhecer os serviços que estão disponíveis em uma rede. Lindonete Siqueira - Mauro Lopes
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
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
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
Especificação MNCRS Lindonete Siqueira - Mauro Lopes
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
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 MobileIP. Lindonete Siqueira - Mauro Lopes
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
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
Interação entre os componentes do SLP Lindonete Siqueira - Mauro Lopes
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
Arquitetura do SLP • Localização de serviços Lindonete Siqueira - Mauro Lopes
Arquitetura do SLP • Anuncio de serviços Lindonete Siqueira - Mauro Lopes
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
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
Arquitetura do SLP • Localização de um DA. Lindonete Siqueira - Mauro Lopes
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
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
Arquitetura Lindonete Siqueira - Mauro Lopes
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
Arquitetura • Lookup Service • Discovery • Encontrar o Lookup Service • Join Lindonete Siqueira - Mauro Lopes
ArquiteturaRegistrando um Serviço - 1 Lindonete Siqueira - Mauro Lopes
ArquiteturaRegistrando um Serviço - 2 Lindonete Siqueira - Mauro Lopes
ArquiteturaRegistrando um Serviço - 3 Lindonete Siqueira - Mauro Lopes
ArquiteturaRegistrando um Serviço - 4 Lindonete Siqueira - Mauro Lopes
ArquiteturaBuscando um serviço - 1 Lindonete Siqueira - Mauro Lopes
ArquiteturaBuscando um serviço - 2 Lindonete Siqueira - Mauro Lopes
ArquiteturaBuscando um serviço - 3 Lindonete Siqueira - Mauro Lopes
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
Exemplo:Sistema Infotronic do Chrysler Cruiser2000 – EUA. Lindonete Siqueira - Mauro Lopes
Exemplo:Sistema Infotronic do Chrysler Cruiser2000 – EUA. Lindonete Siqueira - Mauro Lopes
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
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
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
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
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
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
Arquitetura dos Serviços Lindonete Siqueira - Mauro Lopes
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
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
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
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
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
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
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
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
Serviços de Aquisição Lindonete Siqueira - Mauro Lopes