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 plug-in.
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 plug-in possono programmare le API portatili Eclipse ed essere eseguiti senza differenze su tutti i sistemi operativi supportati.
Alla base di Eclipse c'è un'architettura per la scoperta dinamica di plug-in. La piattaforma gestisce la logistica dell'ambiente di base e fornisce un modello standard di esplorazione. Ciascun plug-in 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 plug-in 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.
Il run-time della piattaforma sottostante utilizza lo stesso modello di estensione per consentire agli sviluppatori di plug-in di aggiungere il supporto per tipi di file supplementari e installazioni personalizzate, quali server web, server di gruppi di lavoro e repository. 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 plug-in.
Questa architettura avvantaggia anche gli sviluppatori di plug-in. 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 plug-in possono concentrarsi sulla propria attività specifica invece di preoccuparsi dei problemi di integrazione.
La piattaforma Eclipse è strutturata in sottosistemi implementati in uno o più plug-in. I sottosistemi sono costruiti su un piccolo motore run-time.
I sottosistemi 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ù plug-in.
Run-time della piattaforma |
Definisce il punto di estensione e il modello di plug-in. Rileva dinamicamente i plug-in e conserva le informazioni in un registro della piattaforma. I plug-in vengono avviati quando necessario, in base all'operazione dell'utente sulla piattaforma. |
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 delle risorse e l'utilizzo dei plug-in degli strumenti. Definisce i punti di estensione per l'aggiunta di componenti dell'interfaccia utente quali viste o azioni di menu. Include toolkit supplementari (JFace e SWT) per la creazione di interfacce utente. |
Sistema della guida |
Definisce i punti di estensione per i plug-in allo scopo di fornire la guida o altra documentazione sotto forma di manuali consultabili. |
Supporto per i 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. |
La piattaforma di base rappresenta un ambiente di sviluppo integrato (IDE) per qualsiasi operazione.
Sono i plug-in che determinano le funzionalità fondamentali della piattaforma. Ecco perché SDK Eclipse viene fornito con plug-in supplementari che migliorano la funzionalità di SDK.
I plug-in 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.