Eclipse jest platformą od początku projektowaną z myślą o budowaniu zintegrowanych narzędzi do programowania serwisów WWW i aplikacji. Zgodnie z projektem sama platforma nie oferuje bogatej funkcjonalności użytkownikowi końcowemu. Podstawową zaletą platformy jest umożliwienie szybkiego tworzenia zintegrowanych funkcji w oparciu o model wtyczek.
Platforma Eclipse oferuje wspólny model interfejsu użytkownika do pracy z narzędziami. Została zaprojektowana w celu uruchamiania w wielu systemach operacyjnych, oferując stabilną integrację z każdym z nich. Wtyczki mogą udostępniać na platformie Eclipse przenośne interfejsy API, które będą wyglądały w ten sam sposób na każdym z obsługiwanych systemów operacyjnych.
Podstawą platformy Eclipse jest architektura umożliwiająca dynamiczne wykrywanie, ładowanie i uruchamianie wtyczek. Platforma obsługuje logistykę wyszukiwania i uruchamiania odpowiedniego kodu. Interfejs platformy oferuje standardowy model nawigacji. Każda wtyczka może dzięki temu skoncentrować się na prawidłowym wykonaniu mniejszej liczby czynności. Jakiego rodzaju czynności? Definiowanie, testowanie, animowanie, publikowanie, kompilowanie, debugowanie, przygotowywanie diagramów - jedynym ograniczeniem jest wyobraźnia użytkownika.
Platforma Eclipse definiuje otwartą architekturę, aby każdy z zespołów programowania wtyczek mógł się skoncentrować na obszarze jego specjalizacji. Niech specjaliści od repozytoriów budują zaplecza, a specjaliści pracujący nad łatwości użytkowania budują narzędzia dla użytkownika końcowego. Jeśli platforma jest właściwie zaprojektowana, można do niej dodać znaczące nowe funkcje i poziomy integracji bez wpływu na inne narzędzia.
Z punktu widzenia użytkownika końcowego platforma Eclipse używa modelu wspólnego środowiska roboczego służącego do integrowania narzędzi. Utworzone narzędzia można dodać do środowiska roboczego przy użyciu dobrze zdefiniowanych haków zwanych punktami rozszerzenia.
Platforma składa się z warstw wtyczek, z których każda definiuje rozszerzenia punktów rozszerzenia wtyczek niższego poziomu i jednocześnie definiuje własne punkty rozszerzenia, które mogą być dodatkowo konfigurowane. Taki model rozszerzeń umożliwia programistom wtyczek dodawanie różnorodnych funkcji do podstawowych narzędzi platformy. Artefakty każdego z tych narzędzi, takie jak pliki czy inne dane, są koordynowane przez wspólny model zasobów platformy.
Platforma zapewnia użytkownikowi jednolite metody pracy z narzędziami i oferuje funkcje zintegrowanego zarządzanie zasobami utworzonymi wraz z wtyczkami.
Programiści wtyczek mogą również skorzystać z zalet tej architektury. Platforma może zarządzać złożonymi funkcjami różnych środowisk wykonawczych, takich jak systemy operacyjne czy środowiska serwerów dla grup roboczych. Programiści wtyczek mogą się skoncentrować na konkretnej czynności, zamiast martwić się o problemy integracji.
Platforma Eclipse została skonstruowana w formie podsystemów zaimplementowanych w jednym lub wielu wtyczkach. Podsystemy zostały zbudowane w oparciu o niewielki mechanizm wykonawczy. Poniższy rysunek przedstawia uproszczony widok.
Wtyczki stanowiące podsystem definiują punkty rozszerzenia umożliwiające dodawanie funkcji do platformy. W poniższej tabeli opisano główne komponenty wykonawcze platformy zaimplementowane jako jeden lub więcej wtyczek.
Środowisko wykonawcze platformy |
Definiuje model punktów rozszerzenia i wtyczek. Dynamicznie wykrywa wtyczki i przechowuje w rejestrze platformy informacje o wtyczkach oraz ich punktach rozszerzenia. Wtyczki są uruchamiane w odpowiednim momencie w zależności od operacji wykonywanych przez użytkownika. To środowisko wykonawcze jest implementowane przy użyciu struktury OSGi. |
Zarządzanie zasobami (obszar roboczy) |
Definiuje interfejs API służący do tworzenia i zarządzania zasobami (projektami, plikami i folderami) utworzonymi za pomocą narzędzi i przechowywanymi w systemie plików. |
Interfejs użytkownika obszaru roboczego |
Umożliwia użytkownikowi poruszanie się w obrębie platformy. Definiuje punkty rozszerzenia umożliwiające dodawanie komponentów interfejsu użytkownika, takich jak widoki i akcje menu. Oferuje dodatkowe pakiety narzędzi (JFace i SWT) służące do budowania interfejsów użytkownika. Usługi interfejsu użytkownika są zorganizowane w taki sposób, że podzestaw wtyczek interfejsu użytkownika może zostać użyty do budowania aplikacji klienckich, które są niezależne od modelu zarządzania zasobami i modelu obszaru roboczego. Wtyczki środowiska IDE definiują dodatkową funkcję nawigowania po zasobach i manipulowania nimi. |
System pomocy |
Definiuje punkty rozszerzenia dla wtyczek udostępniających pomoc lub inną dokumentację, taką jak podręczniki elektroniczne. |
Wsparcie dla zespołów |
Definiuje model programowania zespołowego umożliwiający zarządzanie zasobami oraz kontrolowanie wersji zasobów. |
Obsługa debugowania |
Definiuje model debugowania niezależny od języka oraz klasy interfejsu użytkownika służące do budowania debugerów i programów uruchamiających. |
Inne programy narzędziowe |
Wtyczki innych programów narzędziowych oferują takie funkcje, jak wyszukiwanie i porównywanie zasobów, budowanie przy użyciu plików konfiguracyjnych XML oraz dynamiczne aktualizowanie platformy z serwera. |
Natychmiast po zainstalowaniu (wersji z płyty lub pobranej z sieci WWW) podstawowa platforma jest zintegrowanym środowiskiem programistycznym (IDE) bez konkretnego przeznaczenia.
O podstawowej funkcjonalności platformy decydują wtyczki. Dlatego pakiet SDK platformy Eclipse jest dostarczany z dodatkowymi wtyczkami rozszerzającymi jego funkcjonalność.
Wtyczki mogą udostępniać funkcje edytowania i modyfikowania dodatkowych typów zasobów, takich jak pliki Java, programy napisane w języku C, dokumenty programu Word, strony HTML oraz pliki JSP.