Arquitectura cliente/servidor:
Procesa la información de un modo distribuido. Así los usuarios finales pueden estar dispersos en un área geográfica mas o menos extensa (edificio, localidad, país...), y acceder a un conjunto común de recursos compartidos.
Características:
- El acceso debe ser transparente ( el cliente puede desconocer la ubicación física del recurso que va a utilizar), y preferiblemente multiplataforma, dicho de otro modo, independiente del sistema operativo, del software de aplicación e incluso del hardware.

- Protocolos asimétricos, donde el servidor se limita a escuchar, en espera de que un cliente inicie una solicitud.
- El servidor ofrecerá recursos.
- El servidor ofrecerá también una serie de servicios, que serán usados por los clientes. Estos servicios estarán encapsulados, para ocultar a los clientes los detalles de su implementación ( por ejemplo, aceptar el requerimiento de un cliente sobre una base de datos o formatear los datos obtenidos antes de transmitirlos al cliente).

- Facilitará la integridad y el mantenimiento tanto de los datos como de los programas debido a que se encuentran centralizados en el servidor o servidores.
- Los sistemas estarán débilmente acoplados.
- Facilitar la escalabilidad (horizontal y vertical).

Elementos de una arquitectura cliente/servidor:
- El servidor:
- Cuando hablamos de una forma genérica, al mencionar a un servidor, nos referimos a un ordenador, normalmente con prestaciones elevadas, que ejecuta servicios para atender las demandas de diferentes clientes.
- Sin embargo, bajo el punto de vista de la arquitectura cliente/servidor, un servidor es un proceso que ofrece el recurso (o recursos) a los clientes que lo solicitan.

Servidor ligero.

Servidor potente.
- En entornos cliente/servidor se suele denominar backend.
- El cliente:
- Es el que requiere un servicio de un servidor.
- En un entorno cliente/servidor se suele denominar frontend.

- Sin embargo, bajo el punto de vista de la arquitectura cliente/servidor, un cliente es un proceso que solicita los servicio de otro, normalmente a petición de un usuario.
- El Middleware:
- Es la parte del software del sistema que se encarga del transporte de los mensajes entre el cliente y el servidor, por lo que se ejecuta en ambos lados de la estructura.
- Tiene 3 niveles:
- El protocolo de transporte, que sera común para otras aplicaciones del sistema.
- El sistema operativo de red.
- El protocolo del servicio que será específico del tipo de sistema cliente/servidor que estemos considerando.
- Middleware es el software que se sitúa entre el sistema operativo y las aplicaciones que se sitúan en él. Funciona como una capa oculta que permite la comunicación y la administración de datos en aplicaciones distribuidas. A veces se denomina "plumbing" (tuberías), por que conecta dos aplicaciones para que se puedan pasar fácilmente datos y bases de datos por una "canalización".

Concepto de sistema operativo de red:
- Debe ofrecer transparencia, tanto a los procesos que actúan como clientes como a los que actúan como servidores y debe hacerlo en los siguientes aspectos:
- La autenticación: el mismo nombre de usuario y la misma contraseña deben servir para acceder a recursos en todo el sistema.
- La confidencialidad en la transmisión de datos: utilizando algún mecanismo de cifrado para el intercambio de información entre el cliente y el servidor.
- El espacio de nombres: los convenios de los nombres de los recursos deben ser independientes de los sistemas operativos que los alojan.
- La ubicación: cada recurso debe conocerse sólo por su nombre, sin importar el sistema donde se ejecuta.
- El protocolo que nos permite ejecutar un servicio en el cliente como si se tratara de un procedimiento local, encapsulando todo el proceso de comunicación, se denomina RPC(Remote Procedure Calls).
- La administración: se debe facilitar un mismo mecanismo de gestión para todos los recursos.
- Los protocolos: deben tener una API idéntica en todos los sistemas.
- El acceso a los recursos: debe producirse como si estuviese ubicado en el mismo sistema donde se encuentra el cliente.
- La replicación: se debe conseguir que no existan diferencias entre dos copias del mismo recurso ubicadas en dos sistemas diferentes.
- El tratamiento de los fallos: se deben ofrecer mecanismos de detección de los fallos, redundancia de los recursos en función de su importancia y reconexión cuando el fallo ha sido solventado.
- El tiempo: los relojes de todos los dispositivos de la infraestructura deben estar sincronizados.
Grupos de trabajo como alternativa al modelo cliente/servidor:
Un grupo de trabajo es la forma más simple de compartir recursos entre diferentes ordenadores de una red de dimensiones reducidas. En él, todos los equipos se encuentran al mismo nivel de importancia y ninguno de ellos tiene control sobre los otros.
En este tipo de estructuras cada ordenador dispone de sus propias cuentas de usuario, administradas de forma local.
Un grupo de trabajo puede ser la solución más acertada cuando hablamos de un conjunto pequeño de ordenadores, que se encuentra en la misma red, donde cada uno de ellos ofrece recursos en función de sus propias características y donde la seguridad no es relevante.
Sin embargo, los grupos de trabajo tienen importantes limitaciones.
- La seguridad no se encuentra centralizada.
- Es complicado realizar cambios en la configuración.
- Las cuentas de usuario son locales y solo podemos utilizarlas en el ordenador donde se han creado.
- El administrador local de un equipo puede hacer cambios en la configuración que afecten al resto de los usuarios.


Sistemas operativos más frecuentes en una infraestructura cliente/servidor:
Requisitos para la instalación de Windows Server 2016 y Ubuntu Server 18.04:
- Windows server 2016:
- Procesador: Mínimo de 1.4 GHz y con arquitectura de 64 bits
- Memoria Ram: Mínimo 512 MB (recomendable 2 GB)
- Espacio en disco: Mínimo 32 GB
- Adaptador de Ethernet de 10/100/1000 base T Gigabit
- Unidad de DVD
- Ubuntu server 18.04:
- Memoria RAM: 2048 Mb recomendado 2 Gb
- Procesador: Procesador dual core
- Disco duro: 20GB
Guía de instalación de ambos servidores: