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