Offene Grafikstandards haben sich etabliert Aus der Phigs-Erweiterung von X-Windows ist PEX entstanden Von Gerald Ismaier*

30.07.1993

Die Limitierungen von X-Windows zu beseitigen, hat sich vor einigen Jahren das X-Consortium des Massachusetts Institute of Technology (MITzur Aufgabe gemacht. Die notwendigen Erweiterungen wurden an den ISO/ANSI-Standard Phigs/Phigsi angelehnt, der als Grafiksystem fuer 2D/3D-Anwendungen seit einigen Jahren am Markt eingefuehrt und akzeptiert ist. Das Resultat wurde deshalb Phigs Extension to X genannt und mit dem Kuerzel PEX versehen.

Vor rund 25 Jahren waren Firmen wie Tektronix, Calcomp und Hewlett-Packard die ersten, die sich mit dem Thema Grafiksoftware konfrontiert sahen. Mit dem Erscheinen von Stiftplottern und Grafikterminals galt es, geeignete Ansteuerungs-Schnittstellen fuer diese Ausgabegeraete zur Verfuegung zu stellen. Sie wiesen zumeist nur einfache Funktionen auf wie Selektiere-Stift, Stift-auf, Stift-ab oder Ziehe-zu-Position-XY. Zur Ansteuerung der Geraete gab es kleine Softwarebibliotheken, die noch bis in die heutige Zeit hinein Verwendung finden.

Diese Art zu programmieren war sehr muehsam. Deshalb wurden hoeherwertige Softwarewerkzeuge entwickelt, welche die Beschwerlichkeiten kompensieren sollten. Standards wie GKS waren die ersten herstelleruebergreifenden Resultate.

Als weiterer sehr wichtiger Standard hat sich das Programmers Hierarchical Interactive Graphics System (Phigs) in den letzten Jahren etabliert. Phigs verwendete einige der schon in GKS enthaltenen Konzepte, die auch fuer 3D-Anwendungen brauchbar waren. Ausserdem wurden neue Ansaetze aufgenommen, die in GKS noch nicht enthalten waren, aber immer wieder gewuenscht wurden. Die Meinung, dass Phigs als die Standardgrundlage fuer offene Grafiksysteme anzusehen sei, teilen jedoch nicht alle.

Marktpolitische Strategien und Eigennutz sind zumeist die Gruende, einen offenen und etablierten Standard wie Phigs in Misskredit zu bringen. Einige Softwarehersteller versuchen, die Rolle von Standards und offenen Systemen herunterzuspielen. Ferner interpretieren sie Begriffe wie "offen" dahingehend, dass sie suggerieren, Sourcecode-Portabilitaet waere gleich Offenheit. Manchmal will man auch proprietaere Software durch Freigabe zur Lizenzierung als offen propagieren, was jedoch abwegig ist, wenn die Weiterentwicklung in proprietaerer Hand bleibt.

Dass Phigs auf dem Wege ist, der am meisten benutzte Grafikstandard zu bleiben, zeigt die Tatsache, dass ein unabhaengiges Gremium, das X-Consortium, dem neben ueberparteilichen Institutionen wie MIT, ANSI und ISO viele Firmen aus der Industrie angehoeren, das Phigs zugrundeliegende Konzept als das beste fuer die Erweiterung des Industriestandards X-Windows angesehen hat.

Finanzieller Druck, rasche Technologieveraenderungen, bessere Ausbildung, ein grosses Produktangebot, Verwirrung und Frustration fuehrten dazu, dass der Begriff "offene Grafik" mehr und mehr Bedeutung erlangt. Der Trend in diese Richtung ist sehr stark spuerbar und das Interesse daran sehr hoch.

X-Window ist ein Paradebeispiel, wie die kritische Masse von Veraergerung und Handlungsbedarf die Akzeptanz eines Standards voranbringt. Als man von X-Window erstmals Mitte der 80er Jahre hoerte, gab es viele rivalisierende Systeme dieser Art. Sunview, News, 4Sight, UIS und andere hatten eine grosse Installationsbasis und waren X-Window zu dieser Zeit wahrscheinlich weit ueberlegen. Aber die kritische Masse sorgte dafuer, dass X-Window ein Standard wurde und heute die Basis anderer Technologien wie Motif oder Open Look darstellt.

Der Einfluss der "kritischen Masse" bewirkte auch, dass man sich sofort nach der Etablierung von X-Window als Windows-Standard fuer Workstations daran machte, seine Limitierungen durch Erweiterungen zu beseitigen. Diese orientierten sich an dem eingefuehrten 3D- Grafikstandard Phigs und wurden PEX (Phigs Extension to X-Window) getauft.

X-Window war von vornherein erweiterbar angelegt. Als das X- Consortium begann, Grafiksoftware fuer die X-Umgebung zu entwickeln, schaute es sich nach einer offenen Loesung um, die funktional komplett war, um den Implementationsaufwand gering zu halten. Phigs, zum Entwickeln tausender Grafikanwendungen eingesetzt, erfuellte diese Kriterien. Die Architektur von Phigs bestimmte die Entwicklung von PEX.

Der groesste Vorteil von PEX ist die Faehigkeit, 3D-Funktionalitaet netzwerkweit benutzen zu koennen. Dabei kann eine Anwendung auf einem Rechner den PEX-Server auf einem anderen Rechner veranlassen, Instruktionen wie Rotation, Schattierung und andere Render-Funktionen von der Grafikhardware direkt durchfuehren zu lassen. Die hochwertigen 3D-Funktionen sollen dabei auch die Belastung des Netzes reduzieren, indem sie erst auf der Serverseite aufgeloest und durchgefuehrt werden muessen. Ebenfalls ist es wichtig, dass die Grafikprogrammierung in Zukunft ueber ein standardisiertes API (Application Programming Interface), naemlich Phigs, ablaeuft und sich die Portabilitaet der Anwendung dadurch erhoeht.

In den letzten Jahren herrschte grosse Konfusion darueber, was PEX eigentlich darstellt. Viele glauben noch heute, dass PEX eine andere Bezeichnung fuer Phigs ist oder Phigs ersetzt. Dem ist jedoch in keinster Weise so. Obwohl das "P" in PEX fuer Phigs steht, ist PEX lediglich ein Protokoll und keine Programmierbibliothek, wie man faelschlicherweise meinen koennte.

Im Herbst 1991 hat Sun Microsystems im Auftrag des MIT eine PEX- Sample-Implementation (PEX-SI) bereitgestellt, die als Programmierbibliothek dienen sollte, um mittels der enthaltenen Funktionen PEX-Protokolle zu erzeugen. Die PEX-SI sollte als einfaches Werkzeug Herstellern von PEX-Servern die Moeglichkeit zu geben, ihre eigenen PEX-Server zu testen.

PEX-SI ist also, wie es zuvor schon bei der Entwicklung von X- Window die X-SI war, als ein Uebergangswerkzeug zu betrachten. Die von der Programmierung auf hoeherer Ebene (APIansetzende PEX-SI wird auf absehbare Zeit genauso wie die X-SI wieder verschwinden und durch die auf niedrigerer Ebene liegende Pexlib, die mit der heutigen Xlib zu vergleichen ist, ersetzt.

Als ein System Program Interface (SPI) wird Pexlib einen Weg fuer proprietaere Systeme bereitstellen, PEX zu verwenden. Dass aufgrund der Architektur von PEX bestehende Phigs-Implementationen die am besten geeigneten Systeme zur Verwendung von PEX-Funktionalitaet sind, ist wohl unschwer einzusehen.

Durch die Erkenntnisse, die man mittels PEX-SI erlangt hat, wird sich sehr bald eine ziemlich genaue Definition des PEX-Protokolls ergeben. Pexlib wird dabei das SPI auf Treiberebene sein, das dann von allen Grafikwerkzeugen benutzt werden kann, die nicht dem Phigs/PEX-Modell folgen. Phigs-Funktionen werden sich aus mehreren Pexlib-Funktionen zusammensetzen und damit eine Schnittstelle mit hoeherer Funktionalitaet sein. Nach vorlaeufigen Untersuchungen wird man fuer eine Phigs-Funktion etwa vier Pexlib-Funktionen aufrufen muessen.

Die Freigabe von Pexlib, Version 6.0, ist erst fuer Mitte 1994 vorgesehen, da die Definition des PEX-Protokolls nach wie vor nicht abgeschlossen ist. Anwendungen, die jedoch heute mit Phigs- Implementationen entwickelt werden, sind sowohl unter 5.1 als auch unter 6.0 lauffaehig.

Das X-Consortium, das Pexlib entwickelt, hatte nicht vor, das Phigs-API durch Pexlib zu ersetzen. Diese Absicht wuerde in direktem Konflikt dazu stehen, dass man Phigs als die Erweiterung fuer X gewaehlt hat. Diese Entscheidung fiel naemlich deshalb, weil mit Phigs selbst schon ein eingefuehrtes und stabiles API im Markt existiert und sich nicht erst wieder nach aufwendigen politischen Kaempfen ein adaequates API herausbilden muss.

Der wichtigste Grund fuer die Auswahl von Phigs als API war, dass vielen existierenden Phigs-Anwendungen ein einfacher Pfad zu PEX geboten werden sollte. Ausserdem sollte mit Pexlib als SPI auch anderen Grafikwerkzeugen die Moeglichkeit gegeben werden, PEX zu benutzen.

Die Auswahl von Phigs reduzierte die Entwicklungszeit von PEX, erforderte aber vielfaeltige Ueberlegungen. Phigs hat ein wohldefiniertes Eingabe- und Ausgabemodell, das in manchen Bereichen mit dem X-Event-Modell in Konflikt stand. Um eine nahtlose Integration der zwei Konzepte zu erreichen, wurde fuer bestehende Phigs-Implementationen der Einbau eines Phigs-Event- Managers empfohlen, der die eintreffenden Events vorverarbeitet.

Phigs-Events werden dabei an Phigs weitergereicht und X-Events ueber die Pexlib an den X-Window-Manager. Dies hat den Vorteil, dass reine X-Events wie Window-Expose oder Window-Leave/Enter sofort an den X-Window-Manager weitergegeben und somit nicht erst in Phigs abgehandelt werden muessen, um dann wieder an den X-Window-Manager weitergeleitet werden zu muessen.

Diese nahtlose Integration von X-Window und Phigs bietet vielen Entwicklern einen effizienten Weg, ihre bisher nur auf X-Window aufsetzenden Anwendungen durch die Verwendung der Rendering- Faehigkeiten von Phigs zu erweitern. Mittels X11 und Toolkits wie Motif oder Open Look erstellte Benutzerfuehrungen lassen sich unmittelbar uebernehmen und der mit X-Windows-Funktionen programmierte Grafikteil sukzessive auf Phigs erweitern.

Mittels Phigs steht Anwendern auch eine hoehere Funktionalitaet zur Verfuegung. Ein Beispiel dafuer ist das Phigs-Datendefinitions- Subsystem CSS (Central Structure Storage), eine komplette grafische Datenbank zum Aufbau und zur Verwaltung von hierarchischen und komplexen Grafikstrukturen. PEX hat dagegen kein Konzept zur Verwaltung von Grafikdaten. Anwender, die anstatt auf Phigs auf Pexlib direkt aufsetzen wollen, muessten eine eventuell benoetigte Grafikdatenverwaltung selbst entwickeln. Dass derlei ob der Komplexitaet eines solchen Moduls wenig sinnvoll ist, duerfte in der Praxis sehr schnell klar werden.

Die Grafikwelt wird nicht mit X und PEX enden. Dafuer wurde zuviel Geld in andere Technologien gesteckt, die nach wie vor einen gewissen Wert haben. X und PEX sind offene Umgebungen, aber eine Anwendung, die fuer Pexlib-Umgebungen entwickelt wurde, kann kein MS-DOS, keine Grafikterminals, keine Mainframes und keine Hardcopy-Ausgabegeraete unterstuetzen. Ein Grafikwerkzeug muss dazu aber in der Lage sein.

Phigs ist der Kern der offenen Grafikumgebung. Mit diesem Standard ist eine Anwendung nicht mehr nur auf eine Umgebung beschraenkt wie bei PEXlib, sondern fuer viele verschiedene verfuegbar. Phigs-Anwendungen werden auch in neuen Grafikumgebungen verwendbar sein, sobald sie auf den Markt kommen.

*Gerald Ismaier ist Marketing-Leiter bei der Muenchner Niederlassung der Gras - Grafische Systeme GmbH.