Eclipse è una piattaforma progettata dalle basi per la creazione di strumenti di sviluppo applicativo e integrato nel web. Autonomamente, la piattaforma non fornisce una grande quantità di funzionalità per l'utente finale. Il valore della piattaforma consiste in ciò che da essa scaturisce: un rapido sviluppo di funzioni integrate basato su un modello plugin.
Eclipse offre un modello comune di interfaccia utente (UI) per l'utilizzo di strumenti. È stato concepito per essere eseguito su sistemi operativi multipli, fornendo contemporaneamente un'integrazione completa con tutti i sistemi operativi sottostanti. I plugin possono programmare le API trasferibili Eclipse ed essere eseguiti senza differenze su tutti i sistemi operativi supportati.
Alla base di Eclipse c'è un'architettura per la scoperta dinamica, il caricamento e l'esecuzione di plugin. La piattaforma gestisce la logistica della ricerca e dell'esecuzione del codice esatto. L'UI della piattaforma fornisce un modello di navigazione standard per l'utente. Ciascun plugin può quindi concentrarsi su un numero ridotto di attività. Tra tali attività vi sono la definizione, verifica, animazione, pubblicazione, compilazione, funzione di debug, diagrammi e numerose altre.
La piattaforma Eclipse definisce un'architettura aperta che permette a ciascun team di sviluppo di plugin di potersi concentrare sull'area di specializzazione. Gli esperti di repository potranno dedicarsi alla creazione dei back end, mentre gli esperti di utilizzo potranno creare gli strumenti per l'utente finale. Se la piattaforma è progettata in modo corretto, nuove funzioni e livelli di integrazione importanti potranno essere aggiunti senza compromettere gli strumenti esistenti.
La piattaforma Eclipse utilizza il modello di un comune workbench per integrare gli strumenti dal punto di vista dell'utente finale. Gli strumenti sviluppati dall'utente possono essere inseriti nel workbench attraverso agganci specifici denominati punti di estensione.
La piattaforma stessa viene generata in livelli di plugin e ciascun livello definisce le estensioni per i punti di estensione dei plugin di livello più basso, che a loro volta definiscono i punti di estensione per un'ulteriore personalizzazione. Questo modello di estensione consente agli sviluppatori di plugin di aggiungere varie funzioni alla piattaforma di strumentazione di base. Le risorse per ciascuno strumento, ad esempio file e altri dati, vengono coordinati da un modello di risorse della piattaforma comune.
La piattaforma offre agli utenti un sistema comune per utilizzare gli strumenti e fornisce una gestione integrata delle risorse che gli stessi utenti creano mediante i plugin.
Questa architettura avvantaggia anche gli sviluppatori di plugin. La piattaforma gestisce la complessità di ambienti di run-time diversi, ad esempio sistemi operativi diversi o diversi ambienti di server di gruppi di lavoro. Gli sviluppatori di plugin possono concentrarsi sulla propria attività specifica invece di preoccuparsi dei problemi di integrazione.
La piattaforma Eclipse è strutturata in sottosistemi implementati in uno o più plugin. I sottosistemi sono costruiti su un piccolo motore runtime. La figura in basso mostra una vista semplificata.
I plugin che costituiscono un sistema definiscono i punti di estensione per l'aggiunta di funzionalità alla piattaforma. La tabella che segue descrive i maggiori componenti run-time della piattaforma che vengono implementati mediante uno o più plugin.
Run-time della piattaforma |
Definisce il punto di estensione e il modello di plugin. Rileva dinamicamente i plugin e conserva le informazioni sui plugin e i punti di estensione in un registro della piattaforma. I plugin vengono avviati quando necessario, in base all'operazione dell'utente sulla piattaforma. Il run-time viene implementato utilizzando il framework OSGi. |
Gestione delle risorse (spazio di lavoro) |
Definisce l'API per la creazione e la gestione di risorse (progetti, file e cartelle) prodotte da strumenti e conservate nel file system. |
UI del workbench |
Implementa la "cabina di pilotaggio" dell'utente per l'esplorazione della piattaforma. Definisce i punti di estensione per l'aggiunta di componenti dell'interfaccia utente quali viste o azioni di menu. Fornisce toolkit supplementari (JFace e SWT) per la creazione di interfacce utente. I servizi UI sono strutturati in modo che un sottoinsieme di plugin di UI possa essere utilizzato per generare applicazioni client complesse indipendenti dalla gestione risorse e dal modello dello spazio di lavoro. I plugin IDE definiscono funzioni supplementari per l'esplorazione e la modifica delle risorse. |
Sistema della guida |
Definisce i punti di estensione per i plugin allo scopo di fornire la guida o altra documentazione sotto forma di manuali consultabili. |
Supporto team |
Definisce un modello di programmazione di team per la gestione e la creazione di versioni delle risorse. |
Supporto per il debug |
Definisce un modello per il debug indipendente dal linguaggio e classi UI per lo sviluppo di debugger e utilità di avvio. |
Altri programmi di utilità |
I plugin degli altri programmi di utilità forniscono funzioni quali la ricerca e il confronto di risorse, l'esecuzione di generazioni utilizzando i file di configurazione XML e l'aggiornamento dinamico della piattaforma da un server. |
La piattaforma di base rappresenta un ambiente di sviluppo integrato (IDE) per qualsiasi operazione.
Sono i plugin che determinano le funzionalità fondamentali della piattaforma. Ecco perché SDK Eclipse viene fornito con plugin supplementari che migliorano la funzionalità di SDK.
I plugin possono fornire supporto per la modifica e l'utilizzo di ulteriori tipi di risorse, quali file Java, programmi C, documenti di Word, pagine HTML e file JSP.