ThinWire
Presenta:
Amador Carrillo Karla Karin 00000013292 Beltrรกn Duran Yenia Enid 00000013273
Guaymas, Sonora;
Abril del 2010
1
INDICE PORTADA ......................................................................................................................... 1 INTRODUCCIÓN ............................................................................................................... 3 HISTORIA .......................................................................................................................... 4 TIPO DE LICENCIA ........................................................................................................... 4 DESCRIPCIÓN DE LA TECNOLOGÍA ............................................................................... 4 Descripción a Detalle ................................................................................................ 6 REQUERIMIENTOS DE INSTALACIÓN ............................................................................. 7 Requisitos del sistema .............................................................................................. 8 Requisitos de conocimiento:.................................................................................... 8 Compatibilidad ........................................................................................................... 8 AMBIENTE DE DESARROLLO .......................................................................................... 8 VENTAJAS ........................................................................................................................ 9 POSIBLES DESVENTAJAS .............................................................................................. 10 CONCLUSIONES ............................................................................................................. 12 BIBLIOGRAFÍA ................................................................................................................ 13 ANEXOS .......................................................................................................................... 14 Ejemplo Hola Mundo ............................................................................................... 14 Ejemplo Buscador de Direcciones ......................................................................... 15
2
INTRODUCCIÓN
Aplicaciones Ricas en Internet (RIA) Rich Internet Applications (Aplicaciones de Internet Enriquecidas) son un nuevo tipo de aplicaciones con más ventajas que las tradicionales aplicaciones Web. Esta surge como una combinación de las ventajas que ofrecen las aplicaciones Web y las aplicaciones tradicionales.
Normalmente en las aplicaciones Web, hay una recarga continua de páginas cada vez que el usuario pulsa sobre un enlace. De esta forma se produce un tráfico muy alto entre el cliente y el servidor, llegado muchas veces, a recargar la misma página con un mínimo cambio. Otra de las desventajas de las tradicionales aplicaciones Web es la poca capacidad multimedia que posee. Para ver un vídeo es necesario usar un programa externo para su reproducción.
En los entornos RIA, en cambio, no se producen recargas de página, ya que desde el principio se carga toda la aplicación, y sólo se produce comunicación con el servidor cuando se necesitan datos externos como datos de una base de datos o de otros ficheros externos. Las capacidades multimedia son totales gracias a que estos entornos tienen reproductores internos y no hace falta ningún reproductor del sistema operativo del usuario.
Hay muchas herramientas para la creación de entornos RIA. Entre estas se puede mencionar las plataformas Adobe Flash, Adobe Flex y Adobe AIR de Adobe, AJAX, OpenLaszlo, Silverlight de Microsoft, JavaFX Script de Sun Microsystems, ThinWire, Bindows de MB Technologies, entre otras.
3
HISTORIA Lo que creo que fue el primer anuncio de la liberación de la tecnología apareció en el CCS sitio web. El anuncio redactado dice lo siguiente: El 15 de Junio del 2006 CCS (Custom Credit Systems) anuncia el código abierto lanzamiento de su nuevo ThinWire (TM).
“Esta nueva plataforma de tecnología avanzada de alta seguridad permite soluciones en un entorno de huella cero. La tecnología ya está disponible para uso general dentro de cualquier aplicación basada en web en los términos de código abierto. "
TIPO DE LICENCIA Tiene licencia LGPL (Lesser General Public License): esta licencia permite utilizar sus librerías en proyectos privativos.
DESCRIPCIÓN DE LA TECNOLOGÍA ThinWire es un proyecto Open Source que permite, de forma sencilla y apoyándose en AJAX, construir aplicaciones web imitando el aspecto de las de escritorio.
Para ello, simplemente proporciona una serie de librerías, las cuales incorporamos en nuestro proyecto para trabajar directamente sobre los muchos componentes nuevos que incorpora, tales como ventanas flotantes, campos de texto, botones, menús entre otros. Todo ello sin escribir una sola línea de HTML, CSS o JavaScript.
4
ThinWire es un proyecto impulsado por una comunidad de desarrolladores, es de código abierto Java basado en un marco de aplicación web que utiliza Ajax para las técnicas de imagen en Aplicaciones Web y el aspecto tradicional de las GUI en aplicaciones. El proyecto alienta a todos los usuarios a contribuir y mejorar el producto. ThinWire intenta diferenciarse de la multitud de marcos Ajax. El código fuente de una aplicación basada en ThinWire se asemejan más al de una aplicación GUI de escritorio tradicional de lo que será una aplicación web. ThinWire maneja toda la web y la prestación navegador / servidor de comunicación automáticamente. Lo primero que hace ThinWire es aceptar que HTTP y HTML han sido diseñados para ofrecer las páginas de contenido estático en la forma en que vemos las noticias y las revistas de los sitios web. No están destinados a ser utilizados para los procesos de negocio o desarrollo de aplicaciones centradas en datos. Además, es necesario disponer de más elementos de la interfaz de usuario con el fin de que el usuario pueda captar con precisión la información. ThinWire se aprovecha de las técnicas de Ajax para crear una interfaz más expresiva y dinámica para el usuario de negocios. Además, proporciona una API Java que permite a un desarrollador que se ocupa sólo de la aplicación lógica, lo que les permite crear fácilmente una aplicación Web que se ve y funciona como una aplicación GUI tradicional. ThinWire se centra exclusivamente en el lado del servidor enfoque de programación, en lugar de la mezcla del lado del cliente y del lado del servidor enfoque adoptado por muchos marcos. Una de las ventajas de este enfoque es que su base de código es generalmente escrito íntegramente en un solo idioma en el servidor y, por tanto, de desarrollo tradicionales, la depuración de los métodos de análisis y unidad
de
trabajo
sin
modificación.
Además,
esto
permite
a
los
desarrolladores gastar sus esfuerzos centrados en la aplicación de las
5
necesidades reales de las empresas en lugar de abordar muchas de las complejidades asociadas con el desarrollo del lado del cliente. Aunque prácticamente cualquier aplicación web puede ser construida con ThinWire, cuando se trata de aplicaciones de negocio, no hay solución más rápida sobre la cual construir. Con ese fin, una serie de aplicaciones de negocio de bancos basado en ThinWire se utilizan actualmente, uno de los cuales se encuentra en un de los principales diez bancos en los Estados Unidos con más de 1000 usuarios.
Descripción a Detalle Utiliza el modelo "Event Driven Model" (Modelo de Eventos): esto significa que la aplicación no funciona de manera lineal, no se puede anticipar cual será la acción que el usuario elegirá para interactuar con la aplicación y es por tanto que el modelo de eventos-señales está allí para dar control a todos los sucesos ocurridos con dichas interacciones. La parte del servidor se programa exclusivamente en Java, es más, prohíbe usar código en la parte cliente como HTML y sólo lo permite en raras ocasiones. Está soportado por Internet Explorer, Firefox, Opera, Mozilla, Safari y Nokia 770 PDA Tablet. Es muy completo a nivel de componentes dinámicos (Widgets), teniendo botones, árboles, menús, tabs que soportan imágenes, etc.
6
REQUERIMIENTOS DE INSTALACIÓN Tan sólo hay que descargarse el zip del sitio web. En este zip se encuentra el "JavaDoc", unos programas de demostración preparados para probarlos en un contenedor de Servlet (como, por ejemplo, "JBoss") y además también contiene el código fuente, tanto de los demos como del ThinWire, para poder estudiar su funcionamiento. La teoría dice que ThinWire consiste en tres librerías: • commons-fileupload.jar • retroweaver-rt.jar • thinwire.jar Pero el zip trae dos más que es recomendable añadir también al classpath: • asm-2.2.jar • retroweaver-1.2.3.jar Para empezar a trabajar, solamente es necesario añadir las librerías al classpath y modificar el web.xml para que muestre algo como esto:
<servlet> <servlet-name>thinwire</servlet-name> <description>ThinWire Servlet Engine</description> <servlet-class>thinwire.render.web.WebServlet</servlet-class> <init-param> <param-name>mainClass</param-name> <param-value>thinwire.apps.playground.Main</param-value> </init-param> <init-param> <param-name>styleSheet</param-name> <param-value>DefaultStyle</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>thinwire</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
7
Requisitos del sistema Requisitos del servidor: usted necesitará un contenedor Java Servlet. Requisitos del cliente: Para acceder a una aplicación ThinWire, necesitará un navegador moderno: •
Internet Explorer v5.5 or greater Internet Explorer v5.5 o superior
•
Firefox v1.0 or greater Firefox v1.0 o superior
•
Opera v8.0 or greater Opera v8.0 o superior
•
Safari 2 or greater Safari 2 o más
•
otros buscadores (Camino, Mozilla, Netscape)
Requisitos de conocimiento: •
Conocimiento básico de Java
•
Un conocimiento básico de desarrollo de aplicaciones GUI
Compatibilidad Todos los sistemas operativos de 32-bit MS Windows. Todas las plataformas BSD (FreeBSD / NetBSD / OpenBSD / Apple Mac OS X), Todos los POSIX (Linux / BSD / Unix-como sistemas operativos), OS Portable.
AMBIENTE DE DESARROLLO Cualquier IDE en el que puedas desarrollar aplicaciones en Java.
8
VENTAJAS •
El API es muy completa, ya que incluso contiene ejemplos. Por otro lado, dispone de una aplicación llamada PlayGround en la que podemos ver cada elemento de manera visual y con todas sus características al detalle (estilo, eventos, etc). Además, si se pulsa sobre una de sus propiedades,
automáticamente
nos
mostrará
el
código
fuente
correspondiente en la pestaña Source Code. •
Ofrece soporte a través de unos foros donde resuelven las dudas.
•
La licencia es LGPL, por lo que se puede utilizar tanto en proyectos GPL como en proyectos privativos.
•
Desarrolla exclusivamente en el lado del servidor.
•
Nunca utilice HTML, CSS o JavaScript de nuevo.
•
Programa exclusivamente en Java.
•
Todos los principales navegadores compatibles.
•
Marco para el desarrollo de arquitectura de aplicaciones de Internet sofisticadas (RIA) que utilizan las técnicas de Ajax
•
Implementar en cualquier contenedor de servlets Java (incluyendo Apache Tomcat).
•
También se ejecuta en Nokia 770 Internet Tablet.
•
Aplicaciones interesantes en línea.
•
Rico conjunto de componentes complejos Widget
•
Gran parte del negocio de producción de software que está desarrollando en los sistemas personalizados de crédito (Custom Credit Systems (CCS)) está siendo desarrollado utilizando la tecnología ThinWire.
9
POSIBLES DESVENTAJAS Las restricciones y limitaciones de este componente son las generales de las tecnologías AJAX. • Usabilidad. Hay que concienciar al usuario final acerca de la manera de interactuar con una aplicación web que incorpore tecnología AJAX. En una aplicación AJAX, los botones "Atrás", "Adelante" y "Reload " dejan de tener sentido y el usuario no los deberá utilizar. Mientras en una aplicación web normal el botón "Atrás" les llevará a la última página cargada, en aplicaciones AJAX lo más seguro es que esto no ocurra. Otro problema que se plantea es la agregaciones a los marcadores o favoritos un momento particular de la aplicación. • Tiempos de respuesta. El intervalo entre la petición del usuario y la respuesta del servidor debe tenerse en cuenta durante el desarrollo de aplicaciones AJAX. Sin la información claro al usuario, carga de datos elegante, y una dirección apropiada del objeto XMLHttpRequest los usuarios pueden experimentar esperas en la intefaz de la aplicación web, algo que los usuarios pueden no esperar o comprender. Como soluciones a estas esperas, frecuentemente se recomienda el uso de información visual para comunicar al usuario acerca de la actividad en segundo plano y/o precarga de contenido y datos. En general el impacto potencial de la espera no ha sido "resuelto" por ninguno de los toolkits y frameworks para AJAX de código abierto disponibles hoy en día. • Utilización de javascript. Aunque AJAX no necesita ningún tipo de plug-in para el navegador, requiere que los usuarios tengan el JavaScript activado. Esto se aplica a todos los navegadores que soportan esta tecnología excepto para Microsoft Internet Explorer 6 y anteriores los cuales necesitan también tener el ActiveX activado,
ya que el objeto
XMLHttpRequest está 10
implementado junto con el ActiveX en este navegador. Internet Explorer 7, por otra parte, va a implementar esta interfaz como un objeto JavaScript nativo y por tanto no se va a necesitar ActiveX para que AJAX pueda funcionar con normalidad. Como ocurre con las aplicaciones DHTML, las de AJAX deben de ser probadas rigurosamente para adaptarse a los diferentes navegadores y plataformas. Navegadores que permiten AJAX. Debe tenerse en cuenta que ésta es una lista general, y el soporte de las aplicaciones AJAX dependerá de las características que el navegador permita. Microsoft Internet Explorer para Windows versión 5.0 y superiores, y los navegadores basados en él Navegadores basados en Gecko como Mozilla, Mozilla Firefox, SeaMonkey, Camino, Flock, Epiphany, Galeon y Netscape versión 7.1 y superiores Navegadores con el API KHTML versión 3.2 y superiores implementado, incluyendo Konqueror versión 3.2 y superiores, Apple Safari versión 1.2 y superiores, y el Web Browser for S60 de Nokia tercera generación y posteriores Opera versión 8.0 y superiores, incluyendo Opera Mobile Browser versión 8.0 y superiores. Navegadores que no permiten AJAX • Opera 7 y anteriores. • Microsoft Internet Explorer para Windows versión 4.0 y anteriores. • Microsoft Internet Explorer para Macintosh, todas las versiones. • Navegadores basados en texto como Lynx y Links. • Navegadores para incapacitados visuales (braille).
11
CONCLUSIONES
Thinwire es un Framework (conjunto de librerías - archivos jar en java) para poder desarrollar aplicaciones Web con apariencia de una aplicación de escritorio, utilizando AJAX que es un conjunto de scripts asincrónicos para manejar eventos como el clic del mouse sobre un botón, etc. ThinWire permite crear aplicaciones AJAX sin necesidad de crear o modificar ningún script de AJAX.
12
BIBLIOGRAFÍA
Sitio Oficial: http://www.thinwire.com/ Java doc: http://thinwire.com/api/index.html Sourceforge: http://sourceforge.net/projects/thinwire Manual ThinWire: http://www.developer.com/java/ent/article.php/3627666 Artículo Wikipedia: http://en.wikipedia.org/wiki/ThinWire RIA: http://es.wikipedia.org/wiki/Aplicaciones_de_Internet_Ricas
Ejemplo Hola Mundo: el caso más sencillo para hacerse una idea de cómo funciona Thinwire. https://ame.endesa.es/confluenceame/display/PPAME4JAVA/Ejemplo+Hola+ Mundo
Ejemplo Buscador de Direcciones: una aplicación algo más compleja, que incluye acceso a una base de datos HSQL y emplea Ibatis y Spring. https://ame.endesa.es/confluenceame/display/PPAME4JAVA/Ejemplo+Busca dor+de+Direcciones
13
ANEXOS
Ejemplo Hola Mundo En este sencillo ejemplo, el usuario escribe su nombre en una caja de texto y el programa muestra un cuadro de diĂĄlogo, como si fuera un "alert" tĂpico de "JavaScript", que saluda al usuario con el mensaje "Hola <nombre>!".
Main.java
14
Ejemplo Buscador de Direcciones Como puede verse en la imagen, se trata de una aplicaciรณn encargada de permitir al usuario localizar a un propietario. Ademรกs, se muestra una lista de los diez propietarios que mรกs consumen dentro de la calle elegida.
Demo ThinWire
15