Motivation Grundlagen Implementierung Zusammenfassung Theorie und Praxis einer JSON-RPC-basierten Web-API Christian Krause [email protected]Raritan Deutschland GmbH Chemnitzer LinuxTage 2015 Christian [email protected]Theorie und Praxis einer JSON-RPC-basierten Web-API
20
Embed
Theorie und Praxis einer JSON-RPC-basierten Web-API · Motivation Grundlagen Implementierung Zusammenfassung Theorie und Praxis einer JSON-RPC-basierten Web-API Christian Krause...
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
MotivationGrundlagen
ImplementierungZusammenfassung
Theorie und Praxis einer JSON-RPC-basiertenWeb-API
Entwicklung eines neuen ProduktesPDU - Power Distribution UnitMessen von Strom, Spannung,Energie und LeistungSchalten der AusgängeUnterstützung einer Vielzahl vonSensoren und Aktoren
Gesucht: Netzwerk-APIAbfrage aller Daten, Steuerung,Konfigurationinterne Nutzung (Web-Oberfläche)Skripte für Test, Produktion undInstallationIntegration
Christian [email protected] Theorie und Praxis einer JSON-RPC-basierten Web-API
Abbildung der IDL auf entsprechende Klassen undMethoden(De)Serialisierung von/nach JSON-RPCClient: Objekt in Zielsprache agiert als Proxy für entferntesObjektIDL-Compiler
geschrieben in Javaein Backend pro Sprache und Protokoll-MappingC++ (Client und Server), Java (GWT), Java, JavaScript,Perl, Python, Ruby
Christian [email protected] Theorie und Praxis einer JSON-RPC-basierten Web-API
Benutzung der Versionierung durch ClientsVersionierung ignorieren (kein Aufwand, „best effort“)Unterstützung und Prüfung genau einer Version (wenigAufwand, geringe Kompatibilität)Unterstützung mehrerer Versionen (substantieller Aufwand)
Christian [email protected] Theorie und Praxis einer JSON-RPC-basierten Web-API
VorteileErstellung und Test einer einzigen API auf Server-SeiteUnabhängige Entwicklung von Oberflächen und SkriptenC++, Java (GWT), Java, JavaScript, Perl, Python, Ruby
Praktische AnwendungWeb-Frontend: Java (GWT)Web-Frontend für mobile Geräte: JavaScriptAnbindung an Steuerungssysteme: RubySkripte für Groß-Installationen: Perl, PythonSkripte für Test und Produktion: Python
NachteileEntwicklung von Clients für mehrere Versionen aufwendigBei inkompatiblen Änderungen muss Client geändertwerdenKompatible Änderungen sind zu bevorzugen
Christian [email protected] Theorie und Praxis einer JSON-RPC-basierten Web-API