2017-02-02 5 views
0

J'ai deux petites applications Java que je veux communiquer. Il devrait y avoir une requête simple Message et une réponse dans JSON.Communication rapide entre deux processus Java

J'ai trouvé deux solutions:

RMI et Buffers Protocole.

Quel serait le moyen le plus rapide et le plus simple à mettre en œuvre?

+0

Cela dépend. Il existe un compromis entre la complicité logique (c'est-à-dire des messages de compréhension authomatique) et une faible dépendance vis-à-vis d'autres bibliothèques. Le plus basique est la connexion par socket. –

+1

Pour cette exigence spécifique I (texte brut dans, JSON out) ma première pensée serait locale (TCP) socket avec protocole personnalisé. – Fildor

+0

Êtes-vous ouvert aux suggestions en dehors des deux que vous avez trouvées (RMI, ProtoBuf)? – Fildor

Répondre

4

Ni RMI ni ProtocolBuffers ne répondent à vos besoins. RMI envoie et reçoit des données en utilisant l'encodage de sérialisation d'objet Java. ProtoBuffers utilise également son propre schéma d'encodage. Les deux ne sont pas compatibles avec JSON.

Quel serait le moyen le plus rapide et le plus simple à mettre en œuvre? sont les exigences suitablestated

Ignorant le problème ci-dessus ...

  • RMI est plus simple si cela est discutable. (Cela dépend de ce que vous savez sur les deux technologies)

  • ProtoBuffers sera plus efficace.


JSON Dire je veux dire une chaîne de contenu whichs a le format JSON.

Si vous envoyez et recevez des chaînes de JSON et le marshalling/unmarshalling est déjà pris en charge, l'approche la plus rapide et la plus simple est d'utiliser plaine Sockets. Ni RMI ni ProtoBuffers ne vous donnent une réelle valeur ... dans ce scénario.

Une autre alternative est HTTP ou HTTPS. Ceux-ci sont plus susceptibles d'être autorisés à travers les pare-feu. HTTPs est également plus sécurisé lorsqu'il est implémenté de manière appropriée. Mais cette sécurité se fait au détriment de la performance. Si les pare-feu ne sont pas un problème, la communication au niveau socket est une bonne option, utilisant TCP ou UDP selon la taille du message, les exigences de fiabilité, si vous avez besoin d'échanges de messages uniques ou répétés, etc.

+0

Dire JSON Je veux dire un String dont le contenu a le format JSON. Ces deux options sont capables de répondre aux données de chaîne, n'est-ce pas? – xetra11

+0

Recommanderiez-vous une technologie en dehors de ces deux pour OP? Je ne suis pas sûr s'il veut vraiment seulement considérer ces deux. – Fildor