Documentos relacionados
Sistemas Distribuídos

SISTEMAS DISTRIBUÍDOS

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

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

PEER DATA MANAGEMENT SYSTEM

SISTEMAS DISTRIBUÍDOS

SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar

Introdução ao Modelos de Duas Camadas Cliente Servidor

Arquitetura dos Sistemas de Informação Distribuídos

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

Comparação SDs X Scs

SISTEMAS DISTRIBUIDOS


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

Sistemas Distribuídos Arquitetura de Sistemas Distribuídos I. Prof. MSc. Hugo Souza

Paradigma Cliente/Servidor

Fundamentos de Banco de Dados

Resumo. Introdução História Caracteristicas Exemplos Arquitetura Distribuição Vertical vs Distribuição Horizontal Segurança Conclusão

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

Comunicação em Sistemas Distribuídos. Conceitos: Paradigma C/S. Conceitos: Paradigma C/S. Paradigma Cliente/Servidor

Redes de Computadores Aula 3

Revisão. Karine Peralta

BANCO DE DADOS DISTRIBUÍDOS e DATAWAREHOUSING

Definição de Padrões. Padrões Arquiteturais. Padrões Arquiteturais. Arquiteturas de Referência. Da arquitetura a implementação. Elementos de um Padrão

Arquiteturas de Software Problemas e soluções

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

Profs. Deja e Andrei

Definição São sistemas distribuídos compostos de nós interconectados, aptos a se auto-organizar em topologias de rede, com o intuito de compartilhar

Aula 03-04: Modelos de Sistemas Distribuídos

ARQUITETURA DE SISTEMAS. Cleviton Monteiro

Sistemas Distribuídos

MODELO CLIENTE SERVIDOR

Arquitetura de Banco de Dados

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

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

Sistemas Distribuídos

Sistemas Operacionais

Sistemas Distribuídos

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

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

UFG - Instituto de Informática

UNIVERSIDADE. Sistemas Distribuídos

Definição São sistemas distribuídos compostos de nós interconectados, aptos a se auto-organizar em topologias de rede, com o intuito de compartilhar

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

Sistemas Distribuídos. Introdução

Chord. Tecnologias de Middleware. Fernando Martins - fmp.martins@gmail.com

Projeto de Arquitetura

Infra-Estrutura de TI: Hardware e Software

Modelos de Arquiteturas. Prof. Andrêza Leite

Sistemas Operacionais

Redes de Computadores

Redes de Computadores

Arquitetura de Sistemas Distribuídos

SISTEMAS DISTRIBUÍDOS

Sistema centralizado O Paradigma Cliente/Servidor

Redes de Computadores e suas classificações. Maurício Severich

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 05 Estrutura e arquitetura do SO Parte 2. Cursos de Computação

UFG - Instituto de Informática

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados:

A computação na nuvem é um novo modelo de computação que permite ao usuário final acessar uma grande quantidade de aplicações e serviços em qualquer

Padrões Arquiteturais. Sistemas Distribuídos: Broker

UFG - Instituto de Informática

SISTEMAS OPERACIONAIS

Padrões Arquiteturais e de Integração - Parte 1

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

Rede Peer-To-Peer. Conteúdo

Administração de Sistemas de Informação Gerenciais

Sistemas Distribuídos. Ricardo Ribeiro dos Santos

Eduardo Bezerra. Editora Campus/Elsevier

3 Arquitetura do Sistema

Sistemas Operacionais Introdução. Professora: Michelle Nery

MÓDULO 8 ARQUITETURA DOS SISTEMAS DE BANCO DE DADOS

Sistemas Distribuídos

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

Sistemas distribuídos:comunicação

Disciplina de Banco de Dados Introdução

TECNOLOGIA WEB. Principais Protocolos na Internet Aula 2. Profa. Rosemary Melo

Sistemas Distribuídos

Gerência de Redes. Arquitetura de Gerenciamento.

Tencologia em Análise e Desenvolvimento de Sistemas Disciplina: WEB I Conteúdo: Arquitetura de Software Aula 03

Capítulo 7 CAMADA DE TRANSPORTE

WINDOWS NT SERVER 4.0

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

Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto

Projeto de Arquitetura

Introdução. Arquitetura de Rede de Computadores. Prof. Pedro Neto

Desenvolvimento Cliente-Servidor 1

Sistemas Operacionais Carlos Eduardo Portela Serra de Castro

Redes de Computadores. Prof. Dr. Rogério Galante Negri

Sistemas Distribuídos

REDE DE COMPUTADORES

MRP II. Planejamento e Controle da Produção 3 professor Muris Lage Junior

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

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

Sistemas Operacionais II. Prof. Gleison Batista de Sousa

LINGUAGEM DE BANCO DE DADOS

Transcrição:

Sistemas Distribuídos Arquitetura de Sistemas Distribuídos Aula II Prof. Rosemary Silveira F. Melo

Arquitetura de Sistemas Distribuídos Conceito de Arquitetura de Software Principais elementos arquiteturais Modelos Arquiteturais Evolução das Arquiteturas Estilos Arquiteturais

Conceito de Arquitetura de Software é a estrutura de um sistema, que consiste de componentes de software, das propriedades externamente visíveis desses componentes e dos relacionamentos entre eles. é a estrutura ou organização dos mais significativos componentes do sistema e suas interações.

Principais elementos arquiteturais Componentes é uma unidade modular com interfaces requeridas e fornecidas bem definidas que é substituível dentro do seu ambiente. são elementos de uma arquitetura que geralmente implementam: processamento (funcionalidade ou comportamento); estado (informação ou dados); interação ( interconexão, comunicação, coordenação e mediação).

Principais elementos arquiteturais Componentes pode ser uma simples operação ou complexo como um sistema inteiro. Pode ser visto pelo usuário (humano ou outro software) somente através da sua interface pública.

Principais elementos arquiteturais Conectores tipo de componente responsável pela interação entre componentes. em sistemas desktop convencionais os conectores são geralmente representados por simples chamadas de procedimento (procedure call) ou acesso a dados compartilhados. em sistemas complexos eles passam a ter identidades, papéis e artefatos de implementação único.

Modelos arquiteturais Define a forma pela qual os componentes dos sistemas interagem e a maneira pela qual eles são mapeados em uma rede de computadores subjacente (Coulouris, 2005).

Evolução das arquiteturas

Evolução das arquiteturas Arquiteturas 1 camada (Mainframes) Dominantes até década de 80 como arquitetura corporativa Terminais burros somente para apresentar as informações.

Evolução das arquiteturas Arquiteturas 1 camada (Mainframes) Desvantagens: Manutenção difícil e cara, proporcional a sua eficiência. Problemas de congestionamento na entrada do servidor devido a chegada de pedidos Congestionamento no tratamento da informação (sistema central responsável por tudo, até pela interface) Problema básico: interface não amigável

Evolução das arquiteturas

Evolução das arquiteturas Arquitetura Cliente/Servidor Vantagens: Camada de apresentação no Cliente utiliza processamento local (aproveita PCs da empresa). Oferecer sistemas com interfaces gráficas amigáveis Integrar o desktop e os dados corporativos.

Evolução das arquiteturas Arquitetura Cliente/Servidor Desvantagens: Escalabilidade limitada Enormes problemas de manutenção (mudanças na lógica de aplicação forçava instalações) Cada cliente uma conexão com o SGBD

Evolução das arquiteturas

Evolução das arquiteturas Arquitetura 3 Camadas A arquitetura cliente/servidor em 2 camadas sofria de vários problemas: Falta de escalabilidade (conexões a bancos de dados) Enormes problemas de manutenção (mudanças na lógica de aplicação forçava instalações) Dificuldade de acessar fontes heterogêneas

Evolução das arquiteturas Arquitetura 3 Camadas Vantagens: Perda de performance é compensada com ganho de flexibilidade. Aumento da escalabilidade e confiabilidade do sistema. Problemas de manutenção foram reduzidos, pois mudanças nas camadas de aplicação e de dados não necessitam de novas instalacões no desktop.

Evolução das arquiteturas Arquitetura 3 Camadas Desvantagens: Integração via Internet Problema que a maioria não foi projetada para internet Integração entre sistemas 3-tiers falta de padronização

Evolução das arquiteturas

Evolução das arquiteturas

Evolução das arquiteturas Arquitetura n-camadas A arquitetura em 3 camadas original sofre de problemas: A instalação inicial dos programas no desktop é cara. O problema de manutenção ainda persiste quando há mudanças na camada de apresentação. Não se pode instalar software facilmente num desktop que não está sob seu controle administrativo

Evolução das arquiteturas Arquitetura n-camadas Uso do Browser como Cliente Universal/Thin Client A camada de aplicação se quebra em duas: Web e Aplicação Evita-se instalar qualquer software no desktop e portanto, problemas de manutenção. Pode-se chamar de 3 camadas porque às vezes as camadas Web e Aplicação freqüentemente rodam na mesma máquina (pequenos volumes)..

Evolução das arquiteturas Arquitetura n-camadas Desvantagens: Complexidade Fazer aplicações distribuídas multicamadas é difícil. Tem que: Implementar tolerância a falhas Implementar gerência de transações distribuídas Implementar balanceamento de carga Implementar resource pooling Muito middleware envolvido

Evolução das arquiteturas Arquitetura n-camadas Desvantagens: Informação redundante Dificuldade e o custo de desenvolvimento e manutenção. Cresce exponencialmente com o número de camadas

Evolução das arquiteturas O truque é introduzir middleware num servidor de aplicação que ofereça esses serviços automaticamente. Além do mais, as soluções oferecidas (J2EE,. Net) são baseadas em componentes.

Por quê definir uma arquitetura para Sistemas Distribuídos? Sistemas distribuídos são complexas peças de software. Componentes estão espalhados por diversas máquinas. Sistemas devem ser organizados adequadamente: organização lógica do conjunto de componentes e organização física

Estilos arquiteturais Estilos arquiteturais definem decisões gerais de projeto que impõem restrições e que podem precisar ser detalhadas em decisões mais específicas para o sistema em questão. Não são definidos detalhes acerca de componentes utilizados, suas interfaces e seus mecanismos de interação. O arquiteto deve detalhar estas decisões e adaptá-las para o contexto específico de uma aplicação em particular.

Estilos em Camada Estilos arquiteturais Estilos com Memória Compartilhada Estilos Baseados em Evento Peer-to to-peer

Estilos arquiteturais Estilos em Camada a arquitetura é separada em camadas ordenadas, onde um programa de uma camada pode solicitar serviços de uma camada inferior. Virtual Machines várias camadas Client-Server - duas camadas com conexões em rede

Estilos arquiteturais Estilos em Camada - Virtual Machine

Estilos arquiteturais Estilos em Camada Client-Server

Estilos arquiteturais Estilos com Memória Compartilhada caracterizado pela presença de múltiplos componentes que acessam o mesmo repositório de dados e se comunicam através deste repositório. - programas independentes acessam e se comunicam exclusivamente através de um repositório global, conhecido como blackboard.

Estilos arquiteturais Estilos com Memória Compartilhada Exemplo: conjunto de ferramentas CASE integrada

Estilos arquiteturais Estilos com Memória Compartilhada

Estilos arquiteturais Estilos Baseados em Evento caracterizados por componentes independentes que se comunicam somente através de eventos transmitidos por um barramento (conector). altamente indicado para sistemas com componentes concorrentes altamente desacoplados onde, em um determinado momento, um componente pode estar ou criando ou consumindo informação.

Estilos arquiteturais Estilos Baseados em Evento Nesta arquitetura, processos demonstram o interesse por um evento ou conjunto de eventos (processo se subscreve) e esperam pela notificação de qualquer um desses eventos, gerados por um processo notificador. O produtor publica uma informação em um gerenciador de eventos (middleware) e os consumidores se subscresvem para receber as informações deste gerenciador. Eventos e notificações.

Estilos arquiteturais Estilos Baseados em Evento

Estilos arquiteturais Peer-to-Peer (P2P) consiste em uma rede de peers autônomos fracamente acoplados. cada peer atua como um cliente e como um servidor. peers se comunicam utilizando protocolo de rede (ex.: napster, gnutella, emule, PPLive) descentraliza tanto a informação quanto o controle, fazendo com que a descoberta de recursos seja um aspecto importante.

Estilos arquiteturais Peer-to-Peer (P2P) na descoberta de recursos em sistemas P2P puro: a solicitação é lançada na rede como um todo a requisição se propaga até que a informação seja descoberta se a informação é encontrada o peer obtém o endereço direto do outro peer e contacta diretamente.

Peer-to-Peer (P2P) Estilos arquiteturais na descoberta de recursos em sistemas P2P híbrido: processo é otimizado por a presença de peers especiais, especializados na localização de outros peers ou disponibilização de diretórios que localizam as informações. Ex.: napster (utiliza um servidor central para indexação das músicas e localização de outros peers). estilo popular nas aplicações de compartilhamento de arquivos, utilizado também B2B commerce, chat, redes de sensores.

Estilos arquiteturais Peer-to-Peer (P2P)

Arquiteturas de Sistemas Como diversos sistemas distribuídos são realmente organizados? Onde são colocados os componentes de software? Onde é estabelecida a interação entre as peças de software?

Arquiteturas de Sistemas Arquiteturas Centralizadas Cliente-Servidor: terminais bancários Arquiteturas Descentralizada Peer-to-Peer (P2P): E-Chords Arquiteturas Híbridas Peer-to-Peer (P2P): BitTorrent, PPLive

Arquiteturas Centralizadas Modelo Cliente-Servidor processos são divididos em dois grupos Servidor: processo que implementa um serviço específico Cliente: processo que requisita um serviço ao servidor Requisição -> Resposta

Arquiteturas Centralizadas

Arquiteturas Centralizadas

Arquiteturas Centralizadas Modelo Cliente-Servidor: questões, questões!! Clientes e Servidores multithreads? Comunicação??? Qual o tipo de aplicação? Sem conexão, não confiável (UDP)? Com conexão, confiável (TCP)?

Arquiteturas Centralizadas Considerando aplicações cliente-servidor que visam dar suporte ao acesso de usuários a banco de dados: Nível de interface Nível de processamento Nível de dados

Arquiteturas Centralizadas

Arquiteturas Centralizadas Com a distinção entre três níveis lógicos, como distribuir fisicamente uma aplicação cliente-servidor por várias máquinas? Arquitetura de duas divisões físicas Arquitetura de três divisões físicas

Arquiteturas Centralizadas

Arquiteturas Centralizadas

Arquiteturas Centralizadas

Arquiteturas Centralizadas

Arquiteturas Centralizadas

Arquiteturas Centralizadas

Arquiteturas Descentralizadas Clientes e servidores são fisicamente subdivididos em partes logicamente equivalentes, mas cada parte está operando em sua própria porção do conjunto completo de dados, o que equilibra a carga!!!! Interação entre os processos é simétrica: cada processo agirá como um cliente e um servidor ao mesmo tempo.

Arquiteturas Descentralizadas Sistemas P2P questões, questões, questões!! Como organizar os peers em uma rede de sobreposição? Como difundir o conteúdo? Como incentivar os peers a colaborarem?

Arquiteturas Descentralizadas

Arquiteturas Descentralizadas

Arquiteturas Descentralizadas

Arquiteturas Descentralizadas

Arquiteturas Descentralizadas

Arquiteturas Descentralizadas