Download Freddy Veit - 129756

Document related concepts
no text concepts found
Transcript
Universidad ORT Uruguay
Facultad de Ingeniería
Introducción a Tecnologías
Enriquecidas para Internet
Artículo Técnico
Freddy Veit – 129756
2008
Abstract
Este artículo trata sobre las nuevas tendencias en aplicaciones Web, que permiten mayor
riqueza gráfica y dinamismo en el transporte de la información entre el cliente Web y el
servidor.
Además se realiza una comparación entre aplicaciones de escritorio y aplicaciones Web
convencionales.
Se explica el modelo de comunicación sincrónica y asincrónica entre un servidor de
aplicaciones Web y un cliente.
Para finalizar se describen las tecnologías Ajax, Flash y Applets de Java que son
representativas de la nueva tendencia para construcción de aplicaciones Web.
2
Índice
1. Introducción.................................................................................................................. 4
2. Aplicaciones de escritorio y aplicaciones Web convencionales .................................. 4
3. Comunicación sincrónica y asincrónica para aplicaciones Web .................................. 5
4. Aplicaciones y Tecnologías Enriquecidas para Internet............................................... 6
5. Conclusiones................................................................................................................. 9
6. Glosario ...................................................................................................................... 10
Bibliografía..................................................................................................................... 12
3
1. Introducción
La tendencia a desarrollar aplicaciones en Internet viene creciendo a un ritmo muy
acelerado y la mayoría de las empresas están empezando a aprovechar los beneficios
que ésta brinda (Duhl, 2003).
Hasta ahora, las aplicaciones de escritorio permitían una mayor riqueza gráfica y mejor
respuesta en la interacción con el usuario en comparación con las aplicaciones Web. Se
pensaba que las aplicaciones Web nunca alcanzarían la capacidad de interacción de las
aplicaciones de escritorio. En efecto, ante cada acción del usuario que requería al
servidor, se debía recargar la página Web utilizada o dirigirse a una nueva, perjudicando
el tiempo de respuesta. Según Bradbury (2006) esto conduce a usuarios insatisfechos,
lo cual redunda en pérdida de ingresos para las empresas.
Esta brecha de desempeño se está cerrando y cada vez más las aplicaciones Web se
acercan a las aplicaciones de escritorio; por ejemplo, se puede citar a Google Suggest
(Google, 2008b), Google Maps (Google, 2008a) y Flickr (Yahoo, 2008) entre los casos
más conocidos.
El uso de Internet está cambiando junto con las expectativas de los usuarios (Farrell y
Nezlek, 2007). La proliferación del ancho de banda, la demanda de los consumidores y
la competencia de las empresas por llegar a nuevos mercados, crea la necesidad de
impulsar nuevas tecnologías de desarrollo de aplicaciones que tengan el alcance de las
aplicaciones Web, pero que tengan además el desempeño y la calidad de interacción de
las aplicaciones de escritorio (Rogowski et.al., 2007).
2. Aplicaciones de escritorio y aplicaciones Web convencionales
Las aplicaciones de escritorio presentan algunas diferencias con respecto a las
aplicaciones Web convencionales, que se resumen a continuación.
Características de una aplicación de escritorio. Según Noda y Helwig (2005) las
aplicaciones de escritorio ofrecen las siguientes ventajas: mejora la experiencia del
usuario en cuanto a audio, video y comunicaciones. Son más interactivas que las
aplicaciones Web convencionales (ya que mantienen un contacto permanente entre los
procesos internos del programa y lo que sucede en la interfaz de usuario). Permite
acciones tales como arrastrar y pegar documentos, textos e imágenes.
Los mayores problemas de las aplicaciones de escritorio son que dependen del sistema
operativo del computador en el cual se va a instalar, y que la aplicación (junto con sus
actualizaciones) debe ser instalada en cada computador utilizado.
Características de una aplicación Web convencional. Según Noda y Helwig (2005)
no es necesario realizar instalación, actualizaciones o parches en cada computador
donde se ejecute la aplicación. Las aplicaciones pueden funcionar en diferentes sistemas
operativos (independencia de la plataforma). Normalmente la interfaz de usuario es
simple y estandarizada (baja curva de aprendizaje para los usuarios finales). Permiten a
las empresas llegar a un mayor público a un menor costo. La comunicación con el
servidor es sincrónica. La instalación se realiza en un único computador (servidor Web).
4
Dentro de los problemas que encontramos en una aplicación Web convencional se
destacan: respuesta lenta y pérdida del contexto durante el envío y recepción de los
datos al servidor. No hay respuesta inmediata a nuestros actos; se tiene que esperar que
llegue la siguiente carga de pantalla. No permite acciones de interfase gráfica como
arrastrar y pegar documentos, textos e imágenes.
3. Comunicación sincrónica y asincrónica para aplicaciones Web
Existen dos modos de comunicación entre el cliente (definido como el equipo que
requiere servicios del servidor) y el servidor (máquina desde la que se suministran
servicios y que está a la espera de los requerimientos de los clientes). Estos dos modos
son el sincrónico y el asincrónico (ver figura 1).
La mayoría de las aplicaciones Web existentes realizan la comunicación de datos con el
servidor de manera sincrónica (Potthast y Rowe, 2007). En una comunicación
sincrónica se ejecutan los procesos en el siguiente orden: El cliente realiza una petición
al servidor; el servidor envía los datos solicitados; el cliente comienza a recibir los datos
y una vez finalizada la recepción de los datos en la página, el usuario vuelve a tener el
control.
Este proceso conduce a que cada vez que se está enviando información al servidor, el
usuario pierde el control sobre la página Web que está visitando, limitándose de esta
manera a esperar que la aplicación le devuelva el control.
En cambio, con una aplicación Web que se comunica asíncronamente con el servidor,
los procesos son los siguientes: El cliente realiza una solicitud al servidor; el servidor
envía los datos solicitados; el cliente comienza a recibir los datos. El cliente en ningún
momento pierde el control de las acciones sobre la página que está visualizando y
permite acciones con el usuario durante la regresión de los datos.
La comunicación asincrónica se puede utilizar para construir interfaces interactivas de
usuario que son muy semejantes a las aplicaciones de escritorio tradicionales.
5
Figura 1: Modelos de comunicación sincrónica (imagen superior) y asincrónica
(imagen inferior) en una aplicación Web entre el cliente y el servidor [Garrett, 2005]1.
4. Aplicaciones y Tecnologías Enriquecidas para Internet
Estas aplicaciones se denominan RIA (Rich Internet Applications). Son aplicaciones
Web que tienen las características y funcionalidades de una aplicación de escritorio
1
Esta imagen ilustra la comunicación asincrónica de Ajax, pero el proceso ilustrado es genérico para
cualquier tipo de comunicación asincrónica.
6
común, con la gran diferencia de que las RIA no necesitan instalar la aplicación en la
máquina local del usuario. Sin embargo, algunas de estas aplicaciones necesitan instalar
pequeños programas o componentes normalmente llamados plug-in la primera vez que
se ejecutan en el computador del usuario. A las aplicaciones RIA se accede desde un
navegador Web (Firefox, Internet Explorer, Opera, etc.). En teoría, la aplicación
funciona igual sin importar desde qué plataforma se acceda (Morales-Chaparro, et. al.
2007).
Las aplicaciones RIA trabajan de modo asincrónico (ver figura 2), lo que permite que
sean más dinámicas que las aplicaciones Web tradicionales. De esta forma, reducen la
diferencia con las aplicaciones de escritorio.
Las aplicaciones construidas con tecnología enriquecida contienen los puntos fuertes de
las aplicaciones de escritorio y de las aplicaciones Web convencionales (Noda y
Helwig, 2005).
Navegador del
cliente
Interfase del usuario
Interfase del usuario
Navegador del
cliente
Aplicación RIA
Lenguaje del Servidor
Lenguaje del Servidor
Base de Datos
Base de Datos
Servidor Web
Modelo de interacción entre el
servidor y el navegador del cliente, para
aplicaciones que utiliza tecnologías
enriquecidas para Internet.
Servidor Web
Modelo de interacción entre el servidor y el
navegador del cliente, para aplicaciones
Web convencionales.
Figura 2: Comparación entre arquitectura enriquecida (izquierda) y arquitectura Web
convencional (derecha)
Entre las principales ventajas (Dhul, 2003) que presentan este tipo de aplicaciones
respecto a las aplicaciones Web convencionales se encuentran las siguientes:
Acceso inmediato a la información en tiempo real. El usuario en ningún momento
pierde el control sobre la página que esta visualizando.
7
Prestaciones de interfase gráfica. Algunas de estas tecnologías permiten
funcionalidades como arrastrar y soltar los datos de una parte de la pantalla a otra.
Generalidades de cliente. Se pueden utilizar desde cualquier computador con una
conexión a Internet sin depender del sistema operativo que éste utilice.
Se puede agregar Mantenibilidad. Permiten por ejemplo modificar y/o eliminar
elementos sin necesidad de recargar la página en la cual estamos.
Según la consultora Gartner (Driver et. al., 2005), en el 2010 al menos el 60% de los
nuevos proyectos de software incluirán este tipo de tecnología.
Algunas de las tecnologías que entran en el grupo de las RIA son Applets de Java,
Adobe Flash y AJAX. Estas tecnologías y su comparación (ver tabla 1), se resumen a
continuación.
Adobe Flash. (Adobe, 2008) Es un pequeño programa que se instala como plug-in en el
navegador del cliente para ejecutar archivos generados con Flash. En principio fue
diseñado para ver películas interactivas. Ahora se utiliza bastante para hacer juegos
monousuarios en Internet ya que es programable con ActionScript. Flash utiliza
principalmente gráficos vectoriales, flujo de video y audio bidireccional.
AJAX. Acrónimo de Asynchronous JavaScript And XML (JavaScript asíncrono y
XML), Ajax no es una tecnología, es el conjunto de muchas tecnologías (XHTML, CSS,
DOM, XML, XSLT, XMLHttpRequest, JavaScript). Éstas se ejecutan en el navegador
de los usuarios y mantiene comunicación asíncrona con el servidor en segundo plano.
De esta forma es posible realizar cambios sobre la misma página sin necesidad de
recargarla. Esto significa aumentar la interactividad, velocidad y la manera de utilizar la
misma (Garrett, 2005).
Applets de Java. Un applet (Sun, 2008) es una pequeña aplicación que está escrita en
el lenguaje de programación Java, que se descarga en el navegador del cliente. Una vez
instalado el plug-in de Java en el navegador, la comunicación entre el cliente y el
servidor es mucho más dinámica que una aplicación Web convencional.
.
8
Criterio
Experiencia en la
interfaz del usuario
Velocidad de descarga
Requisito de plug-in en
Cliente
Seguridad
Necesidad de Servidor
Tecnologías
Soporta audio / video
Alcance
Adopción de la
Tecnología
Costo
Soporte y
Documentación
Ajax
Flash
Java
Baja
Alta
Media
Alta
No
Media
Flash Player
Baja
JRE
Media
No
Alta
Si (Flex o Open Laszlo)
Alta
No (para applet o
Java Web Start)
XML, DOM, JavaScript, Java
Flash, ActionScript
Alto
Medio
Medio
Medio
Alto
Bajo
JavaScript, CSS,
XML, DOM, etc.
Bajo
Alto
Medio (pero cada vez
más rápido)
No (para construcción Si (para Flex)
del cliente)
No (para Open Laszlo)
Evolucionando
Buena
No
Buena
Tabla 1: Ventajas y desventajas de las tecnologías Ajax, Flash y Java (traducido de
DEB, 2008).
5. Conclusiones
Como describimos anteriormente vemos que las preferencias de los usuarios se están
inclinando hacia aplicaciones Web construidas con tecnología enriquecidas para
Internet.
En un futuro no muy lejano la mayoría de las aplicaciones Web utilizarán tecnología
enriquecida, lo cual no quiere decir que desaparezcan las páginas Web estáticas; todas
aquellas aplicaciones que no necesiten un alto nivel de interactividad con el usuario
seguirán probablemente construyéndose como hasta ahora, por la sencillez y su rápido
desarrollo.
9
6. Glosario
ActionScript: es un lenguaje de programación orientado a objetos, utilizado en especial
en aplicaciones web animadas realizadas en el entorno Adobe Flash, la tecnología de
Adobe para añadir dinamismo al panorama Web. Por más información
http://www.adobe.com/devnet/actionscript/
CSS: Cascading Style Sheets (Hojas de Estilo en Cascada), es un mecanismo simple
que describe cómo se va a mostrar un documento en la pantalla, o cómo se va a
imprimir, o incluso cómo va a ser pronunciada la información presente en ese
documento a través de un dispositivo de lectura. Esta forma de descripción de estilos
ofrece a los desarrolladores el control total sobre estilo y formato de sus documentos.
Por más información http://www.w3.org/Style/CSS/
DOM: Document Object Model es un modelo de Objetos para la representación de
documentos, que es esencialmente un modelo computacional a través del cual los
programas y scripts pueden acceder y modificar dinámicamente el contenido, estructura
y estilo de los documentos HTML y XML. Por más información
http://www.w3.org/DOM/
JavaScript: es un lenguaje de programación interpretado, es decir, que no requiere
compilación, utilizado principalmente en páginas web, con una sintaxis semejante a la
del lenguaje Java y el lenguaje C. Por más información http://docs.sun.com/source/8166408-10/contents.htm
XHTML: eXtensible Hypertext Markup Language (Lenguaje de Marcado de Hipertexto
Extensible) es una versión más estricta y limpia de HTML, que nace precisamente con
el objetivo de remplazar a HTML ante su limitación de uso con las cada vez más
abundantes
herramientas
basadas
en
XML.
Por
más
información
http://www.w3c.es/Divulgacion/Guiasbreves/XHTML
XML: eXtensible Markup Language (lenguaje de marcas extensible), es un
metalenguaje extensible de etiquetas desarrollado por el World Wide Web Consortium
(W3C). Es una simplificación y adaptación del SGML y permite definir la gramática de
lenguajes específicos (de la misma manera que HTML es a su vez un lenguaje definido
por SGML). Por lo tanto XML no es realmente un lenguaje en particular, sino una
manera de definir lenguajes para diferentes necesidades. Por más información
http://www.w3.org/XML/
XMLHttpRequest: proporciona una manera de comunicarse con un servidor después
de que una página web se ha cargado. Por más información
http://www.w3.org/TR/XMLHttpRequest/
XSL: Extensible Stylesheet Language (lenguaje extensible de hojas de estilo) es una
familia de lenguajes basados en el estándar XML que permite describir cómo la
información contenida en un documento XML cualquiera debe ser transformada o
formateada para su presentación en un medio. Por más información:
http://www.w3.org/Style/XSL/
XSLT: Transformaciones XSL es un estándar de la organización W3C que presenta una
forma de transformar documentos XML en otros e incluso a formatos que no son XML.
10
Las hojas de estilo XSLT realizan la transformación del documento utilizando una o
varias reglas de plantilla. Por más información www.w3.org/TR/xslt.html
11
Bibliografía
ADOBE. 2008. Flash resources. [online] [citado 10 agosto, 2008]. Disponible desde
Internet:
<http://www.adobe.com/designcenter/flash/articles/flash_resources.html#tutorials>
BRADBURY, Danny. 2006. Rich prospects as HTML comes of age. En: Computer
Weekly: pp 50-52, 18 abril 2006.
DEB, Brijesh. 2008. A Look Into Available Technology Choices. [online] [citado 10
agosto,
2008].
Disponible
en
Internet:
<http://www.jaxmag.com/itr/online_artikel/psecom,id,828,nodeid,147.html>
DRIVER, M.; et. al. 2005. Management Update: Rich Internet Applications Are the
Next Evolution of the Web. Id Number G00127774 (Gartner, Inc.) [online] [citado
18 agosto, 2008]. Disponible en Internet: <http://sebringsoft.com/images/riacomfactbook.pdf >
DUHL, Joshua. 2003. Rich Internet Applications. Global Headquarters. Id. Number
3906. (IDC) [online] [citado 14 agosto, 2008]. Disponible en Internet:
<http://www.adobe.com/platform/whitepapers/idc_impact_of_rias.pdf >
FARRELL, Jason; NEZLEK, George S. 2007. Rich Internet Applications. The Next
Stage of Application Development. En: Proceedings of the ITI 2007 29th Int. Conf.
on Information Technology Interfaces, Junio 25-28, 2007, Cavtat, Croacia.
GARRETT, Jesse James. 2005. Ajax: A New Approach to Web Applications.
[online]
[citado
5
agosto,
2008].
Disponible
en
Internet:
<http//adaptivepath.com/ideas/essays/archives/000385.php>.
GOOGLE, 2008a. Google Maps. [online] [citado 15 agosto, 2008]. Disponible en
Internet: <http://maps.google.com/>
GOOGLE, 2008b. Google Suggest. [online] [citado 15 agosto, 2008]. Disponible en
Internet: <www.google.com/webhp?complete=1&hl=en>
MORALES-CHAPARRO; et. al. 2007. MVC Web design patterns and Rich Internet
Applications. [online] [citado 27 agosto, 2008]. Disponible en Internet:
www.sistedes.es/TJISBD/Vol-1/No-1/articles/SCHA-07-Morales-MVC.pdf
NODA, Tom; HELWIG Shawn. 2005. Rich Internet Applications, Technical
Comparison and Case Studies of AJAX, Flash, and Java based RIA. Reporte de las
mejores practicas de UW E-Business Consortium. [online] [citado 8 agosto, 2008].
Disponible en Internet: <http://www.uwebc.org/opinionpapers/docs/RIA.pdf>
POTTHAST, Stefan; ROWE, Mike. 2007. An Analysis of Approaches for
Asynchronous Communication in Web Applications. [online] [citado 8 agosto,
2008].
Disponible
en
internet:
<http://www.micsymposium.org/mics_2007/papers/Potthast.pdf>
12
ROGOWSKI, Ron; et. al. 2007. Financial Institutions Need Rich Internet Apps.
(Forrester Research, Inc.) [online] [citado 14 agosto, 2008]. Disponible en Internet:
<http://www.adobe.com/enterprise/pdfs/financial_institutions_need_ria.pdf>
SUN. 2008. Applets. [online] [citado 12 agosto, 2008]. Disponible en Internet:
<http://java.sun.com/applets/>
YAHOO, 2008. Flickr. [online] [citado 16 agosto, 2008]. Disponible en Internet:
<http://www.flickr.com/>
13