Baixe o app para aproveitar ainda mais
Prévia do material em texto
Sistemas Distribuidos Arquiteturas Raphael Winckler de Bettio Organização Lógica “Apesar da falta de consenso sobre muitas questões de sistemas distribuídos há uma delas com o qual muitos pesquisadores e praticantes concordam: pensar em termos de clientes que requisitam serviços de servidores nos ajuda a entender e gerenciar a complexidade de sistemas distribuídos” Tanenbaum Divisões ● Estilos Arquitetônicos – Componentes – Conectores ● Arquitetura dos Sistemas – Clientes – Servidores Estilos Arquitetônicos ● Componente: é uma unidade modular com interfaces requeridas e fornecidas bem definidas que é substituível dentro de seu ambiente. ● Conector: Mecânismo que serve como mediador da comunicação. Componente 1 Componente 2 Componente 2 Componente 1 Estilos Arquitetônicos ● Camadas ● Baseados em Objetos ● Centradas em Dados ● Baseadas em Eventos Tanenbaum Estilos Arquitetônicos ● Camadas: Um componente da camada de modo hierárquico ● Amplamente utilizado pela comunidade de redes. Estilos Arquitetônicos ● Baseado em Objetos: Cada componente é interligado por meio de uma RPC (Remote Procedure Call) ● Amplamente utilizada em sistemas comerciais de grande porte. Estilos Arquitetônicos ● Centradas em dados: comunicam-se a partir de um repositório central de dados. ● Sistemas WEB / SVN/CVS Estilos Arquitetônicos ● Baseadas em Eventos: Os processos se comunicam, em essência, por meio da propagação de eventos. – Os componentes não precisam se referir explicitamente aos outros → referencialmente desacoplados – Sistemas de Mensageria Arquiteturas de Sistemas ● Servidor: é um processo que implementa um serviço específico. – Sistema de Banco de Dados – Servidor de Chat ● Cliente: é um processo que requisita um serviço de um servidor enviando uma requisição. ● A iteração cliente/servidor é conhecida como comportamento de requisição- resposta Arquiteturas de Sistemas ● Centralizadas ● Descentralizadas ● Híbridas Arquiteturas de Sistemas ● Centralizadas: O modelo cliente-servidor tem sofrido muitas críticas ao longo dos anos – Em muitos casos não existe uma distinção clara de quem é serviço e que é cliente. IRPF Receita NET RecReceita NET Arquiteturas de Sistemas ● Considerando que a maioria das aplicações cliente-servidor tem por objetivo dar suporte a acesso a banco de dados – Nível de Interface com o usuário – Nível de processamento – Nível de dados Arquitetura de Sistemas ● Interface com o usuário: faz a conexão entre o sistema de o usuário. – Tela baseada em texto ● Como nos exemplos que produzimos na aula de RMI (Calculadora) – Interfaces gráficas ● Desktop (Swing) ● Web (baseadas em HTML) Arquitetura de Sistemas ● Processamento: é a parte que contém o programa em sí – Regras de Negócio ● Validações de dados ● Cálculos ● Dados: onde os dados são armazenados – Banco de Dados – Sistema de Arquivos Arquiteturas de Sistemas Arquitetura de Sistemas IRPF Receita NET RecReceita NET Arquiteturas de Sistemas ● Descentralizadas: De uma perspectiva de alto nível os processos que constituem um sistema descentralizado são todos iguais – A grande maioria dos processos é simétrica: cada processo agirá como cliente e como servidor ao mesmo tempo – Peer-to-Peer: Classe moderna de sistemas descentralizados que suporta distribuição horizontal Arquietura de Sistemas ● UseNet – Unix User Network – Meio de Comunicação ● Postam Mensagens (artigos) ● Fóruns agrupados por assunto (newsgroup) ● As mensagens são transmitidas para uma rede de servidores interligados “Foi um dos primeiros sistemas peer-to-peer, 1980” Arquiteturas de Sistemas ● Híbridas: São arquiteturas que combinam aspectos Centralizados e Descentralizados. – Sistemas distribuídos colaborativos ● Peer-to-Peer (descentralizado) que utiliza um sistema Cliente-Servidor para iniciar a conexão – Napster (emule, kazaa) – Torrent Arquitetura de Sistemas ● Peer-to-Peer – Transferência de Arquivos – 1999 – Napster ● Compartilhamento de mp3 ● Primeiro ● Fechado por problemas jurídicos – Kazaa e o BitTorrent ● Duas arquiteturas semelhantes Arquitetura de Sistemas ● Kazaa: É um dos programas de transferência de arquivos mais utilizados atualmente. Arquitetura de Sistemas ● BitTorrent: Sistema peer-to-peer de compartilhamento de arquivos SOA ● Arquitetura Orientada a Serviço – Desvinculando o domínio do negócio de tecnologias e modelos específicos, como linguagens e Sos, SOA oferece a organização a chance de organizar as mudanças exigidas por seu contexto de negócio sem sobrecarregar a TI ● A utilização de Web Services é a mais comum na construção de serviços, entretanto não é a única – HTTP (Restful Web Services), JMS, Sockets, RMI, Corba, DCOM ... SOA ● Arquitetura Orientada a Serviços SOA – Web Services ● Webservices – Representa a materialização da idéia de um serviço que é disponibilizado na internet e que pode ser acessado em qualquer lugar. – Representa a idéia de que um ou mais clientes enviem requisições de um tipo bem definido de informação e recebam respostas síncronas ou assíncronas SOA – Web Services ● Protocolo HTTP: protocolo padrão para transmissão de dados pela internet ● XML: Formato padrão para troca de informações. É um dos principais elementos da tecnologia de Web Services ● SOAP: Estrutura padrão de empacotamento para transporte de documentos XML. Permite que clientes e servidores diferentes possam iteragir facilmente. SOA – Web Services ● Web Service Language (WSDL): Tecnologia XML que descreve de forma padronizada a interface de um WebService. Determina como são representados os parâmetros de entrada/saída. ● UDDI: Descreve um registro mundial de serviços e serve como “propaganda”. SOA – Web Services ● Serviço: Recebe uma String e retorna uma String SOA – Web Services ● WSDL SOA – Web Services ● SOAP: Estrutura padrão → ← Web Service SOA – Web Services ● Arquitetura Básica Frameworks ● JXTA: framework java para construção de aplicações peer-to-peer – Jxta-c: versão em C/C++/C# ● Jini: framework para construção de aplicações SOA ● Axis, Xfire (CXF): frameworks para construção de webservices ● RMI: tecnologia RPC para java Trabalho ● Caso 1 – Empresa de Seguros – Existem diversas modalidades de Seguro e diferentes regras para cada tipo – Os clientes são empresas de venda de eletrodomésticos – Os seguros devem ser feitos nos clientes – Não existe garantia de 100% de disponibilidade de rede ● Caso 2 – Conglomerado de Universidades – Requisitou propostas para um sistema de distribuição de artigos – Não existe disponibilidade de um datacenter para armazenar os artigos Bibliografia ● Coulouris, Sistemas Distribuídos, Conceitos e Projeto. ● Tanenbaum, A.S. Sistemas Distribuídos. ● Marzullo, SOA na prática. Slide 1 Slide 2 Slide 3 Slide 4 Slide 5 Slide 6 Slide 7 Slide 8 Slide 9 Slide 10 Slide 11 Slide 12 Slide 13 Slide 14 Slide 15 Slide 16 Slide 17 Slide 18 Slide 19 Slide 20 Slide 21 Slide 22 Slide 23 Slide 24 Slide 25 Slide 26 Slide 27 Slide 28 Slide 29 Slide 30 Slide 31 Slide 32 Slide 33 Slide 34 Slide 35
Compartilhar