Zum Inhalt springen

Beginner-Frage zum Aufbau einer speziellen AJAX-Architektur (serverseitig)


Empfohlene Beiträge

Hallo zusammen,

ich bin neu hier und darf nun nach jahrelanger Pause in der Webentwicklung mal wieder ein solches Projekt in Angriff nehmen. Wie viel sich da verändert hat ... owe ...

Mein Problem ist folgendes: Auf einem Embedded-Gerät (mit natürlich geringen Ressourcen) soll eine Webseite aufgerufen werden können. Diese Seite soll unter anderem Daten des Gerätes, die sich ständig ändern, anzeigen.

Mit der Anforderung kam ich zu AJAX. Das scheint mir die einzige Möglichkeit zu sein Daten vom Server zu holen ohne dauernd die kompletten Seiten neu zu laden. Somit steht fest, dass Javascript clientseitig eingesetzt werden soll.

Nun aber zu meinem Problem: Was mache ich serverseitig? Ich brauche serverseitig eine Möglichkeit C-Funktionen aufzurufen, die mir die Daten des Gerätes liefern oder mit denen ich Daten schreiben kann. Zudem brauche ich eine Benutzerverwaltung (Gruppen) und eine Möglichkeit meine Webseiten in verschiedene Sprachen zu übersetzen.

So viel zu den Anforderungen. Da nicht viele Ressourcen verbraucht werden sollen, wird auf dem Gerät kein Apache laufen, sondern irgendein kleiner schnuckeliger Webserver. Wenn möglich sollte wohl auch kein PHP eingesetzt werden.

Mittlerweile habe ich mich etwas durch das Internet gelesen, allerdings bin ich noch zu keiner Lösung gekommen, weil mir einfach das Wissen fehlt. PHP CLI kann wohl Shell Befehle ausführen, bei Perl kann man wohl mit dem Inline-Modul (inline.pm) oder der XS-Schnittstelle C-Bibliotheken einbinden, oder mit Python mit dem ctypes-Modul.

Hat von euch jemand schon mal etwas derartiges gemacht/versucht oder Ideen für eine Lösung? Bin für jeden Tipp dankbar, weil ich doch sehr im Nebel herumstochere.

Viele Grüße,

Nova

Link zu diesem Kommentar
Auf anderen Seiten teilen

naja, Ajax sendet auch nur "normale" http-Requests an den Server. d.h. im zweifelsfall einen kleinen Webserver mittels C abbilden und die Anfragen direkt abarbeiten. Wobei das für mich nach viel Arbeit klingt, verglichen mit einem Apache (oder vergleichbarem) und einer scriptsprache dabei.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Servus,

ich habe Dich so verstanden, dass das Gerät Daten über sich selbst per HTTP abholen soll. Ist das richtig? Wenn ja, warum? Oder soll das Endgerät Daten über den Server per HTTP abholen?

Wie Du auf dem Server die Anbindung an die C-Geschichte machst, ist wohl von der Umgebung abhängig, das sollte mit so ziemlich jeder Sprache gehen (notfalls über einen Aufruf des C-Programms über die Kommandozeile und Interpretation des Ergebnisses. Du kannst das In PHP, Java, ASP, ... machen. Und rausrendern kannst Du es dann als einfache Textliste, CSV, XML, HTML, JSON, ...

Peter

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo zusammen,

danke für die bisherigen Antworten.

@Guybrush Threepwood: Sorry, mein Fehler. Ich hatte es tatsächlich nicht geschrieben. Das System ist ein Linuxsystem. Momentan habe ich probeweise für reine HTML-Seiten den lighttpd installiert.

@kingofbrain: Auf dem Gerät selbst läuft ein Webserver (momentan testweise lighty). Auf den Webseiten sollen dann Daten über das Gerät angezeigt werden, z. B. in welchem Modus es sich befindet. An das Gerät können auch noch andere Geräte angeschlossen werden, die dem "Hauptgerät" Daten senden. Auch diese Daten sollen auf den Webseiten angezeigt werden. Die Webseiten sollen ermöglichen die Daten remote anschauen zu können ohne direkt vor dem Gerät sitzen zu müssen. Das heißt vom Webserver aus muss auf die Datenverwaltung zugegriffen werden. Diese Schnittstelle ist in C geschrieben und ich kann Lese- und Schreibfunktionen aufrufen.

Ich denke die Lösung müsste so aussehen, dass ich ein dynamisches Feld auf der Webseite (z. B. ob eine Lampe gerade brennt) per HTTP-Request zum Webserver update. Auf dem Server dann ein Skript ausführe, mit dem ich die C-Lesefunktion aufrufe und den Wert dann per HTTP wieder an die Webseite zurückschicke.

Ist nur die Frage wie ... ohne zu viele Ressourcen zu verbraten ...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Servus,

ok, dann habe ich es verstanden, glaub ich. Dann musst Du wirklich auf dem Webserver eine Möglichkeit schaffen, die Daten, z.B. über POST oder PUT auf den Server zu transportieren. Dort könnten sie optimalerweise gecached werden, weil bei einer Live-Abfrage vom Server zum Client dieses Clientgerät seinerseits wieder einen Serverprozess zur Verfügung stellen muss, damit die aktuellen Daten vom Server aus gepolled werden können. Da würde ich lieber Push vom Client zum Server verwenden und dieser merkt sich den Zustand seiner angeschlossenen Geräte. Wenn sich dann ein Gerät für einen bestimmten Zeitraum nicht meldet, wrid davon ausgegangen, dass es nicht mehr online ist.

Peter

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...