Upload
lilia-sfaxi
View
644
Download
0
Embed Size (px)
Citation preview
Chp4 : Développement Mobile Côté Serveur Sécurité, Notification, Synchronisation…
Conception et Développement d’Applications Mobiles GL4 (Option Mobile) - 2016
Dr. L i l i a SFAXI www. l i l i asfax i .wix .com /l i l i asfax i
S l ide 1
Développement Côté Serveur
• Pour une application mobile, le côté serveur est simplement un programme logiciel s’exécutant sur un serveur distant
• Besoin d’un développement côté serveur pour: • Stocker et assurer l’accès des utilisateurs aux données communes • Assurer l’interaction entre appareils • Faire appel à des services, informations et fonctionnalités non disponible ou
difficilement réalisables sur les appareils mobiles • Traitement de données et d’images • Stockage • Calculs complexes • Synchronisation
• Sécurité, notifications…
Dr. L i l i a SFAXI www. l i l i asfax i .wix .com /l i l i asfax i
S l ide 2
Besoin et Utilité
Développement Côté Serveur
• Applications échangeant des données entre les appareils • Systèmes de recherche et de réservation • Applications de Blogging • Outils financiers • Outils d’organisation • Applications de nouvelles, journaux ou flux RSS • Applications de shopping et de coupons de réductions (deals) • Applications sociales • Applications de reconnaissance vocale ou fonctionnalités média
avancées
Dr. L i l i a SFAXI www. l i l i asfax i .wix .com /l i l i asfax i
S l ide 3
Types d’Applications nécessitant une partie serveur
Développement Côté Serveur
• Jeux à un seul joueur • Éditeurs (audio, texte, vidéo, photo) • Calculatrices • Convertisseurs • eReaders • …
Dr. L i l i a SFAXI www. l i l i asfax i .wix .com /l i l i asfax i
S l ide 4
Types d’Applications NE nécessitant PAS une partie serveur
Avantages du Développement Côté Serveur
• Il est possible d’améliorer les performances d’une application mobile en déplaçant les traitements les plus complexes vers le serveur
• Gain en : • Mémoire • Vitesse de traitement • Espace disque
Dr. L i l i a SFAXI www. l i l i asfax i .wix .com /l i l i asfax i
S l ide 5
1. Éviter la surcharge de l’appareil
Avantages du Développement Côté Serveur
• Plusieurs applications voient leurs données régulièrement modifiées • Données de géolocalisation, par exemple
• Un accès off-line des données nécessite ainsi que l’application soit mise à jour très fréquemment pour prendre en considération les nouvelles données • Problème de fréquence des mises à jour: en moyenne, les utilisateurs
mettent à jour leurs applications tous les 6 mois • Gestion des mises à jour pour tous les types de systèmes
Dr. L i l i a SFAXI www. l i l i asfax i .wix .com /l i l i asfax i
S l ide 6
2. Mise à Jour
Avantages du Développement Côté Serveur
• Plusieurs applications nécessitent une connexion entre deux utilisateurs ou plus • Jeux en ligne, chat, réseaux sociaux…
• Le partage direct via Wifi ou Bluetooth est alors requis, nécessitant une proximité des utilisateurs d’à peu près 100m pour le Wifi et 10m pour le Bluetooth
• Besoin d’une partie serveur qui synchronise les connexions et gère l’historique
Dr. L i l i a SFAXI www. l i l i asfax i .wix .com /l i l i asfax i
S l ide 7
3. Connexion entre les appareils
Avantages du Développement Côté Serveur
• Certaines données (personnelles, à caractère financier ou privé) doivent être conservées de manière sécurisée • Les stocker en local peut poser des problèmes de sécurité en cas de perte
ou de problème de l’appareil.
• D’autres données doivent être continuellement stockées et synchronisées avec plusieurs appareils • Applications de fitness, calendrier, gestion du budget…
Dr. L i l i a SFAXI www. l i l i asfax i .wix .com /l i l i asfax i
S l ide 8
4. Conserver les données de manière sécurisée & synchronisée
Modules en Backend
• Une base de données hébergée côté serveur pour stocker vos données • Communication avec la base de données peut se faire:
• Directement à partir du device client, généralement en utilisant des services web
• En passant par un serveur d’application pour des traitements métiers, filtrage, sécurité…
• Il est possible, même recommandé, de synchroniser les données de la base distante avec des données en local, pour permettre un accès offline • Synchronisation manuelle:
• Avec une base de données interne, comme SQLite • Avec une structure de stockage dans le navigateur ou sur le device, comme HTML5
Web Storage • Utilisation de bases de données en backend offrant une synchronisation
automatique • Couchbase Mobile, Azure Mobile Services, Cognito, Firebase…
Dr. L i l i a SFAXI www. l i l i asfax i .wix .com /l i l i asfax i
S l ide 9
1. Bases de Données
Modules en Backend
• Les bases de données hébergées sur un serveur distant ont cet avantage de supporter une taille de données volumineuse
• Problème: Comment faire si on veut traiter ces données sur le device du client? • Le transfert des données et leur stockage en intégralité sur l’appareil, ainsi
que leur traitement et filtrage, peuvent s’avérer coûteux, parfois même impossibles
• Bonne pratique: faire en sorte que le plus gros du traitement soit fait côté serveur, et seules les données traitées sont envoyées au client
Dr. L i l i a SFAXI www. l i l i asfax i .wix .com /l i l i asfax i
S l ide 10
1. Bases de Données : Gros Volumes?
Modules en Backend
• Mesures de sécurité pour l’accès aux données critiques • Cryptographie: Chiffrement/Signature • Transport sécurisé • Authentification • Gestion des rôles et contrôle d’accès • Gestion des fautes, haute disponibilité
• Les mécanismes de sécurité utilisés dépendent du protocole de communication utilisé • Par exemple, pour SOAP, utiliser WSSecurity, pour REST, https/oAuth/OpenID…
• Penser à consulter le Mobile Security Project de OWASP • https://www.owasp.org/index.php/OWASP_Mobile_Security_Project
Dr. L i l i a SFAXI www. l i l i asfax i .wix .com /l i l i asfax i
S l ide 11
2. Sécurité
Modules en Backend
• Envoi de notifications aux utilisateurs/devices souscris • Même quand l’application n’est pas en exécution
• Deux façons de faire: • Développer le module de notification dans le serveur lui-même
• Gestion des connexions aux appareils, leur enregistrement, leur détection • Gestion de la souscription/désinscription à un évènement, l’envoi des
notifications
• Utiliser un mediator qui fera le travail pour toi, notamment: • GCM: Google Cloud Messaging pour les appareils Android • APNS: Apple Push Notification Service pour les appareils Apple • MPNS: Microsoft Push Notification Service pour les appareils Microsoft
Dr. L i l i a SFAXI www. l i l i asfax i .wix .com /l i l i asfax i
S l ide 12
3. Notifications
Modules en Backend
Dr. L i l i a SFAXI www. l i l i asfax i .wix .com /l i l i asfax i
S l ide 13
3. Notifications : Inscription
L’ appareil s’inscrit au mediator (envoi du sender ID et app ID)
Inscription Réussie : Envoi du registration ID
Envoi du registration ID au serveur
1
2
3
Modules en Backend
Dr. L i l i a SFAXI www. l i l i asfax i .wix .com /l i l i asfax i
S l ide 14
3. Notifications : Envoi
Serveur envoie le message au mediator avec le registration ID
Envoi du message au device
1
2
Modules en Backend
• Gestion des opérations sur les utilisateurs de l’application • Création de compte • Login • Reset Password • Gestion du profil
• Support possible des identités sociales (Google, Facebook, Twitter..) • Permettre l’accès à partir de l’application et la modification de détails
d’un profil d’utilisateur
Dr. L i l i a SFAXI www. l i l i asfax i .wix .com /l i l i asfax i
S l ide 15
4. Gestion des Utilisateurs
Modules en Backend
• Stockage et gestion des fichiers textes, vidéos de grandes taille • Gestion de l’arborescence • Gestion du versionning • Accès en lecture/écriture, téléchargement, upload • Duplication des fichiers pour éviter les éventuelles pertes • Gestion des droits d’accès aux fichiers (publics, privés ou accès
sélectif )
Dr. L i l i a SFAXI www. l i l i asfax i .wix .com /l i l i asfax i
S l ide 16
5. Gestion des Fichiers
Modules en Backend
• Création de modules custom dans le langage de votre choix • En général pour cibler des traitements lourds ou complexes
• Traitement d’images et multimédia • Business Analytics • Applications 3D, réalité virtuelle, augmentée…
• Orchestration de services ou Mashup • Minimiser les va-et-vient entre le côté client et côté serveur • En une seule instruction du client, déclencher une série de traitements côté
serveur, gérés par un module d’orchestration
Dr. L i l i a SFAXI www. l i l i asfax i .wix .com /l i l i asfax i
S l ide 17
6. Code Serveur
Développement Côté Serveur
• L’ une des questions principales à traiter quand on définit nos backend services : doit-on les réaliser : • On-Premise (en local ou hébergé chez un tiers) • Clef en main
• Solution Clef en Main (as a service) • Utiliser des services mis à disposition (base de données, gestion des
utilisateurs, fichiers…) • Exemple: Firebase
• Solution On-Premise: deux choix • Tout définir from scratch: flexibilité et adaptabilité aux besoins
• Installation et administration du service à la charge de l’entreprise elle-même • Mais… difficulté d’implémentation, de maintenance, d’expertise
• Utiliser des solutions backend prêtes à l’emploi
Dr. L i l i a SFAXI www. l i l i asfax i .wix .com /l i l i asfax i
S l ide 18
To Cloud or not to Cloud?
Développement Côté Serveur
• MBAAS (Mobile Backend As A Service) connu aussi sous le nom de BAAS • Modèle pour fournir aux développeurs un lien vers des applications et
APIs en backend en fournissant : • Gestion des utilisateurs, notifications push,…
• Fournir soit une API soit un SDK (dans un ou plusieurs langages de programmation)
• Plusieurs frameworks connus pour configurer une solution BAAS hébergée sur le cloud • Firebase, Usergrid, deployd, appery.io, Telerik, BAASBOX
• Certaines solutions offrent un MBAAS à installer on-Premise • Build.io, Kinvey...
Dr. L i l i a SFAXI www. l i l i asfax i .wix .com /l i l i asfax i
S l ide 19
BAAS (ou MBAAS)
Développement Côté Serveur
Dr. L i l i a SFAXI www. l i l i asfax i .wix .com /l i l i asfax i
S l ide 20
BAAS (ou MBAAS)
BAAS
Références
• Igor Chertnekov, What is The “Server‐side” of Mobile Applications, and Why Do I Need It?https://hirerussians.wordpress.com/2012/11/30/the-server-side-of-mobile-applications/
• Tom Nolle, Building desktop versus building mobile applications: More than the device is different. http://searchsoa.techtarget.com/tip/How-to-properly-build-the-server-side-of-mobility-applications
Dr. L i l i a SFAXI www. l i l i asfax i .wix .com /l i l i asfax i
S l ide 21
Sites Web & Livres