Parallelitätssteuerung

  • VB.NET
  • .NET (FX) 4.5–4.8

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

    Parallelitätssteuerung

    Ich denke über folgendes Scenario nach:
    • An einem Notebook (A) werden Daten erfasst und über Netzwerk per TCPIP an einen Server gesendet.
    • Der Server (B) empfängt die Daten und speichert sie.
    • An einem weiteren Notebook (C) (ebenfalls über eine TCPIP mit dem Server verbunden) werden die erfassten Daten ausgewertet und auf einem Großdisplay angezeigt.
    Es handelt sich hierbei um ein Wettkampfsystem, sodass die mit (A) erfassten Daten auf (C) in Echtzeit verarbeitet werden müssen.
    Ich würde gerne mit typisierten Datasets arbeiten.
    Gibt's nun eine Möglchikeit, die Verbindungen so aufzubauen, das die Datasets auf Veränderungen automatisch reagieren, oder muss der Server die empfangenen daten explizit weiterreichen?
    Er muss sie natürlich weiterreichen.
    Minimal muss er eine Notifikation senden, dass sich was geändert hat.
    Oder du musst halt pollen (ich nehme an, der Begriff ist dir bekannt).

    Von MsSqlServer weiß ich, dass er auch über ein Benachrichtigungssystem verfügt.
    Aber das war zu meinen Zeiten so umständlich, dass man eiglich lieber gepollt hat.
    Jdfs grundsätzlich ist eine Db ein passives System - nur auf Anfragen antwortend.
    Danke für den Hinweis.
    Pollen ist mir zu Resourcenintensiv, da es insgesamt bis zu 6 Notebooks (A) geben kann.
    Ich hab's jetzt durch Push-Nachrichten vom Server (B) aus zum Notebook (C) gelöst.
    Funktioniert zufriedenstellend.
    Na ja:
    Polling: Client (C) guckt in Abständen nach, ob der Server (B) was Neues hat.
    Pushing: Server (B) erhät Telegramm von Client (A) und schickt es an Client (B) weiter.

    Die Telegramme sind so aufgebaut, dass sich der Sender identifizieren lässt. Und der Server arbeitet dann einfach eine List(of Connection) ab, und sendet das Telegramm weiter.
    Ist wirklich EasyPeasy.

    us4711 schrieb:

    Der Server (B) empfängt die Daten und speichert sie.<br>An einem weiteren Notebook (C) (ebenfalls über eine TCPIP mit dem Server verbunden) werden die erfassten Daten ausgewertet und auf einem Großdisplay angezeigt.
    Wenn beide im selben Netzwerk liegen, kannst du die Daten auch "auslesen". Dazu die Anwendung als Administrator starten und den TCP Client so konfigurieren, dass er im "Promiscious Mode" läuft (alles ALLES mitliest - tut er zwar eh - jetzt nimmt er die Daten auch an) und anschließend die TCP Daten auslesen (dazu auch am besten gleich eine Libary SharpPcap verwenden)

    us4711 schrieb:

    die Verbindungen so aufzubauen, das die Datasets auf Veränderungen automatisch reagieren, oder muss der Server die empfangenen daten explizit weiterreichen?
    Wenn du das wie oben machst, dann brauchst du eigentlich keinen Server
    In general (across programming languages), a pointer is a number that represents a physical location in memory. A nullpointer is (almost always) one that points to 0, and is widely recognized as "not pointing to anything". Since systems have different amounts of supported memory, it doesn't always take the same number of bytes to hold that number, so we call a "native size integer" one that can hold a pointer on any particular system. - Sam Harwell
    @Radinator
    Interessante Technologie. Werd' ich mich mal mit beschäftigen. Im Moment drückt mal wieder die Zeit, da in zwei Wochen mein Programmsystem in einem recht großen Judo-Turnier zum Einsatz kommt. Daher: Keine Zeit für neu Technologien, zumal der von mir skizzierte Ansatz gut funktioniert. Er hat darüberhinaus den Vorteil, das mit einem dedizierten Server zunächst einmal die veränderten Daten persistiert werden, und damit in recht hohem Maße failsave sind.
    Aber nochmals danke für Deinen Hinweis.