¿Qué es Eclipse?

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 plug-ins.

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 plug-ins 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 plug-ins 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 plug-in 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.

Arquitectura abierta

La plataforma Eclipse define una arquitectura abierta, en la que cada equipo de desarrollo de plug-ins 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 plug-ins, cada una de las cuales define extensiones para los puntos de extensión de los plug-ins 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 plug-ins 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 plug-ins.

Los desarrolladores de plug-ins 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 plug-ins pueden centrarse en sus tareas específicas en lugar de estar pendientes de estos aspectos de integración.

Estructura de la plataforma

La plataforma Eclipse está estructurada en forma de subsistemas implementados en uno o más plug-ins.  Los subsistemas están construidos tomando como base un pequeño motor de tiempo de ejecución. La figura siguiente muestra una vista simplificada.

Base de entorno de ejecución de plataforma con grupos de plug-ins que añaden funciones

Los plug-ins 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 plug-ins.

Entorno de ejecución de la plataforma

Define el modelo de puntos de extensión y plug-ins. Descubre los plug-ins dinámicamente y mantiene la información relativa a los plug-ins y sus puntos de extensión en un registro de la plataforma. Los plug-ins 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 (espacio 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 plug-ins de UI para construir variadas aplicaciones cliente independientes del modelo de gestión de recursos y espacio de trabajo. Los plug-ins centrales del IDE definen funciones adicionales para navegar por los recursos y manipularlos.

Sistema de ayuda

Define puntos de extensión para que los plug-ins 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 plug-ins 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

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).

Ventana Entorno de trabajo

Son los plug-ins los que determinan la función definitiva de la plataforma.  Este es el motivo por el que el SDK de Eclipse se suministra con plug-ins adicionales para mejorar la función del SDK.

Los plug-ins 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.