Announcement

Collapse
No announcement yet.

Ist eine Kommunikation über Port 80 mit Callback möglich?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Ist eine Kommunikation über Port 80 mit Callback möglich?

    Hallo,

    beschäftige mich jetzt einige Zeit mit WCF und versuche einen bestimmten Aufbau umzusetzen b.z.w. zu verstehen. Bin aber noch nicht dahinter gekommen, wie das Binding funktionieren soll. Vielleicht kann mir jemand beim klären helfen.

    Aufbau:
    Auf einer bekannten Maschine läuft ein Werbserver der anfragende Clients mit den IExplorer Seiten versorgt. Diese Seiten sind Silverlight XAML Seiten, die UserControls enthalten. Diese UserControls fragen Daten über den Webserver von nachgelagerten Datenquellen (z.B.: via OPCServer aus SPS) an und werden auch bei Datenänderung benachrichtigt. Das Ganze soll mittels http ablaufen und über Port 80 stattfinden, damit keine Firewall blockt.

    Das Ziel:
    Die Server Maschine ist also speziell eingerichtet und besitzt auch alle Rechte. Von der Außenwelt kann sich jeder Client ohne Rechte und zusätzliche Installation verbinden und die Seiten mit online Daten anzeigen.

    Was ich bis jetzt gefunden habe:

    Zuerst das ABC:

    - A: http://localhost/test , also http Protokoll und Port 80 (default,
    wenn keine Angabe) wegen FireWall, die ist ja bei 80 überall offen.
    - B: Hier scheiden sich schon die Geister. Es gibt (u.a.):
    > WCF BasicHttpBinding (nur Verbindung und keine Rückmeldung)
    > wsDualHttpBinding (Verbindung mit einmaliger Rückmeldung)
    > PollingDuplexHttpBinding (Verbindung mit einmaliger Rückmeldung
    und gepollter Client anfrage)

    Das wsDualHttpBinding würde ja alles erfüllen, wenn nicht bei
    Datenänderung ein CallBack nötig wäre und die UserControls
    benachrichtigt werden müssten. Da der Client sich aber über http
    verbindet, hat dieser keinen Endpunkt. Also wie soll man das
    UserControl erreichen? Polling kann es ja eigentlich nicht sein. Wenn
    ich mir vorstelle das 100 UserControls auf der Seite sind und 20
    Clients beim Server anfragen dürfte die Leitung beim Polling dicht sein!

    - C: Als Contract kann eigentlich nur CallbackContract in frage kommen,
    damit ein UpDate stattfinden kann.

    Liege ich falsch mit meinen Überlegungen, oder gibt es noch einen anderen Weg? Es gibt eine Applikation die behauptet wie oben beschrieben zu funktionieren, aber wie soll das gehen?

    Wäre dankbar für eine Hilfe, Danke.

  • #2
    Ich würde mal sagen, da hängt alles von der zu bewegenden Datenmenge ab. Wenn du 20 pollende Clients hast, die alle 5 Minuten nach den Top 10 der Hitparade fragen, dann sollte der Webserver das eigentlich schaffen Wenn du aber auf die Art streaming radio machen willst, wird es damit wohl nicht funktionieren. Könntest du uns daher vielleicht anhand eines Beispiels zeigen, um was und in welchem Unfang es da geht?

    bye,
    Helmut

    Comment


    • #3
      Das ist nicht ganz so einfach, da das von der Änderung der Daten abhängig ist. Aberr nehmen wir doch einfach mal an:
      Jedes UserControl zeigt 4 Datenpunkte, ein Bool und zwei Int32 und ein Float. Diese Daten ändern sich alle Sekunde. Die Übertragung von der Quelle (also Server) bis zum Ziel (visuelle Anzeige im UserControl) soll so schnell wie möglich stattfinden. Ist auch wünschenswert, da die Daten Prozesse in irgend welchen Anlagen bedeuten. Und die möchte ich sozusagen Online sehen.

      Comment

      Working...
      X