33
1 INSTITUT NATIONAL DE STATISTIQUE ET D’ECONOMIE APPLIQUEE Projet de fin d’études Présenté par : SELASSI Abdellah Membres du jury : Conception et Implémentation d’une API encapsulant les services REST offerts par Wakanda Server « WakaDroid » BENELALLAM Imade HACHIMI My Ali IDRISSI Mohammed Année Universitaire 2012-2013

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

Embed Size (px)

Citation preview

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

1

INSTITUT NATIONAL DE STATISTIQUE ET D’ECONOMIE APPLIQUEE

 Projet de fin d’études

Présenté par : SELASSI Abdellah  

Membres du jury :

Conception et Implémentation d’une API encapsulant les services REST offerts par Wakanda Server

« WakaDroid »

          

BENELALLAM ImadeHACHIMI My AliIDRISSI Mohammed

Année Universitaire 2012-2013

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

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

Plan

2Soutenance du projet de fin d'études 2013

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

3

4D Logiciels Maroc

Soutenance du projet de fin d'études 2013

40 Filiales, représentants et distributeurs dans le monde.

Premier SGBDR sur système 32-bits

Plateforme Wakanda

Présentation de l’organisme d’accueil

Frameworks et Outils de

développement

Analyse et Conception

Cahier des charges et POC

Présentation du projet

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

4Soutenance du projet de fin d'études 2013

Les Produits 4D

Environnement de développement Web et Mobile

Multiplateforme (Windows/Linux/Mac OS)

Déployer des applications sur le Cloud pour tous type d’interface

Présentation de l’organisme d’accueil

Frameworks et Outils de

développement

Analyse et Conception

Cahier des charges et POC

Présentation du projet

Environnement de développement intégré multiplateforme

Langage propriétaire de haut niveau

Solutions mono-poste et Client/Serveur

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

Problématique

Objectifs

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

REST/JSON

Démonstration de faisabilité « POC »

API pour la plate-forme Android « WakaDroid »

5Soutenance du projet de fin d'études 2013

Présentation du projet

Mise en œuvre et documentation

Frameworks et Outils de

développement

Analyse et Conception

Cahier des charges et POC

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

6Soutenance du projet de fin d'études 2013

Architecture de Wakanda

Présentation du projet

Mise en œuvre et documentation

Frameworks et Outils de

développement

Analyse et Conception

Cahier des charges et POC

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

Wakanda Server

DataStore : la base de données

DataStore Engine : moteur NoSQL (WakandaDB)

Serveur HTTP

7Soutenance du projet de fin d'études 2013

Présentation du projet

Mise en œuvre et documentation

Frameworks et Outils de

développement

Analyse et Conception

Cahier des charges et POC

Wakanda Application Framework (WAF)

DataProvider : Un fournisseur de données

Des Widgets : Couche présentation

DataSource : Une banque de données

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

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

REST/JSON

8Soutenance du projet de fin d'études 2013

Présentation du projet

Mise en œuvre et documentation

Frameworks et Outils de

développement

Analyse et Conception

Cahier des charges et POC

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

REST

9Soutenance du projet de fin d'études 2013

Les 6 Contraintes d'une architecture REST

Sans état

Client-serveur

Une interface uniforme

Mise en cache

Code-On-Demande (facultatif)

Un système hiérarchisé par couche

Présentation du projet

Mise en œuvre et documentation

Frameworks et Outils de

développement

Analyse et Conception

Cahier des charges et POC

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

10Soutenance du projet de fin d'études 2013

Avantage de REST (Contexte Web)

Utilisation d’URI

Utilisation du protocole HTTP

L’auto-description du message

REST

Présentation du projet

Mise en œuvre et documentation

Frameworks et Outils de

développement

Analyse et Conception

Cahier des charges et POC

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

REST

/JSO

N

11Soutenance du projet de fin d'études 2013

La structure de JSON (JavaScript Object Notation)

Une liste ordonnée de valeurs

Une collection de paires nom/valeur

JSON

Présentation du projet

Mise en œuvre et documentation

Frameworks et Outils de

développement

Analyse et Conception

Cahier des charges et POC

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

Cahier des charges

Les besoins fonctionnels

Les besoins non fonctionnels

Gestion de communication

Gestion de connexion

Plate-forme Android

Utilisation d’un client REST

12Soutenance du projet de fin d'études 2013

Cahier des charges et POC

Mise en œuvre et documentation

Frameworks et Outils de

développement

Analyse et Conception

Présentation du projet

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

Méthode de travail : XP

13Soutenance du projet de fin d'études 2013

Cahier des charges et POC

Mise en œuvre et documentation

Frameworks et Outils de

développement

Analyse et Conception

Présentation du projet

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

Démonstration de faisabilité « 4D Contacts »

2 Étapes

Création d’un projet Android

Création d’une solution sous Wakanda

14Soutenance du projet de fin d'études 2013

Cahier des charges et POC

Mise en œuvre et documentation

Frameworks et Outils de

développement

Analyse et Conception

Présentation du projet

Fonctionnalités et Services

CRUD Gestion de cache Explorateur/Uploader Service d’inclure le service d’Appel

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

15Soutenance du projet de fin d'études 2013

Cahier des charges et POC

Mise en œuvre et documentation

Frameworks et Outils de

développement

Analyse et Conception

Présentation du projet

Démonstration de faisabilité « 4D Contacts »

La création

La modification

La suppression

Le chargement des

fichiers

Gestion du cache

Service d’appel

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

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

16Soutenance du projet de fin d'études 2013

Cahier des charges et POC

Mise en œuvre et documentation

Frameworks et Outils de

développement

Analyse et Conception

Présentation du projet

Passer l’étape du POC

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

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

17Soutenance du projet de fin d'études 2013

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

uc Use Case Model

System Boundary

Paramétrer le serv eur

Api User

The System Boundary shows the logical interface between users and the system being described.

Création du client wakanda

Récupuration du DataStore

Choisir la DataClass a manipuler

Edition du DataClassEffectuer des requetes

sur la DataClass

Authentification

«extend»

«include»

«include»

«include»

«include»

«include»

18Soutenance du projet de fin d'études 2013

Analyse et Conception

Mise en œuvre et documentation

Frameworks et Outils de

développement

Cahier des charges et POC

Présentation du projet

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

Diagramme de Packages

19Soutenance du projet de fin d'études 2013

pkg Package Diagram

Gestion de connexion Gestion de communication

«import»

Analyse et Conception

Mise en œuvre et documentation

Frameworks et Outils de

développement

Cahier des charges et POC

Présentation du projet

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

Diagramme de Classe « package connexion »

20Soutenance du projet de fin d'études 2013

class Class Model

Serv erAddress

+ defaultHost() : String+ defaultPort() : int+ equals(Object) : boolean+ getHost() : String+ getSocketAddress() : InetSocketAddress+ hashCode() : int+ sameHost(String) : boolean+ ServerAddress()+ ServerAddress(InetAddress)+ ServerAddress(InetAddress, int) : void+ ServerAddress(InetSocketAddress)+ ServerAddress(String)+ ServerAddress(String, int)+ toString() : String

WakandaClient

+ host: ServerAddress

+ authenticate(String, String) : boolean+ connect() : boolean+ currentUser() : String+ currentUserBelongsTo(String) : boolean+ getDataClass(String) : DataClass+ getDataClassNames() : Set<String>+ login(String, String) : boolean+ logout() : boolean+ WakandaClient()+ WakandaClient(String, int)

Directory

+ currentUser() : String+ currentUserBelongsTo(String) : boolean+ login(String, String) : boolean+ logout() : boolean

WakandaEntity

+ entityname: String

+ append(String, String) : void+ append(String, double) : void+ append(String, byte) : void+ append(String, boolean) : void+ append(String, date) : void+ append(String, blob) : void+ append(String, image) : void

ClientURI

+ port: String+ query: String+ resource: String+ rest: String+ servername: String+ subresource: String

+ getUriForAdd() : String+ getUriForDelete() : String+ getUriForQuery() : String+ getUriForUpdate() : String

Query

+ add: String+ createEntitySet: String+ deleteEntitySet: String+ fi ltre: String+ remove: String+ timeout: String+ update: String

+ Query()

0..*0..1

«use»

1 0..1

Analyse et Conception

Mise en œuvre et documentation

Frameworks et Outils de

développement

Cahier des charges et POC

Présentation du projet

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

21Soutenance du projet de fin d'études 2013

class Class Model

Catalog

+ dataclasses: ArrayList<DataClass>

+ addDataClass() : DataClass+ Catalog()+ existDataClass(String) : int+ getDataClass(String) : DataClass+ getDataClassList(String) : ArrayLis<DataClass>

DataClass

+ dataURI: String+ name: String+ uri: String

+ getAttributeList() : ArrayList<Attribute>+ getEntitySet() : String+ getPropertie() : Propertie+ newEntity() : WakandaEntity

«property get»+ getdataURI() : String+ getname() : String+ geturi() : 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

Propertie

- className: String- collectionName: String- dataURI: String- defaultTopSize: double- extraProperties: JSONObject- name: String- scope: String

«property get»+ getclassName() : String+ getcollectionName() : String+ getdataURI() : String+ getdefaultTopSize() : double+ getextraProperties() : JSONObject+ getname() : String+ getscope() : String

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

0..*

1

10..*0..*

1

Analyse et Conception

Mise en œuvre et documentation

Frameworks et Outils de

développement

Cahier des charges et POC

Présentation du projet

Diagramme de Classe « package communication»

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

Frameworks

24Soutenance du projet de fin d'études 2013

Spring

Spring for Android

Gson Maven

Frameworks et Outils de développement

Mise en œuvre et documentation

Analyse et Conception

Cahier des charges et POC

Présentation du projet

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

Frameworks

25Soutenance du projet de fin d'études 2013

Spring

Frameworks et Outils de développement

Mise en œuvre et documentation

Analyse et Conception

Cahier des charges et POC

Présentation du projet

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

Frameworks

26Soutenance du projet de fin d'études 2013

Spring for Android

Frameworks et Outils de développement

Mise en œuvre et documentation

Analyse et Conception

Cahier des charges et POC

Présentation du projet

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

Frameworks

27Soutenance du projet de fin d'études 2013

JavaObject

JSON

Serialization

Deserialization

Gson (Google JSON)

Frameworks et Outils de développement

Mise en œuvre et documentation

Analyse et Conception

Cahier des charges et POC

Présentation du projet

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

Frameworks

28Soutenance du projet de fin d'études 2013

Maven Le POM (Project Object Management)

Frameworks et Outils de développement

Mise en œuvre et documentation

Analyse et Conception

Cahier des charges et POC

Présentation du projet

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

Outils de développement

29Soutenance du projet de fin d'études 2013

Eclipse

Plugin ADT

Wakanda

Enterprise Architect

Frameworks et Outils de développement

Mise en œuvre et documentation

Analyse et Conception

Cahier des charges et POC

Présentation du projet

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

Architecture

30Soutenance du projet de fin d'études 2013

Mise en œuvre et documentation

Frameworks et Outils de

développement

Analyse et Conception

Cahier des charges et POC

Présentation du projet

Modèle

Contrôleur

Vue

Contrôleur

Vue

WakandaServer

DataStore

DataStore Engine

API REST

WakandaClient

API WakaDroid

Plate-formeAndroid

Solutions

Projets

DataClass

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

Mise en oeuvre

31Soutenance du projet de fin d'études 2013

La Javadoc de la classe « ClientURI»

Mise en œuvre et documentation

Frameworks et Outils de

développement

Analyse et Conception

Cahier des charges et POC

Présentation du projet

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

Documentation

32Soutenance du projet de fin d'études 2013

Fournir la documentation a la communauté des développeurs Android

Mise en œuvre et documentation

Frameworks et Outils de

développement

Analyse et Conception

Cahier des charges et POC

Présentation du projet

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

33Soutenance du projet de fin d'études  2012

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

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

MERCI POUR VOTRE ATTENTION

34Soutenance du projet de fin d'études 2013

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

35

INSTITUT NATIONAL DE STATISTIQUE ET D’ECONOMIE APPLIQUEE

 Projet de fin d’études

Présenté par : SELASSI Abdellah  

Membres du jury :

Conception et Implémentation d’une API encapsulant les services REST offerts par Wakanda Server

« WakaDroid »

          

BENELALLAM ImadeHACHIMI My AliIDRISSI Mohammed

Année Universitaire 2012-2013