Modelos Arquiteturais Carlos Ferraz cagf@cin.ufpe.br
Tópicos da Aula! Cliente-servidor! Peer processes (P2P)! Objetos distribuídos 2003 Carlos A. G. Ferraz 2
O que é um modelo arquitetural?! Estrutura em termos de componentes especificados separadamente! Alocação de componentes em uma rede de computadores! Interrelações de componentes! Divisão de responsabilidades entre componentes 2003 Carlos A. G. Ferraz 3
Arquiteturas
Modelo Cliente-Servidor Clientes invocando servidores individuais Client invocation invocation Server result Server result Client Key: Process: Computer: Instructor s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 Addison-Wesley Publishers 2000 2003 Carlos A. G. Ferraz 5
Arquitetura Cliente-Servidor Clients Clients Service invocation Server invocation Results Results invocation invocation Results Results Servidor Único Múltiplos Servidores 2003 Carlos A. G. Ferraz 6
Clintes magros e gordos Thin-client model Client Presentation Server Data management Application processing Fat-client model Client Presentation Application processing Server Data management Software Engineering, 6 th Edition Chapter 11 Ian Sommerville 2000 2003 Carlos A. G. Ferraz 7
Arquitetura C/S 3-tier Presentation Server Server Client Application processing Data management Software Engineering, 6 th Edition Chapter 11 Ian Sommerville 2000 2003 Carlos A. G. Ferraz 8
Arquiteturas Multitiered Tanenbaum and van Steen. Distributed Systems: Principles and Paradigms Prentice Hall 2002 2003 Carlos A. G. Ferraz 9
Arquitetura de Peer processes (Peer-to-Peer) Application Coordination code Application Coordination code Application Coordination code Instructor s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 Addison-Wesley Publishers 2000 2003 Carlos A. G. Ferraz 10
P2P Centralized: Napster! Napster used centralized servers to keep a catalog of available files. 1. User sends out request Napster searches central database user Search request Search response Napster server user 2. The central server sends back a list of available files for download Download from user user user 3. Requesting user downloads the file directly from another Napster user computer 2003 Carlos A. G. Ferraz 11
P2P Decentralized: Gnutella Partial Map of the Gnutella Network http://dss.clip2.com http://www.limewire.com See also gnutellavision: Real Time Visualization of a Peer to Peer Network http://www.sims.berkeley.edu/~rachna/courses/infoviz/gtv/paper.html 2003 Carlos A. G. Ferraz 12
Exemplo de um SD em um hotel Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 Addison-Wesley Publishers 2000 Spontaneous Networking Internet Discovery service gateway TV/PC Music service Características fundamentais: fácil conexão à rede local fácil integração com serviços locais Usuários móveis: conectividade limitada Hotel wireless segurança e privacidade Um serviço network de descoberta oferece duas interfaces: registration service: usado por servidores lookup service: usado por clientes Laptop PDA Alarm service Camera Guests devices 2003 Carlos A. G. Ferraz 13
Objetos Distribuídos! Uma aplicação distribuída pode ser vista como um conjunto de objetos! Objetos: " Consistem de dados + código " Podem ser clientes, servidores ou ambos " Interface esconde detalhes de implementação " Modelar com objetos não implica no uso de programação orientada a objetos 2003 Carlos A. G. Ferraz 14
Objetos Distribuídos Tanenbaum and van Steen. Distributed Systems: Principles and Paradigms Prentice Hall 2002 Interface local Objeto remoto! Observe a separação entre interface e objeto 2003 Carlos A. G. Ferraz 15
Arquitetura de Objetos Distribuídos o1 o2 o3 o4 S (o1) S (o2) S (o3) S (o4) Software bus o5 o6 Software Engineering, 6 th Edition Chapter 11 Ian Sommerville 2000 S (o5) S (o6)! Middleware: " Object brokers: permitem que objetos se encontrem em um sistema distribuído, e interajam uns com os outros " Object services: permitem criar, nomear, mover, armazenar e gerenciar objetos 2003 Carlos A. G. Ferraz 16
Ligação (Binding) Cliente-Objeto! Ligação implícita Distr_object* obj_ref; obj_ref = ; obj_ref-> do_something(); // Declare a systemwide object reference // Initialize the reference to a distributed object // Implicitly bind and invoke a method! Ligação explícita Distr_object objpref; Local_object* obj_ptr; obj_ref = ; obj_ptr = bind(obj_ref); obj_ptr -> do_something(); // Declare a system-wide object reference // Declare a pointer to local objects // Initialize the reference to a distributed object // Explicitly bind and obtain pointer to local proxy // Invoke a method on the local proxy Tanenbaum and van Steen. Distributed Systems: Principles and Paradigms Prentice Hall 2002 2003 Carlos A. G. Ferraz 17
Comentários finais! O uso de objetos distribuídos melhora a capacidade de manutenção e adaptabilidade de um sistema! Arquiteturas cliente-servidor fornecem uma infra-estrutura versátil que suporta a inserção de novas tecnologias mais rapidamente! Arquiteturas de software cliente-servidor têm sido usadas desde os anos 80 maturidade! Um número de tradeoffs deve ser considerado para selecionar a arquitetura mais apropriada, incluindo: " O crescimento potencial do número de usuários, " Custo e " Homogeneidade do ambiente computacional atual e futuro 2003 Carlos A. G. Ferraz 18