domingo, 12 de julio de 2009

Modulo: Organización y Transformación de Datos
Tema: Aplicaciones Web
Catedrático: Miguel A. Macías Roldan
Maestrantes: Miguel Alberto Bernal Murillo

Zacatecas, Zac. 10 de Julio de 2009.


Índice

1.- Introducción
2.- Historia
3.Consideraciones Técnicas
3.1-Interfaz
3.2.-Estructura
3.3-Lenguajes
3.4-Manejadores de BD
3.5.- Ventajas y Desventajas
4.- Usos

1.- Introducción

En la ingeniería software se denomina aplicación web a aquellas aplicaciones que los usuarios pueden utilizar accediendo a un servidor web a través de Internet o de una intranet mediante un navegador. En otras palabras, es una aplicación software que se codifica en un lenguaje soportado por los navegadores web (HTML, JavaScript, Java, asp.net, PHP,etc.) en la que se confía la ejecución al navegador.
Las aplicaciones web son populares debido a lo práctico del navegador web como cliente ligero, así como a la facilidad para actualizar y mantener aplicaciones web sin distribuir e instalar software a miles de usuarios potenciales. Existen aplicaciones como los webmails, wikis, weblogs, tiendas en línea son ejemplos bien conocidos de aplicaciones web.
Es importante mencionar que una página Web puede contener elementos que permiten una comunicación activa entre el usuario y la información. Esto permite que el usuario acceda a los datos de modo interactivo, gracias a que la página responderá a cada una de sus acciones, como por ejemplo rellenar y enviar formularios, participar en diversos juegos y acceder a gestores de base de datos de todo tipo.


2.- Historia

En los primeros tiempos de la computación cliente-servidor, cada aplicación tenía su propio programa cliente que servía como interfaz de usuario que tenía que ser instalado por separado en cada ordenador personal de cada usuario. El cliente realizaba peticiones a otro programa -el servidor- que le daba respuesta. Una mejora en el servidor, como parte de la aplicación, requería normalmente una mejora de los clientes instalados en cada ordenador personal, añadiendo un costo de soporte técnico y disminuyendo la productividad.
A diferencia de lo anterior, las aplicaciones web generan dinámicamente una serie de páginas en un formato estándar, como HTML o XHTML, que soportan por los navegadores web comunes. Se utilizan lenguajes interpretados en el lado del cliente, tales como JavaScript, para añadir elementos dinámicos a la interfaz de usuario. Generalmente cada página web en particular se envía al cliente como un documento estático, pero la secuencia de páginas ofrece al usuario una experiencia interactiva. Durante la sesión, el navegador web interpreta y muestra en pantalla las páginas, actuando como cliente para cualquier aplicación web.
En 1995, Netscape introdujo un lenguaje del lado del cliente llamado JavaScript, el cual permite a los programadores agregar algunos elementos dinámicos a la interface que se ejecuta del lado del cliente. Hasta entonces, toda la información eran enviada a un servidor para ser procesada y los resultados eran entregados al cliente a través de una página HTML estática.
En 1996, Macromedia introdujo Flash, un reproductor de animaciones vectoriales, el puede ser agregado a los navegadores como un plugin, para incrustar animaciones dentro de las páginas web.
En 1999, el concepto de aplicación web fue introducido dentro de Java con el uso de los servlet. Al mismo tiempo JavaScript y XML fueron mejorados, y surgió Ajax


3.- Consideraciones Técnicas
Una ventaja significativa es que las aplicaciones web deberían funcionar igual independientemente de la versión del sistema operativo instalado en el cliente. En vez de crear clientes para Windows, Mac OS X, GNU/Linux, y otros sistemas operativos, la aplicación web se escribe una vez y se ejecuta igual en todas partes. Sin embargo, hay aplicaciones inconsistentes escritas con HTML, CSS, DOM y otras especificaciones para navegadores web que pueden causar problemas en el desarrollo y soporte de las aplicaciones web. Adicionalmente, la posibilidad de los usuarios de personalizar muchas de las características de la interfaz (tamaño y color de fuentes, tipos de fuentes, inhabilitar Javascript) puede interferir con la consistencia de la aplicación web.
Otra aproximación es utilizar Adobe Flash Player o Java applets para desarrollar parte o toda la interfaz de usuario. Como casi todos los navegadores incluyen soporte para estas tecnologías (usualmente por medio de plug-ins), las aplicaciones basadas en Flash o Java pueden ser implementadas con aproximadamente la misma facilidad. Dado que ignoran las configuraciones de los navegadores, estas tecnologías permiten más control sobre la interfaz, aunque las incompatibilidades entre implementaciones Flash o Java puedan crear nuevas complicaciones. Por las similitudes con una arquitectura cliente-servidor, con un cliente "no ligero", existen discrepancias sobre el hecho de llamar a estos sistemas “aplicaciones web”; un término alternativo es “Aplicación Enriquecida de Internet”.


3.1- Estructuras de las aplicaciones Web
Aunque existen muchas variaciones posibles, una aplicación web está normalmente estructurada como una aplicación de tres-capas. En su forma más común, el navegador web ofrece la primera capa y un motor capaz de usar alguna tecnología web dinámica (ejemplo: PHP, Java Servlets o ASP, ASP.NET, CGI, ColdFusion, embPerl, Python (programming language) o Ruby constituye la capa de en medio. Por último, una base de datos constituye la tercera y última capa.
El navegador web manda peticiones a la capa de en medio que ofrece servicios valiéndose de consultas y actualizaciones a la base de datos y a su vez proporciona una interfaz de usuario.


3.2- Interfaces en las aplicaciones Web

Las interfaces web tienen ciertas limitaciones en las funcionalidades que se ofrecen al usuario. Hay funcionalidades comunes en las aplicaciones de escritorio como dibujar en la pantalla o arrastrar-y-soltar que no están soportadas por las tecnologías web estándar. Los desarrolladores web generalmente utilizan lenguajes interpretados o script en el lado del cliente para añadir más funcionalidades, especialmente para ofrecer una experiencia interactiva que no requiera recargar la página cada vez (lo que suele resultar molesto a los usuarios). Recientemente se han desarrollado tecnologías para coordinar estos lenguajes con tecnologías en el lado del servidor, como por ejemplo PHP.
Como ejemplo, AJAX, es una técnica de desarrollo web que usa una combinación de varias tecnologías.

Hay analistas que han llegado a comparar esta nueva herramienta con un sistema operativo. Algunos técnicos han criticado este enfoque basándose en la teoría convencional sobre los SO, además de recordar que Chrome requiere trabajar sobre un Windows, Linux, Mac OS X…, que son los que manejan los recursos de máquina. La realidad es que, con independencia de lo que piensen y digan los expertos en informática, “el sistema” se reduce a la interfaz para una inmensa mayoría de los usuarios.
3.3- Lenguajes para las aplicaciones Web
Actualmente existen diferentes lenguajes de programación para desarrollar en la web, estos han ido surgiendo debido a las tendencias y necesidades de las plataformas. En el presente artículo pretende mostrar las ventajas y desventajas de los lenguajes más conocidos.
Desde los inicios de Internet, fueron surgiendo diferentes demandas por los usuarios y se dieron soluciones mediante lenguajes estáticos. A medida que paso el tiempo, las tecnologías fueron desarrollándose y surgieron nuevos problemas a dar solución. Esto dio lugar a desarrollar lenguajes de programación para la web dinámica, que permitieran interactuar con los usuarios y utilizaran sistemas de Bases de Datos.
A continuación mencionamos a los diferentes lenguajes de programación para la web.
Lenguaje HTML
Desde el surgimiento de internet se han publicado sitios web gracias al lenguaje HTML. Es un lenguaje estático para el desarrollo de sitios web (acrónimo en inglés de HyperText Markup Language, en español Lenguaje de Marcas Hipertextuales). Desarrollado por el World Wide Web Consortium (W3C). Los archivos pueden tener las extensiones (htm, html).
Ventajas:
• Sencillo que permite describir hipertexto.
• Texto presentado de forma estructurada y agradable.
• No necesita de grandes conocimientos cuando se cuenta con un editor de páginas web o WYSIWYG.
• Archivos pequeños.
• Despliegue rápido.
• Lenguaje de fácil aprendizaje.
• Lo admiten todos los exploradores.
Desventajas:
• Lenguaje estático.
• La interpretación de cada navegador puede ser diferente.
• Guarda muchas etiquetas que pueden convertirse en “basura” y dificultan la corrección.
• El diseño es más lento.
• Las etiquetas son muy limitadas.
Lenguaje Javascript
Este es un lenguaje interpretado, no requiere compilación. Fue creado por Brendan Eich en la empresa Netscape Communications. Utilizado principalmente en páginas web. Es similar a Java, aunque no es un lenguaje orientado a objetos, el mismo no dispone de herencias. La mayoría de los navegadores en sus últimas versiones interpretan código Javascript.
Ventajas:
• Lenguaje de scripting seguro y fiable.
• Los script tienen capacidades limitadas, por razones de seguridad.
• El código Javascript se ejecuta en el cliente.
Desventajas:
• Código visible por cualquier usuario.
• El código debe descargarse completamente.
• Puede poner en riesgo la seguridad del sitio, con el actual problema llamado XSS (significa en inglés Cross Site Scripting renombrado a XSS por su similitud con las hojas de estilo CSS).
Lenguaje PHP
Es un lenguaje de programación utilizado para la creación de sitio web. PHP es un acrónimo recursivo que significa “PHP Hypertext Pre-processor”, (inicialmente se llamó Personal Home Page). Surgió en 1995, desarrollado por PHP Group.
PHP es un lenguaje de script interpretado en el lado del servidor utilizado para la generación de páginas web dinámicas, embebidas en páginas HTML y ejecutadas en el servidor. PHP no necesita ser compilado para ejecutarse. Para su funcionamiento necesita tener instalado Apache o IIS con las librerías de PHP. La mayor parte de su sintaxis ha sido tomada de C, Java y Perl con algunas características específicas. Los archivos cuentan con la extensión (php).
Ventajas:
• Muy fácil de aprender.
• Se caracteriza por ser un lenguaje muy rápido.
• Soporta en cierta medida la orientación a objeto. Clases y herencia.
• Es un lenguaje multiplataforma: Linux, Windows, entre otros.
• Capacidad de conexión con la mayoría de los manejadores de base de datos: MysSQL, PostgreSQL, Oracle, MS SQL Server, entre otras.
• Capacidad de expandir su potencial utilizando módulos.
• Posee documentación en su página oficial la cual incluye descripción y ejemplos de cada una de sus funciones.
• Es libre, por lo que se presenta como una alternativa de fácil acceso para todos.
• Incluye gran cantidad de funciones.
• No requiere definición de tipos de variables ni manejo detallado del bajo nivel.
Desventajas:
• Se necesita instalar un servidor web.
• Todo el trabajo lo realiza el servidor y no delega al cliente. Por tanto puede ser más ineficiente a medida que las solicitudes aumenten de número.
• La legibilidad del código puede verse afectada al mezclar sentencias HTML y PHP.
• La programación orientada a objetos es aún muy deficiente para aplicaciones grandes.
• Dificulta la modularización.
• Dificulta la organización por capas de la aplicación
Seguridad:
• PHP es un poderoso lenguaje e intérprete, ya sea incluido como parte de un servidor web en forma de módulo o ejecutado como un binario CGI separado, es capaz de acceder a archivos, ejecutar comandos y abrir conexiones de red en el servidor. Estas propiedades hacen que cualquier cosa que sea ejecutada en un servidor web sea insegura por naturaleza.
Lenguaje ASP
Es una tecnología del lado de servidor desarrollada por Microsoft para el desarrollo de sitio web dinámicos. ASP significa en inglés (Active Server Pages), fue liberado por Microsoft en 1996. Las páginas web desarrolladas bajo este lenguaje es necesario tener instalado Internet Information Server (IIS).
ASP no necesita ser compilado para ejecutarse. Existen varios lenguajes que se pueden utilizar para crear páginas ASP. El más utilizado es VBScript, nativo de Microsoft. ASP se puede hacer también en Perl and Jscript (no JavaScript). El código ASP puede ser insertado junto con el código HTML. Los archivos cuentan con la extensión (asp).
Ventajas:
• Usa Visual Basic Script, siendo fácil para los usuarios.
• Comunicación óptima con SQL Server.
• Soporta el lenguaje JScript (Javascript de Microsoft).
Desventajas:
• Código desorganizado.
• Se necesita escribir mucho código para realizar funciones sencillas.
• Tecnología propietaria.
• Hospedaje de sitios web costosos.
Lenguaje ASP.NET
Este es un lenguaje comercializado por Microsoft, y usado por programadores para desarrollar entre otras funciones, sitios web. ASP.NET es el sucesor de la tecnología ASP, fue lanzada al mercado mediante una estrategia de mercado denominada .NET.
El ASP.NET fue desarrollado para resolver las limitantes que brindaba tu antecesor ASP. Creado para desarrollar web sencillas o grandes aplicaciones. Para el desarrollo de ASP.NET se puede utilizar C#, VB.NET o J#. Los archivos cuentan con la extensión (aspx). Para su funcionamiento de las páginas se necesita tener instalado IIS con el Framework .Net. Microsft Windows 2003 incluye este framework, solo se necesitará instalarlo en versiones anteriores.
Ventajas:
• Completamente orientado a objetos.
• Controles de usuario y personalizados.
• División entre la capa de aplicación o diseño y el código.
• Facilita el mantenimiento de grandes aplicaciones.
• Incremento de velocidad de respuesta del servidor.
• Mayor velocidad.
• Mayor seguridad.
Desventajas:
• Mayor consumo de recursos.
Otros Lenguajes Lenguaje JSP, Lenguaje Python, Lenguaje Ruby


3.4- Manejadores de Bases de Datos

Entre los gestores o manejadores más actuales y populares encontramos: Mysql, PostgreSQL, Oracle y Microsoft SQL Server.

MySQL.- es un sistema de gestión de base de datos relacional, multihilo y multiusuario.
MySQL es muy utilizado en aplicaciones web, como Drupal o phpBB, en plataformas (Linux/Windows-Apache-MySQL-PHP/Perl/Python), y por herramientas de seguimiento de errores como Bugzilla. Su popularidad como aplicación web está muy ligada a PHP, que a menudo aparece en combinación con MySQL.
MySQL es un manejador de base de datos muy rápido en la lectura cuando utiliza el motor no transaccional MyISAM, pero puede provocar problemas de integridad en entornos de alta concurrencia en la modificación. En aplicaciones web hay baja concurrencia en la modificación de datos y en cambio el entorno es intensivo en lectura de datos, lo que hace a MySQL ideal para este tipo de aplicaciones.

PostgreSQL
Es un sistema de gestión de base de datos relacional orientada a objetos de software libre, publicado bajo la licencia BSD.
Como muchos otros proyectos open source, el desarrollo de PostgreSQL no es manejado por una sola compañía sino que es dirigido por una comunidad de desarrolladores y organizaciones comerciales las cuales trabajan en su desarrollo.
Características
Alta concurrencia
Mediante un sistema denominado MVCC (Acceso concurrente multiversión, por sus siglas en inglés) PostgreSQL permite que mientras un proceso escribe en una tabla, otros accedan a la misma tabla sin necesidad de bloqueos. Cada usuario obtiene una visión consistente de lo último a lo que se le hizo commit. Esta estrategia es superior al uso de bloqueos por tabla o por filas común en otras bases, eliminando la necesidad del uso de bloqueos explícitos.
Amplia variedad de tipos nativos
PostgreSQL provee nativamente soporte para:
• Números de precisión arbitraria.
• Texto de largo ilimitado.
• Figuras geométricas (con una variedad de funciones asociadas)
• Direcciones IP (IPv4 e IPv6).
• Bloques de direcciones estilo CIDR.
• Direcciones MAC.
• Arrays.
Adicionalmente los usuarios pueden crear sus propios tipos de datos, los que pueden ser por completo indexables gracias a la infraestructura GiST de PostgreSQL. Algunos ejemplos son los tipos de datos GIS creados por el proyecto PostGIS.
Oracle
Es un sistema de gestión de base de datos relacional (o RDBMS por el acrónimo en inglés de Relational Data Base Management System), desarrollado por Oracle Corporation.
Se considera a Oracle como uno de los sistemas de bases de datos más completos, destacando su:
• Soporte de transacciones.
• Estabilidad.
• Escalabilidad.
• Soporte multiplataforma.
Microsoft SQL Server es un sistema de gestión de bases de datos relacionales (SGBD) basado en el lenguaje Transact-SQL y específicamente en Sysbase capaz de poner a disposición de muchos usuarios grandes cantidades de datos de manera simultánea, así como de tener unas ventajas que más abajo se describen.
Características de Microsoft SQL Server [editar]
• Soporte de transacciones.
• Escalabilidad, estabilidad y seguridad.
• Soporta procedimientos almacenados.
• Incluye también un potente entorno gráfico de administración, que permite el uso de comandos DDL y DML gráficamente.
• Permite trabajar en modo cliente-servidor, donde la información y datos se alojan en el servidor y las terminales o clientes de la red sólo acceden a la información.
• Además permite administrar información de otros servidores de datos.
3.5.- Ventajas y Desventajas

Ventajas
• No se necesita Instalar nada (No depende de algún Software), por lo general.
• Puedes acceder a ella desde cualquier ordenador con conexión a Internet.
• Brindan privacidad con acceso (usuario y contraseña) para acceder a tus datos.
• No necesitas actualizarlo.
• No hay discriminación (generalmente) acerca del sistema operativo del usuario (aunque exista por parte del servidor).
• Recuperas tu contraseña perdida con un email alternativo.

Desventajas
• Depende de una conexión a Internet permanente (generalmente) y una conexión promedio para una optima navegación.
• La seguridad de tus datos, depende de la seguridad de la aplicación Web y del servidor donde este alojado.
• Tienes limitado el espacio donde guardas tu información (solo si necesitas guardar videos, imágenes, audio).
• Poco soporte a varios Idiomas (generalmente).
• Dependen mucho de la configuración de la privacidad del navegador para trabajar al 100% ( Javascript, Cookies, Flash ).
• La estabilidad de la aplicación está sujeta al número de visitas en un mismo lapso de tiempo (sobre carga del servidor ).
4.- Usos

Servicios para Empleados
Administración de Conocimiento
Servicio al Cliente
Tablero de Comando ejecutivo
Soporte a Ventas
Finanzas
Cumplir con obligación corporativa
Soporte a proveedores
Colaboración para Investigación y Desarrollo
Administración de Riesgo
Soporte Distribuido
Servicios de gobierno en línea
Venta al detalle

Referencias
http://jmpereda.wordpress.com/2007/08/24/definiendo-la-plantilla/
http://es.wikipedia.org/wiki/Aplicaci%C3%B3n_web
http://empresas.hispavista.com/soluciones/aplicaciones/
http://www.calinsoft.com/2008/08/aplicaciones-web-ventajas-y-desventajas.html
http://www.infor.uva.es/~jvegas/cursos/buendia/pordocente/node11.html#fig:esquemagral
http://www.calinsoft.com/2008/08/aplicaciones-web-ventajas-y-desventajas.html
http://es.wikipedia.org/wiki/MySQL
http://es.wikipedia.org/wiki/Oracle
http://es.wikipedia.org/wiki/PostgreSQL
http://es.wikipedia.org/wiki/Microsoft_SQL_Server

No hay comentarios:

Publicar un comentario