EJB est principalement sur un modèle de programmation pour la façon dont vous implémentez Business Logic appelable. Votre code s'exécute dans un conteneur qui gère la gestion, le clustering, les transactions et la sécurité. Votre composant peut être appelé par et nombre de mécanismes différents y compris les Appels Java locaux, RMI/IIOP pour l'invocation à distance et également les Services Web, donc oui votre EJB peut en effet avoir un WSDL et être appelé pour d'autres environnements non-Java. Si vous démarrez plutôt du point de vue d'avoir un WSDL, qui spécifiera probablement SOAP/HTTP, alors vous êtes libre de l'implémenter dans de nombreuses technologies différentes, et de l'invoquer via ce protocole spécifique, qui de nombreux clients différents peuvent utiliser. La grande question est de savoir à quel point vous pouvez facilement gérer ces problèmes de mise en œuvre - l'environnement d'implémentation que vous avez choisi peut vous aider beaucoup ou vous laisser beaucoup de choses.
Résumé: vous ne comparez pas vraiment like-with-like. Les services Web sont très sur l'interface, EJB très au sujet de la mise en œuvre.
Je vois les deux "plates-formes" comme des interfaces et des implémentations. – Jan
Je tape Enter à bientôt:/ Mais je suis d'accord, EJB inclut plus de détails de mise en œuvre et est donc un cadre plus complet. Par contre, EJB et WS spécifient le protocole pour les transactions à distance, par exemple. – Jan
Web Services ne dit rien du tout sur la mise en œuvre. Il définit en effet des protocoles pour la sécurité, les transactions, les sessions etc. Il ne dit rien sur la façon dont vous l'implémentez, ne vous aide pas à le faire. Vous allez généralement à un cadre choisi pour vous aider. Les fournisseurs sérieux soutenant les services Web (le camp de JEE et MS et beaucoup d'open source etc.) tous offrent l'aide de mise en application, l'EJB étant un exemple. – djna