entanglement:
Baixe o nível e em vez de “web service” escreva “socket”. Tente responder à sua pergunta.
Como você não consegue responder à sua pergunta escrevendo “socket” em vez de “web service”, então isso quer dizer que identificar os nós por IP não é uma boa jogada.
Provavelmente você terá de ter um serviço de diretórios indicando onde e como acessar os nós. Cada nó deve ter um IP “público” (no sentido que é o que deve ser usado para acessá-lo) para que os outros nós consigam acessá-lo. Por exemplo, digamos que o IP “local” é 10.100.1.1 e o IP “público” (na sua rede) seja 172.22.22.13 e o serviço atenda na 8080. Essa informação só pode ser obtida usando-se um diretório (talvez um LDAP ou DNS interno, quem sabe).
Hum! Mas veja entanglement, a arquitetura que tenho em mente não é algo totalmente descentralizado. Basicamente, é assim. Existe um nó que será o owner/root, ele será responsável por algumas ações. Uma delas é montar grupos, que terão um limite pré-configurado. Eu terei que ter uma lista de quem quer “Jogar” (o middleware é para um jogo e para uma simulador de robótica), para que os usuários possam escolher. Então, imagina que você configurou para 4 pessoas, a cada 4 pessoas um grupo é formado e a mensagem passa a ser multicast, ao invés de um broadcast da vida. Então, posso ter N grupos com X nós cada grupo. Mas como você bem observou, o IP de cada nó deve ser “público”.
Eu pensei em algo agora, veja se estou delirando. Como tenho um nó que centraliza informações, para cada nó instalado no momento em que ele for realizar a conexão, posso “capturar” o IP público da máquina instalada e enviar ao nó owner/root, assim, ele tem registrado o IP “correto” e resolveria o problema, o que acha ?
E essa “captura” do IP “público”, seria via LDAP? A equipe da minha frente tem uma experiência legal com LDAP, vou aproveitar e trocar uma ideia com eles depois.
Obrigado pela atenção e desculpe se me estendi muito.