21
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

Mobile-Chp4 côté serveur

Embed Size (px)

Citation preview

Page 1: Mobile-Chp4 côté serveur

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

Page 2: Mobile-Chp4 côté serveur

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é

Page 3: Mobile-Chp4 côté serveur

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

Page 4: Mobile-Chp4 côté 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

Page 5: Mobile-Chp4 côté 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

Page 6: Mobile-Chp4 côté serveur

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

Page 7: Mobile-Chp4 côté serveur

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

Page 8: Mobile-Chp4 côté serveur

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

Page 9: Mobile-Chp4 côté serveur

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

Page 10: Mobile-Chp4 côté serveur

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?

Page 11: Mobile-Chp4 côté serveur

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é

Page 12: Mobile-Chp4 côté serveur

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

Page 13: Mobile-Chp4 côté serveur

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

Page 14: Mobile-Chp4 côté serveur

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

Page 15: Mobile-Chp4 côté serveur

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

Page 16: Mobile-Chp4 côté serveur

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

Page 17: Mobile-Chp4 côté serveur

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

Page 18: Mobile-Chp4 côté 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?

Page 19: Mobile-Chp4 côté serveur

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)

Page 20: Mobile-Chp4 côté serveur

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

Page 21: Mobile-Chp4 côté serveur

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