Blogia
Blog de Jordi Sequero per FT

Arquitectura Client / Servidor

Arquitectura Client / Servidor

L’arquitectura informàtica més utilitzada en entorns distribuïts és la relació Client/Servidor, essent la web l’exemple més representatiu.

En aquesta relació, el client (habitualment una aplicació que utilitza una interficie gràfica d’ús) realitza peticions al servidor perquè li retorni la informació sol·licitada. En aquesta relació, el client és l’agent actiu (és ell qui inicia la relació enviant preguntes al servidor i esperant les respostes), mentre que el servidor és l’element passiu que espera ésser preguntat. En relació a aquest últim cal destacar que existeixen diferents tipus de servidors segons el seu propòsit encara que la seva arquitectura sigui la mateixa. Alguns d’aquests són els servidors web (que accepta les preguntes http dels clients, donant respostes que, usualment són pàgines web en format html); servidors d’aplicacions (és un motor de software dedicat a posar en funcionament certes aplicacions); servidors terminals (serveixen per connectar múltiples sistemes, possiblement de manera remota cap a un processador central) i els servidors de correu (també conegut com MTA, mail transfer agent, que en el context del sistemes de noms de domini, és un software que transfereix els missatges de correu electrònic d’un ordinador a un altre). Els servidors poden ser “stateless” o “stateful”. En relació al primer destacar que tracten cada pregunta de manera independent i, per tant, no manté informació entre preguntes ni les relaciona. Un exemple d’aquest tipus de servidor pot ésser les pàgines http estàtiques. Aquest tipus de servidor tenen l’avantatge del seu disseny simple però te la desavantatge de necessitar més informació en cada pregunta. Per la seva part, un servidor “stateful” manté informació de les preguntes anterior i les relaciona proporcionant amb això, unes respostes més encertades davant preguntes o demandes més simples, això sí, amb la necessitat d’un disseny molt més complex. Com a possible exemple tenim el servidor Apache Tomcat que utilitza el llenguatge Java.

La relació client/servidor es molt sovint descrita com una seqüència de diagrames que ens mostra amb dos línies verticals paral·leles diferents processos o objectes que interactuen simultàniament i, amb fletxes horitzontals, marca els missatges que s’envien en l’ordre segons s’han donat. Aquesta seqüència està estandarditzada per UML (Unified Modeling Language).


Aquest tipus d’arquitectura, client/servidor és coneguda habitualment com arquitectura de dos nivells, encara que també es pot parlar d’una arquitectura de tres nivells formada pel client, els servidors de aplicacions i els servidors de les bases de dades que emmagatzemen la informació pels anteriors, o bé, d’una arquitectura de n-nivells amb més de dos servidors per facilitar els resultats, però que és molt més difícil de programar. Les avantatges d’utilitzar aquesta arquitectura són que tota la informació està emmagatzemada als servidors i no a diferents sistemes sense control i consta de tecnologies més estables, més segures (degut a que el servidor només permet la modificació de dades als usuaris autoritzats) i amicables. Però aquest sistema també te les seves desavantatges com són les congestions de trànsit quan un gran nombre de clients realitzen la mateixa sol·licitud; si el servidor falla no hi ha possibilitat d’accedir a les sol·licituds; el hardware i software és, generalment molt estricte.

 

Existeixen diferents formes de comunicació: “addressing” en la relació Client/Servidor de les que destacarem el procés/computadora, on la direcció és dividida segons el model “procés@màquina” i d’aquesta manera la direcció 56@453 indica el procés 56 a la màquina o computadora 453; l’anomenada “nom del servidor” on el servidor té un índex de tots els noms i adreces dels servidors d’un domini determinat; “Localització de paquets”, on els missatges són enviats a tots els ordinadors del sistema distribuït per determinar la direcció del sistema receptor i, per últim, el “trader”, que indexa tots els serveis possibles en un sistema distribuït i quan un client demana un servei particular aquest sistema realitza una cerca pel seu índex fins trobar l’ordinador que pot donar millor solució.

 

0 comentarios