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
- Architektur für Liveaktualisierung
- Liveaktualisierung zu MobileFirst Server hinzufügen
- Anwendungssicherheit konfigurieren
- SDK für Liveaktualisierung zu Anwendungen hinzufügen
- SDK für Liveaktualisierung
- Themen für Fortgeschrittene
Konzept
Der Service für Liveaktualisierung fügt die folgenden Funktionen zu jeder Anwendung hinzu:
- Features - Mit “Features” können Sie konfigurierbare Anwendungsfeatures definieren und deren Standardwerte festlegen.
- 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.
- 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.
- Laden Sie die MobileFirst Operations Console.
- Klicken Sie auf [Ihre Anwendung] → Registerkarte ‘Sicherheit’ → Zuordnung von Bereichselementen.
- Klicken Sie auf Neu und geben Sie das Bereichselement
liveupdate.mobileclient
ein. - 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.
Features und Eigenschaften mit Standardwerten definieren
Nachfolgend sehen Sie, wie Features und Eigenschaften mit Werten definiert werden.
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
-
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
-
Navigieren Sie in einem Befehlszeilenfenster zum Stammordner des Xcode-Projekts und führen Sie den folgenden Befehl aus.
pod install
Android-SDK hinzufügen
- Wählen Sie in Android Studio Android → Gradle Scripts aus. Wählen Sie dann die Datei build.gradle (Module: app) aus.
-
Fügen Sie innerhalb von
dependencies
den Eintragibmmobilefirstplatformfoundationliveupdate
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.
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.