Hi Leute, ich möchte für eine Anwendung einen Datenbankserver schreiben, der díe Datebbankzugriffe kapselt. Der Server muss vom Client die ODBC-DSN und den Server Typ (Interbase, Oracle, Sybase, MS SQL Server) mitgeteilt bekommen. der Server selbst soll auf einem eigenen Rechner unter einem eigenen Port laufen. Wie lässt sich das unter Delphi 5 realisieren ?
Announcement
Collapse
No announcement yet.
eigener Datenbankserver
Collapse
X
-
Hallo!<br>
@Thorsten<br>
Vielleicht hilft Dir hier der Multi Tier Ansatz weiter.<br>
Alle Datenbankzugriffe finden zentral am Applikationsserver statt. Alle Clients müssen sich an den Applikationsserver wenden, um Daten zu erhalten.<br>
Der Datenaustausch selbst findet mit Hilfe von ADO recordsets statt. Diese lassen sich leicht transportieren und bieten auch am Client ein Maximum an Komfort, da sie sich einfach einem ADODataSet unterschieben lassen.<br>
Zum Server:<br>
Da alle Datenbankzugriffe zentralisiert ablaufen kann ich am Server auch leicht unterschiedliche Datenbanken ansprechen. Auch hier bietet sich ADO an. Am besten läuft die Sache, wenn ein OLE DB Treiber vorhanden ist. Interbase hat leider keinen aber hier kann man unter ADO auch auf einen ODBC Treiber ausweichen.<br>
Bei uns funktioniert das alles wunderbar.<br>
Der Client braucht keine Lizenz für den Datenbankserver und die Performance bei vielen Arbeitsplätzen ist einfach SUPER.<br>
Als echter Fan muß ich hier nochmals die entsprechenden Bücher von Hr. Kosch empfehlen.<br>
BYE BERN
Comment
-
@Bernd.
Hi, das Interessiert mich ja nun. Multi-Tier Anwendungen habe ich bis jetzt noch nicht programmiert. Bei der Skizzierung Deiner Umgebung habe ich jetzt aber noch nicht den Unterschied zwischen herkömmlichen Client/Server-Systemen mit ADO/ODBC-Schicht und Deiner Mulit-Tier Lösung gesehen. Was soll den der Applikationsserver machen wenn die ADO und ODBC-Quelle auf dem Client ist...oder ist die auf dem Applikationsserver?
Viele Grüße
Fran
Comment
-
Ich bezwecke mit dem eigenen Server zum einen die Datenbankschnittstelle zu Kapseln und zum anderen die Anzahl der Clientzugriffe (maximal gestartete Clients) je nach Lizenz (das Lizenzsystem programmier ich selbst) einzuschränken. Der Server selbst führt auch die SQL-Abfragen aus und schickt die Ergebnisse nur noch an die Clients. Um jedoch nicht die BDE installieren zu müssen will ich das ganze über ODBC machen. Bietet sich hierfür wirklich ADO an?
@Bernd du hast richtig erkannt worum es mir geht. Die ADO Schnittstelle von MS ist ja eh auf den meisten Systemen installiert, so dass ich da nicht grossartig Dateien weitergeben muss oder
Comment
-
Hallo!<br>
@Frank<br>
Client/Server = Auf allen CLients muß die Datenbankschnittstelle inkl. Lizenz installiert sein 100 Lizenzen sind da doch schon recht teuer.<br>
Multi Tier = Die Datenbankschnittstelle ist nur auf dem /auf den AP Server(n) installiert. Der AP Server baut jetzt Verbindungen zum Datenbankserver nur nach Bedarf auf. Wenn Du Dir mal eine Anwendung wie in einem Call Center ansiehst: Sehr wenig effektive verbinbindungszeit und sehr viel Zeit ohne Datenverkehr. Da der AP nur bei Bedarf Verbindungen aufbauut genügen ca. 8 Lizenzen um 250 Arbeitsplätze zu bedienen (war ein kleiner Test bei uns in der Firma) 250 zu 8 klingt doch nicht schlecht oder?<br>
<br>
@Thorsten<br>
ja warum denn nicht. Einzig die Version der installierten MDAC gilt es zu prüfen. Die sollte schon auf allen Rechnern aktuell sein.<br>
Außerdem gibt es für die Standard Installtionsprogramme MergeModule, die Dir die Installation abnehmen.<br>
BYE BERN
Comment
-
@Bernd: Vielen Dank für die Info
weisst du vielleicht auch noch wie ich bei Threadbasiertem Clientsocket/Serversocket die exakte anzahl der verbundenen Clients rausfinden kann? Muss ja auch falls es zu viele Zugriffe sind die Meldung schicken können, dass es zu viele Verbindungen sind
Comment
-
Moin,
>> Da der AP nur bei Bedarf Verbindungen aufbauut genügen ca.
>> 8 Lizenzen um 250 Arbeitsplätze zu bedienen
Alle modernen Datenbank (SQLServer,Oracle,DB2,Interbase) und wahrscheinlich auch alle anderen kostenpflichtigen Datenbanken haben ein userabhängige Lizenzierungsmodell das Multiplexingtechniken wie von Bernd beschrieben explizit ausschließt. Das bedeutet auch bei nur 8 nötigen Verbindungen brauchen doch alle 250 möglichen User eine Lizenz.
Grüße
Ralf Janse
Comment
Comment