Foros del Web » Programación para mayores de 30 ;) » Java »

Pregunta compleja con EJB y la red

Estas en el tema de Pregunta compleja con EJB y la red en el foro de Java en Foros del Web. Hola, tengo una duda muy grande y si alguien la sabe porfavor respondanme. Estoy trabajando con jboss como contenedor de EJB y no tengo problemas. ...
  #1 (permalink)  
Antiguo 23/09/2004, 08:36
 
Fecha de Ingreso: enero-2004
Mensajes: 144
Antigüedad: 20 años, 3 meses
Puntos: 0
Pregunta compleja con EJB y la red

Hola, tengo una duda muy grande y si alguien la sabe porfavor respondanme.

Estoy trabajando con jboss como contenedor de EJB y no tengo problemas. Me conecto desde una navegador a traves de un servlet a un EJB session, el que guarda su estado y lo mantiene entre varias páginas o conexiones mediante otros servlet, lo que está muy bien.

Ahora mi pregunta es un poco más compleja:
Como un EJB session identifica al cliente que se está conectando. Es por su IP?

Y si es por su IP (y esta es la pregunta!!!) Como lo hace cuando el computador cliente esta trás algun firewall (como IpTables) y todos lo computadores de esa red muestran el mismo ip para internet?

Como se puede diferenciar dos computadores de la misma red interna?

El EJB lo hace solo?, tiene algún campo que identifique cada pc?

Gracias por leer esto y si sabes la respuesta (o al menos me asegure que SI puede identificar dos pc de la misma red) escríbelo aquí.

Chao
  #2 (permalink)  
Antiguo 23/09/2004, 11:05
Avatar de hugo777  
Fecha de Ingreso: enero-2002
Ubicación: Lima, Perú
Mensajes: 757
Antigüedad: 22 años, 3 meses
Puntos: 1
Hola, los EJB no identifican al cliente mediante el IP, en realidad ellos no identifican al cliente que se conecta a ellos, salvo que uno mismo programe el EJB y al cliente para que por algún valor que pueden pasarse puedan mantener una relación de comunicación.

A diferencia de la sesión de una aplicación web, que si mantiene un ID (identificador) que permite identificar la sesión de manera única con el cliente y establecer una línea de comunicación.

Ahora, tú no tienes que preocuparte de la comunicación que realizas con un EJB, para eso esta el EJB Container sobre tu servidor de aplicaciones para encargarse.

En todo caso, que es lo que quieres realizar?
__________________
Saludos,

H@C..
  #3 (permalink)  
Antiguo 23/09/2004, 13:57
 
Fecha de Ingreso: enero-2004
Mensajes: 144
Antigüedad: 20 años, 3 meses
Puntos: 0
Bueno es un sistema para un edificio que seguramente va a estar tras un firewall (ipTables y cosas así). Los usuarios se deben conectar a un servidor que esté en internet. Imagina que un administrador inicie sesión, y otro usuario dentro del edificio (en otro pc) intente entrar. Si EJB session verifica por ip, este segundo pc podría entrar.

Mi duda entonces es saber:

Como un EJB session sabe quién (que servlets de que computadores ) tiene sesiones iniciadas y quienes no, si para la internet todos está inmersos tras un mismo ip.

En este caso, el servlet es el cliente que invoca al EJB.

Quizás sea trabajo de container de EJB?

Gracias
  #4 (permalink)  
Antiguo 23/09/2004, 14:50
Avatar de hugo777  
Fecha de Ingreso: enero-2002
Ubicación: Lima, Perú
Mensajes: 757
Antigüedad: 22 años, 3 meses
Puntos: 1
Hola Machine80, efectivamente las aplicaciones manejan firewalls y todas esas restricciones a nivel de red antes de llegar a tu webapp, pero tus EJB no tienen que preocuparse de eso.

Vuelvo a mencionar que el EJB no sabe que cliente se conecta al él, ni valida un IP, ni nada.. porque el EJB es un objeto en memoria que recibe llamadas a sus métodos, él los ejecuta y da una respuesta. Por lo tanto la duda que tienes no se da, porque el EJB de session no sabe nada de que cliente los llama, eso tampoco significa que mezcle a los usuarios, ya que cada usuario es un "hilo" diferente.
Si lo que quieres es saber que clientes acceden desde tu EJB, pues tu tendrías que implementar el código y dependerá de la lógica de tu aplicación y como diferencies tú a los usuarios.

Tal vés de lo que tendrías que preocuparte, es por la forma como llamas a tus EJB, si los estas llamando a través de su interfaz remota y estas tú colocando el IP del servidor de aplicaciones en tu código cliente (servlet) para accederlo; pues ahí tienes que tener en cuenta que la máquina donde corre tu cliente pueda "ver" a la máquina donde corre tu EJB (tu servidor de aplicaciones). Si son la misma máquina física (osea el webcontainer y ejbcontainer están en la misma máquina) no tienes que preocuparte por restricciones de red.

Espero te haya aclardo algo más el tema..
__________________
Saludos,

H@C..
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:53.