Hallo zusammen,
ich bin zur Zeit dabei eine mobile Anwendung zu implementieren. Diese besteht aktuell aus einem Client und einer MySql-Datenbank die auf einem externen Server läuft. Auf der GUI zeige ich listenartig die Daten an. Ich nutze hierzu
das Model/View-Konzept von Qt. Das Model ist von QAbstractListModel abgeleitet. Innerhalb des Models holse ich mir die Datensätze aus der Datenbank mit einer Instanz der Klasse QSqlQueryModel. Soweit so gut. Jetzt möchte ich einen Schritt weiter gehen und die Verbindung zwischen dem Client und dem Server wo die Datenbank abliegt erweitern. Hierzu habe ich mir SOAP angeguckt und auch in der API QtSOAP gefunden. Damit könnte ich clientseitig ein Frontend implementieren. Die Frag die ich mir nun Stelle ist ob ich für das Backend auf dem Server Qt C++, Qt Python oder Java einsetzen soll. Da ich noch nie einen Webservice implementiert habe ist die Materie für mich Neuland und hoffe Ihr könnt mir beim evaluieren helfen. Im Grunde würde ich in Zusammenarbeit mit euch grundlegende Konzepte diskutieren welche sich beispielsweise auf Sicherheit (Verschlüsslung), Datenkonsistenz (Datenverlust bei Übertragung) etc. beziehen. Vllt habt Ihr auch schon ähnliche Anwendungen programmiert und könnt eure Erfahrungen mit mir teilen.
Vielen Dank an Euch
Client-Server Architektur | WebService mit Datenbank
Re: Client-Server Architektur | WebService mit Datenbank
Sicherheit und Datenkonsistenz sollten keinen einfluss auf die Wahl der Programmiersprache an der stelle haben, es wird mit allen moeglich sein, was gescheites zu implementieren.
Python und Java haetten den Vorteil der (besseren) Plattformunabhaengigkeit,
c/c++ muesstest extra draufhin programmieren (Code Plattformunabhaengig) um für jede plattform compilierbar zu werden.
mit Python/Java wirst, je nach skills, beim coden etwas flotter unterwegs sein ...
c/c++ wiederum haett den vorteil, das die ressourcen besser controllieren kannst und generell etwas weniger brauchst. Hasst du Last / Leistungsprobleme, tust dich hier evtl. leichter.
Wenn das alles nicht prior ist, bleibts an deinen SKills haengen ... Was kannst besser ? was macht dir mehr spass
Ciao ...
Python und Java haetten den Vorteil der (besseren) Plattformunabhaengigkeit,
c/c++ muesstest extra draufhin programmieren (Code Plattformunabhaengig) um für jede plattform compilierbar zu werden.
mit Python/Java wirst, je nach skills, beim coden etwas flotter unterwegs sein ...
c/c++ wiederum haett den vorteil, das die ressourcen besser controllieren kannst und generell etwas weniger brauchst. Hasst du Last / Leistungsprobleme, tust dich hier evtl. leichter.
Wenn das alles nicht prior ist, bleibts an deinen SKills haengen ... Was kannst besser ? was macht dir mehr spass
Ciao ...
Re: Client-Server Architektur | WebService mit Datenbank
Vielen Dank erstmal für die Antwort...
...im Zuge weiterer Recherchen habe ich mir gSOAP angeguckt. Ein Web Service SDK das in Qt eingebunden werden kann. Somit könnte ich den Client in Qt mit gSOAP implementieren und den Server nur mir gSOAP. gSOAP ist in C++ gehalten und für viele Plattformen erhältlich. Hast Du vllt weitere Punkte die relevant sein könnten. Da der Client eine mobile Anwendung darstellt stelle ich mir die Frage der Datenkonsistenz, also wenn man eine Anfrage an den Server stellt und plötzlich beim Client die Verbindung aufgrund des Netzes abbricht.
...im Zuge weiterer Recherchen habe ich mir gSOAP angeguckt. Ein Web Service SDK das in Qt eingebunden werden kann. Somit könnte ich den Client in Qt mit gSOAP implementieren und den Server nur mir gSOAP. gSOAP ist in C++ gehalten und für viele Plattformen erhältlich. Hast Du vllt weitere Punkte die relevant sein könnten. Da der Client eine mobile Anwendung darstellt stelle ich mir die Frage der Datenkonsistenz, also wenn man eine Anfrage an den Server stellt und plötzlich beim Client die Verbindung aufgrund des Netzes abbricht.
Re: Client-Server Architektur | WebService mit Datenbank
Nun, die Beteiligung ist leider etwas mager im Forum. Ich schätze das die Thematik eher speziellerer Natur ist. Ich habe heute von einer Implementierung seitens KDAB gelesen, nennt sich KD SOAP. Ich werde mal gSOAP und KD SOAP testen und meine Erfahrungen bezüglich Integration in Qt und allgemeine Handhabung mitteilen sobald ich mehr weiss.
Re: Client-Server Architektur | WebService mit Datenbank
Sorry, ich kann auch ned immer gleich antworten ....
Und ehrlich ?
Welche Programmiersprache ? Ach ich nehm Soap. Das klingt irgendwie nicht so richtig technisch fundiert
Wenn wir deine Gedankensprünge in Sachen Technologie nicht folgen koennen, können wir auch kaum Tipps geben.
Übrigens halt ich die Soap Bibs fuer c++ eher für sehr rudimentär.
Java, php selbst python haben mindestens gleichwertigen support fuer das protokoll.
Also wegen Soap c++ zu nehmen, find ich, ist die falsche Argumentation.
Ciao ...
Und ehrlich ?
Welche Programmiersprache ? Ach ich nehm Soap. Das klingt irgendwie nicht so richtig technisch fundiert
Wenn wir deine Gedankensprünge in Sachen Technologie nicht folgen koennen, können wir auch kaum Tipps geben.
Übrigens halt ich die Soap Bibs fuer c++ eher für sehr rudimentär.
Java, php selbst python haben mindestens gleichwertigen support fuer das protokoll.
Also wegen Soap c++ zu nehmen, find ich, ist die falsche Argumentation.
Ciao ...
Re: Client-Server Architektur | WebService mit Datenbank
Hello again,
wie ich deiner Antwort entnehmen kann hast du dich mit meinem Satz
.
Kommen wir zurück zum Thema...
Nun, ein Argument für gSOAP (C++) ist meiner Meinung nach die einfachere Integration in Qt. Ich denke serverseitig spielt es keine grosse Rolle ob Java, Python, Php oder C++ zum Einsatz kommt, jedoch sehe ich gewisse Schwierigkeiten bei der Integration in Qt. Darüberhinaus stellt gSOAP sowohl client- als auch serverseitig Tools zur Verfügung, um entsprechende Quellcodeskelette zu bauen, die man dann mit Logik füllen kann. Klingt für mich recht konfortabel. Im Gegensatz zu Qt SOAP wird bei gSOAP das Protokoll 1.2 unterstützt und man kann WSDL verwenden. Ein weiterer Pluspunkt wie ich finde. Da ich hauptsächlich mit C++ arbeite, wäre aus meiner Sicht der Einstieg in die Materie auch einfacher.
Windows Win32/Win64 (including NT, 2000, XP, Vista, Windows 7/8), MS-DOS (limited), and Cygwin
Linux (RedHat, SuSE, and any other "standard" Linux distro),
Unix (Solaris, HP-UX, FreeBSD, Irix, QNX, AIX, 64bit TRU64, and other)
Mac OS X (universal)
OpenVMS
NonStop
Small and embedded OS (VxWorks, WinCE, Palm OS, Symbian)
Vllt hast Du oder auch andere User Anregungen oder konstruktive Kritik. Würde mich über einen Beitrag zu diesem Thema freuen.
wie ich deiner Antwort entnehmen kann hast du dich mit meinem Satz
angesprochen gefühlt. Das war nicht meine Intention, ich habe lediglich festgestellt das sich die allgemeine Beteiligung in Grenzen hält. Ich bin für jede konstruktive Antwort dankbarNun, die Beteiligung ist leider etwas mager im Forum
Ich gebe Dir recht, ich habe nicht viele Kenntnisse in Bezug auf WebServices, deshalb nutze ich auch beispielsweise dieses Forum, um mein Wissen zu vertiefen, Informationen auszutauschen und fachliche Diskussionen zu führen. Ich möchte in erster Linie verschiedene Ansätze durchsprechen und dann das ganze für mich evaluieren. Mein eigentliches Ziel des POSt war es in Erfahrung zu bringen ob jmd schon ein ähnliches Konzept umgesetzt hat und welche Technologien in diesem Zusammenhang verwendet wurden.Das klingt irgendwie nicht so richtig technisch fundiert
Kommen wir zurück zum Thema...
Nun, ein Argument für gSOAP (C++) ist meiner Meinung nach die einfachere Integration in Qt. Ich denke serverseitig spielt es keine grosse Rolle ob Java, Python, Php oder C++ zum Einsatz kommt, jedoch sehe ich gewisse Schwierigkeiten bei der Integration in Qt. Darüberhinaus stellt gSOAP sowohl client- als auch serverseitig Tools zur Verfügung, um entsprechende Quellcodeskelette zu bauen, die man dann mit Logik füllen kann. Klingt für mich recht konfortabel. Im Gegensatz zu Qt SOAP wird bei gSOAP das Protokoll 1.2 unterstützt und man kann WSDL verwenden. Ein weiterer Pluspunkt wie ich finde. Da ich hauptsächlich mit C++ arbeite, wäre aus meiner Sicht der Einstieg in die Materie auch einfacher.
Ich habe ein Linux (Ubuntu Server) laufen und brauche den WebService auch nur dort, daher ist Plattformunabhängigkeit für mich erstnak uninteressant. Wenn ich das Datenblatt von gSOAP richtig interpretiere sollte es bei Bedarf möglich sein auf folgenden Plattformen gSOAP zu nutzen:c/c++ muesstest extra draufhin programmieren (Code Plattformunabhaengig) um für jede plattform compilierbar zu werden.
Windows Win32/Win64 (including NT, 2000, XP, Vista, Windows 7/8), MS-DOS (limited), and Cygwin
Linux (RedHat, SuSE, and any other "standard" Linux distro),
Unix (Solaris, HP-UX, FreeBSD, Irix, QNX, AIX, 64bit TRU64, and other)
Mac OS X (universal)
OpenVMS
NonStop
Small and embedded OS (VxWorks, WinCE, Palm OS, Symbian)
Vllt hast Du oder auch andere User Anregungen oder konstruktive Kritik. Würde mich über einen Beitrag zu diesem Thema freuen.
Re: Client-Server Architektur | WebService mit Datenbank
Naja, dein Thema ist auch sehr speziellich habe lediglich festgestellt das sich die allgemeine Beteiligung in Grenzen hält.
Und denk mal, das nur ein kleiner Teil Qt / C++ spezifische Probleme sind, der grosse Rest trifft eher die Welt der Netzwerk-Kommunikation und Protokolle
Eigentlich laesst sich alles recht einfach in Qt aka C++ integrieren, was c/c++ support hatNun, ein Argument für gSOAP (C++) ist meiner Meinung nach die einfachere Integration in Qt.
Und ich bin mir sicher, das für eine andere technologie auch ne lib gefunden haettest, die sich recht einfach in Qt integrieren liese
Ne entscheidung für ein bestimmtes netzwerk-protokoll solltest natürlich nicht aus der Hüfte schiessen ...
Soap z.b. hat fuer mich (und meine Anwendungsbereiche) einen eklatanten Nachteil
Overhead und performance. Dafuer isses recht generisch und flexibel ....
Wie das für dich aussieht, musst natuerlich selbst entscheiden
Spielt performance fuer dich ne rolle ?
wie "flexiebel" muss das ganze sein ...
Ist es wirklich eine grosse Hilfe fuer deine Anwendung, Objecte zu serialisieren ? wie hoch waere dein aufwand, wenn nur nen stream Schnittstelle zur verfügung haettest ... etc
Ciao ...