Lock in $30 Savings on PRO—Offer Ends Soon! ⏳

Überblick Client-Architekturen

Überblick Client-Architekturen

Von nativen Clients bis hin zu HTML5/JavaScript. Votrag im Rahmen der Vorlesung IKS-Architekturen bei Prof. Hasenkamp an der Philipps-Universität Marburg

Alexander Schwartz

February 04, 2014
Tweet

More Decks by Alexander Schwartz

Other Decks in Technology

Transcript

  1. Übersicht Client-Technologien In der Vorlesung IKS-Architektur Prof. Hasenkamp Philipps-Universität Marburg

    Alexander Schwartz, 05-02-2014 msg systems ag, 05-02-2014 Alexander Schwartz, Client Technologien 1
  2. AGENDA 1. Einführung 2. Native Anwendungen 3. Portable Anwendungen 4.

    Thin Clients 5. Evolution 6. Interoperabilität 7. Testen 8. Auswahl einer Client-Technologie 2 Alexander Schwartz, Client Technologien msg systems ag, 05-02-2014
  3. msg systems ag, 05-02-2014 Alexander Schwartz, Client Technologien 3 Mein

    Sponsor und Arbeitgeber 1980 gegründet mehr als 4000 Kollegen 9 Branchen 540 Mio € Umsatz 2012 23 Länder in 13 Städten in Deutschland präsent msg systems ag
  4. msg systems ag, 05-02-2014 Alexander Schwartz, Client Technologien 4 Startup

    im Konzern Projektmanager für die Durchführung Softwareentwickler für Individualsoftware (.NET und Java) IT Consultants für Beratung Fachspezialisten für Konzepte insges. 50 Mitarbeiter an 4 Standorten Geschäftsbereich Travel und Logistik
  5. msg systems ag, 05-02-2014 Alexander Schwartz, Client Technologien 5 Wer

    ich bin Alexander Schwartz Principal IT Consultant im GB Travel und Logistics BWL Studium Marburg und Canterbury 11 Jahre Java 7 Jahre PL/SQL 7 Jahre Absatzfinanzierung 3,5 Jahre Direktbank 1 Frau 2 Kinder 311 gefundene Geocaches
  6. AGENDA 1. Einführung 2. Native Anwendungen 3. Portable Anwendungen 4.

    Thin Clients 5. Evolution 6. Interoperabilität 7. Testen 8. Auswahl einer Client-Technologie 6 Alexander Schwartz, Client Technologien msg systems ag, 05-02-2014
  7. msg systems ag, 05-02-2014 Alexander Schwartz, Client Technologien 7 Aspekte

    der Client-Techologie: • Gibt Informationen wieder (z.B. auf einem Bildschirm) • Stellt Eingabemöglichkeiten bereit • Gibt Rückmeldung zur Validierung und Verarbeitung • Greift auf Backend-Services für Fachlogik zu • Erlaubt Zugriff auf zentral gespeicherte Informationen Im Fokus für heute: • Desktop • Mobile (Telefon/Tablet) Heute nicht betrachtet: • Sprachdialogsysteme • Eingebettete Systeme • Kommandozeilen-Interfaces Einführung Die Client-Technologie ist die Schnittstelle zum Nutzer.
  8. msg systems ag, 05-02-2014 Alexander Schwartz, Client Technologien 8 •

    verschiedene Betriebssysteme (OS) • verschiedene Bildschirmgrößen • verschiedene Eingabemöglichkeiten (Maus, Tastatur, Finger) • verschiedene Extras (GPS, Drucker, Scanner, Kamera, …) Einführung Endgeräte haben unterschiedliche Eigenschaften Internet Corporate Network Cloud
  9. msg systems ag, 05-02-2014 Alexander Schwartz, Client Technologien 9 •

    Systematische Analyse der Aspekte • Unterstützt durch einen etablierten Standard: ISO 25 0xx quality model • Benutzerzentriert: “quality in use” Modell* • Produktzentriert: “product quality” Modell* Einführung Bewertung verschiedener Client-Technologien * Alle Referenzen zum Standard in sind hier und im weiteren Verlauf – wie der Standard selbst – in englischer Sprache
  10. msg systems ag, 05-02-2014 Alexander Schwartz, Client Technologien 10 •

    Im Fokus ist die Wahrnehmung der Software durch den Endanwender Einführung “Quality in use” zur Bewertung der Mensch-Maschine-Interaktion
  11. msg systems ag, 05-02-2014 Alexander Schwartz, Client Technologien 11 Einführung

    “Product quality” zur Charakterisierung eines Softwareprodukts • Im Folgenden: zur Charakterisierung verschiedener Client-Technologien
  12. AGENDA 1. Einführung 2. Native Anwendungen 3. Portable Anwendungen 4.

    Thin Clients 5. Evolution 6. Interoperabilität 7. Testen 8. Auswahl einer Client-Technologie 12 Alexander Schwartz, Client Technologien msg systems ag, 05-02-2014
  13. msg systems ag, 05-02-2014 Alexander Schwartz, Client Technologien 13 •

    functional completeness … covers all the specified tasks and user objectives … • user interface aesthetics … pleasing and satisfying interaction … • time behaviour … response and processing times … • learnability … user … learning to use the product … Native Anwendungen Native Anwendungen können alle Funktionen nutzen, die das darunterliegende Betriebssystem anbietet.
  14. msg systems ag, 05-02-2014 Alexander Schwartz, Client Technologien 14 Desktop

    • Microsoft Windows: .NET mit Windows Presentation Foundation (WPF) * • Apple Mac OS X: Objective C mit Cocoa Mobile • Apple iOS: Objective C mit Cocoa Touch • Google Android: Java mit Android SDK * * Auch C/C++ stehen zur Verfügung, um native Anwendungen (oder Teile davon) zu entwickeln. Native Anwendungen Haupt-Plattformen für native Anwendungen
  15. msg systems ag, 05-02-2014 Alexander Schwartz, Client Technologien 15 •

    Native Anwendungen für die Windows-Plattform • Code wird auf der Common Language Runtime (CLR) ausgeführt • Teil von .NET 3.0 (verfügbar seit 2006) • Letzte Version 4.5.1 (2013) • Alle nativen Funktionen von Windows stehen den Entwicklern zur Verfügung • “Click once” Installation / automatisches Update • Windows Store als Teil von Windows 8 • Plugin Framework (MEF) seit 3.5 für Erweiterung durch Module zur Laufzeit • Entwicklung muss auf einem (aktuellen) Windows-Rechner erfolgen Native Anwendungen Microsoft Windows / Desktop: .NET mit Windows Presentation Foundation (WPF)
  16. msg systems ag, 05-02-2014 Alexander Schwartz, Client Technologien 16 •

    Erstes Release 2001 • Neustes Release 10.9 (2013) • Alle nativen Funktionen des Mac OS X stehen den Entwicklern zur Verfügung • App-Store für Anwendungen, inklusive automatische Aktualisierung • Entwicklung muss auf einem (aktuellen) Mac OS X erfolgen Native Anwendungen Apple Mac OS X / Desktop: Objective C mit Cocoa
  17. msg systems ag, 05-02-2014 Alexander Schwartz, Client Technologien 17 •

    Erstes Release 2007 • Neustes Release 7 (2013) • Alle nativen Funktionen des Apple iOS stehen den Entwicklern zur Verfügung • App-Store für Anwendungen, inklusive automatische Aktualisierung • Entwicklung muss auf einem (aktuellen) Mac OS X erfolgen Native Anwendungen Apple iOS / Mobile: Objective C mit Cocoa touch
  18. msg systems ag, 05-02-2014 Alexander Schwartz, Client Technologien 18 •

    Erstes Release Release 2008 • Neustes Release 4.4 (2013) • Alle nativen Funktionen des Google Android stehen den Entwicklern zur Verfügung • App-Store für Anwendungen, inklusive automatische Aktualisierung • Entwicklung kann erfolgen auf Linux, Mac OS und Windows mit Android SDK basierend auf Eclipse IDE (Preview: IntelliJ IDE) Native Anwendungen Google Android / Mobile: Java w/ Android SDK The Android robot is reproduced or modified from work created and shared by Google and used according to terms described in the Creative Commons 3.0 Attribution License.
  19. msg systems ag, 05-02-2014 Alexander Schwartz, Client Technologien 19 •

    Installation benötigt ggf. lokale Administratorenrechte • Installation müssen vom IT Betrieb verwaltet werden • Aktualisierungen müssen bereitgestellt und ausgerollt werden • Keine Portabilität auf ein anderes Betriebssystem • Technologie auf dem Client stimmt ggf. nicht mit der Technologie im Backend überein (.NET / Objective C / Java) Native Anwendungen Nachteile von nativen Anwendungen
  20. AGENDA 1. Einführung 2. Native Anwendungen 3. Portable Anwendungen 4.

    Thin Clients 5. Evolution 6. Interoperabilität 7. Testen 8. Auswahl einer Client-Technologie 20 Alexander Schwartz, Client Technologien msg systems ag, 05-02-2014
  21. msg systems ag, 05-02-2014 Alexander Schwartz, Client Technologien 21 •

    portability … can be transferred from one hardware, software … to another • reusability … asset can be used in more than one system … • maintainability … effectiveness and efficiency … system can be modified … • Bibliotheken können auf verschiedenen Betriebssystemen verwendet werden • Verschiedene Plattformen können aus einem Release bedient werden Desktop: • Java / Eclipse RCP Mobile: • Phonegap / Apache Cordova Portable Anwendungen Portable Anwendungen laufen auf mehr als einem Betriebssystem
  22. msg systems ag, 05-02-2014 Alexander Schwartz, Client Technologien 22 •

    Plugin-Architektur basierend auf OSGi für Erweiterungen zur Laufzeit • Automatische Aktualisierung • Wiederverwendung von Java-Know-How, wenn dies bereits auf der Server-Seite eingesetzt wird • Unterstützte Plattformen: Windows, Mac OS X, Linux • Unterscheidet sich in Aussehen und Bedienbarkeit von nativen Anwendungen • Zugriff auf einzelne native Elemente ist möglich • Interaktion mit nativen Anwendungen ist möglich, z. B. OLE (Object Linking and Embedding) unter Windows Portable Anwendungen Desktop: Java / Eclipse RCP
  23. msg systems ag, 05-02-2014 Alexander Schwartz, Client Technologien 23 •

    Nutzt HTML, CSS und JavaScript, um eine Anwendung zu erstellen (mit jQuery mobile oder Dodo Mobile) • Anwendung wird in eine native Hülle eingepackt • Zugriff auf native Funktionen über eine JavaScript Abstraktionsschicht • Ein Build Service in der Cloud baut Versionen für verschiedene Zielplattformen, zusätzliche Hardware wird nicht benötigt • Zugriff auf 7 mobile Plattformen, inkl. Android, iOS, Windows Phone • Aussehen und Bedienbarkeit sind (etwas) anders als bei nativen Anwendungen (Anpassungen via CSS sind möglich) • Zugriff auf die Hauptfunktionen der Endgeräte • Langsamer als eine native Anwendung Portable Anwendungen Mobile: Phone Gap / Apache Cordova
  24. AGENDA 1. Einführung 2. Native Anwendungen 3. Portable Anwendungen 4.

    Thin Clients 5. Evolution 6. Interoperabilität 7. Testen 8. Auswahl einer Client-Technologie 24 Alexander Schwartz, Client Technologien msg systems ag, 05-02-2014
  25. msg systems ag, 05-02-2014 Alexander Schwartz, Client Technologien 25 •

    installability … effectiveness and efficiency [to be] installed/uninstalled … • replaceability … new version … different product … • operability … easy to operate and control … • maintainability … effectiveness and efficiency … system can be modified … Thin Clients Nutzung eines Browsers mit serverseitiger Logik
  26. msg systems ag, 05-02-2014 Alexander Schwartz, Client Technologien 26 Thin

    Clients Nutzung eines Browsers mit serverseitiger Logik Darstellung Präsentations- logik Fachlogik Datenschicht Client Server Native Anwendung Client HTML basierend Server
  27. msg systems ag, 05-02-2014 Alexander Schwartz, Client Technologien 27 •

    Minimaler Einsatz von JavaScript • Nutzt etablierte Browser-Standards • Stellt Abstraktionen für HTTP und HTML bereit • Kein Zugriff auf betriebssystemspezifische Funktionen • Jede Aktion des Nutzers wird vom Server verarbeitet Thin Clients Serverseitige Frameworks für HTML Java .NET MVC Spring Web MVC ASP.NET MVC Komponenten Java Server Faces (JSF) ASP.NET
  28. msg systems ag, 05-02-2014 Alexander Schwartz, Client Technologien 28 •

    Starker Einsatz von JavaScript (oder Browser Plugin) • Mächtige Abstraktionsschichten über HTTP und HTML (GWT kompiliert Java zu JavaScript) • Einige Aktionen des Nutzers benötigen eine Rückmeldung vom Server Thin Clients Rich Internet Applications (RIA) Client Technologie AJAX Komponenten RichFaces, IceFaces, PrimeFaces Komponenten Google Web Toolkit (GWT) Browser Plugins Adobe Flash Microsoft Silverlight
  29. msg systems ag, 05-02-2014 Alexander Schwartz, Client Technologien 29 Thin

    Clients Nutzung eines Browsers mit serverseitiger Logik Darstellung Präsentations- logik Fachlogik Datenschicht Client Server Native Anwendung Client HTML basierend Server Client Rich Internet Application Server
  30. msg systems ag, 05-02-2014 Alexander Schwartz, Client Technologien 30 •

    Reduziertes Nutzererlebnis durch geringere Interaktivität der genutzten Technologie • Auf dem Server gespeicherter Zustand benötigt Resourcen pro zusätzlichem Nutzer, der mit dem System arbeitet • Der Zustand auf dem Server muss zwischen den verschiedenen Knoten abgeglichen werden • Skalierbarkeit wird mit wachsender Nutzerzahl schwierig • Aspekt “functional completeness” kann schwer erreicht werden, wenn mehrere Abstraktionsstufen existieren • Browser Plugins müssen separat installiert (und aktualisiert) werden • Browser Plugins sind bekannt für Sicherheitsprobleme Thin Clients Nachteile der vorgestellten Thin Client Technologien
  31. msg systems ag, 05-02-2014 Alexander Schwartz, Client Technologien 31 Alle

    Vorteile einer Browser-Technologie plus: • capacity … maximum limits of a product … • resource utilization … resource used to meet requirements … • functional completeness … covers all the specified tasks and user objective … … wenn REST-basierte, zustandslose Backend-Services genutzt werden. Thin Clients HTML5 + JavaScript als Client-Technologie
  32. msg systems ag, 05-02-2014 Alexander Schwartz, Client Technologien 32 Thin

    Clients Nutzung eines Browsers mit serverseitiger Logik Darstellung Präsentations- logik Fachlogik Datenschicht Client Server Native Anwendung Client HTML basierend Server Client Rich Internet Application Server HTML5 JavaScript Client Server
  33. msg systems ag, 05-02-2014 Alexander Schwartz, Client Technologien 33 •

    HTML: 1990 (Sir Tim Berners-Lee, CERN) • JavaScript: 1996 (Brendan Eich, Netscape) • JavaScript interagiert mit HTML: Document Object Model (DOM) 1997 (“intermediate DOM”) … 2004 (“DOM Level 3”) • JavaScript interagiert mit dem Server: XMLHttpRequest 2001 (Microsoft / Internet Explorer 6 – in IE 5 nur mit ActiveX) • Standardisiertes JavaScript API für Interaktion mit HTML: jQuery 2006 • Modularisierung in JavaScript: requireJS 2010 • Model-View-Binding HTML/JavaScript: Knockout 2010 Thin Clients HTML5 + JavaScript Zeitleiste (cc) W3C http://www.w3.org/html/logo/
  34. AGENDA 1. Einführung 2. Native Anwendungen 3. Portable Anwendungen 4.

    Thin Clients 5. Evolution 6. Interoperabilität 7. Testen 8. Auswahl einer Client-Technologie 34 Alexander Schwartz, Client Technologien msg systems ag, 05-02-2014
  35. msg systems ag, 05-02-2014 Alexander Schwartz, Client Technologien 35 •

    maturity … applied to reliability, but also other quality characteristics … • maintainability … corrections, improvements, adoption of the software to changes in the environment … • adaptability ... can be adapted for different or evolving hardware, software … • Neue Frameworks und Versionen erscheinen monatlich • Wenige erlangen Bedeutung und werden Quasi-Standards ihrer Zeit und im Unternehmensumfeld eingesetzt • Einige Technologien verschwinden, wenn Hersteller- oder Community-Unterstützung ausbleiben Evolution von Client Technologien Evolution von Client Technologien
  36. msg systems ag, 05-02-2014 Alexander Schwartz, Client Technologien 36 •

    Java basiertes Web MVC Framework • Früher sehr stark verbreitet • Erstes Release: 2000 • Letztes Release: 2008 • Offizielle Community-Aussage: “end of life” • Es gibt weiterhin Unternehmensanwendungen basierend auf Struts 1.x • Ein Migrationspfad zu 2.0 existiert – aber 2.0 ist inkompatibel Evolution von Client Technologien Tote Technology: Struts 1.x
  37. msg systems ag, 05-02-2014 Alexander Schwartz, Client Technologien 37 •

    Java Server Faces (JSF) ist Teil des offenen Java Enterprise Edition (JEE) Standards • Erstes Release JSF 1.0: 2004 • Neustes Release JSF 2.2: 2013 • Alte Versionen laufen auch auf neuen Applikationsservern • Refactoring ist empfehlenswert, um neue Funktionen nutzen zu können • Migrationen sind notwendig, wenn Bibliotheken von Drittanbietern verwendet wurden, deren Funktionen später in den Standard aufgenommen werden Evolution von Client Technologien Evolution eines Standards: Java Enterprise Edition / Java Server Faces
  38. msg systems ag, 05-02-2014 Alexander Schwartz, Client Technologien 38 •

    HTML: Früher gab es Standards des W3C in verschiedenen Versionen … jetzt ein “living standard” (http://html5.org/) • JavaScript: Standardisiert als ISO/IEC 16262 … aber nicht alle APIs sind Teil des Standards Nach mehr als 10 Jahren sind wir nun in der Lage, modulare und interaktive Anwendungen zu bauen Ist es nun eine „reife Technologie“? Evolution von Client Technologien Ungesteuerte (?) Evolution: HTML und JavaScript
  39. AGENDA 1. Einführung 2. Native Anwendungen 3. Portable Anwendungen 4.

    Thin Clients 5. Evolution 6. Interoperabilität 7. Testen 8. Auswahl einer Client-Technologie 39 Alexander Schwartz, Client Technologien msg systems ag, 05-02-2014
  40. msg systems ag, 05-02-2014 Alexander Schwartz, Client Technologien 40 •

    interoperability … can exchange information and use the information … • compatibility … can exchange information … sharing the same … environment … • functional completeness … covers all specified tasks and user objectives … Interoperabilität von Client Technologien Interoperabilität von Clients
  41. msg systems ag, 05-02-2014 Alexander Schwartz, Client Technologien 41 •

    Android Intents: Publish/Subscribe Mechanismus, um Daten und Events zu versenden und zu empfangen • Windows OLE: spezifische Interaktion zwischen einzelnen Anwendungen Contracts (seit Windows 8): Publish/Subscribe Mechanismus, um Daten und Events zu versenden und empfangen • HTML / HTML5 Links: Weiterleitung zu einer anderen Awendung, ggf. mit Datenübergabe JavaScript/DOM Mash-Up: Integration in die eigene Anwendung zur Laufzeit • Eclipse RCP / .NET WPF Plugins können zur Laufzeit dazuinstalliert werden Interoperabilität von Client Technologien Interoperability nach Betriebssystem and Client Technologie
  42. AGENDA 1. Einführung 2. Native Anwendungen 3. Portable Anwendungen 4.

    Thin Clients 5. Evolution 6. Interoperabilität 7. Testen 8. Auswahl einer Client-Technologie 42 Alexander Schwartz, Client Technologien msg systems ag, 05-02-2014
  43. msg systems ag, 05-02-2014 Alexander Schwartz, Client Technologien 43 •

    functional correctness … correct results with the needed degree of precision … • usability … achieve specified goals … • maintainability … system can be modified by the intended maintainers … • testability … test criteria can be established for the system … … tests can be performed for [the] criteria … Testen in Abhängigkeit zur Client Technologie Testen in Abhängigkeit zur Client Technology
  44. msg systems ag, 05-02-2014 Alexander Schwartz, Client Technologien 44 •

    Continuous Integration Build • Unit Testing • Automatische Provisionierung • Smoke Tests • Integrationstests • Graphical User Interface (GUI) Tests • Lasttests • Continuous Integration ist für alle vorgestellten Technologien verfügbar • Automatische Provisionierung ist eine Herausforderung • GUI Tests sind schwierig und empfindlich Testen in Abhängigkeit zur Client Technologie Elemente automatischen Testens
  45. msg systems ag, 05-02-2014 Alexander Schwartz, Client Technologien 45 .NET

    / WPF • Ein Betriebssystem (wenige unterschiedliche Versionen) • Kann mit wenigen virtuellen Maschinen (VMs) bereitgestellt werden Eclipse RCP • Mehrere Betriebssystems (wenige unterschiedliche Versionen) • Kann mit einigen wenigen VMs bereitgestellt werden Web Client / HTML5 • Viele Betriebssysteme, viele Browser und Browser-Versionen • Kann mit vielen VMs bereitgestellt werden Android • Viele Endgeräte, viele Auflösungen, viele Versionen • Kann virtualisiert werden für Standard-Android, aber nicht für modifizierte Android-Versionen der verschiedenen Hersteller iOS • Wenige Endgeräte, wenige Auflösungen, wenige Versionen • Schwierig zu virtualisieren Testen in Abhängigkeit zur Client Technologie Schwierigkeit des GUI Testens Schwierigkeit Cloud- basierte Services können helfen
  46. AGENDA 1. Einführung 2. Native Anwendungen 3. Portable Anwendungen 4.

    Thin Clients 5. Evolution 6. Interoperabilität 7. Testen 8. Auswahl einer Client-Technologie 46 Alexander Schwartz, Client Technologien msg systems ag, 05-02-2014
  47. msg systems ag, 05-02-2014 Alexander Schwartz, Client Technologien 47 •

    Anforderungen prüfen • Lebensdauer der Anwendung abschätzen • Ggf. getrennte Schätzung der Lebensdauer von Client und Server • Evaluierung in Anlehnung an einen Kriterienkatalog ähnlich ISO 250xx • Prüfen, welche Kriterien für den Kunden in seiner Situation wichtig sind • Mit Menschen reden, die die Technologie schon verwendet haben • Einen Prototypen bauen • Test-Automatisierung am Prototyp ausprobieren • Aufschreiben, warum man sich für eine bestimmte Technologie entschieden hat * • (Vielleicht) schon darauf vorbereiten, die Client-Technologie später austauschen zu können * vgl. [arc42], Kapitel 9 Auswahl einer Client-Technologie Auswahl einer Client-Technologie
  48. msg systems ag, 05-02-2014 Alexander Schwartz, Client Technologien 49 Referenzen

    [ISO 25010] ISO/IEC 25010:2011, Systems and software engineering — Systems and software Product Quality Requirements and Evaluation (SQuaRE) — System and software quality models [Quamoco] Quamoco, Software-Qualitätsstandard für Deutschland http://www.quamoco.de/webmodel/ (frei zugängliche Details zum Product Quality Model gem. ISO 25010) [arc42] Vorlage, um IT-Systemarchitekturen zu dokumentieren http://www.arc42.org
  49. www.msg-systems.com Danke! msg systems ag, 05-02-2014 Alexander Schwartz, Client Technologien

    50 msg systems ag Alexander Schwartz Mobile: +49 171 5625767 E-Mail: [email protected] Mergenthalerallee 73-75 65760 Eschborn www.msg-systems.com