28
Tecnologías Web (E) - Unidad III Daniel Yucra S. / Santiago Gonzáles S. 89 Sistema a Distancia TERCERA UNIDAD Tecnologías para el desarrollo Web Sumario La siguiente unidad describe la arquitectura de la Web a través de la presentación y aplicación distribuida, y las aplicaciones web basado en el tipo de arquitectura Cliente/Servidor. Se sintetiza los tipos de lenguaje de programación para el desarrollo de Aplicaciones Web, así mismo, de los motores de bases de datos existentes para la realización de almacenamiento de datos, transacciones, consultas, entre otros. Al finalizar la unidad, conocerá las nociones del Framework que son un conjunto de bibliotecas orientadas a la reutilización de componentes de software para el desarrollo de aplicaciones.

Unidad III

Embed Size (px)

DESCRIPTION

Tecnología para desarrollo web

Citation preview

  • Tecnologas Web (E) - Unidad III Daniel Yucra S. / Santiago Gonzles S.

    89 Sistema a Distancia

    TERCERA UNIDAD

    Tecnologas para el desarrollo Web

    Sumario

    La siguiente unidad describe la arquitectura de la Web a travs de la presentacin y aplicacin distribuida, y las aplicaciones web basado en el tipo de arquitectura Cliente/Servidor. Se sintetiza los tipos de lenguaje de programacin para el desarrollo de Aplicaciones Web, as mismo, de los motores de bases de datos existentes para la realizacin de almacenamiento de datos, transacciones, consultas, entre otros. Al finalizar la unidad, conocer las nociones del Framework que son un conjunto de bibliotecas orientadas a la reutilizacin de componentes de software para el desarrollo de aplicaciones.

  • Tecnologas Web (E) - Unidad III Daniel Yucra S. / Santiago Gonzles S.

    90 Sistema a Distancia

    Objetivos

    Al finalizar esta unidad, el estudiante ser capaz de:

    Conocer la arquitectura de la Web para el desarrollo de aplicaciones basado en esta tecnologa.

    Conceptualizar los lenguajes de programacin para el desarrollo de aplicaciones web.

    Reconocer los tipos de Bases de Datos para el almacenamiento y acceso de informacin basada en aplicaciones web.

    Conceptualizar un framework para el desarrollo de aplicaciones web.

  • Tecnologas Web (E) - Unidad III Daniel Yucra S. / Santiago Gonzles S.

    91 Sistema a Distancia

    Leccin 9: Arquitectura Web

    9.1 Presentacin Distribuida En los apartados anteriores, se describi la arquitectura bsica de una aplicacin web es el modelo cliente/servidor. A continuacin se describe la presentacin distribuida de este modelo. Para este caso el cliente slo mantiene la presentacin, el resto de la aplicacin se ejecuta remotamente. La presentacin distribuida, en su forma ms simple, es una interfaz grfica de usuario a la que se le pueden acoplar controles de validacin de datos, para evitar la validacin de los mismos en el servidor.

    Figura 9.1: Presentacin distribuida

    9.2 Aplicacin Distribuida Es el modelo que proporciona mxima flexibilidad, adems permite al servidor, como al cliente, mantener la lgica realizando cada una de las funciones ms apropiadas, tanto por organizacin o por mejorar el rendimiento del sistema.

    Figura 9.2: Aplicacin distribuida

    9.3 Arquitectura de las aplicaciones Web Las aplicaciones web se basan en una arquitectura del tipo cliente/servidor. Por un lado est el cliente (el navegador o visualizador) y por otro lado el servidor web. Existen diversas variantes de la arquitectura bsica, segn como se implementen las diferentes funcionalidades de la parte del servidor. Entre las arquitecturas comunes, mencionamos:

  • Tecnologas Web (E) - Unidad III Daniel Yucra S. / Santiago Gonzles S.

    92 Sistema a Distancia

    1. Todo en un Servidor: Un nico ordenar aloja el servidor HTTP, la lgica de negocio y la lgica de datos; y los datos. El software que ofrece el servicio de HTTP gestiona tambin la lgica de negocio. Las tecnologas que emplea esta tecnologa generalmente son ASP y PHP.

    Figura 9.3: Arquitectura de la aplicacin, todo en un solo servidor Fuente: Lujn, S. (Programacin de aplicaciones web: historia, principios bsicos y

    clientes web. p.56)

    2. Servidor de datos separado: a partir de la arquitectura anterior, se separa la lgica de datos; y los datos a un servidor de base de datos especfico. Las tecnologas que emplean esta arquitectura generalmente son ASP y PHP.

    Figura 9.4: Arquitectura de la aplicacin, todo en un solo servidor Fuente: Lujn, S. (Programacin de aplicaciones web: historia, principios bsicos y

    clientes web. p.56)

    3. Todo en un servidor, con servicios de aplicaciones: en la primera arquitectura se separa la lgica de negocio del servicio de HTTP y se incluye el servicio de aplicaciones para gestionar los procesos que implementan la lgica de negocio. La tecnologa que emplea esta arquitectura es JSP y Servlets. Se le conoce como la arquitectura de 4 capas, donde destaca el servidor de aplicaciones.

  • Tecnologas Web (E) - Unidad III Daniel Yucra S. / Santiago Gonzles S.

    93 Sistema a Distancia

    Figura 9.5: Arquitectura de la aplicacin, todo en un solo servidor, con servicio de aplicaciones

    Fuente: Lujn, S. (Programacin de aplicaciones web: historia, principios bsicos y clientes web. p.57)

    4. Servidor de datos separado, con servicio de aplicaciones: a partir de la arquitectura nmero 3, se separa la lgica de datos y los datos a un servidor de base de datos especfica. La tecnologa que emplea es JSP y los servlets.

    Figura 9.6: Arquitectura de las aplicaciones, con separacin del servidor de datos y con servicio de aplicaciones

    Fuente: Lujn, S. (Programacin de aplicaciones web: historia, principios bsicos y clientes web. p.57)

    5. Todo separado: las tres funcionalidades bsicas del servidor web se separan en tres servidores especficos. La tecnologa que emplea esta arquitectura es JSP.

  • Tecnologas Web (E) - Unidad III Daniel Yucra S. / Santiago Gonzles S.

    94 Sistema a Distancia

    Figura 9.3: Arquitectura de las aplicaciones, con separacin del servidor de datos y separado el servicio de aplicaciones

    Fuente: Lujn, S. (Programacin de aplicaciones web: historia, principios bsicos y clientes web. P.55

    El objetivo de separar las distintas funcionalidades en distintos servidores es aumentar la escalabilidad del sistema, con el propsito de obtener mayor rendimiento. Al separar las funciones, cada uno de ellos permite configurar de forma adecuada los requisitos que presentan.

  • Tecnologas Web (E) - Unidad III Daniel Yucra S. / Santiago Gonzles S.

    95 Sistema a Distancia

    Leccin 10: Lenguajes de Programacin

    10.1 Historia de las Aplicaciones Web Inicialmente la Web consista en la coleccin de pginas estticas, documentos, etc., que podan consultarse o descargarse. El siguiente paso en su evolucin fue la inclusin de un mtodo para confeccionar pginas dinmicas que permitiesen que lo mostrado fuese dinmico, generado a partir de los datos de una peticin. Dicho mtodo fue conocido como CGI (Common Gateway interface) y defina un mecanismo mediante el cual podamos pasar informacin entre el servidor HTTP y programas externos. Los CGI siguen siendo muy utilizados, puesto que la mayora de los servidores web los soportan debido a su sencillez. Adems, nos proporcionan total libertad a la hora de escoger el lenguaje de programacin para desarrollarlos. CGI es el nombre de una aplicacin que recibe sus parmetros utilizando el estndar Common Gateway Interface, de ah su nombre. El estndar establece cmo han de comunicarse las aplicaciones con el Servidor Web. Por extensin, se denomina CGI a un programa tradicional como C. En realidad, un CGI se encarga nicamente de implementar la respuesta de la aplicacin web a un tipo concreto de solicitud proveniente del cliente. Por tanto, una aplicacin web estar conformada, por muchos CGIs diferentes. Cada uno de ellos sern responsable de un contexto de interaccin de la aplicacin con el usuario (Berzal, Cubero y Cortijo, 2009, p. 21). El esquema de funcionamiento de los CGI tena un punto dbil: cada vez que recibamos una peticin, el servidor web lanzaba un proceso que ejecutaba el programa CGI. Como, por otro lado, la mayora de CGI estaban escritos en algn lenguaje interpretado (Perl, Python, etc.) o en algn lenguaje que requera runtime environment (VisualBasic, Java, etc.), esto implicaba una gran carga para la mquina del servidor (Mateu, 2004, p. 13). Adems, si la Web cuenta con varios accesos al CGI, esto supona problemas graves. Por ello se empiezan a desarrollar alternativas a los CGI para solucionar este grave problema de rendimiento. Las soluciones vienen principalmente por dos vas. Por un lado se disean sistemas de ejecucin de mdulos ms integrados con el servidor, que evitan que ste tenga que instanciar y ejecutar multitud de programas. La otra va consiste en dotar al servidor de un intrprete de algn lenguaje de programacin que nos permita incluir las pginas en el cdigo de manera que el servidor sea quien lo ejecute, reduciendo as el tiempo de respuesta. A partir de este momento, se vive una explosin del nmero de arquitecturas y lenguajes de programacin que nos han permitido el desarrollar de aplicaciones web. Todas ellas siguen alguna de las dos vas ya mencionadas. De ellas, las ms tiles y las que ms se utilizan son aquellas que permiten mezclar los dos sistemas, es decir, un lenguaje de programacin integrado que permita al servidor interpretar comandos que incrustemos en las pginas HTML y un sistema de ejecucin de programas ms enlazado con el servidor que no presente los problemas de rendimiento de los CGI.

  • Tecnologas Web (E) - Unidad III Daniel Yucra S. / Santiago Gonzles S.

    96 Sistema a Distancia

    10.2 CGI Uno de los primeros mecanismos para generar contenido dinmico para la web es el API llamado CGI (acrnimo de Common Gateway interface, interfaz de pasarelas comn). ste mecanismo simple permite que un Servidor Web ejecute un programa escrito en cualquier lenguaje de programacin, que le pueda pasar unos parmetros que hace posible que el resultado de la ejecucin de este programa sea enviado al usuario como una pgina web o cualquier otro tipo de contenido. Al contrario de lo que sucede con los Servlets de Java y otros lenguajes, no existe ningn tipo de limitacin al lenguaje de programacin que podemos utilizar para escribir un CGI. Podemos usar desde scripts escritos en el lenguaje de shell del sistema operativo hasta programas escritos en ensamblador, pasando por todo el abanico de lenguajes de programacin existentes: C, C++, Perl y Python. Hasta ahora, el lenguaje ms popular para la escritura de CGI es Perl, ya que proporciona utilidades al programador que simplifican la tarea de escribir programas CGI. Perl es un lenguaje de programacin basado de varios lenguajes como el lenguaje C, del lenguaje interpretado bourne shell (sh), AWK, sed, Lisp y, en un grado inferior, de muchos otros lenguajes de programacin. Este fue el lenguaje que populariz los CGI, y se inici el desarrollo de las primeras Aplicaciones Web. Los CGI deben responder a las peticiones construyendo ellos mismos parte de la respuesta HTTP que recibir el cliente. Es decir, deben indicar, en primer lugar, el tipo MIME del contenido que sirven. Pueden aadir posteriormente algunos campos adicionales (los especificados en el estndar HTTP). Despus de una lnea en blanco separadora, debe aparecer el contenido. El CGI ms simple posible, en este caso escrito en shell script y que enumera las variables de entorno comentadas anteriormente, son:

    #!/bin/sh echo Content-type: text/plain echo echo echo SERVER_NAME=$SERVER_NAME echo SERVER_PROTOCOL=$SERVER_PROTOCOL echo REQUEST_METHOD=$REQUEST_METHOD echo PATH_INFO=$PATH_INFO echo PATH_TRANSLATED=$PATH_TRANSLATED echo SCRIPT_NAME=$SCRIPT_NAME echo REMOTE_ADDR=$REMOTE_ADDR echo REMOTE_HOST=$REMOTE_HOST echo REMOTE_USER=$REMOTE_USER echo AUTH_TYPE=$AUTH_TYPE echo CONTENT_TYPE=$CONTENT_TYPE echo CONTENT_LENGTH=$CONTENT_LENGTH echo QUERY_STRING=$QUERY_STRING

  • Tecnologas Web (E) - Unidad III Daniel Yucra S. / Santiago Gonzles S.

    97 Sistema a Distancia

    Como podemos ver en este ejemplo (la sintaxis utilizada de Shell script es muy simple), para listar las variables de entorno recibidas enviamos el tipo de contenido, seguido de la lnea en blanco obligatoria de todas y cada una de las variables de entorno mencionadas. La ejecucin de este servidor, resulta:

    Figura 10.1: Resultado de las variables de entorno del CGI

    10.3 PHP PHP, cuyas siglas representan a un acrnimo recursivo (PHP: hypertext preprocessor), es un lenguaje sencillo, de sintaxis cmoda y similar a la de otros lenguajes como Perl, C y C++. Es un lenguaje rpido, interpretado, orientado a objetos y multiplataforma. Existe prcticamente para todos los sistemas operativos, altamente portable. PHP es un lenguaje ideal para el desarrollo de Aplicaciones Web, incluso para desarrollar Aplicaciones Web Complejas. PHP contiene diversos mdulos y gran cantidad de libreras desarrolladas disponibles en su cdigo fuente, con lo que el programador de PHP dispone de abundantes referencias y mdulos para desarrollar las aplicaciones. PHP suele ser utilizado conjuntamente con Apache, MySQL o PostgreSQL en sistemas operativos como GNU/Linux, formando una combinacin que se denomina LAMP (Linux, Apache, MySQL y Php), que se hace potente y verstil cuando se utilizan como uno solo. El Servidor Web Apache, puede incorporar PHP como un mdulo propio del servidor, lo que permite que las aplicaciones escritas en PHP resulten mucho ms rpidas que las aplicaciones CGI habituales.

  • Tecnologas Web (E) - Unidad III Daniel Yucra S. / Santiago Gonzles S.

    98 Sistema a Distancia

    Para usar PHP como lenguaje de desarrollo de Aplicaciones Web, la primera necesidad que tenemos es saber cmo interactuar PHP con nuestro usuario Web. Podemos dividir dicha interactuacin en dos partes, mostrando informacin al usuario y recogiendo informacin de ste. PHP es una alternativa a las tecnologas de Microsoft ASP, JSP, y dems lenguajes de programacin para la Web.

    10.4 Java Servlets Los Servlets de Java son la propuesta de la tecnologa Java para el desarrollo de Aplicaciones Web. Un Servlet es un programa que se ejecuta en un Servidor Web generalmente en Apache Tomcat. Su uso se ha popularizado por generar pginas web de forma dinmica a partir de los parmetros de la peticin que enve el navegador web. Los Servlets Java presentan una serie de ventajas sobre los CGI. stos son ms portables, potentes, eficientes, fciles de usar, ms escalables y utilizan menos recursos que un CGI. El entorno donde se ejecutan, se arranca al iniciar el servidor, permaneciendo durante toda la ejecucin del mismo. Para atender cada peticin no inicia un nuevo proceso, sino un hilo, un proceso ligero de Java mucho ms rpido. El siguiente ejemplo nos muestra la estructura bsica de un Servlet bsico que maneja peticiones GET de HTTP (los Servlets tambin pueden manejar peticiones POST).

    import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class ServletBasico extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // Disponemos del requerimiento para acceder a los datos de la // peticin HTTP. // Disponemos de la respuesta para modificar la respuesta HTTP // que generar el Servlet. PrintWriter out = response.getWriter(); // Podemos usar out para devolver datos al usuario out.println(Hola Mundo Cruel!\n); } }

    Para escribir un Servlet debemos escribir una clase de Java que extienda (por herencia) la clase HttpServlet (o la clase ms genrica Servlet) y que sobrescriba el mtodo service o alguno de los mtodos de peticin ms especficos (doGet, doPost, etc.).

  • Tecnologas Web (E) - Unidad III Daniel Yucra S. / Santiago Gonzles S.

    99 Sistema a Distancia

    10.5 Java Server Pages (JSP) Java Server Pages (JSP) es una tecnologa que permite mezclar HTML esttico con HTML generado dinmicamente mediante cdigo Java embebido en las pginas webs. Cuando se programa Aplicaciones Web con CGI, gran parte de la pgina que generan los CGI es esttica y no vara de ejecucin en ejecucin. Por su parte, la parte variable de la pgina es realmente dinmica y muy pequea (Mateu, 2004, p. 207). Tanto los CGI como los Servlet nos obligan a generar la pgina por completo desde nuestro cdigo de programa, dificultando as las tareas de mantenimiento, diseo grfico, comprensin del cdigo, etc. Los JSP, por otro lado, nos permiten crear las pginas fcilmente.

    Bienvenido UIGV. Bienvenido UIGV Welcome, < % out.println(Utiles.leerNombreDeCookie(request)); %>

    Como podemos ver en el ejemplo, una pgina JSP no es ms que una pgina HTML donde, merced a unas marcas especiales < % y %>, podemos incluir cdigo Java. Esto presenta una serie de ventajas obvias: por un lado disponemos de prcticamente las mismas ventajas que al usar Java Servlets; de hecho, los servidores JSP traducen stos a Servlets antes de ejecutarlos. Otro ejemplo simple de pgina JSP es la siguiente:

    Bienvenido. Da: < %= fecha %>

  • Tecnologas Web (E) - Unidad III Daniel Yucra S. / Santiago Gonzles S.

    100 Sistema a Distancia

    Las pginas JSP normalmente tienen extensin .jsp y suelen colocarse en el mismo directorio que los ficheros HTML. Como podemos ver, una pgina .jsp no es ms que una pgina HTML en la que incrustamos trozos de cdigo Java, delimitados por < % y %>. Las construcciones delimitadas por < % y %> pueden ser de tres tipos: - Elementos de script que nos permiten introducir un cdigo que formar parte

    del Servlet que resulte de la traduccin de la pgina. - Las directivas nos permiten indicar al contenedor de Servlets cmo queremos

    que se genere el Servlet. - Las acciones nos permiten especificar componentes que debern ser usados. - Cuando el servidor/contenedor de Servlets procesa una pgina JSP, convierte

    sta en un Servlet en el que todo el HTML que hemos introducido en la pgina JSP es impreso en la salida, para a continuacin compilar este Servlet y pasarle la peticin.

  • Tecnologas Web (E) - Unidad III Daniel Yucra S. / Santiago Gonzles S.

    101 Sistema a Distancia

    Leccin 11: Acceso a Base de Datos

    11.1 PostgreSQL PostgreSQL es un sistema de gestin de bases de datos del tipo objeto-relacional (ORDBMS) basado en el proyecto POSTGRES, de la universidad de Berkeley. El actual director de este proyecto es el profesor Michael Stonebraker, y fue patrocinado por DAROA (Defense Advanced Research Projects Agency, adems Army Research Office (ARO) y la National Science Foundation (NSF). PostgreSQL es una herramienta de software libre y utiliza el lenguaje SQL92/SQL99, se trata de uno de los gestores de base de datos ms consistes, estables y altamente escalables. En 1996 se eligi un nuevo nombre que resistiera el paso de los aos y reflejara la relacin del proyecto con el original Postgres (an disponible) y las nuevas diferencias bsicamente, el uso de lenguaje SQL. Las caractersticas ms destacadas de PostgreSQL que podemos citar son: - Soporte para transacciones. - Soporte para vistas - Integridad referencial - Herencia de tablas - Tipos definidos por el usuario - Soporte de objetos binarios grandes (mayores de 64 KB). - Y muchas ms caractersticas tcnicas. Fue el pionero en muchos de los conceptos existentes en el sistema objeto-relacional incluido, ms tarde en otros sistemas de gestin comerciales. PostgreSQL. A pesar de todo esto PostgreSQL no es un sistema de gestin de bases de datos puramente orientado a objetos. PostgreSQL compite con los gestores comerciales, haciendo de l una muy buena alternativa, utiliza la licencia GPL y es comn ver a alguna aplicacin web utilizando este gestor de base de datos. Generalmente es muy usado combinando con los lenguajes de programacin ejemplo C, C++, Java, Python, PHP, Java, JSP, etc.

    11.2 MySQL MySQL, al igual que PostgreSQL, son muy populares por los desarrolladores de aplicaciones web. MySQL es un SGBD desarrollado por la empresa MySQL AB, de origen sueco que lo desarroll bajo licencia de software libre, pero puede ser adquirido con licencia comercial para ser incluido en proyectos no libres. Actualmente pertenece a la empresa Oracle. MySQL es un sistema gestor de base de datos extremadamente rpido. Aunque no ofrece las mismas capacidades y funcionalidades que otras muchas bases de datos, compensa esta pobreza de prestaciones con un rendimiento excelente que

  • Tecnologas Web (E) - Unidad III Daniel Yucra S. / Santiago Gonzles S.

    102 Sistema a Distancia

    hace de ella la base de datos de eleccin en aquellas situaciones en las que necesitamos slo unas capacidades bsicas en una aplicacin. Las funcionalidades ms destacadas de MySQL son: - Soporte de transacciones. - Soporte de replicacin. - Librera para uso embebido. - Bsqueda por texto. - Proporciona sistemas de almacenamientos transaccionales y no

    transaccionales. - Las funciones SQL estn implementadas usando una librera altamente

    optimizada y deben ser tan rpidas como sea posible. Normalmente no hay reserva de memoria tras la inicializacin de consultas.

    - El servidor est disponible como un programa separado para usar en un entorno de red cliente/servidor. Disponible como biblioteca y puede ser insertado o agregado en aplicaciones autnomas. Dichas aplicaciones pueden usarse por s mismas o en entornos donde no hay red disponible.

    MySQL se combina con muchos lenguajes de programacin como Java, Php; python, ruby, Jsp, etc.

    11.3 MariaDB MariaDB es un gestor de base de datos derivado de MySQL con licencia GPL versin 2. Su principal desarrollador es Michael Monty Widenius, quien desarroll previamente MySQL. MariaDB es totalmente compatible con MySQL y posee los mismos comandos, interfaces, API y bibliotecas de MySQL. Adems tiene soporte NoSQL. MariaDB tiene soporte y asistencia de la comunidad de Software Libre y est abierto a los desarrolladores de software. Este gestor de base de datos incluye motores de almacenamiento alternativo (Storage Engines), mejoras en las optimizaciones del servidor y los nuevos parches de MySQL. Este gestor de base de datos es una alternativa perfecta para MySQL

    11.4 FirebirdSQL FirebirdSQL es una base de datos de software libre surgida a partir de la versin de cdigo libre de Interbase que la empresa Borland liber en el verano de 2000. El primer objetivo que se marcaron los desarrolladores de FirebirdSQL fue estabilizar el cdigo y eliminar multitud de bugs, as como aumentar el nmero de plataformas en las que funcionaba la base de datos. En la actualidad algunas de las funcionalidades ms destacadas son: - Arquitectura de versiones que evita bloqueos entre lectores y escritores. - Alerta de eventos para reaccionar a cambios en la base de datos. - Tipos de datos muy ricos por ejemplo BLOBS.

  • Tecnologas Web (E) - Unidad III Daniel Yucra S. / Santiago Gonzles S.

    103 Sistema a Distancia

    - Procedimientos almacenados y triggers. - Compatibilidad ANSI SQL-92. - Integridad referencial. - Transacciones.

  • Tecnologas Web (E) - Unidad III Daniel Yucra S. / Santiago Gonzles S.

    104 Sistema a Distancia

    Leccin 12: Framework

    Los framework constituyen un marco de trabajo que gua al programador en la construccin de un programa. Es framework ofrece generalmente parte de una biblioteca que hace las veces de nuevo zcalo para simplificar el acceso a las funciones ms tiles. El framework impone una estructura a las aplicaciones, en especial separando representacin de los datos, tratamientos y presentacin [Gurin, 2005, p. 355]. El trmino framework se refiere a una estructura de software compuesta de componentes personalizables e intercambiables para el desarrollo de una aplicacin. As mismo, se puede considerar como una aplicacin genrica incompleta y configurable a la que podemos aadirle los ltimos elementos para construir una aplicacin concreta. Un framework web podemos definirlo como un conjunto de componentes que componen un diseo reutilizable que facilita y agiliza el desarrollo de Sistemas Web. Entre las caractersticas de un framework podemos mencionar: Estar enfocado en un tema especfico y ser altamente reutilizable. Incluye mltiples clases y componentes, cada una de las cuales provee una

    abstraccin de un determinado concepto. Describe cmo esas abstracciones trabajan en conjunto para resolver las

    necesidades a las que da solucin. Los componentes de un Framework son altamente reutilizable.

    12.1 JSF JSF es un framework para crear aplicaciones java basadas en el patrn MVC (Modelo Vista Controlador). Forma parte del estndar J2EE, existen muchas alternativas para crear la capa de presentacin y control de una aplicacin web java, como el framework struts y Spring pero solo JSP forma parte del estndar. Con JSF se puede construir interfaces de usuario en aplicaciones web, de esta manera nos facilita el desarrollo de aplicaciones, separando las diferentes capas de una arquitectura: presentacin, reglas de negocio y la base de datos. JSF fue creado dentro del Java Community Process de SUN, en el que han participado lderes de la industria como Oracle, BEA, IBM y muchas ms empresas relacionadas a Java. Tambin conocido por ser el framework oficial de SUN para el desarrollo de aplicaciones web con 4 capas. JSF ofrece un modelo de trabajo basado en componentes UI (user interface), definidos por medio de etiquetas y XML, entre sus principales caractersticas podemos citar:

    a) Una arquitectura basada en el patrn MVC.

  • Tecnologas Web (E) - Unidad III Daniel Yucra S. / Santiago Gonzles S.

    105 Sistema a Distancia

    b) Asocia (de forma modular) cada componente grfico con los datos (beans de respaldo).

    c) Incluye la capa de control, definida de forma declarativa en archivos XML. d) Validacin en cliente y en servidor. e) Control de mensajes y roles.

    Las principales implementaciones de JSF son: JSF Reference Implementation de Sun Microsystems y MyFaces proyecto de Apache Software Foundation.

    12.2 Ruby On Rails Ruby on Rails o RoR es un framework de aplicaciones web basado en software libre escrito en el lenguaje de programacin Ruby. Con este framework se puede desarrollar aplicaciones web con base de datos de acuerdo con el patrn de diseo arquitectnico MVC (Modelo Vista Controlador). Rails te da un entorno de desarrollo de Ruby. Para probarlo, solo se necesita de una base de datos y un servidor web. El framework se acopla perfectamente en cualquier tipo de aplicacin web, adems trabaja con varios servidores web y bases de datos. Para el servidor web, recomendamos Apache o lighttpd incluso suele venir con su propia implementacin denominada WebRick. Para la base de datos, se puede usar MySQL, PostgreSQL, SQLite, Oracle, SQL Server, DB2, o Firebird. Es multiplataforma y funciona prcticamente en cualquier sistema operativo, pero recomendamos alguno basado en Linux. Ruby on Rails ha popularizado el uso de los framework por la simplicidad y poco cdigo que utiliza al momento de realizar las aplicaciones con el framework.

    12.3 Web2Py Es un framework desarrollado en python basado software libre. Su principal objetivo es dar soporte al desarrollo gil de aplicaciones web escalables, seguras y portables enfocadas en bases de datos. Web2py fue originalmente diseado como una herramienta de enseanza con nfasis en la facilidad de uso y despliegue, no tiene ningn archivo de configuracin a nivel de proyecto. Es sencillo, de fcil uso y aprendizaje, como cualquier otro framework incluye el patrn de diseo arquitectnico MVC, adems de plantillas, libreras en javascript, ajax, hojas de estilo, etc. que lo convierten en una solucin completamente funcional para crear aplicaciones Web 2.0 de manera totalmente interactiva dividiendo el diseo y la programacin. Web2py hace al desarrollo web rpido, fcil y ms eficiente, permite enfocarse en la lgica del negocio y no en temas tcnicos triviales, adems se destacan estas caractersticas: - Instalacin muy simple, prcticamente sin configuracin.

  • Tecnologas Web (E) - Unidad III Daniel Yucra S. / Santiago Gonzles S.

    106 Sistema a Distancia

    - Intuitivo y con curva de aprendizaje muy baja. - Ideal para ser enseado en el aula a nivel de principiantes. - Su capa de abstraccin a la base de datos permite definir tablas sin necesidad

    de clases complejas. - Su lenguaje de consulta es muy cercano a SQL otorgando gran poder

    declarativo y flexibilidad, en Python. - Estructura slida todo incluido, incluyendo hasta ajax, mens, formularios,

    caching, GAE, servicios web, etc. - Diseo integrado, limpio y seguro. Por las caractersticas de Python, web2py es menos verboso que los frameworks desarrollados en Java, y su sintaxis tiende a ser ms limpia mucho ms que los desarrollados en php.

    12.4 Zend Framework Zend es otro framework basado en software libre desarrollado ntegramente en php, entre las principales caractersticas podemos citar: - 100% orientado a objetos y sus componentes tienen un bajo acoplamiento por

    lo que los puede ser utilizado de forma independiente. - Cuenta con soporte para internalizacin y localizacin de aplicaciones. - Cada componente est construido con una baja dependencia de otros

    componentes, permitiendo a los desarrolladores utilizar los componentes por separado.

    El principal patrocinador del proyecto Zend Framework es Zend Technologies, pero muchas empresas han contribuido con componentes o caractersticas importantes para el framework. Microsoft y Google se han asociado con Zend para proporcionar interfaces de servicios web y otras tecnologas que desean poner a disposicin de los desarrolladores de Zend Framework. Existen muchos otros framework desarrollados en php, en este caso Zend Framework est respaldado por la misma empresa que ha desarrollado el lenguaje php.

  • Tecnologas Web (E) - Unidad III Daniel Yucra S. / Santiago Gonzles S.

    107 Sistema a Distancia

    RESUMEN

    La unidad desarrollada describe la presentacin y aplicacin distribuida del modelo de la arquitectura Web. Existiendo diversas variantes de la arquitectura de las aplicaciones Web, de acuerdo como se implementen las diferentes funcionalidades en la parte del servidor. Se define los lenguajes de programacin, tales como: CGI, php, Java Servlets, JSP como lenguajes para el desarrollo de aplicaciones Web. As mismo, se describe los principales sistemas de gestin de Base de Datos, tales como: PostgreSQL, MySQL, MariaDB y FirebirdSQL. Al trmino de la unidad se explica de forma clara y sencilla en la definicin de un framework para sistemas Web y de sus principales caractersticas.

  • Tecnologas Web (E) - Unidad III Daniel Yucra S. / Santiago Gonzles S.

    108 Sistema a Distancia

    LECTURA

    XML: Transformando la Web en una Base de Datos

    Autor: Marcelo Arenas

    Una de las razones para la popularizacin de la Web ha sido el desarrollo de una infinidad de pginas que entregan distintos servicios; buscadores como Yahoo y Google, grandes repositorios de informacin como Wikipedia, tiendas electrnicas como Amazon, diarios y revistas electrnicas, pgina personales, etc. Bajo este desarrollo ha estado HTML, un lenguaje que permite estructurar tanto la informacin como las posibilidades de navegacin en una pgina Web. Durante los ltimos aos, la cantidad de informacin almacenada en la Web ha ido creciendo de manera dramtica. Hoy ningn usuario tiene la capacidad de recorrer la Web entera en busca de informacin, y es necesario utilizar buscadores automticos como Yahoo! y Google para poder revisar una fraccin significativa de esta red. Nadie puede negar la importancia y utilidad que tienen los buscadores para encontrar informacin en la Web. Sin embargo, muchos usuarios pueden de-cir que su experiencia con ellos no ha sido completamente satisfactoria. A medida que las consultas que se quiere realizar son ms complejas, la bsqueda de informacin puede requerir de varios, o muchos, intentos en los cuales es necesario jugar con distintos parmetros. Piense por ejemplo en la consulta d la lista de libros de Ariel Rubinstein. Para realizar esta consulta basta con poner Ariel Rubinstein en un buscador y usar los primeros elementos de la lista de respuesta (probablemente el primero) para encontrar la pgina de este autor, y ah la lista de sus libros. Pero ahora piense en la pregunta d la lista de libros de Ariel Rubinstein y sus precios. Qu colocara en un buscador para encontrar la respuesta? Peor an, piense en una pregunta como la siguiente d la lista de libros de Ariel Rubinstein que han bajado de precio en los ltimos aos. Cmo se puede buscar esta informacin usando Yahoo o Google? Por qu los buscadores tienen dificultades en los ejemplos anteriores? Una de las razones es el uso de HTML; este es un lenguaje que permite desplegar informacin que es fcil de entender para los usuarios, pero que en general es difcil de interpretar para los computadores. Estas dificultades ya pueden verse en ejemplos tan sencillos como el siguiente:

    Todo Libros Teora de Juegos. Martin Osborne y Ariel Rubinstein. Precio: 16000.

  • Tecnologas Web (E) - Unidad III Daniel Yucra S. / Santiago Gonzles S.

    109 Sistema a Distancia

    Este archivo es usado para mostrar la lista de libros vendidos por la librera Todo Libros. Ntese que este archivo ha sido indentado (espaciado) de manera que sea fcil visualizar la estructura jerrquica del documento. Por ejemplo, corresponde a un tem en la lista definida por . En un browser tal como FireFox o Explorer, esta lista ser desplegada de la siguiente forma:

    Todo Libros Teora de Juegos. Martin Osborne y Ariel Rubinstein.

    Precio: 16000.

    Para un usuario la informacin en esta lista es fcil de entender; es claro que hay una lista de libros, cada uno con sus autores y su precio. Sin embargo, para un computador esta informacin no es tan clara. Una de las razones es que el computador no tiene la informacin de contexto, o metainformacin, que tiene el usuario. Cmo puede un computador deducir que est frente a una lista de libros? Y aun si sabe esto, cmo puede extraer informacin desde el documento, por ejemplo los precios de los libros? Es importante notar aqu que el documento HTML no tiene ninguna indicacin sobre dnde buscar esta informacin, simplemente dice cmo debe ser desplegada la lista de libros. As, el computador debe tratar de interpretar el texto para poder extraer la lista de precios. Por ejemplo, puede buscar la palabra Precio y el nmero que lo sigue (o antecede). Aunque en este caso esto puede dar buenos resultados, la situacin puede volverse ms complicada si la lista contiene varios precios para un mismo libro (precio sin descuento, con descuento por compra electrnica, con descuento a clientes frecuentes, etc.), o aun ms complicada si se requiere de hacer algunos clculos para saber el precio final (precio despus del 15% de descuento por compra electrnica). La bsqueda de informacin en la Web puede mejorarse si los formatos usados para almacenar informacin pueden ser fcilmente interpretados por los computadores. Una propuesta para hacer esto es el uso de XML.

    Cmo funciona la Web Centro de Investigacin de la Web

    Departamento de Ciencias de la Computacin Universidad de Chile

    Pp. 75-78

  • Tecnologas Web (E) - Unidad III Daniel Yucra S. / Santiago Gonzles S.

    110 Sistema a Distancia

    AUTOEVALUACIN

    1. La aplicacin distribuida por el cliente, est conformado por: a. Presentacin Lgica de Datos Gestin de Datos b. Lgica de presentacin Lgica de Negocio Lgica de Datos c. Lgica de presentacin Lgica de Negocio Gestin de Datos d. Presentacin Lgica de presentacin Lgica de Negocio e. Presentacin Lgica de Negocio Lgica de Datos

    2. La arquitectura de la aplicacin todo en un solo servidor est compuesto por una arquitectura de: a. 02 capas b. 03 capas c. 04 capas d. 05 capas e. 06 capas

    3. Es un lenguaje rpido, interpretado, orientado a objetos y multiplataforma: a. CGI b. Html c. Javascript d. Php e. XML

    4. Es una herramienta de software libre y utiliza el lenguaje SQL92/SQL99: a. SQL Server b. MySQL c. Oracle d. PostgreSQL e. MariaDB

    5. De las siguientes definiciones de framework cul es la correcta?: a. El trmino framework se refiere a varios componentes personalizables e

    intercambiables para el desarrollo de un API. b. El trmino framework se refiere a una estructura de elementos compuesto

    de componentes intercambiables para el desarrollo de una pgina Web. c. El trmino framework se refiere a una estructura de software compuesta de

    componentes personalizables e intercambiables para el desarrollo de una aplicacin.

    d. El trmino framework se refiere a una aplicacin genrica completa y no configurable a la que podemos aadirle los ltimos elementos para construir una aplicacin.

    e. El trmino framework se refiere a una estructura de aplicaciones donde se juntan la representacin de los datos, tratamientos y presentacin.

  • Tecnologas Web (E) - Unidad III Daniel Yucra S. / Santiago Gonzles S.

    111 Sistema a Distancia

    6. Ofrece un modelo de trabajo basado en componentes UI: a. XML b. html c. http d. jsf e. Servlet

    7. Es un framework para crear aplicaciones java basadas en el patrn MVC: a. Ruby on Rails b. jsf c. zend d. Web2py e. Ajax

    8. Ruby on Rails es un framework escrito en el lenguaje de programacin: a. php b. asp c. javascript d. ruby e. html

    9. Web2Py es un framework escrito en el lenguaje de programacin: a. jsp b. python c. C++ d. css e. java

    10. Zend es un framework escrito en el lenguaje de programacin: a. php b. asp c. python d. jsp e. ruby

  • Tecnologas Web (E) - Unidad III Daniel Yucra S. / Santiago Gonzles S.

    112 Sistema a Distancia

    RESPUESTAS DE CONTROL

    1. d 2. c 3. d 4. d 5. c 6. d 7. b 8. d 9. b 10. a

  • Tecnologas Web (E) - Unidad III Daniel Yucra S. / Santiago Gonzles S.

    113 Sistema a Distancia

    EJERCICIOS PROPUESTOS

    1. Implementar un Servidor Web con soporte para JSP utilizando apache Tomcat.

    2. Realizar una aplicacin Web utilizando Base de Datos (MySQL, Postgresql o MariaDB) permitiendo ingresar, modificar, consultar y eliminar datos.

    3. Realizar una aplicacin Web utilizando un framework.

  • Tecnologas Web (E) - Unidad III Daniel Yucra S. / Santiago Gonzles S.

    114 Sistema a Distancia

    EXPLORACIN ON LINE

    URL: http://php.net/manual/es/index.php Manual oficial de desarrollo del lenguaje de programacin PHP

    URL: http://www.oracle.com/technetwork/java/javaee/jsp/index.html Sitio oficial de JSP, donde se publican las ltimas versiones del framework adems pueden encontrar documentacin.

    URL: http://www.postgresql.org.es/documentacion En este sitio encontrar informacin official del gestor de base de datos PostGreSQL en espaol, adems de libros, descargas y foros que discuten el uso y desarrollo.

    URL: http://php.net/manual/es/book.mysql.php Documentacin oficial php con mysql sobre las funciones que se utilizan para generar aplicaciones web con esta solucin

    URL: http:/ downloads.mysql.com/docs/refman-5.0-es.a4.pdf Manual oficial de Mysql para la versin 5.0 en espaol

    URL: http://kb.askmonty.org/es/mariadb Documentacin oficial del gestor de base de datos MariaDB en espaol

    URL: http://www.firebird.com.mx/modules/mydownloads/ Documentacin en espaol sobre el gestor de base de datos firebird

  • Tecnologas Web (E) - Unidad III Daniel Yucra S. / Santiago Gonzles S.

    115 Sistema a Distancia

    REFERENCIA BIBLIOGRFICA

    Berzal, F., Cubero, J.C. y Cortijo, F.J. (2009) Desarrollo Profesional de Aplicaciones Web con ASP.NET. Madrid: iKor Consulting

    Cancelo, P. y Giraldez, J. A. (2007) La tercera Revolucin. La Corua: Editorial NetBiblio, S.L.

    Castelo, A. (2010) Estrategias Empresariales en la Web 2.0. Las redes sociales Online. Alicante: Editorial Club Universitario.

    Guerin, Brice-Arnaud (2005) Lenguaje C++. Programacin Unix & Windows Standard Template Library. Ediciones ENI

    Mateu, C. (2004) Desarrollo de Aplicaciones Web. Barcelona: Eureca Media, SL

  • Tecnologas Web (E) - Unidad III Daniel Yucra S. / Santiago Gonzles S.

    116 Sistema a Distancia

    BIBLIOGRAFA COMENTADA

    - Coulouris, G., Dollimore, J., & Kindberg, Tim (2007) Sistemas Distribuidos Conceptos y Proyecto 4ta Edicin. Madrid: Addison Wesley. Puede revisar la Unidad 1 y 2, sobre los modelos de arquitectura de los sistemas distribuidos.

    - Fernndez, D. (2004) Arquitectura web en aplicaciones Java/j2ee. Madrid: IberLibro. Revisar las unidades 1 y 2 sobre las arquitecturas de 4 capas en N niveles, adems de la arquitectura de las aplicaciones JSP, Servlet y framework basados en esta tecnologa.

    - Barranco, J. (2001) Metodologa del anlisis estructurado de sistemas. Madrid: Universidad Pontificia. Revisar el captulo 9, sobre el estudio de una arquitectura de software adems de las caractersticas de arquitectura de una aplicacin web en la pgina 284

    - Mateu, C. (2004) Desarrollo de Aplicaciones Web. Barcelona: Eureca Media, SL. Revisar la unidad 5 sobre el desarrollo de Contenido dinmico con los CGI, PHP y JSP. Adems de la unidad 6 sobre el acceso a base de datos utilizado JDBC.