Quando é necessário fazer um sistema comunicar-se com outro (por exemplo, seu sistema está em Java e ele precisa ser acessado por outro escrito em .NET), a forma que está sendo usada hoje em dia é Web Services.
É algo bastante simples, na verdade, porque nada mais é que deixar um servlet especial no seu web server que entende um determinado formato de mensagem (XML -> SOAP).
Esse servlet chama um componente Java seu (ou um EJB, ou um servlet mesmo).
O que pode ser complicado é que Web Services são um bocado pesados (porque toda a conversação é via XML, há um monte de dados que não servem para nada, são pura burocracia). Mas para interligar dois sistemas é a solução indicada, porque é relativamente fácil implementar uma interface Web Services para seu sistema se você fez as coisas direitinho.
EJBs não são tão complicados assim, mas você precisa aprender a usar o XDoclet se quiser usar o EJB 2.1. (O EJB 3.0 ainda não está pronto).
Além disso, dentro da medida do possível, use apenas Stateless Session Beans ou Message-Driven Beans; Entity Beans, pelo menos na versão 2.1, não valem a pena, e Stateful Session Beans têm aplicação muito restrita (talvez seja melhor guardar os dados de sessão na sessão do web server).
kina
Eu não acho EJB difícil, ainda mais quandos e utiliza o XDoclet, que gera as interfaces e o arquivo XML para vc.
Utilize Web Service quando vc tiver comunicação entre aplicativos de outras linguagens como C#.
Se for apenas para utilizar em java, não o faça. É desperdício de processamento, pois o Web Service é um pouco mais lento.
rodrigovfsilva
Oi Cláudia,
também não vejo dificuldade nenhuma com EJB’s. Eu desenvolvo com o WSAD e fico bem tranquilo. Tenho somente 6 meses de JAVA/J2EE e vi que toda essa complexidade é uma forma de facilitar o desenvolvimento. Você tem uma Framework embaixo desse seu futuro sistema?