RCP (rich client platform)

Die Rich-Client-Plattform (RCP) ist ein Framework zur Entwicklung von Plug-In-basierten Applikationen. Plug-Ins sind Software-Module, die nach dem Prinzip eines Baukastens mit anderen Modulen kombinierbar sind. So wird auch eine flexible Erweiterung von Applikationen möglich, und die Integration der Plug-Ins wird zentral verwaltet. Die dynamische Verwaltung der Plug-Ins basiert auf einer modifizierten Version des OSGi-Frameworks. RCP ist entstanden aus dem Eclipse Projekt und stellt eine Vielzahl allgemeiner Basisfunktionalitäten für die Realisierung von beliebigen Applikationen auf Basis der Programmiersprache Java bereit.


RCP als grafisches Framework bietet neben der Kapselung von grundlegenden Aufgaben umfangreiche Entwicklungsmuster, so dass das Einsatz-Spektrum von einfachen Frontends über Editoren für beliebige Daten bis hin zu komplexen Enterprise Applikationen reicht. Die integrierte Entwicklungsumgebung (IDE) Eclipse ist selbst eine Anwendung der Rich Client Platform. Weitere bekannte RCP-Projekte sind beispielsweise die Java Development Tools (JDT), IBM Workplace, Borland Together oder NASA Maestro. RCP ist als Open Source Projekt unter dem u.g. Link verfügbar. Von RCP werden die wichtigsten Zielplattformen wie Windows, Linux sowie MacOS unterstützt.

Die Definition der Rich Client

Von einem Rich Client wird gesprochen, wenn eine GUI-Schnittstelle applikationsspezifische Funktionalität wie die Präsentation - d.h. die Bereitstellung einer interaktiven Schnittstelle - und zusätzlich die Anwendungslogik einer Applikation zur Verfügung stellt. In einer Rich-Client-Applikation lassen sich jedoch immer allgemeine Basisfunktionalitäten identifizieren und in einem Framework kapseln - das ist die Rich Client Plattform. Als Open Source sind verschiedene Frameworks frei verfügbar, das bekannteste davon ist sicherlich die Rich Client Plattform des Eclipse-Projektes. Die Eclipse IDE selbst ist ein Beispiel dafür, wie Applikationen entwickelt werden können, welche durch Plug-Ins flexibel zu erweitern sind. Dabei werden auf Basis der Rich Client Plattform keinesfalls monolithische Systeme aufgebaut. RCP bildet vielmehr eine modifizierte Fassung des OSGi Frameworks ab, das einen Standard für ein auf Java basierendes Komponentenmodell definiert. Dies hat u.a. den Vorteil, dass Komponenten durch ein sogenanntes Hot-Pluging flexibel zur Laufzeit hinzugefügt oder entfernt werden können. Ein sehr komfortables Merkmal ist dabei das lazy-loading. Dahinter verbirgt sich, dass das Laufzeitsystem erst dann die Implementierung eines Plug-Ins lädt, wenn dessen Klassen benötigt werden.

Die Entwicklung der Applikationen

Die Entwicklungen von Applikationen haben häufig einen hohen aber vergleichbaren Grundaufwand, was den Einsatz von Hilfswerkzeugen beispielsweise Editoren, Werkzeug- und Statusleisten, Menüs oder Dialoge und deren Steuerung angeht.

Aufbau der Rich Client Plattform 
   (RCP)

Aufbau der Rich Client Plattform (RCP)

Dazu bildet RCP einen einheitlichen Rahmen ab, der durch die Abbildung verdeutlicht wird.

  • UI Workbench - bildet den Rahmen für die Anwendung mit Perspektiven, Views, Actions und Editoren.
  • JFace - ist die Abstraktion von SWT für Komponenten zum Beispiel Tabellen oder für die Behandlung von Ereignissen. Die Komponente orientiert sich konzeptionell an dem Model-View-Controller Modell.
  • SWT - Standard Widget Toolkit, ein Framework für die Erzeugung von grafischen Oberflächen.
  • Help - Hilfesystem.
  • Update - organisiert die Aktualisierungen.
  • Platform Runtime - Laufzeit-System.
  • OSGi-Framework - speziell Equinox, eine OSGi-Implementierung, spezifiziert ein Komponentenmodell und steuert die Laufzeit von Plug-Ins.
  • ICU - realisiert die Systembibliothek.
RCP-Komponentenmodell

RCP-Komponentenmodell

Die Abbildung soll auch die Unabhängigkeit der verschiedenen Plug-Ins deutlich machen. Beispielsweise kann auch SWT unabhängig von RCP als eigenständige grafische Bibliothek genutzt werden. Umgekehrt kann RCP ohne grafische Oberfläche beispielsweise bei head-less Anwendungen genutzt werden. Es kann sogar auf die Platform Runtime verzichtet werden - damit lassen sich dann erweiterbare Anwendungen mit einem reduzierten Overhead realisieren.

Neben der eigentlichen Implementierung der Java Klassen benötigen die Plug-Ins jeweils eine statische Deklaration. Da diese Dateien zusätzliche Informationen enthalten, werden sie auch häufig als Meta-Dateien bezeichnet.

Die Manifest-Datei manifest.mf beschreibt u.a. das Startverhalten des jeweiligen Plug-Ins oder auch die Abhängigkeiten zu anderen Plug-Ins. Dazu gibt es in der Datei eine Bundle- bzw. BundleContext-Instanz, die den Zugriff auf die Einsatzumgebung organisiert. Weiterhin kann ein Einstiegspunkt (Activator), ein symbolischer Name und die Version des Plug-Ins festgelegt werden.

Die XML-Datei plugin.xml deklariert die sogenannten Extension Points - die Erweiterungspunkte eines Plug-ins definieren feste Stellen, an denen andere Plug-Ins Funktionalität und Inhalt hinzufügen können. In einem speziellen run-Element wird dabei die Klasse fest-gelegt, welche die RCP-Applikation nach außen hin repräsentiert und mit IApplication ein gesondertes Interface implementiert. Die Abbildung skizziert noch einmal den Zusammenhang zwischen Extensions und Extension Points.

Für die Bearbeitung der XML-Datei steht unter Eclipse ein entsprechender Editor zur Verfügung. Ebenso unterstützt die Eclipse IDE verschiedene RCP-Wizards, so dass ein schneller Einstieg in die RCP-Entwicklung möglich ist.

Aus Sicht eines Software-Entwicklers bietet RCP die folgenden Vorteile:

  • Es steht ein großer Funktionsumfang zur Verfügung.
  • Es sind viele (auch kommerzielle) Plug-Ins verfügbar.
  • Die Applikation ist in eine Plattform integriert (Drag & Drop oder Zwischenablage möglich).
  • RCP ist als Open Source Software offen und erweiterbar.
  • Mit RCP ist ein in der Realität bereits erprobter und flexibler Entwurf möglich.
  • Die RCP-Entwicklung wird durch die Eclipse IDE unterstützt.
  • RCP ermöglicht eine auf die jeweilige Applikation zentrierte Entwicklung.
  • Es steht eine umfangreiche Dokumentation zur Verfügung.
  • Durch die performante RCP-Struktur wird die Architektur der gesamten Applikation festgelegt.
  • RCP und darauf aufbauende Applikation sind plattformunabhängig.
Denen steht ein hoher Einarbeitungsaufwand aufgrund der komplexeren Struktur der Rich Client Plattform gegenüber. Zudem handelt es sich bei der RCP trotz der Modularisierung um keine "leichtgewichtige" Plattform, die auch sicherlich nicht für alle Typen von Anwendungen geeignet ist.

http://www.eclipse.org//downloads

http://www.eclipse.org/downloads/moreinfo/compare.php

Informationen zum Artikel
Deutsch: Rich-Client-Plattform
Englisch: rich client platform - RCP
Veröffentlicht: 27.10.2013
Wörter: 908
Tags: #Software-Technologien
Links: Abstraktion, Architektur, Bibliothek, content, Datei