Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Server-Anwendung? Diverse Fragen (https://www.delphipraxis.net/59353-server-anwendung-diverse-fragen.html)

SubWorx 21. Dez 2005 07:54


Server-Anwendung? Diverse Fragen
 
Hallo,

ich hätte da mal ein paar Fragen :P

Meine Firma schreibt eine Anwendung neu in Delphi die Tage. Diese läuft als Einzelplatz- oder Netzwerkversion.

Am Einzelplatz kann ich Paradox7-Datenbanken verwenden, kein Thema.
Übers Netzwerk kommen aber Paradox7-DBs auf einem Netzlaufwerk in Betracht, oder ein MS SQL Server.

Nun meine vielen Fragen dazu.

- Ist es (relativ) problemlos möglich, in eine Serveranwendung Support für Paradox+SQL gleichzeitig einzubinden, so dass nach dem ersten Setup die Daten auch genutzt werden können?

- Ist die Server-Anwendung überhaupt notwendig?

Der einzige Grund, der mir dafür einfällt, wäre, Lizenzen zu zählen, also wieviele User gleichzeitig damit arbeiten dürfen. Bei SQL ist das eigentlich kein Thema, aber ich habe keine Ahnung wie ich den Direktzugriff auf die Dateien kontrollieren sollte, und kann nicht jedem Kunden sagen, er solle doch bitte das Nutzerlimit bei der Freigabe auf 5/10 Nutzer setzen %)

- Wo finde ich gute Tutorials zu (gleichzeitigen) Netzwerkzugriffen etc?

Hab bis jetzt noch nichts brauchbares gefunden ... Ports öffnen etc sind ja noch nicht so das Problem, aber dass die Anwendung darauf reagiert, stellt mich gerade vor ein Problem.

- Kennt sich jemand aus mit Möglichkeiten für eine Lizenzverwaltung in Delphi?

Die Lizenz sollte nicht unbedingt erlöschen beim Austausch eines DVD-Laufwerks, aber auch nicht grad Name + Adresse -> rot13 sein. Dies müsste ich dann wohl ebenfalls in den Server-Teil implementieren... Lizenz übertragen, überprüfen auf Gültigkeit, Zugriff (nicht) freigeben.

Vielen Dank schonmal für Eure Hilfe

SubWorx

Bernhard Geyer 21. Dez 2005 08:27

Re: Server-Anwendung? Diverse Fragen
 
Wenn Du die Datenbank neu schreibst solltest Du auf keinen Fall mehr BDE verwenden. Es gibt zu viele Probleme damit und jedes Jahr werden es mehr.

Besorg dir lieber für lokale Anwendung entweder eine Desktopdatenbank wie ADS Local Server, TurboDB oder Absolut Database. Eine richtige SQL-Datenbank (Wie MySQL, MS-SQL, ...) sollte auf jedenfalls bei einer Netzwerkinstallation eingesetzt werden da diese Features wie Backup im Betrieb, Transaktionsunterstützung, Besssere Performance bei schlecht angebundenen Clients, ... keine Desktopdatenbank komplett leisten kann.

Jelly 21. Dez 2005 08:55

Re: Server-Anwendung? Diverse Fragen
 
Zitat:

Zitat von SubWorx
Nun meine vielen Fragen dazu.

Prinzipiell bitte eine Frage pro Thread fürs nächste Mal bitte.

Zitat:

Zitat von SubWorx
- Ist es (relativ) problemlos möglich, in eine Serveranwendung Support für Paradox+SQL gleichzeitig einzubinden, so dass nach dem ersten Setup die Daten auch genutzt werden können?

Was willst Du mit Support und Lizenz in Paradox. Versteh nicht ganz was Du meinst.

Zitat:

Zitat von SubWorx
- Ist die Server-Anwendung überhaupt notwendig?

Das hängt vom Umfang der Daten ab, aber im Netzbetrieb prinzipiell: JA Muss dann aber nicht gleich der teure MSSQL Server sein. Gibt ja auch Varianten wie Firebird oder MySQL.

Zitat:

Zitat von SubWorx
- Kennt sich jemand aus mit Möglichkeiten für eine Lizenzverwaltung in Delphi?

Delphi selbts besitzt kein Lizenzmodell für deine erstellten Anwendungen. Da musst Du schon auf Thirdparty Komponenten zurückgreifen.

Was willst du überhaupt machen. Irgendwie blick ich nicht ganz so durch.

SubWorx 21. Dez 2005 09:21

Re: Server-Anwendung? Diverse Fragen
 
Zitat:

Zitat von Bernhard Geyer
Wenn Du die Datenbank neu schreibst solltest Du auf keinen Fall mehr BDE verwenden. Es gibt zu viele Probleme damit und jedes Jahr werden es mehr.

BDE sagt mir was, aber was steuer ich damit an? :P

Blicke nicht wirklich durch bei dbExpress, ADO, Zusatzkomponenten wie Zeos, etc

SubWorx 21. Dez 2005 09:29

Re: Server-Anwendung? Diverse Fragen
 
Zitat:

Zitat von Jelly
Prinzipiell bitte eine Frage pro Thread fürs nächste Mal bitte.

Mach ich, kein Thema. Wobei es sich schwierig gestaltet, in den Fragen aufeinander zu verweisen, wenn sie in einem Zusammenhang stehen ;)

Zitat:

Zitat von Jelly
Was willst Du mit Support und Lizenz in Paradox. Versteh nicht ganz was Du meinst.

Du bringst grad zwei Paar Schuhe zusammen. Die Server-Anwendung muss einerseits Benutzerlizenzen verwalten (Einzelplatz bleibt Einzelplatz, im Netzwerk maximal 5/10 Nutzer gleichzeitig).
Andererseits muss sie den Zugriff zu den Daten gewähren, und hierfür schwebte mir Paradox+SQL vor.

Zitat:

Zitat von Jelly
Zitat:

Zitat von SubWorx
- Ist die Server-Anwendung überhaupt notwendig?

Das hängt vom Umfang der Daten ab, aber im Netzbetrieb prinzipiell: JA Muss dann aber nicht gleich der teure MSSQL Server sein. Gibt ja auch Varianten wie Firebird oder MySQL.

Die Daten können relativ umfangreich werden, andererseits will ich nicht unbedingt für einen Einzelplatz extra einen SQL Server installieren, oder 2 grossartig unterschiedliche Versionen verwalten.
MSSQL in der Express Version ist kostenlos und reicht eigentlich aus, ausserdem ist der bei relativ vielen Firmen im Einsatz. MySQL hat eine sehr komische Lizenzregelung, bei der zumindest hier bei uns keiner durchblickt. PostgreSQL wäre dank LGPL noch eine Alternative.


Zitat:

Zitat von Jelly
Zitat:

Zitat von SubWorx
- Kennt sich jemand aus mit Möglichkeiten für eine Lizenzverwaltung in Delphi?

Delphi selbts besitzt kein Lizenzmodell für deine erstellten Anwendungen. Da musst Du schon auf Thirdparty Komponenten zurückgreifen.

Was willst du überhaupt machen. Irgendwie blick ich nicht ganz so durch.

Unsere Anwendung verwaltet Daten en masse für Zweigstellen etc.
Sie ist erhältlich in einer Einzelplatz- und einer Mehrplatz-Version.
Zuvor haben wir die Entwicklungsumgebung AMBER benutzt, wollen jetzt aber auf Delphi umsteigen.
Und AMBER bot eben all das, nach dem ich gefragt habe :P

Das Programm im Einzelplatzbetrieb überprüft lokal einen Lizenzschlüssel, verbindet zu einer File-Datenbank und macht sein Ding.
Die Netzwerkversionen greifen auf einen "Master-Server" zu, der die Schlüssel kontrolliert, die Anzahl gleichzeitiger Zugriffe (je nach Lizenz) begrenzt, und den verbundenen Clients die Daten (ebenfalls aus einer File-Datenbank, die halt auf dem Server liegt) zur Verfügung stellt.

Des weiteren hat der Server coole Features... wenn ein User länger inaktiv ist, wird er rausgeschmissen.
Locking in dem Sinne funktioniert so, dass z.B. 2 User gleichzeitig einen Datensatz öffnen können. Wenn einer ihn ändert (sofortiger Submit nach JEDER Änderung, kein OK Knopf), erscheinen die Änderungen quasi sofort beim anderen auf dem Bildschirm.

So etwas in der Art müssen wir nun nachbauen.

Auf jeden Fall danke erstmal für eure schnellen Antworten soweit.

SubWorx

mkinzler 21. Dez 2005 10:31

Re: Server-Anwendung? Diverse Fragen
 
Hallo SubWorx,

>>Die Daten können relativ umfangreich werden, andererseits will ich nicht unbedingt für einen Einzelplatz extra einen SQL Server installieren, oder 2 grossartig unterschiedliche Versionen verwalten.

Dann würde ich z.B. Firebird verwenden, für welchen es einen embedded-Server gibt ( Client-DLL, welche Single-User Serverfunktionalität für lokale DBs bietet).
Dies hätte dann den Vorteil das nur eine Verion des Programmes entwickelt werden müßte.

Eine einfache Lizenz-verwaltung wäre über auch über eine SQL-Datenbank möglich (Eigene Tabelle für eingelockte Benutzer, Verwendung von Triggern um automatisch Datensätze in der Tabelle zu erstellen bzw. eine Bereinigung durchzuführen).

Lizenzen könnte man auch verschlüsselt in der Datenbank ablegen und mit lokal gespeicherten abgleichen.

>>sofortiger Submit nach JEDER Änderung => autocommit ( je nach Anwendung nicht optimal)

Uber Benachrichtigungen / Events können andere Clients über Änderungen an den Daten informiert werden.)

Gruß Markus.

Jelly 21. Dez 2005 12:17

Re: Server-Anwendung? Diverse Fragen
 
Vielleicht als Stütze nur gedacht, aber dieser Thread zeigt zumindest, wie man beim MSSQL Server die gerade eingeloggten Benutzer in eine Datenbank herausfinden kann. Dies ist aber MSSQL spezifisch, klappt dort aber wunderbar. Damit könnte man schon mal ein Server Lizenzsystem aufbauen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:16 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz