Juin 2016
Volume 31, numéro 6
Cet article a fait l'objet d'une traduction automatique.
Développement mobile - Accélérer votre développement mobile grâce à la plateforme MBaaS
Par Paras Wadehra | Juin 2016
Un très grand pourcentage des coûts de développement d’applications mobiles proviennent d’intégration back-end. En outre, la plupart des applications ont un ensemble de fonctionnalités qui varient entre elles. Donc au lieu de créer les mêmes fonctionnalités et composants reprises à partir de zéro pour chaque application, que se passe-t-il si vous pouviez vous concentrer sur ce qui rend une application mobile réussie, l’expérience utilisateur et consommer des autres fonctionnalités d’application critiques (au lieu de build) ? C’est exactement la théorie sous-jacente du service principal Mobile en tant que Service (MBaaS), qui fournit les fonctionnalités des applications importantes mais courantes en tant que service pour vous permettent de consommer, ce qui vous permet d’enregistrer des quantités énormes de temps (et par conséquent d’argent) sur le développement d’applications tout en restant concentré sur la fourniture d’une grande expérience à vos utilisateurs.
Non seulement vous inutile de réinventer la roue pour chaque application, la plate-forme MBaaS vous permet également d’utiliser une approche de développement « découplé » pour le serveur frontal application et back-end. Cela signifie créer le serveur frontal et le serveur principal en même temps est désormais possibles et la connexion le prend seulement deux « retournement le commutateur » lorsque les deux côtés sont effectuées.
Je vais vous guider à travers les principales étapes du processus de développement à l’aide de deux « faire vous-même » (soi-même) d’une application d’entreprise exemple et les approches MBaaS, puis comparer les deux et voir de quel type de scénario un sens plutôt que l’autre. Les exigences de haut niveau de ce cas d’usage sont les suivantes :
- L’application a besoin authentifier les utilisateurs par rapport à Active Directory Federation Services (ADFS).
- L’application doit se connecter à et afficher les données d’une instance de SharePoint, mais qui doit filtrer les données au lieu d’afficher l’enregistrement complet à partir de SharePoint.
- L’application doit autoriser l’utilisateur à parcourir les données tout en mode hors connexion.
- L’application doit autoriser l’utilisateur à ajouter des enregistrements en mode hors connexion et automatiquement synchroniseront ces enregistrements avec le serveur lorsque l’application est en ligne.
- L’application doit recevoir une notification push confirmant que l’enregistrement nouveau ou mis à jour a été correctement enregistré dans SharePoint.
- L’application doit autoriser l’utilisateur à prendre une photo et le télécharger sur le serveur lié à l’enregistrement en cours de création.
Maintenant Imaginez que vous avez été simplement transmis ces exigences et invité à créer une application mobile. Par où commencer ? Examinons les choix.
Une option consiste à obtenir tous les services principaux tels que AD FS et SharePoint en cours d’exécution, ainsi que d’un serveur pour héberger vos fichiers, des images dans ce cas. Vous devez également créer des services AD FS et SharePoint pour vous permettre de se connecter et communiquer avec eux à partir de l’application mobile. Puis vous serait en mesure de générer l’application frontale mobile pour se connecter à ces services back-end.
Vous pouvez également commencer par la création de l’application mobile frontale, se parler pour simuler des données et l’authentification des sources tout d’abord, mise à jour de l’application mobile pour communiquer avec les données réelles et les sources de l’authentification une fois que les services principaux sont opérationnels et en cours d’exécution. Toutefois, cela vous oblige à créer des données factices et systèmes d’authentification ou les services que vous pouvez utiliser pour générer l’application mobile.
Avec une de ces options DIY, votre application frontale devez parler la même langue que le serveur principal et est susceptible de s’arrêter si la fin de l’arrière des modifications, que vous ayez à créer des correctifs long et coûteux de l’application.
En revanche, à l’aide d’une plate-forme MBaaS signifie que l’application mobile frontale et les services principaux peuvent être créés simultanément par deux équipes différentes, ce qui signifie que de réduire la durée, et les deux peuvent être connectés entre eux à l’aide de la plate-forme MBaaS. Une de plusieurs avantages de cette approche est que vous n’avez pas besoin à vous soucier de la création de services fictifs pour simuler des sources de données et d’authentification.
Une plate-forme MBaaS vous propose de kits de développement logiciel pour les plateformes natives et hybrides. Vous intégrez simplement le Kit de développement pour la plate-forme de votre choix dans votre environnement de développement et le code par rapport à pour le rendre facile à consommer des services back-end. Une des fonctionnalités plus importantes de MBaaS vos applications consommera est intégré avec des données back-end et sources d’identité. La plate-forme MBaaS fournit également une couche d’abstraction, masquant ainsi la complexité de la partie principale de l’application mobile front-end.
Examinons plus détaillées sur le contenu de chaque implique de ces options. Je vais étudier les fonctionnalités requises de l’application et le focus tout d’abord sur la façon de mettre en œuvre cette fonctionnalité DIY, puis comparer à la manière de MBaaS de faire les choses. Au final, je vais faire une comparaison des deux approches globale.
Authentification
Avec l’approche personnalisé, vous devez d’abord créer le connecteur AD FS, puis utiliser ce connecteur pour authentifier l’utilisateur. Le connecteur doit être utilisable à partir d’une application mobile et autoriser le passage d’un nom d’utilisateur et le mot de passe de l’application à Active Directory pour l’authentification. Une fois qu’Active Directory a authentifié l’utilisateur, elle retourne un jeton d’authentification devant être analysée, chiffrée et stockée pour utilisation dans les futures appelle. En outre, si un fournisseur d’authentification prend en charge les jetons d’actualisation, code devra être écrite pour actualiser automatiquement le jeton d’authentification lorsqu’il a expiré.
Avec MBaaS, en revanche, vous appeler une authentification à l’aide du Kit de développement logiciel client pour authentifier l’utilisateur, par exemple :
MBaaS.login(redirectURI);
Selon le type d’authentification, le fournisseur peut proposer son propre écran de connexion (style OAuth) ou un fournisseur MBaaS peut présenter sa propre version de l’écran de connexion. Tous les fournisseurs MBaaS offrent au moins certains connecteurs sans code dans l’entreprise sources d’identité, y compris, de manière non limitative, AD FS. Simplement, vous fournissez quelques paramètres de configuration dans le portail de cloud MBaaS et que vous configurez MBaaS pour communiquer avec votre instance d’AD FS. Les types de paramètres de configuration que vous fournissez incluent les URI de connexion de fournisseur, URI de déconnexion, texte et format d’ID de nom URI, ainsi que l’URI de redirection et durée de vie (TTL) pour le jeton d’authentification. Soyez en mesure d’obtenir toutes ces valeurs à partir de l’administrateur AD FS dans votre entreprise. Simplement en définissant ces paramètres de configuration, vous créez une connexion à votre instance AD FS.
La complexité de l’implémentation du processus d’authentification entier a maintenant été simplifiée pour cette ligne de code. Toutes les complexités de back-end, comme la négociation de l’authentification, la récupération de l’authentification de jeton, le chiffrement et le stockage et ainsi de suite sont désormais prises en charge par la plate-forme MBaaS et le Kit de développement logiciel correspondant.
Accès aux données
L’extraction de données DIY semble simple, jusqu'à ce que vous asseoir et essayez-le. Il n’est pas trop mauvais pour les sources de données qui exposent un service Web utilisable aux données par défaut. Il peut même être facile de se connecter directement à la source de données à partir d’une application Web. Toutefois, les plateformes mobiles en général aient les mêmes connecteurs aux sources de données d’entreprise disponibles en tant qu’applications Web. Cela signifie qu'un connecteur personnalisé doit être écrit, probablement comme un service Web qui communique avec la source de données et expose ses données à l’aide des verbes HTTP standard tels que GET, PUT, POST et supprimer. En outre, ce connecteur devra être hébergée. Dans la plupart des cas, votre application doivent accéder à votre réseau, ce qui signifie que le Web service que vous créez doit être en mesure de communiquer avec le monde extérieur, ainsi que le monde de l’entreprise de l’intérieur du pare-feu, et donc un trou doit probablement être poked dans le pare-feu. Après avoir créé le connecteur personnalisé, vous pouvez connecter à partir de l’application mobile et effectuer toutes les opérations de données en conséquence. Mais que se passe-t-il si vous devez laisser à l’utilisateur d’extraire uniquement certains jeux d’enregistrements en fonction de leurs requêtes ? Cela nécessite la création de fonctionnalités d’interrogation dans le service Web, ce qui peut se complique, surtout si vous souhaitez autoriser les utilisateurs à effectuer des requêtes complexes.
La plupart des systèmes MBaaS fournissent l’emploi des connecteurs à plusieurs sources de données d’entreprise, ce qui signifie que vous les configurez simplement au lieu de les créer. Pour les cas d’utilisation de l’exemple, vous configureriez le connecteur pour SharePoint en fournissant des paramètres de configuration comme l’URL de l’hôte et nom d’utilisateur et mot de passe pour se connecter à votre instance de SharePoint. Consomme les données à partir de SharePoint au sein de l’application mobile est aussi simple que l’écriture d’une ligne de code :
MBaaS.data.get(NameofDataCollection [,QueryParams] [,Options]);
Cela doit normalement retourner un tableau d’objets JSON à partir de votre source de données. Un des avantages de l’utilisation d’un connecteur de l’emploi d’un fournisseur MBaaS est que ces connecteurs fournissent un moyen de découvrir tous les objets dans votre magasin de données afin de pouvoir simplement découvrir toutes les listes SharePoint et sélectionnez ceux que vous voulez fournir l’accès à l’application mobile. Vous pouvez également filtrer et organiser les champs renvoyés par SharePoint à juste ceux qui est nécessaires dans l’application mobile afin que les grandes quantités de jeux de données ne sont pas envoyées à l’appareil mobile lorsque seule une petite portion peut être réellement utile à l’application. Là encore, les filtres peuvent être appliqués sans avoir à écrire de code personnalisé, une proposition de valeur énorme pour les développeurs mobiles. Sans un MBaaS fournissant une telle fonctionnalité définie, la charge entière de filtrage et orchestrer les données se résume à l’application mobile (ce qui signifie que la consommation de bande passante et la batterie supérieure sur l’appareil : jamais une bonne expérience de l’utilisateur mobile) ou à l’aide d’un script côté serveur dont vous avez besoin pour écrire, héberger quelque part et gérer (qui signifie que les travaux en cours et maintenance pour vous). L’entrée QueryParams à la méthode dans la ligne de code précédente vous permet de passer de paramètres de requête pour permettre la recherche et le filtrage d’enregistrements en fonction des besoins et des entrées de l’utilisateur.
Généralement, une plate-forme MBaaS fournit également les magasins de données et de fichier intégrées à la plate-forme elle-même, afin que les applications qui n’ont pas leur propre source de données peuvent utiliser les données MBaaS intégrées pour stocker et consommer des données.
Données hors connexion
Simplement rendre les données disponibles pour l’utilisation en mode hors connexion est relativement simple avec l’approche DIY. Il vous suffit est de stocker les données sur le périphérique local, dans le stockage local ou dans un magasin de données comme SQLite, et de le lire à partir de là, lorsque l’utilisateur tente d’accéder à ces données dans votre application.
Toutefois, il n’est pas si facile d’activer la modification hors connexion des données existantes ou ajouter de nouvelles données et puis de le synchroniser avec le serveur tout en prenant soin de conflits qui peuvent se produire au cours du processus. Comme toute personne qui a déjà essayé d’implémenter le code de résolution de conflit vous indiquera, il n’est pas le plus amusant chose à faire. Vous devez vérifier les entités qui ont été modifiées en local et qui ont été modifié sur le serveur en même temps, puis déterminer quels attributs de chaque entité ont été modifiés et, si les mêmes attributs de la même entité ont été modifiés sur le client et le serveur, décidez quelle modification a la priorité qu’Enregistrer en tant que la valeur d’enregistrement.
À l’aide d’un kit de développement logiciel client à partir d’un fournisseur de MBaaS devez en faire beaucoup plus facile activer la consommation des données hors connexion dans votre application. À l’aide de l’exemple de la consommation des données à partir de la section précédente, vous pouvez simplement transmettre certaines valeurs d’option à l’appel, comme suit :
MBaaS.data.get(NameofDataCollection [,QueryParams] , Data.Offline, Data.EncryptFull);
Activer dans ce code, stockage des données hors connexion sur le périphérique, ainsi que le chiffrement des données. Le stockage des données pour l’utilisation en mode hors connexion dans le Kit de développement logiciel varie d’un fournisseur, mais l’implémentation de qui ne doivent pas affecter l’interaction avec le SDK MBaaS. Le Kit de développement se chargera de la complexité implémentation hors connexion pour vous. Mieux encore, l’activation de chiffrement doit être comme facile et simplement implique la configuration d’une option. Cela rend les données hors connexion magasin sécurisé, une condition essentielle pour la plupart des applications d’entreprise. Le SDK MBaaS automatiquement déchiffre les données d’interaction de l’utilisateur ou afficher à l’écran et chiffre les données entrées par l’utilisateur avant de les stocker sur le périphérique. Le Kit de développement logiciel occupe généralement de l’activation de la modification hors connexion et l’ajout de nouvelles données, également. Cependant, pour que cela fonctionne comme prévu, les systèmes back-end doivent avoir LastUpdatedTime implémentée pour chaque enregistrement. De même, la configuration des options supplémentaires pour la résolution des conflits détermine si les modifications sur le client ou le serveur win lorsqu’un enregistrement est mis à jour simultanément sur les deux côtés.
Notifications push
Configuration des notifications push pour un projet personnalisé peut être un défi. Comme indiqué dans Figure 1, plusieurs étapes doivent avoir lieu pour un canal de notification push réussi à paramétrer et à envoyer une notification de transmission. (Voir bit.ly/UWPPush pour plus d’informations.)
- L’application universelle Windows Platform (UWP) demande un canal de notification push à partir du système d’exploitation.
- Un nouveau canal de notification est créé par le Service de Notification Windows (WNS) et retourné au dispositif appelant sous la forme d’une ressource identificateur URI (Uniform).
- Le canal de notification URI est retourné par Windows pour votre application.
- Votre application envoie l’URI à votre propre service cloud, où il est stocké pour pouvoir accéder à l’URI lorsque vous envoyez des notifications.
- Lorsque votre service cloud a une notification à envoyer, elle informe WNS à l’aide de l’URI inscrit précédemment. Pour cela, vous devez émettre une demande HTTP POST, y compris la charge utile de notification via Secure Sockets Layer (SSL).
- WNS reçoit la demande et l’achemine la notification à l’appareil approprié.
Figure 1 flux pour configurer et envoyer des Notifications Push
En outre, vous devez demander un canal chaque fois que l’application est lancée car les URI de canal peut expirer et n’est pas garantie un canal précédent QU'URI sera toujours valide. Si le canal retourné URI est différent de l’URI que vous utilisez, vous devez mettre à jour l’URI de votre service cloud. Vous devez également mapper l’URI de canal à l’ID de l’utilisateur peut mettre à jour l’URI de canal approprié sur votre serveur.
N’importe quelle plateforme MBaaS bonne offre des moyens pour simplifier la configuration des notifications push. N’oubliez pas les étapes que vous venez de le voir pour l’envoi d’une notification de transmission réussie à votre application UWP ? Maintenant examinons Figure 2, qui indique que vous n’avez à faire si vous utilisez une plate-forme MBaaS.
Figure 2 complexités liées aux notifications Push prises en charge par MBaaS
Comme vous pouvez le voir, MBaaS masque la complexité de la configuration, la gestion et l’envoi de notifications push aux utilisateurs. Tout ceci est géré avec un seul appel effectué à l’aide du Kit de développement logiciel côté client :
MBaaS.registerForPush();
et écrire la logique métier côté serveur au sein de la plate-forme MBaaS qui détermine quand envoyer une notification push et appelle la méthode prédéfinie qui envoie la notification push aux utilisateurs appropriés.
Serveur de fichiers
Suivant le soi-même chemin signifie que vous devez héberger et de gérer votre propre serveur de fichiers pour permettre aux utilisateurs de prendre une photo de leur appareil et le télécharger sur le serveur et également gérez l’accès utilisateur à ces fichiers pour un utilisateur ne peut pas accéder aux fichiers d’un autre utilisateur. En outre, vous devez gérer la disponibilité du serveur, ainsi que l’évolutivité, performances et mises à jour de sécurité.
Avec une plate-forme MBaaS, vous ne devrez probablement implémenter quoi que ce soit pour être en mesure d’héberger des fichiers dans le cloud. L’une des fonctionnalités des plateformes de MBaaS est l’accès à un magasin de fichiers prêts à l’emploi. Vous obtenez un magasin de fichiers entièrement reposant sur le CDN pour héberger tous les types de fichiers courants : PDF, images, vidéos, documents office et autres. Comme avec les autres fonctionnalités, il vous suffit est apporter un simple appel à une méthode dans le SDK MBaaS pour travailler avec des fichiers stockés dans le cloud. L’API de fichiers vous permet de télécharger, le téléchargement et les fichiers de flux de données vers et depuis le magasin de fichiers, à l’aide des appels tels que :
MBaaS.File.upload(FileName);
MBaaS.File.download(FileName or FileID);
Cela élimine les problèmes de gestion d’un serveur de fichiers volumineux (selon le nombre et la taille des fichiers stockés), y compris l’extension et de réduction du stockage en fonction des besoins à un moment donné et la gestion de la disponibilité et la latence d’accès au fichier.
Autres fonctionnalités MBaaS
J’ai décrit l’ensemble des fonctionnalités de l’exemple d’application au début de cet article, mais j’aimerais également mettre en évidence quelques autres fonctionnalités de plateforme MBaaS peut faciliter le développement d’applications :
Logique métier côté serveur permet d’exécuter importante sur le serveur de traitement plutôt que consommation de puissance sur le périphérique client. Il vous permet également de filtrer les données envoyées à partir de la source de données pour envoyer uniquement ce qui est nécessaire sur le périphérique mobile économiser la bande passante de l’utilisateur. En outre, vous pouvez intercepter les appels entrent via, vers et à partir de la plate-forme MBaaS.
La mise en cache côté serveur permet des scénarios UX seconde. Traditionnel, sources de données d’entreprise prennent généralement plusieurs secondes pour répondre à une requête, mais les utilisateurs mobiles attendent une réponse plus rapide et si le chargement d’une application prend trop de temps, ils simplement désinstaller l’application et accédez à un concurrent. Avec la fonctionnalité de mise en cache côté serveur, les données à partir de la source de données d’entreprise peuvent être mises en cache dans la plateforme MBaaS pour une réponse rapide aux demandes de l’application mobile et le cache peut être mis à jour en mode silencieux à partir de la source de données d’origine en arrière-plan.
Synthèse
Approches soi-même et MBaaS ont une place dans le développement d’applications. Les avantages de l’utilisation d’une plate-forme MBaaS sont évidents, mais dans certains cas, ça avec une approche personnalisée peut être judicieux. Instances de ce type incluent des projets de développement application uniques qui ont déjà tous les services nécessaires en place pour se connecter aux sources de données et des identités. Pour les scénarios où les connexions de service dans ces sources de données et des identités n’ont pas été encore générées et doivent être consommé à partir de plusieurs applications, une plate-forme MBaaS peut accélérer le développement mobile en fournissant des fonctionnalités plus complexes d’intégration back-end prêtes à l’emploi. À l’aide d’une plate-forme MBaaS vous pouvez vous concentrer sur votre application UX plutôt que soucis liés à l’intégration de données et sources d’identité, le chiffrement, implémentation hors connexion, la résolution des conflits, les paramètres de notification push et autres basic composants essentiels, mais d’applications mobiles.
Au final, il est l’abstraction que fournit une plateforme MBaaS est l’avantage, qui vous permet de modifier vos données back-end et les sources d’identité aussi souvent que vous le souhaitez. Vous pouvez également modifier votre logique métier côté serveur sans avoir à réécrire une seule ligne de code dans votre application. Les kits de développement mobiles la plate-forme MBaaS fournissent un travail avec cette abstraction pour garder votre application en cours d’exécution et enregistrer à partir de la mise à jour, des tests (y compris les unités, intégration et tests de régression), et déploiement de l’application et en attente pour stockent à nouveau pour approbation !
L’inconvénient est que l’utilisation d’une plate-forme MBaaS peut rendre plus difficile à modifier les plateformes, comme les implémentations des connecteurs sont transparents pour l’utilisateur. Dans une approche DIY, vous possédez le code pour tous les connecteurs pour faciliter davantage le personnaliser en fonction de besoins futurs.
MBaaS offre des réductions de coût significatives lors de la création d’applications mobiles, en termes de temps et d’efforts et du point de vue de la maintenance continue, la sécurité et l’entretien des services et des serveurs impliqués.
Paras Wadehraest un architecte logiciel qui résout les problèmes tout en rendant les applications fonctionnant sur le Web, les plateformes de bureau et mobiles. Il a d’expérience en développement de toutes les principales plateformes mobiles, notamment iOS, Android et Windows. Il écrit du code en c#, Node.js, JavaScript, SQL et Swift pour nommer un peu. Wadehra est MVP Microsoft dans le développement Windows. Il participe à divers événements et conférences et peut être contacté sur Twitter : @ParasWadehra et sur LinkedIn.
Remercie les experts techniques suivants d'avoir relu cet article : Dave hermit (associé Press limité, Royaume-Uni), Kurt Monnier (Kinvey, Inc.) et Arun Nagarajan (Uber)
Hermit Dave est un développeur Windows avec d’expérience plus de 15 ans fonctionnent sur l’entreprise et consommateur de l’espace.
Kurt Monnier, directeur des Solutions et vécue Kinvey, Inc., a aidé les clients d’entreprise créer des applications mobiles depuis 2007.
Arun Nagarajan est un responsable de l’ingénierie chez colossaux.