Este artigo precisa de máis fontes ou referencias que aparezan nunha publicación acreditada que poidan verificar o seu contido, como libros ou outras publicacións especializadas no tema. Por favor, axude mellorando este artigo. (Desde abril de 2015.)
Representación da arquitectura cliente-servidor.

A arquitectura cliente-servidor é un modelo de aplicación no que as tarefas son divididas entre os provedores de recursos e servizos, chamados servidores, e os demandantes, chamados clientes. Un cliente fai as peticións a outro programa, o servidor, que dá resposta. Esta idea pode ser aplicada a programas executados nun único ordenador, aínda que sexa máis vantaxosa nunha contorna distribuída a través dunha rede de comunicacións.

Exemplos de aplicacións informáticas que usan o modelo cliente-servidor son: o correo electrónico, os servidores de impresión e a World Wide Web.

Información xeral

[editar | editar a fonte]

A arquitectura cliente-servidor é unha estrutura de organización de alto nivel do software na que os clientes se comunican ou interactúan cun servidor, que proporciona distintos recursos e funcionalidades que están así dispoñibles e son xestionados de xeito centralizado.

Nesta arquitectura, a responsabilidade de procesamento divídese entre clientes e servidores (dando lugar a modelos de cliente lixeiro ou cliente pesado segundo as capacidades que se trasladen do servidor aos clientes), e presenta vantaxes de organización debido á centralización da xestión da información nos servidores e a separación de responsabilidades, o que adoita facilitar o deseño de certo tipo de sistemas.

A separación entre cliente e servidor é unha división lóxica en que o servidor non se atopa necesariamente nunha única máquina e non é necesariamente un único programa. De feito, unha variante común son os sistemas en que os diferentes servizos proporcionados polo servidor están divididos en diferentes compoñentes independentes que poden ser executados por diferentes computadores, favorecendo así a distribución do sistema.

Compoñentes e características

[editar | editar a fonte]

Na arquitectura cliente-servidor o remitente dunha solicitude é coñecido como cliente. As súas características son:

O receptor da solicitude enviada polo cliente é coñecido como servidor. As súas características son:

Os servidores poden manter un estado interno (stateful) para cada petición/cliente ou non telo (stateless). Un servidor sen estado interno non garda ningunha información entre as solicitudes. Pola contra, un servidor con estado pode "lembrar" información entre diferentes solicitudes, de xeito que a súa resposta dependa en certo modo desa información. O ámbito desta información "lembrada" pode ser global ou específico a unha sesión (isto é, a un cliente, a un período de tempo, ou a unha combinación de ambos). Por exemplo, un servidor HTTP para páxinas estáticas HTML é un exemplo de servidor sen estado, mentres que Apache Tomcat é un exemplo dun servidor con estado.

A interacción entre o cliente e o servidor descríbese frecuentemente usando diagramas de secuencia. Os diagramas de secuencia son parte da linguaxe de modelaxe estándar UML.

Vantaxes

[editar | editar a fonte]

A arquitectura cliente-servidor presenta as seguintes fortalezas:

Desvantaxes

[editar | editar a fonte]

A arquitectura cliente-servidor presenta as seguintes debilidades: