Hej,
 Er der nogen der har erfaring med at knytte forbindelse mellem
 flere geografisk adskilte RMI servere? Jeg har 3 RMI servere
 som ligger på hver deres maskine, hvor de har hver deres stubs/skels
 osv. De skulle gerne arbejde sammen, så de fungerer, som både servere
 og klienter.
 
 Tunneling (fra en klient køres en metode på et server-objekt,
 som så kører en metode på et andet server-objekt) skulle
 kunne gøre det, hvis der bruger wait/notify for at undgå deadlock.
 Jeg har ikke prøvet dette i praksis, men ved at det bruges.
 
 En besked fra en (chat) bruger kunne også distribueres til alle
 servere med en naming.lookup - f.eks., men er det en klodset/-
 langsom løsning?:
 
 // Server/client sender en besked, som modtages på både
 // server/client0, server/client1 og server/client2
 public class Server/Client0 {
   public static void main(String[] args){
     try {
       ServerClient0 server0 =
 (ServerClient0)Naming.lookup("rmi://host.server0/ServerClient0");
       ServerClient1 server1 =
 (ServerClient1)Naming.lookup("rmi://host.server1/ServerClient1");
       ServerClient2 server2 =
 (ServerClient2)Naming.lookup("rmi://host.server2/ServerClient2");
      // kalde metoder som sender en besked til brugere på alle
      // serverede
     catch(Exception e) {}
   }
 }
 
 Jeg er ikke klar over om naming.lookup tager lang tid, så performance
 degraderes så det betyder noget. Der er tale om en chat-applikation
 hvor der sendes en del beskeder frem og tilbage i systemet. Systemet
 skal køre på et LAN.
 
 Er der nogen der har svaret på dette og/eller nogle ideer om, hvordan
 problemet med flere RMI servere der arbejder sammen kunne løses,
 så modtages de med allerstørste taknemlighed.
 
 Med venlig hilsen
 John
 
 
  
            
             |