Arquitetura de sistemas distribuídos 4. Serviços em Sistemas Distribuídos 4.1 Sistema de arquivos distribuídos 4.2 Serviços WEB 4.3 Computação Ubíqua 4.4 Computação nas nuvens 1
Arquivos CONCEITO Arquivo: objeto que existe após criação, é imune a falhas temporárias e é persistente até que seja destruído. Propósito de arquivos: Armazenamento permanente de informações; Compartilhamento de informações 2
Sistemas de arquivos CONCEITO Os sistemas de arquivos estruturam a informação guardada em uma unidade de armazenamento, podendo ser representada de forma textual ou graficamente utilizando um gerenciador de arquivos. A maioria dos SO's possuem seu próprio sistema de arquivos. 3
Sistemas de arquivos CARACTERÍSTICAS Segurança ou permissões; Listas de controle de acesso (ACL's); Mecanismo para evitar a fragmentação; Suporte a arquivos dispersos; Integridade do sistema de arquivos (journaling); Suporte para quota de discos; Suporte para crescimento do sistema de arquivos. 4
Sistemas de arquivos distribuídos CARACTERÍSTICAS Transparência de acesso e localização; Desempenho; Escalabilidade; Controle de concorrência; Tolerância a falhas e segurança; Replicação de arquivos. 5
Sistemas de arquivos distribuídos SERVIDOR DE ARQUIVOS x SERVIÇO DE ARQUIVOS Serviço de arquivos (file service) Especificação do sistema de arquivos (interface) Visão do cliente Servidor de arquivos (file server) Processos que executam o file service Implementação 6
Sistemas de arquivos distribuídos MODELOS ARQUITETURAIS Arquitetura centralizada; Arquitetura descentralizada; Arquitetura híbrida. 7
Sistemas de arquivos distribuídos ARQUITETURA CLIENTE-SERVIDOR Arquitetura cliente-servidor (COULOURIS; DOLLIMORE; KINDBERG, 2005) 8
Sistemas de arquivos distribuídos ARQUITETURA PEER-TO-PEER Arquitetura peer-to-peer (COULOURIS; DOLLIMORE; KINDBERG, 2005) 9
Sistemas de arquivos distribuídos ARQUITETURA HÍBRIDA Funcionamento da estrutura torrent (TANEMBAUM; STEEN, 2007) 10
Sistemas de arquivos distribuídos ESTUDO DE CASO: NETWORK FILE SYSTEM (NFS) Aborda todas as características de SAD vistas anteriormente, principalmente a de transparência e acesso aos arquivos. Inicialmente projetado para ambientes UNIX, com a premissa de compartilhar arquivos de modo transparente das estações Sun Microsystem; Foi o primeiro SAD projetado como um produto final; Utiliza uma interface de Remote Procedure Call (RPC). 11
Sistemas de arquivos distribuídos NETWORK FILE SYSTEM (NFS): ARQUITETURA Na interface cliente, a transparência do NFS ocorre através de um sistema de arquivos virtual (Virtual File System - VFS). A interface cliente promove um meio conveniente para a aplicação do usuário, fornecendo um serviço de arquivo por acesso remoto; Utiliza cache no cliente e no servidor para armazenar blocos de arquivos, diretórios e atributos de arquivos a) Modelo acesso remoto b) Modelo carga atualização (TANENBAUM; STEEN, 2007) 12
Sistemas de arquivos distribuídos NETWORK FILE SYSTEM (NFS): ARQUITETURA No lado do servidor, o NFS foi projetado inicialmente para ser sem estado, ou seja, o servidor não mantém os arquivos abertos pelos clientes. Para o cliente, a ausência de estados significa não conhecer a real situação do conjunto distribuído. Posteriormente, o NFS foi restruturado para fornecer suporte às operações com estados em conjunto com o cliente, permitindo que ambos saibam sobre as operações realizadas em determinados arquivos. 13
Sistemas de arquivos distribuídos NETWORK FILE SYSTEM (NFS): INTERFACES RPC Apoia a segurança com a autenticação de usuário e controle de acesso. open(); close(); lookup(); create(); remove(); getattr(); setattr(); read(); write(); rename(); link(); symlink(); readlink(); mkdir(); rmdir(); readdir(); statfs(); 14
Sistemas de arquivos distribuídos ESTUDO DE CASO: ANDREW FILE SYSTEM (AFS) O AFS difere do NFS em seu projeto de implementação, atribuindo principalmente forte escalabilidade. O AFS é implmentado sobre dois processos, Venus e Vice que definem módulos de cliente-servidor. Utiliza replicação de arquivos compartilhados administrados por clientes de forma diferente. 15
Sistemas de arquivos distribuídos ESTUDO DE CASO: ANDREW FILE SYSTEM (AFS) Arquitetura AFS ( COULOURIS; DOLLIMORE; KINDBERG, 2005) 16
Sistemas de arquivos distribuídos OUTROS ESTUDOS DE CASO Google File System; Dropbox;... 17
Exercício 18
Exercício CASO DE ESTUDO: DROPBOX Dropbox é um sistema de ficheiros distribuídos, bastante popular, alojado na cloud - em particular nos servidores da Amazon (Amazon Web Services - AWS), com o serviço S3 - Simple Storage Service combinado com o EC2 - Elastic Cloud Computer. (https://aws.amazon.com/pt/) (https:// aws.amazon.com/pt/documentation/s3/) Dropbox utiliza ainda o SQS - Simple Queue Service e o Route 53, o servidor de DNS altamente escalável, ambas as soluções também da Amazon. (https://aws.amazon.com/pt/sqs/) (https://aws.amazon.com/pt/route53/) Até onde se sabe, o Dropbox conta ainda com dois datacenters gigantes localizados em lados opostos do globo. Estes datacenters contêm os metadados de cada ficheiro existente no sistema. 19
Aula de hoje 4. Serviços em Sistemas Distribuídos 4.1 Sistema de arquivos distribuídos 4.2 Serviços WEB 4.3 Computação Ubíqua 4.4 Computação nas nuvens 20
Lembrete AV2: 06/12/2016 às 18:50 - Conteúdo: Todas as unidades (1, 2, 3, 4). AV3: 20/12/2016 às 18:50 - Conteúdo: Todas as unidades (1, 2, 3, 4). 21
Serviços WEB INTRODUÇÃO Serviços HTTP; Métodos GET/POST Fornecimento de serviços web URIs, URLs e URN; APIs; SOAP/ REST; Mashups. 22
Serviços WEB INTRODUÇÃO 23
Serviços WEB CONCEITO Um serviço Web (Web service) fornece uma interface de serviço que permite aos clientes interagirem com servidores de uma maneira mais geral do que acontece com os navegadores Web. [Coulouris; Dollimore; Kindberg; Blair, 2012] 24
Serviços WEB REPRESENTAÇÃO DE DADOS (XML) XML (extensible Markup Language) é uma recomendação da W3C para gerar linguagens de marcação para necessidades especiais. Separa conteúdo da formatação; Simplicidade e legibilidade; Possibilidade de criação de tags sem limitação; Interligação com diversos bancos de dados; Concentração na estrutura da organização. 25
Serviços WEB REPRESENTAÇÃO DE DADOS (XML) 26
Serviços WEB SEGURANÇA EM XML TSL/SSL; Uso de chaves de acesso; Uso de chaves de aplicação. Documentos com assinatura digital. 27
Serviços WEB PROTOCOLO SOAP O protocolo SOAP (Simple Object Access Protocol) é projetado para permitir tanto interação clienteservidor como assíncrona pela Internet. O protocolo SOAP é uma extensão do XML-RPC da Userland. O protocolo SOAP utiliza elementos da linguagem XML (envelope, cabeçalho e corpo) nas mensagens. 28
Serviços WEB MENSAGEM SOAP EM UM ENVELOPE 29
Serviços WEB MENSAGEM SOAP EM UM ENVELOPE 30
Serviços WEB ARQUITETURA ORIENTADA A SERVIÇOS (SOA - Service-Oriented Architecture) A arquitetura orientada a serviços é um conjunto de princípios de projetos por meio do qual os sistemas distribuídos são desenvolvidos. Usa um conjunto de serviços pouco acoplados que podem ser descobertos dinamicamente. 31
Serviços WEB DOCUMENTAÇÃO - WSDL A WSDL (Web Services Description Language) é comumente usada para descrições de serviço. Define esquema XML para representar os componentes de uma descrição de serviço. 32
Aplicação 33
Aula de hoje 4. Serviços em Sistemas Distribuídos 4.1 Sistema de arquivos distribuídos 4.2 Serviços WEB 4.3 Computação Ubíqua 4.4 Computação nas nuvens 34
Computação Ubíqua Introdução Associação Interoperabilidade Percepção e reconhecimento de contexto Adaptabilidade 35
Computação Pervasiva CONCEITO Os dispositivos computacionais estão agregados ao ambiente de forma imperceptível para o usuário. Dessa forma, se induz que o sistema computacional tem a capacidade de obter informações e dados relativos ao ambiente no qual ele está inserido. 36
Computação Ubíqua INTRODUÇÃO A computação ubíqua surgiu devido à miniaturização dos dispositivos com conectividade sem fio. Mark Weizer utilizou pela primeira vez o termo computação ubíqua em 1988. 37
Computação Ubíqua ASSOCIAÇÃO Inicialização da rede; O problema da associação e o princípio do limite; Serviços de descoberta; - Ex.: Espaço, serviço, linguagem Associação física. 38
Computação Ubíqua INTEROPERABILIDADE Maneira pelas quais dois ou mais componentes em um sistema volátil se associam. Os componentes se associam com base em certos atributos, ou dados, que um ou ambos possuem. - Programação orientada a dados. 39
Computação Ubíqua PERCEPÇÃO E RECONHECIMENTO DE CONTEXTO Sensores; Arquiteturas de sensoriamento; Percepção da localização. 40
Computação Ubíqua ADAPTABILIDADE Reutilização do software entre contextos Adaptação de conteúdo com reconhecimento de contexto; Adaptação a sistemas de recursos variáveis. - Tamanho de tela, recursos de hardware, sensores 41
42
Computação nas nuvens O usuário pode acessar as aplicações independente do seu SO ou do equipamento; O usuário não precisa se preocupar com a estrutura para executar a aplicação. - hardware, procedimentos de backup, segurança, manutenção 43
Computação nas nuvens Compartilhamento de informações e trabalho colaborativo se tornam mais fáceis. Pode-se contar com alta disponibilidade. O usuário pode controlar melhor os gastos. O usuário pode precisar instalar um programa cliente em seu computador ou dispositivo móvel. 44
Computação nas nuvens SOFTWARE AS A SERVICE Platform as a Service (PaaS) Database as a Service (DaaS) Infrastructure as a Service (IaaS) Testing as a Service (TaaS) 45
Exercício Como a computação ubíqua pode ser associada com a computação nas nuvens? 46
FIM 47