PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Protokol für Client/serverv comunication



iluminat23
08-08-2005, 22:03
Moinsen.

Ich schreibe an einem system monitor so ähnlich wie gkrellm. Nur mein bisheriger grundsatz war, dass dies für die shell und nicht für X sein sollte. das ding nennt sich "ShIT - Shell Information Tool (http://www.iluminat23.org) ". nun will ich das ganze ding komplett umkrempeln und eine client server aplikation daraus machen. mein problem ist nur, dass ich noch nie ein client bzw. server programiert habe geschweigeden mich näher mit protokollen beschäftigt habe und wie man diese am besten implementiert. somit wollte ich mal fragen was ihr mir da raten würdet. die anfordertungen sind eigentlch soweit sie mir grade einfallen:

über das protokoll soll später auch eine authentifizierung möglich sein
es soll in einer späteren version evntuel verschlüsselt werden können
über tragen werden sollen daten wie: die uptime, cputemp, netzwerkauslastung, ...
da shit plugin fähig werden soll, kann es auch sein, dass ein client eventuell mit gesendeten informationen nichts anfangen kann wenn z.b. auf dem server ein plugin für einen ftpserver läuft soll wenn der client die daten durch das fehlende plugin nicht verarbeiten kann diese daten verwerfen oder eine meldung aus geben könnnen. dies sollte die anderen daten aber nicht beeinflussen

ok, ok. viel was aufgelistet ist hat nicht so viel mit dem protokoll zu tun. nun meine frage habt ihr ideen für die verwirklichung des protokols? ich hatte dabei mal an XML gedacht, da ich das nächstes semester sowiso lernen muss. ich bin auch schon auf xmlrpc gestossen, aber die dokumentation dazu finde ich eher verwirrend als hilfreich. oder sollte ich da leiber etwas ganz anderes verwenden?

mfg philipp

EDIT: achja, ich schreibe das ganze in C. und es soll auf UNIX system (linux, *bsd, solaris, ...) laufen.

SeeksTheMoon
08-08-2005, 23:36
xml ist sinnvoll und xmlrpc ist auch eine gute Idee.
Ein Vorteil dieser Mechanismen ist, dass Du mit Sicherheit fertige Bibliotheken findest, die die XML-Bearbeitung und den Datentransfer für Dich erledigen.
Du könntest z.B. xerces-c oder tinyxml oder eine der anderen zahllosen xml-Libs nehmen, dann müsstest Du Dich noch um die Übertragung kümmern, z.B. mit http(s).
http://xmlrpc-c.sourceforge.net/ ist eine fertige Lib für xmlrpc und erledigt genau das.

Du kannst Dir aber auch den Quellcode von gkrellm ansehen, denn gkrellm2 hat einen Server/Client-Aufbau, ist plugin-basiert, hat bereits endlos viele Plugins usw usf.
Dein Projekt könnte ein Terminal-Client für gkrellm werden.
Dadurch würdest Du Dir noch mehr Arbeit sparen.

iluminat23
09-08-2005, 01:05
also werde ich doch mal weiter versuchen bei xmlrpc durch zu steigen. naja gkrellm werde ich nicht verwenden, bzw. kein client dafür scheriben. da ich es aus lerntechnischen gründen programmiere nicht um schnell fertig zu sein. ich komme bei xmlrpc mit der doku noch nicht wirklich klar. ist das bei den meisten libs so komisch? habe bisher nur mit ncurses als externe lib gearbeitet und dazu gibts ja wunderschöne manpages :D

hat jemand eventuel schonmal was mit xmlrpc gemacht und kann mir ein paar tipps geben?

mfg philipp

EDIT: ich war grade auf der seite von libxml (http://www.xmlsoft.org/). libxml scheint bei weitem besser dokumentiert als xmlrpc. das könnte sich für mich somit als leichter erweisen. denn das howto von xmlrpc ist ja absolut schlecht.