Connexion client serveur

mariya2016 Messages postés 30 Date d'inscription   Statut Membre Dernière intervention   -  
mariya2016 Messages postés 30 Date d'inscription   Statut Membre Dernière intervention   -
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 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
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   Statut Membre Dernière intervention  
 
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 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
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   Statut Membre Dernière intervention   > KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention  
 
je vous remercie infiniment, c'est plus clair maintenant :)
0