SlideShare ist ein Scribd-Unternehmen logo
1 von 21
Downloaden Sie, um offline zu lesen
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
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é
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
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
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
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
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
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
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
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?
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é
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
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
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
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
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
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
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?
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)
Développement Côté Serveur
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 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. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 21
Sites Web & Livres

Weitere ähnliche Inhalte

Was ist angesagt?

Déploiement d'Office : fini Clark Kent, devenez le Superman de l'IT !
Déploiement d'Office : fini Clark Kent, devenez le Superman de l'IT !Déploiement d'Office : fini Clark Kent, devenez le Superman de l'IT !
Déploiement d'Office : fini Clark Kent, devenez le Superman de l'IT !Microsoft Décideurs IT
 
Retour d'expérience Bouygues Telecom : Analyse BI à l'aide d'une appliance SQ...
Retour d'expérience Bouygues Telecom : Analyse BI à l'aide d'une appliance SQ...Retour d'expérience Bouygues Telecom : Analyse BI à l'aide d'une appliance SQ...
Retour d'expérience Bouygues Telecom : Analyse BI à l'aide d'une appliance SQ...Microsoft Technet France
 
Comment Bien Choisir un CMS pour les Administrations et Collectivites Locales...
Comment Bien Choisir un CMS pour les Administrations et Collectivites Locales...Comment Bien Choisir un CMS pour les Administrations et Collectivites Locales...
Comment Bien Choisir un CMS pour les Administrations et Collectivites Locales...FranceNumerique
 
Comment publier vos applications Web avec Windows Server 2012 R2
Comment publier vos applications Web avec Windows Server 2012 R2 Comment publier vos applications Web avec Windows Server 2012 R2
Comment publier vos applications Web avec Windows Server 2012 R2 Microsoft Technet France
 
Liferay Maroc Meetup 09-04-2014
Liferay Maroc Meetup 09-04-2014 Liferay Maroc Meetup 09-04-2014
Liferay Maroc Meetup 09-04-2014 Yousri Abdallah
 
Tk02 Google Wave Et Html5 Fr
Tk02 Google Wave Et Html5 FrTk02 Google Wave Et Html5 Fr
Tk02 Google Wave Et Html5 FrValtech
 
Office 365 pour l'Education - les enjeux en terme de sécurité
Office 365 pour l'Education  - les enjeux en terme de sécurité Office 365 pour l'Education  - les enjeux en terme de sécurité
Office 365 pour l'Education - les enjeux en terme de sécurité Microsoft Décideurs IT
 
Gouvernance des projets SharePoint 2013
Gouvernance des projets SharePoint 2013Gouvernance des projets SharePoint 2013
Gouvernance des projets SharePoint 2013Alexandre David
 
P2 éléments graphiques android
P2 éléments graphiques androidP2 éléments graphiques android
P2 éléments graphiques androidLilia Sfaxi
 
System Center 2012 R2 et Windows 8.1 : Quoi de neuf pour le BYOD ?
System Center 2012 R2 et Windows 8.1 : Quoi de neuf pour le BYOD ? System Center 2012 R2 et Windows 8.1 : Quoi de neuf pour le BYOD ?
System Center 2012 R2 et Windows 8.1 : Quoi de neuf pour le BYOD ? Microsoft Technet France
 
Etat de l'art (et roadmap) de la BI mobile Microsoft
Etat de l'art (et roadmap) de la BI mobile MicrosoftEtat de l'art (et roadmap) de la BI mobile Microsoft
Etat de l'art (et roadmap) de la BI mobile MicrosoftMicrosoft Décideurs IT
 

Was ist angesagt? (11)

Déploiement d'Office : fini Clark Kent, devenez le Superman de l'IT !
Déploiement d'Office : fini Clark Kent, devenez le Superman de l'IT !Déploiement d'Office : fini Clark Kent, devenez le Superman de l'IT !
Déploiement d'Office : fini Clark Kent, devenez le Superman de l'IT !
 
Retour d'expérience Bouygues Telecom : Analyse BI à l'aide d'une appliance SQ...
Retour d'expérience Bouygues Telecom : Analyse BI à l'aide d'une appliance SQ...Retour d'expérience Bouygues Telecom : Analyse BI à l'aide d'une appliance SQ...
Retour d'expérience Bouygues Telecom : Analyse BI à l'aide d'une appliance SQ...
 
Comment Bien Choisir un CMS pour les Administrations et Collectivites Locales...
Comment Bien Choisir un CMS pour les Administrations et Collectivites Locales...Comment Bien Choisir un CMS pour les Administrations et Collectivites Locales...
Comment Bien Choisir un CMS pour les Administrations et Collectivites Locales...
 
Comment publier vos applications Web avec Windows Server 2012 R2
Comment publier vos applications Web avec Windows Server 2012 R2 Comment publier vos applications Web avec Windows Server 2012 R2
Comment publier vos applications Web avec Windows Server 2012 R2
 
Liferay Maroc Meetup 09-04-2014
Liferay Maroc Meetup 09-04-2014 Liferay Maroc Meetup 09-04-2014
Liferay Maroc Meetup 09-04-2014
 
Tk02 Google Wave Et Html5 Fr
Tk02 Google Wave Et Html5 FrTk02 Google Wave Et Html5 Fr
Tk02 Google Wave Et Html5 Fr
 
Office 365 pour l'Education - les enjeux en terme de sécurité
Office 365 pour l'Education  - les enjeux en terme de sécurité Office 365 pour l'Education  - les enjeux en terme de sécurité
Office 365 pour l'Education - les enjeux en terme de sécurité
 
Gouvernance des projets SharePoint 2013
Gouvernance des projets SharePoint 2013Gouvernance des projets SharePoint 2013
Gouvernance des projets SharePoint 2013
 
P2 éléments graphiques android
P2 éléments graphiques androidP2 éléments graphiques android
P2 éléments graphiques android
 
System Center 2012 R2 et Windows 8.1 : Quoi de neuf pour le BYOD ?
System Center 2012 R2 et Windows 8.1 : Quoi de neuf pour le BYOD ? System Center 2012 R2 et Windows 8.1 : Quoi de neuf pour le BYOD ?
System Center 2012 R2 et Windows 8.1 : Quoi de neuf pour le BYOD ?
 
Etat de l'art (et roadmap) de la BI mobile Microsoft
Etat de l'art (et roadmap) de la BI mobile MicrosoftEtat de l'art (et roadmap) de la BI mobile Microsoft
Etat de l'art (et roadmap) de la BI mobile Microsoft
 

Andere mochten auch

Chp5 - Applications Android
Chp5 - Applications AndroidChp5 - Applications Android
Chp5 - Applications AndroidLilia Sfaxi
 
eServices-Chp6: WOA
eServices-Chp6: WOAeServices-Chp6: WOA
eServices-Chp6: WOALilia Sfaxi
 
Software Engineering - chp8- deployment
Software Engineering - chp8- deploymentSoftware Engineering - chp8- deployment
Software Engineering - chp8- deploymentLilia Sfaxi
 
eServices-Chp3: Composition de Services
eServices-Chp3: Composition de ServiceseServices-Chp3: Composition de Services
eServices-Chp3: Composition de ServicesLilia Sfaxi
 
P6 composants avancés
P6 composants avancésP6 composants avancés
P6 composants avancésLilia Sfaxi
 
Android-Tp5 : web services
Android-Tp5 : web servicesAndroid-Tp5 : web services
Android-Tp5 : web servicesLilia Sfaxi
 
eServices-Chp4: ESB
eServices-Chp4: ESBeServices-Chp4: ESB
eServices-Chp4: ESBLilia Sfaxi
 
Android-Tp4: stockage
Android-Tp4: stockageAndroid-Tp4: stockage
Android-Tp4: stockageLilia Sfaxi
 
Android-Tp1: éléments graphiques de base et intents
Android-Tp1: éléments graphiques de base et intentsAndroid-Tp1: éléments graphiques de base et intents
Android-Tp1: éléments graphiques de base et intentsLilia Sfaxi
 
Android-Tp3: fragments et menus
Android-Tp3: fragments et menusAndroid-Tp3: fragments et menus
Android-Tp3: fragments et menusLilia Sfaxi
 
P1 introduction à android
P1 introduction à androidP1 introduction à android
P1 introduction à androidLilia Sfaxi
 
Android-Tp2: liste et adaptateurs
Android-Tp2: liste et adaptateursAndroid-Tp2: liste et adaptateurs
Android-Tp2: liste et adaptateursLilia Sfaxi
 
Systèmes d'Exploitation - chp4-gestion disque
Systèmes d'Exploitation - chp4-gestion disqueSystèmes d'Exploitation - chp4-gestion disque
Systèmes d'Exploitation - chp4-gestion disqueLilia Sfaxi
 
Systèmes d'Exploitation - chp5-gestion fichiers
Systèmes d'Exploitation - chp5-gestion fichiersSystèmes d'Exploitation - chp5-gestion fichiers
Systèmes d'Exploitation - chp5-gestion fichiersLilia Sfaxi
 
Systèmes d'Exploitation - chp3-gestion mémoire
Systèmes d'Exploitation - chp3-gestion mémoireSystèmes d'Exploitation - chp3-gestion mémoire
Systèmes d'Exploitation - chp3-gestion mémoireLilia Sfaxi
 
Sécurité des Systèmes Répartis- Partie 1
Sécurité des Systèmes Répartis- Partie 1 Sécurité des Systèmes Répartis- Partie 1
Sécurité des Systèmes Répartis- Partie 1 Lilia Sfaxi
 
eServices-Tp3: esb
eServices-Tp3: esbeServices-Tp3: esb
eServices-Tp3: esbLilia Sfaxi
 
eServices-Tp5: api management
eServices-Tp5: api managementeServices-Tp5: api management
eServices-Tp5: api managementLilia Sfaxi
 
eServices-Tp4: esb++
eServices-Tp4: esb++eServices-Tp4: esb++
eServices-Tp4: esb++Lilia Sfaxi
 

Andere mochten auch (20)

Chp5 - Applications Android
Chp5 - Applications AndroidChp5 - Applications Android
Chp5 - Applications Android
 
eServices-Chp6: WOA
eServices-Chp6: WOAeServices-Chp6: WOA
eServices-Chp6: WOA
 
Software Engineering - chp8- deployment
Software Engineering - chp8- deploymentSoftware Engineering - chp8- deployment
Software Engineering - chp8- deployment
 
eServices-Chp3: Composition de Services
eServices-Chp3: Composition de ServiceseServices-Chp3: Composition de Services
eServices-Chp3: Composition de Services
 
P6 composants avancés
P6 composants avancésP6 composants avancés
P6 composants avancés
 
Android-Tp5 : web services
Android-Tp5 : web servicesAndroid-Tp5 : web services
Android-Tp5 : web services
 
eServices-Chp4: ESB
eServices-Chp4: ESBeServices-Chp4: ESB
eServices-Chp4: ESB
 
Android-Tp4: stockage
Android-Tp4: stockageAndroid-Tp4: stockage
Android-Tp4: stockage
 
Android-Tp1: éléments graphiques de base et intents
Android-Tp1: éléments graphiques de base et intentsAndroid-Tp1: éléments graphiques de base et intents
Android-Tp1: éléments graphiques de base et intents
 
Android-Tp3: fragments et menus
Android-Tp3: fragments et menusAndroid-Tp3: fragments et menus
Android-Tp3: fragments et menus
 
P1 introduction à android
P1 introduction à androidP1 introduction à android
P1 introduction à android
 
Android-Tp2: liste et adaptateurs
Android-Tp2: liste et adaptateursAndroid-Tp2: liste et adaptateurs
Android-Tp2: liste et adaptateurs
 
P5 stockage
P5 stockageP5 stockage
P5 stockage
 
Systèmes d'Exploitation - chp4-gestion disque
Systèmes d'Exploitation - chp4-gestion disqueSystèmes d'Exploitation - chp4-gestion disque
Systèmes d'Exploitation - chp4-gestion disque
 
Systèmes d'Exploitation - chp5-gestion fichiers
Systèmes d'Exploitation - chp5-gestion fichiersSystèmes d'Exploitation - chp5-gestion fichiers
Systèmes d'Exploitation - chp5-gestion fichiers
 
Systèmes d'Exploitation - chp3-gestion mémoire
Systèmes d'Exploitation - chp3-gestion mémoireSystèmes d'Exploitation - chp3-gestion mémoire
Systèmes d'Exploitation - chp3-gestion mémoire
 
Sécurité des Systèmes Répartis- Partie 1
Sécurité des Systèmes Répartis- Partie 1 Sécurité des Systèmes Répartis- Partie 1
Sécurité des Systèmes Répartis- Partie 1
 
eServices-Tp3: esb
eServices-Tp3: esbeServices-Tp3: esb
eServices-Tp3: esb
 
eServices-Tp5: api management
eServices-Tp5: api managementeServices-Tp5: api management
eServices-Tp5: api management
 
eServices-Tp4: esb++
eServices-Tp4: esb++eServices-Tp4: esb++
eServices-Tp4: esb++
 

Ähnlich wie Mobile-Chp4 côté serveur

Cloud computing cours in power point chap
Cloud computing cours in power point chapCloud computing cours in power point chap
Cloud computing cours in power point chapaichafarahsouelmi
 
Déploiment des tablettes et gestion du parc informatique dans les établisseme...
Déploiment des tablettes et gestion du parc informatique dans les établisseme...Déploiment des tablettes et gestion du parc informatique dans les établisseme...
Déploiment des tablettes et gestion du parc informatique dans les établisseme...Microsoft Ideas
 
Gestion de Windows 10 et des applications dans l'entreprise moderne
Gestion de Windows 10 et des applications dans l'entreprise moderneGestion de Windows 10 et des applications dans l'entreprise moderne
Gestion de Windows 10 et des applications dans l'entreprise moderneMicrosoft Technet France
 
IBM Bluemix Paris meetup #23 - 20170425
IBM Bluemix Paris meetup #23 - 20170425IBM Bluemix Paris meetup #23 - 20170425
IBM Bluemix Paris meetup #23 - 20170425IBM France Lab
 
Présentation Google Apps Version Arrowsoft
Présentation Google Apps Version ArrowsoftPrésentation Google Apps Version Arrowsoft
Présentation Google Apps Version ArrowsoftVincent Pereira
 
Windows phone 7 sync application sur Azure, création d'application offline re...
Windows phone 7 sync application sur Azure, création d'application offline re...Windows phone 7 sync application sur Azure, création d'application offline re...
Windows phone 7 sync application sur Azure, création d'application offline re...Microsoft Décideurs IT
 
Retour d'expérience - Simplicité Software - 3 février 2016
Retour d'expérience - Simplicité Software - 3 février 2016Retour d'expérience - Simplicité Software - 3 février 2016
Retour d'expérience - Simplicité Software - 3 février 2016Simplicité Software
 
Presentation mididulibrev2.0
Presentation mididulibrev2.0Presentation mididulibrev2.0
Presentation mididulibrev2.0robertpluss
 
IBM Mobile virtualization services FR
IBM Mobile virtualization services FRIBM Mobile virtualization services FR
IBM Mobile virtualization services FRAlice Walrawens @IBM
 
Qu'est-ce que le Cloud ?
Qu'est-ce que le Cloud ?Qu'est-ce que le Cloud ?
Qu'est-ce que le Cloud ?Fred Canevet
 
Jdruais bluemix meetup rennes- 20160622 - introduction à bluemix
Jdruais  bluemix meetup rennes- 20160622 - introduction à bluemixJdruais  bluemix meetup rennes- 20160622 - introduction à bluemix
Jdruais bluemix meetup rennes- 20160622 - introduction à bluemixJérôme Druais
 
Cloud computing et les entreprises
Cloud computing et les entreprisesCloud computing et les entreprises
Cloud computing et les entreprisesIshakHAMEDDAH
 
API Banque : Convertigo à la French Mobile Day 2015
API Banque : Convertigo à la French Mobile Day 2015API Banque : Convertigo à la French Mobile Day 2015
API Banque : Convertigo à la French Mobile Day 2015Convertigo | MADP & MBaaS
 
WordPress sous stéroïdes : votre site Web vers les sommets !
WordPress sous stéroïdes : votre site Web vers les sommets !WordPress sous stéroïdes : votre site Web vers les sommets !
WordPress sous stéroïdes : votre site Web vers les sommets !Aurélien Denis
 
Wildix French Convention 2017
Wildix French Convention 2017Wildix French Convention 2017
Wildix French Convention 2017Wildix
 

Ähnlich wie Mobile-Chp4 côté serveur (20)

Cloud computing cours in power point chap
Cloud computing cours in power point chapCloud computing cours in power point chap
Cloud computing cours in power point chap
 
Déploiment des tablettes et gestion du parc informatique dans les établisseme...
Déploiment des tablettes et gestion du parc informatique dans les établisseme...Déploiment des tablettes et gestion du parc informatique dans les établisseme...
Déploiment des tablettes et gestion du parc informatique dans les établisseme...
 
Cloud Computing
Cloud ComputingCloud Computing
Cloud Computing
 
Gestion de Windows 10 et des applications dans l'entreprise moderne
Gestion de Windows 10 et des applications dans l'entreprise moderneGestion de Windows 10 et des applications dans l'entreprise moderne
Gestion de Windows 10 et des applications dans l'entreprise moderne
 
IBM Bluemix Paris meetup #23 - 20170425
IBM Bluemix Paris meetup #23 - 20170425IBM Bluemix Paris meetup #23 - 20170425
IBM Bluemix Paris meetup #23 - 20170425
 
Présentation Google Apps Version Arrowsoft
Présentation Google Apps Version ArrowsoftPrésentation Google Apps Version Arrowsoft
Présentation Google Apps Version Arrowsoft
 
Windows phone 7 sync application sur Azure, création d'application offline re...
Windows phone 7 sync application sur Azure, création d'application offline re...Windows phone 7 sync application sur Azure, création d'application offline re...
Windows phone 7 sync application sur Azure, création d'application offline re...
 
Retour d'expérience - Simplicité Software - 3 février 2016
Retour d'expérience - Simplicité Software - 3 février 2016Retour d'expérience - Simplicité Software - 3 février 2016
Retour d'expérience - Simplicité Software - 3 février 2016
 
Apple - WWDC 2018
Apple - WWDC 2018Apple - WWDC 2018
Apple - WWDC 2018
 
Presentation mididulibrev2.0
Presentation mididulibrev2.0Presentation mididulibrev2.0
Presentation mididulibrev2.0
 
IBM Mobile virtualization services FR
IBM Mobile virtualization services FRIBM Mobile virtualization services FR
IBM Mobile virtualization services FR
 
Qu'est-ce que le Cloud ?
Qu'est-ce que le Cloud ?Qu'est-ce que le Cloud ?
Qu'est-ce que le Cloud ?
 
OWASP Quebec ce que vous devriez savoir sur le Cloud Computing
OWASP Quebec ce que vous devriez savoir sur le Cloud ComputingOWASP Quebec ce que vous devriez savoir sur le Cloud Computing
OWASP Quebec ce que vous devriez savoir sur le Cloud Computing
 
IBM Bluemix : La plate-forme d’innovation numérique
IBM Bluemix : La plate-forme d’innovation numérique IBM Bluemix : La plate-forme d’innovation numérique
IBM Bluemix : La plate-forme d’innovation numérique
 
Jdruais bluemix meetup rennes- 20160622 - introduction à bluemix
Jdruais  bluemix meetup rennes- 20160622 - introduction à bluemixJdruais  bluemix meetup rennes- 20160622 - introduction à bluemix
Jdruais bluemix meetup rennes- 20160622 - introduction à bluemix
 
Cloud computing et les entreprises
Cloud computing et les entreprisesCloud computing et les entreprises
Cloud computing et les entreprises
 
API Banque : Convertigo à la French Mobile Day 2015
API Banque : Convertigo à la French Mobile Day 2015API Banque : Convertigo à la French Mobile Day 2015
API Banque : Convertigo à la French Mobile Day 2015
 
WordPress sous stéroïdes : votre site Web vers les sommets !
WordPress sous stéroïdes : votre site Web vers les sommets !WordPress sous stéroïdes : votre site Web vers les sommets !
WordPress sous stéroïdes : votre site Web vers les sommets !
 
Wildix French Convention 2017
Wildix French Convention 2017Wildix French Convention 2017
Wildix French Convention 2017
 
Convention Wildix France 2017
Convention Wildix France 2017 Convention Wildix France 2017
Convention Wildix France 2017
 

Mehr von Lilia Sfaxi

chp1-Intro à l'urbanisation des SI.pdf
chp1-Intro à l'urbanisation des SI.pdfchp1-Intro à l'urbanisation des SI.pdf
chp1-Intro à l'urbanisation des SI.pdfLilia Sfaxi
 
Plan d'études_INSAT_2022_2023.pdf
Plan d'études_INSAT_2022_2023.pdfPlan d'études_INSAT_2022_2023.pdf
Plan d'études_INSAT_2022_2023.pdfLilia Sfaxi
 
Lab1-DB-Cassandra
Lab1-DB-CassandraLab1-DB-Cassandra
Lab1-DB-CassandraLilia Sfaxi
 
TP2-UML-Correction
TP2-UML-CorrectionTP2-UML-Correction
TP2-UML-CorrectionLilia Sfaxi
 
TP1-UML-Correction
TP1-UML-CorrectionTP1-UML-Correction
TP1-UML-CorrectionLilia Sfaxi
 
TP0-UML-Correction
TP0-UML-CorrectionTP0-UML-Correction
TP0-UML-CorrectionLilia Sfaxi
 
TD4-UML-Correction
TD4-UML-CorrectionTD4-UML-Correction
TD4-UML-CorrectionLilia Sfaxi
 
TD3-UML-Séquences
TD3-UML-SéquencesTD3-UML-Séquences
TD3-UML-SéquencesLilia Sfaxi
 
TD3-UML-Correction
TD3-UML-CorrectionTD3-UML-Correction
TD3-UML-CorrectionLilia Sfaxi
 
TD2 - UML - Correction
TD2 - UML - CorrectionTD2 - UML - Correction
TD2 - UML - CorrectionLilia Sfaxi
 
TD1-UML-correction
TD1-UML-correctionTD1-UML-correction
TD1-UML-correctionLilia Sfaxi
 
Android - Tp1 - installation et démarrage
Android - Tp1 -   installation et démarrageAndroid - Tp1 -   installation et démarrage
Android - Tp1 - installation et démarrageLilia Sfaxi
 
Android - Tp2 - Elements graphiques
Android - Tp2 - Elements graphiques Android - Tp2 - Elements graphiques
Android - Tp2 - Elements graphiques Lilia Sfaxi
 
Android - Tp3 - intents
Android - Tp3 -  intentsAndroid - Tp3 -  intents
Android - Tp3 - intentsLilia Sfaxi
 
Android - TPBonus - web services
Android - TPBonus - web servicesAndroid - TPBonus - web services
Android - TPBonus - web servicesLilia Sfaxi
 
Android - Tp4 - graphiques avancés
Android - Tp4 - graphiques avancésAndroid - Tp4 - graphiques avancés
Android - Tp4 - graphiques avancésLilia Sfaxi
 

Mehr von Lilia Sfaxi (20)

chp1-Intro à l'urbanisation des SI.pdf
chp1-Intro à l'urbanisation des SI.pdfchp1-Intro à l'urbanisation des SI.pdf
chp1-Intro à l'urbanisation des SI.pdf
 
Plan d'études_INSAT_2022_2023.pdf
Plan d'études_INSAT_2022_2023.pdfPlan d'études_INSAT_2022_2023.pdf
Plan d'études_INSAT_2022_2023.pdf
 
Lab3-DB_Neo4j
Lab3-DB_Neo4jLab3-DB_Neo4j
Lab3-DB_Neo4j
 
Lab2-DB-Mongodb
Lab2-DB-MongodbLab2-DB-Mongodb
Lab2-DB-Mongodb
 
Lab1-DB-Cassandra
Lab1-DB-CassandraLab1-DB-Cassandra
Lab1-DB-Cassandra
 
TP2-UML-Correction
TP2-UML-CorrectionTP2-UML-Correction
TP2-UML-Correction
 
TP1-UML-Correction
TP1-UML-CorrectionTP1-UML-Correction
TP1-UML-Correction
 
TP0-UML-Correction
TP0-UML-CorrectionTP0-UML-Correction
TP0-UML-Correction
 
TD4-UML
TD4-UMLTD4-UML
TD4-UML
 
TD4-UML-Correction
TD4-UML-CorrectionTD4-UML-Correction
TD4-UML-Correction
 
TD3-UML-Séquences
TD3-UML-SéquencesTD3-UML-Séquences
TD3-UML-Séquences
 
TD3-UML-Correction
TD3-UML-CorrectionTD3-UML-Correction
TD3-UML-Correction
 
TD2 - UML - Correction
TD2 - UML - CorrectionTD2 - UML - Correction
TD2 - UML - Correction
 
TD1 - UML - DCU
TD1 - UML - DCUTD1 - UML - DCU
TD1 - UML - DCU
 
TD1-UML-correction
TD1-UML-correctionTD1-UML-correction
TD1-UML-correction
 
Android - Tp1 - installation et démarrage
Android - Tp1 -   installation et démarrageAndroid - Tp1 -   installation et démarrage
Android - Tp1 - installation et démarrage
 
Android - Tp2 - Elements graphiques
Android - Tp2 - Elements graphiques Android - Tp2 - Elements graphiques
Android - Tp2 - Elements graphiques
 
Android - Tp3 - intents
Android - Tp3 -  intentsAndroid - Tp3 -  intents
Android - Tp3 - intents
 
Android - TPBonus - web services
Android - TPBonus - web servicesAndroid - TPBonus - web services
Android - TPBonus - web services
 
Android - Tp4 - graphiques avancés
Android - Tp4 - graphiques avancésAndroid - Tp4 - graphiques avancés
Android - Tp4 - graphiques avancés
 

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