Einzelnen Beitrag anzeigen

hanspeter

Registriert seit: 26. Jul 2003
Ort: Leipzig
1.350 Beiträge
 
Delphi XE2 Professional
 
#4

Re: Client-Server Architektur oder anderes ?

  Alt 30. Okt 2009, 23:01
Zitat von mjustin:
Standards wie SOAP oder REST (für synchrone Verarbeitung) und Message Queues (für asynchrone Auftragsverarbeitung) helfen ab einer bestimmten Anwendungsgröße sehr, den Boden nicht zu verlieren - erfordern aber auch einen etwas höheren Aufwand...
Cheers,
Ich habe jetzt mein erstes ASP.NET Projekt fertig gestellt und bin von der Webtechnologie recht angetan.
Da mir bei einem Programm( >1.2 Mio Quellzeilen) langsam die Komplexität über den Kopf wächst, suche ich nach einer Lösung.
Viele Aufgaben die jetzt vom Client erledigt werden, könnten eigentlich von zentralen Serverproceduren erledigt werden. Da Firebird keine Transaction
in SP kennt, bleibt eigentlich nur die Lösung auf dem Server Verarbeitungsprogramme anzutriggern.
SP in Firebird, besonderst wenn sie mit vielen Datenbankoperationen länger laufen, erzeugen mir immer wieder einen deadlook.
Die Möglichkeiten mit Delphi ein großes Programm zu modularisieren, sind einfach zu beschränkt und störanfällig.
Das konkrete Programm steuert große Sportveranstaltungen.
Hier mal ein Beispiel:
Ein externer Client ist ein Richterarbeitsplatz. Hier wird eine Startliste und eine temporäre Ergebnisliste vom Server angefordert und angezeigt.
Im Polling muss gelegentlich nachgefragt werden, ob sich etwas in der Liste geändert hat. Ein Serverrequest bei Listenänderung wäre die bessere Lösung.
Es wird ein Ergebnis erfasst. Das Ergebnis wird in der Ergebnisliste einsortiert und es erfolgt eine temporäre Platzierung. Bereits die Ergebnissortierung ist nicht trivial und erfordert unter Umständen mehrere Durchläufe.(z.B. kombinierte Wertungen.) Danach muss die neue Rangierung auf dem Server geschrieben werden.
Diese Rangierung wird z.B. life von Anzeigeplätzen und vom Fernsehschriftgenerator abgerufen.
Was ich mir, mit den Webtechnologien im Hinterkopf vorstelle ist ein quasi asynchroner Betrieb.
Der Client fordert eine Startliste an und zeigt diese an.
Immer wenn sich in dieser Liste etwas ändert, dann sendet der Server einen Request.
Der Client schickt ein Ergebnis zum Server.
Der Server ordnet dieses ein, nimmt die Rangierung vor und sendet dann einen Request, das sich im Ergebnis etwas geändert hat.
Der betreffende Client holt sich dann die neue Liste ab.
Der Effekt, den ich mir vorstelle, wäre auf dem Server eine GUI lose Programmierung Baustein Input - Baustein Output ein fast linearer Programmablauf.
Firebird kann zwar einen Event schicken. Diesen Event kann ich aber nicht mit zusätzlichen Spezifikationen versehen. Die Abfrage des Events erfolgt letztendlich im Polling-Betrieb.
Hier bin ich gerade dabei die Möglichkeiten modernerer Technologien auszuloten und deshalb für jeden Ratschlag dankbar,

Peter
  Mit Zitat antworten Zitat