"WakaDroid" API encapsulant les services REST offerts par wakandaDB (nosql)

  • 489 views
Uploaded on

 

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
489
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
20
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide
  • 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.

Transcript

  • 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
  • 20. 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 Classe « package connexion » class Class Model Serv erAddress + + + + + + + + + + + + + + WakandaClient defaultHost() : String defaultPort() : int equals(Object) : boolean getHost() : String getSocketAddress() : InetSocketAddress hashCode() : int sameHost(String) : boolean 1 ServerAddress() ServerAddress(InetAddress) ServerAddress(InetAddress, int) : void ServerAddress(InetSocketAddress) ServerAddress(String) ServerAddress(String, int) toString() : String + + + + + + + + + + + authenticate(String, String) : boolean connect() : boolean currentUser() : String currentUserBelongsT o(String) : boolean getDataClass(String) : DataClass getDataClassNames() : Set<String> login(String, String) : boolean logout() : boolean WakandaClient() WakandaClient(String, int) + entityname: String + + + + + + + 0..1 host: ServerAddress append(String, append(String, append(String, append(String, append(String, append(String, append(String, Directory + + + + currentUser() : String currentUserBelongsT o(String) : boolean login(String, String) : boolean logout() : boolean WakandaEntity ClientURI + + + + + + port: String query: String resource: String rest: String servername: String subresource: String + + + + getUriForAdd() : String getUriForDelete() : String getUriForQuery() : String getUriForUpdate() : String Query «use» 0..1 String) : void double) : void byte) : void boolean) : void date) : void blob) : void image) : void + + + + 0..* + + + + add: String createEntitySet: String deleteEntitySet: String filtre: String remove: String timeout: String update: String Query() Soutenance du projet de fin d'études 2013 20
  • 21. 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 Classe « package communication» class Class Model Propertie - DataClass Catalog + + + + dataclasses: ArrayList<DataClass> + + + + + addDataClass() : DataClass Catalog() 0..* existDataClass(String) : int getDataClass(String) : DataClass getDataClassList(String) : ArrayLis<DataClass> 1 dataURI: String name: String uri: String + + + + getAttributeList() : ArrayList<Attribute> getEntitySet() : String getPropertie() : Propertie newEntity() : WakandaEntity «property get» + getdataURI() : String + getname() : String + geturi() : String 1 0..* «property get» + getclassName() : String + getcollectionName() : String + getdataURI() : String + getdefaultTopSize() : double + getextraProperties() : JSONObject + getname() : String + getscope() : String 0..* 1 DataStoreClass + + + + + + + + createEntitySet() : String createEntitySet(String) : String delete(int) : boolean deleteEntitySet(String) : String getDataClassCount() : String save(WakandaEntity) : boolean testCreated(WakandaEntity) : boolean update(WakandaEntity) : boolean Calculate + + + + + + getAll(String) : String getAverage(String) : String getCount(String) : String getMax(String) : String getMin(String) : String getSum(String) : String Soutenance du projet de fin d'études 2013 className: String collectionName: String dataURI: String defaultTopSize: double extraProperties: JSONObject name: String scope: String Attribute - identifying: boolean indexed: boolean kind: String name: String scope: String type: String uuid: String «property get» + getkind() : String + getname() : String + getscope() : String + gettype() : String + getuuid() : String + isidentifying() : boolean + isindexed() : boolean 21
  • 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
  • 32. MERCI POUR VOTRE ATTENTION Soutenance du projet de fin d'études 2013 34
  • 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