Comment rendre Hana mobile


Imaginons l'exemple d'application suivant : Une application doit être créée pour aider les collaborateurs du service après-vente. Les collaborateurs du service après-vente se déplacent chez les clients pour effectuer des réparations ou de la maintenance, ils ont donc besoin d'une application mobile pour leur travail.
Celle-ci met à la disposition du personnel de service des données sur les appareils du client et conserve un historique de service pour chaque appareil. Les données relatives aux appareils sont conservées et gérées dans un système SAP.
L'application de service gère les historiques de service. Certaines parties des données de service doivent être transférées à nouveau dans le système SAP, par exemple pour établir des décomptes.
Master pour les données de base
Pour mettre en œuvre l'application, il faut donc une application mobile comme front-end et un back-end pour la gestion des données et l'accès aux données SAP. La communication entre le frontal et le backend se fait via une interface REST.
Il existe différentes approches technologiques pour la mise en œuvre - dans ce qui suit, tous les éléments seront réalisés à l'aide de la pile technologique proposée par SAP. D'un point de vue technologique, une infrastructure Hana avec des services XS et un système SAP se cachent derrière l'application dans le backend.
Ce dernier fait office de maître pour les données de base. Le système Hana, le maître pour les données de mouvement, contient non seulement une base de données pure, mais aussi un serveur web qui met à disposition un contenu web et peut également exécuter JavaScript côté serveur grâce à un environnement d'exécution intégré (appelé moteur XS).
Si seules des opérations simples de lecture ou d'écriture sont nécessaires, l'accès aux données peut se faire via des services ODATA. Ceux-ci suivent le principe REST et sont faciles à utiliser, notamment avec JavaScript.
Le développeur reçoit alors l'ensemble complet des opérations CRUD pour une table. La logique commerciale complexe peut être mise en œuvre à l'aide du moteur XS déjà mentionné ou directement dans la base de données Hana.
L'accès aux services et aux données est protégé par le système de droits intégré de SAP. La synchronisation des données entre Hana et SAP s'effectue par le biais de ce que l'on appelle le Landscape Transformation Server (LTR).
Il s'agit d'un service qui maintient deux sources de données - en l'occurrence des tables de base de données - synchronisées sur la base de stratégies données. Par exemple, le LTR dispose des fonctions nécessaires pour synchroniser immédiatement les modifications des données de base dans les tables de base de données Hana correspondantes.
Pour la synchronisation inverse, il faut toutefois d'abord implémenter les services correspondants sur le système SAP, qui peuvent ensuite être activés par Hana dès que les données ont été modifiées via le frontal.
SAPUI5 et OpenUI5
Pour le développement de frontaux mobiles, car l'utilisation primaire de l'application est sur place, le framework JavaScript SAPUI5 ou la variante open-source correspondante OpenUI5 s'impose.
Ce framework JavaScript MVC, comparable au populaire AngularJS, est basé sur jQuery et peut donc être appris relativement rapidement. SAPUI5 contient déjà des composants d'interface et des fonctionnalités prêts à l'emploi pour l'accès aux données.
Ces composants mis à disposition sont conçus pour la connexion de services ODATA. Dans une application comme celle décrite ici, cela facilite le databinding et permet de mettre en œuvre facilement des recherches ou des filtres complexes.
Contrairement à AngularJS, SAPUI5 apporte déjà des solutions prêtes à l'emploi pour la mise en page et le style de l'application. La mise en page est responsive, ce qui facilite la prise en charge à grande échelle de différents terminaux mobiles.
Le look and feel préfabriqué permet de créer rapidement des applications graphiquement attrayantes, mais les adaptations sont souvent très laborieuses. SAP met désormais à disposition un concepteur de thèmes qui doit simplifier les adaptations du look and feel.
Apache Cordova est en outre utilisé pour emballer l'application SAPUI5 dans un cadre applicatif natif. Un autre aspect important des applications mobiles est la capacité hors ligne.
L'application doit être en mesure de conserver au moins partiellement les données stockées dans la base de données Hana, afin de compenser les éventuelles perturbations de la connexion, voire de permettre un fonctionnement complet hors ligne.
SAPUI5 ne propose malheureusement pas de solution toute faite. La mise en œuvre technique se sert d'une part de ce que l'on appelle les "Storages", une construction SAPUI5 permettant de stocker localement des données au choix de manière structurée, et d'autre part de la possibilité d'enregistrer des callbacks sur les requêtes de données.
Tous les accès aux données peuvent ainsi - si nécessaire - être redirigés vers la base de données locale. Lorsque le backend est disponible, la base de données locale peut alors être à nouveau synchronisée avec le backend.
Les exigences matérielles pour un système Hana sont très élevées - la configuration minimale pour un système nécessite au moins 128 Go de mémoire principale et une quantité non précisée d'espace disque.
Notre installation fonctionne actuellement avec 500 Go d'espace disque. Il est également possible d'utiliser des instances Hana dans le cloud, que ce soit via SAP ou Amazon Web Services. Cela permet d'économiser du temps et des coûts d'installation du matériel, les coûts d'utilisation dépendent de la taille du système et de la charge de calcul.
L'utilisation du cloud est donc idéale à des fins de développement, mais il existe quelques restrictions au niveau de la modélisation des données et des possibilités d'accès à l'instance Hana.
Pour échapper à ces restrictions, il est recommandé d'exploiter sa propre installation Hana. En particulier lors de la connexion d'un autre système SAP à des fins de synchronisation des données, une plateforme propre offre nettement plus de flexibilité.
Conclusion
En résumé, Hana est en principe une plateforme adaptée aux applications complexes centrées sur le mobile. Avec SAPUI5, le fabricant de logiciels de Walldorf mise sur les technologies web modernes.
Tant pour le développement frontal que pour le développement backend, on évolue dans le monde JavaScript : comme SAP utilise des composants connus comme jQuery, les développeurs peuvent s'appuyer sur leurs connaissances JavaScript existantes.
La création de services à partir de tables de base de données existantes est simple, mais offre néanmoins une flexibilité suffisante pour représenter des cas plus complexes. Le framework est adapté à l'interaction avec Hana, ce qui permet d'obtenir assez rapidement des résultats utilisables dans cette combinaison, alors que sans Hana, il n'offre guère d'avantages par rapport à d'autres alternatives.
En raison des coûts liés aux licences et à l'exploitation du matériel, l'utilisation convient en premier lieu aux exploitants qui ont déjà des systèmes SAP en place.