Seite 1 von 1

per Web frontend Qt programm steuern

Verfasst: 19. März 2013 00:34
von JohnR
Hi

Aktuell habe ich eine Anwendung welche sozusagen aus 2 Teilen besteht... Teil 1 läuft direkt auf dem Webserver ohne GUI und updatet von externen Sourcen die Datenbanken,pflegt also neue Datensätze ein ect. , Teil 2 ist der Client und greift von lokalen PCs auf die DB zu um aus den Datenbeständen .csv Dateien zu generieren.

Meine Frage wäre...
Gibt es einen Weg auch den 2. Teil auf dem Server laufen zu lassen um darauf bspw. aus einer mit php generierten Seite darauf zugreifen zu können ?
Oder anders formuliert, gibt es einen Weg wie ich Daten in einer via html oder php generierten Webseite eingebe, oder zum Bsp eine Liste lade und dies im Hintergrund dann von einen qt Programm auf dem Server abarbeiten lasse und wieder ausgeben lasse ?
Sicher geht das auch komplett in php zu realisieren, aber es hängt halt noch ne Menge mehr dran was zum Bsp. das durchsuchen und filtern der zu bearbeitenden Listen via Regex angeht und dies ist schon komplett in qt geschrieben.... bevor ich das jetzt alles in php umschreibe wäre mir ein "Aufruf" mit bsp. Parameterübergabe über eine Webseite wohl lieber :-)

mit freundlichen Grüßen
John

Re: per Web frontend Qt programm steuern

Verfasst: 19. März 2013 01:06
von veeman
Wenn du die Möglichkeit hast und unbedingt eine Qt-Anwendung auf dem Server laufen lassen willst.
Dann ist meiner Meinung nach die eleganteste Lösung das ganze über einen Websocket zu machen, damit kannst du direkt aus dem Webbrowser mit deiner Qt-Anwendung kommunizieren.

Mfg veeman

Re: per Web frontend Qt programm steuern

Verfasst: 19. März 2013 13:16
von JohnR
Danke, ich lese mich da mal rein :-)

Re: per Web frontend Qt programm steuern

Verfasst: 25. März 2013 10:14
von GoaSkin
Ich mache das immer so, dass ich über die QDBUS-Komponente in QT einige Slot-Funktionen im Programm über dbus steuerbar mache und im Web-Skript dafür sorge, dass dem Programm DBUS-Signale gesendet werden. Je nach verwendeter CGI-Sprache stehen manchmal DBUS-Funktionen bereit. Im Zweifelsfall kann man das Skript aber auch den Shell-Befehl 'dbus-send' aufrufen lassen.

Sofern das QT-Programm und der Webserver nicht unter dem selben User laufen, ist es notwendig, einige Enviroment-Variabeln manuell zu setzen.

Re: per Web frontend Qt programm steuern

Verfasst: 26. März 2013 00:28
von JohnR
Das klingt sehr interessant :-) Danke!

Re: per Web frontend Qt programm steuern

Verfasst: 28. März 2013 14:22
von RHBaum
Gibt noch mehre moglichkeiten:
damit kannst du direkt aus dem Webbrowser mit deiner Qt-Anwendung kommunizieren.
Websockets ist nen generisches Protokoll mit Handschake und ner menge unterprotokollen.
macht aber auch bissi overhead. Ob man das an der Stelle braucht, keine Ahnung ....

Richtig Sinn machen wuerde es, wenn man dem Client/binary auch den Umgang mit websockets bei bringt, weil dann koennt man:
a: den Webserver direkt umgehen und den DatenHost auch direkt ansprechen
b: den Webserver nur als "gateway" verwenden, also der Web-Server weiss dann von gar nix, hat null logic (brauch also nix fuer den webserver programmieren) und reicht einfach nur die websocket komminikation an den Datenhost durch. Ist natuerlich nuetzlich, wenn die clients nicht direkt an den Datenhost kommen, sondern nur der server, oder du das Protokoll zentral erweitern willst, also durch ne Authentication, oder SSL verschluesselung, das koennte dann der Web-Server mit standard mitteln machen.

Ansonsten kannst du aber auch einfach nen Modul/sript fuer deinen Server schreiben, was anfragen aufbereitet,per jeglich erlaubter IPC (meist eh tcp/ip) mit dem datenhost communiziert und sich die Daten abholt, selber in xml aufbereitet und als Antwort zurueckschickt.

Du kannst auch teile deines QT basierenden Programmes verwenden, um eine konsolenanwendung zu schreiben (stdin/stdout) die anfragen bearbeiten und antworten als daten (xml) ausgibt, das ganze dann cgi Prog in deinem Webserver integrieren ....

da gibts echt ne Menge möglichkeiten ^^
Wenn performance keine rolle spielt, solltest die wege wählen, wo dich am besten auskennst, bzw am besten ressourcen zu aquirieren kannst.

Ciao ...