universidade tecnolÓgica federal do paranÁtacla/javaprogparsd/... · arquitetura cliente-servidor...
TRANSCRIPT
- 1 -
Copyright Cesar Augusto Tacla 2008
Especialização – Disciplina Sistemas Distribuídos – Prof. Cesar A. Tacla UTFPR/Curitiba
ARQUITETURAS DE SISTEMAS DISTRIBUÍDOS
Prof. Cesar Augusto Taclahttp://www.dainf.ct.utfpr.edu.br/~tacla
UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁPR
- 2 -
Copyright Cesar Augusto Tacla 2008
Especialização – Disciplina Sistemas Distribuídos – Prof. Cesar A. Tacla UTFPR/Curitiba
Sistemas Distribuídos/UTFPR Prof. Cesar Augusto Tacla 22
Sumário
1. Definição de arquitetura
2. Arquiteturas típicasa. Cliente-servidor
b. Cliente-servidor em cadeia e servidores replicados
c. Cliente-servidor com código móvel
d. Peer-to-peer
- 3 -
Copyright Cesar Augusto Tacla 2008
Especialização – Disciplina Sistemas Distribuídos – Prof. Cesar A. Tacla UTFPR/Curitiba
Sistemas Distribuídos/UTFPR Prof. Cesar Augusto Tacla 33
Sumário
DEFINIÇÃO DE ARQUITETURA
1
- 4 -
Copyright Cesar Augusto Tacla 2008
Especialização – Disciplina Sistemas Distribuídos – Prof. Cesar A. Tacla UTFPR/Curitiba
Sistemas Distribuídos/UTFPR Prof. Cesar Augusto Tacla 44
Arquitetura
◊ O que é arquitetura de um sistema distribuído?
◊ Define� as relações entre estes componentes;
� a divisão de responsabilidades (ex. cliente, servidor)
� a localização dos componentes do sistema;
� e como estas componentes são mapeados para a infra-estrutura de rede
� (Coulouris et al., 2001)
A arquitetura de um sistema é a sua estrutura em termos dos elementos (componentes) constituintes. O objetivo de uma arquitetura (e de dividi-la em componentes) é assegurar que a estrutura satisfaça e satisfará as necessidades dos usuários. As maiores questões envolvidas na definição da arquitetura referem-se à confiabilidade, gerenciabilidade, flexibilidade e balanceamento custo-desempenho do sistema.
Quando estudamos modelos de arquitetura buscamos padrões arquiteturas que definem a localização dos componentes, ou seja, onde colocar o componente na rede buscando padrões que dêem boa distribuição da carga de trabalho e dos dados.
Enfim, a arquitetura trata da divisão de responsabilidades entre os componentes do sistema (processos servidores, clientes e outros processos) e de posicionar estes componentes na rede. Esta divisão de responsabilidades e posicionamento tem implicações no desempenho, confiabilidade e segurança do sistema.
- 5 -
Copyright Cesar Augusto Tacla 2008
Especialização – Disciplina Sistemas Distribuídos – Prof. Cesar A. Tacla UTFPR/Curitiba
Sistemas Distribuídos/UTFPR Prof. Cesar Augusto Tacla 55
Arquitetura: relações entre componentes
cmp Projeto
«executable»Cliente
+ enviar(byte[]) : void+ receber() : byte[]
«executable»Serv idor
+ enviar(byte[]) : void+ receber() : byte[]
Comunicacao
Config
«access»
Os componentes cliente e servidor são capazes de enviar e receber bytes (vetor de bytes).
No diagrama de componentes, as relações descrevem os papéis funcionais e padrões de comunicação utilizados entre os componentes.
Por exemplo, os componentes cliente e servidor são capazes de enviar e receber bytes (vetor de bytes).
- 6 -
Copyright Cesar Augusto Tacla 2008
Especialização – Disciplina Sistemas Distribuídos – Prof. Cesar A. Tacla UTFPR/Curitiba
Sistemas Distribuídos/UTFPR Prof. Cesar Augusto Tacla 66
arquitetura: localização
deployment Projeto
«executable»Cliente
+ enviar(byte[]) : void+ receber() : byte[]
«executable»Serv idor
+ enviar(byte[]) : void+ receber() : byte[]
Comunicacao
Config
«execution environ...Desktop
«execution environ...Desktop
«access»
«TCP/IP»
Onde cada componente do sistema deverá funcionar
No diagrama de componentes, representa-se os componentes localizados nos respectivos ambientes ou máquinas onde executam.
- 7 -
Copyright Cesar Augusto Tacla 2008
Especialização – Disciplina Sistemas Distribuídos – Prof. Cesar A. Tacla UTFPR/Curitiba
Sistemas Distribuídos/UTFPR Prof. Cesar Augusto Tacla 77
Sumário
ARQUITETURAS TÍPICAS
2
- 8 -
Copyright Cesar Augusto Tacla 2008
Especialização – Disciplina Sistemas Distribuídos – Prof. Cesar A. Tacla UTFPR/Curitiba
Sistemas Distribuídos/UTFPR Prof. Cesar Augusto Tacla 88
Sumário
Cliente-servidor
2 a
- 9 -
Copyright Cesar Augusto Tacla 2008
Especialização – Disciplina Sistemas Distribuídos – Prof. Cesar A. Tacla UTFPR/Curitiba
Sistemas Distribuídos/UTFPR Prof. Cesar Augusto Tacla 99
Arquiteturas típicas
◊ Cliente-servidor� 1 servidor
� Vários servidores
� Em cadeia
� Replicados
� Com código móvel (applets)
� Push
� Network computer
� Thin-client
◊ P2P: peer-to-peer� Pura: descentralizada
� Híbrida com cliente-servidor
- 10 -
Copyright Cesar Augusto Tacla 2008
Especialização – Disciplina Sistemas Distribuídos – Prof. Cesar A. Tacla UTFPR/Curitiba
Sistemas Distribuídos/UTFPR Prof. Cesar Augusto Tacla 1010
Arquitetura cliente-servidor (1)
CLIENTE SERVIDOR
◊ Arquitetura mais utilizada em SDs (Coulouris et al., 2001)
CLIENTE
solicitação
resposta
Request-reply
Um servidor pode ser cliente de outro. Por exemplo, um servidor de páginas WEB é cliente de um servidor de arquivos local que gerencia os arquivo das páginas. Outro exemplo é o proxy de WEB (ver slide seguinte).
- 11 -
Copyright Cesar Augusto Tacla 2008
Especialização – Disciplina Sistemas Distribuídos – Prof. Cesar A. Tacla UTFPR/Curitiba
Sistemas Distribuídos/UTFPR Prof. Cesar Augusto Tacla 1111
Sumário
Cliente-servidor em cadeia e servidores replicados
2 b
- 12 -
Copyright Cesar Augusto Tacla 2008
Especialização – Disciplina Sistemas Distribuídos – Prof. Cesar A. Tacla UTFPR/Curitiba
Sistemas Distribuídos/UTFPR Prof. Cesar Augusto Tacla 1212
Arquitetura cliente-servidor: em cadeia
CLIENTESERVIDOR
PROXY
CLIENTE
solicitação
resposta
SERVIDORWEB
solicitação
resposta
SERVIDORWEB
SERVIDORWEB
◊Um servidor pode ser cliente de outro.
Servidores proxy de WEB possuem um espaço de armazenamento temporário para páginas WEB recentemente visitadas pelos clientes. Ao invés de transferir todos os pedidos que chegam até ele aos servidores WEB, primeiramente verifica se a página solicitada está disponível no cache local. Caso esteja disponível e atualizada, serve-a ao cliente. Um servidor proxy aumenta a disponibilidade do serviço (caso um servidor WEB torne-se indisponível (“caia”), suas páginas continuam disponíveis em cache, e aumenta o desempenho do serviço.
- 13 -
Copyright Cesar Augusto Tacla 2008
Especialização – Disciplina Sistemas Distribuídos – Prof. Cesar A. Tacla UTFPR/Curitiba
Sistemas Distribuídos/UTFPR Prof. Cesar Augusto Tacla 1313
Arquitetura cliente-servidor: replicados
CLIENTESERVIDOR
◊ Serviço ofertado por vários servidores.
◊ Ver página inicial de www.tucows.com.br, www.google.com
CLIENTE
solicitação
resposta
SERVIDOR
SERVIDOR
serviço
sincronização
sincronização
Servidores podem rodar em computadores diferentes, mas oferecendo um serviço único. Por exemplo, uma base de dados que possui muitos acessos (muitos clientes) pode ser replicada em diversos servidores que garantem a disponibilidade do serviço com um desempenho satisfatório.Por exemplo, o serviço de busca Google possui vários servidores replicados (índices para páginas WEB): http://www.google.fr/ ou .com.br ou .com. Outro exemplo, são sites que oferecem links alternativos para fazer download de arquivos. Isto indica replicação de dados (ex. www.tucows.com.br).
- 14 -
Copyright Cesar Augusto Tacla 2008
Especialização – Disciplina Sistemas Distribuídos – Prof. Cesar A. Tacla UTFPR/Curitiba
Sistemas Distribuídos/UTFPR Prof. Cesar Augusto Tacla 1414
Sumário
Cliente-servidor com código móvel
2 c
- 15 -
Copyright Cesar Augusto Tacla 2008
Especialização – Disciplina Sistemas Distribuídos – Prof. Cesar A. Tacla UTFPR/Curitiba
Sistemas Distribuídos/UTFPR Prof. Cesar Augusto Tacla 1515
Cliente-servidor: código móvel (1)
CLIENTESERVIDOR
WEB
CLIENTE
solicitação
Página com applet
APPLET
Cliente interage diretamente com a applet
APPLET
SandboxJVM do navegadorCertificado digital para sair
Applets são bastante usadas e servem para ilustrar esta variação da arquitetura cliente-servidor. A vantagem de se utilizar applets (ou código móvel) é prover um tempo de resposta melhor ao usuário, principalmente nos casos onde há muita interatividade (ex. preenchimento de formulários). Como o cliente interage localmente com a applet, não há desperdício de banda de passagem e nem atrasos na comunicação entre cliente e servidor.
- 16 -
Copyright Cesar Augusto Tacla 2008
Especialização – Disciplina Sistemas Distribuídos – Prof. Cesar A. Tacla UTFPR/Curitiba
Sistemas Distribuídos/UTFPR Prof. Cesar Augusto Tacla 1616
Cliente-servidor: código móvel (3)
CLIENTE APPLET
Cliente interage diretamente com a applet
SERVIDORWEB
◊ Arquitetura cliente-servidor tipo push
Applet se comunica com o
servidor para manter cliente atualizado
A applet pode comunicar-se com o servidor com o objetivo de manter o usuário atualizado. Por exemplo, uma applet consulta de tempos em tempos informações sobre cotações de ações disponíveis no servidor e mostra ao usuário. Este modelo é conhecido por “push model”.
- 17 -
Copyright Cesar Augusto Tacla 2008
Especialização – Disciplina Sistemas Distribuídos – Prof. Cesar A. Tacla UTFPR/Curitiba
Sistemas Distribuídos/UTFPR Prof. Cesar Augusto Tacla 1717
Cliente-servidor: “push” (4)
APPLETAPPLET
terra.com.br
APPLETAPPLET
Arquitetura push écomo se o servidorenviasse dados detempos em tempospara os clientes.
Exemplos de applets numa arquitetura cliente-servidor do tipo push.
•Banco do Brasil: http://www.bb.com.br/appbb/portal/voce/ep/inv2/InformacoesDet.jsp?Noticia.codigo=148250
•Lances de jogos de futebol (sites esportivos).
- 18 -
Copyright Cesar Augusto Tacla 2008
Especialização – Disciplina Sistemas Distribuídos – Prof. Cesar A. Tacla UTFPR/Curitiba
Sistemas Distribuídos/UTFPR Prof. Cesar Augusto Tacla 1818
Cliente-servidor: “push” (4)
APPLETAPPLET
APPLETAPPLET
terra.com.br bb.com.br
Applets numa arquitetura cliente-servidor do tipo push.
Exemplos:
•Banco do Brasil: http://www.bb.com.br/appbb/portal/voce/ep/inv2/InformacoesDet.jsp?Noticia.codigo=148250
- 19 -
Copyright Cesar Augusto Tacla 2008
Especialização – Disciplina Sistemas Distribuídos – Prof. Cesar A. Tacla UTFPR/Curitiba
Sistemas Distribuídos/UTFPR Prof. Cesar Augusto Tacla 1919
Sumário
Peer-to-peer
2 d
- 20 -
Copyright Cesar Augusto Tacla 2008
Especialização – Disciplina Sistemas Distribuídos – Prof. Cesar A. Tacla UTFPR/Curitiba
Sistemas Distribuídos/UTFPR Prof. Cesar Augusto Tacla 2020
PEER-TO-PEER (P2P)
◊ Processos desempenham papéis similares� Não há distinção entre cliente e servidor
� Um peer pode ser ora cliente ora servidor
� Peer ou pares atuam cooperativamente
PEER
PEER
PEER
“Todos os hosts são iguais”
Todos os hosts são iguais no compartilhamento de recursos e comunicação.
- 21 -
Copyright Cesar Augusto Tacla 2008
Especialização – Disciplina Sistemas Distribuídos – Prof. Cesar A. Tacla UTFPR/Curitiba
Sistemas Distribuídos/UTFPR Prof. Cesar Augusto Tacla 2121
PEER-TO-PEER (P2P)
◊ Idéia de P2P é antiga� 1962, Licklider (MIT): Intergalatic Network
� Network Control Program
� Primeiro protocolo “host-to-host” NCP
� Precursor do TCP/IP
◊ Alguns eventos levaram ao predomínio do cliente-servidor ���� próximo
As idéias precursoras ou a visão de Licklider levou a criação do protocolo host-to-host NCP, precursor do TCP/IP.
- 22 -
Copyright Cesar Augusto Tacla 2008
Especialização – Disciplina Sistemas Distribuídos – Prof. Cesar A. Tacla UTFPR/Curitiba
Sistemas Distribuídos/UTFPR Prof. Cesar Augusto Tacla 2222
P2P x Cliente-servidor
◊ Por que a arquitetura cliente-servidor predomina?� A Internet tornou-se gradualmente mais comercial, levando as
empresas a criarem firewalls para protegerem as informações e controlarem o acesso
� Milhões de pessoas se conectam a Internet por meio de seus desktops que não podem competir com o poder de processamento dos servidores que formam a espinha dorsal da Internet
� Muitas aplicações da Internet se baseiam na arquitetura cliente-servidor: WWW, FTP
Alguns eventos levaram ao predomínio da arquitetura cliente-servidor:
-A Internet tornou-se gradualmente mais comercial, levando as empresas a criarem firewalls para protegerem as informações e controlarem o acesso;
-Milhões de pessoas se conectam a Internet por meio de seus desktops que não podem competir com o poder de processamento dos servidores que formam a espinha dorsal da Internet;
-Muitas aplicações da Internet se baseiam na arquitetura cliente-servidor: WWW, FTP
- 23 -
Copyright Cesar Augusto Tacla 2008
Especialização – Disciplina Sistemas Distribuídos – Prof. Cesar A. Tacla UTFPR/Curitiba
Sistemas Distribuídos/UTFPR Prof. Cesar Augusto Tacla 2323
Conceito P2P
É uma classe de aplicações que se beneficia dos recursos disponíveis nas pontas da Internet.[Clay Shirky apud Gradecki, 2002 pg. 2]
Internet �
�
�
�
�
- 24 -
Copyright Cesar Augusto Tacla 2008
Especialização – Disciplina Sistemas Distribuídos – Prof. Cesar A. Tacla UTFPR/Curitiba
Sistemas Distribuídos/UTFPR Prof. Cesar Augusto Tacla 2424
P2P: arquitetura descentralizada
◊ Não há autoridade central
◊ Pacotes contêm informação sobre o próximo step
◊ Peers atuam como C/S� Servents = servers + clients
◊ Exemplos� Gnutella
- 25 -
Copyright Cesar Augusto Tacla 2008
Especialização – Disciplina Sistemas Distribuídos – Prof. Cesar A. Tacla UTFPR/Curitiba
Sistemas Distribuídos/UTFPR Prof. Cesar Augusto Tacla 2525
P2P: Gnutella descentralizada
PeerA
PeerB Peer
C
1. Inicia busca (“bossa nova”)
2. RegistraItens solicitados
3. Repassa busca (“bossa nova”)
5. Verifica quem solicitou busca
4. Retorna resultado6. Retorna resultado
- 26 -
Copyright Cesar Augusto Tacla 2008
Especialização – Disciplina Sistemas Distribuídos – Prof. Cesar A. Tacla UTFPR/Curitiba
Sistemas Distribuídos/UTFPR Prof. Cesar Augusto Tacla 2626
P2P: arquitetura híbrida
◊ Peers são clientes qdonecessitam informação de outro cliente
◊ Cliente contata um servidor central
◊ Servidor retorna clientedesejado
◊ Clientes se conversam (peers)
◊ Ex.: Napster, msn
servidores
- 27 -
Copyright Cesar Augusto Tacla 2008
Especialização – Disciplina Sistemas Distribuídos – Prof. Cesar A. Tacla UTFPR/Curitiba
Sistemas Distribuídos/UTFPR Prof. Cesar Augusto Tacla 2727
P2P: Napster arquitetura híbrida
3. Requisição de
MP3
5. Transferência de arquivo
ServidoresNAPSTER
usuário usuário
2. anúncio
1. Baixa o sw
4. Resultados (arquivo, conexão)*
- 28 -
Copyright Cesar Augusto Tacla 2008
Especialização – Disciplina Sistemas Distribuídos – Prof. Cesar A. Tacla UTFPR/Curitiba
Sistemas Distribuídos/UTFPR Prof. Cesar Augusto Tacla 2828
LEITURA
Carey, M.J., "SOA What?," Computer , vol.41, no.3, pp.92-94, March 2008
Abstract: While the Internet's human-facing side is undergoing the Web 2.0 revolution, the machine- facing side is likewise experiencing a major transformation-from an application-based to a service-oriented architecture-both within and across enterprise boundaries.
http://ieeexplore.ieee.org/iel5/2/4476206/04476233.pdf?isnumber=4476206&prod=JNL&arnumber=4476233&arnumber=4476233&arSt=92&ared=94&arAuthor=Carey%2C+M.J.
Goth, G., "Software-as-a-Service: The Spark That Will Change Software Engineering?," Distributed Systems Online, IEEE , vol.9, no.7, pp.3-3, July 2008
Abstract: In the past year, SaaS has emerged from its pioneering group of start-ups and medium-sized vendors delivering software on demand to be embraced by software giants such as Oracle and SAP. Some veteran technologists and industry analysts alsosee SaaS as a catalyst for more interactive, iterative software development.
http://ieeexplore.ieee.org/iel5/8968/4589946/04589949.pdf?isnumber=4589946&prod=JNL&arnumber=4589949&arnumber=4589949&arSt=3&ared=3&arAuthor=Goth%2C+G.
- 29 -
Copyright Cesar Augusto Tacla 2008
Especialização – Disciplina Sistemas Distribuídos – Prof. Cesar A. Tacla UTFPR/Curitiba
Sistemas Distribuídos/UTFPR Prof. Cesar Augusto Tacla 2929
LEITURA
Kiran Nagaraja; Rollins, S.; Khambatti, M., "From the editors: peer-to-peer community: looking beyond the legacy of Napster and Gnutella," Distributed Systems Online, IEEE , vol.7, no.3, pp.-, March 2006
Abstract: Owing to the popularity of Napster and its successors, including Gnutella, Kazaa, Morpheus, and E-Donkey, file sharing has become by far the killer P2P application. Its popularityalmost eclipses other P2P applications. Moreover, much P2P research has targeted the challenges facing these popular file-sharing networks. P2P applications started to use superpeers(a set of more powerful nodes in a heterogeneous network) to transform the existing flat topologyof these networks into a hierarchical one. Superpeers are considered faster and more reliablethan normal peers and take on server-like responsibilities. The field of P2P has yet to realize itsfull potential in the application domain.
http://ieeexplore.ieee.org/iel5/8968/33951/01621018.pdf?isnumber=33951&prod=JNL&arnumber=1621018&arnumber=1621018&arSt=&ared=&arAuthor=Kiran+Nagaraja%3B+Rollins%2C+S.%3B+Khambatti%2C+M.
- 30 -
Copyright Cesar Augusto Tacla 2008
Especialização – Disciplina Sistemas Distribuídos – Prof. Cesar A. Tacla UTFPR/Curitiba
Sistemas Distribuídos/UTFPR Prof. Cesar Augusto Tacla 3030
LEITURA
Kurdi, H.; Li, M.; Al-Raweshidy, H., "A Classification of Emerging and Traditional Grid Systems,"Distributed Systems Online, IEEE , vol.9, no.3, pp.1-1, March 2008
Abstract: Advances in grid computing are stimulating the emergence of novel types of grids, such as accessible, manageable, interactive, and personal grids. More and more researchersare realizing emerging grids' potential to bridge the gap between grid technologies and users. This review of emerging grids sets out to develop a comprehensive classification of bothtraditional and emerging grid systems, with an aim to motivate further research and to help establish a solid foundation in this rapidly developing field.
http://ieeexplore.ieee.org/iel5/8968/4483778/04483779.pdf?isnumber=4483778&prod=JNL&arnumber=4483779&arnumber=4483779&arSt=1&ared=1&arAuthor=Kurdi%2C+H.%3B+Li%2C+M.%3B+Al-Raweshidy%2C+H.
Este artigo tem 13 páginas!!!