Delphi 3 Client/Server
Plattformübergreifend und Produktiv


© M + K Computermarkt 97/9, Luzern, Schweiz

Autor: Max Kleiner, max_kleiner@compuserve.com, Kleiner Kommunikation, Bern, Schweiz
Letzte Überarbeitung: 29.01.12
Eine kommerzielle Weiterverwendung dieses Textes ist bei korrekter Zitierweise unter Angabe der Quelle erlaubt.



Die wichtigesten Neuerungen auf einen Blick:


Mit Delphi 3.0 Client/Server hat Borland die neuste Version auf den Markt gebracht. Es bietet 3D-Decision-Cube Möglichkeiten, Internet-Komponenten (auch Active-X Tools, WEB) und erweiterte Client/Server-Multi-Tier-Fähigkeiten. Wie man mit Delphi 3 in die dritte Dimension gelangt, zeigt folgender Bericht.

Wissen ist weltweit verteilt

Es ist schon erstaunlich, welches Know-How Delphi 3 voraussetzt, damit sich nur schon die neuen Technologien, Topologien und Architekturen von Delphi sinnvoll einsetzen lassen. Kenntnisse aus den Bereichen Client/Server (Cached Updates, MultiTier, Transaction Resolver), verteilte Anwendungen (COM-Architektur, OLE2) und Intra/Internet(WebBroker, CGI, http) erweitern mit einem Schlag (oder eher Zwangsbeglückung?) die Entscheidgrundlage und Anwendungen jedes Unternehmens. Nur eben, wissen wo Wissen ist, gehört dazu. Mit dabei sind eine SpecialEditon von InstallShield und PVCS für die Versionsverwaltung im Projektteam.

Mit Delphi 3 hat Borland einen grossen Sprung in Richtung verteilte und skalierbare Unternehmenslösungen gemacht. Diese Strategie sollte eigentlich ausreichen, um der seit zwei Jahren grotesk unterbewerteten Borland-Aktie gewaltig auf die Sprünge zu helfen, zudem auf der CeBit noch das Stichwort «SAP/R3-Adaption» herumgeisterte. Mit AS/400 ist der Schritt bereits getan.

Teile und herrsche

Die folgenden Angaben und Tests beziehen sich alle auf Delphi C/S unter NT4 Server, ServicePack 1. Eine wichtige Erneuerung 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 550K auf 30 K reduzieren konnten. Packages der VCL sind schon vorhanden, die aber mindestens einmal physisch auf einen Zugriffspfad kopiert sein müssen. Dies ermöglicht eine skalierbare Verteilung von kleinen Clients (eben Thin Client) zu den getrennten Komponenten.

Laut Borland ermöglicht diese Technik vor allem im Zusammenhang mit der neuen Multi-Tier Fähigkeiten für Client/Server und der Verteilung via Internet eine erhöhte Skalierbarkeit und Flexibilität der Anwendung. Auch lässt sich Ihre Anwendung effektiver debuggen, da Sie durch Packages Resourcen des Systems sparen. Alle Delphi-Komponenten werden jetzt in der IDE als Packages installiert Die IDE wurde in Hinsicht auf Packages weiterentwickelt. Es wurde ein Package-Editor samt zugehöriger Dialogfelder (einschliesslich Experte für die Package-Erstellung) hinzugefügt.

So befinden sich beispielsweise die meisten wichtigen Delphi-Komponenten in einem Package namens VCL30.DPL, 1248K gross (DPL - Delphi Package Library). Schon bei der Installation klatschte die Installationsroutine ungefragt 13 DPL's ins NT-Systemverzeichnis, für einen ordnungsliebenden Menschen eine harte Attacke.

Die Visual Component Library enthält rund 130 wiederverwendbare Komponenten, welche vor allem Internet und Multimedia-Entwickler ansprechen, sowie verschiedene Listen- und Baumansichten und verbesserte Report-Tools (Quick Report).

Mehrschichtig und plattformübergreifend

Mit Hilfe des leistungsfähigen und flexiblen Business-Fensters (Datenanalyse) lassen sich Unternehmens- und Internet-Daten grafisch anzeigen. Mit der Decision Cube Komponentenpalette (Kreuztabellen, PivotQuery) sind Visualisierungs-Tools für die Analyse und die Präsentation von Firmen-Daten gemeint. Mit den weiteren Tools TeeCharts für 11 Diagrammarten und Quick-Reports rücken Sie ihr Unternehmen in den Mittelpunkt z.B. für ein Decision Support System.

Übrigens hat man mit QuickReports einen würdigen Ersatz für den eher schwerfälligen ReportSmith gefunden.

[teeChart, eine eingekaufte Native-Komponente]

Endlich eine durchdachte Native-Komponente, die Borland eingekauft hat.

Mit Delphi 3 können Sie Anwendungen partitionieren, so dass Sie die Geschäftslogik zur Pflege und Wiederverwendung an zentraler Stelle zusammenfassen können. Die Sprach-Interoperabilität in COM ermöglicht die Zusammenarbeit zwischen verschiedenem Code. COM steht für Component Object Model, eine objektbezogene Programmierspezifikation, die über vordefinierte Routinen (sog. Schnittstellen) für eine konsistente Objektinteroperabilität sorgt. COM beruht nicht auf einem Quellcode-Standard, sondern auf einem binären Standard, ist deshalb binärkompatibel. Aus diesem Grund ist eine Kommunikation zwischen Objekten möglich, die in verschiedenen Sprachen geschrieben wurden und sich in verschiedenen Prozessbereichen bzw. auf unterschiedlichen Plattformen ausführen lassen. COM-Objekte lassen sich transparent erweitern, ändern und aktualisieren, weil man sie mit eindeutigen Bezeichnern erstellt. Auch der Zugriff auf ihre Schnittstellen erfolgt über eindeutige Bezeichner.

Delphi-Architektur der verteilten Anwendungen

Architektur der verteilten Anwendungen auf einen Blick

Raumschiff OLEnterprise

 Delphi Client/Server 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 muss man getrennt von Delphi installieren. Die zugehörigen Dateien befinden sich samt Dokumentation auf der CD im Verzeichnis \OLENT. Hinweise zur Installation können Sie der Datei INSTALL.TXT entnehmen. Weitere Informationen zu OLEnterprise finden Sie auf der Web Site http://www.openenv.com/.

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. Mögliche Szenarien sind:

Universelle Datenbank

Ein erster Versuch, eine andere Engine anzubinden, resultierte darin, dass gut ein Drittel der herkömmlichen Datenbank-Komponenten nicht mehr kompatibel sind. Also so einfach, wie sich das Borland vorstellt, ist es nicht. Meine Erfahrung zeigt auch, dass die bisherigen Komponenten nur noch teilweise einsetzbar sind. Da müssen die Anbieter wohl mit neuen Versionen nachdoppeln. Änderungen fallen primär im Datenbankbereich an. Nun, fairerweise muss man zugestehen, dass Borland ziemliche Verbesserungen betreffend Datenbank-Komponenten angebracht hat:

 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. Trotzdem empfehle ich als Ergänzung immer noch den Kauf der Komponentenpalette InfoPower von Woll2Woll Software.

Rein in's Internet

Die Client/Server Suite von Delphi 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 verfügbare, nicht visuelle Komponente einsetzen. Internet-spezifische Komponenten erleichtern das Schreiben von Ereignisbehandlungsroutinen, die mit einer bestimmten URI (Uniform Resource Identifier) verbunden sind. Nachdem die Verarbeitung abgeschlossen ist, können im Programm HTML-Dokumente erzeugt und an den Client übertragen werden.

Die Praxis ist offen

Unser erster Versuch war, eine «Database Backed WebSite» zu erzeugen. Ein erstes Workaround liegt unter Demos\Webserv bereit. Es galt, die DLL zu kompilieren und sie dann in's Script-Verzeichnis des WebServer (IIS) zu kopieren. DLL's haben gegenüber CGI-Skripts mit Perl oder Tcl einige Vorteile. Beim Einsatz von CGI muss das vom WebServer aufgerufene Programm den übergebenen Request analysieren. Da keine Schnittstellenvereinbarung vorliegt und eine Typüberprüfung fehlt, ist die Bearbeitung recht fehleranfällig und schwer wartbar. Zudem erzeugt jeder Aufruf einen Prozess, was das System ziemlich belastet. Nach den nötigen Konfigurationen und einer, mit Host-kompilierten, Iservcgi.exe war dem Unternehmen bald Erfolg beschieden. Das Einspielen ins Net via der Domain «www.kleiner.ch» gelang noch nicht, da der WebServer noch seine Tücken und wir unsere Schwächen haben. Kommt Zeit kommt Tat.

[Mit Delphi 3 im Web Datenbankanbindungen realisieren]

CGI oder DLL, der Browser holt die Daten aus der Bank

Mit Hilfe der Internet-Komponenten von Delphi lassen sich Verbindungen zu Datenbanken automatisch verwalten. Damit ist es möglich, in einer DLL mehrere simultane, thread-sichere Datenbankverbindungen zu verwalten.

Zusätzlich gibt es einen Assistenten, mit dem die Borländer das Erstellen von Active-X-Controls erweitert haben, z.B. lässt sich ein Delphi-Form in eine für den Einsatz in einem Browser geeignete Form umsetzen. Ein ActiveForm ist ein Delphi-Formular, das gleichzeitig als ActiveX-Steuerelement fungiert. Beim Einsatz eines ActiveForm im Web wird eine HTML-Seite erzeugt. In dieser Seite ist die Referenz auf das ActiveForm enthalten, und HTML legt dessen Position innerhalb der Seite fest. Das ActiveForm wird anschliessend angezeigt und in Web-Browsern wie Microsoft Internet Explorer 3.0 (ISAPI) oder Netscape Navigator 4.0 (NSAPI) ausgeführt. Das Formular verhält sich im Browser wie jedes andere selbständige Formular von Delphi. Es kann VCL- und ActiveX-Komponenten sowie selbstdefinierte VCL-Steuerelemente enthalten. Schlicht genial, die Borländer.

Mother's little Helper

Auch an die Entwickler dachte man. Eine neue Funktion für den Entwickler ist Codeinsight, das den Bau von Applikationen einiges erleichtern soll. Mit Hilfe von Assistenten lassen sich Codeblöcke kontrollierter erstellen und die Syntax besser überprüfen.

Quelltextvorlagen (Code Templates) sind häufig verwendete Programmieranweisungen, die Sie rasch in Ihren Quelltext einfügen können. Es sind Vorlagen für ObjectPascal-Anweisungen wie «if ... then ...» und «while» sowie «try ... except»-Blöcke vorhanden.

Code Completion bietet eine schnelle Möglichkeit, Methoden, Eigenschaften, Ereignisse oder Argumente in den Quelltext einzugeben. Z.B. geben Sie eine Zuweisung ein, und drücken dann <Ctrl>-<Space>. Der Experte zeigt dann eine Liste mit den gültigen Argumenten für die Variable an.

Code-Parameter erzeugt ein Fenster mit den für die Syntax benötigten Parametern, wenn Sie einen Methodennamen und eine linke Klammer eingeben.

Sie können jetzt auch Versionsinformationen in Ihre Delphi-Projekte aufnehmen. Die Versionsinformationen der EXE-Datei des Projekts werden in der Registerkarte Version des Windows-Dialogfeldes Eigenschaften angezeigt.

Begeisterung kommt auch in der Möglichkeit auf, mit Hilfe eines Experten ActiveX-Steuerelemente aus einer VCL-Komponente zu erstellen. ActiveX-Steuerelemente lassen sich zusammen mit verschiedenen Entwicklungswerkzeugen, wie C++, Java, Visual Basic (fast hätte ich's vergessen) oder PowerBuilder verwenden. Mit dem ActiveForm-Experten können Sie ein Delphi-Formular rasch in einen ActiveX-Steuerelement-Container für andere VCL-Komponenten konvertieren. Mit den Experten können Sie diese ActiveX-Komponenten und ActiveForms-Container, wie schon gesagt, auch zu Ihrer Web-Site übertragen. Die integrierte COM-Unterstützung (Component Object Model) ermöglicht Entwicklern das Erstellen wiederverwendbarer, interoperabler Geschäftsobjekte.

Versionen von Delphi 3

Bezugsadresse Schweiz:

Redacom AG
Hauptstrasse 96
2560 Nidau

Tel. 032 332 99 55
Fax. 032 332 99 59

Mail: office@redacom.ch
Net: www.redacom.ch


Diese Webseite wurde am 21.05.18 um 17:10 von rothen ecotronics erstellt oder überarbeitet.

Impressum

Zurück zu rothen ecotronics

Printed on 100% recycled electrons!

Printed on 100% recycled electrons!