RMI - ServerFactory und ein paar Fragen

Status
Nicht offen für weitere Antworten.

eooc

Mitglied
Tag zusammen ..

Aus dem Buch: Distributed Programming with Java von Qusay H. Mahmoud habe ich folgendes Beispiel getestet und dazu eine bestimmte Frage:


kleine Übersicht (gekürzt da nicht zwingend notwenidig zur Frage)

CityFactory: interface - Methoden: public City2Impl getCityServer(String name)
City2: interface - Mehoden: getPopulation() || getTemperature()


Code:
import ...
public class City2Impl extends UnicastRemoteObject implements City2{
... ausformulierung der Methoden ....
}

Code:
import ...

public class CityFactoryImpl extends UnicastRemosteObject implements CityFactory{
... ausformulierung der Methoden ....

public staic void main(String argv[]) {    
System.setSecuritymanager ....
try
{
CityFactoryImpl obj = new CityFactoryImpl();
Naming.rebind("//hostname/CityFactory",obj);
}catch (....
}
}

Code:
import java.rmi.*;

public class City2App.java {
public stativ void main(String args[]) {
Remote obj = null;
CityFactoryImpl cityfactory;
City2 ottawa = null;
City2 toronto = null;
int ottawaPopulation = 0;
int torontoPopulation = 0;

try {
obj = Naming.lookup("//hostname/CityFactory");
} catch (Exception e){
e.printStackTrace();
}

if(obj instanceof CityFactoryImpl) {
cityFactory = (CityFactoryImpl) obj;
}

//create a server for each city.
try{
ottawa = new CityFactoryImpl().getCityServer("Ottawa");
toronto = new CityFactoryImpl().getCityServer("Toronto");
}catch (Exception e)
{e.printStackTrace();}
}

// Invoke methods on those servers
.... 
}

Mal abgesehen davon, das man das ganze mit java 1.5 nun anders macht frage ich mich aber dennoch:

Wieso wird in der City2App das "obj" Object erzeugt und späer nicht genutzt um die Server zu erzeugen ?
Macht das überhaupt so Sinn RMI in der Art zu nutzen ? Wenn ja .. welchen nutzen hat das ganze ?

Was meint ihr dazu ? Ich steh da gerade etwas auf dem Schlauch ...

Schönen Gruß
EooC
 

Bleiglanz

Gesperrter Benutzer
ist nur ein pattern, "service locator"

-> die factory soll es dem client nur einfacher machen, seine "Dinger" zu finden, er braucht z.B. nicht wissen, unter welchem Namen die Städte (City2) gebunden sind

Die einzige Abhängigkeit ist der lookup-Name der Factory, das macht den Code etwas robuster (man kann am Server mehr "ändern" ohne den Client anzufassen ...)
 

eooc

Mitglied
Mmhmm ok ..

Ich frage mich dann allerdings ob es nicht doch sinnvoller wäre die Server für die einzelnen Objekte über eine "zentrale" CityFactory zu erzeugen, wenn man beabsichtigt von mehreren Clients auf die CityFactory zuzugreifen.

Z.B. soll einer der Clients permant die Temperaturen aller Städte der CityFactory anzeigen und auch dann sich selbständig aktualisieren wenn eine der Städte eine Änderung der Temperatur aufweist. Realisieren würde ich das über CallBack Methoden.

Also meine Idee für den Server geht dahin, dass zu jeder City ein eigener CityServer existiert. (was ja bereits gegeben ist wenn ich das richtig verstehe). Dazu soll aber die CityFactory auch eine "Übersicht" über alle bestehenden CityServer haben. Die Übersicht über alle CityServer soll dazu dienen die CityFactory im Umfang zu überwachen und ggf. das erzeugen neuer CityServer zu verhindern wenn ein bestimmter Wert erreicht worden ist.

Soweit noch nachvollziehbar und logisch oder verrenne ich mich da gerade ?
Hat jemand evtl. eine andere Idee oder Anregungen dazu ?

Schönen Gruß
EooC
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
X Kann ich einen Client/Server verbindung hinkriegen die mir alle paar Sekunden die aktuellen Daten per Realtime zuschickt ? Netzwerkprogrammierung 9
V erste Client - Server Anwendung, paar Fragen wie Socketverbindung checken usw. Netzwerkprogrammierung 4
S paar Fragen Netzwerkprogrammierung 6
S Fragen zu Java Webservice mit Axis2 Netzwerkprogrammierung 0
N Fragen zu Sockets Client Netzwerkprogrammierung 3
B Grundlegende Fragen zu einem Verbindungsaufbau in einem LAN Netzwerkprogrammierung 15
lumo Ping implementierung in TCP mit fragen... Netzwerkprogrammierung 7
M Fragen zu Java NIO Netzwerkprogrammierung 2
F Fragen zu Netzwerkspiel, ArrayList verschicken Netzwerkprogrammierung 5
S HTTP Grundlegende Fragen zu java multithreading & Glassfish Netzwerkprogrammierung 3
dayaftereh Fragen zu Apache Mina? Netzwerkprogrammierung 5
A Fragen zum Ablauf Netzwerkprogrammierung 14
DeviAn Über ein Linux Server ein Windows Server nach einer File fragen Netzwerkprogrammierung 6
Developer_X Habe fragen zur Chat Programmierung Netzwerkprogrammierung 4
G Fragen zu RMI Netzwerkprogrammierung 8
S [RMI] Allgemeine Fragen Netzwerkprogrammierung 5
G Fragen/Probleme mit JavaMail Netzwerkprogrammierung 2
A RMI -Activation; Fragen zur automat. Objektaktivierung Netzwerkprogrammierung 2

Ähnliche Java Themen

Neue Themen


Oben