Artículo 2 ECLIPSE y JAVA

10
EL ARCHIPIÉLAGO ECLIPSE (PARTE 2 DE 4) Fecha de la última revisión: 21.05.2014 Miguel Ángel Abián mabian ARROBA aidima PUNTO es "Todo es un plug-in." Eslógan no oficial de la plataforma Eclipse "La música lo es todo. La gente debería morir por ella. La gente está muriendo por todo lo demás, así que por qué no morir por la música. Salva más vidas." Lou Reed, Desde el proscenio 9. Eclipse como IDE La plataforma Eclipse, combinada con el JDT (Java Development Tooling), permite disponer de un IDE (Integrated Development Environment o Entorno de desarrollo integrado) para Java de excelente calidad. Aquí cobra más sentido la frase "Eclipse es un IDE abierto y extensible para todo y, sin embargo, para nada en particular". Por sí misma, la plataforma Eclipse proporciona funcionalidades demasiado genéricas. Solamente cuando se amplia con otras herramientas (el JDT en este caso, que figura en la distribución estándar de Eclipse y que es un plug-in formado, a su vez, por otros plug-ins), permite desarrollar actividades útiles para los usuarios que la vayan a utilizar como IDE. Como IDE de Java, Eclipse posee un editor muy visual con sintaxis coloreada, ofrece compilación incremental de código, un potente depurador (que permite establecer puntos de interrupción, modificar e inspeccionar valores de variables, etc. e incluso depurar código que resida en una máquina remota), un navegador de clases, un gestor de archivos y proyectos... pero no se limita sólo a esto. La versión estándar de Eclipse proporciona también una biblioteca de refactorización de código y una lista de tareas, soporta la integración con JUnit, y suministra un front-end gráfico para Ant, la conocida herramienta de código abierto que forma parte del proyecto Jakarta de Apache. También incluye una herramienta para completar código: el asistente de contenido, encargado de mostrar los métodos y atributos de las clases con las que se está trabajando, ya formen parte de las APIs de Java o de cualquier otra clase en el build path, aunque estén en ficheros JAR. Este asistente también proporciona información de cada uno de los métodos mediante una ventana secundaria contextual (Figura 8), y avisa -cuando se graba la clase o la interfaz- de los errores cometidos al escribir el código (Figura 9). Eclipse incluye también asistentes para la creación de clases e interfaces, y proporciona una integración perfecta con el sistema open source CVS (Concurrent Version System), muy útil para llevar el control de la versiones con las que se trabaja y conocer en todo momento sus respectivas diferencias. CVS (http://www.cvshome.org) es uno de los sistemas de control de código fuente más usados; muchos de los sistemas UNIX lo llevan preinstalado por defecto. A continuación me voy a extender respecto a dos características de Eclipse como IDE para Java: el HotSwap y la compilación incremental automática del código. He elegido éstas, y no otras, por dos razones: a) por motivos de espacio resulta imposible abordar todas las funcionalidades de Eclipse (además, algunas de ellas todavía se hallan en desarrollo o cambio); y b) las mencionadas características reducen el tiempo -y por tanto el coste- de construcción, depuración y distribución del software. Cualquier desarrollador, ya sea profesional, ya sea principiante, puede usarlas para no desperdiciar muchas horas repitiendo tareas mecánicas. Una característica de Eclipse como IDE, poco mencionada pero que encuentro muy útil, es el soporte que ofrece Eclipse a HotSwap (cambio en caliente), una de las novedades del JDK 1.4. Esta propiedad, incluida en la Java Platform Debugger Architecture (Arquitectura del Depurador de la Plataforma Java) de la versión 1.4, permite sustituir código o modificarlo mientras se está ejecutando un programa, sin necesidad de pararlo, realizar las modificaciones, grabarlas, volver a compilar y -finalmente- ejecutar de nuevo. Si utilizamos Eclipse con la versión 1.4 de Java, podemos establecer puntos de interrupción en el código, ejecutarlo, comprobar el estado de las variables en los puntos de interrupción cuando éstos se alcancen, modificar el código o introducir código nuevo, grabar los cambios y continuar la ejecución del programa. Los fallos pueden localizarse y analizarse al vuelo, sin vernos obligados a salir de la aplicación, cambiar el código, recompilar y comenzar una nueva sesión de depuración. Para sacar partido de esta característica -ya existente en Visual Age for Java- no precisamos investigar la documentación de Eclipse con una lupa de 50 aumentos y luz ultravioleta, ni invocar a Cthulhu a la luz de la luna (actividad no del todo infrecuente, por desgracia, entre los que hemos tenido que lidiar con productos de IBM): basta con iniciar una sesión de depuración, sustituir o cambiar el código generador de errores, grabar el archivo y apretar el botón Resume de la barra de herramientas Debug. Automáticamente, el programa sometido a depuración proseguirá su ejecución, teniendo en cuenta los cambios efectuados. Utilizando HotSwap con Eclipse, se reducen los tiempos destinados a depuración, en particular cuando se trabaja con aplicaciones que tardan mucho tiempo en arrancar -como aplicaciones web de cierta complejidad o aplicaciones que accedan a bases de datos remotas- o en las que se tarda mucho en alcanzar los puntos calientes o problemáticos. Otra característica de Eclipse, muy eficiente para reducir los tiempos de depuración y pruebas, es la compilación incremental automática del código. Eclipse -al igual que Visual Age for Java- no cuenta con un menú de compilación pues no es necesario: cada vez que se hacen cambios en uno o más ficheros, el compilador interno de Eclipse recompila todos los ficheros fuente afectados por los cambios. El usuario no tiene que preocuparse de compilar, y puede estar seguro de contar con archivos siempre compilados. En consecuencia, tampoco resulta preciso esperar a la compilación para detectar ciertos errores: Eclipse muestra indicaciones de los errores aparecidos según se van realizando o guardando los cambios. Las ventajas que aportan estas dos propiedades se apreciarán mejor con un ejemplo: consideremos que trabajamos con servlets y JSPs (Java Server Pages), y que hemos decidido usar Eclipse junto con algún servidor web. Debido al ciclo de vida de los servlets, se necesita parar y volver a arrancar el servidor web cada vez que se desea actualizar la clase servlet o recargar el código Java llamado por algún fichero JSP. Durante el desarrollo se cambia a menudo el código de los servlets y de las JSPs. En la mayoría de los IDEs resulta bastante tedioso y largo depurar el código, sobre todo si los problemas se producen sólo cuando el servlet (o la JSP) lleva un Copyright (c) 2003-2014, Miguel Ángel Abián. Este documento puede ser distribuido solo bajo los términos y condiciones de la licencia de Documentación de javaHispano v1.0 o posterior (la última versión se encuentra en http://www.javahispano.org/licencias/). Page 1 of 10 javaHispano. ECLIPSE 21/05/2014 file://F:\ArticuloEclipse\Art_Eclipse_2\Copia de EclipsePart...

description

Segundo artículo de la serie El Archipiélago Eclipse. Esta serie expone qué es Eclipse, cuál es su estructura, en qué se diferencia o se asemeja a otros productos ya existentes, cuáles son sus ventajas e inconvenientes, cuál podría ser su utilidad para los desarrolladores (centrándose en la comunidad Java), qué estrategias empresariales subyacen bajo el proyecto Eclipse y cuál podría ser su futuro.Autor: Miguel Ángel AbiánPublicado originalmente en javaHispano.

Transcript of Artículo 2 ECLIPSE y JAVA

  • EL ARCHIPILAGO ECLIPSE (PARTE 2 DE 4)

    Fecha de la ltima revisin: 21.05.2014

    Miguel ngel Abin mabian ARROBA aidima PUNTO es

    "Todo es un plug-in." Eslgan no oficial de la plataforma Eclipse

    "La msica lo es todo. La gente debera morir por ella. La gente est muriendo por todo lo dems, as que por qu no morir por la msica. Salva ms vidas." Lou Reed, Desde el proscenio

    9. Eclipse como IDE

    La plataforma Eclipse, combinada con el JDT (Java Development Tooling), permite disponer de un IDE (Integrated Development Environment o Entorno de desarrollo integrado) para Java de excelente calidad. Aqu cobra ms sentido la frase "Eclipse es un IDE abierto y extensible para todo y, sin embargo, para nada en particular". Por s misma, la plataforma Eclipse proporciona funcionalidades demasiado genricas. Solamente cuando se amplia con otras herramientas (el JDT en este caso, que figura en la distribucin estndar de Eclipse y que es un plug-in formado, a su vez, por otros plug-ins), permite desarrollar actividades tiles para los usuarios que la vayan a utilizar como IDE.

    Como IDE de Java, Eclipse posee un editor muy visual con sintaxis coloreada, ofrece compilacin incremental de cdigo, un potente depurador (que permite establecer puntos de interrupcin, modificar e inspeccionar valores de variables, etc. e incluso depurar cdigo que resida en una mquina remota), un navegador de clases, un gestor de archivos y proyectos... pero no se limita slo a esto. La versin estndar de Eclipse proporciona tambin una biblioteca de refactorizacin de cdigo y una lista de tareas, soporta la integracin con JUnit, y suministra un front-end grfico para Ant, la conocida herramienta de cdigo abierto que forma parte del proyecto Jakarta de Apache.

    Tambin incluye una herramienta para completar cdigo: el asistente de contenido, encargado de mostrar los mtodos y atributos de las clases con las que se est trabajando, ya formen parte de las APIs de Java o de cualquier otra clase en el build path, aunque estn en ficheros JAR. Este asistente tambin proporciona informacin de cada uno de los mtodos mediante una ventana secundaria contextual (Figura 8), y avisa -cuando se graba la clase o la interfaz- de los errores cometidos al escribir el cdigo (Figura 9). Eclipse incluye tambin asistentes para la creacin de clases e interfaces, y proporciona una integracin perfecta con el sistema open source CVS (Concurrent Version System), muy til para llevar el control de la versiones con las que se trabaja y conocer en todo momento sus respectivas diferencias. CVS (http://www.cvshome.org) es uno de los sistemas de control de cdigo fuente ms usados; muchos de los sistemas UNIX lo llevan preinstalado por defecto.

    A continuacin me voy a extender respecto a dos caractersticas de Eclipse como IDE para Java: el HotSwap y la compilacin incremental automtica del cdigo. He elegido stas, y no otras, por dos razones: a) por motivos de espacio resulta imposible abordar todas las funcionalidades de Eclipse (adems, algunas de ellas todava se hallan en desarrollo o cambio); y b) las mencionadas caractersticas reducen el tiempo -y por tanto el coste- de construccin, depuracin y distribucin del software. Cualquier desarrollador, ya sea profesional, ya sea principiante, puede usarlas para no desperdiciar muchas horas repitiendo tareas mecnicas.

    Una caracterstica de Eclipse como IDE, poco mencionada pero que encuentro muy til, es el soporte que ofrece Eclipse a HotSwap (cambio en caliente), una de las novedades del JDK 1.4. Esta propiedad, incluida en la Java Platform Debugger Architecture (Arquitectura del Depurador de la Plataforma Java) de la versin 1.4, permite sustituir cdigo o modificarlo mientras se est ejecutando un programa, sin necesidad de pararlo, realizar las modificaciones, grabarlas, volver a compilar y -finalmente- ejecutar de nuevo. Si utilizamos Eclipse con la versin 1.4 de Java, podemos establecer puntos de interrupcin en el cdigo, ejecutarlo, comprobar el estado de las variables en los puntos de interrupcin cuando stos se alcancen, modificar el cdigo o introducir cdigo nuevo, grabar los cambios y continuar la ejecucin del programa. Los fallos pueden localizarse y analizarse al vuelo, sin vernos obligados a salir de la aplicacin, cambiar el cdigo, recompilar y comenzar una nueva sesin de depuracin.

    Para sacar partido de esta caracterstica -ya existente en Visual Age for Java- no precisamos investigar la documentacin de Eclipse con una lupa de 50 aumentos y luz ultravioleta, ni invocar a Cthulhu a la luz de la luna (actividad no del todo infrecuente, por desgracia, entre los que hemos tenido que lidiar con productos de IBM): basta con iniciar una sesin de depuracin, sustituir o cambiar el cdigo generador de errores, grabar el archivo y apretar el botn Resume de la barra de herramientas Debug. Automticamente, el programa sometido a depuracin proseguir su ejecucin, teniendo en cuenta los cambios efectuados. Utilizando HotSwap con Eclipse, se reducen los tiempos destinados a depuracin, en particular cuando se trabaja con aplicaciones que tardan mucho tiempo en arrancar -como aplicaciones web de cierta complejidad o aplicaciones que accedan a bases de datos remotas- o en las que se tarda mucho en alcanzar los puntos calientes o problemticos.

    Otra caracterstica de Eclipse, muy eficiente para reducir los tiempos de depuracin y pruebas, es la compilacin incremental automtica del cdigo. Eclipse -al igual que Visual Age for Java- no cuenta con un men de compilacin pues no es necesario: cada vez que se hacen cambios en uno o ms ficheros, el compilador interno de Eclipse recompila todos los ficheros fuente afectados por los cambios. El usuario no tiene que preocuparse de compilar, y puede estar seguro de contar con archivos siempre compilados. En consecuencia, tampoco resulta preciso esperar a la compilacin para detectar ciertos errores: Eclipse muestra indicaciones de los errores aparecidos segn se van realizando o guardando los cambios.

    Las ventajas que aportan estas dos propiedades se apreciarn mejor con un ejemplo: consideremos que trabajamos con servlets y JSPs (Java Server Pages), y que hemos decidido usar Eclipse junto con algn servidor web. Debido al ciclo de vida de los servlets, se necesita parar y volver a arrancar el servidor web cada vez que se desea actualizar la clase servlet o recargar el cdigo Java llamado por algn fichero JSP. Durante el desarrollo se cambia a menudo el cdigo de los servlets y de las JSPs. En la mayora de los IDEs resulta bastante tedioso y largo depurar el cdigo, sobre todo si los problemas se producen slo cuando el servlet (o la JSP) lleva un

    Copyright (c) 2003-2014, Miguel ngel Abin. Este documento puede ser distribuido solo bajo los trminos y condiciones de la licencia de Documentacin de javaHispano v1.0 o posterior (la ltima versin se encuentra en http://www.javahispano.org/licencias/).

    Page 1 of 10javaHispano. ECLIPSE

    21/05/2014file://F:\ArticuloEclipse\Art_Eclipse_2\Copia de EclipsePart...

  • cierto tiempo en ejecucin, o dentro de algn bucle largo, porque hay que parar y reiniciar el servidor web y sus plug-ins. Cuando se cambia en Eclipse un mtodo de un servlet o de un fichero JSP, Eclipse compila incrementalmente solamente el mtodo modificado en la clase, no la clase completa, y la liga en caliente al programa en ejecucin. El ahorro de tiempo es considerable, pues no hay que volver a recrear el estado de ejecucin (del programa) que ocasiona los problemas; puede modificarse repetidamente el servlet o la JSP en ejecucin sin parar y reiniciar el servidor, y se pueden usar todas las caractersticas de Eclipse mientras el servidor est ejecutndose.

    Slo hay un tipo de IDEs libres de defectos o ausencias: el que no existe ms que en las mentes de sus creadores (a condicin de que no sean demasiado pragmticos); lgicamente, Eclipse no constituye una excepcin, y tiene algunas carencias y deficiencias reprochables. Las tres ms relevantes, desde mi punto de vista, se detallan aqu:

    Eclipse no incluye un diseador visual de interfaces grficas (GUI builder).

    Eclipse no incorpora plug-ins para comunicarse con servidores de aplicaciones J2EE.

    La falta de soporte a los Enterprise JavaBeans, a las Java Server Pages y a los servlets es total. No se incluyen asistentes o plug-ins para la edicin o depuracin de estos.

    Tanto las versiones comerciales de Eclipse distribuidas por IBM como los productos profesionales de la compaa que tienen como ncleo la plataforma Eclipse s cuentan con algunas de las caractersticas (o con todas) que faltan en el SDK (Standard Development Kit o Kit de desarrollo estndar) de Eclipse. Existen plug-ins gratuitos que permiten integrar eficazmente Eclipse con servidores open source o free software de aplicaciones, como JBoss, o con servidores propietarios como los de IBM, BEA u Oracle; estos plug-ins permiten arrancar y parar el servidor dentro de Eclipse, as como depurar el cdigo fuente dentro del servidor de aplicaciones. Igualmente, existen plug-ins -algunos comerciales- para el resto de caractersticas que Eclipse no incorpora, basta con ensamblarlos.

    Fig. 8. El asistente de contenido de Eclipse permite seleccionar mtodos y ver una breve descripcin de los mismos.

    Page 2 of 10javaHispano. ECLIPSE

    21/05/2014file://F:\ArticuloEclipse\Art_Eclipse_2\Copia de EclipsePart...

  • Al ser neutral con respecto a la plataforma y al lenguaje, Eclipse puede utilizarse con otros lenguajes adems de Java; basta con usar los plug-ins adecuados. Hasta la fecha [Abril 2003], el consorcio Eclipse.org proporciona plug-ins slo para C/C++ y COBOL, pero existen proyectos independientes ms o menos avanzados (aunque todava no estables o definitivos) para que pueda usarse con C#, PHP, Eiffel, JavaScript, Ruby, Pascal, Phyton y con algunos lenguajes experimentales.

    El IDE de C y C++ se encuentra asignado al subproyecto CDT (C/C++ Development Tools) del proyecto Herramientas Eclipse; y proporciona ya un editor que ofrece sintaxis coloreada y que completa automticamente el cdigo, adems de adjuntar un depurador. Los plug-ins del IDE estn escritos en Java, sin cdigo nativo.

    La prueba evidente de que COBOL no est muerto y de que sigue gozando de una relativa buena salud en el siglo XXI (para desespero de muchos ingenieros de software y programadores: la informtica no miente, nunca nos prometi un jardn de rosas) la aporta el hecho de que se ha desarrollado un IDE para l antes que para lenguajes mucho ms modernos. El IDE de COBOL est tambin escrito en Java, sin cdigo nativo, pero slo puede trabajar en sistemas en los que exista un compilador de COBOL, un depurador y una interfaz puente (bridge interface) que permita a los plug-ins (seis por ahora) invocar al depurador y al compilador COBOL nativo. Inicialmente el IDE de COBOL de Eclipse se basa en un compilador y depurador comercial de COBOL (Fujitsu NetCOBOL 7.0), para el cual existe un puente entre los plug-ins, el compilador y el depurador; este IDE slo funciona, por ahora, sobre Red Hat Linux 7.2.

    Para C# existe un plug-in llamado Improve CSharp, gratuito y bajo licencia CPL, que permite la edicin y compilacin de cdigo C# e incluye un asistente de contenido para las palabras clave del lenguaje. Est disponible para Windows y Linux. Aunque este plug-in funciona correctamente, queda an mucho por hacer; por ahora no se ha implementado ni siquiera la nocin de proyecto C#, y cuando se genera un nuevo fichero C#, Improve CSharp no crea automticamente su estructura, salvo que sea la bsica.

    Para Python disponemos del plug-in Python Editor for Eclipse (Pe4eclcipse), capaz de editar y depurar aplicaciones Phyton. Se encuentra disponible para Windows 95/98/2000, AIX, Linux y SunOs/Solaris. Es una versin pre-alfa y se licencia bajo GNU GPL.

    Para PHP existe -en estado de desarrollo beta- el PHP plug-in for Eclipse, disponible para Windows y Linux bajo la licencia CPL de IBM. Ruby cuenta con el plug-in Ruby Development Tool, independiente del sistema operativo, en estado beta.

    El plug-in JSEditor es un editor de ficheros JavaScript. Muestra las funciones JavaScript en la vista Outline de manera que resulta muy sencillo navegar a travs de los ficheros JavaScript para alcanzar las funciones implementadas; ofrece tambin sintaxis coloreada para funciones, cadenas y comentarios.

    Un lenguaje tan veterano como Pascal tambin encuentra albergue en Eclipse: Pasclipse es un plug-in bajo licencia CPL, disponible para Mac Os, Windows y Linux, que proporciona la posibilidad de integrar cualquier compilador de Pascal basado en lnea de comandos; Pasclipse incluye tambin un formateador de cdigo fuente. Por ahora se halla en fase pre-alfa.

    Para el desarrollo de aplicaciones J2EE hay disponibles muchas soluciones distintas: Lomboz, BEJY, DeployGUI, EASIE JBoss Plugin, EASIE Orion/Oracle 9iAS Plugin, EASIE Weblogic Plugin, EASIE Wepsphere Plugin, Easy Struts, EclipseAxis, EJBBuilder, JBoss-IDE... Una comparacin crtica entre ellos queda fuera del objetivo de este artculo, pero me permito llamar la atencin sobre dos de ellos: Lomboz y JBoss-IDE. Lomboz es un plug-in J2EE que permite construir aplicaciones web con pginas HTML, JSPs y servlets. Incorpora un editor para JSPs con sintaxis coloreada, asistente para cdigo y comprobacin de la sintaxis. Varios asistentes y generadores de cdigo facilitan el trabajo con EJBs, y cuenta con la interesante caracterstica de permitir la depuracin de cdigo JSP y EJB desde el depurador de Eclipse. Lomboz es gratuito para fines no comerciales. Por otro lado, JBoss-IDE ofrece un IDE para controlar el conocido servidor JBoss desde el Workspace de Eclipse; se distribuye bajo licencia CPL.

    Para XML existen numerosos plug-ins comerciales y open source: eclipsetydy, Improve XSLT, JMXLEditor, MetaCoder ...

    Para el anlisis y diseo de software mediante UML ya hay disponibles varios plug-ins open source para la plataforma Eclipse: EMF,

    Fig. 9. Al guardar una clase, Eclipse muestra los errores cometidos en el cdigo.

    Page 3 of 10javaHispano. ECLIPSE

    21/05/2014file://F:\ArticuloEclipse\Art_Eclipse_2\Copia de EclipsePart...

  • magicdraw, OMONDO y Slime UML. Ofrecen, en general, las utilidades habituales: generacin de diagramas UML, ingeniera inversa, generacin de cdigo a partir de los diagramas de clases, etctera.

    10. Eclipse y Visual Age for Java: una sensacin dj v, pero slo una sensacin. El reemplazo generacional llega a IBM. Cmo encaja Eclipse en la nueva generacin de herramientas de IBM?

    Los desarrolladores que hayan trabajado con Visual Age for Java notarn algunas similitudes al trabajar con Eclipse. Muchos de los asistentes son iguales y tambin algunos botones (como el del hombre que corre o el que muestra un insecto; tienen asociadas las acciones de iniciar la ejecucin del programa y arrancar el depurador, respectivamente).

    Internamente, sin embargo, hay muchas diferencias. La lista sera muy larga, pero las ms relevantes son stas:

    Eclipse se basa en ficheros individuales, muchos de los cuales tienen formato ASCII y, por tanto, son accesibles a otras herramientas. En Eclipse, IBM ha abandonado el repository propietario (EMSRV - ENVY) que us para Visual Age for Java (tal y como se ha visto en el apartado anterior, Eclipse usa CVS de forma estndar). Para ejecutar o distribuir el cdigo fuente en VAJ, debe exportarse el cdigo al sistema de ficheros de la mquina donde vaya a ser utilizado. Nadie que manejara el repository propietario lo echar en falta; su insidiosa tendencia a corromperse era uno de los mayores problemas de los usuarios de VAJ, pero no el nico: su excesivo consumo de espacio en el disco duro, y su complejo sistema de mantenimiento y administracin tampoco contribuyeron a hacerle popular entre los desarrolladores. Una confesin personal: el nico momento en que el repository de VAJ me dio una alegra fue cuando me dijeron que ya no iba a necesitar usarlo.

    Eclipse es mucho ms configurable para diferentes mquinas virtuales Java que VAJ. Visual Age for Java emplea una mquina virtual llamada UVM (Universal Virtual Machine, Mquina Virtual Universal) que permite ejecutar cdigo Java y cdigo SmallTalk. La UVM es propiedad de IBM y el usuario de VAJ no puede utilizar ninguna otra mquina virtual. Eclipse, en contraste, permite elegir para la ejecucin la mquina virtual Java que se desee, desde la versin 1.1.7 del JRE a la versin 1.4, sin excluir mquinas virtuales hechas a medida, como la J9 VM de IBM para dispositivos embebidos. Esta posibilidad, ausente en VAJ, resulta muy ventajosa para los programadores: pueden elegir el JRE que vaya a emplear el usuario final, sin depender de las actualizaciones, por parte de IBM, de la UVM. Existe un pequeo matiz de carcter tcnico: Eclipse usa un compilador interno, al igual que VAJ, pero el conjunto de clases contra el cual se compila el cdigo fuente es el establecido por el usuario en Preferences/Installed JREs.

    VAJ permite la generacin y distribucin de Enterprise JavaBeans, Java Server Pages y servlets, incluye asistentes tanto para la generacin como para la distribucin de EJBs, y soporta de serie la plataforma J2EE. Por citar ejemplos concretos, la ltima versin de VAJ incluye un Entorno de pruebas WebSphere (WebSphere Test Environment), un servidor EJB, un depurador integrado para servlets, EJBs y JavaBeans, y un monitor de ejecucin para JSPs. Todo lo necesario, en definitiva, para desarrollar aplicaciones J2EE dentro de un nico entorno de desarrollo integrado.

    [Nota tcnica: Un repository (almacn de datos) en programacin es, en esencia, una base de datos que almacena cdigo y material complementario (documentacin, imgenes, etc.). Cuando se usa un repository, el cdigo fuente con el que se trabaja se almacena en la base de datos y se extrae de l cuando se necesita.El cdigo se almacena en el repository, no en ficheros. Este sistema de almacenamiento ofrece ventajas para los lenguajes orientados a objetos, pues resulta ms fcil seguir la pista a las clases, con sus relaciones de herencia, en una base de datos. Adems, la estructura de una base de datos se muestra idnea para llevar un control de las versiones y para la programacin en equipo. Al ser el repository una base de datos se necesita configurarlo y mantenerlo a lo largo del tiempo.]

    La actual generacin de herramientas de desarrollo de IBM (WebSphere Studio Application Developer, Websphere Studio Site Developer, WebSphere Studio Enterprise Developer, Websphere Studio Workbench, etc.) se basa en Java, al igual que los productos de la familia Visual Age se basaban en Smalltalk. IBM est reemplazando, tanto interna como externamente, sus productos de la familia Visual Age y WebSphere Studio por los nuevos productos basados en Eclipse. IBM ha abandonado ya Visual Age for Java en favor de sus nuevos productos basados en Eclipse; no habr nuevas versiones de VAJ, aunque continuar dndole soporte durante un tiempo.

    Los motivos de esta nueva estrategia basada en Eclipse obedecen a una suerte de relevo generacional tecnolgico: Visual Age for Java y Websphere Studio se crearon en una poca en la que las pginas web eran pginas HTML servidas por CGIs (Common Gateways Interfaces). Hablo de poca aunque s que no han pasado muchos aos, pero si comparsemos las tecnologas actuales con las de hace diez o veinte aos, parecera que stas ltimas han salido de otra poca, casi de una Edad Media incrustada en el siglo XX. En aquel entonces, gracias a los applets, Java alcanz una gran popularidad en el lado del cliente. El panorama actual apenas guarda parecido con el de hace diez aos: las pginas web actuales incluyen vdeo de alta resolucin, animaciones, sonidos, HTML dinmico... Las redes de fibra ptica, extendidas ahora por todo el mundo, permiten olvidarse de las limitaciones de una Internet que daba sus primeros balbuceos, y posibilitan la inclusin de recursos multimedia, no slo de texto e imgenes. Tambin para Java ha pasado el tiempo: los applets han cado en desuso, y el lenguaje, ya maduro, se ha hecho fuerte en el lado del servidor. La plataforma J2EE, que comenz a existir cuando ya se haban lanzado las primeras versiones de Visual Age y WebSphere Studio, ha crecido mucho y en direcciones muy distintas: servlets, JSPs, EJBs, XML, etc.

    A toda herramienta, como a toda tecnologa, le llega un momento en que intentar seguir expandindola resulta similar a pretender aumentar el volumen cerebral de un dinosaurio condenado a la extincin. IBM, consciente de que no hay tecnologa que cien aos dure, decidi -tal como se vio en la primera parte de este artculo- abandonar Visual Age for Java y WebSphere Studio, y construy la plataforma Eclipse, escrita en Java, como base para su nueva generacin de herramientas.

    WebSphere Studio Site Developer y WebSphere Studio Application Developer han sido los primeros productos de la nueva familia WebSphere Studio que han visto la luz; forman parte de la nueva generacin de herramientas de desarrollo de aplicaciones web construida sobre Eclipse. IBM distribuye su propia versin comercial de Eclipse (WebSphere Studio Workbench), que acta como base de la nueva familia WebSphere Studio y de las futuras herramientas middleware de IBM. WebSphere Studio Site Developer permite el desarrollo de sitios web dinmicos (con servlets, XML, JSPs, servicios Web, etc.)

    WebSphere Studio Application Developer va varios pasos por delante del Site Developer: permite el desarrollo de aplicaciones J2EE y de bases de datos en un entorno de programacin en equipo. Incluye todas las funciones del Site Developer y permite la creacin y distribucin de EJBs, incorpora asistentes para conexiones a bases de datos y permite usar el servidor de aplicaciones de IBM (WebSphere Application Server) para efectuar pruebas. Dar una descripcin exacta de todas sus capacidades escapa a los propsitos

    Page 4 of 10javaHispano. ECLIPSE

    21/05/2014file://F:\ArticuloEclipse\Art_Eclipse_2\Copia de EclipsePart...

  • de este artculo, pero el repertorio de asistentes para XML, para la creacin de bases de datos, para la implementacin de consultas a bases de datos y para J2EE deslumbra por su extensin. WS Application Developer es un producto hecho por y para profesionales, adems de ser una de las herramientas ms completas que existen en el mercado.

    Eclipse (en su versin comercial WS Workbench) constituye el ncleo de estas herramientas. Aunque WS Application Developer es una herramienta excelente, todas sus virtudes y funcionalidades derivan de una misma base: Eclipse. Cualquier programador o programadora puede aadir al SDK estndar de Eclipse los plug-ins -propietarios, open source o free software- que desee, y obtener un producto final comparable a WS Application Developer (o incluso ms adaptado a sus necesidades). Los productos comerciales de IBM son derivaciones concretas de Eclipse, pero no tienen virtudes intrnsecas que no puedan obtenerse ensamblando plug-ins. IBM cuenta con la baza de proporcionar asesoramiento, asistencia tcnica y soluciones personalizadas; no se limita a proporcionar el producto, pero sus herramientas basadas en Eclipse no tienen ninguna bendicin papal: forman parte de la mirada de productos que cualquiera puede formar alrededor del archipilago Eclipse.

    La obsesin de IBM por el software open source es demasiado racional para figurar dentro del ndice de Introduccin a la Psiquiatra Moderna, en algn lugar entre Obsesiones-compulsiones y Paranoia. El fracaso de Eclipse implicara el fracaso de toda la nueva gama de productos de IBM basados en l, y el adis definitivo a su permanencia como lder en el mercado de herramientas de desarrollo. La competencia es demasiado fuerte y competitiva como para que IBM pueda conseguir una segunda oportunidad; Eclipse no forma parte de una de sus estrategias: es la Estrategia. Honradamente, no lanzar Eclipse bajo la licencia open source s hubiera merecido estar en el ndice de Introduccin a la Psiquiatra Moderna, por algn lugar entre Lo-tuyo-no-son-los-negocios (Sndrome de) y Narcisismo. Esta opcin hubiera entraado el riesgo -tremendamente real- de quedarse descolgado del proceso de creacin de herramientas, proceso cada vez ms comunitario, y de llegar solamente a la porcin de desarrolladores que ya utilizaban productos de IBM.

    Los cuarenta millones de dlares invertidos en Eclipse acabarn dando buenos dividendos a IBM; probablemente no obtendr de ellos la rentabilidad que algunos y algunas consiguieron con las punto com antes del hundimiento del mercado -al ms puro estilo Titanic-, un hundimiento tan previsible e inevitable como la implosin del boom inmobiliario en Japn durante la dcada de los noventa, pero conseguir mayor rentabilidad que la que proporcionan los bonos cupn cero del Tesoro de los Estados Unidos. Si IBM no pensara as, hubiera invertido el dinero en estos bonos y se hubiera limitado a esperar mejores tiempos antes de sacar al mercado su nueva generacin de herramientas de desarrollo. Explicar a los gestores de fondos de pensiones estadounidenses, con cientos de millones de dlares invertidos en acciones de blue chips, que IBM dona dinero por puro y sincero amor al desarrollo y progreso del software hubiera sido incmodo, cuanto menos. Los gestores hubieran sentido en sus odos las mismas punzadas de dolor, aparejadas a la sensacin comn de que alguien les estaba hurgando en los bolsillos, que sufrieron los ejecutivos de RCA cuando Lou Reed les dio a escuchar Metal Machine Music (intentaron sacarlo en la serie clsica, pero el bueno de Lou se opuso, arguyendo que hubiera sido pretencioso). Cuando las empresas punto com estaban en la cspide -dislumbrada, alcanzada y pronto olvidada, como un mal sueo-, hasta las sillas suban en bolsa, pero no las donaciones en las que no se vea recompensa, presente o futura, alguna. Habr que esperar... y ver.

    11. Eclipse y su nfasis en la calidad del software

    Tal y como se coment en el apartado 2, una herramienta de desarrollo integrado debera ayudar a los desarrolladores en todas las etapas del ciclo de vida del software. Rational Software (miembro de la junta directiva de Eclipse.org y cuya adquisicin por parte de IBM finaliz en enero de este ao) tiene su metodologa RUP (Rational Unified Process), un proceso unificado de desarrollo de software que utiliza UML y se sostiene sobre tres ideas bsicas: casos de uso, arquitectura y desarrollo iterativo e incremental. De acuerdo con la metodologa RUP, el proceso unificado se repite a lo largo de una serie de ciclos que constituyen la vida de un sistema software. Cada ciclo debe tener los siguientes modelos:

    Un modelo de casos de uso

    Un modelo de anlisis

    Fig. 10. Eclipse dentro de la familia WebSphere de IBM

    Page 5 of 10javaHispano. ECLIPSE

    21/05/2014file://F:\ArticuloEclipse\Art_Eclipse_2\Copia de EclipsePart...

  • Un modelo de diseo

    Un modelo de implementacin

    Un modelo de despliegue o distribucin

    Un modelo de prueba

    En consecuencia, los flujos de trabajo de cada ciclo, segn esta metodologa, son cinco: requisitos, anlisis, diseo, implementacin y prueba.

    Independientemente de la metodologa seguida, los cinco flujos de trabajo expuestos suelen formar parte del desarrollo de software. Desde luego, Rational Software tiene su propia herramienta de desarrollo de acuerdo con RUP, pero resulta difcil encontrar IDEs que ayuden a los desarrolladores en todos los flujos de trabajo. Por ello, resulta fundamental la extensibilidad de los productos. En ese aspecto, Eclipse -debido a su arquitectura abierta- permite acoplar mediante plug-ins tantas herramientas de apoyo (open source o comerciales) como el desarrollador necesite, de manera que ste, independientemente de la metodologa concreta usada, pueda conseguir con Eclipse su propio IDE, personalizado a sus necesidades. Por ejemplo, los desarrolladores pueden incorporar a Eclipse herramientas de distintos vendedores (un IDE no estndar, una herramienta de modelado UML, un framework de pruebas como JUnit, un editor de XML o de HTML, una herramienta como Ant, etc.) y beneficiarse as de una apariencia comn y un control integrado para todas las herramientas.

    De hecho, la versin estndar de Eclipse incluye una biblioteca de refactorizacin de cdigo Java, utilizable a travs de un sencillo interfaz para el usuario. Erich Gamma, uno de los grandes especialistas del momento en patrones y refactorizacin, forma parte del proyecto Eclipse.

    Eclipse rompe, posiblemente debido a la participacin de Rational Software y de TogetherSoft, con una larga -y justificada- tradicin de que las herramientas de desarrollo de software aceleran el desarrollo de software al precio de conseguir diseos pobres, poco escalables y que suelen requerir un mantenimiento excesivo cuando los sistemas van creciendo, al permitir preocuparse tanto de la calidad del software como de su diseo, y no nicamente de la productividad inmediata.

    Otras herramientas Java (JBuilder 7 y 8, IDEA de Intellij, por ejemplo) tambin proporcionan soporte a la refactorizacin del software, pero -por ahora- slo Eclipse muestra tan claramente la importancia que los patrones y la refactorizacin han tenido en su propia construccin y slo Eclipse, por su arquitectura abierta, permite integrar tantas herramientas para mejorar la calidad del software, facilitar los procesos de anlisis y diseo, y documentar estas etapas.

    12. La estructura de la plataforma Eclipse: una vista subterrnea

    Un concepto fundamental de Eclipse, necesario para comprender lo que sigue, es el de recurso. En Eclipse, un recurso bsico es simplemente un fichero ASCII que contiene cdigo fuente para un lenguaje de programacin.

    La plataforma Eclipse se compone de 6 grandes componentes:

    1) El Platform runtime, que se encarga de gestionar los recursos y los plug-ins, adems de permitir el arranque de la plataforma. Cuando se arranca Eclipse, este componente se encarga de buscar los ficheros de manifiestos de los plug-ins (que son archivos XML que describen los plug-ins), y carga esta informacin en un registro. Solamente cuando se requiere por primera vez un plug-in, el Platform runtime lo ejecuta; este componente descubre de forma dinmica plug-ins durante el tiempo de ejecucin. Grosso modo, el Platform runtime define los puntos de extensin y el modelo de plug-ins.

    2) El Workspace (Espacio de trabajo) permite gestionar el acceso a ficheros tanto a alto como a bajo nivel. Acta como un componente que encapsulara la gestin de archivos, permitiendo que los plug-ins utilicen sus mtodos sin tener que trabajar directamente con distintos sistemas de archivos, segn la plataforma que se utilice.

    3) El Workbench (Banco de trabajo) se encarga de la presentacin de la informacin al usuario y de la gestin del dilogo con el mismo. Proporciona la interfaz grfica de Eclipse y constituye uno de sus puntos ms cuidados y atractivos. Resulta difcil no dejarse seducir por su apariencia, aunque uno se haya curtido en un entorno de lnea de comandos y haya jurado no mirar de reojo, bajo pena de extirpacin ocular, a cualquier cosa similar a una ventana en un monitor. Desde el punto de vista del usuario una ventana del Workbench consiste en vistas y editores. Tanto la API como la implementacin del Workbench se han realizado mediante SWT y JFace.

    El SWT se explicar ms adelante, pero puede adelantarse que es -fundamentalmente- una biblioteca encargada de proporcionar los componentes grficos (botones, listas, cuadros de texto, etc.), y que permite obtener una interfaz grfica muy integrada con la plataforma nativa bajo la cual se use Eclipse. Por qu utilizar una nueva biblioteca grfica? La pregunta se contestar en la prxima entrega del artculo, pero aqu va un adelanto: porque esta biblioteca permite crear interfaces de usuario nativas, utilizando las capacidades grficas del sistema operativo y del sistema grfico de ventanas que se est usando, a cambio de ciertos inconvenientes que ya veremos. JFace proporciona una interfaz de ms alto nivel que la del SWT, basada en los componentes SWT, y lleva incorporadas muchas facilidades para usar con los plug-ins (preferencias, asistentes, etc.), adems de definir frameworks muy tiles, como el modelo MVC (Model View Controller).

    4) El componente de ayuda (Help) permite a los plug-ins proporcionar documentacin HTML que pueda ser presentada contextualmente por el Workbench.

    5) El componente de equipo (Team o Team support) define un modelo de programacin en equipo para crear y mantener un registro de las versiones de las aplicaciones que se desarrollen. Este componente permite que diferentes plug-ins de repositorys (vase la nota tcnica del Apdo. 10) convivan dentro de la plataforma. Asimismo, aade las vistas que el usuario necesite para interaccionar con cualquier sistema de control de versiones (si hay alguno) que se est usando. Tal y como se ha mencionado ya, Eclipse incluye de forma estndar un plug-in CVS, pero pueden aadirse repositorys como ChangeMan (Serena), ClearCase (Rational), CM Synergy (Telelogic), PVCS (Merant) y StarTeam (Starbase). Independientemente del VCM (Version Control System) que se use, la interfaz de usuario no cambia.

    Page 6 of 10javaHispano. ECLIPSE

    21/05/2014file://F:\ArticuloEclipse\Art_Eclipse_2\Copia de EclipsePart...

  • 6) El componente de depuracin (Debug) proporciona un modelo genrico de depuracin, en el que se permiten expresiones, puntos de interrupcin, acciones habituales de depuracin, etc., junto a una interfaz grfica genrica de depuracin. Cualquier plug-in puede aprovechar los mecanismos de depuracin que proporciona este componente.

    El Workspace o espacio de trabajo refleja el estado actual de los proyectos locales, con su cdigo fuente y sus ficheros compilados, que estn en la memoria activa. Al cerrar Eclipse se guarda el estado actual del Workspace local, de modo que cuando se reinicia Eclipse vuelve al estado en que se cerr.

    El Workbench o banco de trabajo proporciona lo siguiente:

    Editores: Un editor es un componente que permite interaccionar con los contenidos de un fichero (no slo con el cdigo fuente, sino tambin con su fichero XML asociado, sus propiedades, etc.) y modificarlos.

    Vistas: Una vista proporciona metadatos sobre el recurso que se haya seleccionado: organizacin de un recurso dentro de un paquete o proyecto, estado de la compilacin, etc.

    Perspectivas: Una perspectiva representa una configuracin de editores y vistas relacionadas, al igual que opciones de men y de compilacin. Hay tres perspectivas estndar en Eclipse (CVS, Install/Update y Resource), pero usando plug-ins pueden aadirse otras nuevas. Al cambiar una perspectiva por otra se muestran diferentes editores, vistas y opciones de men.

    Fig. 11. Arquitectura de la plataforma Eclipse. Extrado de la documentacin oficial de Eclipse.

    Page 7 of 10javaHispano. ECLIPSE

    21/05/2014file://F:\ArticuloEclipse\Art_Eclipse_2\Copia de EclipsePart...

  • El nico de los seis componentes de Eclipse que no es un plug-in es el Platform runtime. Los otros cinco componentes son plug-ins: adondequiera que dirijamos la mirada divisaremos plug-ins flotando en las apacibles aguas del archipilago Eclipse. Cualquier plug-in susceptible de incorporarse a Eclipse se integra con ste de la misma manera que cualesquiera de los plug-ins que incluye de forma estndar. El Workbench y el Workspace son dos plug-ins indispensables porque proporcionan puntos de extensin usados por casi todos los plug-ins, pero su funcionamiento no difiere del de otros plug-ins.

    13. AWT y Swing: Repaso de los hechos

    Para entender por qu IBM opt por utilizar el SWT (Standard Widget Toolkit) en Eclipse conviene repasar, muy rpidamente, las limitaciones del AWT y Swing.

    El AWT (Advanced Widget Toolkit) de Java utiliza widgets (componentes grficos de la interfaz de usuario) nativos para los widgets que existen en todas las plataformas (botones, etiquetas, etc.), pero olvida necesariamente aquellos componentes que existen en una plataforma pero no en otras. Por ejemplo, los widgets tipo rbol (tree), tabla (table) y ToolBar, que son widgets nativos de Windows, no estn incluidos en el AWT, pues no hay widgets rbol y tabla en plataformas como Motif.

    Es importante comprender, al menos someramente, la estructura del AWT para comprender el distinto enfoque que aporta el SWT de Eclipse. El AWT usa una arquitectura peer: Cada componente AWT crea un objeto paralelo llamado su peer (igual). Los objetos peer implementan interfaces en el paquete Java java.awt.peer. Por ejemplo, cada java.awt.Label usa un objeto peer que implementa java.awt.peer.LabelPeer. A cada componente AWT le corresponde una clase peer escrita en el cdigo nativo del sistema (C habitualmente), por lo que los componentes AWT son, por construccin, dependientes de la plataforma. Cada widget del AWT no se dibuja a s mismo, sino que es su objeto peer asociado (y nativo) el que interacciona con los widgets nativos de la API grfica del sistema operativo subyacente, que se encargan de dibujar y controlar los eventos del widget AWT.

    En la implementacin de Motif -un buen ejemplo para entender la arquitectura peer del AWT-, a cada clase AWT le corresponde un fichero C y cada mtodo nativo AWT cuenta con una implementacin en C, con el cdigo comn almacenado en ficheros separados.

    La encapsulacin que hace el AWT de los widgets nativos de la API grfica del sistema operativo es totalmente opaca: el cdigo que interacciona con los widgets nativos de la plataforma est escrito en C y no es accesible directamente.

    Fig. 12. Ventana del Workbench y sus elementos. Traducido de la documentacin oficial de Eclipse.

    Page 8 of 10javaHispano. ECLIPSE

    21/05/2014file://F:\ArticuloEclipse\Art_Eclipse_2\Copia de EclipsePart...

  • El AWT cuenta con muchos inconvenientes: la lentitud (muy notable cuando se usan simultneamente muchos componentes), la imposibilidad de cambiar esttica o dinmicamente la apariencia de los componentes, su dependencia de la plataforma y su limitacin, por decisiones de diseo, a permitir trabajar slo con un pequeo conjunto de componentes comunes a todas las plataformas. Adems, no resulta adecuado para construir aplicaciones profesionales, pues da un aire un tanto naf a las aplicaciones. Sin embargo, los componentes AWT fueron los responsables de la rpida expansin inicial de Java, al ser muy sencillos de usar. A veces, menos resulta ms.

    Swing, que fue introducido con Java 1.2, y en cuyo desarrollo participaron Netscape e IBM, utiliza la interfaz entre el sistema grfico de ventanas del sistema operativo subyacente y los componentes GUI de Java que proporciona el AWT, pero nicamente la interfaz. Es decir, no usa los componentes AWT para -mediante los objetos peer- manipular los widgets nativos, sino que utiliza sus propios componentes, escritos en Java. Los desarrolladores de Sun reescribieron en Java, desde cero, todos los widgets para Swing. Al estar escritos en Java, los componentes Swing son independientes del sistema de ventanas nativo y pueden ejecutarse en cualquier plataforma cuyo sistema de ventanas admita AWT.

    Swing, a diferencia del AWT, permite cambiar rpida y fcilmente el aspecto y la sensacin (Look&Feel) de un componente o grupo de componentes. El aspecto y sensacin de una aplicacin consiste en el modo en que se presenta al usuario (su aspecto) y en la forma en que permite que el usuario interaccione con ella (su sensacin). Swing incorpora los aspectos y sensaciones Basic, Mac, Motif, Windows, Organic y Metal. A diferencia tambin del AWT, Swing tiene sus propias implementaciones Java de los widgets y no depende de los widgets nativos, por lo que permite una mayor flexibilidad.

    Las principales desventajas de Swing son:

    Alto consumo de recursos del sistema.

    Lentitud con respecto a las aplicaciones nativas.

    Tamao muy grande de la biblioteca.

    Diferencias perceptibles en aspecto y sensacin con respecto a las aplicaciones nativas y ausencia de soporte de caractersticas nativas.

    Con respecto al ltimo punto, la posibilidad de usar el L&F ms adecuado para la plataforma que se est usando permite realizar aplicaciones Java que se parezcan bastante a las nativas, pero suelen haber diferencias importantes en cuanto a la sensacin (el modo en que se gestiona la interaccin del usuario). A veces da la sensacin de que Sun se olvid de los eventos nativos y defini los suyos propios, al margen de la realidad de cada plataforma, lo que ocasiona comportamientos inesperados tanto para usuarios como para desarrolladores. Existe tambin una dificultad adicional: al usar en una aplicacin un L&F similar al de una plataforma dada, Swing debe simular el L&F, con el consumo adicional de recursos, la lentitud y, en ocasiones, el comportamiento anmalo con respecto a las interfaces nativas que conlleva esta simulacin.

    En la versin 1.4 de Java se han reescrito los algoritmos grficos, con lo que Swing corre ms rpido que en versiones anteriores, pero dista mucho, salvo en condiciones muy especficas, de igualar en velocidad a las aplicaciones nativas. El consumo de recursos (en particular de memoria) que hace Swing en esta versin sigue siendo alto, como se puede notar si se ejecutan simultneamente varias aplicaciones con muchos componentes Swing.

    Estn previstas nuevos L&F para Java 1.4.2 (tipo Windows XP y GTK) y Java 1.5 (un nuevo L&F, actual y moderno, para todas las plataformas, similar al L&F Metal de Swing), pero el futuro -a la vista de los resultados anteriores- no se presagia excesivamente prometedor.

    [Fin de la segunda parte]

    Fig. 13. El AWT de Java. Utiliza una arquitectura "peer", que el SWT de Eclipse evita.

    Page 9 of 10javaHispano. ECLIPSE

    21/05/2014file://F:\ArticuloEclipse\Art_Eclipse_2\Copia de EclipsePart...

  • Acerca del autor

    Miguel ngel Abin Miguel ngel Abin naci en Soria. Obtuvo la suficiencia investigadora en el Dpto. de Fsica Aplicada de la Universidad de Valencia con una tesina sobre electromagnetismo. Realiz varios cursos de doctorado relacionados con electromagnetismo, electrnica, semiconductores y cristales fotnicos. Ha recibido becas del IMPIVA (Instituto de la Mediana y Pequea Industria Valenciana) y de la Universidad Politcnica de Valencia. Curs un Mster estadounidense en UML y Java y otro sobre tecnologas de Internet/Intranet. Se incorpor en 1998 a AIDIMA, donde ha participado como investigador en 24 proyectos de investigacin nacionales e internacionales relacionados con la Web semntica, tecnologas de la informacin, madera en construccin, biosensrica, bioelectrnica, telecomunicaciones, visin artificial; as como en la Red de Excelencia de la Comisin Europea INTEROP 2003-2007. Algunos de los proyectos europeos relacionados con las tecnologas semnticas en los que ha participado son ATHENA y STASIS (http://www.stasis-project.net/). El ao 2006 estuvo cuatro meses como investigador invitado en el departamento Lehrstuhl fr Messsystem und Sensortechnik de la Universidad Politcnica de Munich (TUM), donde colabor en el desarrollo de nuevos mtodos para la deteccin de defectos en superficies acabadas y en el diseo e implementacin de sistemas distribuidos de sensores para el sector del automvil y de energas renovables. En 2007 recibi un premio BANCAJA-UPV por un proyecto relacionado con la calidad interna de la madera. En 2009 recibi el premio internacional Schweighofer Innovation Prize -el premio ms prestigioso en el sector forestal y de la madera- por su aportacin al desarrollo de nuevas tecnologas de evaluacin no destructiva de la madera en construccin. Actualmente es Responsable del Departamento de Tecnologa y Biotecnologa de la Madera y del rea de Construccin de Madera. Es coautor de 7 libros y guas tcnicas relacionadas con el uso de la madera en la construccin y la visin artificial. Tambin ha publicado varios artculos cientficos en revistas como IEEE Transactions on Microwave Theory and Techniques y Wood Science and Technology. Ha participado como ponente en congresos y conferencias como European Congress on Computational Methods in Applied Sciences and Engineering, IEEE International Conference on Multisensor Fusion and Integration for Intelligent Systems, International Conference on Space Structures (IABSE-IASS) y en reuniones COST (European Cooperation in Science and Technology). Ha publicado ms de 22 artculos tcnicos en revistas sectoriales y tcnicas. Es autor o coautor de 8 patentes, algunas de ellas en trmite. Tres de ellas corresponden a dispositivos y mtodos para detectar la biodegradacin de la madera en construccin. Actualmente, entre otros proyectos como SHBUILDINGS, WOODTECH, WOODRUB y CELLUWOOD, ha trabajado en SEMCONCEPT, un proyecto de I+D+i para aplicar tecnologas semnticas (ontologas, buscadores semnticos) en el diseo conceptual de productos industriales. Sus intereses actuales son la evolucin de la programacin orientada a objetos, Java, la Web semntica y sus tecnologas, la arquitectura orgnica, el surrealismo y Pars, siempre Pars.

    Page 10 of 10javaHispano. ECLIPSE

    21/05/2014file://F:\ArticuloEclipse\Art_Eclipse_2\Copia de EclipsePart...