Co to jest Eclipse?

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 modułów dodatkowych.

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. Moduły dodatkowe 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 modułów dodatkowych. Platforma obsługuje logistykę wyszukiwania i uruchamiania odpowiedniego kodu. Interfejs platformy oferuje standardowy model nawigacji. Każdy moduł dodatkowy 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.

Otwarta architektura

Platforma Eclipse definiuje otwartą architekturę, aby każdy z zespołów programowania modułów dodatkowych 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 modułów dodatkowych, z których każda definiuje rozszerzenia punktów rozszerzenia modułów dodatkowych niższego poziomu i jednocześnie definiuje własne punkty rozszerzenia, które mogą być dodatkowo konfigurowane. Taki model rozszerzeń umożliwia programistom modułów dodatkowych 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 modułami dodatkowymi.

Programiści modułów dodatkowych 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 modułów dodatkowych mogą się skoncentrować na konkretnej czynności, zamiast martwić się o problemy integracji.

Struktura platformy

Platforma Eclipse została skonstruowana w formie podsystemów zaimplementowanych w jednym lub wielu modułach dodatkowych. Podsystemy zostały zbudowane w oparciu o niewielki mechanizm wykonawczy. Poniższy rysunek przedstawia uproszczony widok.

Podstawa wykonawcza platformy z funkcją dodawania grup modułów dodatkowych

Moduły dodatkowe 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 modułów dodatkowych.

Środowisko wykonawcze platformy

Definiuje model punktów rozszerzenia i modułów dodatkowych. Dynamicznie wykrywa moduły dodatkowe i przechowuje w rejestrze platformy informacje o modułach dodatkowych oraz ich punktach rozszerzenia. Moduły dodatkowe 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 modułów dodatkowych 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. Moduły dodatkowe środowiska IDE definiują dodatkową funkcję nawigowania po zasobach i manipulowania nimi.

System pomocy

Definiuje punkty rozszerzenia dla modułów dodatkowych 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

Moduły dodatkowe 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

Natychmiast po zainstalowaniu (wersji z płyty lub pobranej z sieci WWW) podstawowa platforma jest zintegrowanym środowiskiem programistycznym (IDE) bez konkretnego przeznaczenia.

Okno środowiska roboczego

O podstawowej funkcjonalności platformy decydują moduły dodatkowe. Dlatego pakiet SDK platformy Eclipse jest dostarczany z dodatkowymi modułami dodatkowymi rozszerzającymi jego funkcjonalność.

Moduły dodatkowe 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.