Eclipse es una plataforma diseñada en su totalidad para construir un conjunto de herramientas integradas para el desarrollo Web y de aplicaciones. En cuanto a diseño, la plataforma en sí no proporciona grandes ventajas para el usuario final. El valor de la plataforma está en que estimula el desarrollo rápido de características integradas basándose en un modelo de conectores.
Eclipse proporciona un modelo de interfaz de usuario (UI) común para trabajar con las herramientas. Está diseñada para ejecutarse en múltiples sistemas operativos, a la vez que proporciona una sólida integración con cada OS subyacente. Los conectores pueden programar para las API portables de Eclipse y ejecutarse sin modificaciones en cualquiera de los sistemas operativos soportados.
En el núcleo de Eclipse hay una arquitectura que permite descubrir, cargar y ejecutar conectores de manera dinámica. La plataforma maneja la logística de la búsqueda y ejecución del código adecuado. La UI de la plataforma suministra un modelo de navegación de usuario estándar. De esta manera, cada conector se puede centrar en la realización óptima de un pequeño número de tareas.¿Qué tipo de tareas?Definir, probar, crear animaciones, publicar, compilar, depurar, crear diagramas... el límite lo pone usted.
La plataforma Eclipse define una arquitectura abierta, en la que cada equipo de desarrollo de conectores puede centrarse en su especialidad. Dejemos que los expertos en repositorios construyan los componentes de fondo y que los expertos en utilización construyan herramientas para el usuario final. Si la plataforma está bien diseñada, se pueden añadir nuevas características y nuevos niveles de integración significativos sin que las demás herramientas queden afectadas.
La plataforma Eclipse utiliza el modelo de un entorno de trabajo común para integrar las herramientas desde el punto de vista del usuario final. Las herramientas que el usuario desarrolla pueden conectarse al entorno de trabajo mediante ganchos bien definidos llamados puntos de extensión.
La plataforma en sí está construida en capas de conectores, cada una de las cuales define extensiones para los puntos de extensión de los conectores de bajo nivel, que a su vez definen sus propios puntos de extensión para una personalización más detallada. Este modelo de extensión permite a los desarrolladores de conectores añadir diversas funciones a la plataforma básica de herramientas. Los artefactos de cada herramienta, como son los archivos y otros datos, se coordinan mediante un modelo de recursos comunes de la plataforma.
La plataforma proporciona a los usuarios un procedimiento común para trabajar con las herramientas, así como una gestión integrada de los recursos que crean con los conectores.
Los desarrolladores de conectores también obtienen ventajas de esta arquitectura. La plataforma gestiona la complejidad de diferentes entornos de tiempo de ejecución, como sistemas operativos distintos o entornos de servidores de trabajo en grupo. Los desarrolladores de conectores pueden centrarse en sus tareas específicas en lugar de estar pendientes de estos aspectos de integración.
La plataforma Eclipse está estructurada en forma de subsistemas implementados en uno o más conectores. Los subsistemas están construidos tomando como base un pequeño motor de tiempo de ejecución. La figura siguiente muestra una vista simplificada.
Los conectores que forman un subsistema definen puntos de extensión para añadir un determinado comportamiento a la plataforma. La tabla siguiente describe los principales componentes de tiempo de ejecución de la plataforma, que se han implementado como uno o más conectores.
Entorno de ejecución de la plataforma |
Define el modelo de puntos de extensión y conectores. Descubre los conectores dinámicamente y mantiene la información relativa a los conectores y sus puntos de extensión en un registro de la plataforma. Los conectores se inician cuando es necesario según la operación que efectúa el usuario en la plataforma. El entorno de ejecución se implementa mediante la infraestructura OSGi. |
Gestión de recursos (área de trabajo) |
Define una API para crear y gestionar los recursos (proyectos, archivos y carpetas) que se producen mediante las herramientas y se conservan en el sistema de archivos. |
UI de entorno de trabajo |
Implementa el centro de control del usuario para navegar por la plataforma. Define puntos de extensión para añadir componentes de la UI como las vistas o las acciones de menú. Suministra juegos de herramientas adicionales (JFace y SWT) para construir interfaces de usuario.Los servicios de UI están estructurados de forma que pueda utilizarse un subconjunto de los conectores de UI para construir variadas aplicaciones cliente independientes del modelo de gestión de recursos y área de trabajo. Los conectores centrales del IDE definen funciones adicionales para navegar por los recursos y manipularlos. |
Sistema de ayuda |
Define puntos de extensión para que los conectores puedan proporcionar ayuda u otra documentación en forma de libros por los que se puede navegar. |
Soporte de equipo |
Define un modelo de programación en equipo que permite gestionar los recursos y crear versiones de ellos. |
Soporte de depuración |
Define un modelo de depuración independiente del lenguaje y clases de UI que permiten construir depuradores y lanzadores. |
Otras utilidades |
Otros conectores de utilidad suministran funciones tales como la búsqueda y comparación de recursos, la realización de construcciones mediante archivos de configuración XML y la actualización dinámica de la plataforma desde un servidor. |
Tal como sale de la caja, o de la Web, la plataforma básica es un entorno de desarrollo integrado (IDE) para cualquier cosa (y para nada en particular).
Son los conectores los que determinan la función definitiva de la plataforma. Este es el motivo por el que el SDK de Eclipse se suministra con conectores adicionales para mejorar la función del SDK.
Los conectores que usted añada pueden proporcionar soporte para editar y manipular tipos de recursos adicionales, como pueden ser los archivos Java, los programas C, los documentos Word, las páginas HTML y los archivos JSP.