Laden...

WCF Streaming oder Shared Directory?

Erstellt von HannesB vor 13 Jahren Letzter Beitrag vor 13 Jahren 645 Views
HannesB Themenstarter:in
185 Beiträge seit 2005
vor 13 Jahren
WCF Streaming oder Shared Directory?

Hallo,

Ich möchte euch gerne zu euren Erfahrungen zum o.g. Thema fragen.
Ev. habt ihr etwas in der Art bereits implementiert und bei Projekten erfolgreich im Einsatz.

Szenario ist, dass große Datenmengen, ev. auch große Einzeldateien von einer Arbeitsstation (Client) zu einem Server übertragen werden müssen.
Technologie ist .net 3.5 unter Verwendung von WCF.
Am Server werden diese Dateien geprüft und ev. "importiert" d.h. deren Inhalt in einer Datenbank abgelegt.
Da Sql Server und Oracle unterstützt werden müssen und nHibernate zum Einsatz kommt, wird das FileStream Feature des Sql Servers nicht verwendet.
Wenn Einzeldateien sehr groß sind, werden diese in einer selbst implementierten "Blob" Storage am Dateisystem des Servers abgelegt.

Konkreter Anwendugnsfall: User legt auf seinem PC eine DVD mit zu prüfenden/importierenden Daten ein und startet einen Prozess.
Auf der CD können sich Einzeldateien befinden, welche bis zu 500MB groß sind - große Einzeldateien dürfen also kein Problem sein.
Die Daten sollen - wie geschrieben - zum Server übertragen und verarbeitet werden.
Später möchte der User die importierten Daten wieder bearbeiten - dazu muss er diese auf seine zu seinem lokalen PC übertragen und am Dateisystem ablegen. ("CheckOut" Mechanismus - Dateien müssen am Client abgelegt werden werden, da sich innerhalb diese Links befinden (ähnlich zu HTML) und ein Viewer eine Datei benötigt.)

Daraus ergeben sich imho. 2 Anwendungsfälle:

  • Import der Daten (Übertragung vom Client => Server)
  • Abfrage der Daten (Übertragung vom Server => Client)

Aus meiner Sicht gibt es 2 offensichtliche Vorgangswseisen:

  1. Arbeiten mit einem "Shared Directory", einem Verzeichnis, auf welches Server und Client Zugriff haben.
    Dieses wird zum Datenaustausch verwendet.
  2. Streaming der Daten via WCF Service.

ad 1.)
Ist vermutlich einfacher umzusetzen (Dateien kopieren), jedoch wird ein "shared Directory" benötigt.
Das kann zu Problemen mit Webapplikationen führen, welche derzeit jedoch nicht unterstützt werden müssen.

ad 2.)
Ist das eine empfohlene Vorgangsweise?
Hiermit habe ich keine Erfahrung, kann das also nicht beurteilen, denke aber, dass es hier einfacher ist, einen Web Client anzubinden.

Was sind eure Erfahrungen/Empfehlungen dazu bzw. habt ihr schon einmal eine Lösung in diesem Umfeld implementiert?

thx
hannes