Architecture client/serveur TCP (socket) [Résolu]

Messages postés
78
Date d'inscription
mercredi 27 novembre 2013
Statut
Membre
Dernière intervention
12 novembre 2014
- - Dernière réponse : Noemie O'connor
Messages postés
78
Date d'inscription
mercredi 27 novembre 2013
Statut
Membre
Dernière intervention
12 novembre 2014
- 28 sept. 2014 à 11:49
Bonjour à tous,

Dans le cadre d'utilisation du package java.net (Socket, SocketServer,...) pour le développement d'une application serveur, comment organiseriez vous vos différents objets afin de réaliser quelque chose de fonctionnel et d'évolutif?

Par exemple, on pourrait faire un objet connexion qui va se charger de gérer le socket et d'attendre une requête. Une fois un requête reçue on pourrait utiliser une Factory qui determinerait comment réagir face a la requête (appel d'un service dans un nouveau thread par exemple).
Cela vous semble-il suffisant? En termes de sécurité, à quoi serait-il bon de penser pour sécuriser les transmissions? Un système de cryptage asymétrique (clés privée/publique)?

Merci pour vos opinions! :)
N
Afficher la suite 

2 réponses

Messages postés
16093
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
11 décembre 2019
88
0
Merci
Bonjour,

Déjà pourquoi repartir aussi bas niveau que les socket ? Tu pourrais très bien faire des EJB, du JAX-WS, JAX-RS...

En terme d'organisation du projet il faudrait faire 4 livrables, a) le serveur, b) le client, c) l'api : uniquement des interfaces, éventuellement des bean qui font le pont entre client et serveur, d) le common : les classes abstraites ou utilitaires communes entre client/serveur.

Pour la factory je ne suis pas convaincu, il faudrait voir ce que tu veux faire exactement entre ton client et ton serveur.

En terme de sécurité il serait bon de ne pas réinventer la roue, Java intègre déjà de la sécurité (SSLSocket par exemple).
La confiance n'exclut pas le contrôle
Commenter la réponse de KX
Messages postés
78
Date d'inscription
mercredi 27 novembre 2013
Statut
Membre
Dernière intervention
12 novembre 2014
0
Merci
En fait, je vient de débuter la programmation réseau alors j'ai voulu commencer par le plus bas niveau possible pour avoir une meilleure compréhension.
Si je comprend bien ce que tu proposes plus haut, l'API permet en fait au client de connaître les possibilités du serveur et d'appeller ainsi des services? Est ce qu'on peut dire que cela s' approche d'un lookup?
As tu des conseils pour quelqu'un comme moi qui désire s' initier à la prog réseau?

Merci de ton aide
Noémie
KX
Messages postés
16093
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
11 décembre 2019
88 -
"l'API permet en fait au client de connaître les possibilités du serveur"
Et inversement, permettre au serveur de savoir ce qu'envoie le client, ça fait gagner en réactivité plutôt que décortiquer un message quelconque pour savoir si le serveur le comprend (l'idée de ta factory).

"Est ce qu'on peut dire que cela s' approche d'un lookup?"
Pour les EJB oui, pour les JAX non.

"j'ai voulu commencer par le plus bas niveau possible"
Va pour les sockets alors, mais oublie la partie sécurité, si tu arrives déjà à comprendre comment ça fonctionne ce serait pas mal (et c'est pas évident), mais ce serait une perte de temps de refaire ton propre algorithme de chiffrement.

"s'initier à la prog réseau?"
Les sockets sont à mettre au niveau de la couche Transport du modèle OSI, en Java tu pourras difficilement descendre sur les couches inférieures, en particulier la couche Réseau qui t'intéresse. Là ce serait plutôt de la programmation en C...
Noemie O'connor
Messages postés
78
Date d'inscription
mercredi 27 novembre 2013
Statut
Membre
Dernière intervention
12 novembre 2014
-
Merci pour tes conseils, j'ai une vision plus claire maintenant et je vois mieux dans quelle direction aller !
Commenter la réponse de Noemie O'connor