Whitepaper iAutomation - Softwarearchitektur für mobile...

8
www.infoteam.de iAutomation - Softwarearchitektur für mobile Devices Whitepaper

Transcript of Whitepaper iAutomation - Softwarearchitektur für mobile...

Page 1: Whitepaper iAutomation - Softwarearchitektur für mobile ...donar.messe.de/exhibitor/hannovermesse/2017/G...Softwarearchitektur für mobile Devices Whitepaper. 2 iAutomation - Softwarearchitektur

www.infoteam.de

iAutomation -Softwarearchitektur für mobile Devices

Whitepaper

Page 2: Whitepaper iAutomation - Softwarearchitektur für mobile ...donar.messe.de/exhibitor/hannovermesse/2017/G...Softwarearchitektur für mobile Devices Whitepaper. 2 iAutomation - Softwarearchitektur

2

iAutomation - Softwarearchitektur für mobile Devices

1 Einleitung

INHALTLICH VERANTWORTLICHinfoteam Software AGAm Bauhof 9D-91088 Bubenreuth

[email protected]

AUTORDirk Beinertinfoteam Software AG

BILDNACHWEISAlbrecht Jung GmbH & Co. KG,infoteam Software AG

ZUSAMMENFASSUNG�� Intuitive und benutzer-freundliche Steuerung von Industrieapplikationen�� Softwarearchitektur für Client, Server und Kommunikation�� iAutomation-Toolkit

KEYWORDSiAutomation, Softwarearchi-tektur, Google Web Toolkit, Mobile Devices, Firmware, Web-Technologie, HTML5, CSS3, JSON-RPC

Alle verwendeten Hard- undSoftwarenamen sindHandelsmarken und/odereingetragene Marken derjeweiligen Hersteller.

© 2017,infoteam Software AG.Änderungen vorbehalten.

Version 2# WP-13-06-1

Mit iAutomation bezeichnet die infoteam Software AG das bereits für zahl-reiche Kunden erfolgreich umgesetzte System der intuitiven und benutzer-freundlichen Steuerung von Industrieapplikationen per Smartphone und Tablet.

Nachfolgend wird die grundlegende Softwarearchitektur für Client, Server und Kommunikation des Multiplattform-Systems vorgestellt sowie die platt-formunabhängige Basistechnologie für die Visualisierung und den Server erläutert. Diese Komponenten können als iAutomation-Toolkit wiederver-wendet werden und sind flexibel einsetzbar. Zudem erlaubt das Framework die schnelle Erstellung von Prototypen und folglich eine wesentliche Redu-zierung der Entwicklungskosten.

Die industrielle Softwareentwicklung muss sich der aktuellen Herausfor-derung stellen und komplexe Zusammenhänge vom PC auf mobile End-geräte transportieren. Beliebig detaillierte Ansichten (Views), die mit einer Maus noch präzise bedient werden können, sind für Tablets und Smartpho-nes nicht geeignet. Die dafür notwendige Anwenderfreundlichkeit (Usability) lässt sich mit herkömmlichen Bedienkonzepten nicht erreichen.

Der User muss seine technische Aufgabe zuverlässig erfüllen und möchte die Software intuitiv bedienen können, d. h. ohne längere Einarbeitungszei-ten. Nicht zuletzt soll die Bedienung zu einem angenehmen Erlebnis werden (Joy of use).

Auch die technologischen Entscheidungen werden zunehmend komplexer. Die Monotonie der Windows-PCs ist einer Vielzahl von Zielplattformen mit unterschiedlichsten Entwicklungswerkzeugen und Betriebssystemen gewi-chen. Für diese Multiplattform-Entwicklung gibt es verschiedene Lösungs-ansätze:�� Individuelle native Entwicklung (Java für Android, C# für Windows RT/8, Objective-C für iOS) �� Nutzung von Cross-Compilern (Mono, MonoDroid, MonoTouch, PhoneGap) �� Web-basierte Entwicklung für die ubiquitären Browser (HTML5, CSS3, JavaScript)

Page 3: Whitepaper iAutomation - Softwarearchitektur für mobile ...donar.messe.de/exhibitor/hannovermesse/2017/G...Softwarearchitektur für mobile Devices Whitepaper. 2 iAutomation - Softwarearchitektur

3

2 GWT-Client

Dank der Softwareentwicklung mit Java ist eine typensichere Programmie-rung möglich, die den Großteil der Fehler bereits zur Compilezeit aufdeckt. Die Programmiersprache erlaubt die Nutzung etablierter Entwurfsmuster (Design Patterns) für eine saubere Strukturierung größerer Applikationen.

Umfangreiche Softwarelösungen beinhalten in der Regel eine Vielzahl von User Interface-(UI)Elementen, die untereinander Datenbeziehungen aufwei-sen. Zur Trennung von Verantwortlichkeiten der Softwaremodule und zur Vermeidung von Kopplung im Code bedient man sich im Allgemeinen des Model View Controller- (MVC)Designs oder einer Erweiterung (siehe Abb. 1).

In der Model View Presenter- (MVP)Architektur wird die direkte Controller-Controller-Kopplung durch einen einheitlichen Eventbus ersetzt. An diesem registrieren die verschiedenen An-sichten zentral ihre Events und abonnieren die Ereignisse der Nachbar-Views, ohne Details über deren Implementierung kennen zu müssen. Zu-sätzlich erhält der Controller – in der neueren Li-teratur über Design Patterns als „Presenter“ und unter GWT-Entwicklern als „Activity“ bezeichnet – eine beigestellte Status-Klasse (Place), um innere Zustände des Views speichern zu können. Auf die-se Weise werden zahlreiche Views parallel bear-beitbar, ohne Rückwirkungen auf andere Views befürchten zu müssen.

Abbildung 1: Entwurfsmuster MVC und erweitertes MVP

Controller

Model View

MVC

GWT-MVP

Eventbus

Activity Place Event Event-HandlerActivity Place Event Event-Handler

ActivityActivityActivityActivityActivityActivity PlacePlacePlacePlacePlacePlace EventEventEventEventEventEventEvent-HandlerEvent-Event-Event-Event-HandlerHandlerHandlerHandlerEvent-HandlerActivity Place Event Event-Handler

Model View

Controller

Model View

Während eine native Entwicklung für jede einzelne Zielplattform man-gels Wiederverwendbarkeit des Codes zeitaufwendig und teuer ist, führen Cross-Compiler derzeit noch ein Nischendasein, was den Investitionsschutz gefährdet.

Im Gegensatz zu JavaScript erlaubt der webbasierte Ansatz mittels Google Web Toolkit (GWT) eine komfortable, modellbasierte und typensichere Ent-wicklung. Die anschließende JavaScript-Transformation übernimmt eben-falls GWT-Engine. Dieses Konzept wird nachfolgend näher erläutert.

Page 4: Whitepaper iAutomation - Softwarearchitektur für mobile ...donar.messe.de/exhibitor/hannovermesse/2017/G...Softwarearchitektur für mobile Devices Whitepaper. 2 iAutomation - Softwarearchitektur

4

Ein ähnliches Prinzip der Eventzentralisierung liegt bei Nutzung des OS-Gi-Frameworks als Firmware-Gegenstück zur Visualisierungssoftware vor. OSGi basiert auf einer serviceorientierten Architektur (SOA) und die Appli-kationen weisen eine geringe Kopplung untereinander auf. Beim Start eines Applikation-Bundles überprüfen sogenannte Aktivatoren die Verfügbarkeit der zu abonnierenden Dienste. Sollte die Prüfung fehlschlagen, ist nur die einzelne Applikation betroffen.

Ein spezielles OSGi-Bundle, der sog. „Eventadmin“, dient dabei als Vermittler für Events, die vom Client oder dem unterlagerten Feldbus kommen (siehe Abb. 2). Die Aufrufe des Clients adressiert ein Webserver an die jeweilige Firmware-Applikation. Zudem sorgt eine optionale Managementkomponen-te für die Persistierung und Speicherverwaltung.

Neue Pakete oder Software-Updates werden durch einfaches Kopieren in das Filesystem eingespielt. Eine aufwendige Installation entfällt.

3 OSGi-Server

Webserver Applikation

OSGi

Feldbus-Stack

http-Servlet

Eventadmin Management

Abbildung 2: Firmware-Eventadmin

Page 5: Whitepaper iAutomation - Softwarearchitektur für mobile ...donar.messe.de/exhibitor/hannovermesse/2017/G...Softwarearchitektur für mobile Devices Whitepaper. 2 iAutomation - Softwarearchitektur

5

Der Gebäudesystemtechnikhersteller Insta Elektro GmbH und dessen OEM-Kunden Gira und Jung vertrauen für ihr neues eNet-System auf die infoteam Software AG und das Google Web Toolkit. Dieses einfach nach-rüstbare Funksystem für die moderne Gebäudeautomatisierung ermöglicht die komfortable Installation und Bedienung von z. B. Beleuchtungs- und Ja-lousieaktoren im Haus. Die Software kann sowohl per PC als auch über die im Haushalt vorhandenen Smartphones und Tablets betrieben werden.

Per Drag-and-drop können mit der eNet Inbetriebnahme-Software Netz-werke projektiert und deren Sensoren und Ak-toren einfach und intu-itiv verdrahtet werden (siehe Abb. 3). Funkdia- gnose und automatisches Geräte-Einlernen sind nur ein Teil der vielen Featu-res, die dieses System an-bietet.

Abbildung 3: eNet Inbetriebnahme-Software

4 Kommunikation via JSON-RPC

Die Kommunikation zwischen Client und Server erfolgt in unserem Beispiel per http/https über LAN und WLAN, wobei die Nettodaten dem sog. JSON-RPC-Format entsprechen. Diese von Java gut unterstützte Serialisierung von Objekten und Methoden in Strings sowie die entsprechende Deserialisie-rung auf Empfängerseite stellen ein offenes und erweiterbares Interface zwischen Firmware und mobilem Endgerät dar.

5 Anwendungsbeispiel

Page 6: Whitepaper iAutomation - Softwarearchitektur für mobile ...donar.messe.de/exhibitor/hannovermesse/2017/G...Softwarearchitektur für mobile Devices Whitepaper. 2 iAutomation - Softwarearchitektur

6

Die infoteam Software AG hat sich mit ihren Kunden schon sehr frühzeitig der Entwicklung von Tablet- und Smartphone-Software gewidmet. Bereits in zahlreichen Projekten hat sich der Einsatz der Browser-basierten GWT-Tech-nologie bewährt. Der Google-Compiler arbeitet nach bisherigen Erkennt-nissen fehlerfrei und lässt dank HTML5 und CSS3 keine UI-Designwünsche offen.

Der Einsatz von Java für Client und Server erlaubt eine einheitliche Software-architektur für das gesamte System. Die Eclipse-Entwicklungsumgebung wird dank ihrer Offenheit für Erweiterungen allen Ansprüchen an eine pro-fessionelle Softwareentwicklung gerecht und lässt sich gut in Application Li-fecycle-Lösungen wie z. B. den Microsoft® Team Foundation Server (TFS) und Continuous Integration Build Server wie Hudson/Jenkins integrieren.

6 Fazit

Innovatives Interaktionskonzept in der Gebäudeautomatisierung, Christof Burmann, Insta Elektro GmbH, Automation Day Franken 2012, Nürnberg, 11. Juli 2012.

Google Web Toolkit (GWT): Open Source mit Netz und doppeltem Boden, Dirk Beinert, infoteam Software AG, Cluster Mechatronik & Automation Workshop “Open-Source-Software”, Augsburg, 14. Mai 2012.

7 Literatur

8 Danksagung

Wir danken der Firma Insta Elektro GmbH in Lüdenscheid für die freund-liche Erlaubnis, die gemeinsamen Entwicklungsergebnisse präsentieren zu dürfen.

Page 7: Whitepaper iAutomation - Softwarearchitektur für mobile ...donar.messe.de/exhibitor/hannovermesse/2017/G...Softwarearchitektur für mobile Devices Whitepaper. 2 iAutomation - Softwarearchitektur

7

ALM Application Lifecycle ManagementContinuous- Verfahren, täglich (nachts) Software zu kompilieren Integration und zu testen(G)UI (Graphical) User InterfaceGWT Google Web ToolkitMVC Model View ControllerMVP Model View PresenterOSGi Java Firmware Framework, SOA-basiertPLM Product Lifecycle ManagementTFS Microsoft® Team Foundation Server – PLM/ALM-WerkzeugSOA Service Oriented Architecture

9 Glossar

Page 8: Whitepaper iAutomation - Softwarearchitektur für mobile ...donar.messe.de/exhibitor/hannovermesse/2017/G...Softwarearchitektur für mobile Devices Whitepaper. 2 iAutomation - Softwarearchitektur

Kontakt

infoteam Software AGEmil-Figge-Straße 80D-44227 Dortmund

Telefon: +49 (0) 231 / 97 42 56 - 00 Telefax: +49 (0) 231 / 97 42 56 - [email protected]

infoteam Software AGAm Bauhof 9D-91088 Bubenreuth

Telefon: +49 (0) 9131 / 78 00 - 0 Telefax: +49 (0) 9131 / 78 00 - 50 [email protected]

infoteam Software AGBlegistrasse 5CH-6340 Baar

Telefon: +41 (0) 76 411 21 41 [email protected]

infoteam Software (Beijing) Co., Ltd.Zhongguancun North Street 151Yan Yuan Resource Tower, Room 820 CN-100080, Haidian District Beijing

Telefon: +86 (0) 10 5887 6786Telefax: +86 (0) 10 5887 [email protected]