Source

Magnum / todo-rmi.txt

The branch 'refvalue_branch' does not exist.
Full commit
RMI
====
- Lookup eines objects:
  1. Nachsehen, ob schon Proxy vorhanden
     Falls ja => Return Proxy
  2. Nachsehen, ob Server schon bekannt (ServerId)
     Falls ja => Sende Query an Server
              => Erzeuge Proxy
              => Trage Proxy in ProxyMap oder so ein
              => Return Proxy
  3. Lookup des Servers am Directory via ServerId
     Falls gefunden => Connecte zu Server
                    => Schritt 2
  4. Exception!


Was brauchen wir?
==================
 - RemoteConnectionManager für Verbindungen zwecks lookups


Resolver Object => Reference:
==============================
 - Lookup Reference in Domain via PreRequistered Resolvers?
 

Resolver Reference => Object:
==============================
 - Server lookup Reference self
    => Return Object
 - Server lookup Reference eines lokalen Servers
    => Return Object via Domain
 - Server lookup Reference eines anderen remote Servers
    => Return Proxy via Domain

 - Client lookup Reference des Gegenparts
    => Return Proxy (mehrere lokale Clients für einen Server?!?)
 - Client lookup Reference eines anderen lokalen Servers
    => Return Object via Domain
 - Client lookup Reference eines anderen remote Servers
    => Return Proxy via Domain
 
 
Domain:
========
 - Lookup Reference <=> Object
    - Erzeugung von Proxys on demand (via Delegation an RemoteClient / RemoteServer?)
    - Aufbau von Connections on demand 
    - globale Map References => Objects
    - globale Map Object => Reference
    
 - Named Objects
    - Anlaufstelle für Clients / Benutzer
    - Globale Map Name => Reference, Object
    - Erzeugung von Proxys on demand (via Delegation an RemoteClient / RemoteServer)


Mögliche Fälle des Lookups:
=============================
 - Server lookup Object self:
    => RemoteReference server bekannt
 - Server lookup Object eines anderen lokalen Servers:
    => RemoteReference via Domain
    => Macht Sinn, dass ein Server *optional* Objekte an Domain publishen kann
 - Server lookup Object eines anderen remote Servers
    => RemoteReference via Domain