HTTP GET aus MFC App: Monitoring Anwendung
-
tag leude
es geht ums realisieren einer remote monitoring lösung. zu überwachen sind erster linie I/O zustände an einer anlage wie z.b heimautomation.
nun kann ich nicht frisch von neuem beginnen: das einlesen der zustände ist bereits lokal möglich (PC mit MFC App und serielle verbindung zum auslesen).
Genau diese Daten sollen jetzt aber auch übers netz geschickt werden, dass andernorts die I/O auch einsehbar sind.mein grobes konzept dazu:
1. MFC App kriegt socken verpasst
etwa so: http://www.codeproject.com/KB/IP/MFCSockets.aspx2. MFC App sendet an webserver
GET file?input1=0&output1=0&..alle Zustände .. HTTP/1.1
wird in mysql DB gespeichert.
dazu:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-56428-and-view-is-previous.html3. über eine webseite auf dem webserver können die aktuellen zustände jederzeit überwacht werden.
http://myserver.mydomain.de/monitor.php
monitor.php greift auf die daten des GET zu (abgelegt in mysql).Bemerkungen:
zu 2:
ich schlage App als http client vor, connected auf 80.
damit habe ich am wenigsten ärger mit firewalls, netzadministratoren, etc.
natürlich wäre es "richtig" die gegenstelle als webSERVER zu implementieren, geht aber bei den voraussetzungen nicht.zu 3:
- es geht nur ums anzeigen der Zustände, Setzen ist (im moment) kein thema.Fragen:

1. wie seht ihr das konzept, jmd schon mal was ähnliches gemacht / gesehen?2. http GET ist gerechtfertigt, da es sich nicht um dateien handelt. nur etwa 20 I/O ? kann man I/O auch streamen (dann aber server)? soll ich abfragen, ob sich ein zustand geändert hat und erst dann werden neue zustände übertragen (getriggert), oder mit timer z.b alle 3 sec (dann bin ich max 3 sec verzögert)
3. Wie ist das mit konkurrierenden zugriff auf mysql? die weniger elegante lösung wäre simples pollen der werte die aber gleichzeitig immer überschrieben werden!).
4. brauch ich in jedemfall eine datenbank? ich bräuchte ja nur aktuellen zustände (wenn geschichte egal)?
5. ich könnte sogar mit jpgraph oder phplot einen Zeitverlauf der signale plotten. müsste dann einen array einlesen (bsp immer aktuellste 10 werte ringbuffern)
bitte um kommentare
schönen sonntag!