Desarrollo Cliente - Servidor

El modelo de desarrollo Cliente/Servidor se basa en la aplicación de dos conceptos simples, relacionados con la vida cotidiana. En cualquier tipo de práctica comercial, existen dos figuras relevantes, cada una de las cuales desempeña su propio papel.
Una de estas figuras, el Cliente, se dedica a una determinada actividad comercial, ofrece sus productos y desempeña, una serie de funciones. Pero esta figura no puede dar servicio a todas sus funciones sin la existencia de otra, El Servidor, quien proporciona al Cliente las materias primas necesarias para el cumplimiento de sus
funciones.
Además, se ha de garantizar que este flujo de peticiones y de respuestas-de-peticiones se realiza en tiempo real, es decir, que las dos figuras mencionadas han de actuar simultáneamente, de forma que la actividad de uno no se vea perjudicada por la del otro. El Cliente puede realizar peticiones al Servidor (para que le  proporcione el material necesario) sin interrumpir su actividad.

Si trasladamos el ejemplo anterior, al mundo informático, tenemos que ciertas aplicaciones (Clientes), necesitan de otras aplicaciones (Servidores), para poder llevar
a cabo la mayor parte de sus funciones.
Las aplicaciones Clientes realizan peticiones a una o varias aplicaciones Servidoras, que deben encontrarse en ejecución para atender dichas demandas.
El modelo Cliente/Servidor permite diversificar el trabajo que realiza cada aplicación, de forma que los Clientes no se sobrecarguen, cosa que ocurriría si ellos mismos
desempeñaran las funciones que ahora le son proporcionadas de forma directa y transparente.
Por otro lado, con este modelo, todas las tareas que son comunes a distintas aplicaciones Clientes pueden ser implementadas por una única aplicación Servidora, que proporcionará los servicios requeridos por todos los clientes.
Llegados a este punto, es necesario aclarar que, si bien el concepto de Cliente y Servidor más ampliamente difundido en el entorno informático alude principalmente al papel desempeñado por las máquinas, en este modelo, tanto el Cliente como el Servidor son entidades abstractas que pueden residir en la misma máquina o en máquinas diferentes.
Recuerde que cuando hablamos del Modelo Cliente/Servidor, nos referimos siempre a un modelo de desarrollo de software.