Service für Liveaktualisierung

improve this page | report issue

Übersicht

Mithilfe des Liveaktualisierungsfeatures der Mobile Foundation können auf einfache Weise verschiedene Konfigurationen für Benutzer einer Anwendung definiert und bereitgestellt werden. In der MobileFirst Operations Console gibt es eine Komponente zum Definieren der Konfigurationsstruktur und der Konfigurationswerte. Es gibt ein Client-SDK (für native Android- und iOS-Anwendungen und für Cordova-Anwendungen), das die Konfiguration einliest.

Hinweis: Ausführliche Informationen zur Verwendung der Liveaktualisierung mit einem lokalen MobileFirst Server finden Sie hier in der Dokumentation.

Gängige Anwendungsfälle

Die Liveaktualisierung unterstützt das Definieren und Konsumieren von Konfigurationen und vereinfacht so Anpassungen der Anwendung. Es folgt ein Beispiel für einen gängigen Fall:

  • Release Trains und Feature Flipping

In künftigen Releases werden die folgenden Anwendungsfälle unterstützt.

  • A/B-Tests
  • Kontextbasierte Anpassung der Anwendung (z. B. bei der geografischen Segmentierung)

Fahren Sie mit folgenden Abschnitten fort:

Konzept

Der Service für Liveaktualisierung fügt die folgenden Funktionen zu jeder Anwendung hinzu:

  1. Features - Mit “Features” können Sie konfigurierbare Anwendungsfeatures definieren und deren Standardwerte festlegen.
  2. Properties - Mit “Properties” können Sie konfigurierbare Anwendungseigenschaften definieren und deren Standardwerte festlegen.

Das Entwickler- oder Anwendungsmanagementteam muss über die folgenden Punkte entscheiden.

  • Features, bei denen eine Liveaktualisierung angewendet werden kann, und ihr Standardstatus
  • Konfigurierbare Zeichenfolgeeigenschaften und ihre Standardwerte

Sobald über die Parameter entschieden wurde, können Sie die Features und Eigenschaften (Properties) im Abschnitt für Liveaktualisierung zu der App hinzufügen.

  • Feature: Ein Feature bestimmt, ob eine Anwendungsfunktion aktiviert oder inaktiviert ist. Wenn in einer Anwendung ein Feature definiert wird, müssen folgende Elemente angegeben werden:
    • id – Eindeutige Feature-ID; nicht editierbare Zeichenfolge
    • name - Beschreibender Name des Features; editierbare Zeichenfolge
    • description – Kurzbeschreibung des Features; editierbare Zeichenfolge
    • defaultValue – Standardwert des Features, der gilt, bis er im Segment überschrieben wird (siehe "Segment" weiter unten); editierbarer boolescher Wert
  • Property: Eine Eigenschaft ist eine Schlüssel-Wert-Entität, mit der Anwendungen angepasst werden können. Wenn eine Eigenschaft definiert wird, müssen folgende Elemente angegeben werden:
    • id – Eindeutige Eigenschafts-ID; nicht editierbare Zeichenfolge
    • name - Beschreibender Name der Eigenschaft; editierbare Zeichenfolge
    • description – Kurzbeschreibung der Eigenschaft; editierbare Zeichenfolge
    • defaultValue – Standardwert der Eigenschaft, der gilt, bis er im Segment überschrieben wird (siehe "Segment" weiter unten); editierbare Zeichenfolge

Architektur für Liveaktualisierung

Die folgenden Systemkomponenten stellen zusammen die Funktionalität für Liveaktualisierungen bereit.

Architekturübersicht

  • Service für Liveaktualisierung: Dieser unabhängige Service ermöglicht Folgendes:
    • Anwendungsmanagement
    • Bereitstellung von Konfigurationen für Anwendungen
  • Clientseitiges SDK: Das SDK für Liveaktualisierung wird verwendet, um Konfigurationselemente wie Funktionen und Eigenschaften von MobileFirst Server abzurufen und auf diese Elemente zuzugreifen.
  • MobileFirst Operations Console: In der Konsole werden der Adapter für Liveaktualisierung und die zugehörigen Einstellungen konfiguriert.

Liveaktualisierung zu MobileFirst Server hinzufügen

Der Service für Liveaktualisierung ist standardmäßig im Paket mit dem Mobile Foundation Developer Kit enthalten.

Für eine OCP-Installation (OpenShift Container Platform) können Sie sich hier in der Dokumentation informieren.

Wenn der Service für Liveaktualisierung betriebsbereit ist, wird für jede registrierte Anwendung die Anzeige Einstellungen für Liveaktuaisierung angezeigt.

Anwendungssicherheit konfigurieren

Für die Integration der Liveaktualisierung ist ein Bereichselement erforderlich. Ohne das Bereichselement weist der Service Anforderungen von Clientanwendungen zurück.

  1. Laden Sie die MobileFirst Operations Console.
  2. Klicken Sie auf [Ihre Anwendung] → Registerkarte ‘Sicherheit’ → Zuordnung von Bereichselementen.
  3. Klicken Sie auf Neu und geben Sie das Bereichselement liveupdate.mobileclient ein.
  4. Klicken Sie auf Hinzufügen.

Wenn Sie in Ihrer Anwendung eine Sicherheitsüberprüfung verwenden, können Sie das Bereichselement dieser Überprüfung zuordnen.

Machen Sie sich mit dem MobileFirst-Sicherheitsframework vertraut.

Bereichszuordnung hinzufügen

Features und Eigenschaften mit Standardwerten definieren

Nachfolgend sehen Sie, wie Features und Eigenschaften mit Werten definiert werden.

Feature und Eigenschaft hinzufügen

SDK für Liveaktualisierung zu Anwendungen hinzufügen

Das SDK für Liveaktualisierung stellt Entwicklern eine API zur Verfügung, mit der Konfigurationsfeatures und -eigenschaften abgefragt werden, die in der MobileFirst Operations Console in der Anwendungsanzeige “Einstellungen für Liveaktualisierung” definiert wurden.

Verwenden Sie für Cordova das SDK bis Version 8.0.202003051505.

Verwenden Sie für Android die SDK-Version 8.0.202003051505.

Verwenden Sie für iOS das SDK bis Version 8.0.202003051505.

Cordova-Plug-in hinzufügen

Führen Sie in Ihrer Cordova-Anwendung den folgenden Befehl aus:

cordova plugin add cordova-plugin-mfp-liveupdate

iOS-SDK hinzufügen

  1. Bearbeiten Sie die Podfile Ihrer Anwendung. Fügen Sie den Pod IBMMobileFirstPlatformFoundationLiveUpdate hinzu.
    Beispiel:

    use_frameworks!
    
    target 'your-Xcode-project-target' do
       pod 'IBMMobileFirstPlatformFoundation'
       pod 'IBMMobileFirstPlatformFoundationLiveUpdate'
    end
    
  2. Navigieren Sie in einem Befehlszeilenfenster zum Stammordner des Xcode-Projekts und führen Sie den folgenden Befehl aus.

      pod install
    

Android-SDK hinzufügen

  1. Wählen Sie in Android Studio Android → Gradle Scripts aus. Wählen Sie dann die Datei build.gradle (Module: app) aus.
  2. Fügen Sie innerhalb von dependencies den Eintrag ibmmobilefirstplatformfoundationliveupdate hinzu:

    dependencies {
         compile group: 'com.ibm.mobile.foundation',
         name: 'ibmmobilefirstplatformfoundation',
         version: '8.0.+',
         ext: 'aar',
         transitive: true
    
         compile group: 'com.ibm.mobile.foundation',
         name: 'ibmmobilefirstplatformfoundationliveupdate',
         version: '8.0.0',
         ext: 'aar',
         transitive: true
    }   
    

SDK für Liveaktualisierung

Es gibt verschiedene Einsatzstrategien für das SDK für Liveaktualisierung.

Konfiguration abrufen

Sie können Logik zum Abrufen der Konfiguration implementieren.
Ersetzen Sie property-name und feature-name durch eigene Angaben.

Cordova

    var input = { };
    LiveUpdateManager.obtainConfiguration({useClientCache :false },function(configuration) {
        // Aktion für das Konfigurationsobjekt (JSON) ausführen, wenn Sie beispielsweise
        // im Server ein Feature mit dem Namen 'feature-name' definiert haben:
        // if (configuration.features.feature-name) {
        //   console.log(configuration.properties.property-name);
	// }
    } ,
    function(err) {
        if (err) {            
alert('liveupdate error:'+err);
        }
  });

iOS

LiveUpdateManager.sharedInstance.obtainConfiguration(completionHandler: { (configuration, error) in
  if error == nil {
    print (configuration?.getProperty("property-name"))
    print (configuration?.isFeatureEnabled("feature-name"))
  } else {
    print (error)
  }
})

Android

LiveUpdateManager.getInstance().obtainConfiguration(new ConfigurationListener() {

    @Override
    public void onSuccess(final Configuration configuration) {
        Log.i("LiveUpdateDemo", configuration.getProperty("property-name"));
        Log.i("LiveUpdateDemo", configuration.isFeatureEnabled("feature-name").toString());
    }

    @Override
    public void onFailure(WLFailResponse wlFailResponse) {
        Log.e("LiveUpdateDemo", wlFailResponse.getErrorMsg());
    }
});

Wenn die Konfiguration für Liveaktualisierung abgerufen wurde, können die applikative Logik und der Anwendungsablauf auf der Basis des Zustands von Features und Eigenschaften etabliert werden. Sie können beispielsweise an einem nationalen Feiertag eine neue Werbeaktion in der Anwendung lancieren.

Themen für Fortgeschrittene

Caching

Das Caching ist standardmäßig aktiviert, um Netzlatenzzeiten zu vermeiden. Aktualisierungen werden daher möglicherweise nicht sofort ausgeführt.
Sie können das Caching inaktivieren, wenn häufigere Aktualisierungen erforderlich sind.

Cordova

Den clientseitigen Cache können Sie mit einem optionalen booleschen Flag (useClientCache) steuern:

var input = {useClientCache : false };
      LiveUpdateManager.getConfiguration(input,function(configuration) {
              // Aktion für die resultierende Konfiguration ausführen. Beispiel:
                // console.log(configuration.data.properties.property-name);
                // console.log(configuration.data.features.feature-name);
        } ,
        function(err) {
                if (err) {            
alert('liveupdate error:'+err);
                }
  });

iOS

LiveUpdateManager.sharedInstance.obtainConfiguration(useCache: false, completionHandler: { (configuration, error) in
  if error == nil {
    print (configuration?.getProperty("property-name"))
    print (configuration?.isFeatureEnabled("feature-name"))
  } else {
    print (error)
  }
})

Android

LiveUpdateManager.getInstance().obtainConfiguration(false, new ConfigurationListener() {

    @Override
    public void onSuccess(final Configuration configuration) {
      Log.i("LiveUpdateSample", configuration.getProperty("property-name"));
      Log.i("LiveUpdateSample", configuration.isFeatureEnabled("feature-name").toString());
    }

    @Override
    public void onFailure(WLFailResponse wlFailResponse) {
        Log.e("LiveUpdateSample", wlFailResponse.getErrorMsg());
    }
});

Cacheverfallszeit

Der Wert expirationPeriod liegt bei 30 Minuten, was der Verfallszeit für den Cache entspricht.

Last modified on May 13, 2020