39 Object Request Brokers

Ähnliche Dokumente
39 Object Request Brokers. 40 Components of an ORB Stubs and Skeletons Stub

E.1 Object Request Brokers

E.1 Object Request Brokers

W.1 Lösung der 4. Aufgabe

36.2 Example ClassLoader Example Appletviewer

CORBA. Eine kurze Einführung. Common Object Request Broker Architecture. Ying Lu

Mobile und Verteilte Datenbanken

Klausur Verteilte Systeme

Softwareschnittstellen

p^db=`oj===pìééçêíáåñçêã~íáçå=

Exercise (Part II) Anastasia Mochalova, Lehrstuhl für ABWL und Wirtschaftsinformatik, Kath. Universität Eichstätt-Ingolstadt 1

ONLINE LICENCE GENERATOR

Programmentwicklung ohne BlueJ

Mobile und Verteilte Datenbanken

-Testen verteilter Anwendungen

RS232-Verbindung, RXU10 Herstellen einer RS232-Verbindung zwischen PC und Messgerät oder Modem und Messgerät

Technical Support Information No. 123 Revision 2 June 2008

Infrastructure as a Service (IaaS) Solutions for Online Game Service Provision

Titelbild1 ANSYS. Customer Portal LogIn

Session 1: Classes and Applets

Exercise (Part I) Anastasia Mochalova, Lehrstuhl für ABWL und Wirtschaftsinformatik, Kath. Universität Eichstätt-Ingolstadt 1

Java RMI Remote Method Invocation


Aber genau deshalb möchte ich Ihre Aufmehrsamkeit darauf lenken und Sie dazu animieren, der Eventualität durch geeignete Gegenmaßnahmen zu begegnen.

NEWSLETTER. FileDirector Version 2.5 Novelties. Filing system designer. Filing system in WinClient

Komponententechnologien Winter 2016/17. Komponenten. 2. Die Anfänge. Peter Sturm, Universität Trier 1

Remote Method Invocation

Auszug aus JAX-WS Folien

Middleware. im Schweinsgalopp

1.1 Media Gateway - SIP-Sicherheit verbessert

1. General information Login Home Current applications... 3

Exercise (Part VIII) Anastasia Mochalova, Lehrstuhl für ABWL und Wirtschaftsinformatik, Kath. Universität Eichstätt-Ingolstadt 1

J RG IMMENDORFF STANDORT F R KRITIK MALEREI UND INSPIRATION ERSCHEINT ZUR AUSSTELLUNG IM MUSEUM LU

Aspektorientierte Middleware Florian Wagner

B I N G O DIE SCHULE. Bingo card: Classroom Items abcteach.com

Abteilung Internationales CampusCenter

Ingenics Project Portal

9. Remote Method Invocation Grundlagen der Programmierung II (Java)

Wählen Sie das MySQL Symbol und erstellen Sie eine Datenbank und einen dazugehörigen User.

Hadoop I/O. Datenintegrität Kompression Serialisierung Datei-basierte Datenstrukturen Prof. Dr. Christian Herta 1/29

Java-Programmierung. Remote Method Invocation - RMI

Klausurvorbereitung VS1 (Prof. Brecht) (B0rg Edition)

Client/Server-Systeme

TomTom WEBFLEET Tachograph

Vorteile von Java und Konvergenz Service Creation mit JAIN Network Management mit JMX Fazit

Prediction Market, 28th July 2012 Information and Instructions. Prognosemärkte Lehrstuhl für Betriebswirtschaftslehre insbes.

Cameraserver mini. commissioning. Ihre Vision ist unsere Aufgabe

Auszug aus Axis2 Schulung

Java Remote Method Invocation (RMI)

eurex rundschreiben 094/10

Exercise (Part XI) Anastasia Mochalova, Lehrstuhl für ABWL und Wirtschaftsinformatik, Kath. Universität Eichstätt-Ingolstadt 1

MATLAB driver for Spectrum boards

Lesen Sie die Bedienungs-, Wartungs- und Sicherheitsanleitungen des mit REMUC zu steuernden Gerätes

Kommunikationsnetze. 2. Direkte TCP/IP-Verbindungen 2.1 Höhere Programmiersprachen

STRATEGISCHES BETEILIGUNGSCONTROLLING BEI KOMMUNALEN UNTERNEHMEN DER FFENTLICHE ZWECK ALS RICHTSCHNUR FR EIN ZIELGERICHTETE

Verteilte Systeme. Verteilte Objektorientierte Systeme I. Prof. Dr. Oliver Haase

Algorithms & Datastructures Midterm Test 1

H Mcast Future Internet made in Hamburg?

Erstellen sicherer ASP.NET- Anwendungen

ReadMe zur Installation der BRICKware for Windows, Version ReadMe on Installing BRICKware for Windows, Version 6.1.2

Wozu dient ein Logikanalysator?

Konzepte von Betriebssystem-Komponenten Middleware RMI

Remote Method Invocation

Netzwerkprogrammierung & Threads

Hazards and measures against hazards by implementation of safe pneumatic circuits

Der Adapter Z250I / Z270I lässt sich auf folgenden Betriebssystemen installieren:

Einsatz einer Dokumentenverwaltungslösung zur Optimierung der unternehmensübergreifenden Kommunikation

Lehrstuhl für Allgemeine BWL Strategisches und Internationales Management Prof. Dr. Mike Geppert Carl-Zeiß-Str Jena

GridMate The Grid Matlab Extension

Using TerraSAR-X data for mapping of damages in forests caused by the pine sawfly (Dprion pini) Dr. Klaus MARTIN

Java Reflection. Meta-Programmierung mit der java.lang.reflection API. Prof. Dr. Nikolaus Wulff

If you have any issue logging in, please Contact us Haben Sie Probleme bei der Anmeldung, kontaktieren Sie uns bitte 1

Kommunikation. Björn und Georg

Nachdem Sie die Datei (z.b. t330usbflashupdate.exe) heruntergeladen haben, führen Sie bitte einen Doppelklick mit der linken Maustaste darauf aus:

... Chair of Mobile Business & Multilateral Security. Lecture 14 Business Informatics 2 (PWIN) FAQ WS 2015/16

Angewandte IT-Sicherheit

WAS IST DER KOMPARATIV: = The comparative

Serviceinformation Nr. 05/10

Praktikum Verteilte Anwendungen

PRO SCAN WASSERANALYSE PER SMARTPHONE WATER ANALYSIS BY SMARTPHONE ANALYSE DE L EAU PAR SMARTPHONE

Security Patterns. Benny Clauss. Sicherheit in der Softwareentwicklung WS 07/08

Themen. Web Service - Clients. Kommunikation zw. Web Services

p^db=`oj===pìééçêíáåñçêã~íáçå=

Mitglied der Leibniz-Gemeinschaft

1.1 Ethernet - Zusätzliche Virtuelle Schnittstallen

Challenges for the future between extern and intern evaluation

NAPTR-Records - in ENUM und anderswo -

Patentrelevante Aspekte der GPLv2/LGPLv2

Übungen zu Softwaretechnik

11: Echtzeitbetriebssystem ucos-ii

Web-Services Implementierung mit Java

Webtests und JMeter. Technologien: Überblick Funktionale Tests: Simplelenium Performance Messungen: JMeter Projekt Setup: Gradle, Jenkins

Theorie und Praxis einer JSON-RPC-basierten Web-API

Business Activity Monitoring Overall, Real Time Monitoring Daniel Jobst, TietoEnator Michael Herr, Deutsche Post SOPSOLUTIONS

Restschmutzanalyse Residual Dirt Analysis

Vorbereitungen Download. AVO-Übung 6. Beispiel. Slice. Varianten u.a. für Linux, Windows, OS X ICE-Dokumentation ICE-Binaries (inkl.

Transkript:

39 Object Request Brokers invoke methods at remote objects (objects that run in another JVM) example ORBs: RMI, JavaIDL OODS 1997-2000 Michael Golm Object Request Brokers 39.312 40 Components of an ORB Communication Layer: transfers data between hosts RPC Layer: defines method invocation semantics and marshalling Object Store: lifecycle management of remote objects Stub and Skeleton Generator: create code for stubs and skeletons Nameserver: find object by name Nameserver Stub Generator Skeleton Remote Object ObjectStore RPC RPC Communication OODS 1997-2000 Michael Golm Components of an ORB 40.313

40.1 Stubs and Skeletons Stub: Proxy for remote object Skeleton: Invokes methods at remote object depending on the method ID 1 Stub Skeleton 4 Remote Object 2 3 RPC and Communication Layers OODS 1997-2000 Michael Golm Components of an ORB 40.314 40.1.1 Stub similar to a proxy for the remote object; implements the remote interface pack method call into a request packet: object ID, method ID, method parameters uses the RPC layer to send request transform returned object into appropriate type and return example generated method code (without exception handling) public int deposit(int param0) { Object[] parameters = new Object[1]; parameters[0] = new Integer(param0); Request req = new Request(ctx, oid, 9, parameters); Object ret = req.send(); return ((Integer)ret).intValue(); OODS 1997-2000 Michael Golm Components of an ORB 40.315

40.1.1 Stub example generated stub class package test; import orb.*; public class AccountImpl_Stub implements test.account { int oid; Context ctx; public AccountImpl_Stub(int oid, Context ctx) { this.oid = oid; this.ctx = ctx; // generated methods //... Context should contain information that is common to all stub objects OODS 1997-2000 Michael Golm Components of an ORB 40.316 40.1.2 Skeleton invoke method at "real" object, given object reference method ID parameters OODS 1997-2000 Michael Golm Components of an ORB 40.317

40.1.3 Skeleton example package test; import orb.*; public class AccountImpl_Skel implements Skeleton { AccountImpl object; public AccountImpl_Skel() { public void init(int oid, Object obj) { this.oid = oid; this.object = (AccountImpl) object; public Object invoke(int mid, Object[] parameters) throws Exception { switch(mid) {... case 9: { return new Integer( object.deposit(((integer)parameters[0]).intvalue())); OODS 1997-2000 Michael Golm Components of an ORB 40.318 40.2 Communication Layer data transfer between hosts use DatagramSocket (UDP) send() receive() UDP Socket UDP Socket receive() send() OODS 1997-2000 Michael Golm Components of an ORB 40.319

40.3 RPC Layer handles forwarding of method invocations is used by the stubs/skeletons uses the communication layer to ship bytes OODS 1997-2000 Michael Golm Components of an ORB 40.320 40.3.1 RPC simplest RPC is a primitive request/reply protocol Request message blocked Reply message Method execution OODS 1997-2000 Michael Golm Components of an ORB 40.321

40.3.2 Request handles forwarding of method invocations is used by the stubs/skeletons uses the communication layer to ship bytes structure of the RPC layer: method() Stub send() Request - serialize request - send packet - block by calling wait() Request invoke() Skeleton process() - read packet - deserialize request object - invoke process() in a separate thread Broker method() Object OODS 1997-2000 Michael Golm Components of an ORB 40.322 40.3.3 Reply handles forwarding of method invocations is used by the stubs/skeletons uses the communication layer to ship bytes structure of the RPC layer invoke() returns Skeleton method returns Object unblock waiting request by calling notify() Acceptor Acceptor Acceptor accept() Receiver Request - serialize Reply or ExceptionReply - send packet Reply ExceptionReply OODS 1997-2000 Michael Golm Components of an ORB 40.323

40.3.4 Marshalling RPC layer transfers parameters in request packet and return value in reply packet == marshalling copy all parameters to the server (better would be: send reference if parameter implements a remote interface) use ObjectStreams/ByteArrayStreams/Datagrams to transfer objects ByteArrayOutputStream stream = new ByteArrayOutputStream(); ObjectOutputStream out = new ObjectOutputStream(stream); out.writeobject(...); byte[] buf = stream.tobytearray(); DatagramPacket packet = new DatagramPacket(buf,... ); OODS 1997-2000 Michael Golm Components of an ORB 40.324 40.3.5 Failure Handling implements a certain invocation semantics exactly once at least once at most once last of many... depends on the service quality of the communication layer cope with communication failures: lost packet non-fifo packet order duplicated packet modified packet OODS 1997-2000 Michael Golm Components of an ORB 40.325

40.3.6 Failure Handling Communication failures may lead to the following problems loss of request message Request message Lost OODS 1997-2000 Michael Golm Components of an ORB 40.326 40.3.7 Failure Handling Communication failures may lead to the following problems loss of reply message Request message Reply message Method execution Lost OODS 1997-2000 Michael Golm Components of an ORB 40.327

40.3.8 Failure Handling unsucessful execution of the request Request message Crash Restart OODS 1997-2000 Michael Golm Components of an ORB 40.328 40.3.9 Failure Handling approximation of exactly once: to cope with lost request messages resend packet after timeout to avoid duplicated invocations when resending use request ID that is the same for the original request and all retransmissions the server uses a reply buffer in case replies get lost (to avoid an additional execution of the request); the reply buffer can be implemented using a Hashtable that maps from request IDs to Reply objects buffered replies can be deleted when the server receives the next request from this client thread coping with server crashes is a bit more complicated... so we ignore it OODS 1997-2000 Michael Golm Components of an ORB 40.329

40.4 Object Store Interface: int registerobject(object obj): returns unique object ID Object lookupbyid(int oid): find object given an object ID Implementation technique: use java.util.hashtable to remember mapping between ID and object reference (hint: first create an Integer wrapper for the oid) OODS 1997-2000 Michael Golm Components of an ORB 40.330 40.5 Nameserver split into an ID finder and a proxy creator ID finder: map names to OIDs void bind(string name, int oid) int lookupid(string name) use Hashtable implement as remote object with OID 1 a realistic nameserver would return references to stub objects instead of OIDs this requires that the class name of the stub is returned together with the OID proxy creator: find ID and class name; create proxy object Object lookup(string name) the Nameserver loads the class and creates an instance of the class OODS 1997-2000 Michael Golm Components of an ORB 40.331

That s it! Now have fun with CORBA! OODS 1997-2000 Michael Golm Components of an ORB 40.332