Aplicaciones Web Ingeniería de Software II
Temas Definición Ventajas aplicaciones web Historia Interfaces web Consideraciones técnicas Estructura Usos Lenguajes Ejemplos
¿Qué es una aplicación Web? Una aplicación Web es un sistema informático que los usuarios utilizan accediendo a un servidor Web a través de Internet o de una Intranet.  Las aplicaciones Web son populares debido a la practicidad del navegador Web como cliente ligero
¿Cuál es la ventaja de aplicaciones Web? La facilidad para actualizar y mantener aplicaciones Web sin distribuir e instalar software en miles de potenciales clientes es otra razón de su popularidad.  Aplicaciones como los webmails, wikis, weblogs, tiendas en línea y la Wikipedia misma son ejemplos bien conocidos de aplicaciones web
Un poco de historia En los primeros tiempos de la computación  cliente-servidor , cada aplicación tenía su propio programa cliente y su interfaz de usuario, estos tenían que ser instalados separadamente en cada estación de trabajo de los usuarios.
Un poco de historia Una mejora al servidor, como parte de la aplicación, requería típicamente una mejora de los clientes instalados en cada una de las estaciones de trabajo, añadiendo un costo de soporte técnico y disminuyendo la eficiencia del personal
Un poco de historia En contraste, las aplicaciones web generan dinámicamente una serie de páginas en un formato estándar, soportado por navegadores Web comunes como HTML o XHTML.  Se utilizan lenguajes interpretados del lado del cliente, tales como JavaScript, para añadir elementos dinámicos a la interfaz de usuario
Un poco de historia Generalmente cada página Web individual es enviada al cliente como un documento estático, pero la secuencia de páginas provee de una experiencia interactiva.
Interfaces Web Las interfaces Web tienen ciertas limitaciones en la funcionalidad del cliente.  Métodos comunes en las aplicaciones de escritorio como dibujar en la pantalla o arrastrar-y-soltar no están soportadas por las tecnologías Web estándar
Interfaces Web Los desarrolladores web comúnmente utilizan lenguajes interpretados del lado del cliente para añadir más funcionalidad, especialmente para crear una experiencia interactiva que no requiera recargar la página cada vez (cosa que suele molestar a los usuarios)
Interfaces Web Recientemente se han desarrollado tecnologías para coordinar estos lenguajes con tecnologías del lado del servidor, como por ejemplo PHP.  AJAX, es una técnica de desarrollo Web que usa una combinación de varias tecnologías.
Consideraciones técnicas Una ventaja significativa en la construcción de aplicaciones Web que soporten las características de los browsers estándar es que deberían funcionar igual independientemente de la versión del sistema operativo instalado en el cliente.
Consideraciones técnicas En vez de crear clientes para Windows, Mac OS X, GNU/Linux, y otros sistemas operativos, la aplicación es escrita una vez y es mostrada casi en todos lados.  Sin embargo, aplicaciones inconsistentes de HTML, CSS, DOM y otras especificaciones de browsers pueden causar problemas en el desarrollo y soporte de aplicaciones web
Consideraciones técnicas Adicionalmente, la habilidad de los usuarios a personalizar muchas de las características de la interfaz (como tamaño y color de fuentes, tipos de fuentes, inhabilitar Javascript) puede interferir con la consistencia de la aplicación Web
Consideraciones técnicas Otra aproximación es utilizar Macromedia Flash o Java applets para producir parte o toda la interfaz de usuario.  Como casi todos los browsers incluyen soporte para estas tecnologías (usualmente por medio de plug - ins), aplicaciones basadas en Flash o Java pueden ser implementadas con aproximadamente la misma facilidad
Consideraciones técnicas Como hacen caso omiso de las configuraciones de los browsers estas tecnologías permiten más control sobre la interfaz, aunque incompatibilidad entre implementaciones de Flash o Java puedan traer nuevas complicaciones
Consideraciones técnicas Por las similitudes con una arquitectura cliente-servidor, con un cliente un poco “especializado”, hay disputas sobre si llamar a estos sistemas “aplicaciones web”; un término alternativo es “aplicación enriquecida de Internet”.
Estructura Aunque muchas variaciones son posibles, una aplicación Web está comúnmente estructurada como una aplicación de tres-capas.  En su forma más común, el navegador Web es la primera capa, un motor usando alguna tecnología Web dinámica (ejemplo: CGI, PHP, Java Servlets o ASP) es la capa de en medio, y una base de datos como última capa.
Estructura El navegador Web manda peticiones a la capa media, que la entrega valiéndose de consultas y actualizaciones a la base de datos generando una interfaz de usuario. En tiempos recientes se ha usado la estrategia de generalizar esta arquitectura mediante la adición de piezas de hardware que permiten balancear la carga de los servidores Web y de aplicación.
Uso en negocios Una estrategia que está emergiendo para las empresas proveedoras de software, es proveer acceso vía Web al software.  Para aplicaciones previamente distribuidas como de escritorio, esto puede requerir el desarrollo de una aplicación totalmente nueva o simplemente adaptar la aplicación para usar una interfaz Web
Uso en negocios Estos programas permiten al usuario pagar una cuota mensual o anual para usar la aplicación, sin necesidad de instalarla en la computadora del usuario.  Las compañías que siguen esta estrategia son llamadas  Proveedores de Aplicaciones de Servicio  (ASP por sus siglas en inglés), este modelo de negocios está atrayendo la atención de la industria del software
Lenguajes de programación Existen numerosos lenguajes de programación empleados para el desarrollo de Aplicaciones Web, entre los que destacan: PHP ASP/ASP.NET Java, con sus tecnologías Java Servlets y JavaServer Pages (JSP) Perl Ruby Python
Ejemplos de aplicaciones web 24SevenOffice. solución ERP/CRM. augeweb. Aplicación web para aprender Mecanografía. Basecamp por 37Signals. Backpack por 37Signals. SkynetERP. Software de gestión empresarial basado en Web. Blinksale. Bouchard Translator. Traductor en línea de fuente abierta. Epiware. Administración de proyectos eRequirements. Administrador de requerimientos para desarrollo de aplicaciones web. eZ publish Administrador de contenido de fuente abierta. Flickr por Ludicorp. Administrador de fotografías. Gmail por Google. Correo electrónico. MyWebDesktop.net. NetSuite ERP/CRM PhantomEZForm Creador de formularios web. Salesforce.com CRM Stellent UCM. Administrador de contenidos. Basecamp por SINT v3.0 - La Web Inteligente SugarCRM CRM Younicycle.com. ParaEmpresas.com. blt-Search. AceProject. Administración de proyectos. Zheta. Framework por objetos hecho con PHP

2 aplicaciones web

  • 1.
  • 2.
    Temas Definición Ventajasaplicaciones web Historia Interfaces web Consideraciones técnicas Estructura Usos Lenguajes Ejemplos
  • 3.
    ¿Qué es unaaplicación Web? Una aplicación Web es un sistema informático que los usuarios utilizan accediendo a un servidor Web a través de Internet o de una Intranet. Las aplicaciones Web son populares debido a la practicidad del navegador Web como cliente ligero
  • 4.
    ¿Cuál es laventaja de aplicaciones Web? La facilidad para actualizar y mantener aplicaciones Web sin distribuir e instalar software en miles de potenciales clientes es otra razón de su popularidad. Aplicaciones como los webmails, wikis, weblogs, tiendas en línea y la Wikipedia misma son ejemplos bien conocidos de aplicaciones web
  • 5.
    Un poco dehistoria En los primeros tiempos de la computación cliente-servidor , cada aplicación tenía su propio programa cliente y su interfaz de usuario, estos tenían que ser instalados separadamente en cada estación de trabajo de los usuarios.
  • 6.
    Un poco dehistoria Una mejora al servidor, como parte de la aplicación, requería típicamente una mejora de los clientes instalados en cada una de las estaciones de trabajo, añadiendo un costo de soporte técnico y disminuyendo la eficiencia del personal
  • 7.
    Un poco dehistoria En contraste, las aplicaciones web generan dinámicamente una serie de páginas en un formato estándar, soportado por navegadores Web comunes como HTML o XHTML. Se utilizan lenguajes interpretados del lado del cliente, tales como JavaScript, para añadir elementos dinámicos a la interfaz de usuario
  • 8.
    Un poco dehistoria Generalmente cada página Web individual es enviada al cliente como un documento estático, pero la secuencia de páginas provee de una experiencia interactiva.
  • 9.
    Interfaces Web Lasinterfaces Web tienen ciertas limitaciones en la funcionalidad del cliente. Métodos comunes en las aplicaciones de escritorio como dibujar en la pantalla o arrastrar-y-soltar no están soportadas por las tecnologías Web estándar
  • 10.
    Interfaces Web Losdesarrolladores web comúnmente utilizan lenguajes interpretados del lado del cliente para añadir más funcionalidad, especialmente para crear una experiencia interactiva que no requiera recargar la página cada vez (cosa que suele molestar a los usuarios)
  • 11.
    Interfaces Web Recientementese han desarrollado tecnologías para coordinar estos lenguajes con tecnologías del lado del servidor, como por ejemplo PHP. AJAX, es una técnica de desarrollo Web que usa una combinación de varias tecnologías.
  • 12.
    Consideraciones técnicas Unaventaja significativa en la construcción de aplicaciones Web que soporten las características de los browsers estándar es que deberían funcionar igual independientemente de la versión del sistema operativo instalado en el cliente.
  • 13.
    Consideraciones técnicas Envez de crear clientes para Windows, Mac OS X, GNU/Linux, y otros sistemas operativos, la aplicación es escrita una vez y es mostrada casi en todos lados. Sin embargo, aplicaciones inconsistentes de HTML, CSS, DOM y otras especificaciones de browsers pueden causar problemas en el desarrollo y soporte de aplicaciones web
  • 14.
    Consideraciones técnicas Adicionalmente,la habilidad de los usuarios a personalizar muchas de las características de la interfaz (como tamaño y color de fuentes, tipos de fuentes, inhabilitar Javascript) puede interferir con la consistencia de la aplicación Web
  • 15.
    Consideraciones técnicas Otraaproximación es utilizar Macromedia Flash o Java applets para producir parte o toda la interfaz de usuario. Como casi todos los browsers incluyen soporte para estas tecnologías (usualmente por medio de plug - ins), aplicaciones basadas en Flash o Java pueden ser implementadas con aproximadamente la misma facilidad
  • 16.
    Consideraciones técnicas Comohacen caso omiso de las configuraciones de los browsers estas tecnologías permiten más control sobre la interfaz, aunque incompatibilidad entre implementaciones de Flash o Java puedan traer nuevas complicaciones
  • 17.
    Consideraciones técnicas Porlas similitudes con una arquitectura cliente-servidor, con un cliente un poco “especializado”, hay disputas sobre si llamar a estos sistemas “aplicaciones web”; un término alternativo es “aplicación enriquecida de Internet”.
  • 18.
    Estructura Aunque muchasvariaciones son posibles, una aplicación Web está comúnmente estructurada como una aplicación de tres-capas. En su forma más común, el navegador Web es la primera capa, un motor usando alguna tecnología Web dinámica (ejemplo: CGI, PHP, Java Servlets o ASP) es la capa de en medio, y una base de datos como última capa.
  • 19.
    Estructura El navegadorWeb manda peticiones a la capa media, que la entrega valiéndose de consultas y actualizaciones a la base de datos generando una interfaz de usuario. En tiempos recientes se ha usado la estrategia de generalizar esta arquitectura mediante la adición de piezas de hardware que permiten balancear la carga de los servidores Web y de aplicación.
  • 20.
    Uso en negociosUna estrategia que está emergiendo para las empresas proveedoras de software, es proveer acceso vía Web al software. Para aplicaciones previamente distribuidas como de escritorio, esto puede requerir el desarrollo de una aplicación totalmente nueva o simplemente adaptar la aplicación para usar una interfaz Web
  • 21.
    Uso en negociosEstos programas permiten al usuario pagar una cuota mensual o anual para usar la aplicación, sin necesidad de instalarla en la computadora del usuario. Las compañías que siguen esta estrategia son llamadas Proveedores de Aplicaciones de Servicio (ASP por sus siglas en inglés), este modelo de negocios está atrayendo la atención de la industria del software
  • 22.
    Lenguajes de programaciónExisten numerosos lenguajes de programación empleados para el desarrollo de Aplicaciones Web, entre los que destacan: PHP ASP/ASP.NET Java, con sus tecnologías Java Servlets y JavaServer Pages (JSP) Perl Ruby Python
  • 23.
    Ejemplos de aplicacionesweb 24SevenOffice. solución ERP/CRM. augeweb. Aplicación web para aprender Mecanografía. Basecamp por 37Signals. Backpack por 37Signals. SkynetERP. Software de gestión empresarial basado en Web. Blinksale. Bouchard Translator. Traductor en línea de fuente abierta. Epiware. Administración de proyectos eRequirements. Administrador de requerimientos para desarrollo de aplicaciones web. eZ publish Administrador de contenido de fuente abierta. Flickr por Ludicorp. Administrador de fotografías. Gmail por Google. Correo electrónico. MyWebDesktop.net. NetSuite ERP/CRM PhantomEZForm Creador de formularios web. Salesforce.com CRM Stellent UCM. Administrador de contenidos. Basecamp por SINT v3.0 - La Web Inteligente SugarCRM CRM Younicycle.com. ParaEmpresas.com. blt-Search. AceProject. Administración de proyectos. Zheta. Framework por objetos hecho con PHP