VSK HSLU
Verteilte Systeme und Komponenten HSLU
Verteilte Systeme und Komponenten HSLU
-
- 1 / 28
-
Lernkarten
Sie kennen zwei verschiedene Algorithmen zur Synchronisation von physischen Uhren.
- Berkeley Algorithmus
Zeitserver fragt alle Maschinen nach ihrer Zeit und macht eine Durchschnittszeit - Algorithmus von Cristian
Passives System. Ein Zeitserver wird für die Zeit angefragt. Dieser Antwortet und der Client berechnet die Zeit (t1) + RTT/2) gesetzt RTT = Rount Trip Time
Weil die Zeit nicht zurückgestellt werden kann, wird diese einfach so lange verlangsamt, bis sie stimmt.
Was kennzeichnet eine logische Uhr
Alle Systeme einigen sich über eine Zeit
Kein UTC
Welcher Middleware Form entspricht RMI
Kommunikationsorientiert Middleware
Nenne drei wichte Transparenzformen
- Ortstransparenz
Ort ist dem Benutzer nicht bekannt - Zugriffstransparenz
Immer gleicher Zugriff, egal ob Lokal oder aus dem Netz - Nebenläufigkeitstranzparenz
Mehrere Benutzer können auf den Dienst zugreifen. Applikation kümmert sich um den Rest.
2- Tier
- Client
- Database
3-Tier
- Client
- Application
- Database
Implementation von RMI
- Remote Interface mit marker Interface (extends remote) definieren!
- Remote Interface implementieren
- RMI Repository starten
- Remote Objekte erzeugen und registrieren
- Client implementieren
Voraussetzungen für RMI
- Jede zur Verfügung gestellte Methode kann die RemoteException auslösen
- Parameter/Rückgabewert eines Klassentypes
- Muss Serializable sein
- Parameter/Rückgabewert eines Interfacetypes muss ebenfalls das Interface Remote implementieren.
Das Remote Objekt muss von welcher klasse Ableiten und welches interface implementieren?
- extends UnicastRemoteObject implements IremoteObject
Wie muss die RMI Registry gestartet werden?
- java.rmi.registry.LocateRegistry.createRegistry(RMIPORT)
- Registry reg = LocateRegistry.getRegistry(RMIPORT)
- reg.rebind(BIND_NAME, ObjectToExport)
Wie kann der Client auf das Remote Object zugreifen über die RMI
- Registry registry = LocateRegistry.getRegistry(rmiHost, rmiPort)
- remoteObject rmiServer = (remoteObject) registry.lookup(bindName);
- rmiServer.subscribeToServer((remoteObject) rmiclient)
Security Manager Policy definieren
file rules.policy mit folgendem Inhalt anlegen
grant {
permission java.security.AllPermission;
};
dann im Code
- System.setProperty("java.security.policy", "rules.policy");