Entre
los diferentes aspectos que se deben tener en cuenta cuando se diseña
o se programa un servidor o servicio en red, vamos a resaltar los
siguientes:
-
El
servidor debe poder atender a multitud de peticiones que pueden
ser concurrentes en el tiempo. Esto lo podemos conseguir
mediante la programación del servidor utilizando hilos o Threads.
-
Es
importante optimizar el tiempo de respuesta del servidor.
Esto lo podemos
controlar mediante la monitorización de los tiempos de proceso y
transmisión del servidor.
La
clase ServerSocket
es
la que se utiliza en Java a la hora de crear servidores. Para
programar servidores o servicios basados en protocolos del nivel de
aplicación, como por ejemplo el protocolo HTTP, será necesario
conocer el comportamiento y funcionamiento del protocolo de
aplicación en cuestión, y saber que tipo de mensajes intercambia
con el cliente ante una solicitud o petición de datos.
En
los siguientes apartados vamos a ver el ejemplo de cómo programar un
servidor web básico, al que
después le añadiremos la funcionalidad de que pueda atender de
manera concurrente a varios usuarios, optimizando los recursos.