Laden...

WCF: Zyklisch viele Daten übertragen

Erstellt von david.ka vor 13 Jahren Letzter Beitrag vor 13 Jahren 1.409 Views
D
david.ka Themenstarter:in
343 Beiträge seit 2005
vor 13 Jahren
WCF: Zyklisch viele Daten übertragen

Hallo,

ich bin gerade dabei ein kleines SCADA Programm zu schreiben.
Dieses besteht aus 2 Teilen.

  1. SCADA Server (Kommunikation zur SPS, bereitstellung der Signale)
  2. SCADA Client (Oberfläche)

Nun bin ich auf der Suche nach einem Best-Practise für die Realisierung der Kommunikation über WCF.
Die Oberfläche sollte die Daten jede Sekunde aktualisieren.
Es können mehrere Clients gleichzeitig laufen.

bin über jeden vorschlag dankbar.

viele grüße
david

Programming is like sex: One mistake and
you have to support it your lifetime

D
david.ka Themenstarter:in
343 Beiträge seit 2005
vor 13 Jahren

kann mir keiner helfen? hochschieb

Programming is like sex: One mistake and
you have to support it your lifetime

2.760 Beiträge seit 2006
vor 13 Jahren

Naja du hast dein Problem auch sehr allgemein formuliert bzw. erschließt sich mir nicht ganz was du für ein Problem hast.
Es würde mich z.B. wundern wenn die Kommunikation mit der SPS durch die WCF realisiert werden könnte also denke ich das es dir darum geht die gesammelten Daten den Clients über einen Service zur Verfügung zu stellen?

Wenn das der Fall ist dann sehe ich das Problem nicht so recht. Baue einfach einen normalen Service und frag ihn vom Client aus Timer gesteuert ab.

D
david.ka Themenstarter:in
343 Beiträge seit 2005
vor 13 Jahren

Wenn das der Fall ist dann sehe ich das Problem nicht so recht. Baue einfach einen normalen Service und frag ihn vom Client aus Timer gesteuert ab.

Hallo jaensen,

genau das habe ich mir auch gedacht, allerdings habe ich da etwas bedenken wenn pro Client ca. 1000 Signale die Sekunde angefordert werden.
Ich bin im Bereich WCF noch relativ unerfahren, deshalb auch meine allgeim formulierte Frage.

Programming is like sex: One mistake and
you have to support it your lifetime

2.760 Beiträge seit 2006
vor 13 Jahren

Naja kommt auch daruaf an wie die aussehen. Wegen der Latenz etc. sollte das keine Probleme machen. Wenn es 1000 Integers sind sollte es ebenfalls kein Problem sein. Wenn es allerdings 1000 Bitmaps von einer Kamera sind dann siehts anders aus 😉

Evtl. musst du auch immer gar nicht alles übertragen sonder nur ein Delta? Um wie viele Clients handelt es sich denn ca. ?

D
david.ka Themenstarter:in
343 Beiträge seit 2005
vor 13 Jahren

10 Clients sollten auf jeden fall machbar sein.
Das mit dem Delta ist eine gute Idee.

was wäre denn der beste Weg um die Daten zu übertragen (meist double)?
eine Dictionary/List mit allen Werten, oder jeden Wert einzeln?

Programming is like sex: One mistake and
you have to support it your lifetime

2.760 Beiträge seit 2006
vor 13 Jahren

Lieber alles in ein simples Array verpacken und alles auf einmal schicken. Da dürften die 10 Clients eigentlich kein Problem darstellen.

[EDIT] Damit sind nur die Werte gemeint, das mit dem Delta gilt trotzdem.

M
153 Beiträge seit 2010
vor 13 Jahren

1000 Werte pro Sekunde: Das sollte kein Problem sein. Es stellt sich allerdings schon die Frage, welchen Mehrwert die WCF für Dein Projekt mitbringt. Die Stärken von WCF kommen da eigentlich nicht zum Tragen.

Wenn mit WCF, dann wäre eine Kommunikation über einen Service-Bus von Vorteil, oder - als zweitbeste Lösung - einen Callback vom Service zum Client, dann eben jede Sekunde einmal.

Wie auch immer, ich empfehle eine einfache Übertragung. Also - wenn möglich - keine 1000 Objekte zum Client übertragen, sonder, wie vorgeschlagen, ein Array oder ein anderes, einfaches, Konstrukt.