Outils pour utilisateurs

Outils du site


cours:projetsi32018:seance1

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
Prochaine révision Les deux révisions suivantes
cours:projetsi32018:seance1 [2019/06/03 14:31]
tigli
cours:projetsi32018:seance1 [2019/06/03 18:46]
tigli
Ligne 1: Ligne 1:
  
-=== Intervention sur l'​introduction des Smart Systems ===+==== Intervention sur l'​introduction des Smart Systems ​====
  
   * Les nouveaux Systèmes Informatisés et extension du binôme BackEnd - FrontEnd ​   * Les nouveaux Systèmes Informatisés et extension du binôme BackEnd - FrontEnd ​
Ligne 12: Ligne 12:
  
  
-=== Premiers pas avec les outils du projet ​=== +==== Architecture orienté service ====
-||| +
-Deux plateformes sont à la disposition des étudiants pour le développement de ce projet. +
-  * une plateforme Raspberry PI et  +
-  * une plateforme cible Android comme un smartphone+
  
-=== Outils pour le développement du projet avec un Raspberry PI  ===+Une architecture orientée service, est basée sur une approche distribuée. En premier lieu elle repose sur un ensemble de service disponibles. Chaque service fournit une API (Application Protocol Interface) comme celle d'une bibliothèque,​ à ceci près que les invocations de cette API se font à travers ​le réseau depuis un client vers un serveur. ​
  
 +Ces services peuvent fournir :
 +  * des interfaces graphiques (ex. le Service Web [[https://​thingspeak.com/​|ThingSpeak]]),​
 +  * des accès à des équipements physiques (ex. smart TV, smart sensors)
 +  * des accès à des bases de données (ex. MongoDB)
 +  * des accès à d'​autres systèmes d'​information (ex. Google API, Microsoft Azure) à haute valeur ajoutée (carte, traffic temps réel, reconnaissance d'​image,​ reconnaissance vocale, etc.)
  
-=== Outils pour le développement du projet avec un Smart Phone ===+Tous ces services sont indépendants de l'​application qui l'​utilise. Ils sont ainsi utilisables et  réutilisables par de multiples applications.
  
-On peut distinguer deux grands types d'​architectures logicielles dès lors que l'on met en place un équipement connecté qui peut être à la fois un terminal offrant une GUI comme une interface Web ou une plateforme de développement d'un objet connecté (mon Smartphone est avant tout, un ensemble de capteurs et d'​actionneurs,​ comme la tactilité de l'​écran,​ le capteur sonore, l'​inclinomètre et l'​affichage,​ le buzzer, etc.).+{{ :​cours:​projetsi32018:​ocs_architecture.png?700 |}}
  
-Selon le point de vue, le développement avec des mobiles peut reposer sur deux grands types d'​architectures : +Une application est dès lors un //​orchestrateur//​ qui gère la logique métier à mettre en place dans les interactions entre les services utilisés.
  
-|||+L'​ajout d'un nouveau service dans les services disponibles est complétement indépendant de l'​ajout d'une nouvelle application utilisant les services disponibles.
  
-  * ** Une approche Frontend - Backend telle que vous l'avez appréhendée lors de la première partie de votre projet.** En génie logiciel, ​les termes front-end et back-end font référence à la séparation des préoccupations entre la couche ​de présentation ​(front-end) et la couche ​d'accès aux données (back-end). Dans le modèle client – ​​serveurle client est généralement considéré comme le serveur frontal et le serveur, comme le serveur principal, même lorsqu'​un travail de présentation est en réalité effectué sur le serveur lui-mêmeCette vision est plutôt adaptée à l'utilisation du smartphone comme terminal utilisateur exécutant des applications qui communiquent avec le backend. Ces applications peuvent être natives. Mais dans la mesure du possible, on leur préférera des applications web dotées ​de mécanismes de responsive design qui pourront s'exécuter sur n'​importe cible dotée d'un browser +Cette architecture est donc particulièrement adaptée aux méthodes agiles où les incréments peuvent être de 2 catégories : ajouter un nouveau service ​(offert par un équipement,​ un système ​d'informationetc.) ou modifier ​l'application en modifiant ​la logique ​de l'orchestrateur.
  
-|||+=== Eléments Techniques pour le Projet SI3 ===
  
-  * **L'autre approche consiste à considérer le smartphone comme un dispositif physique ou objet connecté particulier**. Dans ce cas votre Smartphone doit être vu comme un des N équipements connectés autour ​de vous offrant ​des services ​à l'​instar ​de ceux fournis par votre backendgoogle, votre SMART TV etc.  ​La vision architectural est alors celle d'un ensemble ​d'API accessibles via le Web (services web) proposant différentes fonctionnalités,​ fussent-elles liées à des SAAS providers, ​des équipements connectés etcOn parle parfois dans ce cas de // bus de services ​//. +Les protocoles d'échange entre vos fournisseurs d'API et votre orchestrateur(utilisateur ​des APIs) peuvent être de différentes natures. 
-  +  * une des approches les plus connues et utilisées sont les Web services de type REST. Cette approche basée sur des communications Web (protocole HTTP),sont de type client/​serveurLes APIs sont donc accessibles à travers des Serveur Web. L'​orchestrateur y accède avec des clients.  
-Ce second ​type d'​intégration d'un smartphone ​est souvent difficile à envisagerEn effet le smartphone est trop souvent perçu comme un terminal mobile ​plus proche du PC que de la télécommande,​ et pourtant ... +  d'autres approches peut se baser sur d'autres protocoles d'​échange et même de modèle de communication. C'​est ​le cas des communications événementiels qui se distingue ​des approches client/​serveursUn des exemples les plus connus est MQTT.  
-{{ :cours:projetsi32018:​telecommande_medpi.jpg?200|}}+ 
 +=== Et sur mon téléphone ?=== 
 + 
 +Après avoir [[https://java2blog.com/​android-development-tutorial-install-android-studio-sdk/​|installé Android Studio]], voici deux tutoriaux pour de tous premiers développements sous android ([[https://java2blog.com/​android-hello-world-example-using-android-studio/​|Hello World!]] et une première [[https://​java2blog.com/​create-first-android-app-using-android-studio/​|application graphique]])
 + 
 +La mise en oeuvre de service web de type REST est présentée dans [[https://​www.javatpoint.com/​android-web-service|ce tutorial]].  
 + 
 +Pour les plus avancés voici quelques conseils qui vous permettront ​de mettre en œuvre un broker MQTT sur votre téléphone:​ 
 +  * installer tout d'​abord le broker MQTT sur votre téléphonePar exemple : MQTT broker App (CfPlay Store) ​ 
 +  * suivre un tutorial comme [[https://​internetofhomethings.com/​homethings/​?p=1943|celui-ci]], pour la création de clients MQTT (avec des //​publishers//​ et des //​subscribers//​)
  
  
  
  
----- 
cours/projetsi32018/seance1.txt · Dernière modification: 2019/06/03 18:46 par tigli