PADI Plataformas e Aplicações Distribuídas na Internet

Tamanho: px
Começar a partir da página:

Download "PADI Plataformas e Aplicações Distribuídas na Internet"

Transcrição

1 PADI Plataformas e Aplicações Distribuídas na Internet Introdução pb/disciplinas/padi taguspark-pb/disciplinas/pdipb/disciplinas/pdi PJPF, LAV INESC-ID/IST 2-1 O que é o? Índice Modelos aplicacional e arquitecturas Modelo de comunicação, de faltas, de segurança Desafios/Dificuldades 2-2

2 O Que é um 2-3 Definição de Sistema Distribuído Conjunto de computadores (nós) autónomos que estão ligados entre si Cada computador tem: sistema operativo middleware Middleware: Software que se situa por cima do sistema operativo e por baixo das aplicações Software que, do ponto de vista dos programadores, aplicações e seus utilizadores, permite aos computadores de um sistema distribuído comportar-se como um sistema único, integrado e coerente (nomes, localização, invocação, consistência, protocolos, etc.) Portanto, o middleware não é mais que: software de suporte a aplicações distribuídas () 2-4

3 Definição de Sistema Distribuído Componentes Middleware/ Sistema Operativo Hardware nó A rede Componentes Middleware/ Sistema Operativo Hardware nó C Componentes Middleware/ Sistema Operativo Hardware nó B 2-5 Definições :-) Sistema distribuído: Conjunto de computadores que deixa de funcionar quando um, que nem sabíamos que existia, vai abaixo Middleware: ware que está no meio 2-6

4 Sistemas Centralizados vs. Distribuídos Apenas uma instância do componente: Nó Servidor Aplicação Recurso partilhado por todos os utilizadores Ponto único de: Controle Falha Desempenho problemático Vários componentes autónomos Nem todos os componentes são partilhados por todos os utilizadores do sistema Alguns dos componentes podem não estar acessíveis em determinados momentos Software executa-se em processos concorrentes em processadores/nós distintos Múltiplos pontos de: Controle Falha Potencialmente melhor desempenho 2-7 Software de Suporte a Aplicações Distribuídas () Aplicação Aplicação Application Programming Interface (API) Sistema Operativo Sistema Operativo as aplicações interajam entre si de forma transparente do ponto de vista da sua localização as aplicações sejam independentes das particularidades da comunicação (ex.: protocolos) as aplicações tenham maior robustez e disponibilidade os serviços disponibilizados pelas aplicações sejam escaláveis com o aumento de pedidos 2-8

5 Nível de abstracção fornecido pelo ao programador de aplicações: muito superior ao que é fornecido pelo sistema operativo (ex.: envio de mensagens através de sockets vs. invocação de objectos). Isto não significa que a concepção e desenvolvimento de aplicações distribuídas se torne trivial: há ainda muitos aspectos a considerar e que não são actualmente suportados de forma satisfatória pelas plataformas existentes. ex.: numa arquitectura cliente-servidor em que local é que deve ficar o código/dados para suportar uma determinada funcionalidade. Serviços básicos: Identificação/localização e carregamento de código (classes ou pacotes/módulos) Identificação/localização de objectos remotos e gestão das respectivas referências invocação de objectos remotos (tendo em conta a passagem de referências para outros objectos como argumentos) notificação das aplicações da ocorrência de falhas na rede 2-9 Modelo Aplicacional e Arquitecturas 2-10

6 Modelo Aplicacional As aplicações distribuídas podem ser desenvolvidas de acordo com vários modelos aplicacionais A decisão de qual o modelo mais adequado depende de vários aspectos, como por exemplo: Desempenho esperado A quantidade de dados a transmitir via rede A segurança necessária ao correcto funcionamento da aplicação A funcionalidade suportada pelo middleware Aspectos prácticos relacionados com os computadores em causa etc Modelo: chamada de procedimento/método remoto procedimento/método a executar e respectivos argumentos cliente servidor resultado da execução do procedimento/método 2-12

7 Modelo: chamada de procedimento/método remoto Pressupõe a existência de um processo cliente e de um processo servidor: O cliente envia mensagens ao servidor em cada uma das quais especifica qual o procedimento/método que deve ser executado O servidor, ao receber essa mensagem, executa o procedimento/método em causa e envia uma mensagem de reposta ao cliente com o respectivo resultado Todo o suporte necessário à execução da chamada de procedimento remoto é da responsabilidade do middleware/ Este modelo é por vezes designado em terminologia anglo-saxónica por function-shipping 2-13 Modelo: mapeamento local de dados pedido de dados cliente servidor dados a mapear no cliente 2-14

8 Modelo: mapeamento local de dados Pressupõe a existência de um processo cliente que acede a dados que foram previamente mapeados localmente: Todos os dados que não se encontram mapeados localmente, quando são acedidos pela primeira vez pela aplicação em causa, têm de ser localizados (num computador remoto, i.e. servidor) e mapeados localmente Middleware/ no cliente envia uma mensagem ao servidor requisitando os dados em causa O servidor responde com uma mensagem contendo os respectivos dados, que são mapeados no cliente, de modo a que a aplicação possa continuar a sua execução Tudo isto é feito de forma transparente para a aplicação Este modelo é por vezes designado em terminologia anglo-saxónica por data-shipping 2-15 Modelo: mapeamento local de código pedido do código cliente servidor código a mapear no cliente 2-16

9 Modelo: mapeamento local de código Análogo à anterior mas: é o código da aplicação, ou de parte dela, que se encontra num computador remoto (i.e., no servidor) e que, por essa razão, terá de ser mapeado (ou carregado) localmente de modo a que a aplicação funcione correctamente Está subjacente à noção de applets que existe, por exemplo, no ambiente de programação Java Um applet não é mais do que a designação adoptada para descrever um pedaço de código que viaja na rede de um computador para outro, no qual se executa 2-17 Modelo: código+dados móvel computador código+dados em viagem código-dados em viagem computador computador código+dados em viagem computador 2-18

10 Modelo: código móvel Análogo à anterior mas com a diferença de que o código de uma aplicação, ou de parte dela, tem a capacidade de viajar na rede entre vários computadores nos quais se executa É o modelo que está subjacente ao que se designa por tecnologia de agentes móveis: um agente é um pedaço de código (e respectivos dados) que pode ser mapeado sucessivamente em vários computadores que assim se comportam ora como clientes ora como servidores Note-se que: um applet pode viajar apenas entre dois computadores. um agente não se encontra limitado, à partida, a um número de viagens pré-especificado 2-19 Modelo: publicação-subscrição subscrição computador subscrição publicação publicação computador computador 2-20

11 Modelo: publicação-subscrição Pressupôe a existência de um mecanismo, ao nível do, que permita: às aplicações indicar o seu interesse num determinado tipo de eventos, e que possibilite a difusão desses mesmos eventos através do envio de mensagens para as aplicações interessadas. Quando um dado evento ocorre: é difundido de forma a que as aplicações nele interessados recebam a mensagem respectiva 2-21 Arquitecturas As aplicações distribuídas podem adoptar várias arquitecturas Main-frame Cliente-Servidor básica Cliente-Servidor c/ 2-níveis (two-tier) Cliente-Servidor c/ 3-níveis (three-tier) Cliente-Servidor c/ 3-níveis na Web Arquitectura de Referência 2-22

12 Arquitectura Mainframe mainframe interface com o utilizador processamento armazenamento terminal terminal terminal grande utilização nos anos 60 existência de um computador central de grande capacidade de processamento e armazenamento ao qual se encontravam ligados terminais terminais não tinham nenhuma funcionalidade acrescida além de permitir a visualização de informação. todo o processamento e armazenamento é efectuado pelo mainframe: ex.: o processamento associado à gestão da interface com o utilizador 2-23 Arquitectura Cliente-Servidor armazenamento de ficheiros mini-computador armazenamento temporário (caching) interface com o utilizador computação computador pessoal computador pessoal computador pessoal Sistemas de ficheiros distribuídos: Servidor cuja função primordial é o armazenamento de informação, i.e. ficheiros Os clientes (e.g. PCs) são utilizados para efectuar processamento sobre os dados obtidos do servidor Não se pode dizer que exista de facto um : a API fornecida é a mesma que um sistema de ficheiros local todo o software de suporte encontra-se dentro do núcleo do sistema operativo Este tipo de arquitectura (cliente-servidor) só se tornou viável: capacidade de processamento dos computadores pessoais aumentou de forma significativa (servidor de ficheiros de baixo custo, PCs com capacidade de processamento dos dados obtidos do servidor) 2-24

13 Arquitectura Cliente-Servidor com 2-Níveis2 armazenamento temporário (caching) interface com o utilizador computação (aplicação) armazenamento de dados computação (aplicação) computador cliente pedidos respostas computador servidor O cliente é tipicamente um computador pessoal: executa a aplicação O servidor é um computador com capacidade de armazenamento superior (à do cliente): executa um servidor (ex., base de dados, servidor web, etc.). A função de armazenamento: é efectuada exclusivamente pelo servidor A função de computação: executa-se maioritariamente no cliente 2-25 Arquitectura Cliente-Servidor com 2-Níveis 2 (cont( cont.) A computação em causa é basicamente: interface com o utilizador (a cargo do cliente) aplicação propriamente dita pedidos servidos pelo servidor Exemplos: se servidor alberga uma base de dados este suporta queries, stored procedures, triggers, etc. se é um servidor web, os pedidos por este servidos serão os que estão definidos pelo protocolo HTTP Desvantagem principal desta arquitectura: não permite a separação clara do código correspondente à lógica da aplicação da respectiva interface e da gestão do repositório da informação. a lógica da aplicação está misturada no cliente com a interface ao utilizador e, por vezes, no servidor com a gestão do repositório da informação quando parte, senão toda, a funcionalidade da aplicação está situada no cliente, é bastante díficil efectuar upgrades dessa aplicação 2-26

14 Arquitectura Cliente-Servidor com 3-Níveis3 armazenamento temporário (caching) interface com o utilizador armazenamento temporário (caching) computação (aplicação) armazenamento de dados computador cliente pedidos respostas computador servidor pedidos respostas computador servidor A lógica da aplicação está claramente separada Primeiro nível: código específico que efectua a interface com o utilizador Nível intermédio: lógica da aplicação (ex.: serviços transaccionais, de mensagens, aplicacionais) Terceiro nível: código de gestão do repositório da informação 2-27 Arquitectura Cliente-Servidor com 3-Níveis 3 na Internet interface com o utilizador armazenamento temporário (caching) computação através de applets armazenamento temporário (caching) computação (aplicação) armazenamento de dados cliente browser pedidos respostas servidor web estendido pedidos respostas respositório (base de dados, ficheiros, etc.) Primeiro nível browser: código específico que efectua a interface com o utilizador Nível intermédio servidor web estendido: lógica da aplicação (ex.: serviços transaccionais, de mensagens, aplicacionais) Terceiro nível base de dados: código de gestão do repositório da informação 2-28

15 Arquitectura Cliente-Servidor com 3-Níveis 3 na Internet (cont.) Servidor web estendido através de um programa auxiliar (ex.: CGI) Servidor Web Sistema Operativo pedidos e respostas via pipe e variáveis de ambiente de acordo com a CGI Programa Auxiliar Sistema Operativo Servidor web estendido através de código adicional que é interpretado por uma máquina virtual associada ao servidor web (ex.: servlets, JSPs, ASPs, etc.) Servidor Web com Extensões Sistema Operativo 2-29 Arquitectura Cliente-Servidor com 3-Níveis 3 na Internet (cont.) Primeiro-segundo níveis: chamada de procedimento remoto (pedidos efectuados de acordo com o protocolo HTTP do cliente ao servidor) mapeamento local de código (carregamento de applets no browser vindos do servidor web) Segundo-terceiro níveis: depende em larga medida do código adicional específico ex.: efectuar o mapeamento local de dados obtidos do repositório, efectuar chamadas de procedimento remoto através de queries SQL, etc. 2-30

16 Arquitectura de Referência (3-Níveis) 2-31 Arquitectura de Referência com 3-Níveis 3 (cont( cont.) Níveis e respectivas funcionalidades: Primeiro nível - interface com o utilizador Segundo nível - lógica da aplicação Terceiro nível - armazenamento dos dados Inicialmente há que especificar a interface dos serviços oferecidos pelo servidor: pode ser usada uma linguagem especialmente concebida para esse efeito (por exemplo, o IDL Corba): esta linguagem é tipicamente diferente da que é usada para implementar essa mesma funcionalidade usar uma só linguagem de programação com a qual se define a interface dos serviços assim como a respectiva implementação neste caso, não há uma distinção entre a definição da interface remota e o restante código ex.: linguagens Java e C# 2-32

17 Arquitectura de Referência com 3-Níveis 3 - tipos A definição da interface é armazenada no repositório de tipos: é necessária para suportar as invocações remotas e as invocações dinâmicas a verificação da conformidade de tipos entre o invocador e o invocado, só é feita em tempo de execução esta informação é também designada por metadados Os meta-dados são também fundamentais para suportar o mecanismo de introspeção (reflection) 2-33 Arquitectura de Referência com 3-Níveis 3 - código Código que resulta da compilação: código nativo, i.e., que pode ser executado directamente pelo sistema operativo, ou formato intermédio, designado por bytecodes ou intermediate language (IL) O código é guardado no repositório de código: o fará o respectivo carregamento no espaço de endereçamento da aplicação indo buscar o código em causa a esse mesmo repositório Código em formato intermédio: carregado (pelo class loader) no espaço de endereçamento da aplicação interpretado pelo interpretador respectivo ou compilado através do just in-time compiler (JIT): compilar o código IL para código nativo de modo a que este se execute directamente sobre o sistema operativo sem necessidade de ser interpretado é efectuada imediatamente antes do código se executar pela primeira vez Por vezes, o código IL engloba em si mesmo a informação de tipos respectiva: e.g. Assemblies no.net, ficheiros.class em Java na prática, os repositórios de tipos e de código não são de facto distintos 2-34

18 Arquitectura de Referência com 3-Níveis 3 - invocação Estruturas de dados fundamentais no que concerne o suporte à invocação de objectos remotos: stub-cliente stub-servidor interceptam o fluxo da invocação do lado da aplicação cliente e do lado da aplicação servidor, respectivamente, Executam um conjunto de operações sobre os dados em causa: Estes dados indicam qual o objecto remoto a invocar, o método e os argumentos, e o valor de retorno. A função primordial do stub-cliente é: transformar estes dados num stream de bytes que podem ser enviados pela rede e de efectuar a operação inversa em relação ao valor de retorno do método em causa O stub-servidor efectua as operações simétricas 2-35 Arquitectura de Referência com 3-Níveis 3 - canal As invocações de objectos remotos são efectuadas através de um canal de comunicação: estabelecido entre a aplicação cliente e a aplicação servidor (e.g., socket TCP) canal pode ser partilhado, i.e. pode ser usado para transportar os dados relativos a várias invocações de modo a utilizar os recursos disponibilizados pelo sistema operativo de um modo mais eficaz. 2-36

19 Arquitectura de Referência com 3-Níveis 3 - segurança Há situações em que é necessário assegurar a privacidade e a integridade dos dados no canal: Para tal usam-se técnicas criptográficas Há que assegurar o controle de acesso das aplicações aos objectos: garantir que uma determinada política de segurança, que especifica quais os métodos que podem ser invocados por que entidade,é de facto cumprida. o elemento fundamental que garante o cumprimento dos direitos de acesso é o monitor de segurança: este é um componente do que intercepta as operações que implicam verificações de acesso. destas operações destacam-se as invocações que, antes de serem permitidas, devem ser analisadas tendo em conta a identificação do invocador e a política de controle de acesso Arquitectura de Referência com 3-Níveis 3 - repositório O repositório de dados é o local onde os objectos são guardados de forma persistente: os objectos podem ter um tempo de vida superior aos das aplicações que os manipulam é normalmente, mas não necessariamente, uma base de dados os objectos podem ser guardados directamente em ficheiros A operação de armazenamento dos objectos é complexa: por vezes é efectuada recorrendo a contentores (e.g., entity beans) contentores automatizam grande parte das operações que têm de ser feitas: fazer o mapeamento entre o modelo de objectos e o modelo relacional subjacente à base de dados, percorrer o grafo de objectos de modo a que sejam guardados todos os objectos que façam parte do fecho transitivo invocação de operações de âmbito transaccional 2-38

20 Arquitectura de Referência com 3-Níveis 3 - persistência Objectos persistentes podem ter um tempo de vida superior aos das aplicações: é necessário que o suporte o carregamento dos objectos a partir do repositório de dados o seu mapeamento no espaço de endereçamento das aplicações, de modo a que possam ser invocados Mecanismos que se executam: ex.: dada a referência do objecto localizá-lo no repositório de dados Estruturas de dados que têm de ser criadas ou alteradas: ex.: estruturas de suporte à invocação Activação: processo de detectar a falta em memória do objecto persistente, localizar o objecto em causa no repositório de dados, mapeá-lo no espaço de endereçamento da aplicação, executar método pretendido etc Arquitectura de Referência com 3-Níveis 3 - GC Execução das aplicações: há inúmeros objectos que são criados e que depois deixam de ser necessários A gestão de memória envolvida nesta actividade é extremamente complexa pois há que determinar: quais os objectos que de facto já não são precisos, e apagar todos os objectos que já não são necessários Caso estas operações não sejam efectuadas correctamente: referências que não apontam para nenhum objecto (dangling references) fugas de memória (memory leaks) Foi estimado que: cerca de 70% do tempo de desenvolvimento de aplicações em C++ se deve à correcção dos bugs com origem na gestão de memória Reciclagem automática de memória: detecta os objectos que já não são necessários às aplicações e liberta a memória ocupada 2-40

21 Arquitectura de Referência com 3-Níveis 3 na Internet 2-41 Modelo de Comunicação Modelo de Faltas Modelo de Segurança 2-42

22 Sistema Distribuído Síncrono Sistema distribuído síncrono é aquele em que os limites seguintes estão definidos: Tempo de execução de cada passo num processo tem limites inferior e superior Cada mensagem transmitida na rede é entregue dentro de um limite máximo de tempo Cada processo tem um relógio local cujo rácio de desvio (drift) em relação ao tempo real tem um limite conhecido Num sistema síncrono é possível, por exemplo: Usar timeouts para detectar a falha dos processos 2-43 Sistema Distribuído Assíncrono Sistema distribuído assíncrono é aquele em que os limites seguintes não estão definidos: Velocidade de execução dos processos Delays na transmissão de mensagens Rácio de desvio do relógio local 2-44

23 Sistemas Síncronos vs Assíncronos As soluções algorítmicas que sejam válidas para sistema assíncronos são também válidas para sistemas síncronos: Sistemas assíncronos são mais abstractos e gerais Toleram atrasos: processos, mensagens, relógios. Não dependem da velocidade/sincronismo para correcção. sistemas síncronos : São mais fáceis de tratar, mas Determinar limites realistas pode ser difícil ou mesmo impossível 2-45 Desempenho do Canal de Comunicação latency: delay between sending and receipt of message network access time (e.g., Ethernet retransmission delay) time for first bit to travel from sender s network interface to receiver s network interface processing time within the sending and receiving processes throughput: number of units (e.g., packets) delivered per time unit bandwidth: amount of information (e.g., bits) transmitted per time unit delay jitter: variation in delay between different messages of the same type (e.g., video frames in ATM networks) 2-46

24 Ordenação de Eventos in a distributed system it is impossible for any process to have a view on the current global state of the system possible to record timing information locally, and abstract from real time (logical clocks) 2-47 Modelo de Faltas (1) Omission failures: process omission failures: process crashes detection with timeouts crash is fail-stop if other processes can detect with certainty that process has crashed communication omission failures: message is not being delivered (dropping of messages) possible causes: network transmission error receiver incoming message buffer overflow 2-48

25 Modelo de Faltas (2) Arbitrary failures: process: omit intended processing steps or carry out unwanted ones communication channel: e.g., nondelivery, corruption or duplication Class of failure Timing Failures Affects Description Timing failures: Applicable in synchrounous distributed systems These failures may result in responses being unavailable within fixed time interval Masking failures It is possible to construct reliable services from components that exhibit failures (ex.: replicated servers) It is also possible to mask a failure by hiding it or by converting it to another type of failure (ex. a corrupted checksum may result in dropping a packet omission failure) Clock Performance Performance Process Process Channel Process s local clock exceeds the bounds on the rate drift from real time Process exceeds the bounds on the interval between two steps A message s transmission takes longer than the stated bound 2-49 Modelo de Faltas (3) Reliability of one-to-one communication is defined in terms of validity and integrity Validity: Any message in the outgoing message buffer is eventually delivered to the incoming message buffer Integrity: The message received is identical to one sent, and no messages are delivered twice The threats to integrity come from two independent sources: Any protocol that retransmits messages but does not reject a message that arrives twice (attach sequence numbers to messages) Malicious users that may inject spurious messages, relay old messages or tamper with messages (use security tools) 2-50

26 Modelo de Faltas (3) 2-51 Modelo de Segurança Protecting access to objects access rights in client server systems: involves authentication of clients Protecting processes and interactions threats to processes: problem of unauthenticated requests / replies e.g., "man in the middle" threats to communication channels: enemy may copy, alter or inject messages as they travel across network use of secure channels, based on cryptographic methods Denial of service e.g., pings to selected web sites generating debilitating network or server load so that network services become de facto unavailable Mobile code requires executability privileges on target machine code may be malicious (e.g., mail worms) 2-52

27 Desafios/Dificuldades 2-53 Desafios/Dificuldades Para quem programa aplicações distribuídas e também Para quem concebe e desenvolve plataformas destinadas ao seu suporte (middleware): heterogeneidade extensibilidade escalabilidade segurança concorrência tratamento de falhas transparência 2-54

28 Heterogeneidade Os já resolvem em grande medida este problema Inúmeras diferenças não se reflectem na programação das aplicações: protocolos de comunicação, sistema operativo, hardware, linguagens de programação, Conseguido através de: máquinas virtuais geração de código (e.g., stubs Remoting/RMI) 2-55 Extensibilidade Capacidade do sistema distribuído evoluir através de extensões e melhoramentos: alterar/modificar/acrescentar funcionalidades ao sistema em causa sem que isso implique modificações significativas ao nível do sistema existente Aspecto fundamental para a extensibilidade: especificar as interfaces de todos os componentes do sistema estabelecendo assim de forma clara os serviços oferecidos, e separando esta especificação da respectiva implementação 2-56

29 Escalabilidade Um sistema distribuído é escalável quando: o custo de servir mais um cliente é, em termos de recursos utilizados, constante. manter a qualidade do serviço prestado com o aumento do número de utilizadores aumentar o desempenho dados mais recursos É fundamental: os algoritmos e mecanismos usados, principalmente no que diz respeito ao acesso a informação partilhada, não tenham nenhum bottleneck Uma das técnicas utilizadas: replicar informação que é acedida mais frequentemente 2-57 Segurança É um aspecto fundamental de qualquer sistema distribuído As técnicas de criptografia contribuem de forma significativa para assegurar: privacidade integridade No entanto, a criptografia só por si não resolve todos os problemas de segurança: um dos elementos a ter igualmente em conta é especificação das políticas de segurança adequadas e, garantir o seu cumprimento efectivo 2-58

30 Concorrência Existência de vários clientes que acedem a dados partilhados: componentes distintos executados em processos diferentes componentes partilham recursos aos quais acedem concorrentemente (memória, ficheiros, etc.) problema da consistência desses mesmos dados Se o acesso a recursos partilhados não é feito de forma controlada: escritas perdidas leituras inconsistentes A aplicação distribuída que possibilita o acesso a este tipo de dados deve ter em conta este problema: fornecendo suporte adequado à partilha correcta da informação ex.: através de mecanismos baseados em locks 2-59 Tratamento de Falhas Um dos aspectos que distingue um sistema distribuído de um centralizado é o modelo de faltas: num sistema distribuído é fundamental comunicar as falhas ao programador das aplicações e permitir que este as trate da forma mais adequada à aplicação em causa Há falhas: Hardware (PCs, routers, etc.) Software Os sistemas distribuídos devem manter-se disponíveis mesmo perante falhas dos seus constituintes Tolerância a faltas é conseguida através de: recuperação redundância 2-60

31 Transparência O objectivo é: fazer com que determinados aspectos resultantes da distribuição, que não são específicos das aplicações, sejam tratados pela plataforma de suporte, tornando-se, assim, transparentes para o programador. o programador apenas tem de se preocupar com a própria aplicação e não com aspectos de nível sistema, como por exemplo, o protocolo de suporte à invocação de objectos remotos. Ou, de outro modo: ``esconder'' do programador das aplicações e do seu utilizador a efectiva separação dos componentes do sistema que assim é visto como um sistema único, monolítico, em vez de várias entidades distribuídas geograficamente. Vertentes: Acesso, Localização, Persistência, Mobilidade, Replicação, Concorrência, Escalabilidade, Desempenho, Falhas 2-61 Transparência (cont( cont.) Transparência do acesso: recursos locais ou remotos, objectos em particular sejam acedidos (i.e. invocados) de forma idêntica, ou seja, através de operações similares. Transparência da localização: recursos locais ou remotos, objectos em particular, sejam acedidos sem ter necessidade de conhecer a sua localização. Transparência da persistência: recursos, objectos em particular, sejam acedidos sem ter necessidade de saber se estão guardados em disco ou já estão mapeados em memória. Transparência da mobilidade: permite que os recursos mudem de localização sem que isso afecte as aplicações e/ou os utilizadores. 2-62

32 Transparência (cont( cont.) Transparência da replicação: existam várias réplicas dos recursos, objectos em particular, de modo a que a sua utilização possa ser feita com melhor disponibilidade e desempenho (em relação à situação em que não há réplicas) sem que os programadores das aplicações e os seus utilizadores tenham disso conhecimento Transparência da concorrência: vários processos acedam a recursos partilhados, objectos em particular, sem que haja interferências nefastas. Transparência da escalabilidade: o sistema se expanda (mais software, mais hardware) sem que seja preciso alterar a estrutura das aplicações 2-63 Transparência (cont( cont.) Transparência do desempenho: o sistema seja reconfigurado de modo que o desempenho se mantenha ou melhore em função de variações de carga. Transparência das falhas: esconder dos programadores das aplicações e dos seus utilizadores eventuais falhas do sistema possibilitando assim que estes efectuem as suas tarefas (apesar dessas falhas). 2-64

33 Aspectos Sistema Fundamentais Referências: Identificação, acesso, localização Serviço de nomes/trading Execução: invocação local/remota reflexão web services migração replicação Persistência: Por acessibilidade, explícita, etc. Serialização Activação Transacções Segurança: Sandboxing, playground Espaço de nomes (class loaders) Protection domain Criptografia simétrica/assimétirca Certificados 2-65 Resumo O que é o? Software que, do ponto de vista dos programadores, aplicações e seus utilizadores, permite aos computadores de um sistema distribuído comportar-se como um sistema único, integrado e coerente (nomes, localização, invocação, consistência, protocolos, etc.) Modelos e arquitecturas: chamada procedimento/método remoto, mapeamento local dados/código, código móvel, publicação-subscrição mainframe, cliente-servidor, 2-níveis, 3-níveis, arq. Referência Sistema síncrono vs. sistema assíncrono Ordenação de eventos Faltas por omissão, bizantinas, etc. Reliable one-to-one communication Desafios/Dificuldades: heterogeneidade, extensibilidade, escalabilidade, segurança, concorrência, tratamento de falhas, transparência 2-66

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Modelos e arquitecturas 14/15 Sistemas Distribuídos 1 Modelos arquitecturais 14/15 Sistemas Distribuídos 2 Camadas de Software: o Middleware Aplicações Middleware Sistema Operativo

Leia mais

UNIVERSIDADE. Sistemas Distribuídos

UNIVERSIDADE. Sistemas Distribuídos UNIVERSIDADE Sistemas Distribuídos Ciência da Computação Prof. Jesus Aula 05-06: Modelos de Sistemas Distribuídos (cont.) 2 O modelo peer-to-peer Surgiu no final da década de 1970 Se tornou mundialmente

Leia mais

Sistemas Distribuídos Capítulos 3 e 4 - Aula 4

Sistemas Distribuídos Capítulos 3 e 4 - Aula 4 Sistemas Distribuídos Capítulos 3 e 4 - Aula 4 Aula passada Threads Threads em SDs Processos Clientes Processos Servidores Aula de hoje Clusters de Servidores Migração de Código Comunicação (Cap. 4) Fundamentos

Leia mais

Introdução. Definição de um Sistema Distribuído (1) Definição de um Sistema Distribuído(2) Metas de Sistemas Distribuídos (2)

Introdução. Definição de um Sistema Distribuído (1) Definição de um Sistema Distribuído(2) Metas de Sistemas Distribuídos (2) Definição de um Sistema Distribuído (1) Introdução Um sistema distribuído é: Uma coleção de computadores independentes que aparecem para o usuário como um único sistema coerente. Definição de um Sistema

Leia mais

TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO. SISTEMAS DE GESTÃO DE BASE DE DADOS Microsoft Access TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO

TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO. SISTEMAS DE GESTÃO DE BASE DE DADOS Microsoft Access TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO Microsoft Access TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO CONCEITOS BÁSICOS 1 Necessidade das base de dados Permite guardar dados dos mais variados tipos; Permite

Leia mais

Desenvolvimento Cliente-Servidor 1

Desenvolvimento Cliente-Servidor 1 Desenvolvimento Cliente- 1 Ambiienttes de Desenvollviimentto Avançados Engenharia Informática Instituto Superior de Engenharia do Porto Alexandre Bragança 1998/99 Ambientes de Desenvolvimento Avançados

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Aula 4 Msc. Daniele Carvalho Oliveira Doutoranda em Ciência da Computação - UFU Mestre em Ciência da Computação UFU Bacharel em Ciência da Computação - UFJF Migração de Código Em

Leia mais

Sistemas Distribuídos Comunicação entre Processos em Sistemas Distribuídos: Middleware de comunicação Aula II Prof. Rosemary Silveira F. Melo Comunicação em sistemas distribuídos é um ponto fundamental

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Faculdades SENAC Análise e Desenvolvimento de Sistemas 1 de agosto de 2009 Introdução Um Modelo Arquiteturial dene o modo no qual os componentes de sistemas interagem e o modo no qual eles são mapeados

Leia mais

Sistemas Distribuídos. Aleardo Manacero Jr.

Sistemas Distribuídos. Aleardo Manacero Jr. Sistemas Distribuídos Aleardo Manacero Jr. Conteúdo Conceitos fundamentais Estratégias de controle: relógios e algoritmos de sincronismo Serviços: arquivos e memória Corba Processamento distribuído Sistemas

Leia mais

SISTEMAS DISTRIBUIDOS

SISTEMAS DISTRIBUIDOS 1 2 Caracterização de Sistemas Distribuídos: Os sistemas distribuídos estão em toda parte. A Internet permite que usuários de todo o mundo acessem seus serviços onde quer que possam estar. Cada organização

Leia mais

Camadas de Software - o Middleware. Sistemas Distribuídos Capítulo 2: Modelos e Arquitecturas. Aplicações. Middleware.

Camadas de Software - o Middleware. Sistemas Distribuídos Capítulo 2: Modelos e Arquitecturas. Aplicações. Middleware. Camadas de Software - o Middleware Sistemas Distribuídos Capítulo 2: Modelos e Arquitecturas Modelos de Arquitecturas para sistemas distribuidos Interfaces e Objectos Requerimentos para Arquitecturas Distribuídas

Leia mais

Modelos Fundamentais. Carlos Ferraz. cagf@cin.ufpe.br

Modelos Fundamentais. Carlos Ferraz. cagf@cin.ufpe.br Modelos Fundamentais Carlos Ferraz cagf@cin.ufpe.br O que vimos até agora (I) História Anos 60-70: sistemas centralizados (caros!) Anos 80: computadores pessoais (acessórios caros e pouco aproveitáveis!

Leia mais

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

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064 Sistemas Distribuídos Professora: Ana Paula Couto DCC 064 Comunicação- Protocolos, Tipos, RPC Capítulo 4 Agenda Protocolos em Camadas Pilhas de Protocolos em Sistemas Distribuídos Tipos de Comunicação

Leia mais

http://www.cin.ufpe.br/~sd/disciplinas/sd/grad Características Carlos Ferraz cagf@cin.ufpe.br

http://www.cin.ufpe.br/~sd/disciplinas/sd/grad Características Carlos Ferraz cagf@cin.ufpe.br http://www.cin.ufpe.br/~sd/disciplinas/sd/grad Características Carlos Ferraz cagf@cin.ufpe.br Características O que são os Sistemas Distribuídos? Benefícios : Não são consequências automáticas da distribuição;

Leia mais

UNIVERSIDADE. Sistemas Distribuídos

UNIVERSIDADE. Sistemas Distribuídos UNIVERSIDADE Sistemas Distribuídos Ciência da Computação Prof. Jesus José de Oliveira Neto Comunicação Inter-Processos Sockets e Portas Introdução Sistemas distribuídos consistem da comunicação entre processos

Leia mais

PADI Plataformas para Aplicações Distribuídas na Internet

PADI Plataformas para Aplicações Distribuídas na Internet PADI Plataformas para Aplicações Distribuídas na Internet Apresentação Prof. Luís Veiga IST/INESC-ID https://fenix.ist.utl.pt/lerci-pb/disciplinas/padi pb/disciplinas/padi https://fenix.ist.utl.pt/leic-taguspark

Leia mais

Arquitetura de Computadores II

Arquitetura de Computadores II Universidade Federal do Rio de Janeiro Informática DCC/IM Arquitetura de Computadores II Sistemas de Troca de Mensagens O Sistema de Comunicação provê tipicamente os seguintes serviços para as aplicações:

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Aula 6 Estrutura de Sistemas Operacionais Prof.: Edilberto M. Silva http://www.edilms.eti.br Baseado no material disponibilizado por: SO - Prof. Edilberto Silva Prof. José Juan Espantoso

Leia mais

Agentes Inteligentes segundo o Chimera

Agentes Inteligentes segundo o Chimera Agentes Inteligentes segundo o Chimera C Heuristic I M E R A No ambiente de desenvolvimento de Agentes Inteligentes Chimera, uma extensão do LPA Win-Prolog, um agente é funcionalmente composto por: Código,

Leia mais

Adriano Reine Bueno Rafael Barros Silva

Adriano Reine Bueno Rafael Barros Silva Adriano Reine Bueno Rafael Barros Silva Introdução RMI Tecnologias Semelhantes Arquitetura RMI Funcionamento Serialização dos dados Criando Aplicações Distribuídas com RMI Segurança Exemplo prático Referências

Leia mais

ICORLI. INSTALAÇÃO, CONFIGURAÇÃO e OPERAÇÃO EM REDES LOCAIS e INTERNET

ICORLI. INSTALAÇÃO, CONFIGURAÇÃO e OPERAÇÃO EM REDES LOCAIS e INTERNET INSTALAÇÃO, CONFIGURAÇÃO e OPERAÇÃO EM REDES LOCAIS e INTERNET 2010/2011 1 Protocolo TCP/IP É um padrão de comunicação entre diferentes computadores e diferentes sistemas operativos. Cada computador deve

Leia mais

Tecnologia de Sistemas Distribuídos Capítulo 8: Sistemas de Ficheiros Distribuídos Paulo Guedes

Tecnologia de Sistemas Distribuídos Capítulo 8: Sistemas de Ficheiros Distribuídos Paulo Guedes Tecnologia de Sistemas Distribuídos Capítulo 8: Sistemas de Ficheiros Distribuídos Paulo Guedes Paulo.Guedes@inesc.pt Alves Marques jam@inesc.pt INESC/IST 1 Sistema de Ficheiros Distribuídos Permite a

Leia mais

Fault Tolerance Middleware for Cloud Computing

Fault Tolerance Middleware for Cloud Computing Fault Tolerance Middleware for Cloud Computing W. Zhao & P. Melliar-Smith & L. Moser Sistemas Distribuídos e Tolerância a Falhas Ivan Pires m3797 Gilberto Melfe m4088 Introdução A cloud computing tem por

Leia mais

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

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064 Sistemas Distribuídos Professora: Ana Paula Couto DCC 064 Processos- Clientes, Servidores, Migração Capítulo 3 Agenda Clientes Interfaces de usuário em rede Sistema X Window Software do lado cliente para

Leia mais

Sistemas Cliente-Servidor

Sistemas Cliente-Servidor Sistemas Cliente-Servidor Disciplina Bancos de Dados II (INE 5616 2006-1) Curso de Sistemas de Informação Prof. Renato Fileto INE/CTC/UFSC 1 1 Cliente - Servidor Arquitetura cliente/servidor: Os servidores

Leia mais

Programação de Sistemas

Programação de Sistemas Programação de Sistemas Introdução aos modelos de comunicação Programação de Sistemas Modelos de comunicação :1/19 Introdução (1) Os sistemas operativos implementam mecanismos que asseguram independência

Leia mais

Programação de Sistemas

Programação de Sistemas Programação de Sistemas Introdução aos modelos de comunicação Programação de Sistemas Modelos de comunicação :1/19 Introdução (1) Os sistemas operativos implementam mecanismos que asseguram independência

Leia mais

Camadas de Serviço de Hardware e Software em Sistemas Distribuídos. Introdução. Um Serviço Provido por Múltiplos Servidores

Camadas de Serviço de Hardware e Software em Sistemas Distribuídos. Introdução. Um Serviço Provido por Múltiplos Servidores Camadas de Serviço de Hardware e Software em Sistemas Distribuídos Arquiteutra de Sistemas Distribuídos Introdução Applications, services Adaptação do conjunto de slides do livro Distributed Systems, Tanembaum,

Leia mais

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

MÓDULO 7 Modelo OSI. 7.1 Serviços Versus Protocolos MÓDULO 7 Modelo OSI A maioria das redes são organizadas como pilhas ou níveis de camadas, umas sobre as outras, sendo feito com o intuito de reduzir a complexidade do projeto da rede. O objetivo de cada

Leia mais

Tolerância a Faltas. 8/28/2003 José Alves Marques. Sistema Computacional

Tolerância a Faltas. 8/28/2003 José Alves Marques. Sistema Computacional Tolerância a Faltas Sistema Computacional Sistema computacional: Formado por um conjunto de componentes internas Contém um estado interno Está sujeito a um conjunto de entradas, ou estímulos externos Tem

Leia mais

Capítulo 8. Software de Sistema

Capítulo 8. Software de Sistema Capítulo 8 Software de Sistema Adaptado dos transparentes das autoras do livro The Essentials of Computer Organization and Architecture Objectivos Conhecer o ciclo de desenvolvimento da linguagem Java

Leia mais

Tópicos em Sistemas Distribuídos. Modelos de Comunicação

Tópicos em Sistemas Distribuídos. Modelos de Comunicação Tópicos em Sistemas Distribuídos Modelos de Comunicação Comunicação em SD Comunicação entre processos Sockets UDP/TCP Comunicação em grupo Broadcast Multicast Comunicação entre processos Conceitos básicos

Leia mais

Arquitecturas de Software Licenciatura em Engenharia Informática e de Computadores

Arquitecturas de Software Licenciatura em Engenharia Informática e de Computadores UNIVERSIDADE TÉCNICA DE LISBOA INSTITUTO SUPERIOR TÉCNICO Arquitecturas de Software Licenciatura em Engenharia Informática e de Computadores Primeiro Teste 21 de Outubro de 2006, 9:00H 10:30H Nome: Número:

Leia mais

Temas de Tese 2015-2016

Temas de Tese 2015-2016 Temas de Tese 2015-2016 Os temas de tese aqui apresentados serão orientados por mim, Prof. Paulo Ferreira (alguns com co-orientação de outros docentes) Existem outros temas de tese nas quais sou co-orientador

Leia mais

Grupo I [6v] Considere o seguinte extracto de um programa de definição de uma calculadora apenas com a função soma de dois valores reais

Grupo I [6v] Considere o seguinte extracto de um programa de definição de uma calculadora apenas com a função soma de dois valores reais Número: Nome: Página 1 de 5 LEIC/LERC 2012/13, Repescagem do 1º Teste de Sistemas Distribuídos, 25 de Junho de 2013 Responda no enunciado, apenas no espaço fornecido. Identifique todas as folhas. Duração:

Leia mais

Arquitetura de Sistemas Operativos

Arquitetura de Sistemas Operativos Arquitetura de Sistemas Operativos Sistemas Operativos 2011/2012 1 Introdução Os sistemas operativos implementam mecanismos que asseguram independência entre processos (i.e., a execução de um processo

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Modelo Cliente-Servidor: Introdução aos tipos de servidores e clientes Prof. MSc. Hugo Souza Iniciando o módulo 03 da primeira unidade, iremos abordar sobre o Modelo Cliente-Servidor

Leia mais

USO GERAL DOS PROTOCOLOS SMTP, FTP, TCP, UDP E IP

USO GERAL DOS PROTOCOLOS SMTP, FTP, TCP, UDP E IP USO GERAL DOS PROTOCOLOS SMTP, FTP, TCP, UDP E IP SMTP "Protocolo de transferência de correio simples (ou em inglês Simple Mail Transfer Protocol ) é o protocolo padrão para envio de e- mails através da

Leia mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Especialização em Desenvolvimento de Aplicações Web com Interfaces Ricas EJB 3.0 Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 13 Web Services Web Services

Leia mais

Introdução aos Computadores

Introdução aos Computadores Os Computadores revolucionaram as formas de processamento de Informação pela sua capacidade de tratar grandes quantidades de dados em curto espaço de tempo. Nos anos 60-80 os computadores eram máquinas

Leia mais

Modelos de Arquiteturas. Prof. Andrêza Leite andreza.lba@gmail.com

Modelos de Arquiteturas. Prof. Andrêza Leite andreza.lba@gmail.com Modelos de Arquiteturas Prof. Andrêza Leite andreza.lba@gmail.com Agenda Introdução Arquitetura de Sistemas Distribuídos Clientes e Servidores Peer-to-Peer Variações Vários Servidores Proxy Código Móvel

Leia mais

Arquitetura de um sistema é a especificação de sua estrutura e de seus componentes

Arquitetura de um sistema é a especificação de sua estrutura e de seus componentes Arquiteturas e Modelos de sistemas Arquitetura Arquitetura de um sistema é a especificação de sua estrutura e de seus componentes Localização dos componentes e relação entre eles Objetivo: garantir que

Leia mais

UNIVERSIDADE. Sistemas Distribuídos

UNIVERSIDADE. Sistemas Distribuídos UNIVERSIDADE Sistemas Distribuídos Ciência da Computação Prof. Jesus José de Oliveira Neto Web Services Web Services Existem diferentes tipos de comunicação em um sistema distribuído: Sockets Invocação

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Comunicação Remota Gustavo Reis gustavo.reis@ifsudestemg.edu.br 1 Comunicação entre processos está no coração de todo sistema distribuído. Não tem sentido estudar sistemas distribuídos

Leia mais

Introdução ao Modelos de Duas Camadas Cliente Servidor

Introdução ao Modelos de Duas Camadas Cliente Servidor Introdução ao Modelos de Duas Camadas Cliente Servidor Desenvolvimento de Sistemas Cliente Servidor Prof. Esp. MBA Heuber G. F. Lima Aula 1 Ciclo de Vida Clássico Aonde estamos? Page 2 Análise O que fizemos

Leia mais

Princípios de Sistemas Distribuídos. Tecnologias utilizadas em sistemas distribuídos Aula 5

Princípios de Sistemas Distribuídos. Tecnologias utilizadas em sistemas distribuídos Aula 5 Princípios de Sistemas Distribuídos Tecnologias utilizadas em sistemas distribuídos Aula 5 Conceitos de comunicação entre processos Interprocess Communication (IPC) Sistemas distribuídos são construídos

Leia mais

ENHANCED SERVER FAULT- TOLERANCE FOR IMPROVED USER EXPERIENCE. André Esteves nº3412 David Monteiro

ENHANCED SERVER FAULT- TOLERANCE FOR IMPROVED USER EXPERIENCE. André Esteves nº3412 David Monteiro ENHANCED SERVER FAULT- TOLERANCE FOR IMPROVED USER EXPERIENCE André Esteves nº3412 David Monteiro INTRODUÇÃO É proposto uma arquitectura de servidor Web dividida que tolera perfeitamente tanto falhas na

Leia mais

Capítulo 4. MARIE (Machine Architecture Really Intuitive and Easy)

Capítulo 4. MARIE (Machine Architecture Really Intuitive and Easy) Capítulo 4 João Lourenço Joao.Lourenco@di.fct.unl.pt Faculdade de Ciências e Tecnologia Universidade Nova de Lisboa 2007-2008 MARIE (Machine Architecture Really Intuitive and Easy) Adaptado dos transparentes

Leia mais

Projeto de Sistemas Distribuídos. Prof. Andrêza Leite andreza.lba@gmail.com

Projeto de Sistemas Distribuídos. Prof. Andrêza Leite andreza.lba@gmail.com Projeto de Sistemas Distribuídos Prof. Andrêza Leite andreza.lba@gmail.com Agenda Introdução Exemplos de Sistemas Distribuídos Compartilhamento de Recursos e a Web Principais Desafios para a Implementação

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos 1 de 9 Sistemas Distribuídos O que é um sistema distribuído? Um conjunto de computadores autonomos a) interligados por rede b) usando um software para produzir uma facilidade de computação integrada. Qual

Leia mais

Arquitecturas Tolerantes a faltas em Sistemas Distribuídos

Arquitecturas Tolerantes a faltas em Sistemas Distribuídos Arquitecturas Tolerantes a faltas em Sistemas Distribuídos Replicação de Servidores Transacções Atómicas Protocolos de Replicação Replicação passiva vs. activa Replicação de máquinas de estados vs. Replicação

Leia mais

Java Mail Server. Manual do Utilizador

Java Mail Server. Manual do Utilizador Java Mail Server Manual do Utilizador Introdução às Redes e Comunicações 2002/2003 Java Mail Client Janela de Ligação O Java Mail Client (JMC), assim que é inicializado, mostra uma janela que irá possibilitar

Leia mais

Departamento de Informática

Departamento de Informática Departamento de Informática Licenciatura em Engenharia Informática Sistemas Distribuídos 1ª chamada, 9 de Janeiro de 2009 1º Semestre, 2009/2010 NOTAS: Leia com atenção cada questão antes de responder.

Leia mais

World Wide Web e Aplicações

World Wide Web e Aplicações World Wide Web e Aplicações Módulo H O que é a WWW Permite a criação, manipulação e recuperação de informações Padrão de fato para navegação, publicação de informações e execução de transações na Internet

Leia mais

Escola Superior de Tecnologia de Setúbal. Projecto Final

Escola Superior de Tecnologia de Setúbal. Projecto Final Instituto Politécnico de Setúbal Escola Superior de Tecnologia de Setúbal Departamento de Sistemas e Informática Projecto Final Computação na Internet Ano Lectivo 2002/2003 Portal de Jogos Executado por:

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Modelo Cliente-Servidor: comunicação orientada por mensagem e comunicação orientada por fluxo Prof. MSc. Hugo Souza Continuando o módulo 03 da primeira unidade, iremos abordar sobre

Leia mais

Sistemas Informáticos

Sistemas Informáticos Sistemas Informáticos Sistemas Distribuídos Eng.ª Sistemas de Informação Escola Superior de Tecnologia e Gestão - IPVC Ano Lectivo 2005-2006 1.º Semestre Gestão de Nomes 1 - Objectivos - Os nomes são fundamentais

Leia mais

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO Conceitos básicos e serviços do Sistema Operacional Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO Tipos de serviço do S.O. O S.O.

Leia mais

Introdução. Sistemas Distribuídos. Mas, o que é um sistema distribuído? Seriamente. Professor: Paulo Jorge Marques. Professora Práticas: Pinki Meggi

Introdução. Sistemas Distribuídos. Mas, o que é um sistema distribuído? Seriamente. Professor: Paulo Jorge Marques. Professora Práticas: Pinki Meggi Introdução Sistemas Distribuídos Professor: Paulo Jorge Marques Email: pmarques@dei.uc.pt Universidade de Coimbra, Portugal Área de Sistemas Distribuídos Curso de Eng. Informática ISCTEM, Julho 2007 Professora

Leia mais

ADDRESS RESOLUTION PROTOCOL. Thiago de Almeida Correia

ADDRESS RESOLUTION PROTOCOL. Thiago de Almeida Correia ADDRESS RESOLUTION PROTOCOL Thiago de Almeida Correia São Paulo 2011 1. Visão Geral Em uma rede de computadores local, os hosts se enxergam através de dois endereços, sendo um deles o endereço Internet

Leia mais

NOTA DE ESCLARECIMENTO

NOTA DE ESCLARECIMENTO NOTA DE ESCLARECIMENTO SOBRE A UTILIZAÇÃO DE NUMERAÇÃO GEOGRÁFICA EM REDES PRIVATIVAS MULTI-SITE I ENQUADRAMENTO O ICP-ANACOM ao acompanhar a evolução tecnológica e tendo sido confrontado com um pedido

Leia mais

Distributed Systems Principles and Paradigms

Distributed Systems Principles and Paradigms Distributed Systems Principles and Paradigms Maarten van Steen VU Amsterdam, Dept. Computer Science (Tradução e Adaptação Ricardo Anido - IC/Unicamp) Capítulo 04: Comunicação Versão: 20 de março de 2014

Leia mais

3 SCS: Sistema de Componentes de Software

3 SCS: Sistema de Componentes de Software 3 SCS: Sistema de Componentes de Software O mecanismo para acompanhamento das chamadas remotas se baseia em informações coletadas durante a execução da aplicação. Para a coleta dessas informações é necessário

Leia mais

Redes de Computadores. Trabalho de Laboratório Nº7

Redes de Computadores. Trabalho de Laboratório Nº7 Redes de Computadores Curso de Eng. Informática Curso de Eng. de Electrónica e Computadores Trabalho de Laboratório Nº7 Análise do tráfego na rede Protocolos TCP e UDP Objectivo Usar o Ethereal para visualizar

Leia mais

Web Technologies. Tópicos da apresentação

Web Technologies. Tópicos da apresentação Web Technologies Tecnologias de Middleware 2004/2005 Hugo Simões hsimoes@di.fc.ul.pt 1 A Web Tópicos da apresentação Tecnologias Web para suporte a clientes remotos (Applets,CGI,Servlets) Servidores Aplicacionais

Leia mais

Sistemas Distribuídos RPC x RMI. Edeyson Andrade Gomes www.edeyson.com.br

Sistemas Distribuídos RPC x RMI. Edeyson Andrade Gomes www.edeyson.com.br Sistemas Distribuídos RPC x RMI Edeyson Andrade Gomes www.edeyson.com.br Roteiro da Aula Chamada Remota a Procedimento Definição Passagem de Parâmetros STUBS Semântica de Falhas 2 RPC Chamada Remota a

Leia mais

Curso de especialização em Teleinformática Disciplina Sistemas Distribuídos Prof. Tacla

Curso de especialização em Teleinformática Disciplina Sistemas Distribuídos Prof. Tacla - 1 - - 2 - COMUNICAÇÃO INTER PROCESSOS DISTRIBUÍDOS. - 3 - - 4 - Os sockets UDP e TCP são a interface provida pelos respectivos protocolos. Pode-se dizer que estamos no middleware de sistemas distribuídos

Leia mais

Visão do Usuário da DSM

Visão do Usuário da DSM Memória Compartilhada Distribuída Visão Geral Implementação Produtos 1 Memória Compartilhada Distribuída Mecanismos tradicionais de comunicação via RPC/RMI ou mensagens deixam explícitas as interações

Leia mais

Alta Disponibilidade na IPBRICK

Alta Disponibilidade na IPBRICK Alta Disponibilidade na IPBRICK IPBRICK International 5 de Dezembro de 2012 1 Conteúdo 1 Introdução 3 1.1 Vantagens.................................... 3 2 Requisitos HA 4 3 Configuração HA 4 3.1 Serviço

Leia mais

Ferramentas de Modelação e Análise de Sistemas baseadas em Redes de Petri (RdP)

Ferramentas de Modelação e Análise de Sistemas baseadas em Redes de Petri (RdP) Ferramentas de Modelação e Análise de Sistemas baseadas em Redes de Petri (RdP) Existem inúmeras ferramentas (software) baseadas em RdP que permitem desenvolver modelar e analisar sistema de RdP. Algumas

Leia mais

Laboratório de Sistemas e Redes. Nota sobre a Utilização do Laboratório

Laboratório de Sistemas e Redes. Nota sobre a Utilização do Laboratório Nota sobre a Utilização do Laboratório 1. Introdução O laboratório de Sistemas e Redes foi criado com o objectivo de fornecer um complemento prático de qualidade ao ensino das cadeiras do ramo Sistemas

Leia mais

Sistemas distribuídos:comunicação

Sistemas distribuídos:comunicação M. G. Santos marcela@estacio.edu.br Faculdade Câmara Cascudo - Estácio de Sá 16 de abril de 2010 Formas de comunicação Produtor-consumidor: comunicação uni-direccional, com o produtor entregando ao consumidor.

Leia mais

Capítulo VI CORBA. Common Object Request Broker Architecture. [Cardoso2008] Programação de Sistemas Distribuídos em Java, Jorge Cardoso, FCA, 2008.

Capítulo VI CORBA. Common Object Request Broker Architecture. [Cardoso2008] Programação de Sistemas Distribuídos em Java, Jorge Cardoso, FCA, 2008. Common Object Request Broker Architecture [Cardoso2008] Programação de Sistemas Distribuídos em Java, Jorge Cardoso, FCA, 2008. From: Fintan Bolton Pure CORBA SAMS, 2001 From: Coulouris, Dollimore and

Leia mais

Interface Homem Máquina para Domótica baseado em tecnologias Web

Interface Homem Máquina para Domótica baseado em tecnologias Web Interface Homem Máquina para Domótica baseado em tecnologias Web João Alexandre Oliveira Ferreira Dissertação realizada sob a orientação do Professor Doutor Mário de Sousa do Departamento de Engenharia

Leia mais

SISTEMAS DISTRIBUÍDOS

SISTEMAS DISTRIBUÍDOS SISTEMAS DISTRIBUÍDOS Comunicação coletiva Modelo Peer-to-Peer Slide 6 Nielsen C. Damasceno Introdução Os modelos anteriores eram realizado entre duas partes: Cliente e Servidor. Com RPC e RMI não é possível

Leia mais

Um sistema SMS 1 simplificado

Um sistema SMS 1 simplificado 1 Introdução Um sistema SMS 1 simplificado Projecto de Redes de Computadores I - 2007/2008 LEIC IST, Tagus Park 10 de Setembro de 2007 Pretende-se com este projecto que os alunos implementem um sistema

Leia mais

Sistemas Distribuídos e Tolerância a Falhas. Tempo e Relógios. Baseado no trabalho de: Ana Sofia Cunha m1892 Christian Lopes a15132 UBI, 2008

Sistemas Distribuídos e Tolerância a Falhas. Tempo e Relógios. Baseado no trabalho de: Ana Sofia Cunha m1892 Christian Lopes a15132 UBI, 2008 Sistemas Distribuídos e Tolerância a Falhas Tempo e Relógios 1 Baseado no trabalho de: Ana Sofia Cunha m1892 Christian Lopes a15132 UBI, 2008 O papel do tempo 2 Crucial na ordenação de eventos Tempo Real?

Leia mais

Ministério das Finanças Instituto de Informática. Departamento de Sistemas de Informação

Ministério das Finanças Instituto de Informática. Departamento de Sistemas de Informação Ministério das Finanças Instituto de Informática Departamento de Sistemas de Informação Assiduidade para Calendários Específicos Junho 2010 Versão 6.0-2010 SUMÁRIO 1 OBJECTIVO 4 2 ECRÃ ELIMINADO 4 3 NOVOS

Leia mais

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

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064 Sistemas Distribuídos Professora: Ana Paula Couto DCC 064 Sistemas Distribuídos Basedos na Web Capítulo 12 Agenda Arquitetura Processos Comunicação Nomeação Sincronização Consistência e Replicação Introdução

Leia mais

Aula 03-04: Modelos de Sistemas Distribuídos

Aula 03-04: Modelos de Sistemas Distribuídos UNIVERSIDADE Computação Aula 03-04: Modelos de Sistemas Distribuídos 2o. Semestre / 2014 Prof. Jesus Principais questões no projeto de um sistema distribuído (SD) Questão de acesso (como sist. será acessado)

Leia mais

TIC Unidade 2 Base de Dados. Informação é todo o conjunto de dados devidamente ordenados e organizados de forma a terem significado.

TIC Unidade 2 Base de Dados. Informação é todo o conjunto de dados devidamente ordenados e organizados de forma a terem significado. Conceitos relativos à Informação 1. Informação O que á a informação? Informação é todo o conjunto de dados devidamente ordenados e organizados de forma a terem significado. 2. Dados Em informática designa-se

Leia mais

Redes de Computadores I Licenciatura em Eng. Informática e de Computadores 1 o Semestre, 26 de Outubro de 2005 1 o Teste A

Redes de Computadores I Licenciatura em Eng. Informática e de Computadores 1 o Semestre, 26 de Outubro de 2005 1 o Teste A Redes de Computadores I Licenciatura em Eng. Informática e de Computadores 1 o Semestre, 26 de Outubro de 2005 1 o Teste A Número: Nome: Duração: 1 hora O teste é sem consulta O teste deve ser resolvido

Leia mais

TECNOLOGIAS DE INFORMAÇÃO E COMUNICAÇÃO

TECNOLOGIAS DE INFORMAÇÃO E COMUNICAÇÃO TECNOLOGIAS DE INFORMAÇÃO E COMUNICAÇÃO ACCESS 2010 Conceitos Básicos Ficha Informativa Professor : Vanda Pereira módulo didáctico Conceitos Básicos Necessidade das base de dados Permite guardar dados

Leia mais

Arquitetura de Redes: Camadas de Protocolos (Parte I) Prof. Eduardo

Arquitetura de Redes: Camadas de Protocolos (Parte I) Prof. Eduardo Arquitetura de Redes: Camadas de Protocolos (Parte I) Prof. Eduardo Introdução O que é Protocolo? - Para que os pacotes de dados trafeguem de uma origem até um destino, através de uma rede, é importante

Leia mais

Ciência de Computadores Sistemas Distribuídos e Móveis

Ciência de Computadores Sistemas Distribuídos e Móveis Ciência de Computadores Sistemas Distribuídos e Móveis Lista de Exercícios Data: 4 de Novembro de 2013 Questões sobre o capítulo 1, Tanenbaum & van Steen: Fundamentos 1) Explique o significado de transparência,

Leia mais

Entendendo como funciona o NAT

Entendendo como funciona o NAT Entendendo como funciona o NAT Vamos inicialmente entender exatamente qual a função do NAT e em que situações ele é indicado. O NAT surgiu como uma alternativa real para o problema de falta de endereços

Leia mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Curso: Sistemas de Informação Arquitetura de Software Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 4 Estilos Arquitetônicos Estilos Arquiteturais Dataflow

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Soquetes Um soquete é formado por um endereço IP concatenado com um número de porta. Em geral, os soquetes utilizam uma arquitetura cliente-servidor. O servidor espera por pedidos

Leia mais

Arquitetura TCP/IP. Parte IV Mapeamento de endereços IP em endereços físicos (ARP) Fabrízzio Alphonsus A. M. N. Soares

Arquitetura TCP/IP. Parte IV Mapeamento de endereços IP em endereços físicos (ARP) Fabrízzio Alphonsus A. M. N. Soares Arquitetura TCP/IP Parte IV Mapeamento de endereços IP em endereços físicos (ARP) Fabrízzio Alphonsus A. M. N. Soares Tópicos Problema de resolução de endereço Mapeamento direto Associação dinâmica ARP

Leia mais

Licenciatura em Engenharia Informática Sistemas Distribuídos I 2ª chamada, 6 de Julho de 2005 2º Semestre, 2004/2005

Licenciatura em Engenharia Informática Sistemas Distribuídos I 2ª chamada, 6 de Julho de 2005 2º Semestre, 2004/2005 Departamento de Informática Faculdade de Ciências e Tecnologia UNIVERSIDADE NOVA DE LISBOA Licenciatura em Engenharia Informática Sistemas Distribuídos I 2ª chamada, 6 de Julho de 2005 2º Semestre, 2004/2005

Leia mais

Universidade da Beira Interior

Universidade da Beira Interior Universidade da Beira Interior Relatório Apresentação Java Server Pages Adolfo Peixinho nº4067 Nuno Reis nº 3955 Índice O que é uma aplicação Web?... 3 Tecnologia Java EE... 4 Ciclo de Vida de uma Aplicação

Leia mais

Sistemas de Telecomunicações I

Sistemas de Telecomunicações I Introdução aos Sistemas de Telecomunicações José Cabral Departamento de Electrónica Industrial Introdução aos Sistemas de Telecomunicações 1-16 Introdução aos Sistemas de Telecomunicações Tópicos: Redes

Leia mais