[Indice]


¿Cómo empezar?

Lo que necesitamos.

En primer lugar definiremos como cliente la máquina remota, incluido su navegador, que se va a dirigir a nuestro servidor para, a través de una aplicación, realizar una transacción cualquiera, que deberá ser almacenada. La idea general se representa en la figura.

A la hora de construir una aplicación para internet, no se puede pensar exclusivamente en la parte cliente, sino que ha de diseñarse perfectamente conjuntada con otra aplicación local que permita administrar y explotar los datos capturados al cliente. Hay una cierta tendencia a realizar la explotación y/o administración también a través de navegadores, pero esto restringe posibilidades, además de ser menos seguro en todos los aspectos.

Estas son algunas especificaciones que se deben cumplir: la aplicación no deberá depender nunca de las características del cliente, ni deberá obligar a éste a utilizar ningún software especial, debiendo respetar la libre elección de navegador de su propietario. La aplicación deberá servir al cliente HTML estandard, debidamente probado en varios navegadores, y conviene limitar al máximo la inclusión de código JavaScript, a fin de evitar incompatibilidades de versiones o de otro tipo. Se realizarán diseños con el menor número posible de gráficos, a fin de reducir al máximo el tiempo de carga de las pantallas. Según la naturaleza de las transacciones, se proveerá de conexiones seguras (shtml). Se facilitará un e-mail para la solución de los problemas o dudas que tenga el cliente, y se deberán responder con diligencia.

De estas breves líneas ya se pueden extraer algunas conclusiones: necesitamos un servidor capaz de ejecutar nuestras aplicaciones tanto locales, para administración, como remotas, que serán ejecutadas por los clientes. También necesitaremos donde almacenar las transacciones de los clientes, es decir: una base de datos que en lo sucesivo llamaremos simplemente DB, y que por supuesto deberás aprender a manejar y programar. Las buenas bases de datos relacionales suelen utilizar el lenguaje SQL (ANSI o alguna de sus variantes) para hacer las consultas y/o transacciones, y del buen diseño de estas consultas dependerá que la aplicación sea eficiente o no. También será necesario dominar los distintos lenguajes que cada servidor web nos ofrece para conectar con las bases de datos, y por último, pero no por ello menos importante, hay que saber administrar y configurar correctamente el servidor, tanto a nivel máquina como de servicios, en especial los de http y ftp.

¿Qué elegir?

Peliaguda pregunta esta... quien la responda asume que lo conoce casi todo, cosa difícil en estos tiempos. Yo me limitaré a comentar lo que conozco, que no es mucho, y a presentar fragmentos de lo que se utiliza en mi empresa. Que sea o no lo mejor o lo más adecuado, queda al mejor criterio de cada cual...

Si la empresa ya tiene infraestructura informática, te tienes que adaptar a ella... y arreglártelas como puedas. Si partimos de cero, lo primero que hay que analizar es la carga de trabajo que va a tener que resolver el servidor, pero pensando siempre en el futuro, no vaya a ser que por ahorrar un poco ahora, tengamos que tirarlo todo el año que viene.

En nuestro caso (mi empresa) se trata de una instalación de tipo medio-bajo, con tres servidores: uno para la red local (intranet), otro para la red exterior (internet) y el tercero hace de puente con grandes sistemas IBM. Los dos primeros son PCs con dos procesadores Pentium II 450 y discos Ultra Wide SCSI. Uno actua como servidor de aplicaciones, servidor de disco y servidor de bases de datos para 90 máquinas. Está configurado de forma que no se puede acceder a él si no es desde la intranet (red local). El segundo, que actua de servidor HTTP y FTP, obtiene las páginas estáticas de sus propios discos, y los datos dinámicos del servidor de bases de datos. Además ejecuta continuamente 30 aplicaciones internet, recibiendo en total más de 10.000 visitas diarias entre consultas estáticas y transacciones de las aplicaciones. Son máquinas baratas, sin marca ni arquitectura de servidor (aunque cuidadosamente ensambladas con elementos de calidad, de probada compatibilidad con el sistema operativo), y por ahora llevan varios años funcionando las 24 horas sin problemas. Para evitar asaltos y problemas desde la red, por supuesto, las dos tienen instalado un programa firewall. El firewall, bien configurado, hace posible no tener que instalar un antivirus en los servidores, que los ralentizaría notablemente. Y una cosa muy importante: los servidores solamente deben utilizarse como servidores, si además se utilizan como estaciones de trabajo, las prestaciones pueden caer peligrosamente. Las labores de administración conviene hacerlas antes de que los usuarios comiencen a trabajar.

En cuanto al sistema operativo, nuestro primer servidor (el tercero de los descritos) fue un LINUX, pero ocurrió lo que suele ocurrir: es casi imposible que un usuario normal se aclare con un sistema UNIX. Y como no hay muchas alternativas, se optó por instalar Windows NT Server en los servidores y Windows variados (95, 98, ME, XP) en los clientes. El pobre LINUX se ha quedado solo como intermediario entre nuestra mainframe y el servidor web (una mainframe es una máquina muy, muy grande y cara que no suele hablarse bien más que consigo misma).

El siguiente paso era elegir una buena base de datos local. Tampoco hay muchas alternativas: La mainframe tiene la DB2 de IBM, cuyo precio es prohibitivo, y necesita máquinas muy potentes. Algunos dicen que la mejor es Oracle, pero su precio tambien es enorme. Otros dicen que la mejor relación calidad-precio es SQL Server de Microsoft, y optamos por esta.

En nuestro caso, fue una decisión acertada, ya que a su buen rendimiento hay que añadir su facilidad de conexión con el resto de productos Microsoft, como cabría esperar. Con este entorno se desarrollan las aplicaciones locales con Access 97 o 2003, las aplicaciones internet con ASP (Active Server Pages) o IDC (Internet Data base Conector), y el servidor web es el IIS (Internet Information Server) que va incluido en el sistema Windows NT Server. El conjunto se muestra muy sólido, y no ha sido necesario emigrar a versiones superiores de sistema operativo, que probablemente necesitarían máquinas más potentes.

Puede que estas características no le parezcan a algunos propias de una instalación "seria", pero la realidad es que funciona sin un solo problema, los sistemas operativos no se "cuelgan" jamás (no se permite a los usuarios instalar nada por su cuenta), la velocidad es excelente, habida cuenta de que algunas bases de datos tienen volúmenes muy repetables (más de 4 millones de registros) y que soportan accesos concurrentes de hasta 120 usuarios al ser accedidas simultáneamente por el servidor web y por los usuarios locales, y todo a un precio muy asequible.

Montajes similares a este, e incluso muy superiores, es posible realizarlos con servidores y clientes LINUX o cualquier otra variante de UNIX. La ventaja de LINUX es que es gratis, y funciona prácticamente sobre cualquier cosa que tenga un procesador y un disco (bueno, las últimas versiones ya no tanto). La desventaja es que si tienes problemas, no hay una marca a la que consultar; de ahí la gran diferencia de precio entre este sistema y los UNIX licenciados. Existen, también de libre distribución, programas de servidores web (por ejemplo el famoso Apache), bases de datos (PostGres y otras) y paquetes de ofimática (Star Office, Open Office) para LINUX y para otros sistemas UNIX.

El gran problema de las instalaciones UNIX en general, es que no resultan fáciles de instalar ni de administrar. Hay que ser un muy buen profesional de la informática para mantener instalaciones así (lo que no significa que con Windows no haya que saber nada). Es un mundo completamente diferente al de los sistemas Windows. Te lo tienes que hacer todo a mano: adapataciones del kernel a la máquina, creación de controladores, comunicaciones, configuración de los clientes, Xwindows, hay que dominar los lenguajes C y Perl, los compiladores, el shell, dominar bien el inglés, etc., etc. Aunque en internet hay gran cantidad de información sobre UNIX, incluso algo en español (proyecto LUCAS), es sin duda un gran reto...

Otra solución

Si no se está en disposición de montar y mantener un servidor, una buena solución puede ser recurrir a un "hosting", es decir, alquilar un espacio web en un servidor montado, mantenido y custodiado por una de las muchas empresas que hay dedicadas a prestar estos servicios. Hay muy buenos proveedores de hosting que por un precio bastante razonable pueden ahorrarnos muchos problemas. Habitualmente, además del espacio web, se pueden contratar bases de datos, dominios propios, IPs fijos, y cuanto nuestro proyecto pueda necesitar.

Ensalada de siglas....

Hasta ahora en esta guía se había evitado la utilización de siglas. Dada la longitud de los nombres que se emplearán en lo sucesivo, no queda más remedio que utilizarlas... He aquí un pequeño glosario:


[Indice]