Choisir entre MBaaS et BaaS demande une étude soigneuse
Des appareils portables aux données basées sur le serveur, le développement d'expériences, d'applications et de services informatiques mobiles de bout en bout est rapide et sécurisé, que ce soit avec MBaaS ou BaaS.
Il n'y a pas si longtemps, une application conçue pour les terminaux mobiles - smartphone, tablette ou portable - était considérée comme une expérience autonome, un complément distinct de l'application Web ou de bureau avec laquelle elle était souvent mal intégrée. Cette philosophie de l'isolement était en partie motivée par les limites techniques et donnait naissance au développement d'applications mobiles autonomes, déconnectées, en utilisant des outils - et des développeurs - centrés uniquement sur l'expérience mobile.
Les temps ont changé. Les applications mobiles n'existent plus dans un monde hors sol. Aujourd'hui, paradoxalement, alors que l'expérience mobile a pris de l'importance, elle s'est simultanément condensée en une facette d'un système global basé sur le cloud. Bien que cet aspect mobile constitue désormais le canal prééminent pour l'interaction avec l'utilisateur, le développement pour celui-ci n'est plus l'effort discret qu'il était autrefois.
Cette fusion du développement mobile dans l'expérience globale de création d'applications, le terme historique MBaaS (back-end mobile en mode service) tombe en disgrâce, supplanté par BaaS, qui est le back-end au sens plus large, mais toujours en mode service. Peu importe comment on l'appelle, choisir une plateforme de développement adaptée aux applications mobiles est plus crucial que jamais. Les fournisseurs décrivent de plus en plus leurs produits en utilisant le terme BaaS, en négligeant le terme MBaaS, mais en le gardant vivant dans leurs documents marketing.
Pour mieux faire correspondre la capacité technique aux besoins de l'entreprise, il est essentiel de comprendre la technologie, son fonctionnement, d'examiner les principales caractéristiques et de tout mettre en œuvre pour faire un choix éclairé.
La technologie MBaaS expliquée
Une plate-forme BaaS est une architecture de développement Cloud avec deux composants. Le premier pourrait être considéré comme un outil de base pour le développement d'expériences mobiles numériques. Il fournit aux développeurs les outils et l'architecture dont ils ont besoin pour créer des applications conçues pour des myriades de tailles d'écran, de formats, et de systèmes d'exploitation. Le deuxième composant est un back-end pour les services de gestion et d'exploitation. Il fournit des moyens centralisés - généralement via une API - pour accéder aux serveurs, au stockage, aux bases de données, aux processus de traitement et aux autres ressources dont les applications ont besoin pour interopérer de manière sécurisée et s'intégrer au reste de l’environnement de production informatique.
« BaaS est essentiellement un intergiciel que les développeurs utilisent pour connecter un assortiment de types d'appareils mobiles aux services et au stockage qui s'exécutent sur des serveurs back-end dans une infrastructure cloud ou sur site », explique Judith Hurwitz, PDG de Hurwitz & Associates LLC : « aujourd'hui, vous voulez construire ces connexions avec la puissance des API ».
Un défi évident dans le développement d'applications mobiles est celui de la gestion d’un assortiment apparemment infini de dispositifs cibles et de systèmes d'exploitation. Un environnement de développement de plateforme BaaS doit prendre en charge plusieurs systèmes d'exploitation - Android, iOS voire Windows 10 - et ce n'est que le début.
Dans le monde fragmenté d’Android, où les fabricants d’appareils publient des mises à jour du système d'exploitation selon leur propre calendrier, la version la plus installée était, en février 2018, Nougat (v7.x, août 2016, 32 %), devant Marshmallow (v6.x, octobre 2015, 25 %), et Lollipop (v5.x, novembre 2014, 25 %). Le tout dernier Oreo (v8.x) n’était à date installé que sur 1,1 % des terminaux. Dans le monde d’iOS, étroitement contrôlé, la situation est bien différente, avec 65 % des appareils exécutaient iOS 11, la génération actuelle, en janvier dernier 2018, selon les propres données d'Apple.
Mais au-delà de l'imbroglio des systèmes d'exploitation, une plate-forme BaaS doit permettre aux développeurs de créer des expériences utilisateur pour une véritable myriade de résolutions et de dimensions physiques. Dans le monde d'Apple, les résolutions de l'iPhone couvrent un large éventail : 640 x 1136 pixels (iPhone 5S/SE), 750 x 1334 pixels (iPhone 6/7/8), 1080 x 1920 pixels (iPhone 6/7/8 Plus), voire 1125 x 2436 pixels (iPhone X). Les différentes résolutions de l'iPad doivent également être supportées : 1536 x 2048 pixels pour la plupart, 1668 x 2224 pixels pour l’iPad Pro 10,5 pouces, et même 2048 x 2732 pixels pour l’iPad Pro 12,9 pouces. Les téléphones et les tablettes Android offrent un éventail de résolutions tout aussi ahurissant.
Comment fonctionne la technologie BaaS
Le BaaS est implémenté comme un ensemble d'outils qui connecte des applications mobiles avec des bases de données, des serveurs et d'autres applications et services grâce à l'utilisation combinée de kits de développement logiciel (SDK), d'API et de bibliothèques de code réutilisable. En se positionnant entre les appareils mobiles et ces autres applications et services, le BaaS agit comme un intermédiaire capable de gérer toutes les connexions back-end des mobiles afin que les développeurs puissent offrir la meilleure expérience utilisateur. Les intégrations sont susceptibles d'être réalisées grâce à l'utilisation d'API REST et d'interfaces en conjonction avec JSON pour l'échange de données et l'intégration d'applications.
Caractéristiques à rechercher
Les options architecturales ne sont pas des fonctionnalités, mais en regardant la conception de la plateforme BaaS elle-même, deux méthodes d'implémentation très différentes existent.
Dans la première, la plateforme BaaS et l'ensemble de ses fonctionnalités sont intégrées dans l'univers plus large des services proposés par les principaux fournisseurs de plateformes cloud. Les environnements BaaS complets proposés par Amazon Web Services, Google Cloud Platform, IBM Bluemix et Microsoft Azure visent à intégrer des outils de développement d'applications mobiles dans leurs plateformes d'exploitation cloud. L'idée est que le développement et les tests conduisent facilement à un déploiement continu automatisé.
Alternativement, un certain nombre de fournisseurs de plateforme BaaS proposent leurs outils en tant qu'entité autonome, distincte de la plateforme cloud ou du centre de calcul sur site où elle s'exécute. L'argument est que l'indépendance de ces suites de développement les rend hautement configurables et mieux adaptées aux besoins spécifiques des entreprises individuelles. Une plateforme BaaS autonome est la seule option pour les entreprises qui choisissent de ne pas adopter le cloud public, et préfèrent l'installer sur leur propre infrastructure interne.
Michael Facemire, analyste principal au service des professionnels du développement et de la fourniture d'applications chez Forrester, a souligné que les approches tout-en-un et do-it-yourself sont tout aussi valables. Il s'agit d'une question qui correspond mieux à la philosophie informatique de l'entreprise.
Voici quelques caractéristiques à prendre en compte lors du choix d'une plateforme BaaS:
- La sécurité et la conformité sont incontournables. Avec l'essor de l'utilisation de la mobilité pour les services financiers et les applications de soins de santé, il est essentiel que le chiffrement soit intégré pour les données au repos et en transit.
- L'authentification, avec l'enregistrement de l'utilisateur, est étroitement liée à la sécurité. Une plateforme BaaS complète devrait inclure des services pour l'enregistrement des nouveaux utilisateurs, ainsi qu'un accès sécurisé compatible OAuth aux ressources du serveur. Elle doit également prendre en charge d'autres méthodes d'authentification, notamment l'identification à double facteur, par jeton à usage unique, ou encore la reconnaissance biométrique.
- Les notifications Push permettent à un service de back-end d'informer l’utilisateur du terminal mobile d'un événement important. Cela peut-être une compagnie aérienne envoyant une alerte concernant un changement sur un vol à venir, une banque notifiant à un client qu'un solde de compte est passé en dessous d'un montant prédéterminé, ou un atelier qui alerte un groupe d'utilisateurs d’une anomalie sur une ligne d'assemblage, par exemple.
- La gestion des données est la vaste capacité à lire, écrire, rechercher et interroger des données résidant sur un serveur de tout type, y compris les objets formatés, non formatés et binaires comme les vidéos.
- Le streaming de données, un aspect clé des réseaux sociaux, est la capacité à gérer des flux de commentaires et d'activités en direct. Cela peut concerner, par exemple, une application liée au sport où de nombreux utilisateurs publient simultanément de nouveaux commentaires et des réponses aux commentaires déjà publiés.
- La géolocalisation, qui rend les applications mobiles sensibles à l'emplacement, est couramment utilisée pour marquer les photos, mais peut également être mise à contribution pour personnaliser les expériences des utilisateurs : un détaillant qui affiche des messages push sur des articles en vente lorsqu'un utilisateur s'approche de l'un de ses propres emplacements - ou même d'un concurrent -, ou encore des données météo pour l'emplacement actuel ou des résultats de recherche basés sur la proximité.
- Les capacités analytiques capturent les indicateurs de fonctionnement et fournissent des informations sur les performances des périphériques et des applications, l'efficacité de l'API et la conformité aux règles.
- La gestion des API fournit aux développeurs un moyen cohérent et sécurisé pour créer et déployer des API et contrôler l'accès.
Pour conclure
À l'ère du cloud, à quelques exceptions près, chaque application est une application mobile. Pour qu'une expérience mobile satisfasse ses utilisateurs, l'application doit avoir un aspect attrayant, être utilisable, facile à naviguer et performante sans délai. Les transactions et les interactions avec les bases de données résidant sur des serveurs cloud ou sur site doivent être sécurisées et synchronisées avec les expériences non mobiles de bureau et d'application Web.
Pour répondre à ces besoins, il est nécessaire de créer une application mobile et une interface offrant un support natif pour différents types d'appareils, plusieurs systèmes d'exploitation et une grande variété de résolutions d'écran. Une autre exigence consiste à créer des intégrations avec des données privées et tierces, ainsi qu'avec des applications et des traitements développées par le département informatique ou accessibles via un abonnement logiciel-service. Enfin, des outils de gestion de ces processus, d'aide au déploiement et de suivi des performances sont nécessaires.
Une plateforme MBaaS ou BaaS constitue le socle technologique fournissant la large gamme d'outils qui permet aux développeurs de créer des expériences mobiles.