Benutzer-Werkzeuge

Webseiten-Werkzeuge


development:api:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Letzte ÜberarbeitungBeide Seiten der Revision
development:api:start [2010/08/18 16:36] justinotherguydevelopment:api:start [2011/11/27 21:02] – [Middleware-API] justinotherguy
Zeile 7: Zeile 7:
 Alternativ zum Browser sind aber auch andere Frontends angedacht: eine direkte Anzeige des aktuellen Verbrauchswertes z.B. via [[http://www.chumby.com/|Chumby]]. Alternativ zum Browser sind aber auch andere Frontends angedacht: eine direkte Anzeige des aktuellen Verbrauchswertes z.B. via [[http://www.chumby.com/|Chumby]].
  
-==== Backend ==== +==== Middleware ==== 
-Hierbei handelt es sich im Wesentlichen um einen Wrapper um die Datenbank. Sämtliche Kommunikation in Richtung Datenbank wird über das Backend abgewickelt.+Hierbei handelt es sich im Wesentlichen um einen Wrapper um die Datenbank. Sämtliche Kommunikation in Richtung Datenbank wird über die Middleware abgewickelt.
  
  
Zeile 14: Zeile 14:
  
 ==== Frontend-API ==== ==== Frontend-API ====
-Diese definiert die Kommunikation zwischen dem Frontend und dem Backend.+Diese definiert die Kommunikation zwischen dem Frontend und der Middleware.
  
-==== Backend-API ==== +==== Middleware-API ==== 
-Das ist jetzt leicht: die Backend-API beschreibt die Kommunikation zwischen dem Messgerät (AVR Net-IO, Flukso, ...) und dem Backend.+Das ist jetzt leicht: die Middleware-API beschreibt die Kommunikation zwischen dem Messgerät (AVR Net-IO, Flukso, ...) und der Middleware.
  
- +[[development/api/reference|Hier geht's zur Referenz]]
-**[[reference]]**+
  
 ===== Aufgaben der API ===== ===== Aufgaben der API =====
  
-  * die komplette Kommunikation mit dem Backend übernehmen (Logging, Auswertung & Verwaltung) +  * die komplette Kommunikation mit der Middleware übernehmen (Logging, Auswertung & Verwaltung) 
-  * die Möglichkeit bieten Daten in Paketen an den Backend-Server schicken, um die Netzwerkverbindung zu entlasten und dadurch Strom zu sparen oder Verbindungsprobleme zum Backend-Server abfangen können+  * die Möglichkeit bieten Daten in Paketen an den Middleware-Server schicken, um die Netzwerkverbindung zu entlasten und dadurch Strom zu sparen oder Verbindungsprobleme zum Middleware-Server abfangen können
   * nicht nur Pulse übertragen können, sondern auch Messwerte anderer Sensoren (Temperatur, Wind, Luftdruck etc.).   * nicht nur Pulse übertragen können, sondern auch Messwerte anderer Sensoren (Temperatur, Wind, Luftdruck etc.).
   * eine eindeutige Versionierung beinhalten   * eine eindeutige Versionierung beinhalten
Zeile 33: Zeile 32:
 ===== Umsetzung ===== ===== Umsetzung =====
  
-Das API baut auf dem HTTP Protokoll auf und orientiert sich an [http://de.wikipedia.org/wiki/Representational_State_Transfer REST]. +Die gesamte Kommunikation mit der Middleware wird ausnahmslos über HTTP-Anfragen abgewickelt. 
-Die Daten werden mit JSON codiert übertragen.+Beim Entwurf der API wurde auf folgende Punkte geachtet:
  
-**HTTP**+**HTTP-Protokoll**
   * wird nur selten in Netzwerken gefiltert   * wird nur selten in Netzwerken gefiltert
   * kann getunnelt oder durch Proxies benutzt werden   * kann getunnelt oder durch Proxies benutzt werden
Zeile 42: Zeile 41:
   * ist durch vorhande Bibliotheken gut nutzbar und weit verbreitet   * ist durch vorhande Bibliotheken gut nutzbar und weit verbreitet
  
-**REST** +**[[http://de.wikipedia.org/wiki/Representational_State_Transfer|REST-Architektur]]** 
-  * die Zustandslosigkeit ist gerade für schwache Controller von Vorteil. +  * [[http://de.wikipedia.org/wiki/Representational_State_Transfer#Adressierbarkeit|Adressierbarkeit]] 
-  * wird auch von Flukso genutzt+  * [[http://de.wikipedia.org/wiki/Representational_State_Transfer#Unterschiedliche_Repr.C3.A4sentationen|Unterschiedliche Repräsentationen]] 
 +  * [[http://de.wikipedia.org/wiki/Representational_State_Transfer#Zustandslosigkeit|Zustandslosigkeit]] (es ist Aufgabe des Frontends eine Session zu verwalten) 
 +  * [[http://de.wikipedia.org/wiki/Representational_State_Transfer#Wohldefinierte_Operationen|Wohldefinierte Operationen]]
  
-**JSON**+**JSON-Format**
   * von Menschen lesbar   * von Menschen lesbar
   * geringer Overload im Vergleich zu XML   * geringer Overload im Vergleich zu XML
   * performante Verarbeitung der Daten mit Javascript   * performante Verarbeitung der Daten mit Javascript
  
-===== Zukunftsmusik ===== 
  
-  * Direktzugriff auf den Controller für Echtzeitdarstellung & Steuerung des Controllers (Ethersex besitzt bereits einen HTTPD, Flukso auch) 
-    * Matthias von mysmartgrid hat das bereits für den Flukso Controller implementiert 
-  * Erkennung und Übertragung der Sensortypen, Auflösungen etc.. 
-  * Google Power Meter like Workflow zum installieren neuer Zähler 
development/api/start.txt · Zuletzt geändert: 2018/12/10 15:15 von zugschlus