Universeller Delphi 4 Client/Server

Von Max Kleiner. Mit Delphi 4.0 hat Inprise (Borland) die bisher universellste Version dieser weltweit beliebten Entwicklungsumgebung auf den Markt gebracht. Sie bietet einen verbesserten Project-Manager mit Gruppenfunktionen, MS-BackOffice-Support, native Internet-Komponenten und erweiterte CORBA Möglichkeiten mit Multi-Tier-Fähigkeiten.

Delphi 4 hat nun ähnlich dem C++ Builder einen eigenen Debugger auf Maschinensprach-Ebene mit allen Feinheiten, der in einem echten Windows-Fenster erscheint. Das Phantastische und zugleich Starke daran ist, dass ein Wechsel zwischen Debugger und Editor zu beliebigen Zeitpunkten möglich ist. Die Integration ist derart vollständig, dass keine separaten Kompilierungs- bzw. Linkermodi für Assembler-Debugging nötig sind.

Irgendwann schreib ich doch noch ein Buch mit dem Titel: «Von Viren, Bugs und Warteschlangen», denn mit Delphi macht das Überleben im digitalen Dschungel «echt» Spass.

Multikulti

Mit dem Überladen von Methoden (overload),nicht zu Verwechseln mit dem override, ist ein wichtiger Schritt vollbracht, der Object Pascal noch näher zu C++ bringt. Während Entwickler vielfach auf das Überladen verzichtet haben, scheint sich die Mehrfachvererbung trotz allen Gerüchten langsam durchzusetzen. In der Online-Dokumentation war man jedoch noch zurückhaltend. Ein weiteres Schlüsselwort «implements», wohl von Java stammend, legt fest, welche Klasse welche Schnittstelle implementiert. Diese Erweiterung der Interfaces oder Interface Libraries erhöhen auf einen Schlag die Flexibilität und Wiederverwendung von Klassen und Code.

Auch ein neuer Datentyp «Int64» ist dabei, der endlich die Kapazitäten grosser GByte-Platten im Nu erreichen kann. Int64 wird wohl für längere Zeit der grösste Integer bleiben.

Wissen ist weltweit verteilt

Es ist schon erstaunlich, welches KnowHow Delphi 4 voraussetzt, damit sich nur schon die neuen Technologien und Architekturen von Delphi sinnvoll einsetzen lassen. Kenntnisse aus den Bereichen Client/Server (Cached Updates, MultiTier, transaction Resolver), verteilte Anwendungen (DCOM-Architektur, CORBA) und Intra/Internet(WebBroker, CGI, Dispatcher) erweitern den Horizont jedes Unternehmens. Mit dabei sind eine Special Edition von InstallShield, PVCS für die Versionsverwaltung und der Data Migration Wizard.

Mit Delphi 4 hat Inprise einen grossen Sprung in Richtung verteilte und skalierbare Unternehmenslösungen gemacht. Diese Strategie wurde auch mit dem Namenswechsel von Borland nach Inprise unterstrichen, wobei Borland weiterhin als Sparte Gültigkeit hat.

Die wichtigsten Neuerungen

Teilen und verteilen

Die folgenden Angaben und Tests beziehen sich alle auf Delphi C/S unter NT4-Workstation mit ServicePack 3.

Die wohl mächtigste Form von OOP ist nebst der Vererbung sicher das Überladen von Operatoren, das nun endlich auch vorhanden ist. Keine neidischen Blicke mehr auf C++. Nach C kommt ja bekanntlich D, nämlich D für Delphi.

Angenommen Sie entwickeln einen Netzwerkdialog, der eine IP-Adresse erfordert. Mit dem Overloading lässt sich nun sehr elegant eine Eingabe sowohl als Zahl als auch als String akzeptieren, obwohl die Funktion weltweit den gleichen Namen hat. Die Funktion lässt sich mit verschiedenen Parametertypen «überladen». Hierzu ein Beispiel:

TNetDialog = class(TNetFrame)



function IPLogin(iLog: Integer): string; overload;

function IPLogin(sLog: string): string; overload;

Delphi 4 enthält bereits die neuen Common Controls für Windows 98. Ausserdem gibt es die Möglichkeit, auf einfache Services für Windows NT zu erstellen, die im Hintergrund laufen und automatisch mit dem Starten des Betriebssystems geladen werden können.

Eine wichtige Verbesserung ist die Entwicklung von «Thin Client Applications». Hiermit lassen sich sogenannte Packages (eine Art DLLs) erzeugen, wobei man die ausführbare EXE getrennt von den Komponenten erstellt. Diese Kapselung der VCL ermöglicht eine erhebliche Reduzierung der EXE-Grösse, wodurch wir z.B. eine alte EXE-Datei von 550 K auf 30 K reduzieren konnten.

Die Enterprise Suite von Delphi

Mit der Enterprise Version, die Ende 98 erscheint, besteigt Inprise neue Höhen der Unternehmenskultur. Jede Version wird auf den Kunden abgestimmt und an seine IT-Architektur angepasst. Demzufolge gibt es keine festen Preise, zumal auch die Middleware für unternehmensweite Anwendungen unterschiedliche Aufwendungen hervorrufen kann.

Zielgruppe dieser Enterprise-Version sind Grossfirmen und Behörden, die Applikationen mit mehr als 500 Benutzern inhouse und tausende von Zugriffen 7 x 24h outhouse verkraften müssen; Applikationen die ausfallsicher und flexibel zugleich sein müssen. Zudem wird dem Datenschutz und der Performance eine grosse Rolle beigemessen. Eigentlich ist Sicherheit und Geschwindigkeit zugleich eher ein Zielkonflikt, den die Enterprise Version aber optimier. Neben der uns bekannten Version von Delphi selbst, sind auch die Versionen der Middleware-Produkte MIDAS und ENTERA im Enterprise-«Paket» enthalten. Unter ENTERA lassen sich Anwendungen erstellen, bei denen der Applikationsserver z.B. auch auf einem Linux-Rechner oder OS/400 laufen kann. MIDAS steht für Multi-Tier Distributed Application Services, rein für den Einsatz in Windows-Umgebungen.

Verteilte Welten, die alles gelten...

Delphi C/S enthält OLEnterprise, eine OLE/DCOM-Schnittstelle zu einem beliebigen RPC- oder COM-Server. Mit OLEnterprise lässt sich die Anwendungslogik und der Datenzugriff zentral auf einem Anwendungs-Server verwalten. Der Server wird dann zu einem Provider verteilter Geschäftsobjekte und -prozesse. Der verteilte Object Broker-Namensdienst verbindet Anwendungen, basierend auf Objektverfügbarkeit indirekt mit Remote-Objekten. Die Business Rules lassen sich also zentral speichern und verteilen.

OLEnterprise besteht aus den Schlüsselkomponenten Object Factory, Object Agent und Object Explorer

Damit lassen sich entfernte OLE-Dienste als entfernte Prozeduraufrufe (remote procedure calls) vom Object Agent auf den Client-Rechner an die Object Factory übergeben. Der Object Explorer ist ein Browser-Dienstprogramm, welches die im gesamten Unternehmen verteilten Objekte und Dienste dynamisch anzeigt.

Ein ObjectBroker oder Agent stellt also eine globale Registrierung zur Verfügung, in der die Anwendungsserver ihre Einträge vornehmen. Dies ist der Ort, an dem die Client-Anwendung nach einer Verbindung mit einem der Anwendungsserver im Netz sucht. Dadurch lässt sich Transparenz für den Ort erzielen, an dem sich DCOM-, RPC- oder CORBA-Objekte befinden.

Der Business ObjectBroker überprüft automatisch die Verfügbarkeit von Objekten auf den verteilten Rechnern und entlastet damit den Entwickler und Anwender zugleich.

Universelle Datenbank

Verbessert wurde auch die Skalierbarkeit von BLOBs und der Zugriff und die Verteilung der BDE (Database Engine). Mit der neuen Datenmengenkomponente TClientDataSet können Sie datenbankunabhängige Datenmengenobjekte in ihren Anwendungen erstellen. Client-Datenmengen lassen sich in allein lauffähigen einschichtigen Datenbankanwendungen verwenden oder mit der neuen Remote-Server-Komponente TRemoteServer koppeln, um den Client-Teil einer mehrschichtigen Datenbankanwendung zu erstellen. Somit lässt sich also die BDE umgehen.

Erweiterungen im Datenbankbereich

Die BDE-Provider-Technologie wird von den neuen verteilten Datenmengen in Delphi verwendet. Delphi entwickelt sich zum universellen Datenbank-Tool, welches in der Offenheit und der Wahl der Engine kaum mehr zu überbieten ist. Nicht zu vergessen, dass mit InterBase 5.1 einer der genialsten SQL-Server in der C/S-Version dabei ist.

Internet-Komponenten

Die C/S-Suite enthält mehrere neue Komponenten, mit denen Sie auf einfache Weise Internet- und Intranet-Anwendungen erstellen können. Diese Komponenten handhaben die gesamte Kommunikation mit dem Web-Server, so dass Sie sich auf die Programmierung Ihrer Web-Server-Anwendung konzentrieren können, ohne dass Sie sich um http kümmern müssen. Spezielle Tabellengeneratoren erstellen den HTML-Code für das Anzeigen Ihrer Datenmengen, und Seitengeneratoren organisieren den restlichen HTML-Inhalt. Soll eine spezialisierte Server- oder Client-Anwendung erstellt werden, behandeln Socket-Komponenten die Kommunikationsprotokolle auf unterer Ebene, so dass Sie sich auf die von Ihrer Anwendung bereitgestellten Dienste konzentrieren können:

Mit Delphi können Sie Web-Server-Anwendungen als CGI-Anwendung oder als dynamische Link-Bibliothek (DLL) erstellen und dabei jede nicht visuelle Komponente einsetzen.

Anbindungen an Weltstandards

Mit Delphi /400 und Delphi /Connect für SAP sind zwei weitere Enterprise-Produkte auf dem Markt, die den Horizont von Delphi enorm erweitern. Bei beiden ist der dirkete Zugriff auf Daten und Funktionen möglich.

Beim Schreiben dieses Berichtes fand zugleich in Denver (ab 12. August) die Inprise User Conference statt, bei der Delphi 4 als umfassende Entwicklungsumgebung präsentiert wurde.