Entwicklung einer Software zur Steuerung und Überwachung von Netzwerkgeräten

Status
Nicht offen für weitere Antworten.

flossy

Mitglied
Hallo zusammen,

ich möchte eine Software (mit Java) entwickeln, die es ermöglicht, verschiedenste Geräte über Netzwerk zu steuern und zu überwachen.
Die Steuerung soll dabei so allgemein gehalten werden, dass jeder Zeit neue Gerätetypen hinzugefügt werden können, ohne dass die Applikation neugestartet geschweige denn verändert werden muss.

Hierzu habe ich mir folgende Architektur überlegt:

= Agenten =

* Jedes Gerät wird durch einen "Agenten" repräsentiert, welcher durch ein einheitliches Agenten-Interface beschrieben ist.
* Je nach den Funktionen des Gerätes bietet der Agent entsprechende Funktionen an
* Jeder Agent hat eine eigene IP-Adresse

= Server =

* Ein Server verwaltet die Agenten (und damit die Geräte) und ihre Funktionen
* Zur Laufzeit können damit Agenten eingebunden werden und ihre Funktionen dem Client zur Verfügung gestellt werden

= Webserver =

* Der Webserver stellt die GUI zur Verfügung
* Zu jedem Agenten-Typ, gibt es eine GUI,
* falls keine GUI existiert, so wird eine Liste der Funktionen ausgegeben

= Client =

* Der Client ist entweder ein Browser (Zugriff auf Webserver) oder
* Ein Komandozeilenprogramm (Zugriff direkt auf Server oder Agent)

Also nochmals anders an einem Beispiel ausgedrückt:

Ein Sensor kommuniziert z.B. über RS232 mit einem miniPC, auf dem ein Agent (und eine JVM) läuft.
Der Agent stellt z.B. die Funktionen "getActualValue()", "getMaxValue()", ..., "setConfig(String cfg)" zur Verfügung.
Der Server stellt eine TCP-Verbindung zum Agenten her und holt sich mit "getFunctions()" die möglichen Funktionen.
Diese Funktionen werden mit dem Webserver (zB. Tomcat & Spring) den jeweiligen GUI-Elementen zugeordnet. Ein Graph greift zB. zur Aufzeichnung des Verlaufs alle 2 Sekunden auf die Funktion "getActualValue()" zurück.
Mit dem Browser können dann die Sensorwerte einem User zugänglich gemacht werden.

Ich hoffe es ist zumindest prinzipiell mein Vorhaben klar geworden.

Meine Fragen:

- Sind diese Überlegungen Zukunftsfähig? Oder auch ander gefragt: Habe ich mir da nur Blödsinn überlegt?
- Gibt es alternative Architekturen, die ähnlich flexibel sind?
- Wie kann ich die Funktionen der Agenten (die ja unterschiedlich sind und zur Zeit der Entwicklung nicht bekannt sind) dynamisch bereitstellen und entsprechend aufrufen?
- Inwieweit können RMI, CORBA, o.ä zur Umsetzung dazu beitragen?

Über ausführliche Antworten, Ideen und Kritik würde ich mich freuen.
 
T

tuxedo

Gast
Das hört sich für mit nach SNMP und UPNP/ZeroConf an ... Ergo: Gibts schon.

Hast du danach mal gegoogelt?
 

flossy

Mitglied
Jetzt habe ich noch eine weitere Frage:

Solange jeder Agent eine eigene IP-Adresse hat, kann ich mit diesen über einen Standardport kommunizieren. Wenn nun jedoch mehrere Agenten auf einem Rechner (also eine IP) laufen, so funktioniert dies nicht mehr.
Es gibt dann nur zwei Möglichkeiten:
1. Jeder Agent bekommt einen eigenen Port
2. Es gibt ein Agent-Manager, der die Nachricht weiterleitet.

Ist das richtig?
 
T

tuxedo

Gast
Solange jeder Agent eine eigene IP-Adresse hat, kann ich mit diesen über einen Standardport kommunizieren. Wenn nun jedoch mehrere Agenten auf einem Rechner (also eine IP) laufen, so funktioniert dies nicht mehr.

Wieso denn?

Es gibt dann nur zwei Möglichkeiten:
1. Jeder Agent bekommt einen eigenen Port

Prinzipiell wäre das eine Möglichkeit. Aber du solltest auch mal drüber nachdenken ob das wirklich der richtige Weg ist.

Wieso muss denn jeder Agent einen Serverport öffnen? Und wieso muss ein Server so tun als wäre er ein Netzwerkclient und sich zum Agenten verbinden?

Vorrausgesetzt der TCP/IP Stack im uC beherrscht Broadcasts würde ich auf Broadcasts setzen:

Jeder Agent lauscht auf "anfragen". Der Server schickt per Broadcast ein "Hallo, wer ist denn da draußen" raus. Daraufhin meldet sich jeder Agent und gibt bekannt was er wie angeschlossen hat bzw. überwacht.

Entweder du machst das Wert-Abfragen dann auch über Broadcast, oder der Agent teilt dir über Broadcast mit auf welchem Port er auf "get" und "set" wartet.

Aber alle sin allem sind wir damit wieder bei UPnP/ZeroConf gelandet.

Router, Drucker, ja sogar VideoEncoder lassen sich in den allermeisten Fällen via UPnP detektieren und auch konfigurieren.

Ich schlage vor du befasst dich erstmal etwas mit der Materie bevor du anfängst ein System zu entwerfen das es schon gibt und einen Quasi-Standard darstellt.

Gruß
Alex
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
L30nS RMI Aufruf einer Client-Methode von einem RMI-Server Netzwerkprogrammierung 3
N Link aus einer E-Mail aufrufen Netzwerkprogrammierung 2
N Name eines Attributes aus einem festen String und einer Variablen generieren Netzwerkprogrammierung 5
O HTTP Einloggen auf einer Homepage Netzwerkprogrammierung 8
H Daten auf einer Webseite eintragen Netzwerkprogrammierung 11
Z Debug-Info einer JavaSE Applikation auf Webserver Netzwerkprogrammierung 0
S HTTP Würdet Ihr Euch bei einer intern genutzten Anwendung auf Cookies verlassen? Netzwerkprogrammierung 2
J Hilfe beim programmiern einer App zur Anmeldung im Wlan-Netzwerk Netzwerkprogrammierung 0
C Inhalt einer .JPG Datei in einen OutputStream schreiben? Netzwerkprogrammierung 10
D Überwachen einer SMB-Freigabe bei Änderungen im Dateisystem Netzwerkprogrammierung 0
L FTP Lesen einer Datei vom Server - Aufgehangen Netzwerkprogrammierung 0
M jsf-seite beim hinzufügen einer csv-datei in einen ordner aktualiseren Netzwerkprogrammierung 0
L Ratschlag zur Umsetzung einer client-server-Kommunikation Netzwerkprogrammierung 6
O HTTP Zugriff und Aktionen auf einer Webseite ausführen Netzwerkprogrammierung 9
S Automatischer Login auf einer Webseite Netzwerkprogrammierung 12
D JavaMail: HTML Code einer Mail Netzwerkprogrammierung 9
H Daten an Textfeld einer Webseite schicken Netzwerkprogrammierung 2
D Aus einer URL die Dateien lesen Netzwerkprogrammierung 5
Dit_ RMI RMI-Server und gleichzeitiger Aufruf einer Methode Netzwerkprogrammierung 14
T Ladezeit einer Seite mit HttpURLConnection und Bildern Netzwerkprogrammierung 2
M bild von einer url erzeugen Netzwerkprogrammierung 7
V Quelltaxt einer Website auslesen funktioniert nicht Netzwerkprogrammierung 2
V Angezeigten Text einer Website erfragen Netzwerkprogrammierung 4
P HttpClient - Daten einer Website "unvollständig" Netzwerkprogrammierung 5
A HTTP Download einer Datei mit "Statistiken" Netzwerkprogrammierung 2
S Port auf einer bestimmten IP-Adresse auslesen? Netzwerkprogrammierung 6
S netzwerkprotokoll auf basis einer tcp verbindung erstellen Netzwerkprogrammierung 9
G Kryptische Zeichen beim Auslesen einer Website Netzwerkprogrammierung 11
Ollek Download einer Datei durch SFTP mit Java Netzwerkprogrammierung 12
B Frage zu einer Lösung (RMI) Netzwerkprogrammierung 2
H HTTP Einloggen auf einer HTML (php) Seite Netzwerkprogrammierung 6
P HTTP Problem beim Download von einer Datei Netzwerkprogrammierung 4
L Größe einer Datei auslesen die im Netz liegt Netzwerkprogrammierung 4
DeviAn Über ein Linux Server ein Windows Server nach einer File fragen Netzwerkprogrammierung 6
R Versenden einer MIME-Datei per E-Mail [solved] Netzwerkprogrammierung 5
C Problem mit Übertragung einer Klasse in RMI Netzwerkprogrammierung 10
Pithecanthropus Konzeptionelle Ausarbeitung einer synchronen Kommunkation (Server/Client)) Netzwerkprogrammierung 6
A attachment einer Mail speichern Netzwerkprogrammierung 5
C Dateigröße einer Datei im Internet ermitteln Netzwerkprogrammierung 2
J programm zum autom. ausdruck einer webseite Netzwerkprogrammierung 2
E Parameter einer URLConnection Netzwerkprogrammierung 12
G Unvollständiges Laden einer Seite Netzwerkprogrammierung 2
M Rechner einer Domäne auslesen? Netzwerkprogrammierung 3
KNeuhaus (Windows) Authentication VON einer Java-App aus. Netzwerkprogrammierung 2
Rontu Problem beim Übertragen einer Datei Netzwerkprogrammierung 9
D Content einer email in sql-datenbank speichern Netzwerkprogrammierung 9
M RMI direkte Verbindung mit einer Mysql datenbank Netzwerkprogrammierung 13
T Quelltext einer Website auslesen Netzwerkprogrammierung 3
ven000m Frage aus einer mündl. Prüfung - wer kennt die Antwort? Netzwerkprogrammierung 6
J Funktion zum Maskieren der Sonderzeichen einer URL Netzwerkprogrammierung 2
J Zeilenweises auslesen aus einer Datei über Server Netzwerkprogrammierung 6
C RMI: Problem beim Aufruf einer Methode. Falsch gecastet? Netzwerkprogrammierung 8
D Problem beim holen einer PHP-Seite via HttpClient Netzwerkprogrammierung 19
C IP adresse anhand einer domain adresse auslesen / ermitteln Netzwerkprogrammierung 3
V Einen Eintrag aus einer Zip Datei von einem Server laden Netzwerkprogrammierung 2
N Dateigröße einer Datei auf einem HTTP-/Web-Server. Netzwerkprogrammierung 9
V Zuweisen einer InetAddress mit einem byte Netzwerkprogrammierung 5
D Anmelden an einer Windows-Domäne Netzwerkprogrammierung 2
M Suche Klasse um Paramater zu einer URL hinzuzufügen. Netzwerkprogrammierung 3
B Url-Link aus einer E-Mail aufrufen Netzwerkprogrammierung 2
M Quellcode einer HTML Seite erhalten Netzwerkprogrammierung 2
A Abbruch einer Verbindung erkennen? Netzwerkprogrammierung 3
G Performance einer verteilten RMI-Anwendung Netzwerkprogrammierung 4
B Laden einer *.csv Datei von einem Webserver (http-request) Netzwerkprogrammierung 8
clemson Größe einer Heruntergeladenen Datei Netzwerkprogrammierung 10
O Problem bei Überprüfung und Spliten von einer IP! Netzwerkprogrammierung 2
R Änderung einer Seite (Klasse URL) Netzwerkprogrammierung 2
I IP Adresse des Clients einer Socket Verbindung Netzwerkprogrammierung 2
G Redirects einer HttpURLConnection ermitteln Netzwerkprogrammierung 4
antonbracke Multiuser Software über XMPP Server Netzwerkprogrammierung 1
T Administration von Software auf Clients im Netzwerk Netzwerkprogrammierung 6
G Netzwerkcam-Software Netzwerkprogrammierung 6
H java.net.SocketException: Software caused connection abort Netzwerkprogrammierung 4

Ähnliche Java Themen


Oben