sábado, 15 de marzo de 2014

Variantes de la arquitectura cliente servidor

Como se mencionó anteriormente una aplicación web se basa en una arquitectura cliente-servidor: por un lado está el cliente (el navegador o browser) y por otro lado el servidor (el servidor web). Existen diversas variantes de está arquitectura básica según se implementan diferentes funcionalidades en la parte del servidor. Las variantes más comunes son:
1. Todo en un servidor. En una única computadora se aloja el servicio de HTTP, la lógica de negocio (las especificaciones de la aplicación), la lógica de datos (la forma como se accede a los datos) y los datos. Las tecnologías  ASP y PHP emplean está clase de arquitectura.
 
2. Servidor de datos separado.  A partir de la arquitectura anterior, se separa la lógica de los datos y los datos en un servidor de base de datos específico. Las tecnologías ASP y PHP emplean está clase de arquitectura. 
3. Todo en un servidor con servicio de aplicaciones. En esta variante de arquitectura se separa la lógica de negocio del servicio HTTP y se incluye el servicio de aplicaciones para administrar los procesos que implementan la lógica de negocio. La tecnología que emplea esta arquitectura es JSP.

4. Servidor de datos separado con servicio de aplicaciones. A partir de la arquitectura anterior, se separa la lógica de datos y los datos a un servidor de base de datos específico. La tecnología JSP  emplea está clase de arquitectura.

5. Todo separado.  Las tres funcionalidad básicas de un servidor web se separa en tres servidores específicos. JSP emplea esta clase de arquitectura.


El objetivo de separar las distintas funcionalidades (servicio web, lógica de negocio y lógica de datos) en distintos servidores es aumentar la escalabilidad del sistema de cara a obtener un mayor rendimiento. Al separar las distintas funcionalidades en distintos servidores, cada uno de ellos se puede configurar de forma adecuada a los requisitos que presenta cada uno de ellos. Por ejemplo, para ofrecer el servicio HTTP hace falta una caomputadora con una buena conexión a Internet, rápida pero sin grandes necesidades de almacenamiento. Por otro lado, para el servidor de base de datos hace falta una computadora con mucha memoria, y con un disco duro de alta capacidad de almacenamiento y rápido para mantener los datos.

Otra ventaja que se obtiene al separar las funcionalidades, es que al aislar la lógica de negocio y la lógica de datos en servidores separados que no están conectados directamente en Internet, es que se aumenta el nivel de seguridad ya que no es tan fácil acceder a ellos.

Servidor Web vs Servidor de Aplicaciones

 

En ocasiones existe la confunción entre los términos servidor web y servidor de aplicaciones. Un servidor web no es  más que un simple servidor de archivos. Los clientes se dirigen a éste mediante el protocolo HTTP, extrae simplemente de la petición el nombre del recurso solicitado, lo busca en disco, y lo "envuelve" dentro de una respuesta HTTP para transmitirlo al cliente. No realiza ningún tratamiento en el recurso antes de transmitirlo al cliente, siendo su única función transmitir al cliente una página HTML, una imagen, un archivo de audio o algún archivo ejecutable. Los servidores web más populares que existen son: Apache, Tomcat y Microsoft IIS.

Por otro lado un servidor de aplicaciones es radicalmente distinto al servidor web, ya que los recursos que le son confiados no son simples archivos estáticos, sino que contienen el código que se va a encargar de ejecutar en nombre de los clientes que realicen una petición. Cuando el servidor de aplicaciones recibe una solicitud HTTP, éste también analiza la petición para determinar qué recurso se le ha solicitado. Está petición concierne a código ejecutable alojado en el servidor. Contrariamente a lo que haría un servidor web en la misma situación, no trasnfiere al cliente el código sino que lo ejecuta y el resultado de la ejecución de ese código lo reenvía al cliente.  Un ejemplo común del uso de servidores de aplicación (y de sus componentes) son los portales de Internet, que permiten a las empresas la administración y divulgación de su información, y un punto único de entrada a los usuarios internos y externos. Teniendo como base un servidor de aplicación, dichos portales permiten tener acceso a información y servicios (como servicios Web) de manera segura y transparente, desde cualquier dispositivo. Los servidores de aplicaciones más comunes que existen son los que están basados en lenguaje de programación Java, como: WebLogic de Oracle, y WebSphere de IBM.

Servidores web locales


Un servidor web local suele ser una solución para realizar pruebas y/o tareas de administración, instalación y desarrollo. Un servidor web local reside en una red local o equipo local de referencia, el cual contiene una serie de aplicaciones para hacer pruebas, configurar o programar aplicaciones web  sin miedo a estropear la aplicación web oficial  en un servidor en producción.

Las páginas web se acceden siempre mediante una dirección o URL, que por defecto se encuentra en nuestro equipo y que se conoce como localhost, que es un nombre reservado para toda computadora, router o dispositivo que disponga de una tarjeta ethernet para referirse a sí misma. El nombre localhost es traducido como la dirección IP 127.0.0.1.

Configurar e instalar cada uno de los componentes necesarios para un servidor web puede ser costoso e implicar mucho tiempo, por lo que existe la posibilidad de crear un servidor local mediante paquetes de software llamados stacks que contienen todo lo necesario para hacer hacer funcionar  una aplicación web. Tradicionalmente se les suele denominar WAMP (Windows + Apache + MySQL + PHP) o LAMP (Linux + Apache + MySQL + PHP), existiendo también la versión para Mac: MAMP (Mac OS + Apache + MySQL + PHP).

Algunos de los servidores locales que existen para el desarrollo o administración se listan a continuación:

XAMPP

Uno de los servidores web locales más conocidos es XAMPP (Apache, MySQL, PHP, Perl). Incorpora un DBMS MySQL y los lenguajes PHP y Perl. Además, ofrece soporte para administrar cuentas FTP, acceso a base de datos mediante PHPMyAdmin, bases de datos SQLite y varias de otras características como el servidor de correo Mercury o un servidor Tomcat para servlets y JSP.



WAMPServer

WAMPServer o simplemente WAMP contiene un servidor Apache,  un DBMS MySQL y un lenguaje PHP para Windows en el que se incluye la aplicación para accesar a base de datos PHPMyAdmin y un analizador para medir el rendimiento de aplicaciones PHP en el servidor.

MAMP

Si tenemos la aplicacion para Windows tambien existe la versión para Mac OS con las mismas funcionalidades que WAMP.


EasyPHP

EasyPHP es un WAMP orientado a desarrolladores PHP. La aplicación es muy sencilla y minimalista, ya que sólo muestra el control de los servidores y un registro de sucesos (log). Sin embargo, en la página local principal, ofrece varias cosas interesantes, como un panel de opciones de cada servidor, cambiar credenciales, avisos de actualizaciones o incluso un intérprete para pruebas PHP.

Más información en: http://www.emezeta.com/articulos/15-aplicaciones-para-montar-servidores-web-en-local
EasyPHP es un WAMP orientado a desarrolladores PHP. La aplicación es muy sencilla y minimalista, ya que sólo muestra el control de los servidores y un registro de sucesos (log). Sin embargo, en la página local principal, ofrece varias cosas interesantes, como un panel de opciones de cada servidor, cambiar credenciales, avisos de actualizaciones o incluso un intérprete para pruebas PHP.

Más información en: http://www.emezeta.com/articulos/15-aplicaciones-para-montar-servidores-web-en-local
EasyPHP es un WAMP orientado a desarrolladores PHP. La aplicación es muy sencilla y minimalista, ya que sólo muestra el control de los servidores y un registro de sucesos (log). Sin embargo, en la página local principal, ofrece varias cosas interesantes, como un panel de opciones de cada servidor, cambiar credenciales, avisos de actualizaciones o incluso un intérprete para pruebas PHP.

Más información en: http://www.emezeta.com/articulos/15-aplicaciones-para-montar-servidores-web-en-local
Es como un WAMP orientado a desarrollo PHP. La aplicación es muy sencilla ya que sólo muestra el control de los servidores y un registro de sucesos (log). Más sin embargo, en la página local ofrece varias opciones interesantes, como un panel de opciones de cada servidor, aviso de actualizaciones o un interprete PHP


 

 



No hay comentarios:

Publicar un comentario