![]() |
AW: Client/Server Architektur realisieren - Ideen
Zitat:
Eine "feste" Verbindung zur Datenbank in einer Anwendung? Das scheint mir genauso sinnvoll wie hart kodierte Dateinamen. Gruß K-H |
AW: Client/Server Architektur realisieren - Ideen
Zitat:
|
AW: Client/Server Architektur realisieren - Ideen
Zitat:
Zitat:
|
AW: Client/Server Architektur realisieren - Ideen
Zitat:
1. Optimierte Routine in Deiner Anwendung. 2. Umsetzen/Parsen in einen String. 3. String wieder als Bytes per TCP senden 4. Bytes wieder in String konvertieren 5. String auseinander nehmen 6. Routine um aus dem String eine Anfrage zu kodieren 7. Umsetzen in JSON 8. Anfrage an PHP (oh grusel) 9. PHP Interpretiert die JSON Anfrage 10. Wieder SQL daraus machen 11. Am Server per TCP anfragen Und dann das ganze wieder zurück? Sehen wir mal von meine Abneigung zu PHP ab... Stringanalysen sind immer langsam und Du hast zu viele Konvertierungen. SQL ist mir schon nicht kompakt genug... Also Übertragungen und Kommandos so knapp wie möglich halten... Besonders wenn Du diese sowieso per TCP Übertragen willst. Absender, Kommando, SeekNr, DatenbankID sind bei mir 7 Byte... Wenn man jetzt noch die MTU und ggf. noch für das P2P Protokoll die Daten berücksichtig, ergeben sind 1452 Bytes für Nutzer Daten. Das ist meine Größe für eine optimale Datenübertragung von mehreren Kommandos... Aber vielleicht optimiere ich an dieser Stelle auf ein bisschen weit... Also vergiss den Absatz. :oops: Mavarik |
AW: Client/Server Architektur realisieren - Ideen
Zitat:
Und ob ein Parser 0.1 ms oder 1.5ms zum Analysieren des Kommandos benötigt, ist jetzt auch nicht so entscheidend. Zitat:
Deine Überlegungen sind grundsätzlich nicht falsch, aber hier vermutlich deplaziert, wie Du schon festgestellt hast. Bei einer Messdatenerfassung in Echtzeit würde ich dich allerdings konsultieren ;-) |
AW: Client/Server Architektur realisieren - Ideen
Zitat:
Zugegeben... Manchmal ist es egal ob etwas doppelt so lange braucht. I.d.R. wartet die Software sowieso auf die nächste Eingabe des Benutzers. Aber wenn eine Aktion schon eine Sekunde dauert - dann fängt es an zu nerven... Beste Beispiel Du klickst auf einen Button und nix passiert. Nur weil die Routine dahinter keine Ausgabe hat oder den Button nicht sofort Disabled. Also besonders in den Basis-Routinen sollte man immer ein Augenmerk auf die Performance halten. Da gehören die Datenbankzugriffe klar mit rein. Daher drehen sich immer Sand-Uhren. Dummes Beispiel: Wäre doch schön, wenn ein Programm zum Beispiel bei Aktualisierungen von immer wieder aufgerufenen Listen die ersten 50 Einträger immer aktuell im Speicher hat. Wenn der Benutzer die Liste aufruft - Schwupdi... Liste da! Rest wird - im Thread - nachgeladen. - wie gesagt blödes Beispiel - aber ich denke die Idee ist ausbaufähig. Mavarik |
AW: Client/Server Architektur realisieren - Ideen
|
AW: Client/Server Architektur realisieren - Ideen
Zitat:
Zitat:
Richtig ist, das es seit Jahren eine Vollpfostenmentalität gibt, die auf kompletter Unwissenheit und Borniertheit beruht und mit dazu beiträgt, das Bandbreiten und CPUs immer breiter schneller und tiefergelegt werden müssen. Nachdenken bzw. ein Bewusstsein für überflüssigen Schnickschnack ist aber wichtig, finde ich. Aber -mal wieder- Themaabdriftung. |
AW: Client/Server Architektur realisieren - Ideen
Zum Thema:
Wofür soll der Windows-Dienst mit dem TCP-Server benutzt werden? Der ist mMn völlig überflüssig. Man nehmen einen MessageQueue-Server seiner Wahl und fragt dort nach Nachrichten. Achtung, nur in einem separaten Thread, denn wenn nichts in der Queue ist, dann dauert diese Abfrage ein Weilchen. Ist etwas in der Queue, dann bekommt man auch prompt die Antwort, wirft diese dann in der Anwendung in die Runde und wartet auf/holt sich die nächste Nachricht. Der Rest geht mit der REST-API. |
AW: Client/Server Architektur realisieren - Ideen
Moin!
Zitat:
Diese und andere kleine Aufgaben soll der Server bewerkstelligen. Ich denke, es ist nicht verkehrt, einen solchen zu implementieren. Zur Kommunikation bin ich jetzt gedanklich dabei stehengeblieben, ein Record zu versenden. Ist das okay? Das Record soll mindestens den Timestamp, Absender und die Anfrage (json_string) beinhalten. Mir fällt leider nichts anderes als ein json_string ein. Und da sehe ich ein Problem: Manchmal muss es sein, dass 500+ Einträge aus der DB geladen werden. Jeder Eintrag ist ein Objekt - sagen wir mal, ein Adressen-Objekt. Diese Liste nun in einen json-String zu konvertieren dürfte ziemlich aufwendig / unperformant sein, oder? Welche Möglichkeit gibt es noch, Objekte/Objectlists über das Netzwerk zu versenden? Danke! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:14 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz