Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
GENERALIDADES DEL DESARROLLO WEB (SEGURIDAD, ARQUITECTURA, PLATAFORMAS Y LENGUAJES DE PROGRAMACION) UNIVERSIDAD POLITECNICA DE ATLAUTLA 2016 PRESENTA: LUIS FERNANDO RIVERA VILLANUEVA INGENIERIA EN INFORMATICA 23/09/2016 1 1. INTRODUCCION 1.1 INTRODUCCION A INTERNET 1.2 LA WWW 2 JUSTIFICACION 3 OBJETIVOS 3.1 OBJETIVOS GENERALES 3.2 OBJETIVOS ESPECIFICOS 4 SERVIDOR WEB 4.1 QUE ES.? 4.2 SEGURIDAD Y AUTENTICACION 4.3 SERVIDORES WEB 5 ARQUITECTURA WEB 6 SEGURIDAD EN WEB 6.1 SEGURIDAD AL CLIENTE 6.2 SEGURIDAD DEL SERVIDOR WEB Y LOS DATOS 6.3 SEGURIDAD DE LA INFORMACION EN TRANSITO 7 VENTAJAS \ DESVENTAJAS DE LAS APLICACIONES WEB 7.1 VENTAJAS 7.2 DESVENTAJAS 8 PATRON DE DISEÑO MVC 8.1 FUNCIONAMIENTO BASICO DEL PATRON MVC 9 PLATAFORMAS DE DESARROLLO WEB 10 LENGUAJES DE PROGRAMACION WEB 2 FIGURA 1 ARQUITECTURA WEB ____________________________________________________________ 2 FIGURA 2 COMUNICACION WEB ___________________________________________________________ 2 FIGURA 3 ARQUITECTURA TRES ETAPAS _____________________________________________________ 3 FIGURA 4 ARQUITECTURA MVC ____________________________________________________________ 6 FIGURA 5 CICLO DE VIDA DE JSF ____________________________________________________________ 8 FIGURA 6 CICLO DE VIDA DE WEBWORK _____________________________________________________ 8 FIGURA 7 CICLO DE VIDA DE TAPESTRY ______________________________________________________ 9 FIGURA 8 ESTRUCTURA BASICA HTML ______________________________________________________ 10 FIGURA 9 EJEMPLO DE CGI'S ______________________________________________________________ 10 FIGURA 10 EJEMPLO DE APLICACION WEB EN ASP ____________________________________________ 10 FIGURA 11 EJEMPLO DE PHP _____________________________________________________________ 10 FIGURA 12 EJEMPLO DE APLICACIÓN WEB CON PHP __________________________________________ 10 3 Se pretende dar a conocer a las personas que tengan un interés propio por la web y el desarrollo de esta, por lo cual presentamos información recopilada la cual les servirá para aclarar algunas cuantas dudad, tener conocimiento y usar de forma adecuada esta información sobre las generalidades de del desarrollo web. Ya que como sabemos este tema es demasiado extenso y solo se tomas algunas partes que la conforman que sabemos que a muchos estudiantes sistemas computacionales, programadores, informáticos o alguna otra persona que necesite saber sobre el tema, encuentres esta documentación de su agrado y más que otra cosa sea útil para lo que se requiere. Comenzando con algunos antecedentes que se consideran necesarios mencionar o información que simplemente en las primeras páginas de este documento puedan encontrar y sea entendible y concreta. 1.1 INTRODUCCION A INTERNET Internet, la red de redes, nace a mediados de la década de los setenta, bajo los auspicios de DARPA, la Agencia de Proyectos Avanzados para la Defensa de Estados Unidos. DARPA inició un programa de investigación de técnicas y tecnologías para unir diversas redes de conmutación de paquetes, permitiendo así a los ordenadores conectados a estas redes comunicarse entre sí de forma fácil y transparente. De estos proyectos nació un protocolo de comunicaciones de datos, IP o Internet Protocol, que permitía a ordenadores diversos comunicarse a través de una red, Internet, formada por la interconexión de diversas redes. 1.2 LA WWW En 1989, mientras trabajaba en el CERN (Centro Europeo de Investigación Nuclear), Tim Berners-Lee empezó a diseñar un sistema para hacer accesible fácilmente la información del CERN. Dicho sistema empleaba el hipertexto para estructurar una red de enlaces entre los documentos. Una vez obtenida la aprobación para continuar el proyecto, nació el primer navegador web, llamado WorldWideWeb (sin espacios). En 1992 el sistema ya se había extendido fuera del CERN. El número de servidores “estables” había aumentado, alcanzando la sorprendente cifra de veintiséis. A partir de este punto, el crecimiento es espectacular. En 1993 la web ya era merecedora de un espacio en el New York Times. La WWW (World Wide Web) o, de forma más coloquial, la web, se ha convertido, junto con el correo electrónico, en el principal caballo de batalla 4 de Internet. Ésta ha dejado de ser una inmensa “biblioteca” de páginas estáticas para convertirse en un servicio que permite acceder a multitud de prestaciones y funciones, así como a infinidad de servicios, programas, tiendas, etc. Para llevar a cabo un proyecto de tecnologías de la información basado en la utilización de herramientas de uso habitual en Internet (como por ejemplo la World Wide Web), en entornos de software libre, como en cualquier otro tipo de proyecto, es necesario seguir un proceso que nos lleve desde la comprensión del alcance del problema que queremos solventar hasta la implantación y mantenimiento de la solución que hayamos elegido. Para lo cual también pretendemos dar a conocer el seguimiento general que se tiene que hacer para la creación de un proyecto web. 5 2 JUSTIFICACION En la actualidad muchas personas y empresas ya trabajan con ordenadores y muchos de ellos se dedican al desarrollo web, ya sea para páginas web, blogs, foros, etc. Existe gente que se encuentra estudiando en alguna rama de la computación y es necesario tener conocimiento de la web y sus detalles. Los temas relacionados con la palabra web son muy buscados en estos días por diferentes personas con diferentes cargos en esta sociedad, quieren información que sea benéfica para sus trabajos, investigaciones o simplemente una tarea. Se hace este archivo para que sea más simple una búsqueda de información concreta sobre el tema web, ya que es demasiado extenso, aquí solo se toman algunos puntos, como su título del presente lo dice solo se abarcan algunos cuantos puntos como la seguridad, arquitectura, servidores y más cosas fundamentales que encontraras al leer y entender el archivo. Porque en el área de la informática queremos y necesitamos ser gente preparada o con algún conocimiento que nos ayude a destacar en la sociedad, empleos o el sitio que estemos el cual nos exija ser competentes con los demás y llevar conocimientos previos del tema del desarrollo web y no queremos que no sepan al menos una palabra simple, sino que sepamos responder con lo aprendido o con lo recién buscado en este documento el cual se crea con el propósito de ayudar a otros ya que es difícil poner atención al estudio o investigación, se tiene el propósito de que sea entendible, no aburrido y sea información concreta y más que otra cosa, que sea de gran ayuda. 6 3 OBJETIVOS 3.1 OBJETIVOS GENERALES Llevar a la persona a estar mejor preparada con alguna información básica que le sea útil tanto como para sus estudios como para su ámbito laboral y pueda desarrollarse con competitividad en las diferentes áreas, en especial a el desarrollo web y sus conceptos básicos que son útiles para el manejo de las TICS o para especializarse en esta área. 3.2 OBJETIVOS ESPECIFICOS CORTO PLAZO: La aprobación de esta recopilación de información para que pueda ser expuesta a las personas con interés en el desarrollo web y sus generalidades. MEDIANO PLAZO: Recibir apoyo por otras personas para complementar y fortalecer esta investigación para ser expuesta en internet y pueda ser bien evaluada por los usuarios. LARGO PLAZO: Tener un gran número de visitas que también apoyen a complementar la investigación presente y ayuden con sus comentarios positivos y llevar a cabo más investigaciones que puedan ayudar a los colegas informáticos. 4 SERVIDOR WEB 4.1 QUEES.? Un servidor web es un programa que atiende y responde a las diversas peticiones de los navegadores, proporcionándoles los recursos que solicitan mediante el protocolo HTTP o el protocolo HTTPS (la versión segura, cifrada y autenticada de HTTP). Un servidor web básico tiene un esquema de funcionamiento muy sencillo, ejecutando de forma infinita el bucle siguiente: 1. Espera peticiones en el puerto TCP asignado (el estándar para HTTP es el 80). 2. Recibe una petición. 3. Busca el recurso en la cadena de petición. 4. Envía el recurso por la misma conexión por donde ha recibido la petición. 5. Vuelve al punto 2. Un servidor web que siguiese el esquema anterior cumpliría los requisitos básicos de los servidores HTTP, aunque, eso sí, sólo podría servir ficheros estáticos. A partir del esquema anterior se han diseñado y construido todos los programas servidores de HTTP que existen, variando sólo el tipo de peticiones (páginas estáticas, CGI, Servlets, etc.) que pueden atender, en función de que sean o no multi-proceso, multi-hilados, etc. A continuación, detallaremos algunas de las características principales de los servidores web, que extienden, obviamente el esquema anterior. 4.2 SEGURIDAD Y AUTENTICACION La mayoría de los servidores web modernos nos permiten controlar desde el programa servidor aquellos aspectos relacionados con la seguridad y la autenticación de los usuarios. El modo más simple de control es el proporcionado por el uso de ficheros .htaccess. Éste es un sistema de seguridad que proviene de uno de los primeros servidores web (del NCSA HTTP), que consiste en poner un fichero de nombre .htaccess en cualquier directorio del contenido web que se vaya a servir, indicando en este fichero qué usuarios, máquinas, etc., tienen acceso a los ficheros y subdirectorios del directorio donde está el fichero. Como el servidor de NCSA fue el servidor más usado durante mucho tiempo, la mayoría de servidores modernos permiten utilizar el fichero .htaccess respetando la sintaxis del servidor de NCSA. Otros servidores permiten especificar reglas de servicio de directorios y ficheros en la configuración del servidor web, indicando allí qué usuarios, máquinas, etc., pueden acceder al recurso indicado. Por lo que respecta a la autenticación (validación del nombre de usuario y contraseña proporcionados por el 1 cliente), las prestaciones ofrecidas por los diversos servidores web son de lo más variado. La mayoría permiten, como mínimo, proporcionar al servidor web un fichero con nombres de usuario y contraseñas contra el que se pueda validar lo enviado por el cliente. De todos modos, es frecuente que los servidores proporcionen pasarelas que permitan delegar las tareas de autenticación y validación a otro software (por ejemplo, RADIUS, LDAP, etc.). Si usamos un sistema operativo como Linux, que dispone de una infraestructura de autenticación como PAM (pluggable authentication modules), podemos usar esta funcionalidad como modo de autenticación del servidor web, permitiéndonos así usar los múltiples métodos disponibles en PAM para autenticar contra diversos sistemas de seguridad. Algunas características adicionales de algunos servidores web de código libre son las siguientes: Spelling (Apache). Esta prestación de Apache nos permite definir una página de error para los recursos no encontrados que sugiera al usuario algunos nombres de recurso parecidos al que solicitaba para el caso de que hubiese cometido un error al escribir. RXML Tags (Roxen). Añade a HTML algunos tags (comandos de HTML), mejorados para programación y generación de contenido dinámico. Bfnsgd (AOLServer), mod_gd (Apache). Nos permite realizar gráficos a partir de texto y de fuentes True Type. Nsxml (AOLServer), tDOM (AOLServer), mod_xslt (Apache). Nos permite realizar la transformación de ficheros XML a partir de XSL. Kill Frame (Roxen). Envía con cada página web servida un código que evita que nuestra web quede como frame (enmarcada) dentro de otra página web. 4.3 SERVIDORES WEB • Apache: Es un servidor web HTTP de código abierto para plataformas Unix (BSD, GNU/Linux, etc.), Microsoft Windows, Macintosh y otras, que implementa el protocolo HTTP. • Apache Tomcat: Es un servidor web con soporte a JSP. Tomcat. Incluye el compilador Jasper, que compila JSP convirtiéndolos en servlets. El motor de servlets de Tomcat a menudo se presenta en combinación con el servidor web Apache. • IIS: Este servicio convierte a un ordenador en un servidor de Internet o Intranet es decir que en las computadoras que tienen este servicio instalado se pueden publicar páginas web tanto local como remotamente (servidor web). • Glassfish: Es un servidor de aplicaciones desarrollado por Sun Microsystems que implementa las tecnologías definidas en la plataforma Java EE y permite ejecutar aplicaciones que siguen esta especificación. • Lighttpd: Es un servidor web diseñado para ser rápido, seguro, flexible, y fiel a los estándares. Está optimizado para entornos donde la velocidad es muy importante, y por eso consume menos recursos que otros servidores. 2 • Thttpd: Es un servidor web de código libre disponible para la mayoría de las variantes de Unix. Se caracteriza por ser simple, pequeño, portátil, rápido, y seguro, ya que utiliza los requerimientos mínimos de un servidor HTTP. Esto lo hace ideal para servir grandes volúmenes de información. 5 ARQUITECTURA WEB Una aplicación Web es una aplicación informática que se ejecuta en un entorno Web. La arquitectura Web permite a múltiples clientes o usuarios establecer una comunicación a través de Internet con un servidor Web. Los clientes mediante un navegador emiten peticiones vía HTTP a un servidor Web que responde a cada una de las solicitudes. El servidor aloja una serie de aplicaciones Web que ofrecen diferentes servicios a los usuarios conectados. Es en el servidor Web donde se centraliza la carga de trabajo. En la mayoría de los casos, el navegador suele ser un mero presentador de información (modelo de cliente ligero), y no lleva a cabo ningún procesamiento relacionado con la lógica de negocio. En la arquitectura Web el modelo de comunicación entre cliente y servidor se establece mediante una conexión a Internet o intranet. El intercambio de información desde el navegador al Servidor se efectúa mediante el uso del protocolo HTTP (Hipertext Transfer Protocol) protocolo para el intercambio de información en Web. El navegador Web interpreta las páginas dinámicas generadas por el servidor Web. El esquema de comunicaciones sigue el siguiente formato: FIGURA 2 COMUNICACION WEB El usuario interacciona con las aplicaciones Web a través del navegador. Como consecuencia de la FIGURA 1 ARQUITECTURA WEB 3 actividad del usuario, se envían peticiones al servidor, donde se aloja la aplicación Web y que normalmente hace uso de una base de datos que almacena toda la información relacionada con la misma. El servidor procesa la petición y devuelve la respuesta al navegador que la presenta al usuario. Por tanto, el sistema se distribuye en tres componentes: • el navegador, que presenta la interfaz al usuario • la aplicación, que se encarga de realizar las operaciones necesarias según las acciones llevadas a cabo por éste • la base de datos, donde la información relacionada con la aplicación se hace persistente. Esta distribución se conoce como el modelo o arquitectura de tres capas. FIGURA 3 ARQUITECTURA TRES ETAPAS Una arquitectura por capas nos facilita las siguientes ventajas: • Facilidad de desarrollo: el desarrollo se puede llevara cabo en varios niveles. Es posible realizar desarrollos paralelos (en cada capa). • Aplicaciones robustas: se consigue gracias al encapsulamiento. • Facilidad de mantenimiento: la modularidad facilita el mantenimiento y soporte. • Flexibilidad: la modularidad facilita añadir o modificar módulos de una capa sin afectar a las restantes. Por ejemplo, se pueden tener múltiples interfaces sin cambiar la lógica de la aplicación o se puede modificar un módulo de lógica de negocio sin afectar a la interfaz. • Posibilidad de reutilización: el código de la capa intermedia puede ser reutilizado por múltiples aplicaciones si está diseñado en formato modular. • Alta escalabilidad: se pueden manejar muchas peticiones con el mismo rendimiento simplemente añadiendo más hardware. El crecimiento es casi lineal y no es necesario añadir nuevo código para conseguirlo. En contraposición a las ventajas citadas, las aplicaciones por capas pueden incrementar el tráfico en la red y requieren más balance de carga o tolerancia frente a posibles fallos. 4 6 SEGURIDAD EN WEB Las aplicaciones Web están más expuestas a ataques. Se pueden tener ataques en tres niveles: • Al cliente. • Al servidor. • A la información en tránsito. La seguridad en Web tiene tres etapas primarias: • Seguridad de la computadora del usuario. • Seguridad del servidor Web y los datos. • Seguridad de la información en tránsito 6.1 SEGURIDAD AL CLIENTE Los usuarios deben contar con navegadores y plataformas seguras, libres de virus y vulnerabilidades. También debe garantizarse la privacidad de los datos del usuario. Vulnerar el equipo del usuario quizás no tenga el impacto de vulnerar el servidor, sin embargo, es un problema más difícil de erradicar. El número de clientes es muy superior al número de servidores. Por tanto, se recomiendan las siguientes medidas para asegurar el equipo del usuario: •Aplicar actualizaciones (parches) al sistema operativo. • Uso de antivirus, firewall. • Educación de los usuarios. 6.2 SEGURIDAD DEL SERVIDOR WEB Y LOS DATOS Se debe garantizar la operación continua del servidor, que los datos no sean modificados sin autorización (integridad) y que la información sólo sea distribuida a las personas autorizadas (control de acceso). Se deben considerar los siguientes puntos: • Asegurar el servidor en una forma fundamental: el sistema operativo, ya sea por medio de actualizaciones (parches) y habilitando los mecanismos propios de la plataforma. • Garantizar la seguridad del servidor Web propiamente (IIS, Apache, etc.) • Auditar las aplicaciones que interactúan en las dos capas anteriores (módulos, bibliotecas). 6.3 SEGURIDAD DE LA INFORMACION EN TRANSITO Garantizar que la información que viaja entre cliente y servidor no sea leída (confidencialidad), modificada o destruida por terceros. También es importante asegurar que el enlace entre cliente y servidor no pueda interrumpirse fácilmente (disponibilidad). Esto se puede lograr por diversos medios: •Asegurando la red físicamente (switches en lugar de hubs). •Esconder la información (esteganografía). 5 Cifrar la información (criptografía) por medio de algoritmos diversos (SSL, VPNs). 7 VENTAJAS \ DESVENTAJAS DE LAS APLICACIONES WEB 7.1 VENTAJAS • Compatibilidad multiplataforma: se pueden usar desde cualquier sistema operativo porque sólo es necesario tener un navegador actualizado. • Actualizaciones inmediatas: siempre se accede a la última versión de la aplicación. No es necesario realizar actualizaciones desde el cliente. • Acceso inmediato: no necesitan ser descargadas, instaladas y configuradas lo que supone un significativo ahorro de tiempo. • Menor impacto frente a errores: la localización de las aplicaciones Web en el servidor permite actualizarlas rápidamente frente a problemas que surjan de manera que la actualización esté disponible para todos los usuarios. Además, evita múltiples problemas de interacción con otro software o conflictos de hardware en la máquina cliente. • Consumo bajo de recursos: la carga de trabajo de estas aplicaciones reside en el servidor por tanto se reducen el uso de recursos de memoria en el cliente. Además, al estar alojadas en el servidor no ocupan espacio de disco duro en cliente. • Reducción costes: el mantenimiento del sistema se concentra en el servidor, por tanto, se reducen costes de instalación y actualización en clientes. Además, estas aplicaciones permiten ahorrar invertir en costosas infraestructuras de comunicaciones. • Alta disponibilidad de servicio y datos: gracias a la conectividad que proporciona Internet se permite el acceso a la aplicación desde cualquier punto. Esto facilita la movilidad y el teletrabajo. • Colaboración: pueden ser utilizada por múltiples usuarios al mismo tiempo. • Seguridad de datos: la localización de los datos en un servidor los protege frente a posibles virus en el equipo cliente. • Portabilidad: compatibilidad de la aplicación con múltiples sistemas operativos y plataformas existentes en el mercado. 7.2 DESVENTAJAS • Conexión a Internet: la disponibilidad del servicio está supeditada al proveedor. • Comunicación no segura: la comunicación se realiza a través de un medio que no es seguro, lento y con diferentes protocolos de comunicación. • Seguridad en el servidor: las aplicaciones Web deben estar en constante resguardo. Si no son seguras podrían perderse los datos o no ser accesibles. • Compatibilidad de idioma: la mayor parte de las aplicaciones Web se crea en un idioma concreto sin soportar otros lenguajes. • Dependencia a plugins: muchas aplicaciones dependen de 6 determinados complementos por ejemplo Flash, Java… que genera la necesidad de instalación y actualización en cliente. • Espacio reducido de almacenamiento: muchos proveedores de servicios Web ofrecen un espacio limitado y reducido para los archivos del cliente. • Menor funcionalidad: aunque en este sentido los navegadores van mejorando, la funcionalidad que otorga un navegador es menor que la que otorga el sistema operativo, por tanto, pueden aportar menor funcionalidad que las aplicaciones de escritorio. 8 PATRON DE DISEÑO MVC El patrón MVC [12] (Modelo Vista Controlador) es un patrón de arquitectura de software encargado de separar la lógica de negocio de la interfaz del usuario y es el más utilizado en aplicaciones Web, ya que facilita la funcionalidad, mantenibilidad y escalabilidad del sistema, de forma simple y sencilla, a la vez que permite “no mezclar lenguajes de programación en el mismo código”. MVC especifica cómo debe ser estructurada una aplicación, las capas que van a componer la misma y la funcionalidad de cada una. Según este patrón, la capa intermedia de una aplicación Web se divide en tres niveles de abstracción: • Controlador • Vista • Modelo La siguiente figura muestra esta arquitectura. En ella se puede ver cómo se relacionan estos tres bloques funcionales entre sí, su interacción con el resto de las capas de la aplicación. FIGURA 4 ARQUITECTURA MVC 8.1 FUNCIONAMIENTO BASICO DEL PATRON MVC • El usuario realiza una petición a través de la interfaz de usuario • El controlador captura el evento • El controlador hace la llamada al modelo/modelos correspondientes efectuando las modificaciones pertinentes sobre el modelo • El controlador recibe la información y la envía a la vista • La vista, recibe datos del modelo y los muestra al usuario 7 9 PLATAFORMAS DE DESARROLLO WEB • Utiliza el lenguaje Java para producir aplicaciones Web. • Permite la creaciónde grandes aplicaciones distribuidas. • Provee un buen control de sesión y manejo de autorización. • Permite la creación de aplicaciones de múltiples capas. Una de las desventajas de J2EE es que posee una curva de aprendizaje importante, lo que provoca una difícil inserción de diseñadores Web y programadores en sus primeros pasos. Microsoft actualizó su tecnología ASP a ASP.NET que imita a J2EE en muchas maneras. • Simplifica la creación de aplicaciones pequeñas a programadores que se están iniciando y a diseñadores gráficos. • Permite la creación de grandes aplicaciones distribuidas. • Provee un buen control de sesión y manejo de autorización. • Permite a los programadores la utilización de su lenguaje de programación favorito, el que es compilado a código nativo. La elección entre J2EE y .NET es dependiente de la plataforma. Las aplicaciones J2EE teóricamente pueden ser ejecutadas en la mayoría de las plataformas, desde Linux a AIX, MacOS X o Windows. El concepto original de la Web (en este contexto, llamada Web 1.0) eran páginas estáticas HTML que no eran actualizadas frecuentemente. El éxito de las punto-com dependía de webs más dinámicas (a veces llamadas Web 1.5) donde los CMS servían páginas HTML dinámicas creadas al vuelo desde una actualizada base de datos. En ambos sentidos, el conseguir hits (visitas) y la estética visual eran considerados como unos factores muy importantes. Los propulsores de la aproximación a la Web 2.0 creen que el uso de la Web está orientado a la interacción y redes sociales, que pueden servir contenido que explota los efectos de las redes con o sin crear webs interactivas y visuales. Es decir, los sitios Web 2.0 actúan más como puntos de encuentro, o webs dependientes de usuarios, que como webs tradicionales. JSF es una plataforma desarrollada a través del Java community Process por Sun Microsystems. [WEB-6] JSF se establece como un estándar para la construcción de interfaces de usuario ubicándose en el lado del servidor. Con la contribución de un grupo de expertos, la API fue diseñada de forma tal de hacerla extensible y mejorada a 8 través de herramientas que hagan aún más fácil el desarrollo de aplicaciones Web. La tecnología JSF incluye: Un conjunto de APIs para la representación de componentes gráficos y el manejo de su estado, captura de eventos y validación de entradas, definición de navegación de páginas, y soporte para internacionalización y accesibilidad. Una librería de tags de JSP para poder utilizar los componentes de JSF en páginas JSP. FIGURA 5 CICLO DE VIDA DE JSF WebWork es una plataforma de desarrollo Web open-source para construir aplicaciones Model 2. Es similar en su filosofía a Struts y a Tapestry. [WEB-7] A diferencia de otras plataformas utiliza las APIs Web de Java en lugar de intentar reemplazarlas. WebWork introduce conceptos que son únicos y que lo distingue de otras plataformas, como ser el PHMVC y la pila de valores (quien se encarga de proveer la información a la vista). WebWork fue construido por el proyecto Open Symphony (que incluye varios proyectos, siendo WebWork uno de ellos). El flujo de información básico de una aplicación que utiliza WebWork se muestra en la Figura siguiente. FIGURA 6 CICLO DE VIDA DE WEBWORK Tapestry es una plataforma de desarrollo Web open-source escrita en el lenguaje Java. Fue 9 desarrollado por Howard Lewis Ship y es parte del proyecto La plataforma Java 2 Enterprise Edition (J2EE) es fruto de la colaboración de SUN con los Jakarta de Apache. [Ship, 2004] [Tong- 2005] [WEB-3] Tapestry es una plataforma de mayor tamaño que Struts. Está provista de componentes gráficos, así como también aquellos necesarios para manejar pool de objetos y manejo de sesión. Debido a la naturaleza de la plataforma, orientada a componentes reutilizables permite un alto grado de reutilización de componentes relacionados con necesidades comunes en el desarrollo Web. El desarrollo utilizando Tapestry está orientado a objetos, propiedades y métodos y no URLs y parámetros de HTTP. Esto es logrado abstrayendo los detalles de bajo nivel de las aplicaciones Web. El flujo de información básico de una aplicación que utiliza Tapestry se muestra en la Figura siguiente. FIGURA 7 CICLO DE VIDA DE TAPESTRY líderes del sector del software empresarial (IBM, Apple, Bea Systems, Oracle, Inprise, Hewlett-Packard, Novell, etc.) para definir una plataforma robusta y flexible orientada a cubrir las necesidades empresariales en e-business y business-to-business. J2EE aprovecha muchas de las características de la plataforma Java, como la portabilidad, el acceso a bases de datos, la tecnología para la interacción con los recursos existentes de la empresa y un modelo de seguridad que protege los datos incluso en las aplicaciones para Internet. Sobre esta base, J2EE añade el soporte completo para componentes EJBs, servlets y la tecnología JavaServer Pages. El estándar J2EE incluye todas las especificaciones y pruebas de conformidad que permiten la portabilidad de las aplicaciones a través de la amplia gama de sistemas empresariales compatibles con J2EE. Para el desarrollador, existen múltiples entornos gráficos de desarrollo para el lenguaje Java (Visual J++ de Microsoft, JBuilder de Borland, Java Studio de Sun, etc.). Entre todos 10 estos entornos, cabe destacar la herramienta Eclipse por ser de libre distribución. El Modelo Vista Controlador MVC es un patrón arquitectural muy difundido hoy en día en aplicaciones de entorno Web. La evolución de lo que se conoce como Modelo 2 de aplicaciones Web (separación de responsabilidades de presentación, negocio y navegación) avanza un poco más en el reparto de tareas en la aplicación. Pese a que hay distintos puntos de vista acerca de la forma de aplicar e implementar este patrón, en esencia las ideas principales sobre su estructura y funcionalidad son las mismas. El MVC tiene tres piezas claves que se reparten la responsabilidad de la aplicación: El modelo (Model): responsable de toda la lógica y estado del dominio de negocio. La vista (View): responsable de la presentación del dominio de negocio. El controlador (Controller): responsable del flujo de control, la navegabilidad y el estado de la entrada del usuario. El proyecto Struts proporciona un marco de trabajo MVC estándar a la comunidad Java. Este framework del proyecto Jakarta es la implementación java orientada a aplicaciones Web más difundida del patrón MVC. Provee su propio controlador (ActionServlet), y se integra con otras tecnologías para proveer el modelo y la vista. La navegación se configura en ficheros XML externos y se organiza la lógica y responsabilidades siguiendo la distribución del MVC. Por lo tanto, para desarrollar basándose en una arquitectura Modelo 2, variación del paradigma Modelo-Vista-Controlador (MVC), se ha seleccionado el Framework Struts. Struts proporciona un Servlet que se encarga de manejar la lógica de negocio, mientras que toda la lógica de presentación recae en las páginas JavaServer Pages (JSPs). También proporciona herramientas para desarrollar con MVC, así como subcomponentes para el desarrollo de páginas Web, como pueden ser Struts-Menú, Struts-Tiles o las librerías de etiquetas JSP HTML, logic, bean, etc. Las funcionalidades soportadas por el Framework PA son las siguientes: Extensión del Framework Struts con una colección propia de clases Action. Acceso a datos a través de objetos DAO. Automatización de la carga de consultas SQL desde ficheros de propiedades. Plantillas (Tiles) para la creación rápida de páginas JSP. 11 Facilidades para la generación de informes en formato PDF. Etiquetas JSP para la inclusión de listas, barras de navegación, fechas y calendarios en las páginas Web. Entre otras. AJAX En las aplicaciones Web tradicionales los usuarios interactúan mediante formularios, que al enviarse, realizan una petición al servidor Web. El servidor se comporta según lo enviado en el formulario y contesta enviando una nueva página Web. Se desperdicia mucho ancho de banda, ya que gran parte del HTML enviado en la segunda página Web ya estaba presente en la primera. Además, de esta manera no es posible crear aplicaciones con un grado de interacción similar al de las aplicaciones habituales. AJAX constituye una técnica de desarrollo Web para crear aplicaciones interactivas mediante la combinación de tres tecnologías ya existentes: HTML (o XHTML) y hojas de estilos en cascada (CSS) para presentar la información. Document Object Model (DOM) y JavaScript, para interactuar dinámicamente con los datos. XML y XSLT, para intercambiar y manipular datos de manera desincronizada con un servidor Web (aunque las aplicaciones AJAX pueden usar otro tipo de tecnologías, incluyendo texto llano, para realizar esta labor). 10 LENGUAJES DE PROGRAMACION WEB HTML, (HyperText Markup Language, Lenguaje de Marcas de Hipertexto), es el lenguaje de marcado predominante para la construcción de páginas web. Es usado para describir la estructura y el contenido en forma de texto, así como para complementar el texto con objetos tales como imágenes. HTML se escribe en forma de "etiquetas", rodeadas por corchetes angulares (<,>). HTML también puede describir, hasta un cierto punto, la apariencia de un documento, y puede incluir un script (por ejemplo, Javascript), el cual puede afectar el comportamiento de navegadores web y otros procesadores de HTML. Un documento HTML comienza con la etiqueta <html>, y termina con </html>. Dentro del documento (entre las etiquetas de principio y fin de html), hay dos zonas bien diferenciadas: el encabezamiento, delimitado por <head> y </head>, que sirve para definir diversos valores válidos en todo el documento; y el cuerpo, delimitado por <body> y </body>, donde reside la información del documento. La estructura básica de un documento HTML queda de la forma siguiente: <html> <head> <title>” Título en la Página” Lenguajes Web ITM</title> </head> 12 <body> Texto del documento, menciones a gráficos, enlaces, etc. </body> </html> Características 1. Este lenguaje se puede integrar con todas las diferentes tecnologías de desarrollo web tales como: ASP, PHP, JSP, etc. 2. Es interpretado por el navegador web de los usuarios. 3. Es soportado por todos los servidores. (Common Gateway Interface, Interfaz de entrada común) es una importante tecnología de la World Wide que permite a un cliente (explorador Web) solicitar datos de un programa ejecutado en un servidor Web. CGI especifica un estándar para transferir datos entre el cliente y el programa. Es un mecanismo de comunicación entre el servidor Web y una aplicación externa cuyo resultado final de la ejecución son objetos MIME. Las aplicaciones que se ejecutan en el servidor reciben el nombre de CGI’s. Estructura Un programa CGI puede ser escrito en cualquier lenguaje de programación que produzca un fichero ejecutable. Entre los lenguajes más habituales se encuentran: C, C++, Perl, Java, Visual Basic. No obstante, debido a que el CGI recibe los parámetros en forma de texto será útil un lenguaje que permita realizar manipulaciones de las cadenas de caracteres de una forma sencilla, como por ejemplo “Perl”. Perl es un lenguaje interpretado que permite manipulaciones sencillas de ficheros y textos, así como la extracción y manipulación de cadenas de caracteres, unidas a unas búsquedas rápidas y fáciles. La estructura básica de un script CGI es muy sencilla: inicialización, procesamiento y finalización. Durante el proceso de inicialización, dentro de un script CGI se realizan las siguientes tareas: • Determinar cómo ha sido invocado el script: esto implica consultar la variable de entorno REQUEST_ METHOD, para averiguar si la información al script CGI se le ha pasado con el método GET o POST. • Recuperar los datos de entrada: Si el método utilizado para invocar al script y pasarle los parámetros fue GET, decodifica la variable de entorno QUERY_STRING. Pero si el método utilizado ha sido POST se deberá tratar la variable de entorno QUERY_STRING, por si contiene alguna información, FIGURA 8 ESTRUCTURA BASICA HTML 13 y a demás tratar la entrada estándar (STDIN) facilitada por el servidor Web al programa CGI. En la figura 9 se muestra el primer paso de una solicitud que se formula desde una página web al servidor donde reside el CGI. Posteriormente el CGI solicita a la base de datos la información adecuada y es respondido. Finalmente se envían los datos, ya formateados para ser comprensibles, a la página web, donde son consultados por el usuario. Características • Es un método muy rápido cuando se ejecuta mucho código. • Emplea la menor posible cantidad de recursos. • Se puede emplear prácticamente cualquier lenguaje. ASP Active Server Pages es una tecnología de Microsoft del tipo "lado del servidor" para páginas web generadas dinámicamente, que ha sido comercializada como un anexo a IIS (Internet Information Services, Servicios de Internet). Estructura Además del código HTML habitual para las páginas Web, el autor de las páginas ASP puede escoger entre dos lenguajes de script para codificar los contenidos dinámicos. Estos lenguajes son VBScript y JScript, el primero de ellos es el más utilizado y tiene su origen en el conocido lenguaje Visual Basic. Por el contrario JScript se parece a JavaScript. <%@ LANGUAGE="VBSCRIPT" %> <%@ LANGUAGE="JSCRIPT" %> Inicio y Fin Para especificar el inicio y fin en un bloque. Ejemplo: <% Sentencias %> Características • Se ejecuta en el servidor donde está alojada la página web. • El cliente (navegador del usuario) no nota diferencias con una página normal (HTML). • Por medio de ASP se puede tener acceso a bases de datos. • Se puede utilizar HTML y ASP en una misma página. PHP es un lenguaje de programación interpretado, diseñado originalmente FIGURA 9 EJEMPLO DE CGI'S FIGURA 10 EJEMPLO DE APLICACION WEB EN ASP 14 para la creación de páginas web dinámicas. Es usado principalmente en interpretación del lado del servidor, pero actualmente puede ser utilizado desde una interfaz de línea de comandos o en la creación de otros tipos de programas incluyendo aplicaciones con interfaz gráfica usando las bibliotecas Qt o GTK+. PHP es un acrónimo recursivo que significa PHP (Hypertext Pre- processor). Estructura Las instrucciones se separan igual que en C, terminando cada sentencia con un punto y coma. La etiqueta de cierre es: (?>) también implica el fin de la sentencia. En la figura 11 se muestra el resultado desde un navegador web que soporta PHP, con la siguiente sintaxis básica: <?php echo "Mi primer página en PHP"; ?> Características Al ser un lenguaje libre dispone de una gran cantidad de características que lo convierten en la herramienta ideal para la creación de páginas web dinámicas: • Soporte para una gran cantidad de bases de datos: MySQL, PostgreSQL, Oracle, MS SQL Server, Informix, entre otros. • Perceptiblemente más fácil de mantener y poner al día que el código desarrollado en otros lenguajes. • Soportado por una gran comunidad de desarrolladores, como producto de código abierto, PHP goza de la ayuda de un gran grupo de programadores, permitiendo que los fallos de funcionamiento se encuentren y reparen rápidamente. • El código sepone al día continuamente con mejoras y extensiones de lenguaje para ampliar las capacidades de PHP. • Con PHP se puede hacer cualquier cosa que podemos realizar con un script, CGI, como el procesamiento de información en formularios, foros de discusión, manipulación de cookies y páginas dinámicas. (Java Server Page, Página de Servidor Java), se refiere a un tipo especial de páginas HTML, en las cuales se insertan pequeños programas que corren sobre Internet (comúnmente denominados scripts), se procesan en línea para finalmente desplegar un resultado final al usuario en forma de FIGURA 12 EJEMPLO DE APLICACIÓN WEB CON PHP FIGURA 11 EJEMPLO DE PHP 15 HTML. Por lo general dichos programas hacen consultas a bases de datos y dependiendo del resultado que se despliegue será la información que se muestre a cada usuario de manera individual. Los archivos de este tipo llevan la extensión “. jsp”. Estructura Ejemplo de código de una página JSP: <%@ page errorPage="myerror.jsp" %> <%@ page import="com.foo.bar" %> <html> <head> <%! int serverInstanceVariable = 1; %> ... <% int localStackBasedVariable = 1; %> <table> <tr><td></td></tr> ... Para ejecutar las páginas JSP, se necesita un servidor Web que cumpla con las especificaciones de JSP y de Servlet. Tomcat 5 es una completa implementación de referencia para las especificaciones de Java Servlet 2.2 y JSP 1.1. Características • Multiplataforma. • Robusto. • Seguro. • Es el más utilizado parte de las especificaciones EJB “Enterprise JavaBeans”. • Plataforma independiente. Funciona en la mayoría de los casos sin problemas. • Se puede desarrollar en Windows y sin embargo se puede desplegar en Linux regularmente sin ningún tipo de problemas. • Java fue diseñado con la seguridad en mente. Proporciona bibliotecas sólidas para todas sus necesidades en materia de seguridad. • Apoyo para protocolos e interfaces con API's, como JDBC, JNDI, JNI, Java IDL, etc JAXP Java tiene una solución para casi cualquier cosa que se requiera desarrollar. • Capacidad de carga para las clases de datos sobre diferentes dispositivos y redes. Esto constituye la base de EJB, RMI y de otras tecnologías. • Java permite la reflexión dinámica y descubrimiento e invocación de métodos. • El uso de referencias, esto evita el uso de punteros. ASP.NET es un Framework para aplicaciones web desarrollado y comercializado por Microsoft. Es usado por programadores para construir sitios web dinámicos, aplicaciones web y servicios web XML. Apareció en enero de 2002 con la versión 1.0 del .NET Framework, y es la tecnología sucesora de la tecnología Active Server Pages (ASP). ASP.NET está construido sobre el (Common Language Runtime, Lenguaje común en tiempo de ejecución) permitiendo a los programadores escribir código ASP.NET usando cualquier lenguaje admitido por el .NET Framework. El .NET Framework es un marco de trabajo multilenguaje, que permite al desarrollador crear Aplicaciones y 16 Servicios Web con las herramientas básicas para escribir el código.De forma simple, el .NET Framework está formado por el (Common Language Runtime, Lenguaje común en tiempo de ejecución) o CLR, la Base Class Library, que funciona como una gran librería de clases unificada, que contiene todas las clases que funcionan dentro del entorno .NET y finalmente la nueva versión de ASP, denominada ASP.NET. Estructura Las páginas de ASP.NET, conocidas oficialmente como (web forms, formularios web), son el principal medio de construcción para el desarrollo de aplicaciones web. Los formularios web están contenidos en archivos con una extensión ASPX, estos archivos típicamente contienen etiquetas HTML o XHTML estático, y también etiquetas definiendo Controles Web que se procesan del lado del servidor y Controles de Usuario donde los desarrolladores colocan todo el código estático y dinámico requerido por la página web. Adicionalmente, el código dinámico que se ejecuta en el servidor puede ser colocado en una página dentro de un bloque <% -- código dinámico -- %> que es muy similar a otras tecnologías de desarrollo como PHP, JSP y ASP, pero esta práctica es, generalmente, desaconsejada excepto para propósitos de enlace de datos pues requiere más llamadas cuando se genera la página. Formulario web de ejemplo: <%@ Page Language="C#" %> <! DOCTYPE html PUBLIC "- //W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xht ml1-transitional.dtd"> <script runat="server"> protected void Page_Load (object sender, EventArgs e) { Label1.Text=DateTime.Now. ToLongDateString (); } </script> <html xmlns="http://www.w3.org/1999/xhtm> <head runat="server"> <title>Página de Ejemplo</title> </head> <body> <form id="form1" runat="server"> <div> <asp: Label runat="server “id="Label1"/> </div> </form> </body> </html> El modelo Code-behind Microsoft recomienda que para realizar programación dinámica se use el modelo (code-behind, código por debajo, o de respaldo), que coloca el código en un archivo separado o en una etiqueta de script especialmente diseñada. Los nombres de los archivos (code-behind, código por debajo, o de respaldo) están basados en el nombre del archivo ASPX tales como MiPagina.aspx.cs o MiPagina.aspx.vb (esta práctica se realiza automáticamente en Microsoft Visual Studio y otras interfaces de desarrollo). 17 Cuando se usa este estilo de programación, el desarrollador escribe el código correspondiente a diferentes eventos, como la carga de la página, o el clic en un control, en vez de un recorrido lineal a través del documento. Características • Eficiencia. •Soporte de Lenguajes. ASP.NET soporta la programación en lenguajes potentes cómo, Visual Basic. Net (VB) y C#, el nuevo lenguaje creado por Microsoft con la intención de aprovechar la potencia del C++ y combinarlo con las facilidades que brinda a la programación en Internet un lenguaje como Java. • Contenido y Código, por separado. • Código Compilado. ASP.NET ya no interpreta el código como la hace la versión anterior de ASP. Dentro del entorno NGWS (New Generation Windows Services, Nueva Generación de Servicios de Windows) el código es compilado just-in- time. El Lenguaje Extensible de Marcas, abreviado XML, describe una clase de objetos de datos llamados documentos XML y describe parcialmente el comportamiento de los programas de computadora que los procesan. XML es un "perfil de aplicación" o una forma restringida de SGML, el Lenguaje Estándar Generalizado de Marcación [ISO 8879]. Por construcción, los documentos XML son documentos SGML conformados. SGML (Standard Generalized Markup Language, Lenguaje de Marcado Generalizado). Consiste en un sistema para la organización y etiquetado de documentos. La Organización Internacional de Estándares (ISO) normalizó este lenguaje en 1986. Ejemplo: <? xml version='1.0'?> <source> <! [CDATA [ for (var a=0; a<10; a++) { trace (¡” Hola Mundo!!”) } ]]> </source>. Características • Es una arquitectura más abierta y extensible. No se necesita versiones para que puedan funcionar en futuros navegadores. Los identificadores pueden crearse de manera simple y ser adaptados en el acto en Internet / intranet por medio de un validador de documentos (parser, analizador). • Mayor consistencia, homogeneidad y amplitud de los identificadores descriptivos del documento con XML los RDF (Resource Description FrameWork, Descripción de Recursos), en comparación a los atributos de la etiqueta <META> del HTML. • Integración de los datos de las fuentes más dispares. Se podrá hacer el intercambio de documentos entre las 18 aplicaciones tanto en el propio PC como en una red local o extensa. • Datos compuestos de múltiples aplicaciones. La extensibilidad y flexibilidad de este lenguajenos permitirá agrupar una variedad amplia de aplicaciones, desde páginas web hasta bases de datos. • Gestión y manipulación de los datos desde el propio cliente web. • Los motores de búsqueda devolverán respuestas más adecuadas y precisas, ya que la codificación del contenido web en XML consigue que la estructura de la información resulte más accesible. • Se desarrollarán de manera extensible las búsquedas personalizables y subjetivas para robots y agentes inteligentes. También conllevará que los clientes web puedan ser más autónomos para desarrollar tareas que actualmente se ejecutan en el servidor. • Se permitirá un comportamiento más estable y actualizable de las aplicaciones web, incluyendo enlaces bidireccionales y almacenados de forma externa (El famoso epígrafe "404 file not found" desaparecerá). • El concepto de "hipertexto" se desarrollará ampliamente (permitirá denominación independiente de la ubicación, enlaces bidireccionales, enlaces que pueden especificarse y gestionarse desde fuera del documento, hiperenlaces múltiples, enlaces agrupados, atributos para los enlaces, etc. Creado a través del Lenguaje de enlaces extensible (XLL). Es un framework de aplicaciones web de código abierto escrito en el lenguaje de programación Ruby, siguiendo el paradigma de la arquitectura “Modelo Vista Controlador” (MVC). Trata de combinar la simplicidad con la posibilidad de desarrollar aplicaciones del mundo real escribiendo menos código que con otros frameworks y con un mínimo de configuración. Ruby es un lenguaje de programación interpretado, reflexivo y orientado a objetos, creado por el programador japonés Yukihiro "Matz" Matsumoto, quien comenzó a trabajar en Ruby en 1993, y lo presentó públicamente en 1995. Combina una sintaxis inspirada en Python, Perl con características de programación orientada a objetos similares a Smalltalk. Comparte también funcionalidad con otros lenguajes de programación como Lisp, Lua, Dylan y CLU. Ruby es un lenguaje de programación interpretado en una sola pasada y su implementación oficial es distribuida bajo una licencia de software libre. Características • Los comentarios comienzan por #. • Las sentencias no terminan en “;”. •Se pueden evitar los paréntesis cuando no haya ambigüedad. • Las variables locales comienzan por minúscula. • Las variables no se declaran • Las constantes empiezan por mayúscula. • La sintaxis de Ruby es similar a la de Perl o Python. • Altamente portable. • Amplia librería estándar. 19 La investigación está fundamentada ya que varias personas de adentraron en estos temas, aquí simplemente se generaliza, pero se cree que es información que a personas les ayudara más a algunos que a otros, por ejemplo, los colegas informáticos o ingenieros en informática o a cualquier otro que quiera saber sobre lo que comprende el tema de la web. Se tiene lo necesario o lo básico que se puede preguntar, ya que sabemos que existen más libros o documentos mejor complementados, pero no se deja de lado el documento presente ya que se cree que es competente y con información precisa. “Trabajar no es realizar yo que uno imaginaba, sino descubrir yo que uno tiene dentro.” Boris Pasternak X E. I. LUIS FERNANDO RIVERA VILLANUEVA 1 Blanco, I. C. (12-05-2008). Plataformas de desarrollo de. Boiza, V. M. (2012). ANÁLISIS Y DISEÑO DE UNA PLATAFORMA WEB PARA UN SISTEMA DE GESTION DE USUARIOS. Leganés. GADD-Grupo Meana, S.A. (2007). Plataforma De Desarrollo De Software Abierto. García, A. O. (s.f.). García, A. O. (2007). Proyecto Web. Barcelona: Eureca Media, SL. Lenguajes Para Aplicaciones Web. (2010). Mateu, C. (2004). Desarrollo De Aplicaciones Web. Barcelona: Eureca Media, SL.
Compartir