Upload
abdellah-selassi
View
638
Download
3
Embed Size (px)
Citation preview
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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»
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
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
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
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
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
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
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
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
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
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
MERCI POUR VOTRE ATTENTION
34Soutenance du projet de fin d'études 2013
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