Kein Folientitel

Werbung
Evolution in
verteilten Systemen
Der Evolutionäre Trader
Markus Völter, MATHEMA AG
[email protected]
Evolution in verteilten Systemen, Copyright © 2001, MATHEMA AG
Überblick
Evolution in der Biologie, Prinzipien
Beispiel: Biston Betularia
Softwaresysteme und Evolution
Abgrenzung zu genetischen Algorithmen
Service Evolution
Der evolutionäre Trader
Anwendungsbeispiele
Erweiterungsmöglichkeiten
Evolution in verteilten Systemen, Copyright © 2001, MATHEMA AG
Evolution in der Biologie
mit Unterstützung von
Jens Tränkle
Evolution in verteilten Systemen, Copyright © 2001, MATHEMA AG
Evolution in der Biologie
 Evolution ist der Motor der Entwicklung
 Sämtliche biologische Entwicklung
beruht auf Evolution
 Offensichtlich funktioniert das!
 Prinzipien
Mutation
Fitness
Selektion
(Separation, gen. Isolation)
 Randbedingungen
Population (Genpool)
Umwelt
Evolution in verteilten Systemen, Copyright © 2001, MATHEMA AG
Prinzipien: Mutation
Ein Lebewesen ändert sich „zufällig“ in seiner
Genstruktur
Es ist unklar, ob diese Änderung
...sich durchsetzt
...von Vorteil ist, oder von Nachteil
...oder überhaupt keinen Einfluss hat
Hängt ab von Fitness/Umwelt
Evolution in verteilten Systemen, Copyright © 2001, MATHEMA AG
Randbedingung: Umwelt
Eine Spezies befindet sich in einer bestimmten Umwelt
Diese Umwelt ändert sich möglicherweise im Laufe der
Zeit
Umwelt erzeugt den Selektionsdruck
Evolution in verteilten Systemen, Copyright © 2001, MATHEMA AG
Prinzipien: Fitness
Fitness definiert die Eignung eines Lebewesens, mit
der gegebenen Umwelt zurecht zu kommen.
Sie kann explizit festgelegt werden: In Relation zum
idealen Phänotyp
Man erkennt die Fitness an der Überlebensquote (bzw.
der Fortpflanzungswahrscheinlichkeit bzgl. Des
Genpools)
Evolution in verteilten Systemen, Copyright © 2001, MATHEMA AG
Prinzipien: Population
Eine Menge „gleicher“ Lebewesen, deren interne
genetische Struktur aber leicht unterschiedlich ist.
Änderungen treten auf entweder
an einem Individuum (üblicherweise Krankheit)
bei Fortpflanzung
wichtige (und dauerhafte) Änderungen treten durch die
Genfrequenz auf, d.h. eine Population entwickelt sich
im Laufe von Generationen
Evolution in verteilten Systemen, Copyright © 2001, MATHEMA AG
Prinzipien: Selektion
 Basierend auf der Fitness überleben Lebewesen mit einer
bestimmten Genstruktur (Genotyp) eher, als andere.
 Für das Überleben ist der Phänotyp verantworlich, d.h. die
nach aussen sichtbaren Konsequenzen den Genotyps.
 Fittere bringen ihre Gene mit höherer Frequenz in die
nächste Generation ein
 Selektion sorgt also dafür, dass die für eine bestimmte
Umwelt besser geeigneten Lebewesen „bevorzugt“ werden,
und die anderen verdrängt werden und letztlich aussterben.
Evolution in verteilten Systemen, Copyright © 2001, MATHEMA AG
Beispiel: Biston Betularia (Englische Motte)
Zwei verschiedene Arten:
Dunkel und Hell
Dunkel/Hell abh. von einem Gen
1848: <2% dunkel
1898:
95% aller Motten dunkel, in industrialisierten Gebieten
Deutlich weniger in ländlichen Gebieten
Änderung der Häufigkeit im Genpool der Population:
Evolution
Evolution in verteilten Systemen, Copyright © 2001, MATHEMA AG
Beispiel: Biston Betularia (fortgesetzt)
Änderung der Häufigkeit von
2% auf 95% aufgrund von Selektion:
Industrielle Revolution
Bäume dunkel vom Rauch
Vögel konnten die hellen besser
sehen, und fraßen daher mehr
helle. Die dunklen hatten daher
mehr Nachfahren: Selektion
Evolution in verteilten Systemen, Copyright © 2001, MATHEMA AG
Definition Evolution
Biologie: Veränderung des Genpools einer Population
im Laufe von Generationen
Allgemeiner: Änderung der Eigenschaften in einer
Menge von Entitäten
Schrittweise:
Eigenschaften mutieren (zufällig)
Individuen werden selektiert (aufgrund Fitness bzgl.
der Umwelt; Selektionsdruck)
Populationen entwickeln sich weiter
Evolution in verteilten Systemen, Copyright © 2001, MATHEMA AG
Softwaresysteme und
Evolution
Evolution in verteilten Systemen, Copyright © 2001, MATHEMA AG
Traditionelles Vorgehen
Analyse – Design – Impementierung
Software wird für eine bestimmte Umwelt
(Systemlandschaft) entwickelt
Änderungen bedürfen erneuter Analyse
Iterative Prozesse
Ziel ist immer noch ein System für eine
Systemlandschaft
Evolution in verteilten Systemen, Copyright © 2001, MATHEMA AG
Schwachstellen des traditionellen Ansatzes
Moving Target Problem: Die Anforderungen ändern sich
während der Entwicklung
System wird nie „fertig“
Instabil
Analyse ist teuer und zeitaufwendig
Evolution in verteilten Systemen, Copyright © 2001, MATHEMA AG
Ziel: Entwickeln für eine sich ändernde Umwelt
Frameworks
Variable Stellen können „konfiguriert“ werden
Nachteil: Variable Stellen müssen von vornherein
bekannt sein
Systemfamilien
Familie von Systemen ist Ziel der Entwicklung
Ziel sind verschiedene, aber statische Umgebungen
Nachteil: Auch hier müssen die Unterscheidungsmerkmale vorher bekannt sein
Evolution in verteilten Systemen, Copyright © 2001, MATHEMA AG
Gegenhypothese: „Mob Software“
Richard P. Gabriels Vortrag auf der OOPSLA 2000
Planung im Rahmen von SW-Entwicklung ist nicht
möglich
Anarchie ist besser geeignet um zu „schönen“
Ergebnissen zu kommen
Linux Entwicklung:
Viele Leute arbeiten „unkontrolliert“ an der
Weiterentwicklung
Ergebnis entsteht aus dieser „chaotischen“
Entwicklung durch „Selektion“
Evolution in verteilten Systemen, Copyright © 2001, MATHEMA AG
Genetische Algorithmen
Anderes Ziel
Nicht die „genetische“ Erstellung von Software ist das
Ziel, sondern:
Verwendung von explizit programmierten genetischen
Vorgehensweisen zur Lösung eines Problems
Üblicherweise Such- oder Optimierungsprobleme
Funktioniert nur, wenn es nicht nur die Lösung gibt,
sondern verschiedene akzeptable Lösungen
(Kontinuum)
Evolution in verteilten Systemen, Copyright © 2001, MATHEMA AG
Genetische Algorithmen (Beispiel)
Evolution in verteilten Systemen, Copyright © 2001, MATHEMA AG
Service Evolution
Evolution in verteilten Systemen, Copyright © 2001, MATHEMA AG
Definition Service
Eine Softwarekomponente erbringt einen bestimmten
Dienst
Dieser wird mittels eines Interfaces spezifiziert
Client ist nur gegen Interface programmiert, kennt die
Implementierung nicht
Beispiele:
Java Interface - Object
CORBA oder RMI Objekte
Enterprise Java Beans
Jini
Evolution in verteilten Systemen, Copyright © 2001, MATHEMA AG
Definition Service (II)
Service spezifiziert üblicherweise nur die Signatur von
Operationen und (in Prosa) deren Bedeutung
Es wird nicht spezifiziert: Qualität des Services, z.B.
Reaktionszeit
Genauigkeit
Zuverlässigkeit
Verfügbarkeit
...
Evolution in verteilten Systemen, Copyright © 2001, MATHEMA AG
Service Evolution
...ist die
evolutionäre Verbesserung
der Qualität eines Services.
Evolution in verteilten Systemen, Copyright © 2001, MATHEMA AG
Service Evolution
evolutionäre Verbesserung
der Qualität eines Services.
evolutionär: schrittweise, ungeplante
Veränderung einer Menge von Individuen
Evolution in verteilten Systemen, Copyright © 2001, MATHEMA AG
Service Evolution
evolutionäre Verbesserung
der Qualität eines Services.
Verbesserung: Selektionsverfahren sorgt
dafür, dass Service später besser an die
Umwelt angepasst ist als vorher.
Evolution in verteilten Systemen, Copyright © 2001, MATHEMA AG
Service Evolution
evolutionäre Verbesserung
der Qualität eines Services.
Qualität des Services: Alle Freiheitsgrade,
die die Spezifikation des Services noch
ermöglicht.
z.B.
Performanz, Genauigkeit, Zuverlässigkeit, ...
Evolution in verteilten Systemen, Copyright © 2001, MATHEMA AG
Merkmale: Service Evolution
„Service“ muss durch eine Menge von individuellen
Service-Instanzen repräsentiert werden.
Jede Instanz muss sich verändern können.
Es muss eine Art Rückmeldung (Selektion) durch die
Umgebung passieren.
Die Service-Instanzen wissen nicht unbedingt, warum
sie von der Umwelt bevorzugt werden.
Evolution in verteilten Systemen, Copyright © 2001, MATHEMA AG
Der evolutionäre Trader
Evolution in verteilten Systemen, Copyright © 2001, MATHEMA AG
Trader (I): Was ist das?
Trader liefert Dienstinstanzen basierend auf einer
beschreibenden Anfrage eines Clients
Trader
getService( A, properties )
S1, A, Props
A
S1
A
S2
B
S3
B
S4
B
S5
S2, A, Props
Client
S3, B, Props
S2
S4, B, Props
S5, B, Props
Evolution in verteilten Systemen, Copyright © 2001, MATHEMA AG
Trader (II): Eigenschaften
Beschreibung besteht aus
Interface des Dienstes
Einer Menge an Properties
Auch „komplexere“ Queries sind prinzpiell möglich
Trader entscheidet, welche Instanz zurückgeliefert
wird, wenn mehrere auf die Suchanfrage passen
Evolution in verteilten Systemen, Copyright © 2001, MATHEMA AG
Trader (III): Vorteile
Entkopplung der Provider von ihren Benutzern
Neue Dienstprovider können dynamisch registriert und
zurückgezogen werden
Lastverteilung ist möglich
Round Robin
Basierend auf Lastauskunft
Basis für Failover
Wenn Dienst stirbt, dann kann Client sich einen neuen
holen
Findet Anwendung u.a. in:
CORBA Trader Service
Jini‘s Lookup Service
Evolution in verteilten Systemen, Copyright © 2001, MATHEMA AG
Der evolutionäre Trader
Population Mehrere Provider pro Dienst
Umwelt muss vorhanden sein  Clients
Selektion der Dienste
 Rückmeldung der Clients,
Policy des Traders
Zufällige Mutation  „Fehler“ des Traders
Weiterentwicklung  Veränderung im Dienst
Evolution in verteilten Systemen, Copyright © 2001, MATHEMA AG
Evolutionärer Trader: Anfrage
Client stell Anfrage an den Trader
Trader
getService( A, properties )
Client
S1, A, Props
S2, A, Props
S3, B, Props
Evolution in verteilten Systemen, Copyright © 2001, MATHEMA AG
A
S1
A
S2
A
S3
Evolutionärer Trader: Referenz-Lieferung
Trader liefert Referenz auf Service zurück, plus ein
VotingTicket
Trader
S1, A, Props
Client
S2, A, Props
S1
S3, B, Props
T
Evolution in verteilten Systemen, Copyright © 2001, MATHEMA AG
A
S1
A
S2
A
S3
Evolutionärer Trader: Verwendung der Srv.
Client verwendet den Service, ohne den Trader zu
benötigen
Trader
T
Client
S1
S1, A, Props
S2, A, Props
S3, B, Props
Evolution in verteilten Systemen, Copyright © 2001, MATHEMA AG
A
S1
A
S2
A
S3
Evolutionärer Trader: Voting
Danach wendet sich der Client an den Trader und
bewertet den Service; dazu benötigt er das
VotingTicket
Trader
vote(
T , S1, rating )
Client
S1, A, Props
S2, A, Props
S3, B, Props
Evolution in verteilten Systemen, Copyright © 2001, MATHEMA AG
A
S1
A
S2
A
S3
Evolutionärer Trader: Voting II
Speichert sich die Bewertung in einer Datenbank ab
( T , S1, rating )
Trader
S1, A, Props
Client
S2, A, Props
S3, B, Props
Evolution in verteilten Systemen, Copyright © 2001, MATHEMA AG
A
S1
A
S2
A
S3
Evolutionärer Trader: Voting III
Trader führt Statistiken über die „Bewertung“ der
Services durch die Clients
Client
ID Rating
Trader
S1 r1
S2 r2
S1, A, Props
... ...
S3 S2, r3
A, Props
S3, B, Props
Evolution in verteilten Systemen, Copyright © 2001, MATHEMA AG
A
S1
A
S2
A
S3
Evolutionärer Trader: Anfrage (II)
Client stell Anfrage an den Trader
Der Service mit dem besten Rating wird
zurückgeliefert
Trader
getService( A, properties )
Client
S1, A, Props
S2, A, Props
S3, B, Props
Evolution in verteilten Systemen, Copyright © 2001, MATHEMA AG
A
S1
A
S2
A
S3
Evolutionärer Trader: Information
Trader informiert die Services regelmässig über ihre
Qualität, und die der anderen (anonym)
Trader
S1, A, Props
Client
S2, A, Props
S3, B, Props
Evolution in verteilten Systemen, Copyright © 2001, MATHEMA AG
A
E
S1
A
E
S2
A
E
S3
rating(sn)
Evolutionärer Trader: Entwicklungsphase
Die Services können sich nun verändern, wenn sie
wissen, dass ihre Qualität schlecht ist
Sie wissen aber nicht wie sie sie verbessern können;
Annahmen sind möglich
Trader
S1, A, Props
Client
S2, A, Props
S4, B, Props
Evolution in verteilten Systemen, Copyright © 2001, MATHEMA AG
A
S1'
A
S2''
A
S4
Evolutionärer Trader: Anfrage (III)
Trader liefert manchmal auch den nicht-besten Dienst
zurück; dieser kann sich ja in der Zwischenzeit
verbessert haben!
Trader
getService( A, properties )
Client
S1, A, Props
S2, A, Props
S4, B, Props
Evolution in verteilten Systemen, Copyright © 2001, MATHEMA AG
A
S1'
A
S2''
A
S4
Evolutionärer Trader: Anfrage (IV)
Wenn sehr viele clients den besten Service bekommen,
wird dessen Belastung möglicherweise höher;
Damit wird sein Rating schlechter.
Andere Services bekommen wieder eine Chance.
Evolution in verteilten Systemen, Copyright © 2001, MATHEMA AG
Evolutionärer Trader: Benefits
Alle Vorteile des Traders
Kein Koordinationsaufwand über die Art der Bewertung
Diese Koordination ist grosses Problem!!
Extrem lose Kopplung
Services entwickeln sich zufällig weiter
Chance für unerwartete Veränderung
Dynamische, schrittweise Anpassung an eine sich
verändernde Umwelt
Clients bestimmen die Qualitäten der Services,
allerdings indirekt
Evolution in verteilten Systemen, Copyright © 2001, MATHEMA AG
Evolutionärer Trader: Nachteile
Je nach Szenario, langsame Anpassung an sich
verändernde Umwelt
Nicht jeder Client bekommt immer den besten Service
Qualität der „Dienste“ kann sich ändern, auch nach
unten
Evolution in verteilten Systemen, Copyright © 2001, MATHEMA AG
Anwendungsbeispiele
Evolution in verteilten Systemen, Copyright © 2001, MATHEMA AG
Beispiel: Matrix Calculation Service
Dienst zur Berechnung von Matrixoperationen
multiplizieren, dividieren, addieren, ...
Qualitätsaspekte:
Genauigkeit
Performanz
Rating: z.B. Zahl zwischen 0 und 100
Weiterentwicklung: Verbesserung dieser Aspekte durch
Programmierung
Evolution in verteilten Systemen, Copyright © 2001, MATHEMA AG
Beispiel: Radarstellungen
Radarstellung bietet Dienst:
Scannen eines Geibietes
Überschneiden: Also
mehrere „gleiche“ Dienste
Untersch. Qualität:
Wetter, Jamming, Position
Rating durch die CCC
Clients
Verbesserung d. Qual.: CCC
Anderes Band
Reparatur
Verlegung
Evolution in verteilten Systemen, Copyright © 2001, MATHEMA AG
CCC
Radar
Radar
Netz
Radar
CCC
Erweiterungsmöglichkeiten
Evolution in verteilten Systemen, Copyright © 2001, MATHEMA AG
Erweiterung: Verhungern lassen
Wenn die verschiedene Dienste unter der Kontrolle des
Traders laufen, können den schlechteren Diensten die
Resourcen beschränkt werden:
Handler Threads
Thread Priorität,
etc.
Evolution in verteilten Systemen, Copyright © 2001, MATHEMA AG
Erweiterung: „Sozialhilfe“
Trader kann den schlechten Diensten mit Absicht
bessere Ratings zukommen lassen, um im Falle von
Ausfällen des besten noch ein Backup zu haben.
Insbesondere interessant im Zusammenhang mit
„Verhungern lassen“
Evolution in verteilten Systemen, Copyright © 2001, MATHEMA AG
Erweiterung: Benachrichtigung bei Änderung
Trader liefert manchmal auch die nicht-optimalen
Provider zurück, da die sich potentiell geändert haben
können.
Evolution ist sehr langsam.
Neue Services (oder geänderte) benachrichtigen den
Trader über die Änderung
Trader gibt denen gezielt mehr Chancen
Evolution in verteilten Systemen, Copyright © 2001, MATHEMA AG
Das war‘s!
Vielen Dank.
Fragen? Kritik? Anregungen?
Evolution in verteilten Systemen, Copyright © 2001, MATHEMA AG
Herunterladen