Laden...

Zugriff direkt über Datenbank oder "zwischengeschalteten WCF Server" (Performance) ??

Erstellt von Fracoon vor 16 Jahren Letzter Beitrag vor 16 Jahren 1.137 Views
F
Fracoon Themenstarter:in
85 Beiträge seit 2007
vor 16 Jahren
Zugriff direkt über Datenbank oder "zwischengeschalteten WCF Server" (Performance) ??

Hi@all,

hab da mal wieder ne Frage =).

Was ist schneller? Warum? und Wieviel?

  1. Clientapplikation greift direkt auf einen MSSql 2005 Server mittels LinqToSQL oder NHibernate zu,

  2. Client greift auf einen Server mit WCF zu um sich die Daten aus der DB zu holen. Der Server holt die Daten mittels Linq oder NHibernate aus der Datenbank und stellt sie mittels WCF zur verfügung.

Ich würde gerne WCF benutzen:

  • um dann auf der "Serverebene" Berechtigungen zu vergeben
  • Die authentifizierung durchzuführen
  • Eine "Locking" funktionalität zu Implementieren, sodass Datensätze nur einmal zum bearbeiten geöffnet werden können.

Welche Nachteile hätte ich mit WCF gegenüber dem direkten Datenbankzugriff?
Möglichkeit 1 habe ich schon ausprobiert. Mein Hauptproblem hierbei ist, dass man so keine Datensätze auf vernünftigem Weg sperren kann!

Bevor ich mich jetzt in Möglichkeit 2 stürze wollte ich mal eure Meinungen hören.

Oder ist eine Kombination aus beidem denkbar / sinnvoll?

3.728 Beiträge seit 2005
vor 16 Jahren
Geschwindigkeit

Hallo Fracoon,

im Allgemeinen ist der direkte Zugriff auf den SQL Server deutlich schneller. Die Abfrageergebnisse müssen nur einmal übers Netzwerk versendet werden. Nämlich vom SQL Server zum Client. Bei einem zwischengeschaltetem Applikationsserver müssen die Abfrageergebnisse zuerst zum Applikationsserver transportiert und anschließend zum entsprechenden Client. Das ist per Faustregel schon mal der doppelte Netzwerkverkehr. Hinzu kommt, dass der Applikationsserver die Daten noch parsen und verarbeiten muss. Wenn jetzt noch ein XML basiertes Transportprotokoll (z.B. SOAP) eingesetzt wird, blähen sich die Daten nochmals um einiges auf, was die Netzwerklast weiter erhöht. Applikationsserver sind deshalb generell langsamer, als ein direkter Datenbankzugriff.

Trotzdem ist eine n-Tier Architektur erstrebenswert. Wer nur schnell ist, ist sonst nämlich gar nichts. Ich stelle mir ein n-Tier Applikation in etwa so vor: .NET Applikationsserver

F
Fracoon Themenstarter:in
85 Beiträge seit 2007
vor 16 Jahren

Hallo Rainbird,

mit deiner Antwort habe ich gerechnet, da ich deinen Applikationsserver schon gesehen und getestet habe =).

Vielen Dank für deine Antwort. Verstehe ich dich also richtig? Du sagst ein Applikationsserver ist also in jedem fall dem direkten zugriff vorzuziehen?

3.728 Beiträge seit 2005
vor 16 Jahren
Nicht Pauschalisieren!

Hallo Fracoon,

es kommt auf die Anwendung an. Wenn Du eine Mini-Anwendung schreibst, um Deine CDs zu verwalten, setzt Du das nicht auf einem Applikationsserver auf. Wenn aber eine komplexe Geschäftsanwendung für 50 Benutzer entstehen soll, würde ich das - Stand heute - zu 99% mit einem Applikationsserver machen. Es gibt aber immer Ausnahmen. Du musst bei jedem Projekt die Stärken und Schwächen der möglichen Architekturen abwägen. Es können auch nichttechnische Gegebenheiten sein, die die Wahl der Architektur beeinflussen. Allem voran das Budget. Es ist definitiv aufwändiger eine n-Tier Applikation zu schreiben, als eine 2-Tier Applikation. Das Entwickler-Team benötigt entsprechendes Fachwissen, damit aus der n-Tier Applikation kein Schuh wird. Mitunter ist ein Chef oder AUftraggeber, trotz vieler guter Argumente für n-Tier, nicht bereit den Mehraufwand in Kauf zu nehmen. Skepsis gegenüber neuen Verfahren und Technologieen ist auch ein Punkt. Mache bleiben lieber beim alt bewährten.

Auf der CeBit ist mir aufgefallen, dass jetzt viele Anbieter von Geschäftssoftware für den Mittelstand dabei sind ihre Applikationen auf n-Tier Architektur umzustellen. Applikationsserver - insbesondere WCF betriebene - sind also eigentlich gefragt.

F
Fracoon Themenstarter:in
85 Beiträge seit 2007
vor 16 Jahren

Danke =)

hab mir in der zwischenzeit mal das wcf etwas angeschaut. Finde jedoch nur wirklich Einführungs Tutprials. Kennt jemand was, das etwas tiefgreifender das WCF behandelt?

3.728 Beiträge seit 2005
vor 16 Jahren
Msdn

Hallo Fracoon,

am besten schaust Du Dir die WCF Dokumentation in der MSDN Library an: http://msdn2.microsoft.com/de-de/library/ms735119(en-us).aspx

Tiefgreifender gehts nicht.