"WakaDroid" API encapsulant les services REST offerts par wakandaDB (nosql)
1. INSTITUT NATIONAL DE STATISTIQUE ET D’ECONOMIE APPLIQUEE
Projet de fin d’études
Conception et Implémentation d’une API encapsulant les services REST
offerts par Wakanda Server
« WakaDroid »
Membres du jury :
Présenté par : SELASSI Abdellah
BENELALLAM Imade
HACHIMI My Ali
IDRISSI Mohammed
Année Universitaire 2012-2013
1
2. Plan
1 - Présentation de l’organisme d’accueil
2 - Présentation du projet
3 - Cahier des charges et POC
4 - Analyse et Conception
5 - Frameworks et Outils de Développement
6 - Mise en œuvre et Documentation
7 - Conclusion et perspectives
Soutenance du projet de fin d'études 2013
2
3. Présentation de
l’organisme d’accueil
Présentation du
projet
Cahier des charges
et POC
Analyse et
Conception
Frameworks et
Outils de
développement
4D Logiciels Maroc
40 Filiales, représentants et distributeurs dans le monde.
Premier SGBDR sur système 32-bits
Plateforme Wakanda
Soutenance du projet de fin d'études 2013
3
4. Présentation de
l’organisme d’accueil
Présentation du
projet
Cahier des charges
et POC
Analyse et
Conception
Frameworks et
Outils de
développement
Les Produits 4D
Environnement de développement intégré multiplateforme
Langage propriétaire de haut niveau
Solutions mono-poste et Client/Serveur
Environnement de développement Web et Mobile
Multiplateforme (Windows/Linux/Mac OS)
Déployer des applications sur le Cloud pour tous type d’interface
Soutenance du projet de fin d'études 2013
4
5. Présentation du projet
Cahier des charges
et POC
Analyse et
Conception
Frameworks et
Outils de
développement
Mise en œuvre et
documentation
Problématique
Difficulté de développement des applications sous la plate-forme Android
Absence d’une API pour communiquer les applications Android avec Wakanda server
Forte demande d’une API Android par de la communauté des développeurs
Wakanda et Android
Objectifs
REST/JSON
Démonstration de faisabilité « POC »
API pour la plate-forme Android « WakaDroid »
Soutenance du projet de fin d'études 2013
5
6. Présentation du projet
Cahier des charges
et POC
Analyse et
Conception
Frameworks et
Outils de
développement
Mise en œuvre et
documentation
Architecture de Wakanda
Soutenance du projet de fin d'études 2013
6
7. Présentation du projet
Cahier des charges
et POC
Analyse et
Conception
Frameworks et
Outils de
développement
Mise en œuvre et
documentation
Wakanda Application Framework (WAF)
Server
DataStore : la Un de données
DataProvider :basefournisseur de données
DataStore Engine : moteur NoSQL
Des Widgets : Couche présentation(WakandaDB)
Serveur HTTP
DataSource : Une banque de données
Soutenance du projet de fin d'études 2013
7
8. Présentation du projet
Cahier des charges
et POC
Analyse et
Conception
Frameworks et
Outils de
développement
Mise en œuvre et
documentation
REST/JSON
REST (REpresentational State Transfer) :
Style d’architecture
Orienté ressources utilise les verbes comme opération
Basé sur le protocole Http
JSON (JavaScript Object Notation) : Format léger d’échange de
données
Soutenance du projet de fin d'études 2013
8
9. Présentation du projet
Cahier des charges
et POC
Analyse et
Conception
Frameworks et
Outils de
développement
Mise en œuvre et
documentation
REST
Les 6 Contraintes d'une architecture REST
Client-serveur
Sans état
Mise en cache
Une interface uniforme
Un système hiérarchisé par couche
Code-On-Demande (facultatif)
Soutenance du projet de fin d'études 2013
9
10. Présentation du projet
Cahier des charges
et POC
Analyse et
Conception
Frameworks et
Outils de
développement
Mise en œuvre et
documentation
REST
Avantage de REST (Contexte Web)
Utilisation du protocole HTTP
Utilisation d’URI
L’auto-description du message
Soutenance du projet de fin d'études 2013
10
11. Présentation du projet
Cahier des charges
et POC
Analyse et
Conception
Frameworks et
Outils de
développement
Mise en œuvre et
documentation
JSON
REST/JSON
La structure de JSON (JavaScript Object Notation)
Une collection de paires nom/valeur
Une liste ordonnée de valeurs
Soutenance du projet de fin d'études 2013
11
12. Présentation du
projet
Cahier des charges
et POC
Analyse et
Conception
Frameworks et
Outils de
développement
Mise en œuvre et
documentation
Cahier des charges
Les besoins fonctionnels
Gestion de connexion
Gestion de communication
Les besoins non fonctionnels
Plate-forme Android
Utilisation d’un client REST
Soutenance du projet de fin d'études 2013
12
13. Présentation du
projet
Cahier des charges
et POC
Analyse et
Conception
Frameworks et
Outils de
développement
Mise en œuvre et
documentation
Méthode de travail : XP
Soutenance du projet de fin d'études 2013
13
14. Présentation du
projet
Cahier des charges
et POC
Analyse et
Conception
Frameworks et
Outils de
développement
Mise en œuvre et
documentation
Démonstration de faisabilité
« 4D Contacts »
2 Étapes
Création d’une solution sous Wakanda
Création d’un projet Android
Fonctionnalités et Services
CRUD
Gestion de cache
Explorateur/Uploader
Service d’inclure le service d’Appel
Soutenance du projet de fin d'études 2013
14
15. Présentation du
projet
Cahier des charges
et POC
Analyse et
Conception
Frameworks et
Outils de
développement
Mise en œuvre et
documentation
Démonstration de faisabilité «
4D Contacts »
La création
La modification
La suppression
Le chargement des
fichiers
Gestion du cache
Service d’appel
Soutenance du projet de fin d'études 2013
15
16. Présentation du
projet
Cahier des charges
et POC
Analyse et
Conception
Frameworks et
Outils de
développement
Mise en œuvre et
documentation
Résultat de la
Démonstration de faisabilité
Fonctionnalités et Services
CRUD
Gestion de cache
Explorateur/Uploader
Service d’inclure le service d’Appel
Soutenance du projet de fin d'études 2013
16
17. Plan
1 - Contexte général du projet
2 - REST/JSON
3 - Cahier des charges et POC
4 - Analyse et Conception
5 - Frameworks et Outils de Développement
6 - Mise en œuvre et Documentation
7 - Conclusion et perspectives
Soutenance du projet de fin d'études 2013
17
18. Présentation du
projet
Cahier des charges
et POC
Analyse et Conception
uc Use Case Model
Frameworks et
Outils de
développement
Mise en œuvre et
documentation
System Boundary
Paramétrer le serv eur
T he System Boundary shows the
logical interface between users
and the system being described.
«include»
Authentification
Création du client
w akanda
«extend»
Api User
«include»
Récupuration du
DataStore
«include»
Choisir la DataClass a
manipuler
«include»
Edition du DataClass
Soutenance du projet de fin d'études 2013
«include»
Effectuer des requetes
sur la DataClass
18
19. Présentation du
projet
Cahier des charges
et POC
Analyse et Conception
Frameworks et
Outils de
développement
Mise en œuvre et
documentation
Diagramme de Packages
pkg Package Diagram
Gestion de communication
Gestion de connexion
«import»
Soutenance du projet de fin d'études 2013
19
22. Présentation du
projet
Cahier des charges
et POC
Analyse
et Conception
Frameworks et Outils
de développement
Mise en œuvre et
documentation
Frameworks
Spring
Spring for Android
Gson
Maven
Soutenance du projet de fin d'études 2013
24
23. Présentation du
projet
Cahier des charges
et POC
Analyse
et Conception
Frameworks et Outils
de développement
Mise en œuvre et
documentation
Frameworks
Spring
Soutenance du projet de fin d'études 2013
25
24. Présentation du
projet
Cahier des charges
et POC
Analyse
et Conception
Frameworks et Outils
de développement
Mise en œuvre et
documentation
Frameworks
Spring for Android
Soutenance du projet de fin d'études 2013
26
25. Présentation du
projet
Cahier des charges
et POC
Analyse
et Conception
Frameworks et Outils
de développement
Mise en œuvre et
documentation
Frameworks
Gson (Google JSON)
Serialization
Java
Object
JSON
Deserialization
Soutenance du projet de fin d'études 2013
27
26. Présentation du
projet
Cahier des charges
et POC
Analyse
et Conception
Frameworks et Outils
de développement
Mise en œuvre et
documentation
Frameworks
Maven
Le POM (Project Object Management)
Soutenance du projet de fin d'études 2013
28
27. Présentation du
projet
Cahier des charges
et POC
Analyse
et Conception
Frameworks et Outils
de développement
Mise en œuvre et
documentation
Outils de développement
Eclipse
Plugin ADT
Wakanda
Enterprise Architect
Soutenance du projet de fin d'études 2013
29
28. Présentation du
projet
Cahier des charges
et POC
Analyse
et Conception
Frameworks et
Outils de
développement
Mise en œuvre et
documentation
Architecture
DataStore
Solutions
DataStore
Engine
Projets
Vue
API REST
DataClass
Contrôleur
API WakaDroid
Modèle
Contrôleur
Vue
Wakanda
Server
Wakanda
Client
Soutenance du projet de fin d'études 2013
Plate-forme
Android
30
29. Présentation du
projet
Cahier des charges
et POC
Analyse
et Conception
Frameworks et
Outils de
développement
Mise en œuvre et
documentation
Mise en oeuvre
La Javadoc de la classe « ClientURI»
Soutenance du projet de fin d'études 2013
31
30. Présentation du
projet
Cahier des charges
et POC
Analyse
et Conception
Frameworks et
Outils de
développement
Mise en œuvre et
documentation
Documentation
Fournir la documentation a la communauté des développeurs Android
Soutenance du projet de fin d'études 2013
32
31. Conclusion et perspectives
Assure les fonctionnalités de base
La connexion
L’authentification
L’envoie de requête et réception de résultats
La gestion de cache et des erreurs
La présentation des résultats à la couche développeur
Gestion des EntitySet
Soutenance du projet de fin d'études 2012
33
33. INSTITUT NATIONAL DE STATISTIQUE ET D’ECONOMIE APPLIQUEE
Projet de fin d’études
Conception et Implémentation d’une API encapsulant les services REST
offerts par Wakanda Server
« WakaDroid »
Membres du jury :
Présenté par : SELASSI Abdellah
BENELALLAM Imade
HACHIMI My Ali
IDRISSI Mohammed
Année Universitaire 2012-2013
35
Notas del editor
Une vue d’ensemble des frameworks dont on a tiré profil : Au cours de ma période de stage j’ai travaillé avec les frameworks suivants : Spring, Spring for android, Gson et Maven.
Nous avons utilisé la framework Spring car elle permet d’implémente le design pattern « Depenedency Injection », aborder dans la partie analyse et conception, qui est le cœur de cette framework.
Spring for Android représente un client REST qui permet d’implémenter les requêtes HTTP en respectant le style d’architecture RESTfull
Gson est une libraire été dans un premier temps utilisé seulement par les projets internes Google; cette librairie permet la sérialisation/désérialisation.Pour la sérialisation consiste a rendre un objet java un objet JSON et pour la déserialisation c’est l’inverse
Maven est un outils de gestion des projets informatiques;cette outil permet la modélisation des systèmes, la gestion du cycle de vie d’un projet ainsi la gestion des dépendances;Dont on a tiré profil dans notre projet.Voici les étape nécessaire pour l’utilisation de Maven pour la gestion des dépendances : 1. Premièrement Maven consulte le fichier « POM » qui contient des informations sur les dépots que nous utiliserons dans un projet2. Une fois Maven obtient la réponse il sera capable d’éxectuter la tache(s) selon les informations qu’il a eu
Dans la partie outils de développement j’ai travaillé avec l’editaur Eclipse le plugin Android Developer Tools; La plate forme Wakanda et l’Atelier Génie Logiciel Enterprise Architect
Pour faciliter l’utilisation de notre API on générer la javadoc en utilisant l’assistant intégrer dans Enterprise Architect voici une vu de la classe « ClientURI » :Cette vu permet au développeur d’avoir une idée sur la classe, a travers la description des attributs , des opérations et des relations avec d’autres classes
Pour faciliter l’utilisation de notre API on générer la javadoc en utilisant l’assistant intégrer dans Enterprise Architect voici une vu de la classe « ClientURI » :Cette vu permet au développeur d’avoir une idée sur la classe, a travers la description des attributs , des opérations et des relations avec d’autres classes
Une bonne documentation est importante pour encourager les développeurs intéressés par Wakanda srever.Dans cette partie très impoortantes on a respecter les normes internationale pour les bonnes pratiques d’une documentation d’une API, d’où la fourniture des parties de mise en œuvre, les exemples de code et les références.Ainsi que la documentation est en langue anglophone vu
Pour conclure, Jusqu’à présent l’API assure les fonctionnalités de base: connexion, authentification, envoie de requete et réception de résultats, gestion de cache et des erreurs ainsi la présentation des résultats à la couche développeur.Comme perspective, nous comptons développer la partie gestion des EntitySet pour améliorer les performances de notre API.