Eclipse is een platform dat ontworpen is voor het bouwen van geïntegreerde web- en toepassingsontwikkelingstools. Het ontwerp bevat op zichzelf niet veel functionaliteit voor de eindgebruiker. De waarde van het platform wordt gevormd door wat het stimuleert: een snelle ontwikkeling van geïntegreerde features op basis van een pluginmodel.
Eclipse levert een gemeenschappelijk gebruikersinterfacemodel (UI-model) voor het werken met tools. Het is ontworpen voor verwerking op verschillende besturingssystemen waarbij een grondige integratie wordt geleverd met elk onderliggend besturingssysteem. Plugins kunnen programmeren in de overdraagbare API's van Eclipse en kunnen ongewijzigd worden uitgevoerd op elk van de ondersteunde besturingssystemen.
In de kern van Eclipse bevindt zich de architectuur voor dynamische discovery, laden en uitvoeren van plugins. Het platform handelt de logistiek af voor het vinden en verwerken van de geschikte code. De platformgebruikersinterface levert een standaardmodel voor navigatie door de gebruiker. Elke plugin kan dan worden gericht op het grondig uitvoeren van een klein aantal taken. Wat zijn dit voor taken? Dit kunnen onder andere zijn: definiëren, testen, animatie gebruiken, publiceren, compileren, fouten opsporen, diagrammen maken enzovoort. Er zijn heel veel mogelijkheden.
Het Eclipse-platform definieert een open architectuur zodat elk pluginontwikkelteam zich kan richten op de eigen deskundigheid. De repository-experts kunnen de backends bouwen en de experts op het gebied van de gebruikersvriendelijkheid kunnen de tools voor de eindgebruiker bouwen. Als het platform goed ontworpen is, kunnen significante nieuwe features en integratieniveaus worden toegevoegd zonder dat dit invloed heeft op andere tools.
Het Eclipse-platform gebruikt het model van een algemene workbench om de tools te integreren van uit het gezichtspunt van de eindgebruiker. De tools die u ontwikkelt kunnen in de workbench worden aangesloten met behulp van gedefinieerde ingangen die extensiepunten worden genoemd.
Het platform zelf is in lagen van plugins gebouwd, waarbij elke laag extensies definieert naar de extensiepunten van de plugins op een lager niveau, en op hun beurt definiëren deze hun eigen extensiepunten voor verdere aanpassing. Dit extensiemodel maakt het mogelijk voor pluginontwikkelaars om een verscheidenheid aan functies toe te voegen aan het basistoolplatform. De artefacten van elke tool, bijvoorbeeld bestanden en andere gegevens, worden door een gemeenschappelijk platformresourcemodel georganiseerd.
Het platform zorgt ervoor dat gebruikers gemeenschappelijk kunnen werken met de tools en het levert geïntegreerd management op over de resources die met behulp van de plugins worden gemaakt.
Pluginontwikkelaars hebben ook baat bij deze architectuur. Het platform beheert de complexiteit van verschillende runtime omgevingen, bijvoorbeeld verschillende besturingssystemen of werkgroepserveromgevingen. Pluginontwikkelaars kunnen zich richten op hun specifieke taken, in plaats van dat zij zich zorgen hoeven te maken over integratieproblemen.
Het Eclipse-platform zelf is gestructureerd als een verzameling subsystemen die zijn geïmplementeerd in een of meer plugins. De subsystemen zijn bovenop een kleine runtime-engine gemaakt. In de onderstaande afbeelding ziet u een vereenvoudigde view.
De plugins waaruit een subsysteem bestaat, definiëren extensiepunten voor het toevoegen van gedragspatronen aan het platform. In de volgende tabel worden de belangrijkste runtime-componenten van het platform beschreven die worden geïmplementeerd als een of meer plugin(s).
Platformruntime |
Definieert het extensiepunt en het pluginmodel. Zoekt dynamisch naar de plugins en onderhoudt de informatie over de plugins en de extensiepunten in een platformregister. De plugins worden opgestart als dit vereist is volgens een gebruikersbewerking op het platform. De runtime wordt geïmplementeerd met behulp van het OSGi-framework. |
Resource-management (werkgebied) |
Definieert de API voor het maken en beheren van resources (projecten, bestanden en mappen) die worden gemaakt door tools en bewaard in het bestandssysteem. |
Workbench-UI |
Implementeert de gebruikers-cockpit voor het navigeren in het platform. Definieert extensiepunten voor het toevoegen van componenten aan de gebruikersinterface, bijvoorbeeld views of menuacties. Levert extra toolkits (JFace en SWT) voor het bouwen van gebruikersinterfaces. De interfaceservices zijn zodanig gestructureerd dat een subverzameling van interfaceplugins kan worden gebruikt voor het bouwen van Rich Client-toepassingen die onafhankelijk zijn van het resource-management- en werkgebiedmodel. IDE-plugins definiëren extra functies voor het navigeren door en manipuleren van resources. |
Help-systeem |
Definieert extensiepunten voor plugins om Helpboeken of andere documentatie aan te kunnen bieden als door te bladeren boeken. |
Teamondersteuning |
Definieert een teamprogrammeringsmodel voor het beheer en het versiebeheer van de resources. |
Ondersteuning voor foutopsporing |
Definieert een taalafhankelijk model voor foutopsporing en UI-klassen voor het bouwen van foutopsporingsprogramma's en startprogramma's. |
Andere hulpprogramma's |
Andere programmaplugins leveren functies als resources zoeken en vergelijken, builds uitvoeren met behulp van XML-configuratiebestanden en het dynamisch bijwerken van het platform vanaf een server. |
Net uit de doos - of los van het web - Het basisplatform is een geïntegreerde ontwikkelomgeving (IDE) voor van alles (en niets in het bijzonder).
Het zijn de plugins die bepalen wat de uiteindelijke functionaliteit van het platform wordt. Dat is de reden dat Eclipse SDK wordt geleverd met aanvullende plugins om de functionaliteit van de SDK uit te breiden.
Uw plugins kunnen ondersteuning leveren voor het bewerken en manipuleren van extra typen resources, bijvoorbeeld Java-bestanden, C-programma's, Word-documenten, HTML-pagina's en JSP-bestanden.