Vergleich verschiedener Kommunikationsinfrastrukturen in Enterprise Information Systems Ben Mainz Seminar am Lehrstuhl für Software Engineering RWTH Aachen
Seminar Ben Mainz Software Engineering RWTH Aachen , Folie 2 Gliederung Serialisierung 2. Webservice Architekturen 3. Feature-Vergleich 4. Testergebnisse 5. Motivation 1. Zusammenfassung und Ausblick6.
Seminar Ben Mainz Software Engineering RWTH Aachen , Folie 3 Enterprise Information Systems (EIS) Application Server + DB Client :A :B :A‘:B‘ Client Middleware :A :B :A‘:B‘ Optimierung der Kommunikation in Enterprise Information Systems structured data (e.g. XML, JSON) Technology: Web Services (e.g. RPC, REST, …)
Seminar Ben Mainz Software Engineering RWTH Aachen , Folie 4 Gliederung Serialisierung 2. Webservice Architekturen 3. Feature-Vergleich 4. Testergebnisse 5. Motivation 1. Zusammenfassung und Ausblick6.
Seminar Ben Mainz Software Engineering RWTH Aachen , Folie 5 Serialisierung serialized file p:Person name = „Kai“ mp:MobilePhone deserialize serialize OD Bildet strukturierte Daten in ein anderes Format ab Speicherung und Übertragung os = „ANDROID“
Seminar Ben Mainz Software Engineering RWTH Aachen , Folie 6 Serialisierungsformate & -bibliotheken eXtensible Markup Language (XML) textuelle Form lesbar für Menschen Begin- und Endtags schwergewichtig weit verbreitet und stark toolunterstützt ca. 80% Overhead Anna 35 Peter Hans 35 Peter Hans
Seminar Ben Mainz Software Engineering RWTH Aachen , Folie 7 Serialisierungsformate & -bibliotheken JavaScript Object Notation (JSON) textuelle Form lesbar für Menschen keine redundanten Tags leichtgewichtig gültiger JavaScript-Code Protocol Buffers (protobuf) Konzept Binäres Format nicht lesbar für Menschen Spezifizierungssprache für Schemata Klassen enthalten Serialisierungsmechanismen { "name": "Anna", "age": 35, "children": ["Peter", "Hans"] } message person { required string name = 1; optional int64 age = 2; repeated string children = 3; }
Seminar Ben Mainz Software Engineering RWTH Aachen , Folie 8 Gliederung Serialisierung 2. Webservice Architekturen 3. Feature-Vergleich 4. Testergebnisse 5. Motivation 1. Zusammenfassung und Ausblick6.
Seminar Ben Mainz Software Engineering RWTH Aachen , Folie 9 Webservice Architekturen Webservice (WS) Kommunikation zwischen Komponenten Netzwerk Server-Client Server Provide WS (REST, RPC) Client Network Data transfer
Seminar Ben Mainz Software Engineering RWTH Aachen , Folie 10 Realisierung von Webservices Representational State Transfer (REST) Ressourcenorientierter Architekturstil HTTP-Protokolle Modularität und Skalierbarkeit Remote Procedure Call (RPC) Funktionen im Server haben eine ID Remote-Objekt wird lokal gebunden Stub kapselt Komplexität Enterprise JavaBeans (EJB) – Session Bean Realisierung des RPC-Mechanismus Java-EE Server CORBA (Common Object Request Broker Architecture) definiert Protokolle und Dienste
Seminar Ben Mainz Software Engineering RWTH Aachen , Folie 11 Gliederung Serialisierung 2. Webservice Architekturen 3. Feature-Vergleich 4. Testergebnisse 5. Motivation 1. Zusammenfassung und Ausblick6.
Seminar Ben Mainz Software Engineering RWTH Aachen , Folie 12 Feature-Vergleich: Datenaustauschformate LesbarkeitVerwendungAustauschErweiterbar- keit PerformanzZusätzl. Features JAXB +o----- GSON ++o+-oo Jackson ++o--+ Protobuf Java-Ser
Seminar Ben Mainz Software Engineering RWTH Aachen , Folie 13 Objektgraphen (OG) … … … Tiefer OG Alle Bibliotheken Breiter OG Alle Bibliotheken Zyklischer OG Jackson und Java-Serialisierer Zwei eingehende Referenzen Jackson, Java-Serialisierer und protobuf
Seminar Ben Mainz Software Engineering RWTH Aachen , Folie 14 Feature-Vergleich: Webservice Architekturen Ressourcen versus Aktionen SkalierbarkeitSicherheitKopplungPerformanz RESTzustandslosalle HTTP- Methoden loseCaching RPC (SOAP) zustands- behaftet HTTP-Poststarkzusätzliche Protokolle
Seminar Ben Mainz Software Engineering RWTH Aachen , Folie 15 Gliederung Serialisierung 2. Webservice Architekturen 3. Feature-Vergleich 4. Testergebnisse 5. Motivation 1. Zusammenfassung und Ausblick6.
Seminar Ben Mainz Software Engineering RWTH Aachen , Folie 16 Serialisierung: Tiefer Objektgraph Dateigröße in Bytes lineares Wachstum Java-Serialisierer bei nur einem Objekt am größten
Seminar Ben Mainz Software Engineering RWTH Aachen , Folie 17 Serialisierung: Tiefer OG Zeit in ms lineares Wachstum Schwankungen durch Messungenauigkeiten
Seminar Ben Mainz Software Engineering RWTH Aachen , Folie 18 Serialisierung: Breiter OG Dateigröße: ähnliches Verhalten wie bei tiefem OG Zeit: protobuf um Faktor 10 schneller als Java-Serialisierer Jackson, GSON und JAXB ca. gleich schnell
Seminar Ben Mainz Software Engineering RWTH Aachen , Folie 19 Deserialisierung: Zeit tiefer OG lineares Wachstum protobuf am schnellsten Jackson, GSON und Java-Serialisierer in etwa gleich schnell JAXB ca. 13 mal langsamer als protobuf
Seminar Ben Mainz Software Engineering RWTH Aachen , Folie 20 Webservice Architekturen: EJB vs REST CORBA- Java- Ser. REST-JSONREST-Protobuf POST ms ms GET ms ms RPC ms-- Initialisierungs- phase ms ms REST-Lookup deutlich schneller REST-Methodenaufrufe schneller als RPC-Methodenaufruf
Seminar Ben Mainz Software Engineering RWTH Aachen , Folie 21 Gliederung Serialisierung 2. Webservice Architekturen 3. Feature-Vergleich 4. Testergebnisse 5. Motivation 1. Zusammenfassung und Ausblick6.
Seminar Ben Mainz Software Engineering RWTH Aachen , Folie 22 Zusammenfassung und Ausblick Vorteile und Nachteile verschiedener Formate Performanz, Skalierbarkeit: REST größere Kopplung, Erweiterbarkeit: RPC Themen für weiterführende Arbeiten interessant weitere Serialisierungsbibliotheken (Thrift, Avro) weitere Webservice Architekturen Fokus auf interne Datenstruktur bei der Serialisierung
Seminar Ben Mainz Software Engineering RWTH Aachen , Folie 23 Ich danke für Ihre Aufmerksamkeit.
Seminar Ben Mainz Software Engineering RWTH Aachen , Folie 24 Literaturverzeichnis Colin J. Ihrig: JavaScript Object Notation. Apress, Erik T. Ray: Learning XML. O'Reilly, Stefan Tilkov: REST und HTTP: Einsatz der Architektur des Web für Integrationsszenarien. dpunkt.verlag, Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides: Design Patterns: Elements of Reusable Object-oriented Software. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, google protobuf website: november GSON - google json website: november