Anúncio
Anúncio

Mais conteúdo relacionado

Similar a Mobile-Chp4 côté serveur(20)

Anúncio
Anúncio

Mobile-Chp4 côté serveur

  1. Chp4 : Développement Mobile Côté Serveur Sécurité, Notification, Synchronisation… Conception et Développement d’Applications Mobiles GL4 (Option Mobile) - 2016 Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 1
  2. 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. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 2 Besoin et Utilité
  3. 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. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 3 Types d’Applications nécessitant une partie serveur
  4. Développement Côté Serveur •  Jeux à un seul joueur •  Éditeurs (audio, texte, vidéo, photo) •  Calculatrices •  Convertisseurs •  eReaders •  … Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 4 Types d’Applications NE nécessitant PAS une partie serveur
  5. 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. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 5 1. Éviter la surcharge de l’appareil
  6. 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. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 6 2. Mise à Jour
  7. 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. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 7 3. Connexion entre les appareils
  8. 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. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 8 4. Conserver les données de manière sécurisée & synchronisée
  9. 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. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 9 1. Bases de Données
  10. 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. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 10 1. Bases de Données : Gros Volumes?
  11. 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. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 11 2. Sécurité
  12. 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. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 12 3. Notifications
  13. Modules en Backend Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 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
  14. Modules en Backend Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 14 3. Notifications : Envoi Serveur envoie le message au mediator avec le registration ID Envoi du message au device 1 2
  15. 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. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 15 4. Gestion des Utilisateurs
  16. 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. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 16 5. Gestion des Fichiers
  17. 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. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 17 6. Code Serveur
  18. 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. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 18 To Cloud or not to Cloud?
  19. 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. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 19 BAAS (ou MBAAS)
  20. Développement Côté Serveur Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 20 BAAS (ou MBAAS) BAAS
  21. 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. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 21 Sites Web & Livres
Anúncio