Servidor

Un servidor es un conjunto de computadoras capaces de atender las peticiones de un cliente y devolverle una respuesta en concordancia. Los servidores se pueden ejecutar en cualquier tipo de computadora, incluso en computadoras dedicadas a las cuales se les conoce individualmente como «el servidor». En la mayoría de los casos una misma computadora puede proveer múltiples servicios y tener varios servidores en funcionamiento. La ventaja de montar un servidor en computadoras dedicadas es la seguridad. Por esta razón la mayoría de los servidores son procesos diseñados de forma que puedan funcionar en computadoras de propósito específico.

Los servidores operan a través de una arquitectura llamada cliente-servidor. Los servidores son programas de computadora en ejecución que atienden las peticiones de otros programas: los clientes. Por tanto, el servidor realiza otras tareas para beneficio de los clientes; les ofrece la posibilidad de compartir datos, información y recursos de hardware y software. Los clientes usualmente se conectan al servidor a través de la red, pero también pueden acceder a él a través de la computadora donde está funcionando. En el contexto de redes Internet Protocol (IP), un servidor es un programa que opera como oyente de un socket.

Comúnmente, los servidores proveen servicios esenciales dentro de una red, ya sea para usuarios privados dentro de una organización o compañía, o para usuarios públicos a través de Internet. Los tipos de servidores más comunes son 
servidor de base de datos, 
servidor de archivos, 
servidor de correo, servidor de impresión, servidor web, servidor de juego, y servidor de aplicaciones.

Un gran número de sistemas usa el modelo de red cliente-servidor, entre ellos los sitios web y los servicios de correo. Un modelo alternativo, el modelo red peer-to-peer, permite a todas las computadoras conectadas actuar como clientes o servidores acorde a las necesidades.

Http 

El término servidor es ampliamente utilizado en el campo de las tecnologías de la información. A pesar de la amplia disponibilidad de productos etiquetados como productos de servidores (tales como versiones de hardware, software y OS diseñadas para servidores), en teoría, cualquier proceso computacional que comparta un recurso con uno o más procesos clientes es un servidor. Tomemos como ejemplo la acción de compartir archivos. Mientras que la existencia de archivos dentro de una computadora no la clasifica como un servidor, el mecanismo del sistema operativo que comparte estos archivos a los clientes sí es un servidor.

De manera similar, consideremos una aplicación web servidor (como por ejemplo el servidor multiplataforma "Apache"). Este servidor web puede ejecutarse en cualquier tipo de computadora que cumpla con los requerimientos mínimos. Por ejemplo, mientras un ordenador portátil () o computadora personal usualmente no son consideradas como servidores, en ciertos casos (como el anterior) pueden cumplir el rol de uno y por lo tanto ser denominadas servidores. En este caso, es el rol de la computadora el que la coloca en la categoría de servidor.

En el sentido del hardware, la palabra servidor normalmente etiqueta modelos de computadora diseñados para hospedar un conjunto de aplicaciones que tiene gran demanda dentro de una red. En esta configuración cliente-servidor, uno o más equipos (lo mismo una computadora que un programa informático), comparten información entre ellos de forma que uno actúa como anfitrión () de los otros.

Casi todas las computadoras personales pueden actuar como un servidor, pero un servidor dedicado tendrá cualidades más adecuadas para un ambiente de producción. Entre estas cualidades se pueden mencionar una unidad central de procesamiento (CPU) más rápida, memoria de acceso aleatorio (RAM) mejorada para alto desempeño, y mayores capacidades de almacenamiento en forma de múltiples discos duros. Los servidores también cuentan con otras cualidades como fiabilidad, disponibilidad y capacidad de servicio (RAS por su siglas en idioma inglés) y tolerancia a fallos, esta última en forma de redundancia en cuanto al número de fuentes, en almacenamiento de datos como un grupo redundante de discos independientes (RAID) y varias conexiones de red.

Los servidores se volvieron comunes a principios de 1990 en la medida en que los negocios comenzaron a utilizar computadoras personales para brindar servicios que anteriormente se alojaban en mainframes o en microcomputadoras. Los primeros  servidores de archivos contaban con múltiples torres de CD, utilizados para alojar grandes aplicaciones de bases de datos.

Entre 1990 y el 2000 el aumento en el uso de hardware específico marcó el advenimiento  aplicaciones de servidor autosuficientes. Uno de estas aplicaciones bien conocidas es el Google Search Appliance, que combina hardware y software en un paquete out-of-the-box packaging. Productos similares fueron el Cobalt Qube y el RaQ. Ejemplos más sencillos de dichos equipos incluyen switches, routers, gateways, y servidores de impresión, los cuales son fácilmente utilizables a través de una configuración plug-and-play.

Los sistemas operativos modernos como Microsoft Windows o las distribuciones de Linux parecen haber sido diseñados siguiendo una arquitectura cliente-servidor. Estos sistemas operativos se abstraen del hardware, permitiendo a una gran variedad de software trabajar con componentes de la computadora. De alguna forma, el sistema operativo puede ser visto como un servidor de hardware al software pues, excepto en los lenguajes de programación de bajo nivel, el software debe interactuar con el hardware a través de un API.

Estos sistemas operativos son capaces de ejecutar programas en un segundo plano los cuales son llamados servicios o daemons. Estos programas, entre los que se encuentra el Servidor HTTP Apache previamente mencionado, pueden permanecer en un estado dormido hasta que sea necesario su uso. Como cualquier software que brinde servicios puede ser llamado servidor, las computadoras personales modernas se pueden ver como bosques de aplicaciones clientes y servidores operando en paralelo.

El propio Internet es un bosque de servidores y clientes. Solo con el hecho de solicitar una página web de un servidor a pocos kilómetros de distancia conlleva a satisfacer una pila de protocolos de red que incluyen varios ejemplos del uso de hardware y software para servidores. Los más sencillos de estos son los routers, módems, servidores DNS, además de otros sin cuya interacción no podríamos acceder a la web.

La aparición de la computación en la nube permite servidores de almacenamiento, así como compartir recursos con un fondo común; igualmente permite a los servidores mantener un mayor grado de tolerancia a los fallos.

Requerimientos de hardware 

Los requerimientos de hardware para los servidores varían en dependencia del tipo de aplicación del servidor. La velocidad de la CPU no es tan crítica para un servidor como lo sería para una máquina de escritorio. El deber de los servidores de proveer servicios dentro de una red a un gran número de usuarios impone diferentes requerimientos, tales como conexiones de alta velocidad y altas prestaciones para todos los dispositivos de I/O. Como generalmente se accede a los servidores a través de la red, estos pueden funcionar sin necesidad de un monitor u otros dispositivos de entrada. Aquellos procesos que no son necesarios para las funciones del servidor no se utilizan. Muchos servidores no cuentan con una interfaz gráfica de usuario (GUI) ya que esta funcionalidad consume recursos que pueden ser utilizados por otros procesos. Igualmente las interfaces de audio y USB también pueden ser omitidas.

Los servidores funcionan por largos períodos de tiempo sin interrupción y su disponibilidad debe ser alta la mayor parte del tiempo, haciendo que la confiabilidad y durabilidad del hardware sean extremadamente importantes. Aunque los servidores pueden ser ensamblados a partir de piezas para computadoras comunes, aquellos servidores que realizan tareas críticas dentro de la infraestructura de una empresa son idealmente muy tolerantes a fallas y utilizan hardware especializado con tasa de fallo para maximizar su tiempo de funcionamiento, pues una simple falla de poco tiempo de duración puede representar costos mayores a los de comprar las piezas e instalar todo el sistema. Los servidores pueden incluir discos de mayor capacidad y velocidad, sistemas de enfriamiento por agua, mayores disipadores para reducir el calor, abastecimientos de energía ininterrumpido que garantice el funcionamiento del servidor ante una falla del suministro eléctrico. Estos componentes ofrecen un mayor desempeño y confiabilidad en correspondencia a un mayor precio. La redundancia de hardware —instalar más de una instancia de un módulo como la fuente o el disco duro dispuestos de forma tal que si uno falla el otro se encuentre automáticamente disponible— es ampliamente utilizada. Se utilizan dispositivos de memoria ECC que detectan y corrigen errores; otros tipos de memoria que no son ECC pueden conllevar a una corrupción de los datos.

Para aumentar la confiabilidad la mayoría de los servidores utilizan memoria para detección y corrección de errores, discos redundantes, fuentes redundantes y más. Es común que estos componentes pueden ser sustituidos en caliente, permitiendo que los técnicos puedan cambiar piezas defectuosas en un servidor sin la necesidad de tener que apagarlo. Los servidores cuentan usualmente con mejores disipadores para prevenir un sobrecalentamiento. Como en la mayoría de los casos los servidores son administrados por administradores de sistema calificados, el sistema operativo con que cuentan está más enfocado en la estabilidad y el desempeño que en parecer acogedor y fácil de usar, siendo Linux el que mayor por ciento de uso toma.

Como la mayoría de los servidores son ruidosos y necesitan de estabilidad en el suministro eléctrico, buen acceso a Internet, y mayor seguridad, es común almacenarlos en centros de servidores.  Como los servidores se agrupan siempre se busca reducir el consumo energético, pues la energía extra utilizada produce un aumento de la temperatura en la habitación lo que provocando que se excedan los límites de temperatura aceptables; por ello la mayoría de las habitaciones para servidores cuentan con equipos de aire acondicionado. La cubierta de la mayoría de los servidores tiende a ser plana y ancha (usualmente medida en "unidades rack"), adaptada para almacenar varios dispositivos juntos en un soporte para servidores. A diferencia de las computadoras ordinarias los servidores pueden ser configurados, encendidos, apagados o reiniciados remotamente usando administración remota, usualmente basada en IPMI.

Hay Muchos servidores que se demoran en arrancar el hardware e inicializar el sistema operativo. Es frecuente que los servidores realicen extensas pruebas de memoria antes de inicializar además la inicialización y verificación de servicios de administración remotos. Los controladores de discos duros inician los dispositivos secuencialmente, en vez de todos a la vez, para no sobrecargar la fuente de alimentación con la carga de arranque, y luego inician el chequeo del sistema RAID para probar que las operaciones redundantes funcionen de forma correcta. Es común que un servidor tome varios minutos para inicializarse pero puede que no sea necesario reiniciarlo en meses o años.

Sistemas operativos 

Los sistemas operativos orientados a servidores cuentan con ciertas cualidades que los hacen más adecuados para el entorno de un servidor, como
 GUI opcional o no disponible
 La habilidad de reconfigurar y actualizar el hardware y el software sin la necesidad de reiniciar
 Facilidades avanzadas de copia para permitir copias regulares en línea de datos críticos
 Transferencia transparente de datos entre diferentes volúmenes o dispositivos
 Cualidades avanzadas y flexible para el trabajo con la red
 Cualidades para la automatización como los daemons en UNIX y los servicios en Windows
 Fuerte seguridad en el sistema con protección avanzada a usuarios, datos, recursos y memoria

En muchos casos, los sistemas operativos orientados a servidores pueden interactuar con sensores de hardware para detectar estados como sobrecalentamiento, fallos de discos o del procesador, y en consecuencia alertar a su operador o tomar medidas de rectificación por sí mismo.

Como los servidores deben proveer un conjunto limitado de servicios a múltiples usuarios mientras que una computadora personal debe soportar una amplia variedad de funcionalidades requeridas por su usuario, los requerimientos de un sistema operativo para un servidor son diferentes de aquellos en una computadora de escritorio. Aunque es posible que un sistema operativo haga que una computadora provea servicios y responda rápidamente a los requerimientos de un usuario, es común el uso de diferentes sistemas operativos en servidores y computadoras de personal. Algunos sistemas operativos vienen en sus versiones personales (desktop) y servidores (server) con interfaces de usuario similares.

Los sistemas operativos para servidores de Windows y Mac OS X son usados en una minoría de los servidores, ya que también existen otros sistemas operativos de pagos para mainframes como z/OS. Los sistemas operativos predominantes en servidores son aquellos que siguen distribuciones de software open source de UNIX , como los basados en Linux y FreeBSD. El ascenso de los servidores basados en microprocesadores se facilitó a partir del desarrollo de UNIX para ejecutarse sobre la arquitectura de microprocesador x86. La familia de sistemas operativos de Microsoft Windows también puede ejecutarse sobre el hardware x86 y desde Windows NT, está disponible para versiones adecuadas para uso en servidores.

Mientras que el rol de los sistemas operativos para servidores y para computadoras personales permanece diferente, las mejoras en la confiabilidad tanto del hardware como del sistema operativo han hecho borrosa la distinción entre estas dos clases. Hoy en día muchos sistemas operativos para computadoras personales y para servidores comparten las mismas bases en su código, difiriendo mayormente en su configuración. El cambio hacia las aplicaciones web y las plataformas middleware también han enseñado la demanda de servidores especializados para aplicaciones.

Tipos de servidor 

En la siguiente lista hay algunos tipos comunes de servidores:

 Servidor de archivos: es el que almacena varios tipos de archivos y los distribuye a otros clientes en la red.

 Servidor de impresiones: controla una o más impresoras y acepta trabajos de impresión de otros clientes de la red, poniendo en cola los trabajos de impresión (aunque también puede cambiar la prioridad de las diferentes impresiones), y realizando la mayoría o todas las otras funciones que en un sitio de trabajo se realizaría para lograr una tarea de impresión si la impresora fuera conectada directamente con el puerto de impresora del sitio de trabajo.

 Servidor de correo: almacena, envía, recibe, enruta y realiza otras operaciones relacionadas con el correo electrónico para los clientes de la red.

 Servidor de fax: almacena, envía, recibe, enruta y realiza otras funciones necesarias para la transmisión, la recepción y la distribución apropiadas de los fax.

 Servidor de la telefonía: realiza funciones relacionadas con la telefonía, como es la de contestador automático, realizando las funciones de un sistema interactivo para la respuesta de la voz, almacenando los mensajes de voz, encaminando las llamadas y controlando también la red o el Internet, p. ej., la entrada excesiva de la voz sobre IP (VoIP), etc.

 Servidor proxy: realiza un cierto tipo de funciones a nombre de otros clientes en la red para aumentar el funcionamiento de ciertas operaciones (p. ej., prefetching y depositar documentos u otros datos que se soliciten muy frecuentemente), también proporciona servicios de seguridad, o sea, incluye un cortafuegos. Permite administrar el acceso a internet en una red de computadoras permitiendo o negando el acceso a diferentes sitios Web.

 Servidor del acceso remoto (RAS): controla las líneas de módem de los monitores u otros canales de comunicación de la red para que las peticiones conecten con la red de una posición remota, responde llamadas telefónicas entrantes o reconoce la petición de la red y realiza la autenticación necesaria y otros procedimientos necesarios para registrar a un usuario en la red.

 Servidor de uso: realiza la parte lógica de la informática o del negocio de un uso del cliente, aceptando las instrucciones para que se realicen las operaciones de un sitio de trabajo y sirviendo los resultados a su vez al sitio de trabajo, mientras que el sitio de trabajo realiza la interfaz operadora o la porción del GUI del proceso (es decir, la lógica de la presentación) que se requiere para trabajar correctamente.

 Servidor web: Almacena documentos HTML, imágenes, archivos de texto, escrituras, y demás material Web compuesto por datos (conocidos colectivamente como contenido), y distribuye este contenido a clientes que la piden en la red.

 Servidor de base de datos: provee servicios de base de datos a otros programas u otras computadoras, como es definido por el modelo cliente-servidor. También puede hacer referencia a aquellas computadoras (servidores) dedicadas a ejecutar esos programas, prestando el servicio.

 Servidor de reserva: tiene el software de reserva de la red instalado y tiene cantidades grandes de almacenamiento de la red en discos duros u otras formas del almacenamiento (cinta, etc.) disponibles para que se utilice con el fin de asegurarse de que la pérdida de un servidor principal no afecte a la red. Esta técnica también es denominada clustering.

 Servidor de Seguridad: Tiene software especializado para detener intrusiones maliciosas, normalmente tienen antivirus, antispyware, antimalware, además de contar con cortafuegos redundantes de diversos niveles y/o capas para evitar ataques, los servidores de seguridad varían dependiendo de su utilización e importancia.
 
Sin embargo, de acuerdo al rol que asumen dentro de una red se dividen en:

 Servidor dedicado: son aquellos que le dedican toda su potencia a administrar los recursos de la red, es decir, a atender las solicitudes de procesamiento de los clientes.
 Servidor no dedicado: son aquellos que no dedican toda su potencia a los clientes, sino también pueden jugar el rol de estaciones de trabajo al procesar solicitudes de un usuario local.
Servidor de videojuego: es un servidor local o remoto usado por clientes de videojuegos para jugar videojuegos multijugador. La mayoría de los videojuegos jugados a través de Internet funcionan mediante una conexión a un servidor de videojuego.

Consumo de energía 

En 2010, los data centers (servidores, enfriamiento, y resto de infraestructura eléctrica), consumieron del 1.1 al 1.5% de la energía eléctrica en el mundo y del 1.7 al 2.2% en los Estados Unidos.

Concretamente, este consumo es menor que el de 6 mil millones de teléfonos móviles que hay en el mundo cuando van a recargar sus baterías. Incluso este consumo puede parecer despreciable, sobre la base de las tasas de consumo de la calefacción, el enfriamiento y el calentamiento de agua domésticos, que asciende a los dos dígitos. Finalmente, el informe Smart2020, estima que ICT (Information and Communications Technology) ahorra más de 5 veces su huella de carbono. que el resto de la economía por aumento de la eficiencia.

Clases de tamaño 

Las clases de tamaño incluyen:
 Servidores rack 
 Servidor de torre
 Servidores de miniatura
 Mini servidores rack
 Servidor blade
 Servidores móviles
 Servidores ultra-densos 
 Súper servidores

Véase también 

 Servidor de mapas en internet
 Servicio de alojamiento de archivos
 Computación en la nube
 Alojamiento web
 Cliente-servidor
 Peer-to-peer
 Servidor web
 Servidor virtual
 Servidor de archivos
 servidor de impresión

Referencias 

Computadoras
Servidores
Servidores web