per Web frontend Qt programm steuern

Verschiedenes zu Qt
Antworten
JohnR
Beiträge: 42
Registriert: 3. Dezember 2011 12:23

per Web frontend Qt programm steuern

Beitrag 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
veeman
Beiträge: 277
Registriert: 3. Oktober 2012 01:43
Kontaktdaten:

Re: per Web frontend Qt programm steuern

Beitrag 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
JohnR
Beiträge: 42
Registriert: 3. Dezember 2011 12:23

Re: per Web frontend Qt programm steuern

Beitrag von JohnR »

Danke, ich lese mich da mal rein :-)
GoaSkin
Beiträge: 103
Registriert: 13. Juni 2007 00:14
Wohnort: Darmstadt

Re: per Web frontend Qt programm steuern

Beitrag 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.
JohnR
Beiträge: 42
Registriert: 3. Dezember 2011 12:23

Re: per Web frontend Qt programm steuern

Beitrag von JohnR »

Das klingt sehr interessant :-) Danke!
RHBaum
Beiträge: 1436
Registriert: 17. Juni 2005 09:58

Re: per Web frontend Qt programm steuern

Beitrag 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 ...
Antworten