MobileFirst Foundation 8.0 - Migrations-Cookbook

improve this page | report issue

Übersicht

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.

Hinweis: In diesem Cookbook wird nicht versucht, alle denkbaren Migrationsszenarien abzudecken. Beschäftigen Sie sich daher für tiefergehende Informationen mit der Benutzerdokumentation zur Migration.

Hilfe anfrodern

Das für die Mobile Foundation zuständige Team steht Ihnen bei Fragen gerne zur Seite.
Für offizielle Unterstützung öffnen Sie bitte einen PMR. Sie können auch unter StackOverflow und in unserer Stack-Community Fragen stellen.

Schnelleinstieg

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.




Setup und Tools

Vor Beginn der Migration benötigen Sie eine aktive MobileFirst-Server-Instanz und das Unterstützungstool für die Migration.

MobileFirst Server

Sie können einen MobileFirst Server in IBM Bluemix einrichten. Verwenden Sie dafür den Mobile-Foundation-Bluemix-Service. Alternativ können Sie das MobileFirst Developer Kit verwenden, jum einen lokal ausgeführten Server einzurichten.

Unterstützungstool für die Migration

Wenn MobileFirst Server betriebsbereit ist, installieren Sie zunächst das Unterstützungstool für die Migration, das Sie später nutzen werden.

  1. Installieren Sie NodeJS als vorausgesetzte Software für das Tool.
  2. 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.
Download des Migrationstools über die MobileFirst Operations Console


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.

Tipp: Sie können auch Eclipse für die Cordova-Anwendungsentwicklung einrichten.

Informieren Sie sich über die Entwicklung von Cordova-Anwendungen.

Schritt 1

Öffnen Sie ein Befehlszeilenfenster und verwenden Sie das Unterstützungstool für die Migration wie nachfolgend beschrieben.

  • Wenn Sie nur das klassische Hybridprojekt scannen und einen API-Bericht generieren möchten, verwenden Sie Folgendes:
    mfpmigrate scan --in Pfad_zum_Quellenverzeichnis --out Pfad_zum_Zielverzeichnis
  • Wenn Sie das klassische Hybridprojekt scannen und ein vordefiniertes Cordova-Projekt erstellen möchten, verwenden Sie Folgendes:
    mfpmigrate client --in Pfad_zum_Quellenverzeichnis --out Pfad_zum_Zielverzeichnis [--projectName Projektposition]
    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.
Umstellung einer klassischen Hybrid-App auf eine Standard-Cordova-App

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.
API-Bericht

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.

  1. Aktualisieren Sie die Datei www/index.html.
    • Fügen Sie zur Kopfzeile Ihrer Datei index.html vor dem bereits vorhandenen CSS-Code den folgenden CSS-Code hinzu:
      <link rel="stylesheet" href="worklight/worklight.css">
      <link rel="stylesheet" href="css/main.css">
      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.
      <script type="text/javascript" src="cordova.js"></script>
    • 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.
  2. 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.
      if (window.addEventListener) {
        window.addEventListener('load', function() { WL.Client.init(wlInitOptions); }, false);
      } else if (window.attachEvent) {
        window.attachEvent('onload',  function() { WL.Client.init(wlInitOptions); });
      }
  3. 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:
      if (window.addEventListener) {
        window.addEventListener('load', function() { WL.Client.init(wlInitOptions); }, false);
      } else if (window.attachEvent) {
        window.attachEvent('onload',  function() { WL.Client.init(wlInitOptions); });
      }
      Verwenden Sie folgenden Ersatzcode:
      if (document.addEventListener) {
        document.addEventListener('mfpready', function() { WL.Client.init(wlInitOptions); }, false);
      } else if (window.attachEvent) {
        document.attachEvent('mfpready',  function() { WL.Client.init(wlInitOptions); });
      }

Schritt 4

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 Fuktionen 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.
Informieren Sie sich über die Vorschau der Webressourcen einer Anwendung.

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

Webanwendungen

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).

Informieren Sie sich über die Entwicklung von Webanwendungen.

Schritt 1

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.

mfpmigrate scan --in Pfad_zum_Quellenverzeichnis --out Pfad_zum_Zielverzeichnis
  • 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.

  1. Erstellen Sie einen neuen Ordner für den Quellcode und die Ressourcen Ihrer Anwendung.
  2. Kopieren Sie die Datei index.html sowie die Ordner js, css und images aus dem vorhandenen Projekt in den erstellten Ordner.
  3. 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.
Führen Sie vor Schritt 3 die Konfigurationsanweisungen für das SDK aus dem Lernprogramm Mobile Foundation-SDK zu Webanwendungen hinzufügen aus.

Schritt 3

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:

  1. Vergewissern Sie sich, dass die Anwendung in MobileFirst Server registriert ist.
  2. 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.

Informieren Sie sich über die Entwicklung nativer Anwendungen.

Schritt 1

Verwenden Sie das Unterstützungstool für die Migration, um einen API-Bericht zu generieren.

Hinweis: Derzeit kann das Unterstützungstool für die Migration nur native, mit MobileFirst Platform Foundation 7.1 erstellte Anwendungen scannen.

Öffnen Sie ein Befehlszeilenfenster und verwenden Sie das Unterstützungstool für die Migration wie nachfolgend beschrieben:

mfpmigrate scan --in Pfad_zum_Quellenverzeichnis --out Pfad_zum_Zielverzeichnis --type Plattform
  • 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.
API-Bericht für native Apps generieren

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.
API-Bericht

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.

  1. Öffnen Sie Ihr Projekt in Xcode.
  2. Löschen Sie den Ordner WorklightAPI. (Verschieben Sie es ihn den Papierkorb.)
  3. 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.
  4. Entfernen Sie auf der Registerkarte Build Phases die beiden Links für die folgenden Frameworks und Bibliotheken. CocoaPods adressiert diese Links automatisch um.
    • libWorklightStaticLibProjectNative.a
    • SystemConfiguration.framework
    • MobileCoreServices.framework
    • CoreData.framework
    • CoreLocation.framework
    • Security.framework
    • sqlcipher.framework
    • libstdc++.6.dylib
    • libz.dylib
  1. Stellen Sie sicher, dass Xcode geschlossen ist.
  2. Öffnen Sie ein Terminal und navigieren Sie zum Stammordner des Xcode-Projekts.
    • Führen Sie den Befehl pod init aus, um eine Podfile zu erstellen.
    • Die Podfile wird im Stammordner des Xcode-Projekts erstellt. Suchen Sie die Podfile und öffnen Sie sie in einem Editor Ihrer Wahl.
    • Setzen Sie den vorhandenen Inhalt auf Kommentar oder entfernen Sie ihn.
    • Fügen Sie die folgenden Zeilen hinzu und speichern Sie die Änderungen. Vergessen Sie nicht, den Wert für target zu aktualisieren:
      use_frameworks!
      platform :ios, 8.0
      target "durch_Namen_des_Ziels_im_Xcode-Projekt_ersetzen" do
          pod 'IBMMobileFirstPlatformFoundation'
      end
      Zusätzliche Pods:
      IBMMobileFirstPlatformFoundationPush
      IBMMobileFirstPlatformFoundationJSONStore

      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.
  3. Ö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.
  4. 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
  5. Fügen Sie auf der Registerkarte Build Settings unter Other Linker Flags am Anfang des Flags -ObjC $(inherited) hinzu.
  6. Wenn Sie Push-Benachrichtigungen oder JSONStore verwenden, müssen Sie einen unabhängigen Import aufnehmen.

    Push-Benachrichtigungen
    Objective-C:
    #import <IBMMobileFirstPlatformFoundationPush/IBMMobileFirstPlatformFoundationPush.h>

    Swift:
    import IBMMobileFirstPlatformFoundationPush

    JSONStore
    Objective-C:
    #import <IBMMobileFirstPlatformFoundationJSONStore/IBMMobileFirstPlatformFoundationJSONStore.h>

    Swift:
    import IBMMobileFirstPlatformFoundationJSONStore

Android
Suchen Sie den Ordner "lib" Ihres Projekts und löschen Sie die folgenden Dateien:
  • worklight-android.jar
  • uicandroid.jar
  • bcprov.jar
  • android-async-http.jar
  1. Navigieren Sie in Android Studio zu Android → Gradle Scripts und wählen Sie die Datei build.gradle (Module: app) aus.
  2. Fügen Sie unter apply plugin: 'com.android.application' die folgenden Zeilen hinzu:
    repositories{
        jcenter()
    }
  3. Fügen Sie innerhalb von android Folgendes hinzu:
    packagingOptions {
        pickFirst 'META-INF/ASL2.0'
    pickFirst 'META-INF/LICENSE'
        pickFirst 'META-INF/NOTICE'
    }
  4. Fügen Sie innerhalb von dependencies die folgenden Zeilen hinzu:
    compile group: 'com.ibm.mobile.foundation',
    name: 'ibmmobilefirstplatformfoundation',
    version: '8.0.+',
    ext: 'aar',
    transitive: true
    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:
    compile group: 'com.ibm.mobile.foundation',
    name: 'ibmmobilefirstplatformfoundationpush',
    version: '8.0.+',
    ext: 'aar',
    transitive: true
    Falls Sie beabsichtigen, JSONStore zu verwenden, fügen Sie Folgendes hinzu:
    compile group: 'com.ibm.mobile.foundation',
    name: 'ibmmobilefirstplatformfoundationjsonstore',
    version: '8.0.+',
    ext: 'aar',
    transitive: true

Windows
Entfernen Sie die folgenden Dateien aus dem Visual-Studio-Projekt:
  • wlclient.properties
  • Newtonsoft.Json
  • SharpCompress
  • worklight-windows8
  1. Klicken Sie mit der rechten Maustaste auf die Projektmappe und wählen Sie NuGet-Pakete verwalten aus.
  2. Suchen Sie mit der Suchfunktion nach "IBM MobileFirst Platform", wählen Sie IBM.MobileFirstPlatform.8.0.0.0 aus und klicken Sie auf Installieren.
  3. 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.


Schritt 4

Führen Sie die Anwendung in der plattformspezifischen IDE aus, um sie zu testen.

Nächste Schritte

Weiterführende Informationen:

Ihre Anwendung ist jetzt mit der für MobileFirst Foundation 8.0 erforderlichen Struktur kompatibel. Jetzt können Sie nach den Adaptern schauen.



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.

Tipp: Sie können auch Eclipse oder IntelliJ für die Erstellung und Entwicklung von Adaptern in einer IDE einrichten.

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.

Informieren Sie sich über die Entwicklung von Java- und JavaScript-Adaptern.

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.

Maven-Adapter erfordern, dass auf der Entwicklerworkstation Apache Maven installiert ist.

  1. Installieren Sie Apache Maven.
  2. 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.
  • Geben Sie eine GroupID an.
  • Wenn Sie einen Java-Adapter erstellen, müssen Sie den zuvor verwendeten Paketnamen angeben (z. B. "com.sample").
Adaptervorlage erstellen
HTTP-JavaScript-Adapter
  1. Navigieren Sie in Ihrem Dateisystem zum JavaScript-Adapterordner, z. B. zu ../Desktop/JavaScriptAdapters/adapters/RSSReader.
  2. Ö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.
  3. Kopieren Sie die vorhandenen Adapterdateien in diesen Ordner.
  4. Bearbeiten Sie die Datei adapter.xml. Ersetzen Sie den Inhalt der Datei durch den XML-Inhalt Ihres vorhandenen Adapters (in diesem Beispiel RSSReader.xml).
  5. 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
  1. Navigieren Sie in Ihrem Dateisystem zum JavaScript-Adapterordner, z. B. zu ../Desktop/JavaScriptAdapters/adapters/SQLAdapter.
  2. Ö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.
  3. Bearbeiten Sie die Datei adapter.xml. Ersetzen Sie den Inhalt der Datei durch den XML-Inhalt Ihres vorhandenen Adapters (in diesem Beispiel SQLAdapter.xml).
  4. 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.

  1. Gehen Sie zum neu erstellten Maven-Projekt zurück und öffnen Sie die Datei pom.xml auf der Ausgangsebene des Verzeichnisses.
  2. 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.
  3. Verwenden Sie in diesem Beispiel die MySQL-Datenbank. Fügen Sie im Abschnitt dependencies den folgenden Codeblock hinzu:
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.6</version>
    </dependency>

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).

Informieren Sie sich über Maven-Abhängigkeiten:

Die folgenden Diagramme stellen dar, welche Schritte bisher ausgeführt wurden:

Alte Struktur eines JavaScript-Adapters
MyProject
├── adapters
    │   ├── RSSAdapter
│   │   ├── RSSAdapter-impl.js
│   │   ├── RSSAdapter.xml
│   │   └── filtered.xsl
Neue Struktur eines JavaScript-Adapters
RSSAdapter
├── pom.xml
    ├── src
    │   └── main
    │       ├── adapter-resources
    │       │   ├── adapter.xml
│       │   └── js
│       │        ├── RSSAdapter-impl.js
│       │        └── filtered.xml
  1. Navigieren Sie in Ihrem Dateisystem zum Java-Adapterordner, z. B. zu ../Desktop/JavaAdapters/RSSAdapter.
  2. Ö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.
  3. 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).
  4. Navigieren Sie (für dieses Beispiel) im neuen Adapter zu src/main/java/com/sample/.
  5. 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.

  1. Gehen Sie zum neu erstellten Maven-Projekt zurück und öffnen Sie die Datei pom.xml auf der Ausgangsebene des Verzeichnisses.
  2. 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.
  3. In diesem Beispiel wird eine Cloudant-Abhängigkeit verwendet. Fügen Sie im Abschnitt dependencies den folgenden Codeblock hinzu:
    <dependency>
    	<groupId>com.cloudant</groupId>
    	<artifactId>cloudant-client</artifactId>
    	<version>1.2.3</version>
    </dependency>

Informieren Sie sich über Maven-Abhängigkeiten:

Die folgenden Diagramme stellen dar, welche Schritte bisher ausgeführt wurden:

Alte Struktur eines Java-Adapters
├── adapters
    │   └── RSSAdapter
    │       ├── RSSAdapter.xml
    │       ├── lib
    │       └── src
    │           └── com
    │               └── sample
    │                   ├── RSSAdapterApplication.java
    │                   └── RSSAdapterResource.java
Neue Struktur eines Java-Adapters
├── pom.xml
    ├── src
    │   └── main
    │       ├── adapter-resources
    │       │   └── adapter.xml
    │       └── java
    │           └── com
    │               └── sample
    │                   ├── RSSAdapterApplication.java
    │                   └── RSSAdapterResource.java
   └

Migrierten Adapter erstellen

Navigieren Sie in einem Befehlszeilenfenster zum Ordner des Adapters und führen Sie den Befehl mfpdev adapter build aus.

Adaptererstellung über die Befehlszeile - Fehler

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.

Verwendung von IntelliJ

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.

Weitere Informationen zum Testen von Adaptern enthält das Lernprogramm Adapter testen und debuggen.
Weiterführende Informationen:

Nachdem die Adapters in Format und Code auf ein Maven-Projekt umgestellt wurden, werden wir uns jetzt einige Entwicklungskonzepte ansehen.



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.

Informationen zur Migration der Sicherheit enthält das Lernprogramm zur Umstellung der Authentifizierung und Sicherheit. Weitere Informationen zum Sicherheitsframework und zu Autorisierungskonzepten finden Sie in den Lernprogrammen zur Authentifizierung und Sicherheit.

Realm und Sicherheitsüberprüfung im Vergleich

Eine Sicherheitsüberprüfung in Mobile Foundation 8.0 kann als eine Kombination von drei Konzepten aus früheren Releses 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:
<realm loginModule="AuthLoginModule" name="AuthRealm">
        <className>com.worklight.integration.auth.AdapterAuthenticator</className>
    </realm>
In der betreffenden Datei adapter.xml wird eine Sicherheitsüberprüfung mit einem Namen und der implementierenden Klasse definiert:
<securityCheckDefinition
        name="securityCheckX"
        class="com.sample.SecurityCheckW">
    </securityCheckDefinition>
Eintritts-/Austrittsmethode Adapterbasierte Authentifizierung: Es wird eine Anmelde-/Abmeldefunktion definiert, die vom Framework bei Autorisierungsanforderungen aufgerufen wird.
<parameter name="login-function" value="AuthAdapter.onAuthRequired"/>
<parameter name="logout-function" value="AuthAdapter.onLogout"/>
Angepasster Authentifikator + Anmeldenmodul: 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:
<customSecurityTest name="AuthSecurityTest">
    <test isInternalUserID="true" realm="AuthRealm"/>
</customSecurityTest>
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 Sicherheitstestsfür die Definition der Benutzer-ID (UserID).
<customSecurityTest name="AuthSecurityTest">
    <test isInternalUserID="true" realm="AuthRealm"/>
</customSecurityTest>
Definition in der MobileFirst Operations Console oder mit REST-APIs. Ein Bereich enthält null oder mehr Sicherheitsüberprüfungen.
"scopeElementMapping": {
    "ScopeElementA": "secCheck1 secCheck2"
}, 
Verwendung Ein Sicherheitstest (SecurityTest) kann zum Schutz einer Ressource (Java-Adapter), einer Prozedur (JavaScript-Adapter) oder einer Anwendung (Anwendungsdeskriptor) verwendet werden.

Java-Adapter:
@OAuthSecurity(scope="AuthRealm")
JavaScript-Adapter:
<procedure name="getSecretData" securityTest="AuthSecurityTest"/>
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.

Java-Adapter:
@OAuthSecurity(scope="ScopeElementA ScopeElementB")
JavaScript-Adapter:
<procedure name="deleteUser" scope="deletePrivilege"/>
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).
<test isInternalUserID="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 Informatione nzum 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.

Weitere Informationen zur Verwendung der direkten Aktualisierung enthält das Lernprogramm Direkte Aktualisierung in Cordova-Anwendungen.

Weitere Informationen

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.

Last modified on September 12, 2017