Offline hybride apps met SAP UI5

Download Report

Transcript Offline hybride apps met SAP UI5

VNSG Magazine | juni 2014
Offline hybride apps met SAP UI5
SAP kan tegenwoordig prima via het web ontsloten worden met (open) UI5. Wanneer je zo'n
applicatie ook volledig offline wil gebruiken, of een wegvallende verbinding wil kunnen opvangen
wordt het interessant. Door middel van een hybride opzet met bijvoorbeeld SAP Kapsel is dit geen
enkel probleem! In deze tip vertellen we je alles over offline hybride apps.
In deze tip gaan we eerst in op de werking van UI5 web-applicaties, hybride apps en de Fiori-Client
waarna we de verschillende mogelijkheden voor offline ondersteuning die deze bouwblokken bieden
naast elkaar leggen. Uiteindelijk geven we nog een blik op de toekomst en zullen we bespreken wat
er door SAP beloofd wordt voor het SAP Mobile Platform versie 3.0 (SMP3.0).
De werking van UI5
SAP richt zijn pijlen momenteel op het ontsluiten van zijn services via het web. SAP UI5 (verder ook
wel UI5 genoemd) is hier de basis voor, en de applicaties worden als suite Fiori genoemd. UI5 draait
standaard in een browser op je computer of mobile device, en kan op al deze apparaten werken
zonder aanpassingen per device.
Zo’n UI5 web-applicatie kan ook in een hybride app worden geopend. De meest bekende hiervan is
Cordova1, een open source project van de Apache organisatie. Cordova is eigenlijk ook een browser
maar heeft meer mogelijkheden die aan- of uit kunnen worden gezet en die door de web-applicatie
kunnen worden gebruikt. Hierdoor kan een website bijvoorbeeld gebruik maken van je GPS locatie,
of de bewegingssensoren van je telefoon.
SAP heeft het nut van zo’n hybride-app voor zijn UI5 web-applicaties ook ingezien, en heeft speciaal
voor de Fiori suite de Fiori-Client uitgebracht2. Deze app kan op ieder Android en iOS device worden
geïnstalleerd en biedt extra mogelijkheden voor Fiori applicaties. Zo zorgt het ervoor dat de
benodigde bestanden beter gecached worden en zal er in de toekomst integratie komen met de
functionaliteiten die SMP3.0 gaat bieden. Deze functionaliteiten worden aangeboden in een set plugins onder de naam Kapsel.
Offline mogelijkheden
Als we het over offline hebben heeft iedereen een andere beleving van wat dat betekent. Het kan
bijvoorbeeld zo zijn dat je in de trein zit, en de verbinding even een paar seconden wegvalt, of dat je
in een tunnel moet werken waar helemaal geen internet mogelijk is. Dit zijn twee extremen en alle
gradaties er tussenin kunnen voorkomen. Voor ieder scenario zal gekeken moeten worden wat er
nodig is om dit op te vangen.
Als je een web-applicatie offline wil gebruiken zijn twee dingen om rekening mee te houden:
 Dataopslag voor offline gebruik.
 Wat gebeurt er met de verzoeken voor data die naar de server worden gestuurd terwijl de
applicatie offline is.
Dataopslag
Als je device offline is, kan er geen nieuwe data opgehaald worden van de server. Als de gebruiker
dan nog wel nuttige dingen wil doen zal er data op het device beschikbaar moeten zijn om te tonen.
Dit kan op verschillende manieren worden gefaciliteerd. Al lange tijd kunnen servers cookies zetten
in de browser. Deze cookies kunnen willekeurige informatie bevatten, en zouden dus gebruikt
kunnen worden om data op te slaan voor offline gebruik. Cookies mogen echter maar 2KB groot zijn,
waardoor het onpraktisch is om er veel data in te stoppen.
1
http://cordova.apache.org/
2
http://help.sap.com/fiori-client
VNSG Magazine | juni 2014
Alle moderne browsers (IE8+, en bijna alle andere browsers) ondersteunen echter ook de
LocalStorage API. Dit is een mechanisme waarmee grotere bestanden in de browser kunnen worden
opgeslagen. De maximale grootte hiervan verschilt per browser, maar is in ieder geval meerdere
megabytes. Dit biedt dus al de mogelijkheid om hele teksten op het device op te slaan in platte files.
Deze manier van opslaan is ook gebruikt in de VNSG congres app. De VNSG congres app is een
hybride app die bestaat uit een SAP UI5 web-applicatie deel en een op Cordova gebaseerde app op
het device. De web-applicatie heeft natuurlijk data nodig over alle sessies, sprekers en locaties die
met het congres te maken hebben, en deze informatie wordt centraal op een server bijgehouden. Al
deze informatie wordt opgehaald wanneer de app de eerste keer opstart en deze info wordt in de
LocalStorage gestopt. De volgende keren kan de app dan controleren of er data gewijzigd zijn, en
alleen de wijzigingen ophalen in plaats van alle data opnieuw te moeten downloaden. Dit scheelt
aanzienlijk in snelheid, en levert het grote voordeel dat als het device geen verbinding heeft, alle
data al beschikbaar is en er volledig offline kan worden gewerkt.
Als je een hybride app gebruikt op basis van Cordova zijn er ook geavanceerdere databases
beschikbaar zoals WebSQL en IndexedDB3. Deze databases hebben betere opzoekmogelijkheden
voor de data en kennen geen beperkingen qua grootte omdat ze hun data direct in het filesysteem
van het device opslaan. Ook is het met Cordova mogelijk om files direct naar het filesysteem van het
device te schrijven als dit handiger is. De Fiori-Client gebruikt alleen de cache om de web-applicatie
op te slaan. De Fiori web-applicaties halen echter al hun data altijd van de server, dus de Fiori-Client
kan niet offline werken.
SAP heeft zoals genoemd ook eigen plug-ins gebouwd voor Cordova onder de naam Kapsel. In deze
plug-ins zit ook de EncryptedStorage die het mogelijk maakt om data encrypted op te slaan in een
SQLite database4.
Op dit moment kan dit alleen als key-value combinaties zoals in LocalStorage, maar omdat er een
SQLite database onder zit zal er in de toekomst volledige databasefunctionaliteit worden geboden.
3
http://docs.phonegap.com/en/3.4.0/cordova_storage_storage.md.html
4
http://scn.sap.com/docs/DOC-49530
VNSG Magazine | juni 2014
Dit biedt een hele mooie mogelijkheid om alle data die nodig kan zijn op het device te zetten. Ook
vertrouwelijke documenten en data kunnen dan veilig offline beschikbaar worden gemaakt. Met de
eerder genoemde mogelijkheden kan deze zo uit de opslag gevist worden. In SMP3.0 zullen de Kapsel
plug-ins standaard ondersteund worden.
Verzoeken naar de server wanneer offline
Normaal zal een browser of hybride app een foutmelding geven wanneer je UI5 web-applicatie data
probeert op te halen als het device offline is. Dit zal er vaak voor zorgen dat de web-applicatie
helemaal niet meer werkt, en dan zal je deze opnieuw moeten starten wanneer je weer online bent.
Dat het device offline is, kan in de web-applicatie worden opgemerkt. En als de web-applicatie van
tevoren weet dat de verzoeken naar de server fout zullen gaan, kunnen ze in een wachtrij geplaatst
worden om te versturen nadat het device weer online is. Ondertussen moet de gebruiker natuurlijk
wel geïnformeerd worden dat de web-applicatie geen data kan ophalen.
In toekomstige versies van het SAP Mobile Platform zal SAP ook een uitbreiding doen op de OData
Client SDK5 waardoor het bovenstaande mechanisme voor het opslaan van de verzoeken
automatisch ondersteund zal worden voor native applicaties. Momenteel zul je deze functionaliteit
nog zelf moeten inbouwen voor web-applicaties of een library moeten gebruiken die openbaar
beschikbaar is. De verwachting is wel dat SAP dit ook naar hybride apps gaat overhevelen in een van
de volgende service packs, waarschijnlijk vanaf eind van het jaar. De Fiori-Client biedt hier
momenteel nog geen ondersteuning voor maar zou in de toekomst ook meer van de SMP3.0
functionaliteiten moeten gaan ondersteunen, in samenspel met de Fiori web-applicaties en services.
De functionaliteit om alleen de wijzigingen (delta’s) van de data over te zenden in plaats van alle data
is momenteel nog nergens standaard geïmplementeerd, deze functionaliteit zul je nu nog zelf
moeten bouwen. In de toekomst wil SAP dit wel standaard gaan aanbieden, zoals ze dat in eerdere
versies van het SAP Mobile Platform al had.
Conclusie
Er zijn verschillende manieren om een web-applicatie ook offline beschikbaar te maken. Dit kan in
verschillende gradaties: van het kunnen opvangen van het tijdelijk wegvallen van het netwerk tot
volledig offline kunnen werken. Het hangt er dus van af hoe offline de web-applicatie moet kunnen
werken en hoeveel inspanning er nodig is om de verschillende mogelijkheden in te bouwen. En met
de plug-ins van SAP Kapsel en SMP3.0 kun je een hybride app opzetten die volledig offline werkt.
Deze tip is aangeleverd door:
Tin de Zeeuw
User Experience Consultant
[email protected]
5
http://scn.sap.com/community/mobile/blog/2013/12/03/odata-sdk-offline--caching-data