Professional Documents
Culture Documents
Envolve o posicionamento de suas partes e os relacionamentos entre elas; Envolve uma descrio mais formal das propriedades comuns a todos os modelos de arquitetura.
Caracterstica:
No existe a noo de relgio global; Toda a comunicao entre processos obtida por troca de mensagens.
1)
2)
3)
Modelo de Interao: Trata do desempenho e da dificuldade de estabelecer limites de tempo; Modelo de Falha: Visa fornecer especificaes precisas das falhas que podem ser exibidas por processos e canais.; Modelo de Segurana: Discute as possveis ameaas aos processos e aos canais de comunicaes.
Introduo
Sistemas que so produzidos para trabalhar em ambiente real em qualquer lugar do mundo; Precisam ser projetados para funcionar corretamente no maior nmero possvel de circunstncias e em face das muitas possveis dificuldades e ameaas tais como:
Grande variao de modo de uso: As partes componentes dos sistemas esto sujeitas a grande variao da carga de trabalho.
Introduo
Grande variao de ambientes de sistema: Um sistema distribudo precisa acomodar hardwares, sistemas operacionais e redes heterogneas.
Problemas Internos: Relgios no sincronizados, atualizao de dados conflitantes, muitas formas de falhas de hardware e software envolvendo componentes individuais do sistema.
Introduo
Ameaas Externas: Ataque a integridade e segurana dos dados. Ataque do tipo - denial of service - excessiva requisio de servios.
Modelos de Arquitetura
Um modelo de arquitetura define a forma pela qual os componentes dos sistemas interagem e a maneira pela qual eles so mapeados em uma rede:
A localizao dos componentes atravs da rede de computadores, procurando definir padres teis para a distribuio dos dados e da carga de processamento. A relao entre os componentes, isto , suas regras funcionais e os padres de comunicao entre eles.
Uma simplificao inicial realizada para classificar os processos, segundo suas responsabilidade.
Modelos de Arquitetura
A arquitetura de um sistema sua estrutura em termos de componentes especificados separadamente;
Objetivo Geral: garantir que a estrutura atenda as demandas atuais e, provavelmente, as futuras impostas por ela. Objetivos Especficos: tornar o sistema: Confivel; Gerencivel; Adaptvel; Rentvel.
Modelos de Arquitetura
Os processos podem ser: Processos Servidores; Processos Clientes; Processos Peer;
Essa classificao dos processos identifica: A responsabilidade de cada um; Ajuda a taxar a carga de processamento; Determinar o impacto de falhas em cada um deles.
Modelos de Arquitetura Camadas de Software O termo arquitetura de software referia-se a estruturao do software como camadas ou mdulos em um nico computador; Mais recentemente, em termos de servios oferecidos e requisitados entre os processos localizados no mesmo ou em diferentes computadores.
Um processo servidor aquele que aceita requisies de outros processos. Um servio distribudo pode ser provido por um, ou vrios processos servidores interagindo com cada outros e com o processo cliente, na ordem, para manter a consistncia do sistema.
Modelos de Arquitetura Camadas de Software Esta viso de orientao processo e servio pode ser expressa em termos de camadas de servios.
Aplicaes, Servios
Middleware
Modelos de Arquitetura Camadas de Software 1. Plataforma: Os nveis mais baixos, camadas de hardware e software, so frequentemente referidos como a plataforma para sistemas distribudos e aplicaes. Provem servios para as camadas acima, que so implementadas independentemente em cada computador Facilitando a comunicao e coordenao entre processos.
Modelos de Arquitetura Camadas de Software 2. Middleware: a camada de software cujo propsito criar uma mscara para a heterogeneidade; Prover um modelo de programao conveniente para os programadores de aplicativos. representado por um conjunto de processos ou objetos em um grupo de computadores; Interagem entre si para implementar a comunicao e oferecer suporte para compartilhamento de recursos a aplicativos distribudos.
Modelos de Arquitetura Camadas de Software 2. Middleware: Em particular, alcana o nvel das atividades de comunicao dos programas de aplicao atravs de suporte e abstraes, tais como: Chamada de Mtodos Remotos (RMI); Comunicao entre grupos de processos; Notificao de Eventos; Replicao de dados compartilhados; Transmisso de dados multimdia em tempo real.
Modelos de Arquitetura Camadas de Software 2. Middleware: Pode-se classificar as middleware de quatro formas: 1) Middleware Orientada a Transao (MOT); 2) Middleware Orientada a Mensagem (MOM); 3) Middleware Orientada a Objetos (MOO); 4) Middleware para Servios WEB
Modelos de Arquitetura Camadas de Software 2.1. Middleware Orientada a Transao (MOT). Tambm conhecidos como monitores de processamento de transaes (Transaction-Processing-TP); Usado em aplicaes que demandam rapidez na execuo de transaes remotas; Frequentemente usado com aplicaes de banco de dados distribudos; Servios: Comunicao Sncrona/Assncrona; Transao;
Modelos de Arquitetura Camadas de Software 2.1. Middleware Orientada a Transao (MOT). Tipicamente, os monitores de TP no so usados para comunicao aplicao-aplicao de propsito geral;
Fornecem um ambiente completo para aplicaes de transaes que acessam banco de dados relacionais;
Em monitores de TP, clientes invocam procedimentos remotos que residem em servidores, os quais contm um engine SQL (SGBD). Comandos procedurais no servidor executam um conjunto de statements SQL que, ou so todas bem sucedidas ou falham, como uma unidade transaes;
Modelos de Arquitetura Camadas de Software 2.1. Middleware Orientada a Transao (MOT). Banco de Dados: Operaes executadas em formato de transaes; Programao de Transaes;
Modelos de Arquitetura Camadas de Software 2.1. Middleware Orientada a Transao (MOT). O overhead de comunicao nesta abordagem mantido o menor possvel porque as trocas consistem tipicamente de um nico request/reply;
Ao contrrio dos mltiplos comandos SQL necessrios em servidores de banco de dados;
Aplicaes baseadas em servidores de transaes tendem a ser aplicaes crticas que requerem uma resposta rpida e rgido controle sobre a segurana e a integridade dos dados;
Modelos de Arquitetura Camadas de Software 2.1. Middleware Orientada a Transao (MOT). Tipo comum de transao distribuda definida como uma transao aninhada;
construda com base em uma quantidade de subtransaes; A transao do nvel mais alto pode se ramificar e gerar filhos que executam em paralelo uns aos outros em mquinas diferentes; Para obter ganhos de desempenho ou simplificar a programao;
Modelos de Arquitetura Camadas de Software 2.1. Middleware Orientada a Transao (MOT). Transaes aninhadas so importantes em sistemas distribudos pois proporcionam a distribuio de uma transao em vrias mquinas; O componente que manipula as transaes distribudas denominado de monitor TP;
Modelos de Arquitetura Camadas de Software 2.1. Middleware Orientada a Transao (MOT). Exemplo: DCE Distributed Computing Environment.
Conjunto de tecnologias para computao distribuda, independente de fabricante; Fornece uma estrutura completa para computao distribuda; Prov servios de segurana, servios de nomes e um modelo altamente escalvel para organizar usurios, servios e dados dispersos;
Consrcio HP, IBM, Digital Equipment Corporation, e outros.
Modelos de Arquitetura Camadas de Software 2.2. Middleware Orientada a Mensagem (MOM). Comunicao atravs de passagem de mensagem; Tecnologia inerentemente assncrona, e com fraco acoplamento;
Filas de mensagens implementam um link de comunicao indireto, sem conexo e assncrono entre dois ou mais processos; Filas so independentes de processo; Se a rede de destino cair, as mensagens podem esperar na fila at a falha se resolver; Filas podem ser armazenadas em disco de forma se o gerente de fila cair a fila no perdida;
Modelos de Arquitetura Camadas de Software 2.2. Middleware Orientada a Mensagem (MOM). Vantagens do MOM:
Fornece entrega confivel e sem duplicao de mensagem; Processos se comunicam de forma assncrona e sem conexo direta entre os mesmos; Permite que aplicaes executem de forma independente; O grau de tolerncia a falhas muito alto; Filas de mensagens armazenam mensagens temporariamente em armazenamento persistente;
Principais servios;
Comunicao Assncrona; Priorizao de Mensagens; Segurana; Suporte a Multicasting;
Modelos de Arquitetura Camadas de Software 2.2. Middleware Orientada a Mensagem (MOM). Desvantagens do MOM:
Fica a cargo do desenvolvedor de aplicaes garantir que o emissor e o receptor conheam o formato da mensagem; Como clientes no bloqueiam aps a mensagem ser colocada em uma fila, clientes podem fazer solicitaes mais rapidamente do que servidores podem responder Pode sobrecarregar o sistema. Exemplos: MQSeries (IBM); MSMQ (Microsoft); Java Message Service (Sun);
Modelos de Arquitetura Camadas de Software 2.3. Middleware Orientada a Objetos (MOO). A ideia tornar os princpios orientados a objetos disponveis para o desenvolvimento de sistemas distribudos; Usado para chamar uma operao em uma instncia de objeto que reside em outro processo; O primeiro desses sistemas foi o Common Object Request Broker Architecture (CORBA) da OMG; Microsoft lanou o Component Object Model (COM); Sun forneceu mecanismos para Invocao Remota de Mtodos (RMI);
Modelos de Arquitetura Camadas de Software 2.3. Middleware Orientada a Objetos (MOO). A caracterstica fundamental de um objeto que ele encapsula dados, denominados estado, e as operaes executadas nesses dados, denominadas mtodos; Esses mtodos so disponibilizados por meio de uma interface; Um objeto pode implementar vrias interfaces; Da mesma forma, dada uma definio de interface, pode haver vrios objetos que oferecem uma implementao dela;
Modelos de Arquitetura Camadas de Software 2.3. Middleware Orientada a Objetos (MOO). Para acessar um objeto preciso, antes, referenci-lo;
Modelos de Arquitetura Camadas de Software 2.3. Middleware Orientada a Objetos (MOO). De forma geral, pode-se obter uma referncia para um objeto de trs formas:
O cliente chama um servio de nomes. O servio busca um nome em um diretrio, obtm a localizao do objeto e retorna uma referncia para o mesmo; O cliente solicita que um novo objeto remoto seja instanciado a partir de uma classe e obtm de volta uma referncia para o mesmo; Uma operao sobre um objeto remoto retorna uma referncia para outro objeto remoto.
Modelos de Arquitetura Camadas de Software 2.4. Middleware para Servios WEB. A arquitetura de sistemas distribudos baseados na Web no apresenta diferenas fundamentais em relao outros sistemas distribudos; Web Services agem como uma interface para acessar os servios providos por outros middlewares na Internet; O que torna um servio Web especial: que ele obedece a um conjunto de padres que lhe permitiro ser descoberto e acessado pela Internet por aplicaes de clientes que tambm adotam esses padres.
[Tanenbaum]
UDDI: Universal Description, Discovery and Integration; WSDL: Web Services Definition Language.
Modelos de Arquitetura Camadas de Software 2.4. Middleware para Servios WEB. Algumas Tecnologias:
HTTP (padro); XML (padro) codificao dos dados; WSDL (Web Service Definition Language); UDDI (Universal Description Discovery and Integration); SOAP (padro); Comunicao (RPC); Executa sobre o HTTP;
Modelos de Arquitetura Arquitetura de Sistemas A diviso de responsabilidade entre os componentes do sistema (aplicao, servidor e outros processos) e a localizao dos componentes nos computadores na rede talvez o mais evidente aspecto do projeto de sistemas distribudos. Os principais modelos de arquitetura so: 1. Cliente-Servidor; 2. Servios atendidos por Mltiplos Servidores; 3. Servidores Caches e Proxy; 4. Processos Peer;
1. Cliente-Servidor
a arquitetura mais frequentemente citada quando se discute sistemas distribudos; A estrutura simples, um processo cliente interage com processos servidores individuais em computadores separados de forma a acessar os recursos compartilhados que o servidor gerncia;
1. Cliente-Servidor
Cliente
Requisio
Requisio
Servidor
Resultado
Servidor
Resultado
Cliente
1. Cliente-Servidor
Rede Acesso Remoto VPN
So tneis de criptografia entre pontos autorizados, criados atravs da Internet ou outras redes pblicas e/ou privadas para transferncia de informaes, de modo seguro, entre redes corporativas ou usurios remotos.
2. Mltiplos Servidores
Diversos processos servidores em computadores separados interagindo quando necessrio para prover um servio para um processo cliente. O servidor pode particionar o conjunto de objetos no qual o servio baseado e distribuir eles no prprio servidor ou pode manter cpias replicadas deles nos diversos servidores em diferentes mquinas. A replicao usada para aumentar a performance, disponibilidade e aumentar a tolerncia a falha.
2. Mltiplos Servidores
Servios
Resultado
Servidor
Requisio Resultado
Cliente
Requisio
Servidor
Resultado
Cliente
Requisio
Servidor
Cliente
Resultado Requisio
Resultado
servidor Web
servidor Proxy
Requisio
Cliente
servidor Web
4. Processos Peer-to-Peer
Nesta arquitetura todos os processos executam regras similares, interagindo cooperativamente como pares para executar uma atividade ou computao distribuda sem nenhuma distino entre cliente e servidor. De forma geral, n processos peer podem interagir entre si e o padro de comunicao vai depender dos requisitos da aplicao.
4. Processos Peer-to-Peer
4. Processos Peer-to-Peer
Sua grande vantagem, em relao computao cliente/servidor, possibilitar a colaborao direta entre os usurios, sem depender de servidores administrados por terceiros.
4. Processos Peer-to-Peer
Compartilhamento de Arquivos
4. Processos Peer-to-Peer
Mensagem Instatnea
Resumindo
Esto relacionados com o local onde se encontram as partes e o relacionamento entre elas.
Modelo Cliente-Servidor
Modelo Peer-to-Peer
O usurio executando um browser seleciona um link para um applet cujo cdigo est armazenado no servidor, este cdigo recebido no browser e roda nele; Vantagem: Pode ter um bom tempo de resposta interativa, pois no depende mais dos atrasos e variaes na velocidade da rede de comunicao.
Cliente
Applet
a arquitetura mais conhecida, onde as aplicaes rodam em um computador de mesa junto ao usurio. O sistema operacional e os programas aplicativos geralmente esto no disco local.
Servidor
network
Aplicao de Processos
Servio de Alarme
Modelos Fundamentais
Apresentar os Modelos baseados nas propriedades fundamentais que nos permitem ser mais especficos sobre suas caractersticas as falhas e os riscos de segurana; Um modelo tem que tratar os seguintes pontos: Quais as principais entidades dos sistemas? Como elas interagem? Quais as caractersticas que afetam comportamento individual e coletivo? o seu
Modelos Fundamentais
Os aspectos dos sistemas distribudos que desejamos considerar nos modelos fundamentais so: 1. Interao: Processos interagem enviando mensagens uns aos outros, ou seja, a comunicao entre processos; 2. Falhas: Definir e classificar falhas; 3. Segurana: Definir e classificar as formas com que ataques segurana do sistemas pode assumir;
Modelos Fundamentais 1. Modelos de Interao Sistemas distribudos so compostos de muitos processos interagindo entre si de forma complexa; Mltiplos servidores podem cooperar entre si para prover um servio; Um conjunto de processos pares pode cooperar entre si para atingir um objetivo comum. Dois fatores significantes que afetam a interao de processos em sistemas distribudos:
1. Desempenho na comunicao
A comunicao em uma rede de computadores tem as seguintes caractersticas de desempenho: Latncia: Atraso decorrido entre o incio da transmisso de uma mensagem em um processo remetente e o incio da recepo pelo processo destinatrio.
Tempo que o primeiro bit leva para chegar ao seu destino; Atraso no acesso rede quando est muito carregada; Tempo de processamento gasto pelos servios de comunicao do sistema operacional nos processos de envio e recepo;
1. Desempenho na comunicao
Largura de Banda: Volume total de informaes que pode ser transmitido em determinado momento; Jitter: Variao no tempo exigida para distribuir uma srie de mensagens; Crucial para dados multimdia;
2. Relgios de Computador
Cada computador em um sistema distribudo tem o seu prprio relgio (clock); Nem sempre os relgios dos diferentes sistemas marcam um tempo nico; Mesmo que os relgios de todos os computadores de um SD fossem inicialmente ajustados com o mesmo horrio, com o passar do tempo eles variariam entre si;.
2. Relgios de Computador
Duas posies podem ser adotadas:
2.A. Sncrono:
Todas as operaes, processamento e transmisso de mensagens tem limites conhecidos e so controlados por tempo.
2.B. Assncrono:
Alguns sistemas distribudos no tem limites bem definidos de tempo para velocidade de execuo e tempos de transmisso das mensagens.
Modelos Fundamentais 2. Modelos de Falhas Em um sistema distribudo, tanto os processos como os canais de comunicao podem falhar.
receive
Podemos ter:
FALHAS DE OMISSO: So falhas nos casos onde um processo ou canal de comunicao falha na execuo da ao que deveria fazer.
Tempo
send
Fsico
Z receive receive m3 t1 t2 m1 m2
1. Processo:
Ocorre quando o processo entra em colapso, parando e no executando outro passo de seu programa. Falhas pode ser detectadas por timeouts.
Parada por falha: Sistemas Assncronos: O timeout indica que um processo no est respondendo, sem entrar em detalhes; Colapso, Estar Lento, Mensagens no chegaram; Sistemas Sncronos: O timeout usado para determinar que processos deixaram de responder a mensagens que foram entregues;
2. Canal de Comunicao: O canal de comunicao produz uma falha por omisso quando no concretiza a transferncia de uma mensagem. Pode ser causado por:
Falta de espao no buffer de recepo; Erro durante a transmisso gerando uma mensagem invlida, que descartada.
Clculo da paridade da mensagem;
processo
processo
Falhas por omisso de envio: Perda de mensagens entre o processo remetente e o buffer de envio. Falhas por omisso de recepo: Perda de mensagens entre o buffer de recepo e o processo de destino. Falhas por omisso de canal: Perda de mensagens no meio de comunicao.
send m
receive
Descrio
O processo pra e permanece parado. Outros processos podem detectar esse estado. O processo pra e permanece parado. Outros processos podem no detectar esse estado. Uma mensagem inserida em um buffer de envio nunca chega no buffer de recepo do destinatrio. Um processo conclui o envio, mas a mensagem no colocada em seu buffer de envio. Uma mensagem colocada no buffer de recepo de um processo, mas esse processo no recebe a mensagem. O processo/canal exibe comportamento arbitrrio: ele pode enviar/transmitir mensagens arbritrias em qualquer momento, cometer omisses; um processo pode parar ou realizar uma ao incorreta.
Um processo pode colocar valores errados nos seus itens de dados; Um processo pode retornar valores errados em resposta a uma chamada; Uma solicitao que no seja mais necessria pode ser entregue; Uma mensagem real pode ser entregue mais de uma vez.
Modelos Fundamentais 3. Modelos de Segurana A segurana de um sistema distribudo pode ser obtida tornando seguros os processos e os canais usados por suas interaes e protegendo contra acesso no autorizado os objetos que encapsulam. Direitos de acesso especificam quem pode executar determinadas operaes sobre um objeto.
Quem pode ler ou gravar em seus atributos.
Relgio
Processo
Desempenho
Processo
Os usurios devem ser includos no modelo de segurana como beneficirios dos direitos de acesso.
Desempenho
Canal
No modelo, um invasor poder ser capaz de enviar qualquer mensagem para qualquer processo e ler ou copiar qualquer mensagem entre dois processos. Processos interagem trocando mensagens que ficam expostas ao ataque.
Principal (usurio)
Rede
Principal (servidor)
Servidores e processos peer-to-peer publicam suas interfaces, permitindo que invocaes sejam enviadas a eles por qualquer outro processo.
Processo p
m
Canal de Comunicao
Processo q
Processo p
Canal Seguro
Processo q
Resumindo...
A maioria dos sistemas distribudos organizada com base em um, entre vrios, modelos de arquitetura de sistemas, predominando o modelo cliente-servidor; No modelo peer-to-peer todos os processos desempenham funes semelhantes na explorao dos recursos disponibilizados; A capacidade de mover cdigo de um processo para outro tem resultado em algumas variantes do modelo clienteservidor; Os modelos de interao, falha e segurana identificam as caractersticas comuns dos componentes bsicos a partir dos quais os SD so construdos.