Lors du développement d'applications distribuées, toutes écrites en Java par la même société, choisiriez-vous Web Services ou RMI? Quels sont les avantages et les inconvénients en termes de performance, de couplage lâche, de facilité d'utilisation, ...? Est-ce que quelqu'un choisirait WS? Pouvez-vous construire une architecture orientée services avec RMI?Quels sont les avantages et les inconvénients des services Web et RMI dans un environnement Java uniquement?
Répondre
Je vais essayer d'y penser de cette façon:
Vous partez pour des services indépendants en cours d'exécution sous l'autre, et ces services sont accessibles par des applications non-java un peu de temps à l'avenir? Ensuite, allez pour les services Web.
Voulez-vous simplement diffuser des parties d'une application (attention au singulier) sur plusieurs serveurs? Alors optez pour RMI et vous n'aurez pas à quitter l'univers Java pour que tout fonctionne en étroite collaboration.
Je choisirais WS.
- Il est peu probable que WS/RMI soit votre goulot d'étranglement.
- Pourquoi fermer la porte à d'autres technologies possibles à l'avenir?
- RMI peut rencontrer des problèmes si la version des classes sur le client/serveur n'est pas synchronisée.
Et ... Je choisirais très probablement des services REST.
Vous ne pouvez pas dire si c'est improbable tant que vous n'avez pas mesuré. –
mes choix sont:
sérialisation standard java - pros: offre IMHO les meilleures performances, simple à mettre en œuvre (j'utilise Spring pour exposer l'interface locale comme une seule télécommande); contre: sérialisation ne fonctionne pas entre les différentes versions jvm
sérialisation binaire (par exemple la toile de jute de la jetée) - pros: mêmes performances qu'avec sérialisation Java et fonctionne entre les différentes versions jvm
WS: que s'il y a une besoin d'interopérabilité entre différentes plates-formes Java +. Net, sinon il est trop lourd.
RMI est un grand transport de développement rapide, mais je déconseille de l'utiliser dans un environnement de production. Le problème de compatibilité de sérialisation peut rendre les choses difficiles, vous devez coordonner vos déploiements avec beaucoup de soin.
WebServices sont inefficaces, oui, mais seulement par le biais du matériel. Vous pouvez également utiliser XML-sur-HTTP simple et léger, plutôt que SOAP/WSDL complet.
Si vous n'en avez pas besoin (interop avec Java), et vous ne l'avez probablement pas, RMI va être meilleur; moins de code, moins de configuration, moins de temps système de bande passante.
Une option si vous avez peur que vous en ayez besoin C'est d'utiliser EJB3; il utilise RMI, est très facile à installer et à déployer, mais vous permet également de transformer vos appels en services Web facilement si vous en avez besoin.
Quoi que vous fassiez, faites et non créez votre propre objet; s'en tenir à une norme.
Les applications peuvent ne pas être en cours d'exécution dans un environnement prenant en charge les EJB –
- 1. Web Service Security: Quels sont les avantages et les inconvénients de WSE3.0 et WCF?
- 2. Quels sont les avantages et les inconvénients de l'utilisation d'OpenID?
- 3. Quels sont les avantages et les inconvénients de l'utilisation de RMI ou JMS entre les niveaux Web et métier?
- 4. Quels sont les avantages et les inconvénients d'avoir plusieurs héritages?
- 5. Quels sont les avantages/inconvénients de py2exe
- 6. Quels sont les avantages et les inconvénients d'utiliser des téléphones iPhone/Android pour écrire des scripts?
- 7. dactylographié par rapport à dactylographié rigoureusement quels sont les avantages et les inconvénients
- 8. Quels sont les avantages et les inconvénients des différents types de champs date/heure dans MySQL?
- 9. Quels sont les avantages et les inconvénients de l'utilisation du pattern Front Controller?
- 10. Quels sont les avantages/inconvénients de l'utilisation d'un CTE?
- 11. Quels sont les avantages et les inconvénients de l'utilisation d'un «index partiel»?
- 12. Quels sont les avantages et les inconvénients du service Msmqdistributor de Enterprise Library?
- 13. Quels sont les avantages et les inconvénients des DTO du point de vue de la performance d'un site Web?
- 14. Quels sont les inconvénients des méthodes statiques?
- 15. Quels sont les avantages/inconvénients de la liste générique (de type) et des collections
- 16. Quels sont les avantages et/ou les inconvénients de l'exécution de chaque site Web dans son propre AppPool?
- 17. Quels sont les avantages et les inconvénients de LinkedHashMaps vs. LinkedHashSets?
- 18. Avantages et inconvénients de DotNetNuke?
- 19. Avantages et inconvénients de DFC et DFS?
- 20. Quels sont les avantages des différentes endiannesses?
- 21. Haskell newbie: utiliser la mise en page ou pas? Quels sont les avantages et les inconvénients (utiliser des exemples)
- 22. Quels sont les avantages et les désavantages des bibliothèques JavaScript JQuery et Glow?
- 23. Quels sont les avantages de Blocking Queue en Java?
- 24. Quels sont les avantages/inconvénients de l'utilisation d'Oracle Auto Segment Space Management?
- 25. Quels sont les avantages/inconvénients d'utiliser un synonyme par rapport à une vue?
- 26. Utilisation de WebServiceHostFactory Avantages et inconvénients
- 27. Quels sont les avantages d'utiliser un concept comme IStableable?
- 28. Curseur verus while loop - Quels sont les avantages/inconvénients des curseurs?
- 29. Services Web vs WCF, avantages et désavantages
- 30. Quels sont les services .NET?
Bonne approche pour y penser. N'oubliez pas non plus la complexité et les problèmes supplémentaires liés à l'exécution d'un registre RMI pour la recherche de services. C'est à tout le moins un port d'addition ouvert et au pire des problèmes d'hébergement de ce registre. –