Sei sulla pagina 1di 8

Comparacin GUI - WEB

http://www.gxtechnical.com/gxdlsp/pub/genexus/internet/technicalpaper...

COMPARACIN GUI WEB


Objetivo.
El objetivo de este artculo es brindar una herramienta de referencia, para asistir en la decisin de migrar o desarrollar una aplicacin con interfaz de usuario grafica (GUI), o una aplicacin web. Para analizar las diferencias entre los dos tipos de aplicaciones se compararn las ventajas y desventajas de las aplicaciones web frente a las aplicaciones GUI. Existe otro articulo (Conversin de Aplicaciones GUI a WEB) sobre esta misma temtica en donde se dan los detalles tcnicos de cmo realizar esta tarea, por lo que aqu no se mencionarn esos detalles.

Introduccin.
Aplicaciones con interfaz de usuario grfica.
Las aplicaciones con Interfaz de Usuario Grafica (GUI) estn compuestas por uno o varios programas GeneXus que utilizan objetos de tipo, transaccin, work panel, procedimientos y reportes.

Aplicaciones Web.
Se entender por aplicaciones Full Web a aquellas aplicaciones en las que la interfaz del usuario es nicamente realizada utilizando el lenguaje HTML y son accedidas desde un browser. En GeneXus estas aplicaciones se implementan con objetos web como web panels o Transacciones Web. El lenguaje HTML es un lenguaje de marcas (tags) para la estructuracin de un documento. Si bien el lenguaje es estndar, en la prctica, cada browser toma algunas partes de la especificacin, agrega e ignora otras. Como consecuencia de esto una aplicacin Web puede quedar levemente distinta segn el browser que se utilice.

Caractersticas de las aplicaciones Web.


Ventajas de las aplicaciones Web.
Una aplicacin Web tiene diversas ventajas frente a las aplicaciones GUI.

INSTALACIN.
Las aplicaciones Web presentan varias ventajas tanto en la instalacin y actualizacin como en los requerimientos necesarios para utilizarlas. Cliente fino. Para utilizar la aplicacin Web solo se necesita un browser. Los browsers son distribuidos por Internet y no tienen costo. Generalmente vienen incluidos al instalar el sistema operativo. Adicionalmente se pueden instalar plugs-in, que son programas que agregan funcionalidades adicionales al browser. Un ejemplo muy comn es el plug-in de Acrobat, utilizado para

1 de 8

03/11/2011 08:10 p.m.

Comparacin GUI - WEB

http://www.gxtechnical.com/gxdlsp/pub/genexus/internet/technicalpaper...

visualizar archivos en formato PDF o plugs-in para video o sonido. Flexibilidad en software y hardware en el cliente. En las aplicaciones Web, el cliente puede tener instalado cualquier sistema operativo en cualquier versin. Las aplicaciones Web no utilizan tantos recursos de hardware por lo que el costo de las computadoras clientes es menor y no necesita actualizaciones frecuentes. La aplicacin solo se instala en el servidor. Generalmente la instalacin y actualizacin de aplicaciones GUI en arquitecturas cliente / servidor implica, alguna instalacin en las computadoras cliente. En el caso de aplicaciones Java GUI, esta instalacin es automtica, pero tambin existe ya que es necesario bajar la aplicacin. En el caso de una aplicacin web no se requiere ninguna instalacin adicional a la del browser, para poder accederla o acceder a otras aplicaciones web.

ESCALABILIDAD.
Las aplicaciones Web utilizan una arquitectura de tres capas compuesta por la capa cliente, donde est nicamente el browser, la capa del Servidor Web donde esta la aplicacin y la capa de datos donde se encuentra la Base de Datos.

Arquitectura en tres capas.

Esta arquitectura presenta varias ventajas en cuanto a la escalabilidad. Escalabilidad de usuarios. En la concepcin de la aplicacin, no se tiene en cuenta la cantidad de usuarios que van a utilizarla. Es decir que la misma aplicacin puede ser utilizada por algunos pocos usuarios o varios cientos. El limite estar determinado por el desempeo de la aplicacin, que depende principalmente de la potencia de los servidores y las caractersticas de la red. Una ventaja de la arquitectura en tres capas es que no es necesario pagar nuevas licencias por cada nuevo usuario que accede a la aplicacin (por ejemplo los drivers de acceso a la base de datos se pagan por cantidad de usuarios concurrentes). Escalabilidad de servidores. El desempeo de la aplicacin depende directamente de la potencia de los servidores en la que este instalada. Se puede migrar la aplicacin a servidores ms potentes, sin necesidad de que los usuarios cambien el modo en que acceden a la aplicacin.

INDEPENDENCIA.

2 de 8

03/11/2011 08:10 p.m.

Comparacin GUI - WEB

http://www.gxtechnical.com/gxdlsp/pub/genexus/internet/technicalpaper...

Acceso. La aplicacin puede ser accedida desde cualquier lugar que cuente con acceso a Internet. Esto puede tener un fuerte impacto en el modo de trabajo ya que se pueden acceder a las aplicaciones desde la oficina, el hogar o incluso desde otros pases. Hosting Services Provider (HSP).La aplicacin puede ser instalada en un centro de computo propio o puede contratarse un Hosting Service Provider (son empresas que proveen un centro de computo para aplicaciones Web) e instalarla en los servidores del HSP. Para los usuarios, el acceso a la aplicacin es independiente de donde este instalada.

INTERFAZ GRFICA.
Uniformidad. La forma de navegar por la aplicacin web ser siguiendo links o presionando botones y si bien hay mas opciones, estas son las ms comunes y se mantendrn por toda la aplicacin. Si bien este modo de interaccin es limitado con respecto a las aplicaciones GUI, al ser tan simple y uniforme en toda la aplicacin, al usuario final le resultar sencillo e intuitivo aprender a utilizar nuevas funcionalidades. El diseo grfico es realizado por expertos. Un aspecto sumamente importante en la interfaz grafica de una aplicacin Web es el diseo grafico. Este aspecto sumamente delicado se deja a cargo de diseadores grficos especializados, que hacen que las aplicaciones tengan aspectos atractivos y funcionales. El trabajo con los diseadores grficos sigue pautas similares a la metodologa de prototipacin utilizada en el desarrollo de aplicaciones GeneXus. Cuando los diseadores tienen listo un prototipo, es conveniente que los desarrolladores lo evalen para validarlo desde el punto de vista del desarrollo. Al evaluar un diseo hay que tener en cuenta ciertos aspectos: Impacto del diseo de las pginas Web finales. Si se utilizan demasiadas imgenes, con muchos botones, el tamao final de la pgina, puede ser excesivamente grande, por lo que se demorar mucho el acceso. La recomendacin es cuidar de que las imgenes sean de pocos Kbytes. Los links de texto son muy livianos, en el caso de una aplicacin muy accedida, puede ser conveniente utilizarlos. Los sitios web de Amazon y Yahoo, son buenos ejemplos de interfaces livianas, con pocas imgenes y muchos links de texto. El diseo debe ser consistente. Por ejemplo la tipografa, los colores, la ubicacin de botones, etc. debe seguir una pauta bien definida, que los desarrolladores deben respetar al mximo. El diseo debe ser simple y sencillo. El exceso de detalles grficos, puede complicar el desarrollo y evolucin del sitio. El diseo debe ser robusto de modo de poder soportar evoluciones, y nuevos requerimientos. Componentizacin. Es muy importante que la estructura de las pginas pueda ser separado en componentes, de modo de poder reutilizar los mismos objetos para simplificarle al usuario el conocimiento del sitio. En GeneXus esto, se implementa utilizando Web Components. Mantenimiento. La posibilidad de desarrollar una pgina dividida en Web Components, permite tratar cada componente en forma independiente. Esto no solo hace las interfaces ms robustas frente a cambios y extensiones, sino que adems al cambiar un componente, se reflejan los cambios en todas las pginas que lo incluyen. O sea que no es necesario reprogramar todas las pginas, solo el componente adecuado, haciendo del mantenimiento de la aplicacin sencillo. Integracin de nuevas aplicaciones. La interfaz con el usuario se puede personalizar dinmicamente, de acuerdo a las caractersticas del usuario. Por ejemplo con menes donde las opciones se cargan dinmicamente, segn las aplicaciones a las que puede acceder el usuario. De este modo se logran aplicaciones mas integradas y donde es ms sencillo incorporar nuevas aplicaciones.

3 de 8

03/11/2011 08:10 p.m.

Comparacin GUI - WEB

http://www.gxtechnical.com/gxdlsp/pub/genexus/internet/technicalpaper...

Interfaz multimedia. Es muy sencillo incluir en las aplicaciones web caractersticas multimedia como audio, video, imgenes, etc.

APPLICATION SERVICE PROVIDERS Y SERVICIOS WEB.


Los Application Service Providers (ASP), son empresas que brindan servicios y soluciones, basadas en software, a travs de Internet. Ejemplos muy comunes de ASP en portales de Internet son los proveedores de noticias, banners, clima, etc. Tener aplicaciones web habilita a la empresa a funcionar como ASP, brindando como servicio el uso de las aplicaciones web desarrolladas. Tambin habilita a contratar a otros ASP para potenciar las aplicaciones propias.

INTEGRACIN DE APLICACIONES INTERNET E INTRANET.


Las aplicaciones web desarrolladas pueden ser utilizadas en Internet o en una Intranet, para uso interno. Adems las aplicaciones web ya existentes, utilizadas en la Intranet pueden ser integradas a las nuevas aplicaciones web desarrolladas.

EXTENSIONES CON JAVA Y JAVASCRIPT.


En las aplicaciones Web se pueden incorporar extensiones en lenguajes como Java y JavaScript. Para controlar distintos aspectos de la interaccin con pginas web se utiliza el lenguaje JavaScript. El cdigo escrito en este lenguaje es incorporado en el HTML e interpretado por el browser. Java es un lenguaje de programacin muy potente, entre sus propiedades, se destaca la de ser multiplataforma. Esto quiere decir que las aplicaciones desarrolladas en Java pueden ejecutarse en cualquier sistema operativo y cualquier plataforma de hardware. Esta propiedad lo hace especialmente atractivo para aplicaciones que ejecutan a travs de Internet. Por lo tanto se pueden incorporar aplicaciones GUI desarrolladas en Java, para potenciar la aplicacin web.

MLTIPLES FORMAS DE ACCESO.


Mltiples tecnologas como computadores de bolsillo y telfonos celulares estn teniendo un fuerte desarrollo, principalmente como formas alternativas de acceso a Internet. Las caractersticas de hardware de estos dispositivos hacen que las aplicaciones web sean las mas adecuadas. La principal diferencia con las aplicaciones web para estos dispositivos es el tamao reducido de la pantalla. Si bien es necesario crear una versin particular para el dispositivo, se puede reutilizar mucho conocimiento de una aplicacin web ya desarrollada.

Inconvenientes de las aplicaciones web.


En la siguiente seccin se discuten las desventajas que presentan las aplicaciones web frente a las aplicaciones GUI. Es necesaria una reingeniera de la aplicacin. El lenguaje HTML presenta ciertas limitaciones que implica que migrar aplicaciones GUI a aplicaciones Web no sea una tarea automtica. Entre los puntos que deben tenerse en cuenta al realizar la reingeniera de la aplicacin se destacan los siguientes: Seguridad. Es imprescindible tener un esquema de seguridad en la aplicacin, de modo de restringir el acceso a determinadas aplicaciones. Este puede basarse en definir roles con determinados accesos o un esquema en el cual a cada usuario se le asignan permisos particulares. Por otro lado la aplicacin puede requerir que algunas aplicaciones particulares necesiten un esquema mas fuerte de seguridad y requieran pginas Web seguras y servidores seguros. Transacciones e Integridad transaccional. Las Transacciones Web utilizan la misma arquitectura que los Web Panels. En la figura se ve la secuencia de acciones que ocurren al someter las Transacciones Web al servidor.

4 de 8

03/11/2011 08:10 p.m.

Comparacin GUI - WEB

http://www.gxtechnical.com/gxdlsp/pub/genexus/internet/technicalpaper...

Funcionamiento de las Transacciones Web y Web Panels. El tiempo de vida de las UTL (unidades de trabajo lgicas) en los objetos web, se mantiene nicamente durante la ejecucin del objeto. Cuando la ejecucin termina se deben hacer commit o roll back. Por lo tanto no es posible definir una UTL a travs de varias Transacciones Web. Sin embargo, es posible mantener la UTL a travs de varios procedimientos que se invoquen unos a otros, siempre que se mantengan dentro de la misma ejecucin. En las aplicaciones GUI es comn encontrar que durante varias transacciones se van ingresando datos y luego en la ltima transaccin se hace el commit de todos los datos ingresados, por lo que se deben contemplar estos casos en la reingeniera de la aplicacin. Las alternativas posibles a esta situacin son: Unificar todas las transacciones GUI en una sola Transaccin Web. Dividir el proceso de ingreso en varias etapas y utilizar mltiples Transacciones Web. Al finalizar el ingreso podra tenerse un procedimiento que valide que el ingreso en varias etapas es consistente. Ingresar toda la informacin en tablas temporales y luego ingresar la informacin a la base de datos mediante procedimientos.

Validacin de datos. La validacin se realiza a nivel de todo el documento. Esto implica que en un documento con cabezal y lneas no se puedan ejecutar reglas al pasar del cabezal a las lneas o luego de ingresar un valor, etc. Por lo tanto la validacin de todos los datos se realiza cuando se completa toda la informacin y se presiona el botn de confirmacin, si los datos cumplen las reglas, entonces el botn de confirmacin cambia para que se ingresen efectivamente los datos. Tambin es posible trabajar sin confirmacin y en este caso si la informacin cumple las reglas se ingresa directamente a la base de datos. Limitacin entre la interaccin de objetos GeneXus. La interaccin entre objetos GeneXus, en aplicaciones web es mas limitada que la interaccin en aplicaciones GUI. Las Transacciones Web y los Web Panels pueden ser invocados entre s, y ambos pueden invocar a procedimientos. Desde objetos web no es posible invocar objetos no web como transacciones, work panels y reportes, aunque para los reportes existe la posibilidad de generarlos en formato PDF. Este tipo de comportamiento que puede encontrarse en una aplicacin GUI, debe ser tratado en la reingeniera de la aplicacin. Diferencias en los Work Panel Trabajar con. En las aplicaciones Web, los work panels de tipo Trabajar con presentan algunas diferencias que en las aplicaciones GUI. El alto de la pantalla cambia, dependiendo de la cantidad de lneas del subfile. En las aplicaciones GUI, el tamao de los formularios se determina en el diseo de este y queda fijo en el momento de ejecucin. En las aplicaciones Web, el tamao de la pgina web se puede extender (horizontal o

5 de 8

03/11/2011 08:10 p.m.

Comparacin GUI - WEB

http://www.gxtechnical.com/gxdlsp/pub/genexus/internet/technicalpaper...

verticalmente) si se presentan muchas lneas en los subfiles. La seleccin de lneas es diferente. En las aplicaciones GUI, las lneas se seleccionan al hacer clic en ellas, adems se puede seleccionar un rango de lneas, continuo o con lneas salteadas, todo esto sin necesidad de programacin extra. En las aplicaciones Web, la seleccin de lneas debe programarse mediante campos de chequeo. Adems no se puede seleccionar un rango de lneas, debe seleccionarse cada lnea individualmente. Aplicar una accin a las lneas seleccionadas en el subfile. Lo que ocurre es que se debe recordar la seleccin de lneas realizadas ya que al cambiar a la pgina en donde se aplica la accin se pierden cuales son las lneas seleccionadas anteriormente. Las alternativas al comportamiento que se tiene en aplicaciones GUI son, Solo permitir seleccionar una nica lnea, por lo tanto no es necesario recordar otras lneas seleccionadas. Permitir la seleccin de mltiples lneas y utilizar el carrito de compras (se describe a continuacin) u otra alternativa para recordar las lneas seleccionadas.

El modelo del carrito de compras. El carrito de compras, es muy utilizado en los sitios web con e-commerce y permite recordar los objetos que compra los usuarios. En el carrito de compras se van seleccionando distintos items que se desean comprar. El carrito mantiene almacenado el contenido hasta que el dueo decide comprar alguno o todos los items. Esta idea resulta practica en casos como estos: Factura de compras. La factura se va armando seleccionando los elementos que la componen: lista de productos disponibles, lista de clientes, formas de pago, monedas, etc. Cuando se termino de armar, se construye la factura con toda la informacin del carrito. Si se quiere realizar alguna accin a una serie de lneas en un Trabajar con, se pueden ingresar en el carrito y luego automticamente se van presentando una a una las paginas adecuadas para la accin determinada, hasta vaciar el carrito.

Ejecucin en el servidor. A diferencia de las aplicaciones GUI cliente / servidor, donde pueden ejecutarse acciones tanto en el cliente como en el servidor, en las aplicaciones web, solo se pueden ejecutar acciones en el servidor. Podra decirse que el cliente prcticamente no tiene capacidad de computo, adems como se mencion anteriormente tampoco tienen memoria. Es decir que no es posible definir un valor, almacenarlo en la computadora del cliente y luego recuperarlo. Sin embargo hay algunas alternativas: Cookies. Son archivos de texto, que quedan salvados en las computadoras cliente. En ellos se puede guardar variables y luego recuperar su valor. Aunque browser permite al usuario a opcin de deshabilitar el uso de cookies, son ampliamente utilizadas. Pasaje de parmetros. En este mtodo se utiliza el pasaje de parmetros entre los objetos web para el pasaje de informacin. Todos los objetos web de la aplicacin tendrn los primeros parmetros iguales, en donde se pasarn datos comunes a toda la aplicacin, como nmero de cliente, etc. y luego tendrn parmetros especficos de cada uno. La ventaja de este mtodo es que los usuarios que no permiten cookies no tienen problemas en utilizar la aplicacin, la desventaja es que los cambios en los parmetros tienen un fuerte impacto. Como el pasaje de parmetros se realiza a travs de la url de la aplicacin y los browsers permiten que se vea esa url, el usuario puede ver el valor de los parmetros, e incluso modificarlos. Sin embargo, GeneXus brinda la posibilidad de encriptar los parmetros en forma transparente al desarrollador, esto es importante porque se puede pasar nmeros de cliente, nmeros de factura, etc. en forma segura. Crear sesiones. Este mtodo mantiene la informacin en sesiones que son almacenadas en la base de datos. Por cada usuario que utiliza la aplicacin debe crearse su sesin particular. Adems debe ser complementada con el pasaje de parmetros o cookies para recuperar el nmero de sesin. La ventaja sobre el mtodo anterior es que si se necesita almacenar mas informacin se afecta solo los objetos que necesitan esa informacin. Infraestructura de hardware. La performance de una aplicacin Web depende en gran medida de la

6 de 8

03/11/2011 08:10 p.m.

Comparacin GUI - WEB

http://www.gxtechnical.com/gxdlsp/pub/genexus/internet/technicalpaper...

cantidad de usuarios concurrentes accediendo a la aplicacin, el ancho de banda de la conexin y la potencia de los servidores. Por lo tanto los servidores (web y de base de datos) y el ancho de banda de salida debe ser adecuado a la cantidad de usuarios esperada. Tambin es imprescindible un esquema fuerte de seguridad principalmente de la base de datos. Una aplicacin web debe estar disponible los 7 das de la semana, durante las 24 horas del da. Esto implica un servicio de alta disponibilidad en el cual posiblemente se maneje redundancia de servidores y de informacin.

7 de 8

03/11/2011 08:10 p.m.

Comparacin GUI - WEB

http://www.gxtechnical.com/gxdlsp/pub/genexus/internet/technicalpaper...

Conclusiones.
Las aplicaciones web son una nueva alternativa a las aplicaciones de interfaz grafica. Ambos tipos de aplicacin tienen sus caractersticas propias por lo que en cada aplicacin se debe evaluar si conviene realizarla como web o GUI. Los puntos discutidos en este articulo pueden ser considerados como una gua para tomar esta decisin. Como requisito para tomar una decisin correcta se debe comprender: El funcionamiento de la interfaz web y las limitaciones que ello trae como consecuencia. Las limitaciones en la integridad transaccional.

Algunos puntos a tener en cuenta para evaluar la creacin o migracin a aplicaciones web son: Requerimientos y proceso de instalacin de la aplicacin final Ambiente en donde se ejecute la aplicacin. Requerimientos en el acceso. Interfaz grfica en cuanto a facilidad de uso, diseo grafico atractivo y capacidades multimedia. Acceso desde mltiples plataformas como computadoras de bolsillo, etc. Requerimientos de seguridad en la aplicacin. Complejidad en las transacciones GeneXus, especialmente en la validacin de datos y disparo de reglas. Restricciones en la interaccin de objetos GeneXus. Debe ser evaluado cuidadosamente en el caso de migrar una aplicacin GUI a web. Servidores. En las aplicaciones web la ejecucin se realiza completamente en el servidor.

Como punto final hay que tener en cuenta evolucin de la aplicacin en cuanto a la creacin de nuevos mdulos, cantidad de usuarios y mantenimiento.

8 de 8

03/11/2011 08:10 p.m.

Potrebbero piacerti anche