TE
TE
Ap0ll0XT
Guest
AW: ERP-Software: HTTP(S)-Request sinnvoll oder nicht?
Sooo ...
nach vielen Unterhaltungen mit Kollegen aus der IT Welt (ob so eine Software überhaupt Netzextern genutzt wird ... Ergebnis: Sehr selten!) und einem ausführlichen schweißtreibenden Brainstorming mit mir selbst (lol) werde ich jetzt einen anderen Ansatz verfolgen. Gegen eine Webimplementierung sprachen bisher so Dinge wie PHP (Performance), die zustandslosigkeit des Protokolls und .... ach ne das wars ja schon!
Mein nächster Ansatz war dann FastCGI. Allerdings wird dadurch die Zustandslosigkeit des Protokolls nicht ausgehebelt, sondern nur die Performance der Webanwendung durch den nativen Maschinen-Code erhöht. Ist ja erst einmal nicht schlecht. Aber immernoch nicht das, was ich will. Denn wenn der Server ausfällt oder etwas abstürzt, dann bekommt der Nutzer kein direktes Feedback. Von daher wäre eine Client-Server Architektur am besten. Nur wie bekommt man das hin, ohne bei Updates die Clients auf jeden Rechner zu updaten bzw. zu überschreiben (zentrale Wartung)?! Denn das spricht eigentlich gegen eine Umsetzung einer nativen Client-Software.
Als ich gerade das ein oder andere unfertige Projekt von meiner externen Platte durchstöberte, fiel mir da mein kleiner Webchat in die Hände. Ein Chat der für jeden mit einem Browser verwendet werden kann und keine Plugins wie Java, Silverlight oder Flash benötigt. Dort habe ich mit Websockets gearbeitet und es lief sehr gut. Ich hatte es nur eingestampft, weil mein Kumpel damals den Root-Server gekündigt hatte und deswegen kein Bedarf mehr da war. Fragt mich jetzt aber nicht, warum ich das so ausführlich erzähle. Ich tu es einfach
Nun mein Ansatz. Ich werden mit Hilfe von PHP die Auslieferung der Benutzeroberfläche sowie die Authentifizierung an das System vornehmen. War der Login erfolgreich und die Benutzeroberfläche ist geladen, wird eine Socket-Verbindung zu einer nativen Server-Software aufgebaut, der die Kommunikation und den Datenaustausch zwischen Client und Server übernimmt und eben auch für den Großteil der Logik verantwortlich ist, damit auch mit billigen Thin-Clients (z.B. der Pi 2 mit Raspbian oder ähnlich ) gearbeitet werden kann. Das PHP sowie dieser Server greifen beide auf eine PostgreSQL-Datenbank zu, um so das Backup der Daten zu erleichtern. Alternativ kann das ganze in einer Einplatz-Umgebung auch mit einer SQLite-Datenbank verwendet werden. Dazu wird ein kleiner Client-Browser gebastelt, der beim starten im Hintergrund das Hochfahren des Servers übernimmt und beim schließen diesen wieder abschaltet. Somit kann man dem Nutzer den Footprint ersparen, den man bei einer vollständig PHP-Basierten Lösung auf den Arbeitsrechner installieren müsste (HTTP-Server, PHP-Modul für den Server, ggf. noch die Datenbank etc.).
Macht also die Serversoftware schlapp, reißt die Socket-Verbindung ab und der Client kann sofort reagieren. Passiert das bei einem HTTP-Server, bekommt der Client das erst beim nächsten Request mit. Außerdem können Aktualisierungen über den verbundenen Socket direkt an den Client gesendet werden und nicht erst nach dem nächten Request oder per Ajax automatisch abfragen.
Ich habe da mal kurz den Namen des Threads angepasst
Sooo ...
nach vielen Unterhaltungen mit Kollegen aus der IT Welt (ob so eine Software überhaupt Netzextern genutzt wird ... Ergebnis: Sehr selten!) und einem ausführlichen schweißtreibenden Brainstorming mit mir selbst (lol) werde ich jetzt einen anderen Ansatz verfolgen. Gegen eine Webimplementierung sprachen bisher so Dinge wie PHP (Performance), die zustandslosigkeit des Protokolls und .... ach ne das wars ja schon!
Mein nächster Ansatz war dann FastCGI. Allerdings wird dadurch die Zustandslosigkeit des Protokolls nicht ausgehebelt, sondern nur die Performance der Webanwendung durch den nativen Maschinen-Code erhöht. Ist ja erst einmal nicht schlecht. Aber immernoch nicht das, was ich will. Denn wenn der Server ausfällt oder etwas abstürzt, dann bekommt der Nutzer kein direktes Feedback. Von daher wäre eine Client-Server Architektur am besten. Nur wie bekommt man das hin, ohne bei Updates die Clients auf jeden Rechner zu updaten bzw. zu überschreiben (zentrale Wartung)?! Denn das spricht eigentlich gegen eine Umsetzung einer nativen Client-Software.
Als ich gerade das ein oder andere unfertige Projekt von meiner externen Platte durchstöberte, fiel mir da mein kleiner Webchat in die Hände. Ein Chat der für jeden mit einem Browser verwendet werden kann und keine Plugins wie Java, Silverlight oder Flash benötigt. Dort habe ich mit Websockets gearbeitet und es lief sehr gut. Ich hatte es nur eingestampft, weil mein Kumpel damals den Root-Server gekündigt hatte und deswegen kein Bedarf mehr da war. Fragt mich jetzt aber nicht, warum ich das so ausführlich erzähle. Ich tu es einfach
Nun mein Ansatz. Ich werden mit Hilfe von PHP die Auslieferung der Benutzeroberfläche sowie die Authentifizierung an das System vornehmen. War der Login erfolgreich und die Benutzeroberfläche ist geladen, wird eine Socket-Verbindung zu einer nativen Server-Software aufgebaut, der die Kommunikation und den Datenaustausch zwischen Client und Server übernimmt und eben auch für den Großteil der Logik verantwortlich ist, damit auch mit billigen Thin-Clients (z.B. der Pi 2 mit Raspbian oder ähnlich ) gearbeitet werden kann. Das PHP sowie dieser Server greifen beide auf eine PostgreSQL-Datenbank zu, um so das Backup der Daten zu erleichtern. Alternativ kann das ganze in einer Einplatz-Umgebung auch mit einer SQLite-Datenbank verwendet werden. Dazu wird ein kleiner Client-Browser gebastelt, der beim starten im Hintergrund das Hochfahren des Servers übernimmt und beim schließen diesen wieder abschaltet. Somit kann man dem Nutzer den Footprint ersparen, den man bei einer vollständig PHP-Basierten Lösung auf den Arbeitsrechner installieren müsste (HTTP-Server, PHP-Modul für den Server, ggf. noch die Datenbank etc.).
Macht also die Serversoftware schlapp, reißt die Socket-Verbindung ab und der Client kann sofort reagieren. Passiert das bei einem HTTP-Server, bekommt der Client das erst beim nächsten Request mit. Außerdem können Aktualisierungen über den verbundenen Socket direkt an den Client gesendet werden und nicht erst nach dem nächten Request oder per Ajax automatisch abfragen.
Ich habe da mal kurz den Namen des Threads angepasst