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

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

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

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

Capítulo II Modelos de Programação Distribuída (parte 2)

Capítulo II Modelos de Programação Distribuída (parte 2) Capítulo II Modelos de Programação Distribuída (parte 2) From: Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 3, Addison-Wesley 2001 From: Cardoso, Jorge, Programação

Leia mais

Capítulo I Introdução aos Sistemas Distribuídos

Capítulo I Introdução aos Sistemas Distribuídos Capítulo I Introdução aos Sistemas Distribuídos From: Wolfgang Emmerich Engineering Distributed Objects John Wiley & Sons, Ltd 2000 From: Coulouris, Dollimore and Kindberg Distributed Systems: Concepts

Leia mais

SISTEMAS DISTRIBUÍDOS

SISTEMAS DISTRIBUÍDOS SISTEMAS DISTRIBUÍDOS Capítulo 1 Introdução Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça Copyright DI FCT/ UNL / 1 NOTA PRÉVIA A apresentação utiliza algumas das figuras do livro

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

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

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

Sistemas Distribuídos Sistemas Distribuídos Computação Aula 01-02: Introdução 2o. Semestre / 2014 Prof. Jesus Agenda da Apresentação Definição e surgimento de Sistemas Distribuídos Principais aspectos de Sistemas Distribuídos

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

SISTEMAS DISTRIBUÍDOS (1. CICLO)

SISTEMAS DISTRIBUÍDOS (1. CICLO) SISTEMAS DISTRIBUÍDOS (1. CICLO) Capítulo 1 Introdução Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça Copyright DI FCT/ UNL / 1 NOTA PRÉVIA A apresentação utiliza algumas das figuras

Leia mais

Capítulo II Modelos de Programação Distribuída (parte 2)

Capítulo II Modelos de Programação Distribuída (parte 2) Capítulo II Modelos de Programação Distribuída (parte 2) From: Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 3, Addison-Wesley From: Cardoso, Jorge, Programação de

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

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

Sistemas Distribuídos Capítulo 1: Introdução. Departamento de Engenharia Informática

Sistemas Distribuídos Capítulo 1: Introdução. Departamento de Engenharia Informática Sistemas Distribuídos Capítulo 1: Introdução Departamento de Engenharia Informática Índice Introdução aos Sistemas Distribuidos Definição de sistema distribuído Razões para a distribuição Evolução tecnológica

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

Capítulo I Introdução aos Sistemas Distribuídos

Capítulo I Introdução aos Sistemas Distribuídos Capítulo I Introdução aos Sistemas Distribuídos From: Wolfgang Emmerich Engineering Distributed Objects John Wiley & Sons, Ltd 2000 From: Coulouris, Dollimore and Kindberg Distributed Systems: Concepts

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

Sistemas Operativos I

Sistemas Operativos I Componentes de um Sistema Operativo Maria João Viamonte / Luis Lino Ferreira Fevereiro de 2006 Sistema Operativo Um Sistema Operativo pode ser visto como um programa de grande complexidade, responsável

Leia mais

Caracterização de Sistemas Distribuídos

Caracterização de Sistemas Distribuídos Aula 1 Caracterização de Sistemas Distribuídos Prof. Dr. João Bosco M. Sobral mail: bosco@inf.ufsc.br - página: http://www.inf.ufsc.br/~bosco Rodrigo Campiolo mail: rcampiol@inf.ufsc.br - página: http://ww.inf.ufsc.br/~rcampiol

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 Exemplos de SD Quais podem ser? Ex. de SD: Internet Internet é um conjunto de redes de computadores, de muitos tipos diferentes,

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

Tipos de Redes. Redes de Dados. Comunicação em Rede Local. Redes Alargadas. Dois tipos fundamentais de redes

Tipos de Redes. Redes de Dados. Comunicação em Rede Local. Redes Alargadas. Dois tipos fundamentais de redes Tipos de Redes Redes de Sistemas Informáticos I, 2005-2006 Dois tipos fundamentais de redes LAN = Local Area Network Interliga um conjunto de computadores locais, próximos Tecnologias mais típicas: Ethernet

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

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

Tipos de Redes. Dois tipos fundamentais de redes

Tipos de Redes. Dois tipos fundamentais de redes Redes de Tipos de Redes Dois tipos fundamentais de redes LAN = Local Area Network Interliga um conjunto de computadores locais, próximos Tecnologias mais típicas: Ethernet / FastEthernet / GigabitEthernet

Leia mais

Índice. O que é um Sistemas Distribuído? Exemplos de Sistemas Distribuídos? Razões para a distribuição? Desafios da distribuição?

Índice. O que é um Sistemas Distribuído? Exemplos de Sistemas Distribuídos? Razões para a distribuição? Desafios da distribuição? Índice Sistemas Distribuídos Capítulo 1: Introdução O que é um Sistemas Distribuído? Exemplos de Sistemas Distribuídos? Razões para a distribuição? Desafios da distribuição? Sistemas Distribuidos 2010-2011

Leia mais

TRABALHO #1 Sistemas de Informação Distribuídos: Reflexão sobre a segurança

TRABALHO #1 Sistemas de Informação Distribuídos: Reflexão sobre a segurança DEPARTAMENTO DE ENGENHARIA INFORMÁTICA FACULDADE DE CIÊNCIAS E TECNOLOGIA DA UNIVERSIDADE DE COIMBRA Negócio Electrónico, 2006/2007 TRABALHO #1 Sistemas de Informação Distribuídos: Reflexão sobre a segurança

Leia mais

Sistemas Distribuídos e Paralelos

Sistemas Distribuídos e Paralelos Sistemas Distribuídos e Paralelos Tolerância a Falhas Ricardo Mendão Silva Universidade Autónoma de Lisboa r.m.silva@ieee.org January 14, 2015 Ricardo Mendão Silva (UAL) Sistemas Distribuídos e Paralelos

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 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

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

Sistemas Distribuídos Sistemas Distribuídos (Re)Introdução 1 Organização Definição Características essenciais dos sistemas distribuídos Desafios principais 2 Definição Um sistema distribuído é... um conjunto de componentes

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

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

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

Sistemas Operativos. Princípios de sistemas operativos. Rui Maranhão (rma@fe.up.pt)

Sistemas Operativos. Princípios de sistemas operativos. Rui Maranhão (rma@fe.up.pt) Sistemas Operativos Princípios de sistemas operativos Rui Maranhão (rma@fe.up.pt) Agenda objectivos de um computador objectivos de um sistema operativo evolução dos sistemas operativos tipos de sistemas

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

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

Sincronização. Tempo e Relógios. Sincronização de Relógios - Algoritmo de Cristian - Algoritmo de Berkeley - Network Time Protocol

Sincronização. Tempo e Relógios. Sincronização de Relógios - Algoritmo de Cristian - Algoritmo de Berkeley - Network Time Protocol Sincronização Tempo e Relógios Sincronização de Relógios - Algoritmo de Cristian - Algoritmo de Berkeley - Network Time Protocol 1 O papel do tempo Crucial na ordenação de eventos Tempo Real? - Função

Leia mais

Uma Base de Dados é uma colecção de dados partilhados, interrelacionados e usados para múltiplos objectivos.

Uma Base de Dados é uma colecção de dados partilhados, interrelacionados e usados para múltiplos objectivos. 1. Introdução aos Sistemas de Bases de Dados Uma Base de Dados é uma colecção de dados partilhados, interrelacionados e usados para múltiplos objectivos. O conceito de base de dados faz hoje parte do nosso

Leia mais

Bases de Dados II 6638: BSc in Information Systems and Technologies. Cap. 1 Arquitectura de Sistemas de Bases de Dados. Module Introduction

Bases de Dados II 6638: BSc in Information Systems and Technologies. Cap. 1 Arquitectura de Sistemas de Bases de Dados. Module Introduction Bases de Dados II 6638: BSc in Information Systems and Technologies Cap. 1 Module Introduction Objectivos O propósito e a origem da arquitectura de base de dados a três níveis. O conteúdo dos níveis externo,

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

Sumário. Introdução aos Sistemas Distribuídos. Comunicação Via Mensagens. Aplicação Distribuída. Definição. Exemplos. Vantagens Potenciais

Sumário. Introdução aos Sistemas Distribuídos. Comunicação Via Mensagens. Aplicação Distribuída. Definição. Exemplos. Vantagens Potenciais Sumário Introdução aos Sistemas Distribuídos Definição Exemplos September 21, 2008 Vantagens Potenciais Objectivos Aplicação Distribuída O que é? É uma aplicação que consiste em 2 ou mais processos que

Leia mais

Message Oriented Middleware (MOM)

Message Oriented Middleware (MOM) Message Oriented Middleware (MOM) March 24, 2010 Comunicação Assíncrona Problema: Nem sempre as entidades comunicantes estão disponíveis simultaneamente. Por exemplo, um servidor de submissão pode estar

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

Arquitecturas de Sistemas de Base de Dados

Arquitecturas de Sistemas de Base de Dados Arquitecturas de Sistemas de Base de Dados Sistemas Centralizados Sistemas Cliente-Servidor Sistemas Paralelos Sistemas Distribuídos Sistemas Centralizados Correm sobre um único computador e não interagem

Leia mais

Arquitetura de Sistemas Distribuídos. Introdução a Sistemas Distribuídos

Arquitetura de Sistemas Distribuídos. Introdução a Sistemas Distribuídos Introdução a Sistemas Distribuídos Definição: "Um sistema distribuído é uma coleção de computadores autônomos conectados por uma rede e equipados com um sistema de software distribuído." "Um sistema distribuído

Leia mais

Caracterização dos servidores de email

Caracterização dos servidores de email Caracterização dos servidores de email Neste documento é feita a modulação de um servidor de email, com isto pretende-se descrever as principais funcionalidades e características que um servidor de email

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos LICENCIATURA EM COMPUTAÇÃO Prof. Adriano Avelar Site: www.adrianoavelar.com Email: eam.avelar@gmail.com O que veremos hoje... Evolução Histórica Motivação Conceitos Características

Leia mais

Computational viewpoint. Engineering Viewpoint

Computational viewpoint. Engineering Viewpoint Processamento Paralelo RM-ODP Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br) 2007/0 - INF02799 RM-ODP Reference Model for Open Distributed Processing Contém conceitos para a especificação de sistemas

Leia mais

Sistemas Distribuídos e Paralelos

Sistemas Distribuídos e Paralelos Sistemas Distribuídos e Paralelos Web Services Ricardo Mendão Silva Universidade Autónoma de Lisboa r.m.silva@ieee.org November 29, 2014 Ricardo Mendão Silva (UAL) Sistemas Distribuídos e Paralelos November

Leia mais

Processos (Threads,Virtualização e Migração de Código)

Processos (Threads,Virtualização e Migração de Código) Processos (Threads,Virtualização e Migração de Código) Roteiro Processos Threads Virtualização Migração de Código O que é um processo?! Processos são programas em execução. Processo Processo Processo tem

Leia mais

Distributed Systems Concepts and Design

Distributed Systems Concepts and Design Distributed Systems, Cap 2, Coulouris Pag. 1 de 1 Distributed Systems Concepts and Design 2 Modelos de Sistemas Modelos de arquitetura de sistemas distribuídos, estão relacionado com o local onde estão

Leia mais

Características Básicas de Sistemas Distribuídos

Características Básicas de Sistemas Distribuídos Motivação Crescente dependência dos usuários aos sistemas: necessidade de partilhar dados e recursos entre utilizadores; porque os recursos estão naturalmente em máquinas diferentes. Demanda computacional

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

Introdução à Ciência da Computação

Introdução à Ciência da Computação Faculdade de Ciências e Tecnologia Departamento de Matemática e Computação Bacharelado em Ciência da Computação Introdução à Ciência da Computação Aula 05 Rogério Eduardo Garcia (rogerio@fct.unesp.br)

Leia mais

Prof. Marcelo de Sá Barbosa SISTEMAS DISTRIBUIDOS

Prof. Marcelo de Sá Barbosa SISTEMAS DISTRIBUIDOS Prof. Marcelo de Sá Barbosa SISTEMAS DISTRIBUIDOS Objetos distribuídos e invocação remota Introdução Comunicação entre objetos distribuídos Chamada de procedimento remoto Eventos e notificações Objetos

Leia mais

WebSphere MQ. Bruno Miguel de Sousa Gonçalves

WebSphere MQ. Bruno Miguel de Sousa Gonçalves WebSphere MQ Bruno Miguel de Sousa Gonçalves 1.Introdução ao WebSphere Os produtos WebSphere providenciam comunicação entre programas através da interligação entre componentes heterogéneos, processadores,

Leia mais

Sistemas Distribuídos: Conceitos e Projeto Estilos Arquitetônicos e Arquitetura Cliente/Servidor

Sistemas Distribuídos: Conceitos e Projeto Estilos Arquitetônicos e Arquitetura Cliente/Servidor Sistemas Distribuídos: Conceitos e Projeto Estilos Arquitetônicos e Arquitetura Cliente/Servidor Francisco José da Silva e Silva Laboratório de Sistemas Distribuídos (LSD) Departamento de Informática /

Leia mais

Um cluster de servidores de email pode ser usado para servir os emails de uma empresa.

Um cluster de servidores de email pode ser usado para servir os emails de uma empresa. CLUSTERS Pode-se pegar uma certa quantidade de servidores e juntá-los para formar um cluster. O serviço então é distribuído entre esses servidores como se eles fossem uma máquina só. Um cluster de servidores

Leia mais

Redes de computadores e Internet

Redes de computadores e Internet Polo de Viseu Redes de computadores e Internet Aspectos genéricos sobre redes de computadores Redes de computadores O que são redes de computadores? Uma rede de computadores é um sistema de comunicação

Leia mais

Introdução aos Sistemas Operativos

Introdução aos Sistemas Operativos Introdução aos Sistemas Operativos Operating System Concepts, Abraham Silberschatz, Peter Baer Galvin, 6ª Ed., Addison-Wesley, 2002 [cap.1, 2 e 3] Operating Systems, Third Edition Harvey M. Deitel, Prentice

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

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

Resumo. Introdução Classificação Fases Curiosidades

Resumo. Introdução Classificação Fases Curiosidades Tolerância à falha Resumo Introdução Classificação Fases Curiosidades Introdução Sistemas Tolerantes a Falhas são aqueles que possuem a capacidade de continuar provendo corretamente os seus serviços mesmo

Leia mais

Introdução aos Sistemas Distribuídos

Introdução aos Sistemas Distribuídos Material baseado no livro Distributed Systems: Concepts and Design, Edition 3, Addison-Wesley 2001. Introdução aos Sistemas Distribuídos Copyright George Coulouris, Jean Dollimore, Tim Kindberg 2001 email:

Leia mais

APLICAÇÕES EM SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

APLICAÇÕES EM SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 6 - ALGORÍTIMOS PARALELOS MPI - Parallel Virtual Machine e PVM - Parallel Virtual Machine 1. INTRODUÇÃO Inicialmente é necessário conceber alguns conceitos para entendimento dos algoritmos paralelos:

Leia mais

Arquiteturas de Aplicações Distribuídas

Arquiteturas de Aplicações Distribuídas Arquiteturas de Aplicações Distribuídas Fernando Albuquerque 061-2733589 fernando@cic.unb.br www.cic.unb.br/docentes/fernando Tópicos Introdução. HTTP / CGI. API sockets. JDBC. Remote Method Invocation.

Leia mais

CICS Resumo. Acerca deste resumo: Introdução (1-2) Arquitectura (3-4)

CICS Resumo. Acerca deste resumo: Introdução (1-2) Arquitectura (3-4) CICS Resumo Acerca deste resumo: Este é o resumo da matéria estudada para apresentar o sistema IBM CICS, o monitor transaccional mais utilizado. Cada secção diz respeito a um conjunto de acetatos que são

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

Tolerância a Faltas. Índice. Terminologia. Replicação Passiva e activa Modelo Transaccional Transacções distribuídas

Tolerância a Faltas. Índice. Terminologia. Replicação Passiva e activa Modelo Transaccional Transacções distribuídas Tolerância a Faltas Índice Terminologia Falta, erro, falha Fiabilidade, disponibilidade Replicação Passiva e activa Modelo Transaccional Transacções distribuídas Sistema Computacional Sistema computacional:

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

Projecto de Engenharia de Software e Sistemas Distribuídos 2009-10. Requisitos para a 3ª entrega do projecto. FeaRSe.

Projecto de Engenharia de Software e Sistemas Distribuídos 2009-10. Requisitos para a 3ª entrega do projecto. FeaRSe. Departamento de Engenharia Informática Engenharia de Software, Sistemas Distribuídos Requisitos para a 3ª entrega do projecto FeaRSe 6 de Maio de 2010 Índice Índice... 1 1 Sumário... 2 2 Requisitos...

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. 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

SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br

SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br - Aula 5 PROCESSOS 1. INTRODUÇÃO Em sistemas distribuídos é importante examinar os diferentes tipos de processos e como eles desempenham seu papel. O conceito de um processo é originário do campo de sistemas

Leia mais

Enunciado do Projecto

Enunciado do Projecto C O M P U T A Ç Ã O M Ó V E L 2 0 0 7 / 2 0 0 8 Enunciado do Projecto 17 de Março de 2008 1. Objectivos Desenvolver uma aplicação num domínio aplicacional específico que envolva replicação e sincronização

Leia mais

Service Oriented Architecture SOA

Service Oriented Architecture SOA Service Oriented Architecture SOA Arquitetura orientada aos serviços Definição: Arquitetura de sistemas distribuídos em que a funcionalidade é disponibilizada sob a forma de serviços (bem definidos e independentes)

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

Clientes e Servidores

Clientes e Servidores Clientes e Servidores September 29, 2009 Sumário Definição Localização do Servidor/Objectos Transparência da Distribuição Concorrência Preservação de Estado no Servidor Avarias Adaptação ao Canal de Comunicação

Leia mais

MODELOS DE SISTEMAS DISTRIBUÍDOS

MODELOS DE SISTEMAS DISTRIBUÍDOS MODELOS DE SISTEMAS DISTRIBUÍDOS Edeyson Andrade Gomes www.edeyson.com.br Agenda Visão geral Modelos de Arquitetura de Sistemas Distribuídos MASD Camadas de softwares Arquiteturas de sistema Variações

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

A SOLUÇÃO MAIS DETALHADA E EFICIENTE PARA DOCUMENTAÇÃO TOTAL DA INFORMAÇÃO DA EMPRESA E ANÁLISE DE IMPACTO NA INSTALAÇÃO EM AMBIENTE OS/390 OU zos

A SOLUÇÃO MAIS DETALHADA E EFICIENTE PARA DOCUMENTAÇÃO TOTAL DA INFORMAÇÃO DA EMPRESA E ANÁLISE DE IMPACTO NA INSTALAÇÃO EM AMBIENTE OS/390 OU zos A SOLUÇÃO MAIS DETALHADA E EFICIENTE PARA DOCUMENTAÇÃO TOTAL DA INFORMAÇÃO DA EMPRESA E ANÁLISE DE IMPACTO NA INSTALAÇÃO EM AMBIENTE OS/390 OU zos O DOCET é uma solução que integra toda a informação obtida

Leia mais

Introdução aos Sistemas Distribuídos

Introdução aos Sistemas Distribuídos Introdução aos Sistemas Distribuídos September 22, 2009 Sumário Definição Exemplos Vantagens Potenciais Objectivos Obstáculos Aplicação Distribuída O que é? É uma aplicação que consiste em 2 ou mais processos

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

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: Conceitos e Projeto Caracterização de Sistemas Distribuídos

Sistemas Distribuídos: Conceitos e Projeto Caracterização de Sistemas Distribuídos Sistemas Distribuídos: Conceitos e Projeto Caracterização de Sistemas Distribuídos Francisco José da Silva e Silva Laboratório de Sistemas Distribuídos (LSD) Departamento de Informática / UFMA http://www.lsd.deinf.ufma.br

Leia mais

Monitores Transaccionais

Monitores Transaccionais Monitores Transaccionais Tecnologias de Middleware João Nogueira Departamento de Informática Faculdade de Ciências da Universidade de Lisboa Setembro de 2006 Transacção Unidade de trabalho que executa

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

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

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

Sistemas Distribuídos. Introdução. Edeyson Andrade Gomes. www.edeyson.com.br

Sistemas Distribuídos. Introdução. Edeyson Andrade Gomes. www.edeyson.com.br Sistemas Distribuídos Introdução Edeyson Andrade Gomes www.edeyson.com.br SUMÁRIO Definições Características Desafios Vantagens Desvantagens 2 Definições DEFINIÇÕES Um sistema distribuído é uma coleção

Leia mais

Sistemas Operacionais Abertos. Prof. MSc. André Yoshimi Kusumoto andrekusumoto.unip@gmail.com

Sistemas Operacionais Abertos. Prof. MSc. André Yoshimi Kusumoto andrekusumoto.unip@gmail.com Sistemas Operacionais Abertos Prof. MSc. André Yoshimi Kusumoto andrekusumoto.unip@gmail.com Caracterização de Sistemas Distribuídos Coulouris, Dollimore and Kindberg. Distributed Systems: Concepts and

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

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

Livro de Receitas. Modelação Engenharia de Software Sistemas Distribuídos. 2009-04-17 Versão 1.1. Framework de aplicações com Web Services

Livro de Receitas. Modelação Engenharia de Software Sistemas Distribuídos. 2009-04-17 Versão 1.1. Framework de aplicações com Web Services Modelação Engenharia de Software Sistemas Distribuídos Departamento Engenharia Informática Livro de Receitas Framework de aplicações com Web Services 2009-04-17 Versão 1.1 Índice Índice... 2 Nota prévia...

Leia mais

4 Serviços de Aplicação

4 Serviços de Aplicação 4 Serviços de Aplicação A existência de um suporte de comunicação permite a interligação de diversos dispositivos e também a disponibilização de diversas aplicações que adicionam funcionalidades ao sistema.

Leia mais