Aplicaciones Web
Aplicaciones Web
Aplicaciones Web
Como ya hemos mencionado, los servidores web almacenan, y sirven, documentos o pginas web. Estas pginas web pueden ser estticas o dinmicas. Pginas estticas y pginas dinmicas Una pgina esttica nunca es interpretada en el servidor, es decir, el servidor la enva sin procesarla al cliente. El cliente recibir el documento, tal como est almacenado en el servidor, y lo procesar usando un navegador web. Este es el caso de los documentos html y de todos los archivos que se ejecutan en el lado del cliente. El servidor accede a un documento concreto bajo una peticin y sirve nicamente ese documento como respuesta a la peticin. El despliegue y la interpretacin de dicho documento es cosa del cliente Web, que debe tener la capacidad de leer e interpretar HTML o archivos de imgenes y debe al menos ser capaz de manejar otros documentos como pdf, o AVI.
Navegador HTTP Envo y recepcin e datos solicitados. Ej. hola.html La pgina slo se sirve, no se ejecuta. Lectura de datos del disco. Ej. hola.html + imagen.gif
Servidor Web
Sin embargo, una parte cada vez ms importante del contenido de la Web es accesible a travs de pginas dinmicas. Ante la peticin de una pgina dinmica el servidor no sirve directamente el texto de la misma, sino que la procesa antes de enviarla al cliente. Normalmente el servidor ejecuta las partes de la pgina dinmica que estn escritas en un lenguaje de programacin que, dependiendo de algunas variables, reacciona de forma distinta cada vez que es utilizado. Una de las caractersticas ms importantes de estas pginas es que permiten extraer contenidos de una base de datos. El documento resultante recibido por el usuario puede finalmente ser procesado y representado por un navegador web (o cliente web).
Navegador
HTTP
Documentos HTML
Recoleccin de documento
Documento Dinmico
Ejecucin de script
Intrprete
Consulta y recuperacin
Base de Datos Para crear pginas dinmicas se utilizan scripts escritos en un lenguaje de programacin que se ejecuta del lado del servidor. a) Tecnologas cliente - Navegadores Web (clientes web) Son programas que se ejecutan del lado del cliente, y que son capaces de manejar http para llevar a cabo peticiones de datos. Al mismo tiempo son capaces de utilizar los resultados de estas peticiones, sea en forma de documentos html o de imgenes o cualquier otro contenido que viaje a travs de http, para presentrselos al usuario. Ejemplos: Internet Explorer, Netscape Navigator, Mozilla, Konqueror - Tecnologas de programacin El conjunto de lenguajes de programacin (sean de carcter descriptivo o procedimental) que se ejecutan exclusivamente en el cliente. Estos lenguajes de programacin permiten las funcionalidades reales de despliegue de informacin en pantalla. Cualquier cliente web debera ser capaz de interpretar archivos escritos utilizando estos lenguajes de programacin. Ejemplos: HTML, JavaScript / JScript, VBScript, Applets Java, Componentes ActiveX en Visual C++, Visual Basic o .NET b) Tecnologas servidor - Servidores Web
Son programas capaces de manejar peticiones http y enviar el contenido solicitado a los clientes web. Son capaces de manejar mltiples conexiones concurrentes. Acceden a los datos solicitados, y en ocasiones a terceras aplicaciones que los proporcionan. Ejemplos: Internet Information Server (IIS), Apache, Apache Tomcat y WebSphere webserver Apache: Este es el ms comn y ms utilizado en todo el mundo. Adems, es gratuito (cmo no), y de cdigo abierto, as que podramos decir que corre sobre cualquier plataforma. Microsoft IIS: Slo funciona sobre sistemas Windows, como ya habris imaginado. Si quieres empalarlo sobre otro sistema, tendrs que utilizar una mquina virtual. Sun Java System Web Server: Este producto pertenece a la casa Sun, y suele empalarse sobre entorno de este sistema. Sin embargo, como Apache, es multiplataforma, y recientemente Sun ha decidido distribuirlo con licencias de cdigo abierto (BSD concretamente). Ngnix: Este es un servidor Web muy ligero y corre sobre sistemas Unix y Windows. Se ha convertido en el 4 servidor HTTP ms popular de la red y tambin se distribuye bajo licencia BSD. Lighttp: Este servidor Web es otro de los ms ligeros que hay en el mercado. Est especialmente pensado para hacer cargas pesadas sin perder balance, utilizando poca RAM y poca de CPU. Algunas pginas populares que lo usan son Youtube, Wikipedia y otras que soportan gran trfico diariamente. Tambin es gratuito y se distribuye bajo licencia BSD. Para ms informacin: http://es.wikipedia.org/wiki/Servidor_web - Tecnologas de Programacin Se trata de lenguajes de programacin que se ejecutan del lado del servidor. Estos lenguajes de programacin tienen como objetivo la creacin de contenido dinmico, el acceso a bases de datos y otras funciones que tienen lugar dentro del mbito del servidor. El cliente slo tiene acceso a los resultados de la ejecucin de los programas (scripts) basados en estos lenguajes de programacin, por lo que el proceso lgico queda fuera de la vista de los mismos y se describe tradicionalmente como transparente para el usuario. Ejemplos: PHP, ASP, JSP (Java Server Pages), Servlets, CGIs (Common Gateway Interface) Aplicaciones web En general, a un conjunto de scripts cualquiera que sirve para desarrollar una o mltiples tareas relacionadas, se le denomina aplicacin web. Podramos decir que una aplicacin web es un conjunto de pginas dinmicas, y estticas. En las aplicaciones web podemos distinguir entre la tecnologa utilizada en el cliente, o procesada por el cliente, y la tecnologa utilizada en el servidor, o procesada por el
servidor. En ambos casos se trata de software que trabaja sobre el protocolo http, pero las funciones son claramente distintas. Para ms informacin: http://es.wikipedia.org/wiki/Aplicaci%C3%B3n_web Servidores Web y de aplicaciones Los servidores Web son la base en la que se apoya el funcionamiento de la World Wide Web. Pero de un tiempo a esta parte tambin se escucha mucho el trmino servidores de aplicaciones. Para aclarar un poco las ideas hagamos un poco de historia. Cuando se crearon los primeros servidores de pginas Web (Web servers), su nica misin era recuperar una pgina Web esttica de su disco duro y envirsela al cliente (navegador). Para cualquier otro tipo de informacin que debiera generarse de manera dinmica (respuestas a bsquedas, etc.) el servidor tena que ceder el control a algn tipo de cdigo externo mediante CGI. Con el paso del tiempo el uso de servidores Web se generaliz y se hizo necesario incrementar los servicios ofrecidos. El primer paso fue mejorar la eficiencia en el proceso de construccin de informacin dinmica, y la evolucin ha llevado a crear un nuevo trmino: servidor de aplicaciones (Application server). En realidad, a un nivel bsico, casi todos los servidores Web actuales son tambin servidores de aplicaciones, ya que incluyen alguna tecnologa (CGI, PHP, JSP, etc.) que permite crear aplicaciones que generan contenido dinmico. En resumen para que un servidor pueda dar servicio a las aplicaciones web debe ser un Servidor de Aplicaciones. Para ms informacin: http://es.wikipedia.org/wiki/Servidor_de_aplicaciones Servidores de aplicaciones web que usan PHP Para poder servir una aplicacin web basada en PHP, necesitamos un servidor de aplicaciones preparado para interpretar los scripts escritos en este lenguaje. En general este tipo de servidores se componen de lo siguiente: Servidor web Apache (pero tambin IIS aunque no es lo normal) Sistema gestor de bases de datos MySQL (u otros) Intrprete de PHP Podremos instalar un servidor de aplicaciones para PHP instalando y configurando los componentes del listado anterior, o recurrir a algunos de los paquetes autoinstalables que existen en el mercado. Algunos de ellos son los siguientes, pero no son los nicos: Easyphp. Apache + PHP + MySQL. http://www.easyphp.org/
XAMMP. Apache + PHP + MySQL. http://www.apachefriends.org/es/xampp.html LAMP (Linux + Apache + MySQL + PHP) WAMP Server. Apache + PHP + MySQL. http://www.wampserver.com/en/
Referencias bibliogrficas Primer captulo de SKLAR, David. Introduccin a PHP 5. Madrid, Anaya Multimedia/OReilly, 2005. Incluye una introduccin de los aspectos bsicos de aplicaciones Web, comunicacin por HTTP, definiciones bsicas sobre pginas dinmicas y estticas...etc. Introduccin a los lenguajes del web. Manual accesible en lnea en: http://www.desarrolloweb.com/manuales/27/ Cubre muchos aspectos, incluyendo la diferenciacin entre pginas estticas y dinmicas, y una descripcin introductoria de otros lenguajes de programacin Web. ORFALI, Robert, HARKEY, Dan, y EDWARDS, Jeri. Client/Server survival Guide. New York, John Willey and Sons, 1999. La fuente de referencia para la arquitectura cliente-servidor. Tambin incluye un captulo importante sobre Middleware.