Vous êtes sur la page 1sur 40

SOMMAIRE

Introduction...........................................................................................................................................2
I. Généralité...................................................................................................................................3
1) Web Service............................................................................................................................3
1) Qu’est-ce qu’un Web service ?..............................................................................................5
II. La technologie des services Web expliquée à travers un exemple.............................................5
III. Avantages et inconvénients des services Web.......................................................................6
IV. Explication du projet...............................................................................................................7
V. Java IDE.......................................................................................................................................8
1) Principe de fonctionnement de l'IDE..........................................................................................9
2) Fonctions de base de l'IDE....................................................................................................10
3) Comment sélectionner un IDE Java......................................................................................10
4) Graphique des 5 meilleurs logiciels Java IDE........................................................................11
VI. Liste des 10 meilleurs IDE Java.............................................................................................11
5) Tableau de comparaison des principaux outils de l'IDE Java................................................12
VII.....................................................................................................................................................12
6) # 1) IDÉE IntelliJ....................................................................................................................12
7) #2) Eclipse IDE......................................................................................................................14
8) # 3) NetBeans.......................................................................................................................16
9) # 4) JDeveloper.....................................................................................................................18
10) # 6) BleuJ..........................................................................................................................19
11) # 7) jCreator......................................................................................................................21
12) # 8) Studio Android...........................................................................................................23
13) # 9) Pieds verts.................................................................................................................24
14) # 10) JGrasp......................................................................................................................27
15) # 11) MyEclipse.................................................................................................................29
16) # 12) JEdit.........................................................................................................................30
VIII. Présentation de PHP myadmin.............................................................................................31
IX. Présentation de Postman.....................................................................................................31
X. Présentation de Spring Boot.....................................................................................................32
XI. Réalisation du projet et présentation des résultats tests.....................................................34
Conclusion............................................................................................................................................37
REFERENCES.........................................................................................................................................38
Introduction

Plusieurs technologies innovantes ont été introduites ces dernières années, pour
renforcer la communication et le partage des ressources. Ces tâches ont emmené les experts
du domaine à inventer et découvrir des nouvelles méthodes pour résoudre plusieurs
problèmes informatiques. Parmi les technologies qui ont apparus au début du 21ème siècle,
et qui ont été adoptées par les entreprises, c’était la technologie des services web. Les
services web sont des briques de bases logicielles s’affranchissant de toute contrainte de
compatibilité logicielle ou matérielles. Les services Web comportent de nombreux
avantages, ils sont utilisables à distance via n'importe quel type de plate-forme, ils peuvent
servir au développement d’applications distribuées et sont accessibles depuis n’importe quel
type de clients. Les services Web appartiennent à des applications capables de collaborer
entre elles de manière transparente pour l’utilisateur, Leur mise en œuvre repose sur une
architecture décentralisée. Cette architecture orientée services (Service Oriented
Architecture-SOA) est un style architectural fondé sur la description des services et de leurs
interactions. Les services sont publiés dans des annuaires par des fournisseurs qui les
hébergent. Ils sont accessibles via un réseau pour les clients qui les découvrent, les
sélectionnent, les invoquent et les utilisent.
Dans notre travail, il est question de réaliser un client Java avec REST, chose que nous
présenterons tout le long de notre rapport.
1) Généralité

Avec l'interconnexion des ordinateurs en réseau et en particulier à travers internet, il


devient possible de faire fonctionner des applications sur des machines distantes. L'intérêt
d'une application fonctionnant à distance peut à première vue sembler inutile dans la
mesure où les applications fonctionnent fort bien en local (sur le poste de l'utilisateur),
néanmoins une application distante peut répondre aux problématiques suivantes :
 Les données peuvent être présentes uniquement sur le serveur distant (par exemple
un catalogue produit, un classement en temps réel, etc.) ;
 Le serveur distant peut disposer d'une puissance de calcul ou de capacités de
stockage dont l'utilisateur local ne dispose pas ;
 L'application distante peut être utilisée simultanément par un grand nombre
d'utilisateurs et sa mise à jour n'intervient qu'à un seul endroit.
Pour toutes ses raisons, une interaction entre des programmes distants peut être utile. Les
Web Services apportent une solution à ce problème en définissant une manière standard
d'invoquer une application distante et d'en récupérer les résultats à travers le web.
2) Web Service
Les services web (en anglais web services) représentent un mécanisme de communication
entre applications distantes à travers le réseau internet indépendant de tout langage de
programmation et de toute plate-forme d'exécution :
 utilisant le protocole HTTP comme moyen de transport. Ainsi, les communications
s'effectuent sur un support universel, maîtrisé et généralement non filtré par
les pare-feux ;
 employant une syntaxe basée sur la notation XML pour décrire les appels de
fonctions distantes et les données échangées ;
 organisant les mécanismes d'appel et de réponse.
Grâce aux services web, les applications peuvent être vues comme un ensemble de services
métiers, structurés et correctement décrits, dialoguant selon un standard international
plutôt qu'un ensemble d'objets et de méthodes entremêlés.
Le premier bénéfice de ce découpage est la facilité de maintenance de l'application, ainsi
que l'interopérabilité permettant de modifier facilement un composant (un service) pour le
remplacer par un autre, éventuellement développé par un tiers. Qui plus est, les services
web permettent de réduire la complexité d'une application car le développeur peut se
focaliser sur un service, indépendamment du reste de l'application.
Les services web facilitent non seulement les échanges entre les applications de l'entreprise
mais surtout permettent une ouverture vers les autres entreprises. Les premiers
fournisseurs de services web sont ainsi les fournisseurs de services en ligne (météo, bourse,
planification d'itinéraire, pages jaunes, etc.), mettant à disposition des développeurs des API
(Application Programmable Interface) payantes ou non, permettant d'intégrer leur service
au sein d'applications tierces.
Couches
Le fonctionnement des services web repose sur un modèle en couches, dont les trois
couches fondamentales sont les suivantes :
 Invocation, visant à décrire la structure des messages échangés par les applications.
 Découverte, pour permettre de rechercher et de localiser un service web particulier
dans un annuaire de services décrivant le nom de la société, l'objectif de chaque
service, etc.
 Description, dont l'objectif est la description des interfaces (paramètres des
fonctions, types de données) des services web.
Standards
Les standards de base utilisés par les Web-Services (SOAP, WSDL) sont normalisés par le
W3C (http://www.w3.org/2002/ws/), tandis que l'OASIS est chargée de la standardisation
des couches supérieures, plus proches du niveau applicatif (sécurité, etc.).
Invocation
Il existe deux grands standards de services web, tous deux basés sur XML :
 XML-RPC (XML Remote Procedure Call) , le plus ancien, fonctionnant sur un principe
proc&eaacute;dural et sans gestion des états.
 SOAP (Simple Object Access Protocol), fonctionnant selon le modèle objet.
Quel que soit le standard utilisé, le principe de programmation est le même : l'appel de
méthode distante est réalisé grâce à une bibliothèque cliente qui transmet la demande au
fournisseur de service en la formattant en XML de manière transparente; au niveau du
serveur une bibliothèque serveur décode la requête, le serveur fait ses traitement, puis
répond grâce à cette même bibliothèque; la bibliothèque client décode enfin la réponse afin
qu'elle puisse être utilisée par l'application client.
Découverte
Le protocole standard le plus utilisé pour la découverte de services est UDDI.
Description
Le protocole standard le plus utilisé pour la description de services est WSDL.

Services Web : services entre machines


Pour de nombreuses personnes, utiliser des services sur le Web va de soi. Acheter en ligne,
lire son journal, réserver une table dans un restaurant, regarder un film sont autant de
services que nous utilisons chaque jour. Alors que la personne devant son écran navigue sur
Internet et prend des décisions, de nombreuses choses se passent entre l’homme et la
machine. Mais il s’en passe tout autant entre les machines. Des requêtes et des réponses
sont constamment envoyées entre le client et le serveur. Cet échange est rendu possible par
le Web service (service Web en français).

1) Qu’est-ce qu’un Web service ?

Un service Web met à disposition un service via Internet. Il constitue ainsi une interface
permettant à deux machines (ou applications) de communiquer. Pour y parvenir, la
technologie doit disposer de deux propriétés essentielles :

 être multiplateforme : il n’est pas nécessaire que le client et le serveur aient la même
configuration pour pouvoir communiquer. Le service Web leur permet de se
retrouver à un même niveau.
 être partagée : dans la plupart des cas, un service Web est à disposition de plus d’un
client. Différents clients accèdent à ce service via Internet.

Lorsqu’un service Web est utilisé, un client envoie une requête à un serveur et déclenche
ainsi une action auprès de ce serveur. Le serveur renvoie ensuite une réponse au client.

3) La technologie des services Web expliquée à travers un exemple

Les services Web sont adressés via un Uniform Resource Identifier (URI) unique. De façon
similaire à une Uniform Resource Locator (URL), qui permet d’adresser des sites Internet,
l’URI est l’adresse du Web service correspondant. En théorie, l’annuaire de services UDDI,
qui permet de trouver les services Web, joue également un rôle. Ce service n’a toutefois
jamais su s’imposer, ses plus grands partisans s’étant même retirés du projet.

Le langage Web Service Description Language (WSDL) est quant à lui nettement plus


important. Chaque service Web possède un fichier en WSDL qui décrit le service en détail.
Grâce à ces informations, le client peut identifier les fonctionnalités qu’il peut exécuter sur le
serveur à l’aide de ce service Web. Finalement, la communication fonctionne à travers des
architectures et des protocoles différents. Il est par exemple fréquent de voir le protocole
réseau SOAP utilisé en association avec le standard internet HTTP ou avec RESTful
Webservices. Ces technologies envoient des requêtes et des réponses.
La communication fonctionne souvent sur la base du Extensible Markup Language (XML). Ce
langage relativement simple peut être compris aussi bien par les Hommes que par les
machines et est idéal pour connecter ensemble des systèmes avec différents prérequis. REST
est toutefois compatible avec d’autres formats comme JSON.

Voici un exemple de service Web pour plus de précision : partons d’un logiciel codé en Visual
Basic et fonctionnant sur une machine Windows. Le programme a besoin des services d’un
serveur Web Apache. Pour ce faire, le client envoie une requête SOAP au serveur sous la
forme d’un message HTTP. Le service Web interprète le contenu de la requête et veille à ce
que le service effectue une action. Après l’exécution, le service Web formule une réponse et
la renvoie au client, une fois encore avec SOAP et HTTP. La réponse est à nouveau
interprétée et les informations sont transmises au logiciel où elles sont traitées.

4) Avantages et inconvénients des services Web

Le principal avantage des services Web réside dans le fait que la communication peut
s’effectuer sur diverses plateformes. Le client et le serveur n’ont pas besoin d’avoir grand-
chose en commun pour que la communication fonctionne. Pour permettre cette dernière,
les services Web ont recours à des formats standardisés compris par tous les systèmes.

L’un des inconvénients provient toutefois de ces formats. XML est un format plutôt
encombrant qui entraîne de grands paquets de données. Dans le cas de connexions réseau
lentes, cela peut être source de problèmes. Une autre possibilité pour connecter deux
systèmes ensemble via Internet consiste à utiliser des API Web. Il s’agit d’interfaces pouvant
également être consultées via Internet. Elles sont généralement plus rapides, mais fixent des
objectifs beaucoup plus clairs pour le client et le serveur ce qui limite l’interopérabilité.

Description du sujet

Rappel du projet
5) Explication du projet

Le projet consite à créer un client Java avec REST en utilisant les méthodes CRUD sur la table
DetailCom de la BD MySQL BGSF.
La table doit contenir plusieurs champs dont : Client, produit, Commande, DetatilCom.
Nous avons également des données initiales pour les différents champs avec des attributs.
Pour Client, nous avons les attributs suivants :
- numCl : qui est la clé primaire
- nom,
- ville

Pour Commande, nous avons :


- numCom : la clé primaire
- dateCom ,
- numCl

Pour Produit, nous avons :


- numProd : la clé
- designation,
- prix,
- qteStock

Pour DetailCom, qui est une concaténation de clé, nous avons :


- numCom,
- numProd,
- qteCom
Condition de réalisation

Le projet qui nous ait soumis est à réaliser en une semaine, par groupe de 4 étudiants.

Présentation des logiciels, bibliothèques et frameworks

Présentation et comparaison des logiciels utilisés.


Dans cette partie, nous présenterons le top 10 des meilleurs IDE Java et

En tant que développeur, nous avons toujours besoin d'un éditeur de programmation ou
d'un environnement de développement intégré (IDE) qui peut nous aider à écrire Java ou à
utiliser des Framework et des bibliothèques de classes.

Il existe aujourd'hui sur le marché divers IDE et éditeurs de programmation Java.

6) Java IDE
Java est l'un des langages de programmation populaires et puissants ainsi qu'une plate-
forme. C'est un langage de programmation de haut niveau et sécurisé qui est utilisé sur
plusieurs plates-formes dans le monde comme les applications Web, Android, Big Data, le
domaine bancaire, les technologies de l'information, les services financiers, etc.

Pour implémenter le langage de programmation Java, nous avons besoin de certains


environnements dans lesquels l'utilisateur peut développer des codes et des applications.
Voici le rôle de Java Integrated Development Environment (Java IDE). Le besoin de Java IDE
s'est fait sentir car les développeurs étaient confrontés à des problèmes lors du codage
d'une énorme application.

Les applications volumineuses auront beaucoup de classes et de fichiers, et donc, il devient


difficile de les déboguer. Avec IDE, une bonne gestion de projet peut être maintenue. Il
fournit des conseils sur l'achèvement du code, les erreurs de syntaxe, etc.

L'environnement de développement intégré (IDE) est une application logicielle qui fournit
aux développeurs une plate-forme avec de nombreuses fonctionnalités et installations pour
développer des applications informatiques, des pages Web, des outils, des services, etc.

L'outil IDE comprendra des éditeurs de texte, des débogueurs, des compilateurs, certaines
fonctionnalités et des outils qui aideront à l'automatisation, au test et à l'analyse d'un flux de
développement d'application.

En termes simples, l'EDI permet aux développeurs de convertir leur code logique en
quelques applications logicielles utiles.

1) Principe de fonctionnement de l'IDE


IDE suit un principe de fonctionnement simple qui permet aux développeurs d'écrire du code
logique dans son éditeur d'environnement. Sa fonction de compilation indique où se
trouvent toutes les erreurs. La fonction de débogage permet de déboguer le code complet et
de rectifier les erreurs.
Enfin, il aide à automatiser certaines parties et aide également à créer une toute nouvelle
application logicielle. Il est également capable de prendre en charge le développement piloté
par les modèles.

7) Fonctions de base de l'IDE


 L'IDE doit posséder une capacité de complétion de code pour identifier les fonctions et le
mot-clé du langage Java.
 Il doit avoir une gestion des ressources solide qui aide à identifier les ressources
manquantes, les en-têtes, les bibliothèques, etc.
 Un bon outil de débogage pour tester complètement l'application développée.
 Compilez et créez des fonctionnalités.
Avantages:
 IDE prend très peu de temps et d'efforts car tout le concept d'EDI est de rendre le
développement plus facile et plus rapide.
 Il suit certaines normes de l'entreprise, par conséquent le principe de fonctionnement sera
le même partout et aidera les codeurs.
 Il est livré avec de bons outils de gestion de projet et des documents pour automatiser de
nombreuses choses.
 Utile pour simplifier le développement d'applications de base de données.
 Il a des fonctionnalités pour développer une bonne interface utilisateur avec des zones de
texte, des boutons, etc.

Désavantages:
 IDE s'accompagne d'une courbe d'apprentissage complexe, il ne sera donc pas facile d'avoir
une certaine expertise sur ces péages.
 Il n'est pas capable de supprimer seul le mauvais code, la conception et les erreurs. Le
développeur doit donc être très prudent lors du codage.
 Il nécessite plus de mémoire car il utilise l'interface utilisateur graphique.
 Il a également une restriction pour interagir directement avec la base de données.
8) Comment sélectionner un IDE Java
Le choix de l'EDI ou de l'éditeur qui convient à nos besoins dépend de divers facteurs,
notamment la nature des projets ou des applications en cours de développement, le
processus utilisé par l'équipe de développement, le niveau individuel et les compétences en
tant que programmeur ainsi que le rôle dans l'organisation.

Les préférences personnelles et la standardisation des outils jouent également un rôle


important dans la sélection de l'EDI ou de l'éditeur.

Le principal avantage de l'utilisation d'un IDE pour le développement est que lorsqu'un
compilateur est intégré à l'EDI, nous obtenons l'ensemble du package en un seul endroit afin
de pouvoir compléter le code, compiler, déboguer et exécuter le programme dans le même
logiciel.

Les IDE ont une interface utilisateur attrayante et sont livrés avec tous les éléments de
développement logiciel que nous pouvons utiliser pour développer des applications
logicielles.

9) Graphique des 5 meilleurs logiciels Java IDE

10) Liste des 10 meilleurs IDE Java

1. Éclipse
2. IntelliJ
3. NetBeans
4. BlueJ
5. JDeveloper
6. État
7. Greenfoot
8. JGrasp
9. Studio Android
10. JCréateur
11) Tableau de comparaison des principaux outils de l'IDE Java

12)

13) # 1) IDÉE IntelliJ


IntelliJ IDEA est un IDE pour le développement d'applications logicielles utilisant Java. IntelliJ
IDEA a été développé par JetBrains. Il est disponible en tant qu'édition communautaire sous
licence Apache 2 et en édition commerciale propriétaire. Les deux éditions peuvent être
utilisées pour le développement commercial. Il donne des suggestions sur l'achèvement du
code, l'analyse du code et des outils de refacturation fiables. Il dispose d'outils critiques tels
que le système de contrôle de version, la prise en charge de nombreux langages et cadres. Il
est capable de suivre le contexte du développeur et fait apparaître automatiquement les
outils correspondants.

Caractéristiques:

 Achèvement intelligent: Il donne une liste des symboles les plus pertinents applicables au
contexte actuel. Il déplace constamment les classes, méthodes, etc. les plus récemment
utilisées vers le haut de la liste des suggestions. Ainsi, la complétion du code est plus rapide.
 Analyse des flux de données: IntelliJ a la capacité d'analyser le flux de données et de deviner
le symbole possible au moment de l'exécution.
 Injection de langue: Vous pouvez facilement inclure des fragments d'un autre langage
comme - SQL dans le code Java.
 IntelliJ offre une factorisation approfondie et efficace car il sait tout sur les utilisations des
symboles.
 IntelliJ Idea est livré avec une grande variété d'outils intégrés tels que GIT, le contrôle de
version, le décompilateur, la couverture, la base de données SQL, etc.
 Il dispose d'un compilateur puissant capable de détecter les doublons, les odeurs de code,
etc.
 Il a une forte intégration avec les serveurs d'applications.

Avantages:

1. IntelliJ Idea est bon pour trouver des blocs de code répétitifs et afficher les erreurs avant la
compilation.
2. Il dispose d'une fonctionnalité de personnalisation puissante pour modifier la structure du
projet selon les besoins de l'utilisateur.
3. Bonne interface avec de nombreuses options de thème.
Les inconvénients:

1. La courbe d'apprentissage n'est pas facile et la documentation des outils doit être améliorée.
2. Prix élevé pour l'édition entreprise et parfois l'EDI plante s'il s'agit d'une application
volumineuse.
Développé par: Jet Brains
Plateforme prise en charge: Windows, Linux, Android et Mac.
Types de clients: Petite, moyenne et grande échelle.
Prise en charge multiplateforme: Oui.
Type de déploiement: Sur site.
Langue prise en charge: Anglais

14) #2) Eclipse IDE


Eclipse est un IDE Java open-source, complet et puissant, largement utilisé pour le
développement d'applications Java. Eclipse est équipé d'un espace de travail de base et d'un
système de plug-ins extensible à l'aide duquel nous pouvons personnaliser l'environnement.
Il est écrit principalement en Java. Comme il est open-source, il aide les développeurs à
personnaliser les solutions et à rendre l'application plus robuste. Il est basé sur la base de
base de Java, et donc il se rend très extensible, flexible et compatible avec de nombreux
langages comme C ++, Groovy, Python, Perl, C #, etc. Cela en fait le premier choix des
développeurs.

Caractéristiques:

 Eclipse est multiplateforme et fonctionne sous Linux, Mac OS et Windows.


 Prise en charge des outils extensibles.
 Modification, navigation, refactorisation et débogage: Eclipse fournit toutes ces
fonctionnalités et permet aux programmeurs de développer facilement des applications.
 Eclipse prend en charge le débogage à la fois localement et à distance, en supposant que vous
utilisez une machine virtuelle Java prenant en charge le débogage à distance.
 Eclipse dispose d'une aide et d'une documentation complètes.
 Eclipse a sa propre place de marché qui permet à l'utilisateur de télécharger des solutions
client.
 Il dispose d'un bon espace de travail qui permet aux développeurs d'identifier facilement les
projets, les dossiers et les fichiers.
 Il a une forte recommandation et une fonction de débogage pour les erreurs.
 Il permet l'intégration avec le serveur Apache Maven et le contrôle de version Git.
 Il s'agit d'un péage de widget standard avec le support Gradle.
Avantages:

1. Eclipse a une bonne fonction d'intégration pour créer des outils comme ANT et Maven.
2. Les utilisateurs peuvent développer différentes applications sur la même plate-forme, telles
que des applications Web et autonomes, des services Web, etc.
3. Des recommandations de code et des débogueurs solides sont intégrés dans Eclipse.

Les inconvénients:

1. Eclipse est livré avec de nombreuses validations pour les fichiers JSP et HTML.
La configuration Développé par: Fondation Eclipse.
Plateforme prise en charge: Windows, Linux, Solaris et Mac.
Types de clients: Petite, moyenne et grande échelle.
Prise en charge multiplateforme: Oui.
Type de déploiement: Sur site.
Langue prise en charge: Anglais.

15) # 3) NetBeans

NetBeans est un environnement de développement intégré open source gratuit qui est régi
par Apache Software Foundation. Il est utile pour développer des applications Web, Desktop,
Mobile, C ++, HTML 5, etc. NetBeans permet de développer des applications à partir d'un
ensemble de composants logiciels modulaires appelés modules. NetBeans fonctionne sous
Windows, Mac OS, Linux et Solaris.
Il est accompagné d'une bonne architecture et d'outils intégrés qui ajoutent des valeurs au
SDLC complet, des exigences du projet au déploiement. Il a une communauté active
d'utilisateurs et de développeurs dans le monde entier. Il contient différents modules grâce
auxquels les fonctions s'exécutent correctement. Il offre une édition de code fluide et
rapide.

Caractéristiques:

 NetBeans est un éditeur prenant en charge le langage, c'est-à-dire qu'il détecte les erreurs
pendant que le programmeur tape et assiste de temps en temps les fenêtres contextuelles
de documentation et l'achèvement de code intelligent.
 L'outil de refactoring de NetBeans permet au programmeur de restructurer le code sans le
casser.
 NetBeans effectue également une analyse du code source et fournit un ensemble complet
d'indices pour améliorer le code ou le corriger rapidement.
 Il comprend un outil de conception pour les interfaces graphiques Swing, anciennement
appelé «Project Matisse».
 Il a également un bon support intégré pour Maven et Ant, et un plugin pour Gradle.
 NetBeans offre une bonne prise en charge multiplateforme et multilingue.
 Il dispose d'un riche ensemble de communautés qui fournit des plugins.
 Il dispose d'une fonction de gestion de projet très simple et facile, afin que les développeurs
en tirent pleinement parti.
 Sa console offre une édition de code très rapide et intelligente dans son environnement de
développement.
 Il est également livré avec un outil d'analyse statique et des convertisseurs de code.

Avantages:

1. NetBeans permet aux développeurs de déployer le code à partir de son propre


environnement.
2. Les utilisateurs peuvent formater et définir des règles pour toutes les langues.
3. Il a également une fonction de comparaison de code côte à côte grâce à laquelle des pages
similaires peuvent être écrites simultanément.
Les inconvénients:

1. En raison de la grande taille de l'outil, le traitement est parfois lent. Il est donc conseillé
d'avoir une version plus légère.
2. Les plugins fournis par NetBeans pour le développement d'IOS et d'Android peuvent être
améliorés.
Développé par: Fondation Apache Software.
Plateforme prise en charge: Windows, Solaris, Linux et Mac.
Types de clients: Petite, moyenne et grande échelle.
Prise en charge multiplateforme: Oui.
Type de déploiement: Sur site.
Langue prise en charge: Anglais, chinois, japonais et russe.

16) # 4) JDeveloper

JDeveloper est un environnement de développement intégré open source fourni par Oracle
Corporation. Il offre des fonctionnalités de développement en Java, XML, SQL et PL / SQL,
HTML, JavaScript, BPEL et PHP. JDeveloper couvre le cycle de vie complet du
développement, de la conception au déploiement, en passant par le codage, le débogage,
l'optimisation et le profilage.Il est conçu de manière à fournir une implémentation de bout
en bout pour les applications et plates-formes Oracle.Comme il est intégré à un cadre
multicouche, il est plus facile pour les développeurs d’augmenter leur productivité car moins
de codage est nécessaire. Il a des éditeurs visuels et déclaratifs intégrés ainsi que des
éditeurs glisser-déposer.

Caractéristiques:

 Application gratuite: L'utilisation du logiciel est gratuite, c'est donc une plate-forme rentable.
 Outil complet: JDeveloper IDE propose des outils pour créer des applications Java, Web et
mobile, des services Web et des bases de données.
 Gestion complète du cycle de vie: Les utilisateurs peuvent gérer l'ensemble du cycle de vie
du développement si leurs applications se trouvent dans l'interface à l'aide de JDeveloper,
de la création et des tests au déploiement.
 Éditeurs visuels et déclaratifs: JDeveloper a des éditeurs visuels et déclaratifs attrayants qui
simplifient les définitions des éléments. Il permet également aux programmeurs d'éditer
directement l'application à partir de son document de codage.
 Éditeur glisser-déposer: JDeveloper dispose d'un environnement de développement
d'applications Web qui comprend une fonctionnalité de glisser-déposer qui facilite la
conception d'applications. Vous pouvez déplacer des éléments d'une conception à une autre
avec une simple option de clic et de glisser.
 JDeveloper prend en charge la gestion complète du cycle de vie de développement de
l'application.
 Il prend en charge Java SE, Java EE et des environnements de base de données complets
pour une application à construire.
 Il dispose du dernier éditeur visuel HTML 5 du côté de l'interface utilisateur.
Avantages:

1. JDeveloper IDE dispose d'un mécanisme d'intégration solide avec une application de
développement agile et des composants de gestion des versions de logiciels.
2. Il dispose également d'un bon support client pour tous les utilisateurs du monde entier.
3. Bonne connexion avec la base de données et l'utilisateur peut également exécuter les requêtes
SQL.
Les inconvénients:

1. La courbe d'apprentissage de JDeveloper est très raide et difficile. Il faudra beaucoup de


conseils pour l'utiliser.
2. Il tourne très lentement lorsque l'utilisateur essaie de mettre en œuvre le processus métier
car il prend une énorme mémoire RAM.
Développé par: Oracle Corporation
Plateforme prise en charge: Windows, Linux et Mac.
Types de clients: Petits, moyens, grands et pigistes aussi.
Prise en charge multiplateforme: Oui.
Type de déploiement: Sur site.
Langue prise en charge: Anglais.

17) # 6) BleuJ
BlueJ est un environnement de développement intégré Java open-source qui est
principalement développé à des fins éducatives pour les débutants qui ont commencé avec
la programmation. Il est principalement utilisé dans les petites industries. Il fonctionne avec
l'aide de JDK.Il possède une bonne interface utilisateur et des outils qui aident les
développeurs à développer une application rapide et robuste. Il a été initialement développé
dans un but d'apprentissage et de formation. Il permet aux utilisateurs de créer les objets
ainsi que de tester les objets. Il est portable et prend également en charge de nombreux
systèmes d'exploitation.

Caractéristiques:

 Simple: L'interface BlueJ est plus petite, plus simple et plus attrayante.


 Interactif: BlueJ permet l'interaction avec les objets, inspecte leurs valeurs et les utilise
également comme paramètres de méthode pour appeler des méthodes.
 Portable: Fonctionne sur n'importe quel système d'exploitation comme Windows, Mac OS
ou Linux sur lequel Java est installé. Il peut également fonctionner sans installation à l'aide
d'une clé USB.
 Innovant: BlueJ possède de nombreuses fonctionnalités telles que le banc d'objet, le pavé de
code et la coloration de la portée qui ne font pas partie des autres IDE.
 Il est livré avec le manuel BlueJ et des ressources pédagogiques de nature portable.

Avantages:
1. BlueJ est un bon IDE pour les débutants et est très facile à apprendre.
2. Il est capable d'afficher la vue UML d'un projet, ce qui facilite la recherche des classes pour
les utilisateurs.
3. Il permet à l'utilisateur d'appeler directement l'expression Java sans compiler le code qui
rend BlueJ REPL pour Java.
Les inconvénients:

1. BlueJ convient aux débutants et manque de nombreuses fonctionnalités dont les


développeurs auraient besoin pour développer une application robuste.
2. Il utilise son propre dialecte Java et n'est pas bon pour les grands projets car il plante entre
les deux.
Développé par: Michael Kolling et John Rosenberg
Plateforme prise en charge: Windows, Linux et Mac.
Types de clients: Petite échelle et pigistes.
Prise en charge multiplateforme: Oui
Type de déploiement: API ouverte et sur site
Langue prise en charge: Anglais

18) # 7) jCreator

JCreator est un IDE Java créé par Xinox Software. Son interface est similaire à celle de Visual
Studio de Microsoft. Comme il est entièrement programmé en C ++, Xinox Software a affirmé
que JCreator est plus rapide que les IDE Java concurrents basés sur Java.
Il donne une impression de Microsoft Visual Studio grâce à son interface similaire. C'est
purement un outil de développement conçu pour les développeurs qui aiment coder. Il est
de nature robuste et fiable. Il est capable de gérer divers profils JDK pour de nombreux
projets. Il est livré avec de bonnes directives d'API qui aident les développeurs à établir des
connexions personnalisées à tout moment. Il convient aux débutants et possède une
superbe interface utilisateur qui rend la navigation très conviviale.

Caractéristiques:

 JCreator est un puissant IDE Java.


 JCreator fournit à l'utilisateur des fonctionnalités telles que des modèles de projet, la gestion
de projet, la complétion de code, le débogueur, la coloration syntaxique, des assistants, etc.
 Les programmeurs peuvent directement compiler ou exécuter des programmes Java sans
activer le document principal. JCreator trouve automatiquement le fichier contenant la
méthode principale ou le fichier applet et procède en conséquence.
 JCreator est écrit en C ++ et est donc plus rapide et efficace par rapport aux autres IDE JAVA.
 Il dispose d'une interface utilisateur puissante qui facilite la navigation dans le code source.
Avantages:

1. JCreator rend le code auto-indenté augmentant ainsi la lisibilité de l'utilisateur.


2. Bon mécanisme de travail pour l'achèvement du code, la vérification orthographique, le
retour à la ligne, etc.
3. Dans l'outil lui-même, le développeur peut créer et exécuter le projet, ce qui fait gagner
beaucoup de temps.

Les inconvénients:

1. Il ne prend en charge que le système d'exploitation Windows et l'intégration avec d'autres


systèmes d'exploitation comme Linux ou Mac serait géniale.
2. Mauvaise architecture de plugin, donc l'extension de nouvelles fonctionnalités devient très
difficile pour les développeurs.
Développé par: Logiciel Xinox
Plateforme prise en charge: Windows, Linux et Mac.
Types de clients: Petits, moyens, grands et pigistes.
Prise en charge multiplateforme: Non.
Type de déploiement: API ouverte sur site.
Langue prise en charge: Anglais.
19) # 8) Studio Android

Android Studio est l'IDE du système d'exploitation Android de Google. Android Studio repose
sur le logiciel IntelliJ IDEA de JetBrains et est spécialement développé pour le
développement Android. Android Studio est disponible pour les systèmes d'exploitation
Windows, Mac OS et Linux.La marque «Google» étant attachée à son nom, la fiabilité et la
qualité ne sont pas compromises. Il dispose de nombreux outils intégrés pour accélérer le
développement Android.

Caractéristiques:

 Éditeur de mise en page visuelle: Permet de créer des mises en page complexes avec
«ConstraintLayout» en ajoutant des contraintes de chaque vue à d'autres vues et directives.
 Émulateur rapide: Permet de simuler différentes configurations et fonctionnalités, ainsi que
d'installer et d'exécuter des applications plus rapidement.
 Éditeur de code intelligent: Éditeur de code intelligent qui permet l'auto-complétion pour
Java, C / C ++ et Kotlin afin que nous puissions écrire mieux, et un code simple qui peut
s'exécuter plus rapidement. Augmentant ainsi la productivité et l'efficacité du développeur.
 Système de construction flexible: Permet de personnaliser les builds pour générer plusieurs
variantes de build.
 Profileurs en temps réel: Fournissez des statistiques en temps réel sur le temps processeur,
la mémoire et l'activité réseau de l'application.
 Il possède une fonctionnalité unique appelée analyseur APK qui permet de réduire la taille
de l'application Android en vérifiant le contenu.

Avantages:
1. Android Studio dispose d'un système de construction flexible avec lequel l'utilisateur peut
personnaliser sa construction.
2. Il possède des fonctionnalités qui peuvent identifier les goulots d'étranglement des
performances afin de pouvoir l'améliorer.
3. Il dispose d'un éditeur de code puissant qui fournit la complétion de code pour Kotlin, Java, C
++, etc.

Les inconvénients:

1. Android Studio nécessite une mémoire élevée, ce qui le rend plus coûteux.
2. Il contient de nombreuses erreurs difficiles à résoudre telles que la mise en page, la
réinstallation du référentiel, les problèmes de rendu, etc.
Développé par: Google, JetBrains.
Plateforme prise en charge: Windows, Linux, Mac et Chrome OS.
Types de clients: Petite, moyenne et grande échelle.
Prise en charge multiplateforme: Oui.
Type de déploiement: Ouvrez l'API et sur site.
Langue prise en charge: Anglais.

20) # 9) Pieds verts

C’est un environnement de développement intégré léger et gratuit sous licence BSD, dans
lequel l'utilisateur peut écrire des programmes Java. Il a été principalement développé pour
les étudiants et les formateurs afin de leur fournir une interface attractive et leur permet de
vérifier et d'évaluer le code Java écrit.

Il est livré avec des débogueurs intégrés et un bon support pour les tests via Junit. C’est un
projet en cours à l’Université Rice, au Texas, qui est développé et maintenu par des
étudiants. Dr.Java a une interface qui a été développée à l'aide de la boîte à outils Swing de
Sun Microsystems et a donc une apparence cohérente sur différentes plates-formes.
Caractéristiques:

 IDE Java léger.


 A une apparence cohérente sur différentes plates-formes.
 La fonction JavaDoc permet de générer de la documentation.
 Possède une fonctionnalité de débogage qui permet de suspendre et de reprendre le
débogage selon les exigences.
 Dr.Java propose une installation de test JUnit pour les applications.
 DrJava a une fonction unique pour la boucle read-eval-print (REPL) qui est utilisée pour
évaluer les expressions et les instructions Java de manière interactive.
 Il possède un volet d'interactions qui conserve des enregistrements pour collecter
confortablement les commandes déjà insérées, ce qui entraîne une diminution de la saisie
lors des évaluations expérimentales.
 Il a également la fonction d'afficher les interactions actuelles dans les copies de commande
de définition afin que les cas de test puissent être déplacés vers Junit pour les rendre
réutilisables.
 Il a une bonne interface utilisateur interactive.

Avantages:

1. DrJava est un IDE très léger avec un processus d'exécution plus rapide.
2. Comme il est conçu pour les étudiants, aucune configuration initiale n'est requise.
3. Ses fonctionnalités d'interaction permettent l'exécution de chaque classe indépendamment,
ce qui en fait un outil idéal pour un dépannage et des tests rapides.
Les inconvénients:

1. C'est un outil IDE très basique avec des fonctionnalités minimales telles que l'auto-
complétion est limitée au nom de la classe.
2. Pas bon pour les grosses applications en temps réel car il devient très lent à l'exécution.
Développé par: Groupe JavaPLT à l'Université Rice.
Plateforme prise en charge: . Linux et Mac.
Types de clients: Petite échelle.
Prise en charge multiplateforme: Oui.
Type de déploiement: Sur site.
Langue prise en charge: Anglais.

Greenfoot est un environnement de développement intégré Java éducatif conçu


principalement pour rendre l'apprentissage de la programmation facile et amusant. C'est
une excellente plate-forme pour les formateurs pour interagir dans le monde entier et
discuter de la programmation en temps réel.

Greenfoot est doué pour créer des logiciels bidimensionnels tels que des jeux interactifs et
des simulations. Avec des centaines d'enseignants et de ressources, il devient le trésor de
l'amour pour enseigner des idées. En tant qu'outil visuel et interactif, il attire de nombreux
formateurs et étudiants pour partager leurs idées et réflexions en ligne dans le monde
entier.

Caractéristiques:

 Greenfoot est conçu à des fins éducatives et propose de bons tutoriels en ligne.
 Il facilite grandement le développement d'applications bidimensionnelles.
 Les fonctionnalités sont développées dans du code Java texte standard qui offre également
une expérience de programmation en temps réel dans le texte traditionnel et la vue visuelle.
 Il prend également en charge la gestion de projet, la complétion de code, l'éclairage élevé de
la syntaxe,
Avantages:

1. C'est gratuit et excellent pour les débutants d'apprendre la programmation en temps réel
Java.
2. Il dispose d'un bon support communautaire en ligne qui permet aux développeurs du monde
entier de participer à une seule plate-forme.
3. Sa courbe d'apprentissage est très simple et facile.
Les inconvénients:

1. Il ne peut pas être utilisé pour développer d'énormes applications car il manque de
nombreuses fonctionnalités.
2. L'interface utilisateur est démodée et doit être améliorée.
Développé par: Michael Kolling, King’s College de Londres.
Plateforme prise en charge: Windows.
Types de clients: Petite échelle.
Prise en charge multiplateforme: Non.
Type de déploiement: Sur site.
Langue prise en charge: Anglais.

21) # 10) JGrasp


JGrasp est un environnement de développement intégré simple et léger avec des
visualisations pour améliorer la compréhensibilité des logiciels. Il est capable de générations
automatiques de visualisations logicielles. Il est développé sur la base du langage de
programmation Java, il est donc indépendant de la plate-forme et fonctionne sur toutes les
plates-formes avec Java Virtual Machine. Il est utilisé pour fournir la structure de contrôle
pour de nombreux langages de programmation comme Python, Java, C ++, C, VHDL, etc. Il
dispose également d'un mécanisme capable de reconnaître comme une table, des files
d'attente, des piles, des arbres pour les présentations.

Caractéristiques:

 Il dispose d'un mécanisme puissant de visualisation des applications logicielles.


 Le diagramme de classes UML est un outil puissant pour comprendre les dépendances entre
les classes.
 Il fournit des vues dynamiques pour les objets et les primitives.
 Il est livré avec un débogueur de chaîne qui permet à l'utilisateur d'examiner le code étape par
étape.
 Il a une intégration puissante qui permet aux développeurs d'ajouter du code et de l'exécuter
immédiatement.
Avantages:
1. C'est un IDE multicouche qui fournit une génération automatique de visualisation logicielle.
2. Il a ses propres plugins pour vérifier le style, Junit, Find Bugs, DCD, etc.
3. Une bonne courbe d'apprentissage avec une documentation complète.

Les inconvénients:

1. L'interface utilisateur n'est pas bonne et n'a pas de mécanisme de navigation.


2. Lorsqu'il s'agit d'énormes applications avec beaucoup de codage et de classes, l'exécution
devient lente.
Développé par: Université d'Auburn
Plateforme prise en charge: Windows, Mac, Linux et Chrome OS.
Types de clients: Petite, moyenne et grande échelle.
Prise en charge multiplateforme: Oui.
Type de déploiement: Sur site.
Langue prise en charge: Anglais.

22) # 11) MyEclipse

MyEclipse est un IDE Java EE disponible dans le commerce, développé et maintenu par la
société Genuitec, membre fondateur de la Fondation Eclipse. Il repose sur la plate-forme
Eclipse et intègre à la fois du code propriétaire et open-source dans l'environnement de
développement.
MyEclipse est un IDE puissant qui permet de combiner le processus de développement dans
un seul IDE Java avec de nombreux outils et fonctionnalités utiles. Il aide à développer
respectivement un frontend et un backend dynamiques et puissants.

Caractéristiques:

 Il dispose d'outils de qualité commerciale basés sur la dernière version d'Eclipse Java EE.
 Prise en charge améliorée du codage pour Spring et Maven.
 Prise en charge du codage et du développement pour Superior Angular & TypeScript.
 Prise en charge transparente du développement pour les serveurs d'applications et les bases
de données populaires.
 Prend en charge CodeLive avec Live Preview pour des changements HTML et CSS plus
rapides.
 Dispose d'une fonction JSjet pour un codage et un débogage JavaScript exceptionnels.

23) # 12) JEdit

JEdit est un éditeur de texte de logiciel libre disponible sous la licence publique générale
GNU version 2.0. Il est écrit en Java et fonctionne sur n'importe quel système d'exploitation
prenant en charge Java, y compris BSD, Linux, Mac OS et Windows.

Il est hautement configurable et personnalisable pour les développeurs. Il est de plus en plus
populaire parmi les codeurs de nos jours.

Caractéristiques:
 Écrit en Java et fonctionne sous Mac OS X, OS / 2, UNIX, VMS et Windows.
 Possède un langage de macro intégré et une architecture de plugins extensible.
 La fonction «Plugin Manager» permet de télécharger et d'installer des plugins à partir de
jEdit.
 Prend en charge la coloration syntaxique et l'indentation automatique, pour plus de 200
langues.
 Prend en charge UTF8 et Unicode.
 JEdit IDE est hautement configurable et personnalisable.
En somme, il existe plusieurs IDE pour la réalisation de projet multiplateforme en Java.
Pour notre , nous utiliserons Eclipse dont la bibliothèque est plus fourni, plus d’utilisateurs et
facile à utiliser.

24) Présentation de PHP myadmin

phpMyAdmin est une application Web de gestion pour les systèmes de gestion de base de
données MySQL et MariaDB, réalisée principalement en PHP et distribuée sous licence GNU
GPL.
Type : Système de gestion de base de données
Développé par : The phpMyAdmin Project
Langues : multilingue (79)
Licence : Licence publique générale GNU version 2
Première version : 9 septembre 1998
Écrit en : PHP et JavaScript

25) Présentation de Postman


Postman est une application permettant de tester des API, créée en 2012 par Abhinav
Asthana, Ankit Sobti et Abhijit Kane à Bangalore pour répondre à une problématique de test
d'API partageable.
Le llogiciel Postman nous permettra d’interroge la base de donnée à distance

26) Présentation de Spring Boot


Le projet Spring Boot est une extension du Spring Framework pour mettre en place
rapidement des applications Java. Grâce à un système modulaire de dépendances et un
principe de configuration automatique, il permet de disposer d’une structure de projet
complète et immédiatement opérationnelle.

Le Spring Framework est très largement utilisé dans la communauté Java. Il permet


d’accélérer le développement d’applications d’entreprise (notamment le développement
d’applications Web et d’API Web). Mais on trouve des applications basées sur le Spring
Framework dans bien d’autres domaines.

Pour comprendre l’origine et l’apport du Spring Framework, il faut savoir que son principal
auteur, Rod Johnson, voulait proposer une alternative au modèle d’architecture logiciel
proposé par la plate-forme J2EE au début des années 2000.

27) Réalisation du projet et présentation des résultats tests.

Les dossiers du programme

Affichage du contenu avec GET


Ajouter un élément dans la base de donnée POST

Modifier un élément avec PUT


Conclusion

En somme, le cours de Web Services nous a permis découvrir d’énormes notions liées
à ce domaine. En réalité, ce cours nous a permis d’apprendre, de programmer et
d’approfondir des notions en Java, langage indispensable pour la programmation, tout en
développant l’esprit d’équipe Nous avons rencontré des problèmes au niveau de la
programmation en Java (principalement sur la manipulation et l’établissement de lien avec
la base de données).
REFERENCES

https://www.javaguides.net/2021/10/spring-boot-crud-rest-api-project-using-IntelliJ-
IDEA.html
https://www.bezkoder.com/spring-boot-jpa-crud-rest-api/
https://javatechonline.com/how-to-develop-rest-crud-api-using-spring-boot/
https://www.javahelps.com/2017/11/restful-crud-with-java-and-mysql-in.html
https://web.maths.unsw.edu.au/~lafaye/CCM/web-services/web-service.htm
https://ensweb.users.info.unicaen.fr/pres/ws/
https://www.ionos.fr/digitalguide/sites-internet/developpement-web/services-web/?
https://www.labunix.uqam.ca/~tremblay_gu/intro-ws.pdf
http://dspace.univ-tlemcen.dz/bitstream/112/8223/1/La-decouverte-de-services-web-a-
base-de-domianance-probabiliste.pdf
https://fr.myservername.com/breadth-first-search-c-program-traverse-graph
https://openclassrooms.com/fr/courses/4871351-lancez-des-appels-reseau-en-ios/5284343-
prenez-en-main-l-api-de-forismatic-avec-postman
https://blog.webnet.fr/presentation-de-postman-outil-multifonction-pour-api-web/
https://javaetmoi.com/2018/10/architecture-microservices-avec-spring-cloud/
https://www.codetd.com/fr/article/12564120
https://gayerie.dev/docs/spring/spring/introduction.html#:~:text=Le%20projet%20Spring
%20Boot%20est,projet%20compl%C3%A8te%20et%20imm%C3%A9diatement%20op
%C3%A9rationnelle.
https://devstory.net/11267/tutoriel-spring-boot-pour-debutant
https://www.youtube.com/watch?v=fUK94jOFwBc&t=1795s
https://www.youtube.com/watch?v=aRLoSDOlU3w&t=1346s
https://www.youtube.com/watch?v=FnlzW-El0fc&t=506s
https://www.youtube.com/watch?v=th3uIP7D8nk&t=159s
https://www.youtube.com/watch?v=HWdwFYbnOHg&t=2420s
https://www.youtube.com/watch?v=IucFDX3RO9U&t=1477s

Vous aimerez peut-être aussi