Cliente/Servidor. Ambientes de Computação Distribuída. Graça Bressan. Graça Bressan/LARC - PDF
Cliente/Servidor. Ambientes de Computação Distribuída. Graça Bressan. Graça Bressan/LARC
Download "Cliente/Servidor. Ambientes de Computação Distribuída. Graça Bressan. Graça Bressan/LARC 2000 1"
Kléber Paranhos Capistrano
1 Cliente/Servidor Ambientes de Computação Distribuída Graça Bressan Graça Bressan/LARC
2 Ambientes para Cliente/Servidor Infra-estruturas básicas necessárias para implementar sistemas cliente/servidor: Sistema operacional Sistema operacional de rede (NOS-Network Operating System) Middleware geral Atividades de um Servidor Espera requisições de clientes Executa requisições de vários cliente em paralelo Administra prioridades de clientes especiais Inicia e executa tarefas em background Fica permanentemente em execução a espera de requisições de clientes. Requisitos dos Sistemas Operacionais para Servidores Preempção e prioridade de processos Mecanismos de sincronização de processos e mecanismos de comunicação entre processos locais e remotos (IPC local e remoto) Proteção entre processos Sistema de arquivos multiusuário de alto desempenho Gerenciamento de memória eficiente Extensibilidade em tempo de execução através de ligação dinâmica de módulos. Graça Bressan/LARC
3 Extensões do Sistema Operacional Serviços de comunicação: NetBios NetBEUI Named Pipes IPX/SPX TCP/IP Sockets SNA. Sistema Operacional de rede: Sistema de arquivos remotos RPC Serviço de impressão remota Infra-estrutura para manipular BLOBs (Binary Large OBjects) Ambiente de computação distribuída: Serviço de nomes (yellow pages) Sistema de diretórios globais Sistema de arquivos distribuídos Serviços de autenticação e autorização Serviço de tempo de rede Serviços de gerenciamento Serviços dependentes da aplicação: Servidor DBMS Processamento transacional Servidor Web Servidores orientados a objeto Servidores de groupware Graça Bressan/LARC
4 Sistemas Operacionais para Cliente Sem GUI Unix Modo DOS Com GUI Windows 3.x e Windows NT 3.5 Unix/Motif Com OOUI Windows 95/98 e Windows NT 4.0 OS/2 Workplace Shell Mac OS Next Step Abrangência dos SOs Graça Bressan/LARC
5 Sistema Operacional de Rede O principal objetivo do sistema operacional de rede é dar ao usuário a ilusão da transparência da rede. O sistema em rede deve se apresentar ao usuário como se fosse um sistema centralizado com todos os recursos de um super computador. Tipos de transparência: de localização do espaço de nomes de Logon de replicação de acesso aos recursos remotos ou locais de tempo de falhas de administração Serviço de Diretório Global Deve prover um esquema unificado de nomes para recursos distribuídos: computadores hosts, usuários, servidores, arquivos, processos executando em servidores, etc. Deve permitir a localização de nomes e mapear nomes em endereços. Exemplos de serviços de nomes: DNS e X.500. X.500 Global Directory Standard Padrão X/Open para sistema distribuído de diretórios. É baseado em uma base de dados distribuída e replicada. Utilizado no DCE e pela Novell para o Netware. Os nomes são indicados na forma: /C=País/O=Organização/OU=Unidade Organizacional Ex.: /C=FR/O=Louvre/OU=Art Acquisition Graça Bressan/LARC
6 Componentes do X.500 GDS XDS XOM DUA DSA DAP DSP X/Open Global Directory Service - sistema de diretórios globais X/Open Directory Service - API utilizada pelas aplicações para manipular entradas diretórios X/open Management - API utilizada pelas aplicações para definir e navegar em classes de objetos de informação nos diretórios Directory User Agent - parte cliente do XDS Directory System Agent - parte servidora do XDS Diretory Access Protocol - protocolo utilizado pelo cliente DUA dialogar com o servidor DSA Directory System Protocol - protocolo para os servidores DSAdialogarem um com o outro. X Global Directory Standard Graça Bressan/LARC
7 DNS - Domain Name System Esquema de nomes, utilizado na Internet, para localizar servidores e pessoas. Nome: identifica uma localidade Internet. Exemplos: larc.usp.edu.br mordred.cs.purdue.edu Possui uma estrutura hierárquica que permite definir o país ( br, fr,...) a categoria da empresa (gov. com, edu,...). O terceiro nível pode indicar a empresa e sub-empresa. A SRI (Stanford Registry Institute) controla a atribuição de nomes únicos às localidades Internet nos EUA. DNS- Nomes de Domínio Categoria da Organização com edu gov mil net org arpa Atribuído a Organização comercial Instituição educacional Organização governamental Grupo militar Centro de suporte de rede Organizações diferentes das acima Domínio ARPA (ainda utilizado) Graça Bressan/LARC
8 Nomes de Domínio em uma Organização Cada organização pode definir sua própria hierarquia. Exemplo: uma empresa é identificada como penpass.com.br. Entidades como computador, divisão e localização são identificadas como: computador.penpass.com.br computador.local.penpass.com.br computador.divisao.local.penpass.com.br Modelo Cliente-Servidor do DNS O DNS possui a característica de autonomia: cada organização pode atribuir seus próprios nomes de computadores sem informar uma autoridade central. Muitas organizações que possuem uma conexão Internet executam um servidor DNS. Cada servidor DNS possui ligações com outros servidores DNS. O sistema de nomes como um todo opera no modo cliente/servidor como uma grande base de dados distribuída. Quando uma aplicação precisa traduzir um endereço IP se torna cliente do sistema de nomes. Graça Bressan/LARC
9 O cliente envia uma mensagem de requisição DNS contendo o nome a ser traduzido a um servidor DNS. O servidor DNS extrai o nome da mensagem, realiza a tradução no endereço IP equivalente e retorna o resultado ao cliente. Se o servidor DNS são puder resolver o endereço, encaminha a mensagem de requisição a outro servidor DNS e assim sucessivamente até completar a resolução do endereço. DNS - Endereçamento DNS - Endereçamento O DNS utiliza endereços Internet. Cada endereço Internet consiste de 32 bits A representação de cada endereço consiste de 4 números separados por ponto na forma O endereço mais a esquerda indica a classe do site DNS e determina o número máximo de nós no site. Ex: classe C até 254, classe B até Os dois números seguintes são o endereço do site DNS. O número mais a esquerda indica o nó dentro do site. Graça Bressan/LARC
10 DNS - Localização de serviços Consiste em associar endereços aos nomes. É realizado de forma hierárquica entre os servidores das diversas localidades. Existem na API as funções gethostbyname e gethostbyaddr para permitir aos programas converter nomes e endereços. Existe diversos servidores de nomes que funcionam como raiz na busca hierárquica. O conjunto de serviços de software para DNS é chamado BIND (Berkeley Internet Name Domain). As infra-estruturas de sistemas distribuídos DCE e ONC+ suportam o DNS. DCE - Distributed Computing Environment É uma infraestrutura cliente/servidor completa, baseada em Remote Procedure Calls (RPC) definida pela OSF - X/Open. Alternativa aberta ao ONC+ que é o ambiente distribuído da SUN. Expande os serviços do sistema operacional constituindo um Sistema Operacional de Rede. É incorporado em parte a produtos de diferentes fornecedores: Implementado pela Digital, A definição de transações do Encina segue o modelo DCE, Produtos de middleware da Sybase e Oracle incorporam definições DCE. Sistema de diretório e segurança da IBM segue padrão DCE. Componentes do DCE DCE Security Service Controla autorização de acesso e privilégios de acesso. O controle de acesso é feito através do protocolo Kerberos que utiliza chaves privadas e chaves de sessão. Os privilégios de acesso são controlados através de ACL s - Access Control Lists. DCE Distributed Naming Service Utiliza os serviços de nomes do X.500 e do DNS (TCP/IP). Graça Bressan/LARC
11 DCE Remote Procedure Call Permite a chamada de procedimentos remotos DCE Distributed File System Sistema de arquivos distribuídos que permite transparência de localização. Interopera com o NFS que é o sistema de arquivos distribuídos do ONC/SUN. DCE Diskless Suporte Service DME Gerenciamento DCE Threads Service DCE Distributed Time Service DCE - Nomes Célula É a unidade administrativa básica: campus de universidade, prédio de empresa. Nomes globais de células: Aceita a notação DNS ou X.500 e deve começar com "/...". Ex.: /...cs.bsu.org /.../C=US/O=DEXCO/OU=RND Nomes em uma Célula: Começam com "/.:". São gerenciados pelo Cell Directory Service (CDS). Nomes globais e locais: Concatenamento de endereços locais e globais. Ex: /...rnd.lo.com/fs/usr/jim/memos/m1.txt. Endereçamento DCE: É mais sofisticado que o DNS suportando replicação. Utiliza Universal Unique Identifiers (UUID) que são endereços de 128 bits. uuidgen cria UUID concatenando endereço MAC com a hora. Graça Bressan/LARC
12 DCE - Localização de Serviços Directory Service: Realiza a localização de serviços. Consiste de: Cell Directory Service (CDS) Global Directory Service (GDS). Cada célula contem pelo menos um CDS. O GDS utiliza o DNS para endereços DNS ou o X.500 XDS para endereços X.500. Serviço de Diretório Global Segurança no DCE O Security Services do DCE provê autenticação, autorização, privacidade e integridade de dados para o DCE. Também permite que usuários e sistema selecionem o grau de segurança. A autenticação no login de usuários e RPCs é feita pelo esquema do Kerberos. Registry Service: mantém base replicada de usuários, grupos, contas de usuários (com passwords). Graça Bressan/LARC
13 Authentication Service: emite tickets de acesso. Privilege Service: responsável pela emissão dos PAC - Privilege Access Certificate - que são credenciais de usuários. Segurança no DCE Autenticação de usuário no DCE Graça Bressan/LARC
14 Infra-estrutura de Comunicação A infra-estrutura de comunicação inclui: Equipamentos tais como interfaces de rede, hubs e switches com os respectivos cabeamentos, além de servidores de terminais, modems, firewalls, roteadores e gateways conforme as necessidades de interconexão. Protocolos e interfaces de comunicação. Protocolos OSI IBM Microsoft Novel Xerox Internet SNA - IBM Aplicação Named Pipes DCE RPC SUN RPC Peer-to-peer Apresentação NDR XDR Sessão NetBIOS API Socket APPC/CPI-C Transporte SPX UDP/TCP LU6.2 Rede NETBEUI IPX IP APPN Enlace LLC MAC ODI/NDIS IEEE IEEE 802.5/IEEE 802.3/ISDN PU 2.1 SDLC Físico Par trançado/ cabo coaxial/fibra ótica Protocolos e Interfaces de Comunicação As aplicações Cliente/Servidor podem ser implementadas utilizando dois possíveis níveis de protocolos: Em nível de sessão (nível mais baixo): Sockets, TLI, Named Pipes, Graça Bressan/LARC
15 NetBios, CPI-C/APPC e. Em nível de aplicação (nível mais alto de abstração): RPC, MOM, ORB. Interface de Socket É uma API de comunicação entre processos que opera sobre o TCP/IP. Foi introduzido em 1981 no BSD 4.2 para comunicação entre máquinas Unix em rede e passou a ser parte do núcleo do BSD Unix. Em 1985 a Sun introduziu sockets em seu sistema e implementou o NFS e RPC através de sockets. No Windows, a API de sockets é denominada Winsock. É suportado atualmente por praticamente todos sistemas operacionais sendo o padrão para comunicação entre aplicações em redes TCP/IP. Utiliza endereços finais compostos de números de portas e endereços IP. Possui as formas: Conectada - stream TCP Não conectada - datagrama UDP. As funções da API de sockets constituem uma extensão das funções de entrada e saída do Unix. Interface TLI TLI - Transpost Level Interface - foi definida em 1986 pela AT&T. Oferece funcionalidades semelhantes às de sockets com maior independência da rede. Pode ser considerada uma forma mais limpa de sockets. Teoricamente é independente das pilhas de protocolos. Executa sobre o IPX/SPX bem como TCP/IP com poucas alterações. A versão Unix SVR4 suporta tanto sockets quanto TLI. Graça Bressan/LARC
16 A API TLI consiste de cerca de 25 chamadas. Protocolos IPX/SPX IPX/SPX foi implementado pela Xerox PARC Research Institute, fazendo parte do XNS - Xerox Network Services. Foi adotado pela Novell como protocolos de rede e transporte para o servidor Netware. IPX - Internet Packet Exchange - é um protocolo de rede tipo datagrama que não garante a entrega. SPX - Sequenced Packet Exchange - é um protocolo de serviço confiável orientado a conexão cuja API consiste de 16 chamadas. Sobre o IPX/SPX a Novel provê os protocolos NetBIOS, Named Pipes, TLI, e API IPX/SPX. Protocolo NetBEUI NetBEUI é uma pilha de protocolo utilizada em redes IBM e Microsoft. Foi desenvolvida como um protocolo de transporte para os comandos do NetBIOS. NetBEUI oferece serviços de datagrama, serviços orientados a conexão e serviço dinâmico de nomes. Faltam ao NetBEUI os serviços de rede para roteamento de datagramas. Protocolo NetBIOS É um protocolo definido em 1984 pela IBM e Sytek para a comunicação entre programas nas redes de PC. É utilizada como interface para pilhas diversas tais como NetBEUI (Microsoft), TCP/IP, XNS, Vines, OSI e IPX/SPX. É suportado em sistemas operacionais diversos tais como MS-DOS, Windows (todos), OS/2, Unix e alguns ambientes de mainframe. NetBIOS e NetBEUI são independentes um do outro. Novel utiliza o NetBIOS como interface sobre o IPX/SPX e sobre o TCP/IP. IBM e Microsoft utilizam o NetBIOS como interface sobre o NetBEUI e TCP/IP. Os comandos do NetBIOS manipulam uma estrutura denominada NCB - Netware Control Block. Graça Bressan/LARC
17 Os comandos podem ser emitidos nos modos com espera (síncronos) ou sem espera (assíncronos). Interface Named Pipes Provê a comunicação confiável entre clientes e servidores. Usando Named Pipes os processos trocam dados como se estivessem lendo de e escrevendo em um arquivo seqüencial. É uma interface que existe no Windows, OS/2 e Windows NT como parte do mecanismo de comunicação entre processos. Neste caso é indiferente se os processos estão na mesma máquina ou distribuídos na rede. No Unix é suportado pelo Lan Manager/X. Protocolos SNA APPC - Advanced Program to Program Communication consiste de cerca de 60 chamadas. CPI-C - Common Programming Interface Communications construida sobre o APPC encobre diferenças de inplementações do APPC. A interface CPI-C inclui cerca de 40 chamadas. O consórcio X/Open licenciou a interface CPI-C para utilização aos demais membros. Novel, Apple, utilizam esta interface em seus produtos. Outros fornecedores que utilizam CPI-C: Tandem Computers, Rabbit Software e DCA. RPC - Remote Procedure Call O RPC é um mecanismo para chamada de procedimentos remotos. Esconde do programador os detalhes de comunicação. O programador irá desenvolver a aplicação da forma tradicional utilizando uma hierarquia de procedimentos. Os procedimentos poderão ou não serem distribuídos pela rede. IDL - Interface Definition Language - define quais são os procedimentos remotos e quais são seus parâmetros. Implementações: no ONC/SUN e DCE da X/Open. MOM - Message-Oriented Middleware MOM é um mecanismo para que mensagens de objetivo geral possam ser trocadas em aplicações cliente/servidor utilizando filas de mensagens. Graça Bressan/LARC
18 MOM foi definida em 1993 por um consórcio de fornecedores e encobre todos os detalhes indesejáveis de comunicação entre processos. Alguns membros e respectivos produtos: IBM (MQSeries), Covia ( Communication Integrator), Peerlogic (PIPES), Horizon Strategies ( Message Express). Fim do módulo Ambientes de Computação Distribuída Graça Bressan/LARC