7.2.4 Klassifikation mobilen Codes Nicht vergessen:  Sowohl das Fernkopieren als auch die Migration von Objekten setzt voraus, daß der Code entweder am.

Slides:



Advertisements
Ähnliche Präsentationen
Wiederholung Betriebssystem bietet eine Abstraktion der Hardware an:
Advertisements

Anwendungen aus Modellen Michael Löwe Forschungskolloquium der FHDW,Hannover Hannover, 21. Februar 2005.
Seminar zur Nebenläufigkeit in verteilten Systemen Kodierungsverfahren vorgestellt von Jens Brauckmann.
Vs61 6 Verteilte Datenverwaltung. vs62 Ziel:Zusammengehöriger Datenbestand soll über mehrere Stationen verteilt werden, z.B. Fragmentierung: in mehrere.
4.2 Gruppenkommunikation (group communication) Bedeutet:Sendeoperation bezieht sich auf mehrere Adressaten - die Mitglieder einer Prozeßgruppe (process.
Netzwerke im Dialogmarketing
Netzwerke im Dialogmarketing
Java: Dynamische Datentypen
FH-Hof Verwaltung von Zeichenketten Richard Göbel.
Java: Grundlagen der Sprache
1 NetWork File System © April 2002, G. Hellberg Network File System Konfiguration und Einsatz.
Vs Facetten der Verteilungsabstraktion Verteilungsabstraktion (distribution transparency) ist Sammelbegriff für verschiedene Eigenschaften eines.
Seminar: Verteilte Datenbanken
Sicherheit von mobilem Code Hauptseminar: Sicherheit in vernetzten Systemen Sicherheit von mobilem Code Oliver Grassow.
Einführung in die Technik des Internets
DVG Einführung in Java1 Einführung in JAVA.
Zukunft des Webs? Dennis Beer Christian Blinde
Hyperstrukturen Ein Beispiel © Katharina Brachmann.
Ausführungsmodell Zustandsübergang einer Transaktion aus Nutzersicht:
Systementwicklungsprojekt:
Applets Java für’s Web.
Gegenstand EDV Thema: Informative Webseiten
Seminar aus Softwareentwicklung: Inside Java and .NET
6.5 Lindas Tupelraum Interaktion von Prozessen über zentralen Umschlagplatz für alle zwischen Prozessen ausgetauschten Daten: Tupelraum (tuple space) (Carriero/Gelernter,
Institut für Informatik III, Universität Bonn, c/o 2001, Präsentation Agenten, Objekte, Komponenten - Agenten, Objekte, Komponenten - ein Paradigma-Vergleich.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Eine Präsentation von Peter Rasser
Beschreiben Sie das Szenario wenn ein ORB einen Server aktiviert und eine Objektimplementation aufruft. Activate Server impl_is_ready Activate Object (GetID.
Beschreiben Sie eine Web Interaktion mittels Java Applets.
ESRI EUROPEAN USER CONFERENCE
Replikation und Synchronisation
Management- und Web Services- Architekturen
Thread Synchronisation in JAVA
7.1.5 Java RMI – Remote Method Invocation
EPROG Tutorium #6 Philipp Effenberger
Wilfried Imrich CuP - Java Erste Vorlesung Entspricht ungefähr Kapitel 1.1 des Skriptums Wilfried Imrich Montanuniversität Leoben Freitag, 4. Oktober 2002.
Parallele Programmierung in Java
Mehrbenutzerzugriff auf GIS-Daten
Voyager Eigenschaften/Vorzüge Universalität: –ROI-Modelle: CORBA, RMI, DCOM –verschiedene Namens-, Verzeichnisdienste Nachrichtentypen: synchron, oneway,
Vs Grundzüge der Fernaufruf-Implementierung = tatsächliche Aufrufbeziehungen Netz Fernaufrufdienst Transportdienst Hardware BS aus Bibl. Vertreter.
Vs Objektpufferung (caching) = dynamische, ad-hoc-Replikation einer Primärkopie: Zugriffswilliger beschafft sich temporär eine lokale Kopie cache.
6.1.2 Sequentielle Konsistenz
Vortrag - Diplomarbeiten (HS I)
4.4 Sperrsynchronisation
WebComposition & WCML Ein Vortrag von Michael Capper & Lars Völker.
7.5.5 Namensdienste (bereits erwähnte Beispiele: Rmiregistry, Portmapper)  dienen der Abbildung von „Namen“ auf Verweise, Nummern,...  sollten ihre Information.
2.3 Implementierung von Prozessen
2 Datenabstraktion Geheimnisprinzip:
Vs Gruppenkommunikation (group communication) Bedeutet:Sendeoperation bezieht sich auf mehrere Adressaten - die Mitglieder einer Prozessgruppe.
Vs Replizierte Objekte Vollständige Replikationsabstraktion ist attraktiv und machbar. 2 Beispiele: Orca(H. Bal, VU Amsterdam, ) = klassenbasierte,
Vs51 5 Verteilte Datenverwaltung. vs52 Situation:Zusammengehöriger Datenbestand ist über mehrere Stationen verteilt, z.B. Fragmentierung: in mehrere Fragmente.
Vs81 8 Verteilte Betriebssysteme (distributed operating systems)
5.1.2 Sequentielle Konsistenz
Vs Verteilte Transaktionen Situation:Fragmentierung: Ein Datenbestand ist über mehrere Stationen verteilt (z.B. verteilte Datenbank, verteiltes Dateisystem,...)
Vs Verteilte Verzeichnisse können ein verteiltes Betriebssystem unterstützen dienen der Abbildung von „Namen“ auf „Daten“ aller Art sollten ihre.
Vs Objektpufferung (caching) = dynamische, ad-hoc-Replikation einer Primärkopie: Zugriffswilliger beschafft sich temporär eine lokale Kopie cache.
6.3 Verteilte Transaktionen
NET Remoting.Net („dotnet“) :von Microsoft eingeführte Plattform für verteilte Anwendungen, virtuelle Maschine für die verteilte Ausführung von.
MD 4/02 CORBA Static/Dynamic Invocation Interface (SII/DII), Interface Repository.
DaimlerChrysler Workshop Architektur HyperbolicModeler  Notes Client  Notes native Java Klassen  Mehr Informationen über Design  Zugriff auf Dokumente.
Distributed Database Systems Parallele Datenbanksysteme von Stefan Schneider.
2.6 Erinnerung: Programmverwaltung Quellencode (getrennt übersetzbare Programmteile) (source code) Übersetzer (compiler, assembler) Objektcode
Algorithmen und Programmierung III - Daten- und Programmstrukturen - WS 00/01 Peter Löhr Teil A - Datenabstraktion und objektorientierte Programmierung.
Objektorientierte (OO) Programmierung
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme Verteilte Anwendungen: Einflußreiche Systeme Dr. Wolfgang Wörndl.
Facetten der Verteilungsabstraktion
(mobile objects, auch Objektmigration, object migration)
6.1.2 Sequentielle Konsistenz
6.3 Verteilte Transaktionen
Algorithmen und Programmierung III
 Präsentation transkript:

7.2.4 Klassifikation mobilen Codes Nicht vergessen:  Sowohl das Fernkopieren als auch die Migration von Objekten setzt voraus, daß der Code entweder am Zielort vorhanden ist (schon geladen oder dynamisch aus dem Dateisystem nachladbar) oder zusammen mit den Daten im Netz übertragen werden kann.  Code-Übertragung zwischen Rechnern mit verschiedener Architektur kommt nicht in Frage, wenn es sich um Maschinencode handelt. (Daten dagegen können stets umcodiert werden!)  Code-Übertragung (wenn möglich) wird natürlich vielfach - und wurde immer schon - auch ohne Objekte eingesetzt.

Allgemeine Situation ohne Objektorientierung: Prozeß A ist an einer Dienstleistung interessiert, Prozeß B ist an deren Erbringung beteiligt, A und B befinden sich auf verschiedenen Stationen S A, S B. Dienstleistung wird erbracht durch Ausführung von Code (evtl. parametrisiert) auf Daten/Ressourcen  Klassifikation von Mobilcode-Paradigmen:

ParadigmaSASA SBSB Client/Server AB Code Daten Remote Evaluation (uploading) A Code B Daten Code on Demand (downloading) A Daten B Code Mobile Agent (process, not object) A Code Daten Code A Code

Extreme Flexibilität dank interpretiertem Code z.B. bei Java: Dynamisches Laden von Klassen (.class) aus Dateisystem oder über Netz Beispiele:  Applets (downloading)  Fernaufruf von Compute Server (uploading)  Per Fernaufruf Vertreterobjekt holen (downloading) (Details: Kap. 9)

7.3 Replizierte Objekte Vollständige Replikationsabstraktion ist attraktiv und machbar. 2 Beispiele: Orca(H. Bal, VU Amsterdam, ) = klassenbasierte, nichtsequentielle Sprache mit replizierten Objekten Javanaise (INRIA 1997/98) = Java mit Object Caching

7.3.1 Orca Datenabstraktion, Klassen, keine Vererbung, keine Verweise object spec Queue; operation append(item: in integer); operation remove(item: out integer); end; object impl Queue;..... representation operation append... operation remove... begin..... initialization end;

Parametermechanismen: Wertparameter in Ergebisparameter out Variablenparameter shared Prozeßtyp: process Producer(q: shared Queue);..... declarations begin..... statements end; Prozeßerzeugung: fork Producer(q); fork Consumer(q);

Semantik gemeinsamer Objekte: Serialisierbarkeit Implementierung gemeinsamer Objekte: Leser/Schreiber-Ausschluß gemäß statischer Code-Analyse Replizierte Implementierung, falls Prozesse verteilt:  Replikat bei jedem Prozeß  aktive Replikation (write-update, nicht write-invalidate)  sequentielle Konsistenz duch vollständig geordnete Rundrufe (mittels Sequencer [4.2.3])

7.3.2 Javanaise Einsatzbereich: CSCW-Systeme..... Javanaise clients Javanaise server CSCW system hier wird GUI Applet vorgehalten, erreichbar über Web Server

Javanaise-Szenario:  Benutzer lädt Applet (übers Netz) und startet es: appletviewer  Applet macht keine Fernaufrufe, sondern Caching,  aber nicht für Einzelobjekte, sondern für Object Clusters: jedes Cluster hat ausgezeichnetes Anker-Objekt, über das es von außen angesprochen wird; Bezugnahme auf andere Clusters über Vertreter.

 Zugriff auf Anker grundsätzlich mit Lese/Schreibsperren, die vom Server (!) verwaltet werden.  Erteilung des Schreibrechts an einen Klienten geht einher mit Invalidierung aller Kopien bei den anderen Klienten.  Somit schwache Konsistenz, gebunden an die Sperrsynchronisation, ausreichend für sequentielle Konsistenz aus Anwendersicht. Replikationsabstraktion? 1. Zentralisiertes Programm entwickeln und austesten (!) 2. Entscheidungen treffen bzgl. Clustering und Anker-Klassen 3. Schnittstellen der Anker mit read/write annotieren 4. Vertreter-Klassen generieren