Dieses Cookbook soll Ihnen einen klaren und einfachen Überblick über die Schritte für die Umstellung von Anwendungen und Adaptern von IBM Worklight Foundation 6.2 oder IBM MobileFirst Platform Foundation 6.3 bis 7.1
auf IBM Mobile Foundation 8.0 vermitteln.
Der Migrationsprozess führt Sie durch die Schritte für die Transformation von klassischen Hybridanwendungen in Cordova-Standardanwendungen
und für die Aktualisierung des MobileFirst-SDK in nativen Anwendungen. Mobile Web-Apps werden ebenfalls besprochen. Adapter werden
in Maven-Projekte umgewandelt. Zudem werden
Implementierungskonzepte wie das MobileFirst-Sicherheitsframework, Push-Benachrichtigungen und die direkte Aktualisierung erklärt.
Zur Vereinfachung bestimmter Aspekte des Migrationsprozesses wird ein Unterstützungstool für die Migration bereitgestellt.
Das Tool unterstützt Sie beim Identifizieren von Bereichen Ihrer Codebasis,
die inpsiziert und geändert werden müssen. Dazu gehören APIs, die nicht mehr verwendet oder unterstützt werden oder die geändert wurden.
Bevor Sie in die Migration Ihrer Anwendungen und Adapter einsteigen, sollten Sie
die Lernprogramme für den Schnelleinstieg durchgehen, um sich
mit Mobile Foundation 8.0 vertraut zu machen, sofern dies noch nicht geschehen ist.
Weitere Informationen finden Sie in den Lernprogrammen
zur Registrierung von Anwendungen, zur Erstellung und Implementierung von Adaptern, zur
Implementierung und Konfiguation von Sicherheit und Authentifizierung und zu vielen anderen Themen.
Klicken Sie in der MobileFirst Operations Console unten in der Seitenleistennavigation auf den Download-Center-Link. Folgen Sie den Anweisungen für die Installation des Unterstützungstools für die Migration von NPM oder durch das Herunterladen einer ZIP-Datei.
2
Anwendungen umstellen
Zu den Schritten für die Umstellung Ihrer klassischen Hybrid/MobileFist-Cordova- oder -Webanwendung bzw. Ihrer nativen Anwendung gehören die Bewertung von API-Änderungen mithilfe des Unterstützungstools für die Migration, das Einrichten der Projektstruktur, die Verwaltung der Anwendungsquelle, die Verwendung von Paketmanagern und die Handhabung von API-Änderungen.
Klassische Hybridanwendungen
Klassische Hybridanwendungen wurden in bisherigen Releases mit dem MobileFirst-Studio-Plug-in für Eclipse oder über die MobileFirst CLI erstellt, entwickelt, und verwaltet. Ab Mobile Foundation 8.0 gibt es Unterstützung für Standard-Cordova-Anwendungen, die das bisherige Anwendungsmodell ablöst.
Für die Erstellung von Cordova-Anwendungen verwenden Sie Standard-Community-Tools wie die Cordova CLI. Das MobileFirst-Cordova-SDK wird über die Cordova CLI in Form von Cordova-Plug-ins hinzugefügt, die in npm verfügbar sind.
Der Wechsel zu Standard-Cordova-Anwendungen eröffnet Entwicklern die Möglichkeit, für die Anwendungsentwicklung bevorzugte Tools und eigene Ansätze anzuwenden. Wenn Sie ein Anwendungsentwickler sind, steht Ihnen jetzt das direkte Cordova-Umfeld zur Verfügung.
Hinweis: Diese Aktion kann abhängig von Ihrer Internetverbindung eine Weile dauern, da für den Prozess die MobileFirst-Cordova-SDK-Plug-ins heruntergeladen werden.
Ersetzen Sie Pfad_zum_Quellenverzeichnis durch den Pfad zum Ordner application des Studio-Projekts, z. B. ../Desktop/InvokingAdapterProcedures/apps/InvokingAdapterProcedures.
Ersetzen Sie Pfad_zum_Zielverzeichnis durch den Pfad zu einem Ordner für die konvertierte Anwendung und den generierten API-Bericht.
Ersetzen Sie Projektposition durch den Namen eines Verzeichnisses, in dem das Projekt unterhalb von Pfad_zum_Zielverzeichnis erstellt werden soll. Dieses Flag ist optional.
Nach erfolgreicher Ausführung des Unterstützungstools für die Migration können Sie Folgendes beobachten:
Der Ordner MigratedProject enthält jetzt die neue Cordova-Anwendung mit den gleichen Metadaten wie Ihre klassische Hybrid-App
(Anwendungs-ID und andere Einstellungen, die vom Setup der klassischen Hybrid-App abhängen). Zudem wurde das MobileFirst-Cordova-SDK installiert.
Die erforderlichen Plattformen wurden auch hinzugefügt.
Wenn der Befehl client verwendet wurde,
wurde ein API-Bericht ({app-name}-api-report.html) generiert und in Ihrem Standardbrowser geöffnet. Der Bericht enthält potenziell Aktionen, die Sie ausführen müssen, um die Anwendungsimplementierung an eine Verwendung in Mobile Foundation 8.0 anzupassen.
Schritt 2
Bevor Sie Aktionen aus dem generierten API-Bericht ableiten, müssen Sie den Anwendungsquellcode der klassischen Hybrid-App in die Cordova-App kopieren.
Klassische Hybrid-App
Kopieren Sie den Inhalt des Ordners common und fügen Sie ihn in den Ordner www der Cordova-App ein. (Ersetzen Sie den Inhalt, wenn Sie gefragt werden.)
Cordova-App von MFPF 7.1
Kopieren Sie den Ordner www und ersetzen Sie den vorhandenen Ordner www der Cordova-App.
Hinweis: Wenn es für Ihre klassische Hybrid-App eine umgebungsspezifische Implementierung gibt,
können Sie diese mit Cordova Merges kopieren.
Sie müssen nicht die Cordova-Anwendung verwenden, die das Unterstützungstool für die Migration für Sie erstellt. Über die Cordova CLI können Sie eine eigene neue Anwendung erstellen und das
MobileFirst-Cordova-SDK hinzufügen. Außerdem können Sie weitere benötigte Cordova-Plug-ins anderer Anbieter hinzufügen. Weitere Informationen enthalten die Cordova-Lernprogramme.
Schritt 3
Jetzt, da sich der Quellcode der Anwendung in der Cordova-App befindet, müssen Sie ein paar Codeblöcke hinzufügen oder bearbeiten.
Hinweis: Die Datei worklight.css setzt das Attribut "body" auf "relative". Wenn sich dies auf den Stil Ihrer App auswirkt, deklarieren Sie einen anderen Wert für die Position in Ihrem eigenen CSS-Code.
Beispiel:
body{position:absolute;}
Fügen Sie nach den CSS-Definitionen einen Verweis auf die Cordova-JavaScript-Datei zur Kopfzeile
der Datei hinzu.
Entfernen Sie die folgende Codezeile, wenn sie vorhanden ist. <script>window.$ = window.jQuery = WLJQ;</script>
Sie können Ihre eigene
jQuery-Version herunterladen und wie in der folgenden Codezeile angegeben laden.
<script src="lib/jquery.min.js"></script>
Sie müssen die optionale jQuery-Ergänzung nicht in den Ordner lib verschieben. Sie können diese Ergänzung an eine beliebige Position verschieben, müssen jedoch in der Datei index.html einen ordnungsgemäßen Verweis angeben.
Aktualisieren Sie die Datei www/js/InitOptions.js so, dass WL.Client.init automatisch aufgerufen wird.
Entfernen Sie folgenden Code aus InitOptions.js.
Die Funktion WL.Client.init wird über die globale Variable
wlInitOptions automatisch aufgerufen.
Optional: Wenn Sie vor der Initialisierung des MobileFirst-Frameworks Logik ausführen müssen,
aktualisieren Sie manuell die Datei www/InitOptions.js zum Aufrufen von WL.Client.init.
Bearbeiten Sie die Datei config.xml. Setzen Sie das Attribut enabled des Elements
mfp:clientCustomInit auf
true.
Wenn Sie die MobileFirst-Standardschablone für Hybridanwendungen
verwenden, ersetzen Sie den folgenden Code:
Die Cordova-Anwendung ist fast vollständig umgestellt. Jetzt ist es an der Zeit, sich mit dem generierten API-Bericht zu beschäftigen. Öffnen Sie den API-Bericht in einem Browserfenster und sehen Sie sich die einzelnen Einträge an. Jeder Eintrag muss entweder anders implementiert oder vollständig ersetzt werden. Sie können das Unterstützungstool für die Migration erneut ausführen. Zeigen Sie dieses Mal auf die neue Cordova-Anwendung, um zu überprüfen, ob es APIs gibt, die noch nicht bearbeitet wurden.
Schritt 5
Zum Testen der Cordova-Anwendung können Sie eine Vorschau der Webressourcen der Anwendung anzeigen oder die Anwendung in einem Simulator/Emulator oder auf einem physischen Gerät ausführen. Hinweis: Wenn Ihr clientseitiger Code Logik für Sicherheit und Authentifizierung, Push-Benachrichtigungen, Adapter und ähnliche Funktionen
enthält, müssen Sie Ihren Code unter Umständen weiter anpassen, bevor Sie den Code testen können (siehe unten). Sie können aber überprüfen, ob die Schnittstelle Ihrer Anwendung noch intakt ist.
Vorschau von Webressourcen:
Navigieren Sie in einem Befehlszeilenfenster zum Stammverzeichnis der Anwendung.
Führen Sie den Befehl mfpdev app preview aus.
Hinweis: Aufgrund eines Defects in Mobile Foundation 8.0 kann für Anwendungen mit Sicherheitsaspekten keine Vorschau angezeigt werden. Als Ausweichlösung können Sie die Anwendung in einem Emulator oder auf einem physischen Gerät voranzeigen.
Tests in einem Emulator/Simulator oder auf einem physischen Gerät:
Navigieren Sie in einem Befehlszeilenfenster zum Stammverzeichnis der Anwendung.
Wenn Sie nur die Benutzerschnittstelle testen, können Sie einfach einen Anwendungsbuild erstellen und die Anwendung ausführen (cordova run durch-Plattformnamen_ersetzen).
Wenn Sie zusätzlich die Anwendungslogik mit Bezug zur Mobile Foundation testen, müssen Sie vor einer Vorschau die Anwendung
mit mfpdev app register registrieren.
Nächste Schritte
Informationen zum weiteren Verlauf der Umstellung finden Sie in den Entwicklungsthemen.
Mobile-Web- und Desktop-Browser-Anwendungen werden ganz ähnlich wie klassische Hybridanwendungen mit dem
MobileFirst-Studio-Plug-in für Eclipse oder über die MobileFirst CLI verwaltet. In Mobile Foundation 8.0 erfolgt die Entwicklung von Web-Apps auf traditionelle Weise
mit dem MobileFirst-Web-SDK, das auch in npm verfügbar ist.
Hinweis: In früheren Releases hat MobileFirst Server Services für die Webanwendung und eine öffentliche URI bereitgestellt. In Mobile Foundation 8.0 wird die
Anwendung nur in MobileFirst Server registriert, damit Sicherheitsfunktionen, Adapterfunktionen usw. für die Anwendung bereitgestellt werden können
Die Bereitstellung von Services für die Webanwendung erfolgt mit Standardmethoden (z. B. mit Services von dedizierten Webservern).
Verwenden Sie das Unterstützungstool für die Migration, um einen API-Bericht zu generieren.
Öffnen Sie ein Befehlszeilenfenster und verwenden Sie das Unterstützungstool für die Migration wie nachfolgend beschrieben.
Dies kann abhängig von Ihrer Internetverbindung eine Weile dauern.
Ersetzen Sie Pfad_zum_Quellenverzeichnis durch den Pfad zum Ordner common
des Studio-Projekts, z. B. ../Desktop/InvokingAdapterProcedures/apps/InvokingAdapterProcedures.
Ersetzen Sie Pfad_zum_Zielverzeichnis durch den Pfad zu dem Ordner,
in dem der generierte API-Bericht gespeichert werden soll.
Nach erfolgreicher Ausführung des Unterstützungstools für die Migration können Sie Folgendes beobachten:
Ein API-Bericht ({app-name}-api-report.html) wird generiert. Der Bericht enthält potenziell Aktionen, die Sie ausführen müssen, um die Anwendungsimplementierung an eine Verwendung in Mobile Foundation 8.0 anzupassen.
Schritt 2
Nach Beurteilung des API-Berichts ist es nun an der Zeit, die Anwendungsstruktur und die Anwendungsquelle umzustellen.
Erstellen Sie einen neuen Ordner für den Quellcode und die Ressourcen Ihrer Anwendung.
Kopieren Sie die Datei index.html sowie die Ordner js, css und images
aus dem vorhandenen Projekt in den erstellten Ordner.
Navigieren Sie in einem Befehlszeilenfenster zum Stammordner des migrierten Projekts und fügen Sie
das MobileFirst-Web-SDK mit npm install ibm-mfp-web-sdk hinzu.
Die Webanwendung ist fast vollständig umgestellt. Jetzt ist es an der Zeit, sich mit dem generierten API-Bericht zu beschäftigen. Öffnen Sie den API-Bericht in einem Browserfenster und sehen Sie sich die einzelnen Einträge an. Jeder Eintrag muss entweder anders implementiert oder vollständig ersetzt werden.
Schritt 4
Gehen Sie zum Testen der umgestellten Anwendung wie folgt vor:
Vergewissern Sie sich, dass die Anwendung in MobileFirst Server registriert ist.
Richten Sie zur Vermeidung von
Same-Origin-Fehlern einen Reverse-Proxy ein. Für diesen Zweck können Sie Node.js verwenden. Ein Beispiel für eine Reverse-Proxy-Implementierung mit Node.js enthält das Lernprogramm
Webentwicklungsumgebung einrichten.
Native Anwendungen
In bisherigen Versionen des Produkts war für native Anwendungen das MobileFirst-Studio-Plug-in für Eclipse oder die MobileFirst CLI erforderlich,
um die plattformspezifischen Artefakte (Ordner "WorklightAPI", Konfigurationsdateien usw.) zu erstellen und anschließend die Artefakte in den jeweiligen IDEs
in die nativen Projekte zu kopieren.
Ab Mobile Foundation 8.0 werden von der Community bevorzugte Paketmanager unterstützt:
CocoaPods für iOS, Gradle für Android
und NuGet für Windows. Mit diesen für Entwickler verfügbaren Tools wird das Hinzufügen des nativen
MobileFirst-SDK für die einzelnen Plattformen optimiert.
Ersetzen Sie Pfad_zum_Quellenverzeichnis durch den Pfad zum nativen Projekt, z. B.
../Desktop/FormBasedAuthObjCiOS-release71.
Ersetzen Sie Pfad_zum_Zielverzeichnis durch den Pfad zu einer Position, an der der Bericht generiert werden soll.
Ersetzen Sie Plattform durch eine unterstützte Plattform: ios, android oder windows.
Nach erfolgreicher Ausführung des Unterstützungstools für die Migration können Sie Folgendes beobachten:
Ein API-Bericht ({app-name}-api-report.html) wurde generiert und in Ihrem Standardbrowser geöffnet. Der Bericht enthält potenziell Aktionen, die Sie ausführen müssen, um die Anwendungsimplementierung an eine Verwendung in Mobile Foundation 8.0 anzupassen.
Schritt 2
Wenn Sie die Probleme im API-Bericht gelöst haben, können Sie das alte native SDK durch das neue native SDK ersetzen.
iOS Voraussetzung: Vergewissern Sie sich, dass CocoaPods auf Ihrem Mac-Computer installiert ist.
Öffnen Sie ein Befehlszeilenfenster und navigieren Sie zum Stammverzeichnis des Xcode-Projekts.
Führen Sie den Befehl sudo gem install cocoapods und dann pod setup aus. Hinweis: Dies Ausführung dieser Befehle kann einige Zeit dauern.
Löschen Sie den Ordner WorklightAPI. (Verschieben Sie es ihn den Papierkorb.)
Modifizieren Sie Ihren vorhandenen Code wie folgt:
Gehen Sie auf der Registerkarte Build Settings wie folgt vor:
Entfernen Sie $(SRCROOT)/WorklightAPI/include aus dem Headersuchpfad.
Entfernen Sie $(PROJECTDIR)/WorklightAPI/frameworks aus dem
Frameworksuchpfad.
Entfernen Sie alle Verweise auf die statische BibliotheklibWorklightStaticLibProjectNative.a.
Entfernen Sie auf der Registerkarte Build Phases die beiden Links für die folgenden Frameworks und Bibliotheken. CocoaPods adressiert diese Links automatisch um.
Sie können weitere Pods in der Datei angeben, falls Ihre App zusätzliche Funktionen verwenden muss. Wenn Ihre App beispielsweise OpenSSL verwendet,
könnte die Podfile etwa wie folgt aussehen:
use_frameworks!
platform :ios, 8.0
target "durch_Namen_des_Ziels_im_Xcode-Projekt_ersetzen" do
pod 'IBMMobileFirstPlatformFoundation'
pod 'IBMMobileFirstPlatformFoundationOpenSSLUtils'
end
Führen Sie den Befehl pod install aus. Dieser Befehl
installiert das native MobileFirst-SDK, IBMMobileFirstPlatformFoundation.framework und andere Frameworks,
die in der Podfile und in den Abhängigkeiten angegeben sind. Anschließend generiert er das Pods-Projekt und integriert das
MobileFirst-SDK in das Clientprojekt.
Öffnen Sie Ihre Datei Projektname.xcworkspace in Xcode. Geben Sie dazu in einer Befehlszeile open Projektname.xcworkspace ein. Die Datei befindet sich in demselben Verzeichnis wie die Datei Projektname.xcodeproj. Sie können auch im Finder doppelt auf die Datei klicken.
Ersetzen Sie alle vorhandenen MobileFirst-Importe in Headern durch nur einen Eintrag im folgenden neuen Umbrella-Header: Objective-C: #import <IBMMobileFirstPlatformFoundation/IBMMobileFirstPlatformFoundation.h>
Swift: import IBMMobileFirstPlatformFoundation
Fügen Sie auf der Registerkarte Build Settings unter Other Linker Flags am Anfang des Flags -ObjC$(inherited) hinzu.
Wenn Sie Push-Benachrichtigungen oder JSONStore verwenden, müssen Sie einen unabhängigen Import aufnehmen.
Sie können weitere Artefakte angeben, falls Ihre App die zusätzlichen Funktionen benötigt. Wenn Ihre App beispielsweise Push-Benachrichtigungen verwendet, fügen Sie Folgendes hinzu:
Klicken Sie mit der rechten Maustaste auf die Projektmappe und wählen Sie NuGet-Pakete verwalten aus.
Suchen Sie mit der Suchfunktion nach "IBM MobileFirst Platform", wählen Sie
IBM.MobileFirstPlatform.8.0.0.0 aus und klicken Sie auf Installieren.
Fügen Sie zu Package.appxmanifest die Funktion Internet (Client) hinzu.
Schritt 3
Die native Anwendung ist fast vollständig umgestellt. Jetzt ist es an der Zeit, sich um die Probleme aus dem generierten API-Bericht zu kümmern. Öffnen Sie den API-Bericht in einem Browser und überprüfen Sie ihn. Jeder Eintrag muss entweder anders implementiert oder vollständig ersetzt werden.
Ihre Anwendung ist jetzt mit der für MobileFirst Foundation 8.0 erforderlichen Struktur kompatibel. Jetzt können Sie nach den Adaptern schauen.
3
Adapter migrieren
In bisherigen Releases wurden Adapter mit dem MobileFirst-Studio-Plug-in für Eclipse oder über die MobileFirst CLI erstellt und entwickelt. Ab Mobile Foundation 8.0 werden Adapter als Apache-Maven-Standardprojekte betrachtet und mit
von IBM bereitgestellten Archetypen für die Generierung von Java- und JavaScript-Adaptern erstellt.
Maven eröffnet serverseitigen Entwicklern eine einfache Standardmöglichkeit, erforderliche Abhängigkeiten zu verwalten und zu integrieren,
und erlaubt den Entwicklern, ihre bevorzugten Tools für die Entwicklung zu nutzen. Maven-Projekte können mit Maven-Befehlen in einer Befehlszeile erstellt werden oder über die
MobileFirst CLI, die Maven-Befehle im Hintergrund aufruft und vereinfachte Befehle bereitstellt.
Wussten Sie schon, dass es in
Mobile Foundation 8.0 einen DevOps-Betriebsmodus gibt?
Wenn ein Adapter einmal in MobileFirst Server implementiert ist, können Sie bei Verwendung dieses Modus
diverse Eigenschaften (z. B. einen Benutzernamen und ein Kennwort für eine Datenbankverbindung)
live in der MobileFirst Operations Console konfigurieren, ohne den Adapter erneut implementieren zu müssen.
Zu den Schritten für die Umstellung Ihrer Adapter auf Maven-Projekte gehören die Erstellung eines passenden neuen Maven-Projekts und das Kopieren des
Projekts in den Quellcode des vorhandenen Adapters (mit einigen Modifikationen). Im Anschluss wird der Maven-Projektbuild erstellt, um Fehler zu finden.
Überprüfen Sie die Installation, indem Sie mvn -v ausführen.
In diesem Cookbook wird die MobileFirst CLI verwendet, um Maven-Befehle für die Erstellung der Adapter aufzurufen.
Installieren Sie NodeJS als vorausgesetztes Produkt für das Tool, sofern dies noch nicht geschehen ist.
Führen Sie in einem Befehlszeilenfenster den Befehl npm install -g mfpdev-cli aus. (Sie können das Produkt
auch über das Download-Center in der MobileFirst Operations Console herunterladen und installieren.)
Überprüfen Sie die Installation, indem Sie mfpdev -v ausführen.
Erstellen Sie eine neue Adaptervorlage, die zu Ihrem Adaptertyp, Ihrem Adapternamen und Ihrem Paketnamen passt.
Dadurch vereinfachen Sie die Migration, da die Adaptermetadaten ähnlich sind und so keine gesonderte Bearbeitung erfordern.
Führen Sie in einem Befehlszeilenfenster den Befehl mfpdev adapter create aus.
Wählen Sie den Adaptertyp (HTTP- bzw. SQL-JavaScript-Adapter oder Java-Adapter) aus.
Legen Sie vor Ausführung des Migrationstools den Modus für die Migration fest. Es gibt zwei unterstützte Modi.
migrate Im Modus migrate können Sie die Migration von Client-Apps und Adaptern zusammen mit der Servermigration auf Mobile Foundation Version 8.0 durchführen.
compatibility Im Modus compatibility ist nur eine Servermigration möglich. Für die Clientmigration wird das Mobile Foundation Migration Studio verwendet.
Führen Sie den folgenden Befehl aus, um den Migrationsmodus festzulegen.
mfpmigrate mode --type [compatibility | migrate]
Hinweis: Die Befehle scan und client können nicht ausgeführt werden, wenn der Modus auf compatibility gesetzt ist. Führen Sie das Unterstützungstool für die Migration mit der Option server aus und geben Sie das Stammverzeichnis Ihres älteren Worklight-Projekts an.
Führen Sie das Unterstützungstool für Migration wie folgt aus, um ein Worklight-Projekt der Version 7.1 auf Mobile Foundation Version 8.0 zu migrieren.
mfpmigrate server --In /Users/WorklightProject**/ --Out /Users/Migrate80Project
SYNTAX
mfpmigrate server [--in|-i <Quellenverzeichnis>] [--out|-o <Zielverzeichnis>] [--projectName|-p <neues_Projektverzeichnis>]
BESCHREIBUNG
Das Tool führt eine Migration für sichere Realms und Adapter eines vorhandenen MobileFirst-Projekts durch.
OPTIONEN
<Quellenverzeichnis>: Das <Quellenverzeichnis> muss der Stammordner des zu migrierenden MobileFirst-Projekts sein. Dieser Parameter ist obligatorisch.
<Zielverzeichnis>: Das <Zielverzeichnis> ist das Verzeichnis, das nach der Migration die Adapter enthalten soll.
Das Migrationstool scannt die Adapter und Realms und führt die folgenden Schritte aus:
Es erstellt eine Schablone für die Adapter und unterstützten Sicherheitsüberprüfungen.
Es verschiebt die Adapterquellen in das neu erstellte Maven-Artefakt.
Es aktualisiert das POM mit den Abhängigkeiten.
Es erstellt einen zusammenfassenden Bericht über die ausgeführten Schritte und die Änderungen, die manuell vorgenommen werden müssen, um die Migration abzuschließen.
Für vorhandene Adapter und eine vorhandene Datei worklight.properties ermittelt das Tool alle nicht mehr verwendeten und nicht unterstützten APIs von Adaptern der Version 7.1 und führt die folgenden Schritte aus:
Es ersetzt nicht mehr verwendete bzw. nicht unterstützte APIs durch geeignete APIs der Version 8.0.
Es generiert Adapter der Version 8.0 für die entsprechenden Adapter der Version 7.1 an der angegebenen Ausgabeposition.
Entwickler können zum Verzeichnis für migrierte Adapter navigieren und einen Maven-Befehl (mvn clean install adapter:deploy) absetzen, um den Adapter zu erstellen und im Server von Mobile Foundation Version 8.0 zu implementieren.
Hinweis: Mit der migrierten Adapterdatei pom.xml wir der Adapter im lokal ausgeführten Mobile Foundation Server implementiert. Falls die Implementierung in einer anderen Mobile-Foundation-Server-Instanz erfolgen soll, aktualisieren Sie die Serverdetails und Berechtigungsnachweise in pom.xml, bevor Sie den maven-Befehl absetzen.
Die Datei worklight.properties wird gescannt, um herauszufinden, ob eine Eigenschaft explizit die Aufnahme eines JNDI-Wertes in den Server von Mobile Foundation Version 8.0 erfordert. Die entsprechenden Einträge werden im Bericht ausgegeben.
Das Tool identifiziert alle unterstützten und nicht mehr verwendeten Realms in der Datei AuthenticationConfig.xml und führt folgende Schritte aus:
Es gibt im Ergebnisbericht eine Liste der in der Authentifizierungskonfiguration des Benutzers verwendeten Realms aus, die vorkonfiguriert und in Version 8,0 mit vordefinierten Sicherheitsüberprüfungen verfügbar sind. (Die Benutzer müssen keine weiteren Aktionen ausführen.)
Es listet nicht unterstützte Realms auf. (In Mobile Foundation Version 8.0 ist für diese Realms keine Unterstützung verfügbar.)
Für unterstützte Realms, die migriert werden müssen, führt das Tool die folgenden Schritte aus:
Es identifiziert die am besten geeignete Sicherheitsüberprüfung (SecurityCheck) für die Migration eines bestimmten Realms.
Es generiert eine SecurityCheck-Vorlage mit identifizierten SecurityCheck-Basisklassen. Als Name wird der Name des Realms mit dem Suffix SecurityCheck verwendet.
Es identifiziert die Abfrage- und Validierungsmethoden im Realm und kopiert sie als integrierte Kommentare in die entsprechende SecurityCheck-Methode, sodass der Benutzer auf sie zurückgreifen und dieselbe Validierung in der neu generierten SecurityCheck-Vorlage implementieren kann.
Sehen Sie sich die folgende Zuordnung an, damit Sie verstehen, in wie weit die in Realmmethoden implementierte Authentifizierungslogik für die generierte SecurityCheck-Vorlage passend ist.
Adapterauthentifizierungsrealm
Das Adapterauthentifzierungsrealm ist in der Datei AuthenticationConfig.xml definiert. Nachfolgend sehen Sie eine Beispieldefinition.
Diese Methode kann für die Implementierung einer Abfrage einen ähnlichen Ansatz wie in SampleAdapter.onAuthTrigger verwenden. Beachten Sie jedoch, dass während der Migration Schnittstellenänderungen berücksichtigt werden müssen.
Es gibt keine mit der obigen Realmdefinition vergleichbare Zuordnung. Für diese Methode ist daher keine Zuordnung möglich. Es hat sich gezeigt, dass Kunden diese Methode in Version 7.1 in einer der Ressourcenadaptermethoden implementiert haben und bei Erfolg der Avfragemethode über den Abfragehandler (ChallengeHandler) der Anwendung diese Methode aufgerufen haben.
Eine ähnliche Zuordnung wird für alle unterstützten Realms aus Version 7.1 entsprechend ihrer jeweiligen Definition vorgenommen, z. B. für das Realm Form Based Authenticator, das Realm Basic Authenticator und für Custom Authenticators.
Realmtyo in Version 7.1
Methodendefinitionen im Realm
SecurityCheck-Methode in Mobile Foundation Version 8.0
CustomAuthentication
createIdentity
<UserAuthenticationSecurityCheck> createUser
processRequest
createChallenge
CustomAuhenticator.processAuthenticationFailure
CustomAuhenticator.changeResponse
on success CustomLoginModule.login
Nutzen Sie den zusammenfassenden Bericht wie folgt:
Verschaffen Sie sich einen Überblick über die Schritte des Unterstützungstools für die Migration.
Ordnen Sie nicht unterstützte APIs unterstützten APIs zu, wenn eine direkte Migration nicht möglich ist.
Stellen Sie fest, welche nicht unterstützten Adapter/Realms in Ihrem traditionellen Worklight-Projekt verwendet werden.
Gewinnen Sie Einblicke in andere technische Herausforderungen oder Engpässe Ihres bestehenden Entwurfs und lesen Sie die folgenden Informationen zu neuen Entwicklungskonzepten für die Meisterung dieser Herausforderungen.
Navigieren Sie in Ihrem Dateisystem zum JavaScript-Adapterordner, z. B. zu ../Desktop/JavaScriptAdapters/adapters/RSSReader.
Öffnen Sie ein anderes Fenster und navigieren Sie zu Ihrem neuen Maven-Projekt, z. B. zu ../Desktop/MigratedAdapter,
und zum Ordner src/main/adapter-resources.
Kopieren Sie die vorhandenen Adapterdateien in diesen Ordner.
Bearbeiten Sie die Datei adapter.xml. Ersetzen Sie den Inhalt der Datei durch den XML-Inhalt Ihres vorhandenen Adapters (in diesem
Beispiel RSSReader.xml).
Bearbeiten Sie die Datei js/{adapter-name}-impl.js. Ersetzen Sie den Inhalt der Datei durch den Inhalt Ihres vorhandenen Adapters
(in diesem Beispiel RSSReader-impl.js).
SQL-JavaScript-Adapter
Navigieren Sie in Ihrem Dateisystem zum JavaScript-Adapterordner, z. B. zu ../Desktop/JavaScriptAdapters/adapters/SQLAdapter.
Öffnen Sie ein anderes Fenster und navigieren Sie zu Ihrem neuen Maven-Projekt, z. B. zu ../Desktop/MigratedAdapter,
und zum Ordner src/main/adapter-resources.
Bearbeiten Sie die Datei adapter.xml. Ersetzen Sie den Inhalt der Datei durch den XML-Inhalt Ihres vorhandenen Adapters (in diesem
Beispiel SQLAdapter.xml).
Bearbeiten Sie die Datei js/{adapter-name}-impl.js. Ersetzen Sie den Inhalt der Datei durch den Inhalt Ihres vorhandenen Adapters
(in diesem Beispiel SQLAdapter-impl.js).
Hier kommen Maven-Abhängigkeiten ins Spiel. Da Worklight/MobileFirst Studio nicht verwendet wird, wo sich der Datenbankconnector
im Ordner server/lib befand, müssen Sie den Connector durch eine Maven-Abhängigkeit ersetzen.
Gehen Sie zum neu erstellten Maven-Projekt zurück und öffnen Sie die Datei pom.xml auf der Ausgangsebene des Verzeichnisses.
Fügen Sie eine Abhängigkeit für Ihren Datenbanktyp hinzu. Sie können auf der Maven-Central-Website nach der entsprechenden Abhängigkeit suchen.
Verwenden Sie in diesem Beispiel die MySQL-Datenbank. Fügen Sie im Abschnitt dependencies den folgenden Codeblock hinzu:
Wenn es weitere Abhängigkeiten gibt, zeigen Sie in der Datei pom.xml auf diese Abhängigkeiten (d. h. auf eine lokale Datei oder auf eine ferne Abhängigkeit).
Navigieren Sie in Ihrem Dateisystem zum Java-Adapterordner, z. B. zu ../Desktop/JavaAdapters/RSSAdapter.
Öffnen Sie ein separates Fenster und navigieren Sie zu Ihrem neuen Maven-Projekt, z. B. zu ../Desktop/MigratedAdapter,
und zum Ordner src/main/adapter-resources.
Bearbeiten Sie die Datei {adapter-name}.xml. Ersetzen Sie den Inhalt der Datei durch den XML-Inhalt Ihres vorhandenen Adapters
(in diesem Beispiel RSSAdapter.xml).
Navigieren Sie (für dieses Beispiel) im neuen Adapter zu src/main/java/com/sample/.
Ersetzen Sie die vorhandene Java-Datei durch die Java-Dateien Ihres vorhandenen Adapters.
Wenn Sie im vorhandenen Adapter zusätzliche Bibliotheken verwenden, kommen jetzt Maven-Abhängigkeiten ins Spiel. Da Worklight/MobileFirst Studio nicht verwendet wird, wo sich die Bibliotheken
im Ordner server/lib oder im Ordner lib des Java-Adapters befanden, müssen Sie die Bibliotheken durch Maven-Abhängigkeiten ersetzen.
Gehen Sie zum neu erstellten Maven-Projekt zurück und öffnen Sie die Datei pom.xml auf der Ausgangsebene des Verzeichnisses.
Fügen Sie eine Abhängigkeit für Ihren Datenbanktyp hinzu. Sie können auf der Maven-Central-Website nach der entsprechenden Abhängigkeit suchen.
In diesem Beispiel wird eine Cloudant-Abhängigkeit verwendet. Fügen Sie im Abschnitt dependencies den folgenden Codeblock hinzu:
Navigieren Sie in einem Befehlszeilenfenster zum Ordner des Adapters und führen Sie den Befehl mfpdev adapter build aus.
Für die Korrektur solcher Fehler sollte das Maven-Projekt in eine IDE wie IntelliJ importiert werden, wo ein Projektbuild erstellt werden kann.
Wenn Sie eine IDE zur Verfügung haben, ist es einfacher die Buildfehler durchzugehen und nacheinander zu korrigieren. Informieren Sie sich über die Verwendung von IntelliJ und Adaptern.
Erstellten Adapter testen
Zum Testen des migrierten Adapters können Sie die MobileFirst CLI verwenden, um Ihre Endpunkte aufzurufen. Sie können
auch Swagger in der MobileFirst Operations Console verwenden.
Nachdem die Adapters in Format und Code auf ein Maven-Projekt umgestellt wurden, werden wir uns jetzt einige Entwicklungskonzepte ansehen.
4
Entwicklungsthemen
Nachdem Anwendungen und Adapter auf ihre neue Struktur in
Mobile Foundation 8.0 umgestellt wurden, werden nun einige Implementierungskonzepte diskutiert,
die sich im neuesten Release geändert haben.
Adapter
JavaScript-Adapter
Globale Variablen und Sitzungen
Vermeiden Sie die Verwendung globaler Variablen in JavaScript-Adaptern, um Daten in der Sitzung zu speichern, da es in dem Sinne keine Sitzung gibt. Diese Änderung
im Verhalten taucht zum ersten Mal
in MobileFirst Platform Foundation 7.1 auf. Sie können allerdings globale Variablen verwenden, um Daten für eine einzelne Anforderung zu speichern. Denken Sie jedoch daran, dass diese Vorgehensweise nicht mehr empfohlen wird.
Weitere Informationen zum Erstellen, Implementieren und Testen von Adaptern enthalten die Adapter-Lernprogramme.
Sicherheitsframework
Das Sicherheitsframework von Mobile Foundation 8.0 unterscheidet sich vom Sicherheitsframework früherer Releases. Aus diesem Grunde müssen Sie einen Teil der Back-End- und Clientlogik Ihrer Anwendung reimplementieren.
Sie sollten sich unbedingt die Zeit nehmen, sich mit dem neuen, ausschließlich auf dem OAuth-Modell basierenden Sicherheitsframework und seinem Autorisierungsablauf vertraut zu machen. Informieren Sie sich auch über die neuen Autorisierungsentitäten (z. B. Zugriffstoken,
Sicherheitsüberprüfungen und Bereiche), die die
bisher bekannten Entitäten wie Sicherheitstests, Realms und Anmeldemodule ersetzen.
Eine Sicherheitsüberprüfung in Mobile Foundation 8.0 kann als eine Kombination von drei Konzepten aus früheren Releases betrachtet werden:
Sicherheitsüberprüfung = Realm + Authentifikator + Anmeldemodul
Die Implementierung der Sicherheitsüberprüfung ist die Implementierung sowohl des Anmeldemoduls als auch des Authentifikators.
Die Definition einer Sicherheitsüberprüfung ist mit der Definition eines Realms vergleichbar.
In der folgenden Tabelle sind die Unterschiede zwischen den Sicherheitsframeworks früherer Releases und dem Sicherheitsframework von Mobile Foundation 8.0 angegeben.
Frühere Releases
Mobile Foundation 8.0
Definition
In der Datei authenticationConfig.xml mit einem Namen, einem Anmeldemodul und einem Authentifikator definiert. Beispiel:
Angepasster Authentifikator + Anmeldemodul: Es gibt eine Methode init() für den Start und eine Methode processRequest() für die Autorisierung von Anforderungen.
Der Authentifikator sendet die Berechtigungsnachweise des Anmeldemoduls an die Methode login()/logout().
Bei der Implementierung der Sicherheitsprüfungsschnittstelle muss der Benutzer auch die Methoden
authorize() und introspect() implementieren, die das Framework bei Autorisierungsanforderungen aufruft. Die Sicherheitsüberprüfung kann die Authentifizierung sowie die An-/Abmeldung selbst handhaben.
Verwendung
Einbindung in einen customSecurityTest, der ein oder mehrere Realm(s) enthalten kann:
Einbindung in ein Element Scope, das null oder mehr Sicherheitsüberprüfungen enthalten kann
Sicherheitstests und Bereiche im Vergleich
In Mobile Foundation 8.0, wird ein Bereich (Scope) verwendet, um null oder mehr
Sicherheitsüberprüfungen zu aggregieren, die dann für den Schutz lokaler und
externer Ressourcen oder Apps verwendet werden können. Dies ist mit dem Konzept eines angepassten Sicherheitstests
(CustomSecurityTest) in früheren Releases vergleichbar.
Frühere Releases
Mobile Foundation 8.0
Definition
Definition in der Datei authenticationConfig.xml mit einem Namen, einem oder mehreren Sicherheitstests und mindestens einem Sicherheitstest für die Definition der Benutzer-ID (UserID).
Ein Sicherheitstest (SecurityTest) kann zum Schutz einer Ressource (Java-Adapter), einer Prozedur (JavaScript-Adapter) oder einer Anwendung (Anwendungsdeskriptor) verwendet werden.
Hinweis: Sie können eine Ressource nicht mit einem Realm schützen, der nicht zu einem Sicherheitstest gehört.
Ein Bereich (scope) mit einem oder mehr Bereichselement(en) kann zum Schutz einer Ressource (Java-Adapter), einer Prozedur (JavaScript-Adapter) oder einer Anwendung (Anwendungsdeskriptor) verwendet werden.
Hinweis: Sie können eine Ressource/Anwendung mit einer Sicherheitsüberprüfung (securityCheck) schützen, die nicht zu einer Bereichselementzuordnung gehört.
Benutzeridentität
Bestimmte Realms eines Sicherheitstests definieren eine Geräte-ID und eine Benutzer-ID (DeviceID und UserID).
<testisInternalUserID="true"realm="AuthRealm"/>
Ein Bereich hat keine Kenntnis von den Sicherheitsüberprüfungen, die ihn ausmachen.
Implementierung
Konfiguration in der Datei authenticationConfig.xml. Wenn Sie ändern wollen, welche Realms zu einem Sicherheitstest gehören, müssen Sie die WAR-Datei reimplementieren.
Änderung ohne Unterbrechung von MobileFirst Server bei Verwendung der MobileFirst Operations Console.
Benachrichtigungen
in Mobile Foundation 8.0 gibt es einen neuen Push-Service, mit dem eine neue Art vorgestellt wird, Benachrichtigungen einzurichten, zu konfigurieren und zu senden. Parallel dazu wurde das Konzept der auf Ereignisquellen basierenden Push-Benachrichtigungen zurückgezogen. Detaillierte szenariobasierte Migrationspfade enthalten die folgenden Abschnitte der Benutzerdokumentation:
Weitere Informationen zum Einrichten der Benachrichtigungsunterstützung und zum Senden authentifizierter und tagbasierter Benachrichtigungen
enthalten die
Lernprogramme zu Benachrichtigungen.
Direkte Aktualisierung
Die Schritte für die Bereitstellung von Updates mit dem Feature für direkte Aktualisierung haben sich geändert. Darüber hinaus gelten jetzt einige Einschränkungen.
In Mobile Foundation 8.0 sind mehrere andere Komponenten und Features weggefallen. Eine vollständige Liste enthält der Abschnitt Weggefallene Komponenten in der Benutzerdokumentation.
Als kleines Extra finden Sie im Anschluss ein Video, das die Migration einer mit MobileFirst Platform Foundation 6.3 erstellten Hybridanwendung und eines Adapters auf eine Cordova-Standardanwendung und ein Maven-Projekt demonstriert.
Inclusive terminology note: The Mobile First Platform team is making changes to support
the IBM® initiative to replace racially biased and other discriminatory language in our code and content
with more inclusive language. While IBM values the use of inclusive language, terms that are outside of
IBM's direct influence are sometimes required for the sake of maintaining user understanding. As other
industry leaders join IBM in embracing the use of inclusive language, IBM will continue to update the
documentation to reflect those changes.