Abkürzungen

API Application Programming Interface
Applets Java Programme, die innerhalb eines Webbrowsers lauffähig sind
Class File Entspricht einem Object File. Resultat der Kompilierung eines Java Sourcefiles
DHCP Dynamic Host Configuration Protocol
DNS Domain Name Server
GUI Graphical User Interface
HTML Hypertext Markup Language
IP Internet Protocol
Java Moderne Porgrammiersprache, Plattformunabhängig, objektorientiert
LAN Local Area Network
MMI Man Machine Interface, Bedieneroberfläche
NAT Network Address Translation
OLE Object Linking and Embedding
OO Objektorientiert
OPC OLE for Process Control
PPP Point To Point (Tunneling) Protocol
RPC Remote Procedure Call
SLIP Serial Line Internet Protocol
TCP Transport Control Protocol
URL Uniform Resource Locator
View Einzelne Ansicht einer MMI
VPN Virtual Private Network
WAN Wide Area Network



Anforderungen an den Embedded Webserver

Grundsätze

Das VPI-Konzept setzt voraus, dass jede Netzwerkfunktionalität, die ein embedded Gerät über das Netzwerk anbietet, auch über das HTTP Protokoll abgewickelt werden kann. Sowohl für eine Vernetzung über das lokale Netzwerk hinaus als auch für die Integration in Drittapplikationen ist der Zugang über das HTTP Protokoll am einfachsten zu gewährleisten und häufig überhaupt die einzige Möglichkeit, wie eine Kommunikation realisiert werden kann. Das HTTP Protokoll ist quasi der kleinste gemeinsame Nenner, wie Komponenten und Systeme von unterschiedlichsten Herstellern miteinander Daten austauschen können.



Leitebene

Aus der Sicht der Leitebene muss man sich klarerweise an die Standards des Internet anpassen, und in dieser Welt haben sich HTTP bzw. XML basierte Protokolle wie z.B. SOAP bereits durchgesetzt.


Feldebene

Auf der Ebene der embedded Geräte wiederum befindet man sich in einem Umfeld, wo Kompatibilität zu den verschiedensten Diensten und Ebenen verlangt wird, sowohl gegenüber der Leitebene wie auch gegenüber der Feldebene. Embedded Geräte haben aber immer limitierte Ressourcen, und darum überfordern diese Anforderungen die Möglichkeiten eines Microcontrollers relativ schnell. Gerade auch aus diesem Grund ist es ratsam, die Firmware des embedded Systems nicht mit vielen Protokollen zu überlasten, sondern alle geforderten Dienste auf ein Protokoll zu integrieren. In der Praxis hat es sich mehrfach gezeigt, dass das Laufzeitverhalten eines embedded Systems mit wenig (Speicher-) Ressourcen unter Belastung sehr schwierig zu beherrschen wird, und dass diese Probleme exponentiell mit der Anzahl der eingesetzten Protokolle wachsen. Die Erkenntnis aus diesen Erfahrungen lautet daher: Keine unnötige Komplexität aufbauen, nur ein Protokoll (HTTP) integrieren, dafür dieses sehr gut Testen.
Ein weiterer Grund für die Beschränkung auf HTTP liegt darin, dass es bereits heute eine beachtliche installierte Basis von Geräten gibt, die über einen embedded Webserver verfügen. VPI soll einen möglichst evolutionären Ansatz darstellen und nicht einen radikalen Wechsel zu einem völlig neuen Standard verfolgen. Dies ist unseres Erachtens ein zentraler Faktor, um den Erfolg einer Initiative zu gewährleisten.



Maximalforderungen

Die Maximalkonfiguration eines embedded Webservers für eine VPI-kompatible Implementation nennt folgende Eigenschaften:

Anforderung Beschreibung
100 Implementation des HTTP Protokolls auf Port 80
101 Der embedded Webserver referenziert keine absolut adressierten URL‘s auf sich selber. URL‘s in HTML-Seiten oder Applets, die auf den eigenen Server verweisen, beinhalten keine IP Adresse oder absolute Pfade, sodass der Inhalt des Servers jederzeit relativ in den Kontext eines anderen Hosts abgebildet werden kann.
102 Remote Procedure Calls: Zugriff zum Lesen und Schreiben der angebundenen Prozesspunkte durch das HTTP Protokoll auf demselben Port.
103 Webserver unterstützt Filetransfer zum Webserver über HTTP, z.B. mittels POST (Bsp.: Filesystem Update, Firmware Update auf Flash, Konfigurationsfiles)
104 Der Webserver kann eigene HTTP Kommandos (GET oder POST) auf andere Webserver absetzen. Die Applikation auf dem embedded System kann aus eigener Initiative eine Information auf ein belibiges System im Netzwerk abschicken.
105 Process Point Relaying: Der embedded Webserver ist in der Lage, Prozesspunkte, die nicht auf dem eigenen embedded System vorhanden sind, über einen HTTP basierten Relay-Mechanismus gemäss Anforderung 101 auf einem anderen Webserver anzufragen und an den eigenen Client weiterzugeben.


Konstruktives Kompatibilitätskriterium


Um für einen embedded Webserver die Bezeichnung ‚VPI-kompatibel‘ zu erlangen, ist es nicht zwingend notwendig, alle Anforderungen des vorherigen Kapitels zu erfüllen. Diesen Anforderungen muss nur dann genügt werden, wenn das embedded System eine der unter dem Kapitel ‚Maximalanforderungen‘ aufgeführten Eigenschaften bereits über ein anderes Protokoll über das Netz anbietet. Beispiele:
- Remote Procedure Calls: Kann eine Variable auf der Applikation des embedded Systems über das
Netzwerk abgebildet werden, entweder innerhalb einer HTML-Seite oder über einen RPC Standard wie
OPC, RMI, DCOM, Corba, etc., so muss dieselbe Funktionalität auch über ein HTTP Kommando
gemacht werden können. Dies kann beispielsweise über eine cgi-bin Funktion, ein Servlet oder auch ein
SOAP Kommando ermöglicht werden.
- Filetransfer: Wenn das embedded System einen Filetransfer z.B. per FTP anbietet, so muss die gleiche
Funktionalität auch über HTTP möglich sein.
- E-Mail: Kann das embedded System zur Alarmierung ein E-Mail abschicken, so muss es genauso
einfach dazu konfiguriert werden können, diese Alarmmeldung als HTTP Kommando an eine Empfänger
URL zu richten.
- Process Point Relaying: Kann ein embedded System Prozesspunkte eines anderen embedded Systemes
im Auftrag eines Clients über das Netzwerk zur Verfügung stellen, so muss auch dieser sekundäre
Zugriff über ein HTTP Kommando gemacht werden können (sofern das Dritt-Target dies zulässt).



Anforderungen an ein VPI-Portal

Die Aufgabe eines Portales ist primär darauf beschränkt, eine auf HTTP-Ebene vollständig transparente Kommunikationsdrehscheibe anzubieten. Ein Kunde eines Portales soll eine offene Technologie antreffen, die ihn nicht für ewig an einen Anbieter bindet.
Gegenüber einem Benutzer vom Internet her findet eine sichere Identifikation statt. Das Portal präsentiert einem derart identifizierten Benutzer alle ihm von den jeweiligen Verwaltern zugänglich gemachten Zielsysteme. Die URL‘s auf die jeweiligen Zielsysteme zeigen dabei nicht an deren wirklichen Ort (IP-Adresse) im Internet, sondern sind typischerweise transparent auf eine URL im Unterverzeichnis des Portals angebunden. Durch diese Art der Abbildung wird es möglich, das Gerät über einen beliebigen Kommunikationskanal (GSM, PSTN, ADSL, Wireless,…) an das Portal anzubinden, ohne dass dies einen Einfluss auf dessen Sichtbarkeit im Internet hat. Es ist ausserdem sehr wichtig, dass sich auch Applikationen über das Internet auf dem Portal eine Session aufbauen und über dieselben Schnittstellen automatisch auf Daten aus den Endgeräten zugreifen können.
Ein Portalanbieter kann möglicherweise noch weitere Dienstleistungen ausser der transparenten Vermittlung von HTTP anbieten. Es ist aber wichtig, dass diese Leistungen logisch und funktionell sauber getrennt werden.


Anforderung Beschreibung
200 Implementation des HTTP Protokolls auf Port 80
201 Implementation des HTTPS Protokolls auf Port 443
202 Identifikation des Benutzers durch Passwort
203 Transparente Anbindung von Remote-Targets in die Unterverzeichnisstruktur des Portals (kein Weitervermitteln von IP-Adressen)
204 Transparente Vermittlung von HTTP-basierten Remote Procedure Calls (z.B. SOAP oder cgi-bin)
205 Automatisierbares Interface: Externe Applikationen können Variablen lesen und schreiben (keine Browser-Clients)
206 Es können beliebige Kommunikationskanäle zwischen Portal und Target transparent verwendet werden.ISDN, GSM, GPRS, Modem, ADSL, Standleitungen,…