Hallo zusammen, ich hoffe mal, dass ich mit meiner Frage hier richtig bin. Ich soll zusammen mit einem Kollegen für eine embedded Device ein WebUI erstellen. Dieses dient zum Konfigurieren des Systems und zum visualisieren von Daten. Man kann sich das so wie bei seinem Router zuhause vorstellen. Leider habe ich nicht wirklich Erfahrung mit der Thematik. Aufgrund der geringen Leistung das ARM Prozessors und des geringen Speichers (ca. 20 MB) der uns zugewiesen wurde stellt sich für mich die Frage, welche Technologie man hier sinnvollerweise einsetzen kann. Nach ein wenig Recherche stehen für mich folgende Optionen zur Auswahl: - Webserver (lighttpd oder nginx) + PHP ( MVC Framework z.B. phalconphp) - Python und Django - Ruby on Rails - LUA Gibt es hier einen De-facto-Standard? Mit welcher Kombination hat ihr die Besten Erfahrungen gemacht?
Intensio schrieb: > Leider habe ich nicht wirklich Erfahrung mit der Thematik. Aufgrund der > geringen Leistung das ARM Prozessors und des geringen Speichers (ca. 20 > MB) der uns zugewiesen wurde stellt sich für mich die Frage, welche > Technologie man hier sinnvollerweise einsetzen kann. Geringer Speicher? WebBrowser und Server (und dynamische Inhalte) gab's schon zu einer Zeit als 8 MB viel Hauptspeicher waren... > Nach ein wenig Recherche stehen für mich folgende Optionen zur Auswahl: > > - Webserver (lighttpd oder nginx) + PHP ( MVC Framework z.B. phalconphp) > - Python und Django > - Ruby on Rails > - LUA Auf dem Gerät oder läuft da schon Linux oder etwas ähnliches? > Gibt es hier einen De-facto-Standard? Mit welcher Kombination hat ihr > die Besten Erfahrungen gemacht? Was spricht gegen einen TCP/IP + HTTP-Stack und etwas CGI auf dem Gerät?
Intensio schrieb: > Leider habe ich nicht wirklich Erfahrung mit der Thematik. Aufgrund der > geringen Leistung das ARM Prozessors und des geringen Speichers (ca. 20 > MB) der uns zugewiesen wurde stellt sich für mich die Frage, welche > Technologie man hier sinnvollerweise einsetzen kann. > schau dir mal das WebGUI (LuCI)von OpenWRT an. Das basiert auf LUA und hat ein MVC Framework. Es gibt sowas wie ein CGI Modul für Lua nennt sich Haserl http://haserl.sourceforge.net/ <quote> Features Small: The haserl binary typically compiles to less than 20KB (stripped). The lua language adds less than 150K if linked in statically. Parses like other scripting languages: Anything that is not enclosed in <% ... %> tags is sent verbatim to the client. Automatic FORM parsing: Form elements sent from the client are automatically parsed and placed into environment variables. The script can then reference the variables without any extra work. For lua scripts, the elements are placed in a global FORM[] table. multipart/form-data decoding: Mime data sent via the enctype="multipart/form-data" method is transparently decoded. This method is used when uploading files from the client. Privilege Escalation: On Linux, if haserl is installed suid root, then it will attempt to drop its privilege to the uid/gid of the owner of the cgi script. This is similar to suexec in Apache. </quote>
Das schreit doch förmlich nach einem Node.js Webserver :-) Der ist wirklich leicht zu implementieren, und dank Socket.io hat man sogar direkte Kommunikation zwischen Client und Server. D.h. man kann die Zustände des Systems in Echtzeit auf der Website anzeigen. Andersum können Steuerelemente auf der Website direkt Funktionen auf dem Server aufrufen. Hier könnte man dann auf tiefere Schichten (und so die HW) zugreifen. PS: Mit jQuery Mobile kann man dann sehr leicht auch richtig schöne UIs zaubern, insbesondere für Smartphones und Tablets.
:
Bearbeitet durch User
Der mongoose Webserver http://code.google.com/p/mongoose/ ist genau für diesen Zweck gemacht. Er ist klein (64 kB executeable), besteht nur aus einer C-Datei (ohne Abhängigkeiten) und kann leicht in eigene Programme "embedded" werden. Hier noch die feature-Liste von der Homepage: Works on Windows, Mac, UNIX, iPhone, Android, and many other platforms Support for CGI, SSL, SSI, Digest (MD5) authorization, Websocket, WEbDAV Lua server pages (PHP-like functionality using Lua) with SQLite3 Resumed download, URL rewrite, IP-based ACL, Windows service Excluding files from serving by URI pattern (file blacklist) Download speed limit based on client subnet or URI pattern Small footprint: Mongoose executable size is 64 kB on Linux 2.6 i386 system 320 kilobytes Windows executable with all of the above (including SSL, Lua, Sqlite) and no dependencies Simple and clean embedding API, mongoose.h. The source is in single mongoose.c file to make things easy. HTTP client functionality for embedded usage, capable of sending arbitrary HTTP/HTTPS requests
Ralf Jahns schrieb: > Der mongoose Webserver http://code.google.com/p/mongoose/ ist genau für > diesen Zweck gemacht. Würde man damit den denn auch eine bidirektionale Kommunikation zwischen Server und Client hinbekommen? Mit Node.js ist das ja ganz einfach, aber was wäre hier der Ansatz? Ich arbeite nämlich auch gerade an so einem Projekt, und fände dass das ein cooles Feature wäre. Leider habe ich von Webservern noch nicht so viel Ahnung ;-)
Boris B. schrieb: > Würde man damit den denn auch eine bidirektionale Kommunikation zwischen > Server und Client hinbekommen? Mit Node.js ist das ja ganz einfach, aber > was wäre hier der Ansatz? Ja, Mongoose kann CGI und div. HTTP-Methoden GET, POST, PUT usw. und damit auch Ajax etc.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.