realbasic-nug.de
[Top] [All Lists]

Re: Netzwerkversion

To: REALbasic NUG German <realbasic-nug dot de at lists dot realsoftware dot com>
Subject: Re: Netzwerkversion
From: Andreas Bernhardt <rb at andreasbe dot de>
Date: Sat, 26 Nov 2005 15:28:44 +0100
Delivered-to: realbasic-nug dot de at lists dot realsoftware dot com
References: <BFAE259F dot 1CB4%mike at psb-info dot ch>
Hallo,

hier mein beschiedener Beitrag zu den vielen Fragen...


Am 26.11.2005 um 14:45 schrieb Mike Ott:

Ich komme nicht umhin, von meiner Software eine Netzwerkfähige Version zu erstellen, da viele Schulen, die mit meiner Schülerbeurteilungssoftware arbeiten ihre Compis im Netzwerk verbunden haben und das Programm nicht für
jeden Benutzer lokal installieren wollen.

Naja, du hast ja Server und Clients. Da die Clients alle ihre Daten, je nach User, vom Server bekommen, können Sie, wenn RB das mitmacht, auch theoretisch mehrfach von einem Server aus gestartet werden und lokal auf dem jeweiligen Rechner laufen.

Oder sollen die Daten, die die Lehrer eingeben, nur auf diesem Rechner liegen?

- Wo speichert man am besten die Einstellungsdatei (Pref) der verschiedenen Benutzer? "Eigene Dateien", damit jeder sicher Schreib- und Leserechte hat?

Ich würde alles auf dem Server speichern, in einer DB oder so. Je nach Login werden die Daten übertragen. Vielleicht verschlüsselt, bietet sich an ;-)

- Die eigentlichen Benutzerdateien kommen wohl in die eigenen Dateien des
Benutzers, da nur dieser damit arbeiten soll.

Wobei für die Lagerung auf dem Server spricht, dass sich der Benutzer an jeden Rechner im Netz setzen kann, und nicht auf einem bestimmten arbeiten muss. Außerdem ist es mit dem Backup so einfacher.

- Wo speichert man am besten die Registrationsdatei für den Serialcheck der
Erstinstallation?

Ich würde nur den Server so schützen, ohne ihn leben die Clients ja nicht.

- Wenn jeder Benutzer seine eigenen Benutzerdateien verwendet, reicht dann
eine SingleUser DB?

Wenn du deinen Server so programmierst, dass nie gleichzeitig auf die selben Daten zugegriffen wird und niemand Daten liest, die ein anderer gerade zum bearbeiten geöffnet hat... (Was du auch bei einer Multi-User-DB musst..) Es sollte auch immer nur eine Transaktion laufen, also nur begrenzt Threads im Server. (nur ein Thread darf auf die DB zugreifen, sonst kann dein RB sich verabschieden! Aber wenn das das einzige Problem wäre...)
Siehe auch Stichwort "Data-Race-Situations"

- Gibt es eine Möglichkeit, die Anzahl Benutzer der Software im Netzwerk zu
kontrollieren bzw. zu  begrenzen? Wie wäre der Zugriff auf eine solche
zentrale Verwaltungsdatei?

Du schreibst den Server, der zählt die Clients mit, die angemeldet sind. Wenn es zu viele werden, meckert er halt bei den nächsten Anmeldungen rum.

- Wie erfährt man den Benutzername des gerade angemeldeten Users im
Netzwerk?

Meinst du den Windows/Mac/Sonstwas-Login auf dem Server oder den deines Clienten auf dem Server?

- Was gibt es sonst noch zu bedenken, wenn man eine Software Netzwerkfähig
machen will?

Data-Race-Probleme, wenn mehrere Clients auf die selben Daten zugreifen können.

Data-Race-Beispiel (Es handelt sich um die selben Daten):
A liest Daten ein und verändert sie irgendwie
B liest Daten ein und verändert sie ebenfalls
A schreibt seine Daten, die auf den zuerst gelesenen Daten beruhen
B schreib seine Daten, die auf den Daten vor dem Ändern durch A beruhen.
Genau jetzt sind Änderungen von A überschrieben und niemand hat's gemerkt.


So, ich hoffe, das war hilfreich ;-)

Andreas

<Prev in Thread] Current Thread [Next in Thread>