vsys2
gdg
gdg
-
- 1 / 38
-
Lernkarten
Was versteht man unter Nebenläufigkeitsgrad
Beschreibt die Art wie Nebenläufigkeit realisiert ist.
Was versteht man unter Skalierbarkeit
Aufwand an Anpassungen bei steigenden Anforderungen.
Was versteht man unter Transparenz
Von Außen nicht erkennbare Struktur/Eigenschaft eines Systems.
Was versteht man unter Kommunikationsgrad
Was wird Kommuniziert: Zeichen, Nachrichten, Funktionen, Objekte, Applikationen
Was versteht man unter einem Load Balancer? Welche Vor- und Nachteile hat dieser?
Ein Load Balancer ist ein Koordinator in einem Verteiltem System. Er leitet Requests von Clienten
An die Server Weiter und sendet entsprechende Replys.
Vorteile:
- Einfache Realisierung
- Fairness (wenn mit warteschlange)
- Anzahl der Nachrichten: 3 Nachrichten für Ressourcenzugang (Request, Reply, Release)
Nachteile:
- Koordinator ist Flaschenhals
- Zentraler Fehlerpunkt (Koordinator fällt aus)
- Unklare Ursache bei verzögertem Reply
Was versteht man unter Polling
Satus oder Werteveränderung durch zyklisches abfragen ermitteln.
Was versteht man unter Long Polling
Im Prinzip Polling mit geringerer frequenz, Falls der Server noch keine neuen Informationen für den Client
Besitzt wird allerdings keine leere Antwort gesendet. Der server behält den Request des Clients und sendet
Informationen sobalt er welche hat.
Was versteht man unter Callback
Es wird in einem seperaten Thread auf die Antwort des Servers gewartet. Die Callback Funktion ist die Funktion,
Die nach erhalt der Antwort (z.B. mit Antwort-Daten) ausgeführt wird.
Was bedeutet Schichtenarchitektur
Aufgaben einer Applikation werden in Schichten unterteilt. So können z.B. auch Aufgaben auf Server und Client verteilt werden.
Beschreiben Sie den Begriff Message Oriented Middleware
Bezeichnet Middleware, die auf der asynchronen oder synchronen Übertragung von Nachrichten basiert
Beschreiben Sie die Begriffe EAI, SOA und ESB mit jeweils max. 2 Sätzen und danach ihren Zusammenhang?
- Enterprise Service Bus: Verbindung von beliebigen Applikationen (Komponenten eines Verteilten Systems)
- Service Oriented Architecture: Architekturparadigma
- Enterprise Application Integration: Gesamtkonzept zur Integration von Einzelapplikationen oder Geschäftsfunktionen
SOA : Übergeordnete Architektur
ESB : Verbindung der Services
EAI : Integrationskonzept einzelner Applikationen in Architektur
Beschreiben Sie den Begriff Event-Driven Architecture
Softwarearchitektur in dem das Zusammenspiel der Komponenten durch Ereignisse gesteuert wird
Wie kann ein Thread erstellt werden
class X extends Thread …
X thread = X(); x.start();
Oder
class X implements Runnable …
X thread = X(); new Thread(thread).start();
Was ist ein ExecutorService
TaskQueue -> nächster anstehender Task wird von freistehendem Thread aus Thread-Pool bearbeitet.
Wie können Threadpools (fixed/cached) erstellt werden
ThreadPoolExecutor fixedExecutor = (ThreadPoolExecutor) Executors.newFixedThreadPool(FIXEDSIZE);
ThreadPoolExecutor cachedExecutor = (ThreadPoolExecutor) Executors.newCachedThreadPool();
Thread t = new Thread();
…Executor.execute(t);
Wie funktioniert Notify/Wait
Object monitor = new Object();
// thread 1
synchronized(lock) {
while(bedingung) {
lock.notify(); lock.wait();
}
}
// thread 2
bedingung = true;
synchronized(lock) {
lock.notify();
}
Wie wird Thread.sleep verwendet
try {
Thread.sleep(1000);
} catch (InterruptedException e) {}
Was ist eineRace Condition
Ergebnis der beiden Threads hängt von Verteilung der CPU-Zeit auf Threads ab
Was ist ein Deadlock
Verklemmung: Zwei Threads blockieren sich gegenseitig in dem sie auf eine Ressource warten die der jeweils anderen Threads reserviert hat.
z.B. Deadlock falsche Reihenfolge von wait(), notify()
Was ist Starvation
Rechenleistung unfair/unzureichend verteilt für mindestens einen Thread. Dieser verhungert.
Was bedeutet Serialisierung
Repräsentation eines Objektes als Sequenz von Bytes
Welche Eigenschaften muss eine Klasse haben um serialisierbar zu sein
- Implements Serializable
- Oder Superklasse ist serialisierbar
- transient: Vorraussetzung Wert nach Deserialisierung unnötig oder wiederherstellbar
Wie sieht der Code zum serialisieren eines Objektes in Java aus
OutputStream oStream;
ObjectOutputStream myStream = new ObjectOutputStream (oStream);
myStream.writeObject(myObject);
Wie siet der Code zum deserialisieren eines Objektes in Java aus
InputStream iStream;
ObjectInputStream myStream = new ObjectInputStream (iStream);
MyClass myObject = (MyClass) myStream.readObject();
Was ist ein Socket
- Endpunkt einer Verbindung.
- Zwei Sockets definieren eine Verbindung.
- Speicherbereich für Konfigurationsparameter Ankommende und abgehende Daten
- Plattformunabhängig
- Eindeutige Definition durch IP-Adresse und Portnummer
Beschreiben Sie den Ablauf einer Socketverbindung
Server Client
socket() : New ServerSocket()
bind() : x
socket() : new Socket()
listen() : x connect() : socket.connect()
accept() : socket.accept()
read() : objectInputStream readObject write(): objectOutputStream.writeObject()
write(): ObjectOutputStream.writeObject() read(): objectInputStream.readObject()
close()
Wie sieht der Code zur Erstellung eines Sockets aus
Import java.net.*;
// ServerSocket
ServerSocket socket = new ServerSocket(port);
// ClientSocket
Socket socket = new Socket();
Wie wird eine Verbindung zwischen Sockets hergestellt
//Server
Socket socket = serverSocket.accept();
//client
socket.connect(new InetSocketAddress(hostname,port));
Wie wird in einen Socket geschrieben bzw gelesen
objectInputStream=new ObjectInputStream(socket.getInputStream());
objectOutputStream=new ObjectOutputStream(socket.getOutputStream());
//schreiben
objectOutputStream.writeObject(new String("hey"));
//lesen
String received = (String) objectInputStream.readObject();
Wie wird ein Socket geschlossen
socket.close(); // wirft IOException
Welche Eigenschaften müssen Objekte erfüllen damit sie über RMI versendet werden können
- Implement Interface das von Remote erbt
- Funktionen müssen RemoteException werfen
- Rückgabetyp von Funktionen muss Serializable sein
Was ist Marshalling was muss bei der Klassen erstellung beachtet werden
Konvertierung der Daten für Transfer -> Serializing
- Klasse muss Serializable implementieren
- Nicht serialisierbare Membervariablen mit Keyword "transient" kennzeichnen
Wie können Objekte in der rmiregistry hinterlegt werden
// code kann remote exception werfen
RemoteInterface remObj = new RemoteObject();
RemoteInterface remObjStub = (RemoteInterface) ;
java.rmi.server.UnicastRemoteObject.exportObject(remObj, 0); // port 0 : Laufzeit wählt portnummer
Registry registry=LocateRegistry.createRegistry(port);
registry.rebind("remObj", remObj);
Wie können Objekte der rmiregistry entnommen werden
// code kann remote exception werfen
String remotename = "remObj";
Registry registry = LocateRegistry.getRegistry("localhost", 8900);
rmi = (ClientListener) registry.lookup(remotename);
Beschreiben Sie das Grundkonzept von JMS
- Programmierschnittstelle zur Ansteuerung einer Message Oriented Middleware.
- Client kann JMS zum Senden und Empfangen von Nachrichten verwenden.
- Lose gekoppelte, verlässliche und asynchrone Kommunikation zwischen Komponenten verteilter Anwendung
Beschreiben Sie die verschiedenen POINT-TO-POINT Kommunikationstypen
- Unidirektional: Client A produziiert MSG -> QUEUE -> Client B konsumiert MSG und bestätigt
- Bidirektional: Unidirektional in beide Richtungen also 2 Queues
- Multidirektional: Client A produziiert MSG -> QUEUE -> ein Client X aus Menge von Clienten konsumiert MSG und bestätigt
Nennen Sie 5 Eigenschaften der POINT-TO-POINT Kommunikation
- Entkopplung: Zeitlich und örtlich
- Persistenz: Nachrichten verbleiben bis zur Abholung in der Warteschlange
- Einmaliger Konsum: Nachricht nur einmalig abholbar
- Prioritäten für Nachrichten
- FIFO bei identischen Prioritäten (vgl. Pipe bei UNIX)
Beschreiben sie eine PUBLISH/SUBSCRIBE Kommunikation
- Client produziert MSG und veröffentlicht mit Topic
- MSG wird über Message Broker an alle Clienten versendet die Topic aboniert haben
- Neue Nachrichten überschreiben alte Nachrichten