Konzeptlösung für Zugriff im lokalen Netzwerk gesucht

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von hal2000.

    Konzeptlösung für Zugriff im lokalen Netzwerk gesucht

    Hallo zusammen,

    zur Zeit überarbeite ich meine eigene Software. Das alte Konzept beruht auf drei Versionen (GWBASIC, VB5 und VB2008) und soll nun einheitlich auf VB2008 umgestellt werden. Mein Problem bzw. die Wahl des richtigen Konzept ist, die Datenspeicherung und der Datenzugriff. Im Jahre 2008 hatte ich die Möglichkeit - bedingt durch einen Blitzeinschlag - im ganzen Haus kostengünstig ein Leitungswerk (Cut 7 / 16 Port's) zu installieren. Nun sind an diesem lokalen Netzwerk zur Zeit 4 Rechner (Windows 7) angeschlossen, sowie ein Homeserver (Netgear MS 2110 ). Die Datenspeicherung erfolgt in Accsess-Datenbanken (Office 2000), welche ich auch gerne beibehalten möchte. Die VB-Anwendungen (.exe) sind auf dem jeweiligen Rechner installiert. Beim Programmstart werden nun Daten vom Homeserver benötigt (Termindaten, Kontaktdaten usw.) und in Elemente (Comboboxen) eingefügt. Dies erledige ich bereits in einem BGW. Nur ist diese Ladezeit einfach nicht akzeptabel.

    Vielleicht hat ja jemand von euch schonmal vor dem gleichen Problem gesessen. Bin am überlege die Daten wieder lokal pro PC zu speichern um die Zugriffzeiten zu kürzen. Nur ist dies sicherlich auch nicht die optimale Lösung (4-fache Datenspeicherung und Probleme bei der Datenaktualisierung).

    Gruß Markus
    Gruß Markus
    Hi.

    Ich habe zwar nur wenig mit Access-Datenbanken gearbeitet, aber ich lese immer wieder, dass die Netzwerkfähigkeiten von MS Access sehr eingeschränkt sein sollen. Aufgrund deines "Servers" bleibt dir nichts anderes übrig, als eine dateibasierte Datenbank zu benutzen. Beim Zugriff darauf muss jedoch immer die komplette Datei gesperrt werden, sodass ein effektiver Mehrbenutzerbetrieb nicht möglich ist, egal ob Access oder SQLite oder... verwendet wird. Das ist eine Beschränkung, die dir das entsprechende Netzwerkdateisystem aufbürdet - hier wohl SMB/CIFS - und die du nicht umgehen kannst.

    Verwende Microsoft Office auf den Clients und lagere die Access-DB auf einer Netzwerkfreigabe. Dadurch bleibt dir das Synchronisieren der Datensätze erspart, da Office dies scheibbar schon beherrscht. Siehe dazu: office.microsoft.com/en-us/acc…work-mdb-HP005240860.aspx

    Als Alternative kannst du einen SQL-Server auf einem Rechner installieren, der immer in Betrieb ist. Dieser stellt die Konsistenz der Datenbank sicher. In deinem Programm möchtest du wahrscheinlich keine Kollisionerkennung für deine Datenbankdatei implementieren - Mehrbenutzerbetrieb erfordert nämlich genau diese. Solche "Server", wie sie in der Werbung immer genannt werden, sind für dein Vorhaben leider ungeeignet.

    Hier noch ein eventuell hilfreicher Link:
    donkarl.com/?FAQ1.35
    Gruß
    hal2000
    Vielen Dank für die umfangreichen Ausführungen.

    Einen Rechner im Dauerbetrieb zu lassen scheidet sicherlich aus. Mir geht es hauptsächlich darum, die Zeit des Datenzugriff's zu verkürzen. Denke in der Realität ist es so, dass zu 80 % nur ein Rechner im lokalen Netzwerk online ist.

    Betrachtet Rechner 1 Bilder aus dem digitalen Familienalbum wartet Rechner 2 eine Ewigkeit auf andere, angeforderte Daten vom Homeserver. Weis noch nicht, wie ich das machen soll. Vielleicht doch auf jedem Rechner die Daten hinterlegen und beim Runterfahen des Rechner's einen Abgleich mit den Serverdaten vornehmen. Obwohl ich denke, dass dies auch daneben gehen wird.
    Gruß Markus
    Wenn immer nur ein Rechner online ist, ist eine dateibasierte Datenbank möglich (wenn auch nicht gerade optimal). Dazu musst du nur vor dem Zugriff eine Datei auf dem Server anlegen, die den gerade aktiven Benutzer enthält. Bevor dein Programm auf die Datenbank zugreift, muss es diese Datei überprüfen. Ist sie leer, ist der Zugriff erlaubt. Ansonsten wird die Datenbank verwendet und ist gesperrt. Dadurch verhinderst du auch Inkonsistenzen, falls z.B. Rechner 1 und Rechner 2 etwas geändert haben. Die Frage ist dann, welche Änderung Priorität haben soll. Die Lösung mit dem Abgleich beim Herunterfahren wird aus letztgenanntem Grund daneben gehen. Es ist besser, wenn die Daten sofort synchronisiert werden und die Datei dann freigegeben wird.

    Betrachtet Rechner 1 Bilder aus dem digitalen Familienalbum wartet Rechner 2 eine Ewigkeit auf andere, angeforderte Daten vom Homeserver.

    Das liegt wohl daran, dass diese "Server" keine echten Server sind. Es sind Festplattengehäuse mit Netzwerkchip, die meist eine proprietäre Software benötigen und nur richtig funktionieren, wenn es nur einen Benutzer gibt. Sorry für die Kritik an deinem Gerät - aber was sich die Hersteller da leisten ist, mit Verlaub, in den meisten Fällen Bullshit.

    Die allerbeste (aber leider auch teuerste) Lösung ist der Selbstbau des Homeservers. Gehäuse, Mini-ITX-Board, evtl. DVD-Laufwerk und 4x1TB Festplatten kosten an die 700€, wenn Geschwindigkeit, Design und Funktionalität gleichermaßen wichtig sind. Der Stromverbrauch liegt dann zwischen 30 und 40 Watt und das Linux-Serversystem liefert alle Daten schnell genug. Wahlweise kann auch Windows Home Server als OS dienen, was aber zusätzliche Lizenzgebühren mit sich bringt.
    Gruß
    hal2000
    Danke.

    Hier ist buchstäblich guter Rat teuer, da ich meinen Homeserver noch kein Jahr im Betrieb habe. Ok. da sind zwei 1 TByte Festplatten drin, die man sicher verwenden könnte. Nur sowas selbst zu basteln. Habe einen Tremor und deswegen nicht unbedingt die ruhigste Hand für solche Kniffelarbeiten. Vielen Dank nochmals für deine Vorschläge.



    Gruss Markus
    Gruß Markus
    Die meisten NAS lassen sich durch Modifikationen beschleunigen. Meine WD MyBookWorld hatte standardmäßig viele Dienste aktiviert, die ich gar nicht benötige. Seit der Deaktivierung nicht benötigter Optionen ist der Datentransfer nicht nur schneller, sondern sie "kackt" auch nicht ab, wenn ich gleichzeitig >10 GB große Dateien über 2 Rechner schreibe und lese. Da würde ich einfach mal entsprechende Foren durchstöbern.
    Gruß
    Peterfido

    Keine Unterstützung per PN!
    Es gibt zur Box auch einen SSH-Zugang, siehe: forum.ixbt.com/topic.cgi?id=11:40912#5

    Damit kannst du dein System so anpassen, wie du es gerne hättest. Erforsche das System, das als Unterbau dient. Auf diese Art wirst du bestimmt auch die ein- oder andere Beschränkung los. Diese Art von Modifikation wird dich wahrscheinlich die Garantie kosten. Wenn dir das egal ist: Have fun!
    Gruß
    hal2000