Connexion client serveur

Fermé
mariya2016 Messages postés 30 Date d'inscription dimanche 13 mars 2016 Statut Membre Dernière intervention 19 mai 2016 - 13 mars 2016 à 18:16
mariya2016 Messages postés 30 Date d'inscription dimanche 13 mars 2016 Statut Membre Dernière intervention 19 mai 2016 - 13 mars 2016 à 20:49
Bonsoir,
J'ai une question, si quelqu'un pourrait m'aider. je vais réaliser une application pour la délégation de services domotique, le but de l'application est le suivant : le serveur va simuler des pannes et dans la partie cliente : la panne sera détecter et des traitements aurons lieu pour que la délégation de services puisse se faire d'une manière intelligente. Alors, qu'est ce vous me conseillez?! je travaille avec java EE (en utilisant les sockets pour la connexion client serveur...) ou bien avec java web client (en utilisant php ...)!!, en fait, qu'elle est la meilleure méthode et la plus facile à faire?
Merci.
A voir également:

1 réponse

KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
13 mars 2016 à 19:15
Bonjour,

"la meilleure méthode et la plus facile à faire?"
Ne pas faire de sockets toi même mais utiliser les outils de JavaEE qui offrent des fonctionnalités bien plus efficaces.

Pour une application client/serveur tu peux faire une API REST en JAX-RS, par exemple avec Jersey.
0
mariya2016 Messages postés 30 Date d'inscription dimanche 13 mars 2016 Statut Membre Dernière intervention 19 mai 2016
13 mars 2016 à 19:35
Merci pour votre réponse, pouvez vous m'expliquer un peu plus ces fonctionnalités de JavaEE car je ne vois pas d'autres solutions que les sockets .
0
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
13 mars 2016 à 20:31
Techniquement derrière il y a évidemment des sockets, mais c'est le serveur Java EE qui va les gérer, pour le développeur c'est transparent car dans le code on utilise des fonctionnalités de plus haut niveau qui vont gérer proprement la communication réseau.

Dans le lien sur Jersey que je t'ai donné il y a un code d'exemple, tu peux tester ça en deux lignes de commandes Maven, sans même avoir à installer un serveur puisqu'il est embarqué dans l'exemple.

mvn archetype:generate -DarchetypeArtifactId=jersey-quickstart-grizzly2 -DarchetypeGroupId=org.glassfish.jersey.archetypes -DinteractiveMode=false -DgroupId=com.example -DartifactId=simple-service -Dpackage=com.example -DarchetypeVersion=2.22.2

cd simple-service
mvn compile exec:java

Remarque : si tu ne connais pas Maven tu devrais regarder Débuter avec Maven.

Une fois le serveur démarré tu l'interroges simplement avec un navigateur web :
http://localhost:8080/myapp/myresource qui va répondre "Got it!"

Quand on regarde le code, c'est vraiment simple (et je simplifie encore un peu)

package com.example;

import javax.ws.rs.*;

@Path("myresource")
public class MyResource {
    @GET
    @Produces("text/plain")
    public String getIt() {
        return "Got it!";
    }
}

En quelques lignes, tu as un service REST qui fonctionne, et même si ça ne fait pas grand chose dans l'exemple on peut faire bien plus, sans difficulté supplémentaire.
Et comme le protocole de communication c'est du HTTP, ton client n'aura donc aucune difficulté à lire l'information, sans s'embêter à coder des scokets.

Dans l'exemple on renvoie juste un String, mais on peut renvoyer n'importe quoi, généralement on manipule des objets Java qui sont convertis au format JSON.
Pareil : en Java EE on ne s'embête pas à faire la conversion en JSON soit même, Jersey le fait très bien tout seul.
0
mariya2016 Messages postés 30 Date d'inscription dimanche 13 mars 2016 Statut Membre Dernière intervention 19 mai 2016 > KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024
13 mars 2016 à 20:49
je vous remercie infiniment, c'est plus clair maintenant :)
0