Técnicas de Compartilhamento de Recursos no Ambiente Metasys



Documentos relacionados
Introdução ao Active Directory AD

Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho

3 SCS: Sistema de Componentes de Software

Intranets. FERNANDO ALBUQUERQUE Departamento de Ciência da Computação Universidade de Brasília 1.INTRODUÇÃO

1

Introdução ao Modelos de Duas Camadas Cliente Servidor

Entendendo como funciona o NAT

Capítulo 8 - Aplicações em Redes

SISTEMAS DISTRIBUIDOS

10 DICAS DE TECNOLOGIA PARA AUMENTAR SUA PRODUTIVIDADE NO TRABALHO

Sistemas Distribuídos

Professor: Macêdo Firmino Disciplina: Sistemas Operacionais de Rede

Disciplina de Banco de Dados Introdução

FTIN Formação Técnica em Informática Módulo Sistema Proprietário Windows AULA 04. Prof. André Lucio

Evolução na Comunicação de

Aplicação Prática de Lua para Web

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Arquitetura de Rede de Computadores

Conceitos de relação de confiança

Sistemas Operacionais II. Prof. Gleison Batista de Sousa

Satélite. Manual de instalação e configuração. CENPECT Informática cenpect@cenpect.com.br

INTERNET HOST CONNECTOR

Orientação a Objetos

FTIN Formação Técnica em Informática Módulo de Administração de Servidores de Rede AULA 02. Prof. Gabriel Silva

SMTP, POP, IMAP, DHCP e SNMP. Professor Leonardo Larback

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido

Guia de Prática. Windows 7 Ubuntu 12.04

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource Rev: 02

Roteamento e Comutação

Bancos de dados distribuídos Prof. Tiago Eugenio de Melo

Sistemas Operacionais

Senado Federal Questões 2012

APOSTILA DE REDES DE COMPUTADORES PARTE - I I

Protocolo. O que é um protocolo? Humano: que horas são? eu tenho uma pergunta

SISTEMA GERENCIADOR DE BANCO DE DADOS

INFORMÁTICA FUNDAMENTOS DE INTERNET. Prof. Marcondes Ribeiro Lima

Firewall. Alunos: Hélio Cândido Andersson Sales

ADMINISTRAÇÃO DE SISTEMA OPERACIONAL DE REDE (AULA 4)

MÓDULO 7 Modelo OSI. 7.1 Serviços Versus Protocolos

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, MODELAGEM DE DADOS. Aula 2. Prof. Rafael Dias Ribeiro. M.Sc.

Multiplexador. Permitem que vários equipamentos compartilhem um único canal de comunicação

4 Um Exemplo de Implementação

Rotina de Discovery e Inventário

Tutorial de Active Directory Parte 3

ALTERNATIVA PARA CONEXÃO VIA INTERNET DE IP MASCARADO A IP REAL

Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS)

XDOC. Solução otimizada para armazenamento e recuperação de documentos

Introdução à Computação Móvel IP Móvel. Movimentação de Host. Movimentação de Host. Francisco José da Silva e Silva

Na Figura a seguir apresento um exemplo de uma "mini-tabela" de roteamento:

ISO/IEC 12207: Gerência de Configuração

Hoje é inegável que a sobrevivência das organizações depende de dados precisos e atualizados.

Manual do Visualizador NF e KEY BEST

Capítulo 9. Gerenciamento de rede

ADMINISTRAÇÃO DE SISTEMAS OPERACIONAIS SERVIÇOS IMPRESSÃO. Professor Carlos Muniz

Sistemas Distribuídos. Introdução

O que são DNS, SMTP e SNM

Faculdades Santa Cruz - Inove. Plano de Aula Base: Livro - Distributed Systems Professor: Jean Louis de Oliveira.

COORDENAÇÃO DE TECNOLOGIA (COTEC) ABRIL/2011

Segurança de redes com Linux. Everson Scherrer Borges Willen Borges de Deus

FileMaker Pro 14. Utilização de uma Conexão de Área de Trabalho Remota com o FileMaker Pro 14

5 Mecanismo de seleção de componentes

Guia Rápido de Instalação Ilustrado

Laboratório de Redes de Computadores e Sistemas Operacionais

Configurando o DDNS Management System

IW10. Rev.: 02. Especificações Técnicas

UM NOVO CONCEITO EM HOSPEDAGEM DE DOMÍNIO

Programação Orientada a Objetos com PHP & MySQL Cookies e Sessões. Prof. MSc. Hugo Souza

Controle de Acesso em Rede

Uc-Redes Técnico em Informática André Luiz Silva de Moraes

On Scalability of Software-Defined Networking

As principais características da abordagem de um banco de dados versus a abordagem de processamento de arquivos são as seguintes:

Administração de Redes

Versão /10. Xerox ColorQube 9301/9302/9303 Serviços de Internet

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Arquitetura dos Sistemas de Informação Distribuídos

Servidor Proxy armazenamento em cache.

BANCO DE DADOS DISTRIBUÍDOS e DATAWAREHOUSING

Organização do Curso. Instalação e Configuração. Módulo II. Pós Graduação em Projeto e Gerencia de Redes de Computadores

2 de maio de Remote Scan

Projeto de Sistemas Distribuídos. Prof. Andrêza Leite

TRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar

Sincronização do Catálogo de Endereços no MDaemon 6.x com o uso do ComAgent, LDAP, MAPI e WAB

FTP Protocolo de Transferência de Arquivos

SISTEMAS OPERACIONAIS LIVRES GERENCIAMENTO DE SERVIÇOS NO WINDOWS. Professor Carlos Muniz

Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Sistema Gerenciador de Banco de Dados

O modelo ISO/OSI (Tanenbaum,, 1.4.1)

Como Configurar Catálogos de Correio Eletrônico com o MDaemon 6.0

SUMÁRIO 1. AULA 6 ENDEREÇAMENTO IP:... 2

EAGLE TECNOLOGIA E DESIGN CRIAÇÃO DE SERVIDOR CLONE APCEF/RS

PARANÁ GOVERNO DO ESTADO

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO

Curso: Redes II (Heterogênea e Convergente)

FileMaker Pro 13. Utilização de uma Conexão de Área de Trabalho Remota com o FileMaker Pro 13

Transcrição:

Lamarque Vieira Souza Técnicas de Compartilhamento de Recursos no Ambiente Metasys Dissertação apresentada ao Curso de Pós- Graduação em Ciência da Computação da Universidade Federal de Minas Gerais, como requisito parcial para a obtenção do grau de Mestre em Ciência da Computação. Belo Horizonte Junho de 2003

ii Resumo Recursos, tais como contas de usuários, dispositivos e poder de processamento são bastante utilizados em redes de computadores. Redes locais apresentam grandes desafios ao compartilhamento de recursos, tais como meios de localizá-los, acessá-los, configurá-los, definir permissões de acesso, além de problemas de interoperabilidade entre vários sistemas operacionais e de escalabilidade. Neste trabalho estudamos e propomos soluções para esses problemas e as integramos ao Metasys. O Metasys é um ambiente composto por dois sistemas baseados em Linux, um cliente e um servidor. Nesta arquitetura o cliente está intimamente ligado ao servidor e pode ser utilizado de duas formas: como cliente inteligente ou como cliente leve, este último com a maior parte do processamento sendo realizado no servidor. O ambiente Metasys faz com que compartilhamento de recursos seja particularmente importante porque clientes precisam acessar recursos no servidor e vice-versa. A proposta de integração do ambiente Metasys exige alto grau de compartilhamento com o mínimo de intervenção por parte do usuário. Definimos e implementamos meios de acesso a recursos no Metasys e avaliamos a eficácia dos mesmos. O resultado é um sistema integrado que permite o compartilhamento de recursos de forma simples e transparente para o usuário.

iii Abstract Resources, such as user accounts, devices, and processing power are largely used in computer networks. Local networks pose great challenges to resources sharing, such as definition of means to locate them, to access them, to configure them, to define access permissions, as well as interoperability problems between the operating systems which comprises the network and scalability problems. We have studied and proposed solutions to these problems and integrated them to the Metasys. Metasys system is an environment which comprises two systems based on Linux, a client and a server. In this architecture the client has very close connection to the server and can be used in two ways: as a smart client and as a thin client. In the latter most of the the processing is done on the server. The Metasys environment makes resource sharing particularly important because clients need to access resources on the server and vice-versa. The proposal of integration of the Metasys evironment demands high degree of resource sharing with minimum intervention from the user. We have defined and implemented means of accessing information and evaluated their efficiency. As a result we have obtained an integrated system that allows resource sharing by the user in a simple and transparent way.

A Deus e a meus pais... iv

v Agradecimentos Agradeço de maneira muito especial a meus pais, Maria do Carmo e Marcílio, que desde o início me incentivaram em cada decisão que tomei e que me apoiaram em todos os momentos da minha vida, sobretudo nos momentos mais difíceis. A Deus, que me iluminou nos momentos difíceis. Agradeço ao meu irmão, Leandro Márcio, e a todos que acreditaram em mim, em especial ao Guilherme Rocha pelo incentivo e à Daniela Alvim por me convencer a continuar a tentar o mestrado. Agradeço também a três pessoas que conheci durante o período em que estava no mestrado: Kaísa, Rafaela e Fabiane. Adorei ter conhecido e convivido com vocês durante esse período de dificuldades que é trabalhar, estudar e ter pouco tempo para quem gostamos. Agradeço também pela paciência e pelo carinho que tiveram comigo, vocês são muito importantes para mim e sempre vão estar no meu coração. Muito obrigado por tudo. Ao meu orientador, Dr. Sérgio Vale Aguiar Campos, aos professores que de alguma forma participaram desse processo. Aos também membros da banca, Dr. Dorgival Olavo Guedes Neto e Dr. Wagner Meira Júnior, pelas várias experiências em conjunto, pela orientação, pelas oportunidades, pela motivação em sempre tentar superar suas expectativas. Aos funcionários do DCC, que estavam sempre prontos para ajudar. Aos meus amigos da universidade. Ao pessoal de todos os laboratórios do DCC onde já trabalhei ou com os quais convivi durante estes últimos anos: Vídeo sob Demanda (VoD), Laboratório de Universalização de Acesso à Internet (LUAR), Metasys, e-speed, redes ATM e Laboratório de Sistemas de Informação em Ambientes Móveis (SIAM). Ao pessoal da república onde moro: André, Gurvan, Hervaldo, Paulo e Pavel. Aos meus colegas de mestrado e de trabalho, Bruno, Fabrício Konzen, Guilherme Rocha, João Torres, Alexandre Laredo e Hélio, agradeço muito pela oportunidade da convivência. Aos que não apareceram aqui, mas que sabem estar nos meus agradecimentos. Por fim, ao Comitê Gestor da Internet (CGI), Departamento de Ciência da Computação da UFMG, ao pessoal da Akwan Information Technologies e da International Syst, que me acolheram durante o tempo em que trabalhei nesta dissertação.

vi Sumário Lista de Tabelas Lista de Figuras viii ix 1 Introdução 1 1.1 1.2 Metodologia................................... Trabalhos Relacionados............................. 5 6 1.2.1 LDAP.................................. 6 1.2.2 1.2.3 Sistema para Descoberta de Serviços................. Directory Services for Linux...................... 6 10 1.3 Organização da Dissertação.......................... 11 2 Metasys 12 2.1 2.2 O Metasys.................................... Inicialização Remota.............................. 12 13 2.3 Modos de Processamento............................ 13 2.4 Interface de Configuração Web......................... 2.4.1 Eventos................................. 15 16 2.4.2 Modelos de Arquivos de Configuração................. 17 3 Diretórios 18 3.1 3.2 Serviço de Diretório............................... Diretórios Globais................................ 18 20 3.3 LDAP...................................... 20 3.4 Diretivas de Utilização do LDAP....................... 24 4 Compartilhamento de Recursos 4.1 O que Compartilhar.............................. 28 28 4.2 Gerenciamento Centralizado de Usuários................... 29 4.3 Compartilhamento de Desktop......................... 31 4.4 Compartilhamento de Áudio.......................... 36 4.5 Compartilhamento de Dispositivos de Armazenamento........... 38 4.6 4.5.1 LDAPfs................................. Compartilhamento de Impressoras....................... 39 42 4.7 Organização da DIT.............................. 44

vii 5 Testes Preliminares e Validação da Implementação 5.1 Testes...................................... 47 47 5.1.1 Gerenciamento Centralizado de Usuários............... 47 5.1.2 Compartilhamento de Desktop..................... 48 5.1.3 Compartilhamento de Áudio...................... 49 5.1.4 Compartilhamento de Dispositivos de Armazenamento....... 50 5.1.5 Compartilhamento de Impressoras................... 53 5.2 Considerações Finais.............................. 53 6 Conclusão e Trabalhos Futuros 55 6.1 Conclusão.................................... 55 6.2 Trabalhos Futuros................................ 56 Referências Bibliográficas 58

viii Lista de Tabelas 3.1 Opções de indexação de atributos de pesquisa no LDAP........... 26 5.1 Nomes dos diretórios utilizados para acessar dispositivos no Metasys.... 50

ix Lista de Figuras 1.1 Exemplo de rede heterogênea.......................... 2 1.2 Arquitetura do SLP............................... 8 2.1 2.2 Arquitetura dos clientes Metasys........................ Interface de configuração Web do servidor Metasys.............. 14 16 2.3 Exemplo de um evento gerado pela interface de configuração web...... 17 3.1 Serviço de diretório centralizado........................ 19 3.2 Árvore de diretório LDAP............................ 22 3.3 Dados de diretório distribuídos em três servidores............... 23 3.4 Serviço de diretório replicado com dados distribuídos em três servidores.. 23 4.1 Processo de início e término de sessões no Linux................ 34 4.2 4.3 Processo de início e término de sessões VNC no cliente Metasys....... Processo de início e término de sessões XDMCP no cliente Metasys..... 35 35 4.4 4.5 Caminho percorrido pelo áudio no ambiente Metasys............. Caminho da configuração no LDAPfs...................... 37 40 4.6 Acesso ao LDAPfs................................ 41 4.7 4.8 Exemplo de estrutura de diretórios do LDAPfs................ Resumo da arquitetura do Metasys....................... 42 44 4.9 DIT utilizada no Metasys............................ 45 5.1 Konqueror utilizando LDAPfs.......................... 52

1 Capítulo 1 Introdução É notório o crescimento contínuo no número de redes de computadores durante a última década. Atualmente toda organização possui uma rede de computadores, muitas vezes conectada à Internet, a rede mundial de computadores. Um organização pode ser pequena como uma pequena empresa ou pode ser grande como uma multi-nacional com várias redes de computadores geograficamente dispersas e interligadas por algum meio de comunicação [15, 48, 17]. Em todos esses casos é necessário compartilhar os recursos disponíveis na rede para diminuir custos de aquisição e manutenção de equipamentos e de gerenciamento da rede. Em um ambiente de rede típico existem um ou mais computadores servidores e vários computadores clientes, como mostrado na figura 1.1. Gerenciar um servidor que provê diversos serviços é uma tarefa complexa, seja pelo desafio de manter os serviços disponíveis a maior parte do tempo, seja pelo desafio de configurar esses serviços de acordo com a organização da rede, seja pelo desafio de evitar redundância de dados ou mantê-los sincronizados quando não for possível evitar a redundância. O mercado de servidores de rede têm evoluído bastante e o uso do sistema operacional Linux neste contexto constitui grande vantagem, pois este pode ser adquirido gratuitamente e seu código fonte está disponível na Internet, assim como o código fonte da maioria dos programas que rodam nele. Contudo, configurar um servidor Linux ainda é uma tarefa complexa que exige alto grau de conhecimento sobre o funcionamento de seus programas. O Metasys visa resolver este e outros problemas através de um sistema de fácil utilização e com o máximo possível de integração entre seus componentes. A proposta de integração exige alto grau de compartilhamento de recursos com o mínimo possível de intervenção do

2 servidor switch Linux Windows XP Windows 98 Machintosh Figura 1.1: Exemplo de rede heterogênea. usuário. Recursos podem ser representados por um componente físico (disco rígido, poder de processamento da CPU, impressora) ou uma entidade lógica (contas de usuários, processos, serviços em geral). Além de computadores encontramos outros tipos de dispositivos computacionais em uma rede, como Personal Digital Assistents (PDAs), impressoras com processadores, etc. Compartilhamento também é utilizado como forma de minimizar custos de gerenciamento. Este é o caso típico de contas de usuários, as quais todos os dispositivos computacionais da rede utilizam, independente de qual hardware ou sistema operacional estejam utilizando. Em um ambiente heterogêneo a interoperabilidade entre diversos sistemas operacionais é de crucial importância para um sistema como o Metasys. O Metasys é composto por dois ambientes baseados em Linux. O primeiro é utilizado como servidor de rede local e o outro como cliente, os dois executam em computadores distintos. Apesar de serem executados independentemente, servidor e clientes Metasys estão intimamente interligados como veremos mais adiante. O servidor Metasys provê serviços essenciais (autenticação de usuários, compartilhamento de disco e impressoras, páginas web, etc) tanto para computadores excutando o sistema operacional Linux quanto o sistema operacional Windows. O cliente Metasys pode funcionar de duas formas: cliente leve: neste modo a maior parte do processamento dos programas é feito no servidor. O cliente abre uma sessão remota no servidor e as aplicações, que executam no servidor, podem acessar os dispositivos do cliente (disquete, cdrom, placa de som) de forma transparente para o usuário.

3 cliente inteligente: neste modo o processamento é feito no próprio cliente, como ocorre na maioria dos computadores atuais. Em ambos os modos de processamento é utilizada inicialização remota e não há armazenamento de dados no cliente, sendo os mesmos armazenados no servidor. Desta forma compartilhamento é importante para integrar cliente e servidor na arquitetura do Metasys. Redes locais possuem grandes desafios na área de compartilhamento de recursos. Como por exemplo: localizar e acessar recursos: por causa do crescente número de computadores que formam uma rede, localizar um recurso de forma simples se torna uma tarefa nãotrivial. Uma forma automática de obter a localização e quais os meios para acessar os recursos minimiza em muito o custo de gerenciamento da rede. Sistemas como o SLP e JINI são mecanismos para implementar tais funcionalidades. Esses dois sistemas serão descritos mais adiante. configuração: geralmente as configurações sobre os recursos são feitas de forma estática. Se houver alguma mudança de localização dos recursos será necessário configurar todos os computadores da rede para refletir essa mudança. permissões de acesso: permissões de acesso são necessárias em todo ambiente de rede para evitar acessos indevidos. falhas de comunicação: as conseqüências deste tipo de falha podem afetar a rede inteira caso um servidor importante esteja fora do ar. Isso exige o uso de mecanismos de tolerância a falhas, como por exemplo replicação de dados em vários servidores. interoperabilidade: devemos utilizar protocolos padronizados para permitir interoperabilidade entre os diversos sistemas operacionais utilizados na rede. escalabilidade: soluções para os problemas anteriores utilizam alguma forma de banco de dados. Para que este funcione satisfatoriamente devemos utilizar mecanismos que permitam que o sistema escale com o número de computadores na rede. O objetivo deste trabalho é propor soluções para estes problemas através do uso de compartilhamento de recursos, gerenciamento centralizado de usuários e do uso de padrões que enfoquem escalabilidade e interoperabilidade entre os sistemas operacionais utilizados em redes locais.

4 Alguns dos problemas citados podem ser resolvidos através do gerenciamento centralizado de usuários. Gerenciamento centralizado não significa necessariamente centralizá-lo em um único computador, mas sim utilizar um único método de acesso padronizado. Tal método pode ser implementado através de um sistema distribuído, por exemplo através de um serviço de diretório como o Lightweight Directory Access Protocol (LDAP) [44]. Um diretório pode ser entendido como um banco de dados otimizado para pesquisa [35, 21, 10]. Apresentaremos mais detalhes sobre o que são diretórios, suas principais características e aplicações no capítulo 3. Diversas funcionalidades encontradas no Metasys são frutos do trabalho desenvolvido e discutido nesta dissertação. Como principais resultados podemos citar: compartilhamento de contas de usuários através do gerenciamento centralizado de usuários. O sistema implementado pode ser utilizado não só por clientes Metasys para autenticar usuários mas também por outros sistemas operacionais. compartilhamento de desktop, o que permite o uso do cliente Metasys como um cliente leve. Este compartilhamento também pode ser utilizado para acessar um desktop Metasys a partir de outros sistemas operacionais. compartilhamento de dispositivos de áudio. Quando o cliente Metasys é utilizando como cliente leve os processos do usuários são executados no servidor. Através do nosso sistema esses processos podem acessar a placa de som que esteja no cliente de forma transparente para o usuário e desta forma permitir o uso do cliente leve como uma estação multimídia. compartilhamento de dispositivos de armazenamento. criamos o LDAPfs como forma de acessos aos dispositivos. O LDAPfs é um pseudo sistema de arquivos e será explicado em detalhes no capítulo 4. compartilhamento de impressoras utilizando LDAP como protocolo de comunicação. Alteramos o código fonte de um servidor de impressão, o CUPS, para permitir que ele compartilhasse impressoras utilizando o LDAP. As alterações no código fonte do CUPS são outra contribuição deste trabalho. O compartilhamento pode ocorrer nos dois sentidos, do servidor Metasys para o cliente Metasys ou vice-versa, sendo que alguns sentidos são mais utilizados do que outros. Por

5 exemplo, no compartilhamento de desktop o recurso poder de processamento está no servidor e é compartilhado com o cliente. No compartilhamento de áudio o recurso placa de som está no cliente e é compartilhado com os processos que executam no servidor. 1.1 Metodologia Utilizamos um serviço de diretório para armazenar dados sobre os recursos a serem compartilhados. Estudamos como funciona um serviço de diretório e como configurá-lo para que pudéssemos utilizá-lo. O uso de um serviço de diretório que pudesse ser acessado por vários sistemas operacionais foi de vital importância para nosso trabalho, pois o servidor Metasys pode ser acessado por computadores executando sistemas operacionais distintos. Definimos a representação dos dados que iríamos armazenar no diretório e também como esses dados são organizadas seguindo as recomendações da RFC (Request For Comments) Naming and Structuring Guidelines for X.500 Directory Pilots [32]. Para implementar o compartilhamento de impressoras alteramos o código fonte de um servidor de impressão disponível na WEB, o Common Unix Printing System (CUPS), para que este pudesse armazenar dados sobre impressoras no diretório. Criamos uma representação de impressoras para que o serviço de diretório soubesse como manipular os dados sobre elas. Tal representação segue padrões rígidos para evitar seu uso de forma errônea, estudamos como utilizar tais padrões e definimos nossa representação de impressoras utilizando como base as informações contidas na RFC LDAP Schema for Printer Services [33]. Após definirmos como armazenar os dados criamos diversos programas para permitir o acesso a cada tipo de compartilhamento de forma transparente para o usuário. O método de acesso escolhido para cada tipo de compartilhamento seguiu o critério de maior interoperabilidade entre sistemas operacionais. Para dispositivos de armazenamento fizemos com que seu acesso fosse feito através da estrutura de diretórios do Linux, que é a forma usual de se acessá-los neste sistema operacional. Contudo, nosso sistema dispensa o usuário de executar diversos comandos para configurar e acessar o dispositivo, inclusive dispositivos do tipo hot pluggable (USB, PCMCIA, firewire, etc). Afim de povoar o diretório desenvolvemos programas para detectar o hardware nos clientes Metasys. Os dados obtidos por esses programas são armazenadas no diretório e podem ser consultados por todos os computadores da rede, inclusive os que não são clientes Metasys. Para acessar os dados os programas que implementam os compartilhamentos só

6 precisam ter suporte ao LDAP. O escolha do LDAP como diretório levou em consideração sua alta interoperabilidade, o fato de estar sendo largamente utilizado como padrão de acesso a dados do tipo atributo-valor em diversas áreas [17, 27, 9, 24], além de ser o padrão escolhido pela Internet Engineering Task Force (IETF) para modelar e pesquisar informações de diretórios. Dessa forma conseguimos criar um sistema integrado que permite o acesso a recursos de forma transparente para o usuário. Os clientes Metasys podem ser utilizados como clientes leves (processamento no servidor) ou clientes inteligentes (processamento no cliente) sem que o usuário perceba diferença, em termos de funcionalidades, em cada modo de funcionamento. Isso é importante em um sistema que visa o máximo possível de simplicidade para o usuário. Utilizando métodos de acesso padronizados também obtivemos alto grau de interoperabilidade entre o Metasys e outros sistemas operacionais. 1.2 Trabalhos Relacionados Diversos trabalhos discutem métodos para localização de recursos em redes locais, alguns deles serão apresentados a seguir. 1.2.1 LDAP O Lightweight Directory Access Protocol (LDAP) [44] é um protocolo de acesso a dados do tipo atributo-valor altamente otimizado para operações de leitura em grande volume. Diferente dos servidores banco de dados relacionais, o LDAP não implementa operações de transação. Ele provê um sistema de nomeação global e hierárquico semelhante ao utilizado pelo Domain Name Service (DNS) [23]. Foi projetado para armazenar milhões de entradas com pequeno investimento de hardware e software. Existem diversas implementações deste protocolo [24], sendo que a mais utilizada no Linux é o OpenLDAP [35]. Falaremos mais sobre serviço de diretório e de LDAP no capítulo 3. 1.2.2 Sistema para Descoberta de Serviços Um sistema para descoberta de serviços é utilizando por clientes (uma pessoa ou um programa) para descobrir serviços disponíveis na rede de forma automática.

7 Geralmente esses sistemas são constituídos por dois ou três componentes. Dois componentes sempre presentes são o agente de serviço e o agente de usuário. O agente de serviço é responsável por anunciar um ou mais serviços disponíveis através dele. O agente de usuário é responsável por pesquisar os serviços disponíveis na rede. Em alguns casos pode existir um terceiro componente, o agente de diretório. Este é responsável por agrupar os serviços disponíveis na rede em um repositório para que possam ser mais facilmente localizados. Sem os agentes de diretórios os agentes de usuários precisariam contactar todos os agentes de serviço da rede para descobrir os serviços disponíveis [11]. Alguns serviços de descoberta de serviços são: SLP O Service Location Protocol (SLP) visa criar um padrão independente e escalável para a Internet [6]. Ele utiliza repositórios centrais gerenciados pelos agentes de diretório como forma de implementar escalabilidade [37] e também possui uma API para desenvolvimento de aplicações. Ele também visa automatizar os seguintes procedimentos: casar as necessidades dos agentes de usuários com os serviços oferecidos pelos agentes de serviço. anunciar serviços providos pelos agentes de serviço. organizar serviços em diretórios gerenciados pelos agentes de diretório. obter informações sobre serviços para os agentes de usuário sem a necessidade de configuração prévia. prover meios para que os serviços informem suas funcionalidades e seus requisitos de configuração às aplicações clientes. Existem três componentes na arquitetura do SLP: 1. Agente de Usuário (UA em inglês): realiza a descoberta do serviço para o usuário, que pode ser uma pessoa ou uma aplicação. 2. Agente de Serviço (SA em inglês): anuncia a localização e as características dos serviços, além de registrar essas informações nos agentes de diretórios. 3. Agente de Diretório (DA em inglês): armazena os dados enviados pelos agentes de serviço em seu repositório e responde às requisições dos agentes de usuários.

8 O SLP pode funcionar sem o uso dos DAs, que são utilizados para permitir a descoberta de serviços em grandes redes sem gerar muito tráfego. Aplicações que não possuem suporte direto ao SLP podem ser representadas por proxies, que realizam as mesmas funções que um agente usuário ou agente de serviço. O SLP dinamicamente mantém os atributos dos serviços para que os agentes de usuários possam obter dados mais atualizados sobre eles. Isso permite inserir e retirar serviços dinamicamente do seu banco de dados. Cada serviço possui um tempo de vida, após o qual ele é retirado do banco de dados a menos que o seu tempo de vida seja atualizado periodicamente. Os serviços podem ser localizados automaticamente pelas aplicações ou listados ao usuário através de um navegador. Pode-se limitar a pesquisa por serviços através do que o SLP chama de escopo. Desta forma podemos, por exemplo, fazer com que um usuário de uma empresa pesquise por uma impressora que esteja no mesmo andar em que ele trabalha ao invés de todas as impressoras do prédio. A pesquisa é feita através de uma consulta em forma de cadeia de caracteres contendo os atributos do serviço desejado e o escopo da pesquisa. A resposta é retornada na forma de uma Uniform Resource Locator (URL) contendo o endereço IP do agente de serviço e quaisquer outras informações para se acessar o serviço. Por exemplo, para impressoras também é retornado o nome da fila de impressão. Para o exemplo de impressora uma possível URL retornada é service:printer.lpr: //192.168.100.1/nome_fila_impressao. Aplicação Subrede 11.0.0.x Serviço Serviço Agente de Usuário (UA) Agente de Serviço (SA) Agente de Serviço (SA) Agente de Diretório (DA) Intranet Agente de Serviço (SA)... Agente de Serviço (SA) Figura 1.2: Arquitetura do SLP.

9 A figura 1.2 mostra a arquitetura do protocolo SLP. Na figura vários agentes estão se comunicando via um diretório central DA. Uma aplicação e um serviço na mesma subrede 11.0.0.x podem se comunicar diretamente sem a necessidade de um DA. A figura também ilustra que os UAs podem contactar o DA para acessar os serviços em qualquer lugar dentro da intranet. Os SAs de outras redes podem registrar seus serviços no DA e os UAs escolhem os serviços que eles precisam realizando pesquisas em uma linguagem de pesquisa booleana simples. O DA pode ser um diretório do tipo LDAP, ou seja, os dois podem trabalhar em conjunto pra implementar um serviço de descoberta de recursos. Um das desvantagens do SLP reside no fato de ele ainda não ser largamente adotado como o LDAP [16]. Além disso, a maior parte do que o SLP é capaz de fazer pode ser feito utilizando-se LDAP. Para demonstrar isso implementamos um serviço para disponibilizar impressoras em um servidor de impressão de rede (CUPS) que já suportava o protocolo SLP. Outras aplicações importantes, como gerenciamento centralizado de usuários e livro de endereços eletrônicos (e-mails) centralizado, não podem ser feitas de forma simples utilizando-se SLP. Com o LDAP é possível fazer isso e ainda manter interoperabilidade entre vários sistemas operacionais distintos. A grande aceitação do LDAP é muito importante para um sistema como o Metasys, que visa ser um servidor de rede para diversos sistemas operacionais. JINI Outro serviço de descoberta de serviços é o JINI 1, o qual é uma arquitetura criada pela Sun Microsystems que permite interconectar dispositivos em uma rede de forma transparente para fornecer serviços que não estariam disponíveis com os dispositivos separados [41, 3]. Essa tecnologia permite aos usuários conectar qualquer número de dispositivos digitais e acessar seus serviços fornecidos por uma comunidade dinâmica tais como Personal Digital Assistants (PDAs), televisores, câmeras digitais, fax, telefones celulares e leitores de smart cards. A arquitetura proposta é baseada em serviços que podem migrar de um dispositivo para outro. Serviços podem ser procurados a partir de suas características e a interação entre eles é feita de forma transparente para o usuário. As características básicas do JINI são semelhantes às do SLP. Os objetos que provém serviços podem ser escritos em qualquer linguagem de programação. No entanto, a interface 1 JINI não tem nenhum significado, é simplesmente uma outra forma de pronunciar genie em inglês.

10 deve ser escrita em Java [42]. No SLP não existe essa exigência. Tanto o SLP quanto o JINI possuem em sua arquitetura o uso de um ou mais diretórios para armazenar informações sobre serviços. Uma das características importantes dos sistemas de descoberta de serviços como o JINI e SLP é a capacidade de detectar e se recuperarem de uma falha, principalmente em ambientes altamente voláteis, como ambientes móveis [11, 27]. O JINI assim como o SLP não são largamente adotados como o LDAP. No contexto do Metasys serviços podem ser localizados utilizando-se LDAP sem a necessidade de colocar uma máquina virtual Java executando em todos os computadores da rede. Por esse motivo decidimos utilizar somente o LDAP em nosso sistema de compartilhamento de recursos. 1.2.3 Directory Services for Linux Em [24] são definidas as exigências a serem satisfeitas por um gerenciamento centralizado de usuários. Ele também mostra como implementar tal sistema no Linux e como fazer com que computadores executando o sistema operacional Windows autentiquem usuários diretamente no OpenLDAP. Diversos problemas relacionados com gerenciamento centralizado são apresentados e discutidos. Tais problemas incluem autenticação de senhas, criptografia de senhas e dados, alteração de senhas e single sign-on. Este último permite ao usuário se autenticar somente uma vez no sistema e partir daí poder acessar recursos utilizando uma credencial temporária sem que seja necessário apresentar sua senha a cada acesso. Após o tempo de validade da credencial, geralmente várias horas ou dias, o usuário deverá apresentar novamente sua senha. Este trabalho também compara várias implementações de servidores LDAP, dentre elas o OpenLDAP, em termos de características, incompatibilidades com o padrão LDAP e desempenho em operações simples. Também são mostrados os resultados do estudo de caso feito com um servidor de correio eletrônico atendendo 19.000 usuários e utilizando diretório (LDAP) para autenticação de usuários e roteamento de e-mails. Baseado nas comparações de desempenho e interoperabilidade feitas neste trabalho, decidimos utilizar o OpenLDAP como servidor LDAP do Metasys. Levamos em consideração também o fato de o OpenLDAP ser um programa de código fonte aberto. O trabalho apresentado em [24] não trata de compartilhamento de recursos de forma geral, se atendo somente ao uso de serviço de diretórios em geral e no gerenciamento centralizado de usuários. Algumas informações deste trabalho foram úteis para implementarmos

11 o sistema de gerenciamento de usuários utilizado no Metasys. 1.3 Organização da Dissertação Esta dissertação encontra-se organizada da seguinte forma: No Capítulo 2 descrevemos o ambiente Metasys. No Capítulo 3 descrevemos o que é um diretório, suas características e como eles foram utilizados neste trabalho. No Capítulo 4 apresentamos os métodos de compartilhamento de recursos que implementamos no Metasys e suas vantagens e desvantagens. Os testes realizados e os resultados obtidos são apresentados no capítulo 5. Por fim, no Capítulo 6 apresenta as conclusões e os possíveis trabalhos futuros.