#JAVAPRO #Mobile #MADP
Bei der Kommunikation mit Kunden und Geschäftspartnern führt kein Weg an mobilen Applikationen vorbei. Die Entwicklung und Integration der Anwendungen in die Backend-Systeme ist jedoch oft mit großem Aufwand verbunden. Traditionelle, siloartige Ansätze sind wenig hilfreich, vor allem neue Plattformlösungen zeigen hier ihre Stärken.
Mobile-Apps haben das Potenzial, viele Unternehmens-Workflows effizienter und einfacher zu gestalten und neue Geschäftsprozesse zu ermöglichen. Allerdings erweist sich die Erstellung mobiler Apps und die sichere Integration in die existierende IT-Infrastruktur in der Regel als erhebliche Herausforderung, da die meisten unternehmenskritischen ERP-, CRM-, BPM- oder Datenbank-Systeme in der Vergangenheit als monolithische Applikationen entwickelt wurden – Mobile Computing war zu dieser Zeit noch kein Thema. Eine Erweiterung solcher Anwendungen zur Nutzung durch mobile Endgeräte erfordert deshalb eine kosten- und zeitaufwändige Überarbeitung, umfangreiche Tests und eine Neuimplementierung des Programm-Codes zur Einbindung der mobilen App. Deutlich minimiert werden kann der Aufwand nur durch die Nutzung einer Plattformlösung.
Vor allem große Unternehmen befassen sich schon seit Jahren mit Mobile-Computing und nutzen den mobilen Vertriebskanal. Vielfach haben sie mit unterschiedlichen Technologien und Ansätzen ein umfangreiches Spektrum von Applikationen geschaffen. Grund hierfür ist auch, dass sie meistens kein eigenes
Mobile-Entwicklungsteam aufgebaut, sondern auf externe Dienstleister zurückgegriffen haben. Bei deren Entwicklungen standen in vielen Fällen aber weder IT-Standards noch Verfahren im Vordergrund, mit denen die Applikationen wirklich sicher im Unternehmen verankert werden können. Die fehlende Standardisierung der bei der App-Entwicklung eingesetzten Technologien hat dazu geführt, dass die Umsetzung von Sicherheitsrichtlinien äußerst schwierig ist. Und aus IT-Architektur-Sicht muss klar gesagt werden: Eine solche Vorgehensweise ist nicht mehr zeitgemäß.
Ein Umdenken setzt ein
Es zeichnet sich aber eine Trendwende ab – und zwar hin zu einer Zentralisierung, Standardisierung und Nutzung von Mobile-Application-Platforms. Eine ähnliche Entwicklung ist beispielsweise auch aus der Java-Welt bekannt. Früher konnte hier hinsichtlich der Software-Entwicklung mit einer gewissen Berechtigung von einem Wildwuchs gesprochen werden. Geändert hat sich dieser Zustand erst mit dem Aufkommen von Java-EE-Application-Servern, mit denen ein Rahmenwerk für die standardisierte Entwicklung von Web-Anwendungen zur Verfügung stand.
Bei fast allen Mobile-Entwicklungen sind mehrere Herausforderungen zu berücksichtigen. Im Wesentlichen sind dabei zu nennen:
- Backend-Integration
- Heterogenität von Geräten und Betriebssystemen
- Fragmentierung der Frontend-Technologien
- Sicherheit
- Time-to-Market
- Kontinuierliche Entwicklung und Bereitstellung
Leistungsspektrum einer Mobile-Application-Plattform
Um die wichtigsten Anforderungen im Hinblick auf eine reibungslose Einbindung mobiler Applikationen in die Unternehmensinfrastruktur zu erfüllen, sollte eine zukunftsweisende Mobile-Application-Plattform im Wesentlichen über vier grundlegende Funktionen verfügen: Unterstützung verbreiteter Plattformen und Tools, effiziente Integration in unterschiedliche Backend-Systeme, integrierte Sicherheit und durchgängiges Lifecycle-Management.
Das Leistungsspektrum der Red Hat Mobile Application Platform im Überblick. (Abb. 1)
Unterstützung gängiger Geräte und Tools
Durch die Heterogenität mobiler Geräte und genutzter Tools beziehungsweise Frameworks muss die Mobile-Application-Plattform ein breites Anwendungsspektrum bieten, das für Unternehmen sowohl lokal als auch in der Cloud nutzbar sein sollte. Zunächst muss die Plattform Entwicklern die Möglichkeit bieten, die Frontend-Technologie ihrer Wahl zu verwenden. Im Hinblick auf JavaScript wären hier etwa Angular, Backbone, Ionic, Ember oder React zu nennen. Darüber hinaus sollte die Lösung zum Beispiel native SDKs für iOS, Android und Windows 10 Mobile sowie hybrides Apache-Cordova, HTML5, Titanium-Appcelerator und Microsoft Xamarin unterstützen. Auch ein Support für integrierte Entwicklungsumgebungen (IDEs) wie Red Hat JBoss Developer Studio, WebStorm, Sublime Text, Komodo oder Microsoft Visual Studio sollte gegeben sein.
Wichtig ist zudem, dass vorhandene mobile Anwendungen einfach und schnell importiert und zentral verwaltet werden können – unabhängig davon, ob es native, HTML5- oder hybride Applikationen sind. Auch Builds für mehrere Geräte sollten unter-stützt werden, zum Beispiel für native und hybride Anwendungen im iOS-, Android- oder Windows-10-Mobile-Umfeld. Dadurch entfällt auch die Notwendigkeit zum Aufbau gerätespezifischer Hardware- und Software-Umgebungen für die Entwicklung neuer Anwendungen.
Nicht zuletzt ist es von Vorteil, wenn die Plattform auch Möglichkeiten für eine codelose Entwicklung bietet, zum Beispiel mit Drag-and-Drop-Entwicklungs-Tools, sowie Vorlagen zum schnellen Erstellen von Prototypen und mobilen Apps.
Backend-Integration
Im Hinblick auf die effiziente und sichere Integration mobilerApps in die Unternehmensinfrastruktur haben sich in den letzten Jahren vor allem Lösungen in Form eines Mobile-Backend-as-a-Service (MBaaS) bewährt. Eine Mobile-Application-Platform bietet deshalb idealerweise auch eine solche MBaaS-Funktionalität. Dabei handelt es sich um eine Cloud-basierte Middleware-Schicht, die Backend-Systeme und Frontend-Systeme entkoppelt, damit sich die Geräte nicht direkt mit den Backend-Systemen verbinden. Durch die Entkopplung der mobilen Endgeräte und der darauf laufenden Apps von den Backend-Systemen in den Rechenzentren ist die Basis für eine hohe Sicherheit geschaffen. Zur Integration der mobilen Apps in die Backend-Systeme, beispielsweise in Salesforce, SharePoint oder Oracle, stellt ein MBaaS RESTful-APIs zur Verfügung.
Darüber hinaus steuert der MBaaS Dienste wie Datenspeicherung und -verwaltung, Push-Benachrichtigungen, Analysen der Kommunikation zwischen Geräten und Backend-Systemen sowie die Benutzerverwaltung und stellt diese über einen Service-Katalog bereit. Dieses Modell hat zwei Vorteile: Erstens lässt sich
die Wiederverwendbarkeit verbessern und zweitens können die mobilen Dienste einfacher verwaltet werden.
Ein derartiger Middleware-Schicht-Ansatz ist allein schon deshalb sinnvoll, da bei Legacy-Systemen oft noch Batch-Prozesse zu berücksichtigen sind, bei denen ein direkter Frontend-Zugriff auf das Backend nicht möglich ist.
Integrierte Sicherheit
Eine sichere Verwendung von mobilen Geräten und ein hoher Schutz der Daten gehören zu den wichtigen Anforderungen an mobile Lösungen. Eine Mobile-Application-Plattform muss deshalb eine zentralisierte Steuerung und Kontrolle der Sicherheit bieten, mit Features wie Verschlüsselung, Schutz des Zugriffs auf Backend-Systeme oder Benutzerauthentifizierung und -autorisierung. Auf dem Gerät sollten sich die in lokalen Caches befindlichen Daten verschlüsseln lassen. Die Übertragung von der Anwendung bis zum MBaaS erfolgt nach Möglichkeit über HTTPS. Zudem sollte es möglich sein, bei Bedarf pro Anwendung einen API-Schlüssel hinzuzufügen. Authentifizierungs-APIs, Benutzerberechtigungen oder ein X.500-, LDAP- oder Active-Directory-System sorgen für die Verwaltung und sichere Authentifizierung der Benutzer. Der Zugriff vom MBaaS auf Backend-Systeme muss im Einklang mit den Sicherheitsrichtlinien des Unternehmens realisierbar sein, zum Beispiel mit vollständig konfigurierten Standort-zu-Standort-VPNs, starken Firewalls oder DMZs.
Teamübergreifende Kooperation und Lifecycle-Management
Nicht zuletzt sollte eine Mobile-Application-Platform auch eine team- und rollenbasierte Zusammenarbeit unterstützen und ein durchgängiges Lifecycle-Management für mobile Anwendungen bieten. So sollte es möglich sein, dass Entwicklungs-Teams, die aus Mitarbeitern mit unterschiedlichen Kompetenzbereichen – User-Interface-Design, Frontend-Codierung, Backend-Service-Entwicklung oder Administration – bestehen, gleichzeitig an Anwendungsprojekten arbeiten, ohne dass die Agilität des einzelnen Entwicklers beeinträchtigt wird. Die Konfiguration detaillierter Kontrollen auf allen Ebenen eines jeden Mobile-Projekts kann dabei für einen sicheren Zugriff auf wichtige Projekt und Produktkomponenten sorgen.
Mit einem integrierten Lifecycle-Management ist es möglich, mehrere Projektumgebungen wie Entwicklung, Text, Vorproduktion oder Produktion mit integrierter Zugangskontrolle zu konfigurieren und zu verwalten.
Doch wann sollte ein Unternehmen eine solche Plattformlösung einsetzen? Man könnte hier auf Gartners „Rule of Three“ zurückgreifen, in der die Marktforscher Unternehmen empfehlen, die Nutzung einer Mobile-Enterprise-Application-Platform in Betracht zu ziehen, wenn
- drei oder mehr mobile Applikationen unterstützt werden müssen,
- drei oder mehr mobile Betriebssysteme zu berücksichtigen sind oder
- eine Integration mit mindestens drei Backend-Datenquellen erfolgen muss.
Allerdings zeigt der Plattformansatz bereits bei einer einzigen App seine Vorteile, zum Beispiel hinsichtlich Sicherheit oder der Unterstützung unterschiedlicher Push-Notifications. Und allein schon dieses Leistungsmerkmal ist von erheblichem Nutzen, da Microsoft, Apple und Google jeweils eigene Push-Netzwerke nutzen.
Im Hinblick auf die IT-Zentralisierung und Standardisierung sollte somit auch im Umfeld der Entwicklung und Verwaltung mobiler Apps auf Plattformlösungen zurückgegriffen werden, die inzwischen mit hohem Funktionsumfang auf dem Markt verfügbar sind. Red Hat etwa bietet mit Red Hat Mobile Application Platform eine ganzheitliche Lösung für das Thema Enterprise-Mobility an. Sie unterstützt sowohl eine effiziente, Team-basierte Entwicklung von Apps, bei der Entwickler nicht auf eine bestimmte Frontend-Technologie eingeschränkt sind, als auch den Betrieb der notwendigen App-Dienste. Dazu zählen beispielsweise Caching, Data-Sync, Authentication, ein Rollenkonzept und ein MBaaS. Die Lösung bietet in Form von Node.js-basierten Services ein schlankes, ereignisgesteuertes I/O-Modell, das sich vor allem für mobile Apps hervorragend eignet. Red Hat Mobile Application Platform ist als gehostete Cloud- und auch als On-Premise-Lösung verfügbar. Damit können sowohl die Bedürfnisse von großen Unternehmen, die ihre Infrastruktur im eigene Rechenzentrum betreiben möchten, als auch von kleinen und mittelständischen Firmen abgedeckt werden, die schnell und ohne großen Implementierungsaufwand eine Plattform nutzen wollen.
Insgesamt ist der Mobile-Markt von einer großen Heterogenität geprägt. Den damit verbundenen Herausforderungen hinsichtlich Integration in die Unternehmensinfrastruktur mit isolierten Ansätzen zu begegnen, ist wenig zielführend. Deshalb sollten Unternehmen vor allem im Kontext der Anwendungsarchitektur auf offene Standards setzen und eine zentrale Mobile-Plattform etablieren. So können wiederverwendbare Dienste angeboten und ein zentrales Management der Apps umgesetzt werden. Damit steht einer sicheren und effizienten Mobile-Nutzung nichts mehr im Wege.
Thomas Mitzka arbeitet seit 1995 als Datenbankadministrator, Entwickler und Systemadministrator. Mit der wachsenden Popularität von Java, hat er sich in der Entwicklung von Datenbank-Applikationen ganz auf die Kombination Java und SQL-Datenbanken fokussiert. Der Einsatz der Java Persistence API ist hierbei ein Schwerpunkt und in der Praxis von ganz besonderem Interesse.