Home
Diplomarbeit - xatlantis.ch
Contents
1. geh ren API bin modules Dieses Code Modul beinhaltet die Anbindung an den XML XML Service so Parser von Apache Xercesc XMLO2 bin modules Dieses Code Modul beinhaltet die Implementation und LOG Service so Anbindung des Logging Dienst log4cxx von Apache LOGACXX bin modules Namensdienst f r Remote Method Invocation und Remote NameServer so Objects A 3 Programme und Skripts Folgende Applikationen und Skript Dateien werden mit dem Framework ausgeliefert API bin zeus Diese Datei ist eine Implementation des Zeus Framework f r die Konsole Mit ihr k nnen logische Einheiten aufgebaut werden e Clustering e Verteilte Applikationen Server Dienste bin mandelbrot Eine Beispielimplementation zur Darstellung von Mandelbrot Mengen Die Applikation ben tigt das Code Modul bin modules MandelbrotCellModule so welches die Mandelbrot Menge berechnet bin modec Eine Beispielimplementation zur Berechnung und Darstellung von Bewegungen in einem Film Die Applikation ben tigt das Code Modul bin modules MotionDetectModule so welches Benjamin Hadorn Seite 142 von 162 Fachhochschule f r Informatik Bern Diplomarbeit API den Film l dt und verarbeitet bin zeustest Testapplikation zum Testen der Basisklassen run_ nameserver Startet den Namensdienst welcher zum Registrieren von Remote Objects Kommunikationskan le der Zell
2. API MODULEXPORT PRE unsigned long MODULEXPORT POST registerLibrary NAMESPACE Zeus ISingletonManager manager Diese Funktion wird beim Laden der Bibliothek aufgerufen Die Bibliothek kann durch den Singleton Manager alle System Singletons ermitteln und seine statischen Singletonreferenzen auf die System Singletons setzen API MODULEXPORT PRE unsigned long MODULEXPORT POST unregisterLibrary NAMESPACE Zeus ISingletonManager Diese Funktion wird kurz vor dem Entladen der Bibliothek aufgerufen Bei den meisten Bibliotheken wird der Code zur Registrierung immer gleich aussehen Deshalb kann hier das Makro verwendet werden Es initialisiert die wichtigsten Singletons und erzeugt einen Logger zur Ausgabe von Informationen in eine Datei oder in eine Konsole Initialisieren der Bibliothek MregisterLibrary L MeineBibliothek MunregisterLibrary Es gibt 2 Arten wie ein Code Modul gebraucht werden kann Das Code Modul wird nur zur Erzeugung von Objekten gebraucht Das Code Modul wird durch ein X Objekt vom Typ TModule geladen und eine Session wird erstellt Beide Varianten sind auch in Kombination einsetzbar Am h ufigsten wird jedoch die erste Variante gew hlt Hier eine kurze Erl uterung der Funktionalit t und der Unterschiede Benjamin Hadorn Seite 106 von 162 Fachhochschule f r Informatik Bern Diplomarbeit 16 1 Code Modul zur Erzeugung von
3. Schnittstelle IXObjectFactory kK TXMLObjectFactory Q Schnittstelle IXObject L__ _ IXRootObject O IXLoaderObject Module Object Model 2 O IModule Cell Computing Model O ICellCom Abbildung 31 Basisklassen und Ableitungen 14 3 1 Implementation eines X Objekts Ein X Objekt erbt immer von einer Basisklasse TXObject oder TXRootObject oder von einer Unterklasse dieser beiden Basisklassen Zur Registrierung von X Objekten wurden Makros angefertigt Die Makros sind in der Datei zeusbase System Interfaces IXObjectImplHelper hpp definiert Benjamin Hadorn Seite 77 von 162 Fachhochschule f r Informatik Bern Diplomarbeit API REG _ SUB _BEGIN classid Dieses Makro startet die Definition der X Objekt Registrierung Als Parameter muss die ID der Klasse angegeben werden API REG SUB ADD classid classname Dieses Makro dient dem Zuordnen eines Klassennamens zu der ID der Klasse Ein X Objekt kann auch mehrere Klassennamen besitzen im XML welche die gleiche ID referenzieren API REG_SUB_END Dieses Makro beendet die Definition API REG _ ROOT _BEGIN classid Dieses Makro startet die Definition der X Wurzelobjekt Registrierung Als Parameter muss die ID der Klasse angegeben werden API REG ROOT ADD classid classname Dieses Makro dient
4. u 44444ssnnnnne nenn 145 A 5 Der Namensdienst aan a ea 146 A 5 1 Konfiguration der Zellen u 24u0 4 4444rsRResHRn Rennens 147 B Messungen vom Klonverhalten ussssssnsnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn 148 B 1 Klonen von Zellen 148 B 2 Abbauen von Zellen een 148 B 3 Messungen shanin e aiia n a a aeea 149 Benjamin Hadorn Seite 5 von 162 Fachhochschule f r Informatik Bern Diplomarbeit C Messungen mit Shared Memory 44444444444RRR RR RRR nn nnnnnnnnnnnnnnnnnennen nennen 152 G 1 K nfigur li n nun assst ee isn 153 D Messungen mit verteilten Applikationen us0nsnenneeneeenenne 155 D 1 Unterschied der Performance Inprozess oder Verteilen 155 D 2 Vergleichsmessung a na see er 156 D 3 Konfiguralions ssse ss 158 EVersionsgeschichle szn enn n nee 161 kiteratufverzeichhis 2 na ad ei 162 Benjamin Hadorn Seite 6 von 162 Fachhochschule f r Informatik Bern Diplomarbeit 1 Vorwort Durch den steigenden Bedarf an Informationen und durch die globale Vernetzung der Gesellschaft werden Softwarel sungen komplexer und dadurch schwerer wartbar Wie sehen Softwarel sungen zuk nftig aus und wo haben wir noch Potential bei der Verarbeitung von Informationen In diesem Zusammenhang wurde das Cell Computing Model entworfen Es definiert ein Software Modell welches Aufbau und Arbeitsweise von biologischen Organismen
5. Dieses Makro meldet ein X Objekt bei der Objektfabrik ab Das folgende Beispiel zeigt eine Definition der X Objektklasse TInputCell Eine Wurzelobjekt wird mit den entsprechenden Makros analog definiert Benjamin Hadorn Seite 79 von 162 Fachhochschule f r Informatik Bern Diplomarbeit InputCell h include lt zeusdev AbstractCell h gt include lt zeusbase System XObjectFactory h gt 3 BEGIN NAMESPACE Zeus eilasisz immpuU CTCE INi PUNC TAS trac tee IN pubiHie TInputCell IXMLNode node REG SUB _BEGIN TInputCell BECESUBRADDI TEMP LIE ee TETTNpUE CEM REG SUB END protected valzenell SETS private hi END NAMESPACE Zeus Tabelle 6 Header Datei f r das X Objekt TInputCell 14 3 2 Wichtige Methoden des X Objekts Ein paar Methoden sind hier zu erw hnen die bei der Implementation von X Objekten beachtet werden m ssen API Zeusbase System XObject bool MOUALIFIER unfreeze Diese Methode wird bei allen X Objekten aufgerufen wenn der Objektbaum vollst ndig geladen wurde Ein X Objekt soll erst hier seine Referenzen im Objektbaum ermitteln Diese Methode muss der Basisklasse weitergeleitet werden bool MOUALIFIER freeze Diese Methode wird jedem X Objekt aufgerufen wenn der Objektbaum freigegeben werden soll Diese Methode muss der Basisklasse weitergeleitet werden Benjamin Hadorn Seite 80 von 162 F
6. Fachhochschule f r Informatik Bern Diplomarbeit 20 Projektspezifisches Vorgehensmodell Als Vorgehensmodell wird ein iteratives Modell gew hlt Dabei wird das Projekt in Arbeitspakete unterteilt Die Arbeitspakete werden sequeniiell als Prototypen in das Framework integriert Dabei spielen die Design Reviews und Code Reviews mit dem technischen Betreuer einerseits eine qualit tssichernde Rolle andererseits dienen sie als Entscheidungspunkte f r weiteres Vorgehen Diese Reviews werden kontinuierlich nach jedem Designschritt und bei jeder Integration der Teilprodukte gemacht Empfohlen wird eine Zykluszeit von 4 5 Wochen Da das Projektteam aus nur einem Projektsachbearbeiter besteht und das Projekt eine Art Forschungsprojekt darstellt wird kein Vorgehensmodell nach Hermes verwendet keine Submodelle und somit auch kein Tailoring angewendet Arbeitspaket Priorit t Beispiel Bildverarbeitungsprozess e Analyse der Performance e Vergleich zur herk mmlichen Anwendung Sicherheitskonzept f r CCM e Finger print e Security oder Polizisten Zellen Spezifikation CCM vervollst ndigen Hoch Hoch Hoch Mobile Zellen die sich ber das Netzwerk auf andere PCs gegeben k nnen Mittel Gebrauch von Petrinetz Strukturen zur Beschreibung von Prozessen Theoretisch erarbeiten Mittel Diese Arbeitspakete sind im Anhang noch n her spezifiziert und den Aufwand gesch tzt Benjamin Hadorn Seite
7. Zellen k nnen auch den DNA Abschnitt wechseln Somit kann sie bei Bedarf helfen andere Aufgaben zu erledigen Geschieht dies aber unkoordiniert so sprechen wir etwa von Krebs oder einem Geschw r 3 1 4 Das Immunsystem Die Sicherheit oder Lebensf higkeit bez glich Krankheiten wird bei komplexeren Lebewesen durch das Immunsystem realisiert Das geschieht durch Antik rper und den weissen Blutzellen die eine Art Polizei bilden Krankheiten werden durch das Immunsystem erkannt Als Reaktion werden Antik rper produziert welche die Erreger neutralisieren Fremdk rper und neutralisierte Erreger werden durch die weissen Blutzellen gefressen und somit entfernt Benjamin Hadorn Seite 13 von 162 Fachhochschule f r Informatik Bern Diplomarbeit 3 2 Ideenkatalog Das neue Modell soll nach dem Grundsatz der Natur gebaut werden Es existiert aus Zellen was ein modularer Aufbau bedeutet Die Struktur gibt auch hier dem Modell den Namen Computing Cell Model CCM Das CCM soll gewissermassen einem lebenden Organismus entsprechen Die wichtigsten Merkmale von CCM sollen hier stichwortartig aufgef hrt sein Regenerierung e Das Generieren und Teilen von Zellen das Wegr umen der abgestorben Zellen Verwaltung der Ressourcen e Erkennen von Fremdk rper und deren Bek mpfung Security Parallele Verarbeitung der Aufgaben Multitasking e Aufteilen Verarbeiten und Zusammensetzen der Aufgaben e Autonome Anpassung an die Umgebun
8. Abbildung 7 Zust nde einer Zelle In einem multitaskf higen Betriebssystem k nnen Zellen als Prozesse oder Threads implementiert werden Benjamin Hadorn Seite 23 von 162 Fachhochschule f r Informatik Bern Diplomarbeit 5 2 Erzeugen und Abbauen von Zellen Das System soll sich dynamisch bez glich der Eingangslast verhalten Dazu muss ein Verfahren gefunden werden welches sich m glichst stabil verh lt 1 2 1 2 1 1 1 0 8 1 Count Count 0 6 0 9 0 4 0 7 0 5 10 15 20 3 3 0S 10 15 20 25 30 Time i aj b Time Abbildung 8 Zeigt die Verhaltensweisen von Klonalgorithmen welche mit der Zeit instabil werden a oder sich an ein Optimum angleichen b 5 2 1 Erstellen von Zellen die Zellenfabriken Die neuen Zellen werden von einer Zellenfabrik erzeugt Diese Zellenfabrik ist ein Zellenhaufen welcher speziell zum Bau von anderen Zellen konstruiert wurde Wann die neuen Zellen erstellt werden kann nicht eindeutig definiert werden Es gibt Zellen die eine Herstellungspriorit t haben aber schlussendlich entscheidet die Fabrik welchen Auftrag sie zuerst erledigt Sobald die Zelle erstellt wurde wird sie automatisch in Betrieb genommen und kann nun ihre Aufgabe aufnehmen Die Zellenfabriken werden durch ein weiter unten beschriebenes Botschaftssystem benachrichtigt welche Zellenart erstellt werden muss Sind gewisse Zellen voll ausgelastet werden Botschaften ausgesch ttet die von den entsprechenden Fabriken verstande
9. Fachhochschule f r Informatik Bern Diplomarbeit Output Pipes von den Registrierungsstellen Aus Gr nden der Effizienz k nnen diese ausgehenden Kan le auch in der Zellenumgebung zwischengespeichert werden Das Suchen anderer Kommunikationskan le wird mehrstufig durchgef hrt 1 Zuerst wird versucht die Zelle lokal zu finden Das geschieht durch das Suchen einer Zelle im Framework mit Hilfe der lokalen Registrierungsstelle Wird die Zelle gefunden wird ein interner Kommunikationskanal erstellt ber den Shared Memory 2 Wird die Zelle nicht gefunden wird eine Registrierungsstelle im LAN Local Area Network abgefragt Unter Umst nden gibt es mehrere Zellen mit dem gleichen Namen die aber auf verschiedenen Host Rechner laufen Die Registrierungsstelle gibt alle gefunden Zellen zur ck die in Frage kommen k nnten Die Anzahl der R ckgaben kann eingeschr nkt werden wenn viele gleichnamige Zellensysteme eingesetzt werden 3 Werden entfernte Zellen gefunden kann mit jeder oder einer gewissen Anzahl der Zellen eine Verbindung hergestellt werden Netzwerk Kommunikationskanal So kann zum Beispiel die Zelle A mit mehreren Zellen vom Typ B kommunizieren Ein Arbeitspaket wird aber immer nur an eine bestimmte Zelle des Typs B gesendet Dabei ist es Zufall welche Zelle B das Paket erh lt Alle Zellen einer Umgebung teilen sich die gleichen Eingabekan le Stirb eine Zelle ab dann bernehmen andere Zellen dieser Umgebung
10. wenn wenig Arbeit zu verrichten ist hnlich wie beim Muskel Dieses Auf und Abbauen geschieht nicht unmittelbar sondern ist eine tr ge Angelegenheit Dieser Vorgang kann durch andere Systemkomponenten auch beeinflusst werden 3 2 3 Lernf higkeit Das System soll gegen ber heutiger Systeme autonomer werden Das heisst das System soll sich den Anforderungen dynamisch anpassen k nnen Erfahrungen sammeln und diese Erfahrungen anwenden k nnen Damit soll die Lebensf higkeit und damit auch die Lebensdauer des Systems deutlich erh ht werden In einer ohnehin schon sehr kurzlebigen Zeit k nnte so gerade in der Informatik etwas nachhaltiger entwickelt werden Das CCM wird durch ein neuronales Netzwerk erweitert Dieses Netzwerk dient als Gehirn Kommandozentrale des Systems Erfahrungen und verarbeitungstechnische Daten werden hier miteinander verkn pft Das CCM wird so zu einem lernf higen autonomen System 3 3 Zieldefinition Das Cell Computing Model ist ein Konzept welches auf dem objektorientierten Modell aufbaut In folgenden Bereichen soll eine Vereinfachung gegen ber dem objektorientierten Modell erzielt werden Schnellere Entwicklung von autonomen lernf higen Systemen Entwicklung von komplexen Systemen vereinheitlichen Stabile Systeme bez glich Absturz und Angriffe von aussen Parallel processing f r Datenverarbeitung Benjamin Hadorn Seite 15 von 162 Fachhochschule f r Informatik Bern Diplomarbeit
11. hler auf Null wird das Objekt gel scht Jede Schnittstelle hat eine eindeutige ID Diese ID ist in der aktuellen Version des Zeus Framework einer Nummer Die Schnittstellen IDs des Frameworks sind in der Datei zeusbase Config InterfaceID hpp definiert Kundenspezifische Schnittstellen IDs k nnen in der Datei zeusbase Config CustomInterfaceID hpp definiert werden Die R ckgabewerte wie zum Beispiel RET_NOERROR sind ebenfalls in der Datei zeusbase Config InterfaceID hpp definiert Das folgende Beispiel zeigt ein Casting von einer Basisschnittstelle zu einer spezialisierten Schnittstelle Casting mit Schnittstellen Tabelle 3 Beim erfolgreichen Casting wird RET NOERROR zur ckgegeben Der interne Referenzz hler wird automatisch erh ht deshalb muss danach ein release erfolgen Benjamin Hadorn Seite 70 von 162 Fachhochschule f r Informatik Bern Diplomarbeit 14 1 3 Die Basisklasse TZObject Alle konkreten Klassen sind von dieser Basisklasse abgeleitet Sie implementiert die Methoden der Basisschnittstelle IAUnknown Will eine solche Klasse weitere Schnittstellen implementieren geschieht dies in C durch die Mehrfachvererbung Durch vorgefertigte Makros wird die Speicherverwaltung automatisch in die Klasse eingef gt Die Makros sind in der Datei zeusbase System Interfaces IZUnknownImplHelper hpp definiert API MEMORY MANAGER DECL Dieses Makro deklariert die Speiche
12. 123 von 162 Fachhochschule f r Informatik Bern Diplomarbeit 21 Entscheidungspunkte und auszuliefernde Ergebnisse W hrend der Projektphase existieren folgende Entscheidungspunkte Die Reihenfolge ist im Kapitel 7 2 Projektplanung definiert Entscheidungspunkt Ergebnisse Zust ndigkeiten QS Diplomarbeit Auftrag TB Hr Hett Initialisierung Projekthandbuch TB Konzept Diplomarbeit Analyse TB Experte Modell TB Experte Realisierung Diplomarbeit Anwendung TB Experte CCM Spezifikation TB Experte Abschluss Diplomarbeit Reflektion TB Experte PSB Projektsachbearbeiter TB Technischer Betreuer Benjamin Hadorn Seite 124 von 162 Fachhochschule f r Informatik Bern Diplomarbeit 22 Methoden und Werkzeuge In diesem Kapitel sind f r die einzelnen Submodelle wie Software Engineering SE und Projektmanagement PM die Methoden und Werkzeuge definiert 22 1 Projektmanagement PM Aktivit t Methode Werkzeug Planung erstellen Iteratives Vorgehen Open Office Feinplanung erstellen Prototyping Open Office HTML Projektberichte erstellen Dokumentation nach Vorlage Open Office Sitzungen planen Nach Projektplan E Mail HTI Bern 22 2 Software Engineering SE Aktivit t Methode Werkzeug Design erstellen Unified Modelling Language Visio von MS Dokumentation f r Produkt Dokumentation nach Vorlage Open Office erstellen Code Dokumentat
13. 162 Fachhochschule f r Informatik Bern Diplomarbeit D Messungen mit verteilten Applikationen Mit der Mandelbrot Menge wurden Messungen durchgef hrt die das verteilen einer Applikation auf verschiedene Computer untersucht Dabei wurden verschiedene Konfigurationen untersucht Variante Beschreibung Var1 7 Arbeits PC s a 2 533GHz und ein Laptop 1GHz zum Anzeigen der Daten Var2 1 Arbeits PC a 2 533GHz und ein Laptop 1GHz zum Anzeigen der Daten Var3 Inprozess auf dem Laptop 1GHz Var4 Inprozess auf einem PC 2 533GHz Var5 6 Arbeits PC s a 2 533GHz und ein PC 2 533GHz zum Anzeigen der Daten Var6 Inprozess kombiniert mit 6 Arbeits PC s a 2 533GHz D 1 Unterschied der Performance Inprozess oder Verteilen Der Unterschied von Variante 1 und Variante 3 zeigt den Aufwand wenn entweder alles auf einem Rechner gerechnet werden muss 3 oder wenn die Arbeit auf mehrere PC s verteilt werden kann Bereits bei einem zus tzlichen PC Variante 2 ist eine wesentliche Steigerung zu sp ren Benjamin Hadorn Seite 155 von 162 Fachhochschule f r Informatik Bern Diplomarbeit Networking with LapTop 55 50 45 40 35 a 25 N Var3 20 15 10 5 0 Column B Column C Column D Column E Column F Column G Column H D 2 Vergleichsmessung Dies ist eine Vergleichsmessung zwischen einem Laptop mit 1GHz Prozessor Variante 3 und einem PC mit 2 533GHz Prozes
14. 892 973 1054 1135 1216 1297 1378 1459 1540 1621 1702 1783 1864 1945 Abbildung 42 Messung eines stabilen Systems mit variabler Eingangslast Measure Time zeigt die Messdauer Dargestellt mit Faktor 100 Job Count ist die Gr sse des Meldungseingangs und Cell Count zeigt auf wie viele Zellen aktiv sind Das System wird mit folgenden Parameter instabil Parameter Wert T yag 1 0 sec T iiy 0 1 sec N max 20 jobs N react 15 jobs Laaa 1 Lyg 1 2 w 7 Benjamin Hadorn Seite 150 von 162 Fachhochschule f r Informatik Bern Diplomarbeit Measure Time Job Count Cell Count N Hk Il i 1 123 245 367 489 611 733 855 977 1099 1221 1343 1465 1587 1709 1831 1953 2075 2197 2319 2441 2563 2685 2807 2929 Abbildung 43 Messung eines instabilen Systems Klar ersichtlich ist der Unterschied zur vorangehenden Abbildung Weil sehr viele Zellen erstellt und wieder abgebaut werden ist die Performance beim Verarbeiten der Arbeitspakete schlechter Measure Time Kurve Benjamin Hadorn Seite 151 von 162 Fachhochschule f r Informatik Bern Diplomarbeit C Messungen mit Shared Memory Zum Messen einer verteilten Applikation im Sinne von mehreren Zellen die auf einem Computer laufen wurde die Applikation modec verwendet Diese Applikation detektiert in einem Film Bewegungen Die modec Anwendung mit dem Zeus Framework ist f r Multipro
15. Beispiel einer Code Modul Implementation 110 17 Das Sicherheitskonzep t 000004400004040000H0nnnnnnnnnnn nn nnnnnnnnennnnnnnn 113 17 1 Sicheres Laden von Code Modulen 424244444444 4000 113 17 2 berwachung der Zellen 114 18 Einleitung Projektlhandbuch 2 22 322 822 116 19 Projekibeschreibung een Kara 117 19 1 Ausgangssilualionee 2222 eeeeeeeeessse resterer rrrrrrrr rerne rnnnennne na 117 19 1 1 Bestehende Produkte zu CCM ssssssseesssnrrnnrrrrrennnnrnnnrereeen 118 192 Problemstellung reent area 118 19 2 1 Spezifikation zum Cell Computing Model 118 19 2 2 Implementation der Finger Print Technik 119 19 2 3 Beispiel Implementation nnnnnnaennnnneeeeeennnenneenenrnrrenrrnr neren 119 19 2 4 Reflektieren und Verbessern des System 119 Benjamin Hadorn Seite 4 von 162 Fachhochschule f r Informatik Bern Diplomarbeit 19 2 5 Mobile Zellen fakultativ uu0000044000eenennnnneneen nn 120 19 3 Projektrisiken ar2222e nee een 120 194 Zellen RER 122 19 5 Vorgehensstralegie u a seen 122 20 Projektspezifisches Vorgehensmodell 24444444444HH nenn 123 21 Entscheidungspunkte und auszuliefernde Ergebnisse 124 22 Methoden und Werkzeuge 125 22 1 Projektmanagement PM 222220444400
16. Clusters Network Computer Abbildung 28 Clustering mit normalen PCs oder Workstations zu einem Grosssystem Die Zellensysteme werden auf den PCs installiert welche untereinander mit einem Netzwerk verbunden sind Durch eine Registrierungsstelle Namensdienst welche auf einem der PCs l uft k nnen sich die Zellensysteme gegenseitig finden und somit miteinander kommunizieren Die PCs welche gemeinsam eine Registrierungsstelle ben tigen bilden einen so genannten Bearbeitungscluster Mehrere Bearbeitungscluster k nnen nun ber die Registrierungsstellen miteinander gekoppelt werden Die Registrierungsstellen tauschen Informationen untereinander aus welche die einzelnen Zellensysteme betreffen Zellensysteme von verschiedenen Bearbeitungscluster k nnen so miteinander kommunizieren Benjamin Hadorn Seite 59 von 162 Fachhochschule f r Informatik Bern Diplomarbeit Abbildung 29 Mehrere Bearbeitungscluster werden durch die Registrierungsstellen miteinander gekoppelt Dadurch k nnen Systeme verschiedenster Gr sse realisiert werden 12 2 2 Bediensoftware f r Maschinen Bei der Bediensoftware f r Maschinen spricht man etwa auch von Human Machine Interface HMI Das HMI hat die Aufgabe Maschinendaten m glichst schnell zu visualisieren Benutzereingaben an die Maschine weiterzuleiten und Aktionen auf der Maschine auszuf hren Das Hauptproblem ist fast immer die Zeit Je nach Datenmenge und Art der Maschinensteuerung
17. Diplomarbeit Zellen ID er Zelle Zellen ID Zellen ID Zellenfabrik SystemiD Zellen ID I Zellen System SystemID Abbildung 16 Das Direct Communication System DCS dient als direkter Draht zu Zellensystemen Es dient der schnellen Kommunikation zwischen Zellen und Kontrollzentren Design Hinweis F r eine m gliche Umsetzung k nnte das Soap Protokoll von Nutzen sein Die Adressierung der einzelnen Systeme und Zellen kann dem TCP IP Standard angelehnt sein 8 1 2 Workflow Workflows finden wir im t glichen Leben In einer Firma sind die Workflows beliebte Instrumente um den Werdegang eines Produkts visuell darzustellen Hier beschreibt der Workflow wann welches Teilprodukt wo verarbeitet werden soll Es gibt Stellen wo eine Abteilung auf eine andere warten muss um bestimmte Teilprodukte wieder zu eine Ganzen zusammen zu bauen Auch k nnen redundante Wege definiert werden Stellvertreter die im Falle von Krankheit oder Ferien einspringen k nnen Im Cell Computing Model k nnen wir auch Workflows definieren um dem System zu sagen wann welches Arbeitspaket wohin gesendet werden soll Der Workflow wird also mit dem Arbeitspaket mitgeliefert N here Informationen sind im Kapitel Arbeitsweise der Zellen zu finden Benjamin Hadorn Seite 37 von 162 Fachhochschule f r Informatik Bern Diplomarbeit 8 2 Open Communication System OCS Das Open Communication System dient im Gegensatz zum DCS als Trendkommunikati
18. Hadorn Seite 57 von 162 Fachhochschule f r Informatik Bern Diplomarbeit Es setzt moderne Konzepte wie eXtensible Markup Language XML XMLO1 Remote Method Invocation RMI und Objektserialisierung um und bietet eine einfache objektorientierte API Application Programming Interface 12 2 Einsatzgebiet Das Zeus Framework kann auf sehr verschiedene Arten eingesetzt werden Durch seine modulare Struktur eignet es sich gut f r grosse Projekte Mehrere Entwickler k nnen gleichzeitig an einem Produkt arbeiten Integration von Softwarekomponenten ist sehr einfach m glich Einsatz f r hochdynamische verteilte Anwendungen bei denen k nstliche Intelligenz zum Einsatz kommt Es eignet sich f r parallele Verarbeitung von Daten Clustering Es kann zur Entwicklung von Anwendungen dienen bei denen Java oder C aus Grund der schlechteren Effizienz nicht eingesetzt werden kann Bsp bei hardwarenaher Software Bedien und Kommunikationssoftware f r Maschinensteuerungen 12 2 1 Clustering Durch Clustering k nnen mehrere PCs zu einem Grosssystem zusammengeschaltet werden Diese PCs verarbeiten Daten parallel und l sen ein Problem gemeinsam Die Arbeitslast ist je nach Problem verschieden und die PCs reagieren selbst ndig auf die nderung der Auslastung Dies ist ein typischer Einsatz des Cell Computing Model Benjamin Hadorn Seite 58 von 162 Fachhochschule f r Informatik Bern Diplomarbeit Cell System Multiprocessor
19. Petrinetz Strukturen Folgende Meilensteine sind definiert Datum Zeit Termin Um 0815 Start der Diplomarbeit Abgabe der Diplomarbeit Abgabe des Produkts Abgabe der Dokumente 0930 Verteidigung des Projekts ab 1400 Diplomausstellung an der HTA Bern ab 1700 Diplomfeier im Kursaal Bern 24 3 Aufwandsch tzung Die Aufwandsch tzung wurde f r die wichtigsten Arbeitspakete vorgenommen Beispiel Bildverarbeitungsprozess Sicherheitskonzept f r CCM Weiterentwicklung des Frameworks und Hilfsklassen Benjamin Hadorn Seite 128 von 162 Fachhochschule f r Informatik Bern Diplomarbeit CCM Spezifikation erstellen F r die Diplomarbeit sind pro Woche 20 Lektionen geplant 14 Wochen x 20 Lektionen 280 Lektionen Diplomarbeit Die Aufwandsch tzung wird in Tagen angegeben Dabei besteht ein Schultag aus 8 Lektionen f r einen Studenten der 100 arbeitet F r berufsbegleitende Studenten ist der Prozentsatz geringer ca 60 80 280 Lektionen 8 Lektionen pro Tag 35 Schultage Aufwand Arbeitspaket Aufwand in Schultage Beispiel Bildverarbeitungsprozess 14 Sicherheitskonzept f r CCM 10 Spezifikation CCM vervollst ndigen 3 Reviews und Sitzungen Pauschal ber alle Arbeitspakete 2 Projektdokumente Handbuch Planung und Reflektion 2 Web Seiten 3 Reserve Die 2 ersten Arbeitspaket sind in den folgenden Unterkapitel noch n her spezifiziert Die Arbeitspakete s
20. der Entwicklung von Applikationen vor Diese Vorschriften basieren einerseits auf Erfahrung und sind anderseits notwendig um gewisse Plattformen zu unterst tzen 14 1 1 Schnittstellen Schnittstellen sind ein wesentliches Konzept im Zeus Framework Jeder komplexere Datentyp wie Strings Listen etc braucht eine Schnittstelle Auch jedes Objekt implementiert mindestens die Basisschnittstelle IZUnknown Das hat folgende Gr nde Wenn die Objekte ber Schnittstellen kommunizieren sind die Abh ngigkeiten relativ klein gt Die Wartung und Erweiterbarkeit von Software wird wesentlich besser gt Das System wird bersichtlicher gt Es vereinfacht das Zusammenarbeiten im Projektteam Objekte k nnen irgendwo in einem Speicher sein sie k nnen sich also auch in einen lokalen Heap befinden gt Das geschieht zum Beispiel wenn eine Borland C Applikation eine Bibliothek l dt die in Visual C entwickelt wurde Die Applikation und die Bibliothek besitzen beide unterschiedliche Heaps Die Verwaltung der Objekte darf nur vom entsprechenden Heap Organizer durchgef hrt werden gt Manipulationen auf dem falschen Heap wie realloc new und delete f hren zu Problemen Deshalb ist ein sp tes Binden late binding notwendig damit die Aktion im richtigen Heap ausgef hrt wird Eine gute Architektur bedient sich der M glichkeit von Schnittstellen gt Trennen von Definition und Implementation gt Abstraktes Denken verringe
21. die Arbeit Wenn die ganze Umgebung stirbt sterben auch alle eingehenden Kommunikationskan le Input Pipes dieser Zellenumgebung ab Die verwaisten Kommunikationskan le werden von anderen Zellen als broken erkannt und automatisch entfernt Die ausgehenden Kommunikationskan le Output Pipes werden nicht ver ndert da sie nicht dieser Zelle geh ren sondern nur als sendende Schicht verwendet werden Benjamin Hadorn Seite 90 von 162 Fachhochschule f r Informatik Bern Diplomarbeit InputPipe gt Abbildung 34 Die Bibliothek Shared Library rechts wird durch das Framework links CellEnvironment Cell Module CCM Framework Library geladen und verwaltet Die Zellkerne befinden sich in der Bibliothek Die Verwaltung der Kommunikationskan le und der Zellen wird durch das Framework bet tigt API ICommPipe Schnittstelle eines Kommunikationskanals Durch diese Schnittstelle k nnen Meldungen abgesetzt werden IOwnCommPipe Dieses Schnittstelle eines Kommunikationskanals ist nur f r den Besitzer eines Kanals verf gbar und dient dem Lesen von Meldungen Benjamin Hadorn Seite 91 von 162 Fachhochschule f r Informatik Bern Diplomarbeit API ILocalPipeRegistry Schnittstelle der Registrierungsstelle f r lokale und entfernte Kommunikationskan le TCommPipe Kommunikationskanal zum Senden und Empfangen von Meldungen TLocalPipeRegistry Lokale Registrierungsstelle f
22. die Module Module k nnen aktiviert oder deaktiviert werden In einem System ist immer nur ein Modul aktiv Siehe Abbildung 30 Die Aktivierung wird vor allem bei graphischen Anwendungen verwendet Das aktive Modul erh lt hier den Eingabefokus Module laden ihre Ressourcen Shared Libraries Dokumente oder stellen Verbindungen zu anderen Systemen her Hat ein Modul welches aktiviert oder von dem Objekte angefordert wurde seine Ressourcen noch nicht geladen erfolgt nun der Ladeprozess Beim Deaktivieren bleiben die geladenen Ressourcen meistens erhalten Manager sind Module die andere Module verwalten und zu logischen Gruppen zusammenfassen Werden in einem Objektbaum Module und Manager eingesetzt ist es wichtig dass jedes Modul und jeder Manager ein Kindobjekt von einem Manager ist Der Wurzelknoten muss also ein Manager sein Nur so ist der Aktivierungsprozess nach Definition gew hrleistet Jeder Manager und jedes Modul kann beliebig viele X Objekte als Kinderobjekte besitzen Benjamin Hadorn Seite 64 von 162 Fachhochschule f r Informatik Bern Diplomarbeit Module Object Model Ressourcen I System Module und Dienstleistungen Aktives Modul Geladene nicht aktive Module Anw rter f r aktives Modul E Nicht geladene Module Ressource eines Moduls Abbildung 30 Diese Darstellung verdeutlicht den Aufbau und die Funktionsweise des MOM mit Modulen Kreise sym
23. die einen Wert zwischen 0 und Lmax zur ck liefert Benjamin Hadorn Seite 28 von 162 Fachhochschule f r Informatik Bern Diplomarbeit Wahrscheinlichkeit 0 20 40 60 80 100 Lebenskraft der Zelle Abbildung 10 Darstellung der Wahrscheinlichkeitsfunktion in Bezug zur Lebenskraft einer Zelle Durch eine simple Auszeit Expire Time werden die inaktiven Zellen dann schlussendlich zerst rt 5 2 3 2 Absturz durch Fehler Zellen k nnen aber auch sterben wenn sie einen groben Fehler im System verursachen oder wenn sie wegen eines Programmierfehlers abst rzen Das heisst was heute in der Computerwelt zu einem Programmabsturz f hrt f hrt hier zum Absterben einer Zelle Einen anderen schwerwiegenden Fehler kann geschehen wenn eine Zelle korrupte Daten produziert oder durch einen Angriff von Aussen infiziert wurde Sie berschreitet dadurch ihre Kompetenz und wird als Fremdk rper im System erkannt Ebenso werden Zellen unbekannter Herkunft als Fremdk rper identifiziert In diesem Falle kommen die Polizeizellen zum Einsatz Diese Zellen sind ausschliesslich damit besch ftigt die Sicherheit im System zu gew hrleisten Alle Zellen werden durch die Polizeizellen analysiert Halten sie bestimmte Richtlinien nicht ein oder berschreiten ihre Kompetenzen werden sie neutralisiert Viren und Krankheiten werden als Erfahrungswerte gespeichert damit sie beim Wiederauftreten schneller erkannt werden k nnen Die neutralisierten Zellen
24. eetere re d oesi E EE EEEN Eeu Ees 23 5 2 Erzeugen und Abbauen von Zellen 4 renerne 24 5 2 1 Erstellen von Zellen die Zellenfabriken 2224444444 00 24 5 2 2 Klonen von Zellen era aa nran eeen 25 5 2 2 1 Vermehrung in dem Zellenhaufen 424244244444 RR 26 5 2 3 Abbauen von Zellen rise Rinne 27 5 2 3 1 Die Lebenskrall naeh 28 5 2 3 2 Absturz durch Fehlers in aaa 29 5 3 Der Regenerierungseffekt nenn 30 6 DNA Der Programmcode der Zelle 22222444444nnnnnnnnn nennen 32 7 Immunsystem Sicherheit im System ummnnnnnnnnnnnnnnnnnnnnnnnnnennnn 33 7 1 Erkennen von FremdZellen 2242400004000nnnnennnnnnnnnnn nenn 33 Benjamin Hadorn Seite 2 von 162 Fachhochschule f r Informatik Bern Diplomarbeit 7 2 Mobile Sicherheitszellen 04000000008008R nn nenne nenn nnnnnnnnnen 34 8 Kommunikation zwischen den Zellen u00ss4ssnnnneeeen nennen 36 8 1 Direct Communication System DCS 44444444eeeenn nen ennnn ernennen 36 8 1 1 Steuern von Zellen durch eine Zentrale u0 nn 36 8 1 2 WOorklloW rer 37 8 2 Open Communication System OCS uuueseennnnnnnnnnnnnnnnnnnnnnnnnnnnn san 38 8 2 1 Das OCS nach dem Pool Prinzip 44400004048R Rene 39 8 3 Beispiel Hacker Andiifkz zua2 ee ueee 40 9 Arbeitsweise der Zel
25. gelten dann ebenfalls als abgestorbene Zellen Das Sicherheitssystem soll wie ein Immunsystem funktionieren und ist im weitesten Sinne ein integriertes Antivirus Programm Benjamin Hadorn Seite 29 von 162 Fachhochschule f r Informatik Bern Diplomarbeit Die abgestorbenen Zellen werden von Fresszellen gefressen und die Ressourcen werden dem System zur ckgegeben Wie jede Zellenart werden auch die Fresszellen je nach Bedarf von einer Fabrik erzeugt Sterben Fresszellen ab werden sie von ihren Artgenossen ebenfalls wegger umt Die Fresszellen k nnen auch als Destruktoren bezeichnet werden Sie bilden den Gegenpol zu den Fabriken und dem Klonen und halten so das Gleichgewicht Cell Factory Zellendiagnose und Debugging Ausgabe Zellen Cleaner cell men Abbildung 11 Schematische Darstellung der Funktionsweise einer Zellenfabrik Durch ein evolution res Prinzip kann das Gesamtsystem gewisse Zellen verbessern ver ndern oder sogar z chten Dabei sollen unter anderem Daten beim Absterben einer Zelle generiert werden Diese Daten stehen nach aussen zur Verf gung und k nnen von Fresszellen gelesen und analysiert werden Diese Daten werden dann zum Verbessern aber auch zum Debuggen des Systems verwendet 5 3 Der Regenerierungseffekt Der Begriff Regenerierung steht f r die F higkeit eines Systems oder Organismus sich selber zu reparieren wenn irgendwo durch ussere Einwirkungen ein Schaden entstanden ist Dab
26. modules NameServer so implementiert Die Konfiguration des Dienst muss in der Datei Benjamin Hadorn Seite 146 von 162 Fachhochschule f r Informatik Bern Diplomarbeit nameserver xml vorgenommen werden Hier muss die IP Adresse und der TCP Port eingetragen werden Durch die Skript Datei nameserver kann der Dienst gestartet werden Einstellen des Namensdiensts Listing 8 Einstellen des Namensdienst In dieser XML Datei werden Adresse und Port eingestellt A 5 1 Konfiguration der Zellen Damit die Zellensysteme diesen Dienst verwenden k nnen m ssen Adresse und Port auch bei den entsprechenden Zeus Applikationen eingestellt werden Dies geschieht durch den Eintrag bei der lokalen Registrierungsstelle Einstellen der Zellen Listing 9 Einstellung bei einer Zeus Applikation In dieser XML Datei werden Adresse und Port des Namensdienst angegeben Benjamin Hadorn Seite 147 von 162 Fachhochschule f r Informatik Bern Diplomarbeit B Messungen vom Klonverhalten B 1 Klonen von Zellen Das Zeus Framework verwendet den stabilen Klon Algorithmus welcher auch bei instabilen Arbeitslast der Zellen ein Optimum zwischen Anzahl Zellen und Auftragseingang Work load findet Siehe CCM1 Das Klonen ist der elementarer Bestandteil zur Wachstumskontrolle der Zeus Zellen Die Kontrolle wird durch eine Zellen berwachung in der Zellenumgebung bet tigt Der Klon Algoritnhmus misst die gesamte Auslastung einer Zellenu
27. 00040000nn nenn nnnnnnnnnnnnnnnn 125 22 2 Software Engineering SE aan an ra 125 23 Standards und Richtlinien 42444444404440nnnnn nennen nnnnnnnnnn 126 24 Erg nzende Projektvereinbarungen unnnnnnnnsnssnnnnnnnnnnnnnnnnnnnen nenn 127 24 1 Projeklorganisation az er ee 127 24 2 Projektplanung e e aie a sale een ae 128 24 3 Aufwandschaz ung mass eek lakiaadaeher 128 24 3 1 Arbeitspaket Beispiel Bildverarbeitungsprozess 130 24 3 2 Arbeitspaket Sicherheitskonzept f r CCM u 132 25 Einleitung Schl ssbericht ar sr ee 134 26 soll Ilst Vergleichz as er E E E a E a 135 26 1 Abweichungen zu den geplanten Termine und Ergebnissen 136 27 Erkannte ungel ste Probleme u 2 444444444 4444er 137 27 1 Technische Probleme u00000000000008n nennen nnnnnnnnnnnnn nenn 137 28 Etreichte Ziele len ahnen herein 138 28 1 Das Zeus Framew rk n arena 138 28 1 1 Einfachheik a een 140 28 1 2 Schnelligkeit ansehen 140 28 1 3 Peformance a ee een aae ea Easra 140 A Applikationen des Framework ZeuS sssssesnrrnrrereerrntrrrrrennnr nnennennnnnen 141 AI Bibli theken ersetzen es AS 141 AZ Gode M dule rain ee een 142 A 3 Programme und Skripts r 2 0 Bee ann 142 A 4 Benutzerhandbuch zum Framework zeus 143 4 1 Konfiguration 143 A 4 2 Kommandozeilen Parameter
28. 88888888889 Y 0 196333333333333 X 0 735776666666667 Y 0 196723703703704 Abbildung 49 Step 3 See horse tail Benjamin Hadorn Abbildung 50 Step 4 double hook with satelite Seite 159 von 162 Fachhochschule f r Informatik Bern Diplomarbeit TEE GG GZz Piplomarbeit Mandelbrot Set EEE EY S RR TI zz Diplomarbeit Mandelbrot Set Pam Zoom Factor sooo Max Iterations MM 5 Max Range ij jooo 3 1000 Zoom Factor sooo Max Iterations jM 3500 Max Range a nn food E Frame 9 9732421875 sec Picture 15 640625 sec Frame 2 87975260416667 sec Picture 5 66796875 sec X 0 735801543209877 Y 0 196715975308642 X 0 735802090123457 Y 0 196715842798354 Abbildung 51 Step 5 Seehorse valley of Abbildung 52 Step 6 seehorse of satelite j satelite D Diplomarbeit Mandelbrot Set E PA Zoom Factor 3000 Hr Max Iterations u en 3500 Max Range fioo Frame 3 08684895833333 sec Picture 5 765625 sec X 0 735802176803841 Y 0 196715882798354 Abbildung 53 Step 7 Julia Islands Benjamin Hadorn Seite 160 von 162 Fachhochschule f r Informatik Bern Diplomarbeit E Versionsgeschichte nderungen am Dokument sind hier festgehalten Version Beschreibung Datum 1 0 Freigabe f r Diplomarbeit 23 12 2004 Benjamin Hadorn Seite 161 von 162 Fachhochsch
29. Basispfad aller Module ist standardm ssig auf modules gesetzt Weiter k nnen externe XML Referenzen angegeben werden Diese werden w hrend dem Erstellen der Objekthierarchie geladen Darin k nnen sich weitere Teilbaume der Objekthierarchie befinden Die XML Referenzen m ssen als Dateinamen mit relativem Pfad angegeben werden Der Basis pfad ist auch hier auf modules gesetzt Zum Beispiel XMLRef path filename xml Diese Angabe kann nicht bei allen Objekttypen gemacht werden Das Objekt muss die Schnittstelle IXLoaderObject implementieren Bei den ladbaren Objekten IXLoaderObject kann das Attribut CreateChildren x gesetzt werden um die Objekthierarchie gestaffelt aufzubauen Dieses Attribut unterliegt dem Attributschema Mit dem Wert x 1 werden alle Kinderobjekte sofort erstellt Beim Wert x 0 werden die Kinderobjekte erst erstellt wenn sie jemand braucht Durch das Einsetzen der drei Erweiterungen k nnen Teilb ume ausgelagert und erst bei Bedarf geladen werden Zudem k nnen Objekte in Code Modulen implementiert werden Die 3 Erweiterungen Listing 5 Beispiel welches die 3 Erweiterungen nutzt Zu beachten ist dass hier das Attributschema 3 verwendet wird Benjamin Hadorn Seite 105 von 162 Fachhochschule f r Informatik Bern Diplomarbeit 16 Entwickeln von Code Modulen Damit Bibliotheken Code Module im Zeus Framework gebraucht werden k nnen m ssen zwei Funktionen exportiert werden
30. Benjamin Hadorn Seite 84 von 162 Fachhochschule f r Informatik Bern Diplomarbeit API getTimeStamp 14 4 3 Networking Zellen m ssen untereinander kommunizieren k nnen Zellen die im gleichen Prozess arbeiten k nnen direkt ber den Shared Memory kommunizieren Befinden sich die Zellen oder Zellensysteme auf entfernten Computersystemen m ssen sie ber ein Netzwerk kommunizieren k nnen Diese Kommunikation wurde mit Klassen implementiert welche Netzwerkdienste ansprechen Im Framework gibt es Klassen die sich mit dem Networking befassen API TSocket Diese Klasse implementiert einen Client Socket um TCP IP Verbindungen aufzubauen TServerSocket Der Server kann mit dieser Klasse implementiert werden TNetworkInterface Ermittelt die Netzwerkschnittstellen mit den konfigurierten TCP IP Adressen 14 4 4 Cell Communication Transfer Protocol Mit dem Cell Communication Transfer Protocol CCTP k nnen bin re Datenpakete ausgetauscht werden Das Protokoll definiert einen Header von 12 Bytes f r die Response und Request Pakete Das Protokoll wird vor allem f r die Kommunikation zwischen zwei Zellen verwendet Die Request Pakete werden zum Senden der Datenpakete verwendet Der Request dient der Anfrage beim entfernten System ob sie die Meldung akzeptiert Das entfernte System antwortet mit einer Response ber aufgetretene Fehler oder Erfolge Benjamin Hadorn Seite 85 vo
31. Diese Signatur wird vor jedem Laden erstellt und mit einem Eintrag aus einer Datenbank verglichen Unsecure code Secure code 1 Print Hash 2 evaluateHash print Abbildung 41 Links ist der unsichere Teil das Code Module Es muss mit einem Eintrag aus der Datenbank verglichen werden bevor es geladen wird Das aktuelle Zeus Framework generiert den Fingerabdruck mit dem Whirlpool Benjamin Hadorn Seite 113 von 162 Fachhochschule f r Informatik Bern Diplomarbeit Algorithmus Die Eintr ge in der Datenbank Datei bin security db sind noch unverschl sselt Extension Die Datenbank k nnte mit einem Krytologie Algorithmus verschl sselt werden Die Registrierung von Code Modulen ist im Anhang beschrieben Benutzerhandbuch 17 2 berwachung der Zellen Zur berwachung der Zellen existiert in der aktuellen Version des Zeus Frameworks nur die Klasse TCellSurvey welche die Zelle auf ihre Auslastung berpr ft und den Klon Algorithmus steuert Siehe Klonen Es existiert noch keine Komponente die das Laufzeitverhalten aus dem sicherheitstechnischen Aspekt betrachtet und sch dliche Zellen erkennt bzw eliminiert Diese berwachung ist ein Teil der Entwicklung von mobilen Zellen welche in der Spezifikation des CCM beschrieben sind Extension Entwicklung von mobilen Zellen und Erweitern des Sicherheitsdiensts Die Zellen m ssen auch w hrend der Laufzeit berwacht werden berschreitet eine Zelle ihr
32. Fachhochschule f r Informatik Bern Diplomarbeit Benjamin Hadorn Seite 1 von 162 Fachhochschule f r Informatik Bern Diplomarbeit Inhaltsverzeichnis 1 VOTWOr ae MERIDIEN aureed 7 2 Einleil nge e see ee ee 9 3 Was ist Cell Computing Model 444442404000nnnnnnnnnnnnnnnnn nn 10 3 1 Die Welt der chaotischen Systeme uunssssssennnnnnnnnnnnnnnnnnnnn 10 3 1 1 Aufbau der Lebewesen 20444404444400000n0nnnnnnnnnnnnnnnnnnnnnnnnnn 12 3 1 141 Stammzellenz 2a Era 12 3 1 1 2 Spezialisierte Zellen uu uuu0000040000000nnnnnnnnnnnnnnnnnnnnnnn 12 3 1 2 Generierung und Regenerierung 224444444444HHHHnnnnnnnnnnnnnnnnnnnn 12 3 1 3 Das Programm der Zelle DNA uu000424244 RR nnnnenenn een 13 3 1 3 1 Wechseln des DNA Abschnitts 244444444444 Henn 13 3 1 4 Das Immunsyslem a een en 13 3 2 Ide8nkalal00 3 2u 2 u 323 3 3B3 BER So Een Hk 14 3 2 1 Regenerierung ara ee 14 3 2 2 Parallele Verarbeitung der Daten 4ss44ssen nenn 15 32 3 Lerntahigkeit eani e a 15 3S Zieldelinilonzerin are ini 15 SISA Framework aeg 16 3 3 2 Hardware ala nanlEaReinee 17 34 Einsazgeblel ersehen 17 amp 21 VOortellen asn ar 17 34 2 Nachlelle nass Ries 18 33 ZUKUNTISYISIONeN es ee ee nee 19 4 Grundkonzept des GEM rn a id jene 20 4 1 Das EVA Prinzip ne ee ee 20 5 DBasZell nleben s en een ae 23 5 1 Der Lebenszyklus sicret
33. Konfiguration zeus properties gelesen sondern die Datei lt file gt Benjamin Hadorn Seite 145 von 162 Fachhochschule f r Informatik Bern Diplomarbeit API reg Registriert ein Code Modul bei dem Sicherheitsdienst Dieses Kommando braucht noch die Angaben file und module unreg Entfernt ein Code Module von der Datenbank des Sicherheitsdiensts Dieses Kommando braucht die Angabe module file Mit dieser Angabe kann ein Code Modul mit Pfad angegeben werden module Gibt den Namen an eines Code Moduls Dieser ist muss dem Dateinamen des Code Moduls entsprechen ohne Endung list Zeigt alle registrierten Code Module an version Zeigt die Version der Applikation an help Zeigt die Beschreibung der Kommandos in der Konsole an A 5 Der Namensdienst Um eine Applikation mit oder ohne Zellen auf verschiedene Computer zu verteilen braucht es einen Dienst bei welchem sich die Kommunikationsobjekte der Teilapplikationen registrieren k nnen Ein solcher Dienst ist der Namensdienst Der Namensdienst dient der Registrierung von Objekten die auf entfernten Computersystemen leben Dieser Dienst ist eine sehr wichtige Komponente wenn mit verteilten Applikationen gearbeitet werden m chte Durch das Registrieren sind diese Objekte f r andere Anwendungen zug nglich und k nnen mit dem RMI f r C ber Netzwerk verwendet werden Der Namensdienst ist im Code Module bin
34. MB RAM Ubuntu Htibe2c5 012 Pentuim 4 2 533GHz 1024MB RAM Ubuntu Einstellungen der Mandelbrot Applikation Max Iterations 3500 Max Range 1000 Zoom 3000 Weg X 0 73580217851 Y 0 19671588244 Software Zeus Version 0 2 5 QT Version 3 xx Folgende Sammlung der Bilder zeigt den Verlauf welcher beim Messen der Performance massgebend war Die Positionen in der Mandelbrot Menge sind aus der Tabelle zu entnehmen Benjamin Hadorn Seite 158 von 162 Fachhochschule f r Informatik Bern Diplomarbeit Diplomarbeit Mandelbrot Set Diplomarbeit Mandelbrot Set Max Iterations 3000 j 5O a o 25 Max Range Max Iterations 3000 Ej en ar ee 300 3 Max Range Frame 3 63522135416667 sec Picture 6 734375 sec Frame 2 71731904999988 sec Picture 7 1455149999997 sec X W X 0 697 Y 0 192666666666667 Abbildung 47 Step 1 Mandelbrot F Abbildung 48 Step 2 seehorse valley Diplomarbeit Mandelbrot Set para Diplomarbeit Mandelbrot Set _Refresn_ Zoom Factor Max Iterations 3000 j 5O m Pe o 25 Max Range Max Iterations 3000 gm Bsoo Gum um oo 2 Max Range Frame 2 61139322916667 sec Picture 5 171875 sec Frame 2 86119791666667 sec Picture 5 29296875 sec X 0 7341
35. Objekten Die Bibliothek xy wird geladen wenn im Objektbaum ein Objekt erzeugt werden soll welches das Attribut CodeModule xy gesetzt hat Danach wird versucht das Objekt durch eine exportierte Funktion der Bibliothek zu erzeugen Das Objekt wird direkt zur ckgegeben und kann nun in den Objektbaum eingeh ngt werden Die exportierten Funktionen heissen immer createTMyClass wobei TMyClass f r einen Klassennamen steht Der gleiche Klassennamen muss im XML im Attribut ClassName angegeben werden Um eigene X Objekt Klassen einfach zu exportieren gibt es im C Header zeusdev AbstractModuleSession h Makros Fabrikfunktion der Bibliothek Tabelle 11 Beispiel zeigt das Exportieren einer Fabrikfunktion zum Erzeugen des X Objekts TInputCell 16 2 Code Modul zum Erstellen einer Session Ladet ein X Objekt vom Typ TModul eine externe Ressource in Form einer Bibliothek wird eine Modulsession erzeugt Die Session dient fortan zur Kommunikation zwischen dem X Objekt und der Bibliothek In einer Session k nnen beliebige Objekte von der Bibliothek erzeugt werden Diese M glichkeit dient all jenen Bibliotheken die keine X Objekte implementieren wollen Zur bidirektionalen Kommunikation zwischen der Bibliothek und dem Modul werden 2 Schnittstellen ausgetauscht Benjamin Hadorn Seite 107 von 162 Fachhochschule f r Informatik Bern Diplomarbeit API IModuleSession Durch diese Schnittstelle kann auf die Session einer Bibli
36. Verteiltes System welches die heutigen Techniken wie Webservices unterst tzt und erweitert XML SOAP Verwenden g ngiger Netzwerke und des Internets TCP IP Framework f r k nstliche Intelligenz 3 3 1 Framework Mit dem CCM muss ein Framework entwickelt werden welches erlaubt Zellen und deren DNA zu programmieren Das Framework ist eine Software welches dem Programmierer und Entwickler die grunds tzlichen Strukturen und Rahmenbedingungen vorgibt und somit die Entwicklungszeit reduziert Zellen und Zellensysteme Betriebssystem OS Abbildung 4 Einbettung in ein Betriebssystem Das Framework setzt auf einem Betriebssystem auf welches mindestens multitasking f hig und netzwerkf hig ist Aufgaben des Frameworks Gemeinsame Basis f r Kommunikation Verwaltung der Ressourcen API Application Program Interface f r k nstliche Intelligenz API f r Zellen Programmierung DNA ev Windows Manager Graphische Oberfl che Benjamin Hadorn Seite 16 von 162 Fachhochschule f r Informatik Bern Diplomarbeit Betriebssystem OS P IF Betriebssystem OS Abbildung 5 Kommunikationslayer Zellen kommunizieren mit Meldungen 3 3 2 Hardware Eine optimale Hardware f r das CCM ist ein Multiprozessor System Jede Zelle entspricht mindestens einem Task im herk mmlichen Sinn Will dieser Task ohne Context Switching arbeiten also real Multitasking muss jede Zelle ihren eigenen Prozessor haben D
37. Wird die gleiche ID nochmals verwendet und ist das vorhergehende Arbeitspaket noch in der Queue wird dieses durch das aktuelle Arbeitspaket ersetzt Der Vorteil ist dass die Gr sse der Queue klein gehalten werden kann Dieses Verfahren wird vor allem bei der Signal Visualisierung verwendet um schnell auf nderungen reagieren zu k nnen und das Schleppen von Werten zu umgehen Stau in der Queue Dieses Verfahren steht in der aktuellen Version noch nicht zur Verf gung Ein lokaler Kommunikationskanal wird durch folgende Kenngr ssen beschrieben Name der Zelle Name des Kommunikationskanals Pipe Inprocess Communication Abbildung 35 Inprozess Kommunikationskan le sind eine direkte unidirektionale Verbindung zwischen 2 Zellen 14 4 6 2 Entfernte Kommunikationskan le Damit Zellen ber ein Netzwerk miteinander kommunizieren k nnen braucht es eine Registrierung Folgende Daten der Zellen werden dort verwaltet Name der Zelle Name des Kommunikationskanals Pipe Benjamin Hadorn Seite 93 von 162 Fachhochschule f r Informatik Bern Diplomarbeit Adresse des Host Namen des Computers oder IP Adresse TCP IP Port des Socket TCP IP Remote Communication Socketschnittstelle Adresse Hostname und Port Das Remote Object Skeleton laeuft in einem eigenen Thread Abbildung 36 Entfernte Kommunikationskan le werden mit dem Muster des Skeleton Stub implementiert Die Registrierungsstelle ist e
38. Zelle kann ihren Auftrag teilen um so die Belastung herabzusetzen indem sie Bearbeitung der Teilauftr ge delegiert Andere Zellen sofern vorhanden bernehmen dann diese Teilauftr ge Aus jeder Verarbeitung resultiert ein Produkt Die Teilprodukte werden durch die Zelle welche den Auftrag geteilt hat wieder zusammengesetzt Am Ende steht dann das Endprodukt Es gibt nat rlich beliebig viele Zwischenkombinationen Ein Produkt kann zugleich ein Auftrag sein welcher wieder von Zellen geteilt und verarbeitet werden kann Der Ablauf jedes Verarbeitungsprozesses muss genau geplant und nach diesem Schema umgesetzt werden Dies kann mit Hilfe von Workflows und Petrinetzen erfolgen Benjamin Hadorn Seite 42 von 162 Fachhochschule f r Informatik Bern Diplomarbeit 9 2 Beschreiben eines Workflows F r jedes Arbeitspaket existiert eine genaue Verarbeitungsbeschreibung der Workflow Ein Workflow definiert im Cell Computing Model folgende Parameter wo stehen wir in dem Verarbeitungsprozess m ssen wir auf andere Teilprodukte warten an welche Zellen oder Zellensysteme muss das verarbeitete Produkt weitergesendet werden Um ein Workflow optimal und allgemein g ltig zu beschreiben verwenden wir Petrinetze Petrinetze haben den grossen Vorteil dass sie mathematisch analysiert werden k nnen Somit kann festgestellt werden ob das Netz verklemmunggsfrei und sicher ist Die Abbildung 19 zeigt ein Zellensystem A welches 4 Arbeitspake
39. Zellengruppe abgespeichert Nach der Verarbeitung der Bilder werden diese wieder in den Speicherzellen abgelegt und stehen nun anderen Zellensystemen zur Verf gung die sie je nach dem weiterverarbeiten oder ausgeben 11 4 Einige Zellenarten Arbeitszellen Die Arbeitszellen dienen der Datenverarbeitung des Systems Sie entsprechen der logischen Einheit des Systems Sensorzellen Diese Zellen entsprechen der Dateneingabe eines herk mmlichen Systems Ausgabezellen Diese Zellen dienen als Schnittstelle zwischen dem Benutzer und dem System Sie geben Aufschluss was das System verarbeitet hat Ausgabe Fabrikzellen Hier werden je nach Bedarf verschiedene Zellenarten produziert Die Fabrikzellen sind lebenswichtig f r das System Fresszellen Diese Zellen r umen das System auf und entfernen verwaiste und zerst rte Zellen Sicherheitszellen Zellen dieser Art sind f r die Sicherheit zust ndig und zerst ren fremde und gef hrliche Zellen Benjamin Hadorn Seite 54 von 162 Fachhochschule f r Informatik Bern Diplomarbeit Versorgung Speicherzellen Meldungszellen Benjamin Hadorn Diese Zellen transportieren Meldungen durchs System langsame Kommunikation oder Trendkommunikation Speicherzellen verwalten den Datenspeicher des Systems Sie sind also die Schnittstelle zwischen dem System und der Datenablage Die Meldungszellen beinhalten die Auftr ge mit der Auftragsbeschreibung Code Es sind sehr schla
40. achhochschule f r Informatik Bern Diplomarbeit API Zeusbase System XObject void onChildAdded IXObject child Diese callback Methode wird beim Hinzuf gen eines Kinderobjekts aufgerufen void onChildDeleted IXObject child Diese callback Methode wird beim Entfernen eines Kinderobjekts aufgerufen unsigned long MQOUALIFIER getObject IString path IXObject obj Mit dieser Methode k nnen andere Objekte im Objektbaum ermittelt werden Der Pfad wird im folgenden Kapitel beschrieben unsigned long MQOUALIFIER getRootObject IXObject obj Ermittelt das Wurzelobjekt des Objektbaums 14 3 3 Objektpfad Der Objektpfad dient dem Suchen und Ermitteln von X Objekten in einem geladenen Objektbaum Der Pfad ist aufgebaut wie ein Verzeichnispfad bei Unix Er enth lt folgende Elemente API zeusbase System XObjectPath Repr sentiert das Wurzelobjekt 3 Referenziert das aktuelle Objekt this af Referenziert das Vaterobjekt MyChild Referenziert das Kindobjekt mit dem Namen MyChild MyChild 2 Referenziert das dritte Kindobjekt mit dem Namen MyChild Benjamin Hadorn Seite 81 von 162 Fachhochschule f r Informatik Bern Diplomarbeit Diese Elemente des Pfads k nnen nach belieben zusammengesetzt werden 14 4 Die Zellenarchitektur Durch die Zellenarchitektur erh lt das System seine Dynamik w hrend mit X Objekten siehe oben die statische Struktur festgelegt
41. ae nee 85 14 4 4 Cell Communication Transfer Protoco 85 14 4 4 1 Request Pakete uuu0400440000nnnnnnnnnnnnnnnnnnenennn nn 86 14 4 4 2 Response Pakete unsre ea 87 14 4 5 M8SS39 119 222 mee Aee eee ea 87 14 4 5 1 Die Kontrollmeldungen rn 88 14 4 5 2 Die Arbeitspakele an re 89 14 4 6 Kommunikationskan le 40404ssnnennnnnnnnnnnenenn nn 89 14 4 6 1 Lokale Kommunikationskan le 444400sr een 92 14 4 6 2 Entfernte Kommunikationskan le 93 14 5 Serialisierung von Objekten 2444444444444HHHnnnnnnnnnnnnnnnnnnnnnnennnn 95 14 5 1 Streaming ses 100 14 6 Remote Method Invocation mit C t 0sssnssseneenennnnnnnnnnnnnn 100 14 7 Klassen f r k nstliche Intelligenz snneneeeeeeneeeen 101 15 Definition von X Objekten in XML 44424444444444444RRRRRRnnn nennen 102 15 1 Allgemeine XML Spezifikation u44444444een nennen 102 15 TObjekler zen een 102 19 12 Altribblesse 2 2 ars a SA 103 15 2 Erweiterte Definition zum ClassLoader 444444R nne 105 16 Entwickeln von Code Modulen 22220440004404000n nenn nnnnn nennen 106 16 1 Code Modul zur Erzeugung von Objekten umnnnnnnnnnnnnennn 107 16 2 Code Modul zum Erstellen einer Session mnnnnnnnnn nenn 107 16 3
42. ahliger Wert mit Vorzeichen 32 Bit Benjamin Hadorn Seite 73 von 162 Fachhochschule f r Informatik Bern Diplomarbeit API unsigned long Ganzzahliger Wert ohne Vorzeichen 32 Bit bool Boolescher Wert 32 Bit double Reeller Zahlenwert 64 Bit char Ganzzahliger Wert mit Vorzeichen 8 Bit unsigned char Ganzzahliger Wert ohne Vorzeichen 8 Bit wchar t Wide Character f r UNICODE Das Zeus Framework stellt eine umfassende Funktionalit t mit XML Daten zur Verf gung Lesen Schreiben und Traversieren von XML Knoten sind die Grundfunktionen API IXMLParser Schnittstelle zum Lesen eines XML Dokuments IXMLDocument Verwaltungsklasse eines XML Dokuments IXMLNode Ein XML Knoten welcher Attribute und Text beinhalten kann IXMLNodeList Eine Liste von XML Knoten 14 3 Klassen zum MOM 2 Die MOM Struktur wird in dieser Implementation als XML Baum eingelesen 3 In dieser Version von Zeus Framework wird der Parser von Apache verwendet XMLO2 Benjamin Hadorn Seite 74 von 162 Fachhochschule f r Informatik Bern Diplomarbeit und dynamisch aufgebaut Ein X Objekt ist ein Objekt welches seine Daten Attribute in einem XML Knoten lesen und speichern kann Ein XML Knoten kann Kinderknoten besitzen Die Kinderknoten k nnen auch wieder X Objekte darstellen Diese X Objekte werden automatisch dem bergeordneten X Objekt als K
43. aket an zwei Zellensysteme versenden Dabei wird das Arbeitspaket dupliziert Dieser Ablauf ist wesentlich einfacher Es m ssen lediglich der Vorbereich und der Nachbereich gepr ft werden Benjamin Hadorn Seite 48 von 162 Fachhochschule f r Informatik Bern Diplomarbeit Zelle A1 Zelle B Bedingung PaketTyp Z Zelle C Abbildung 25 Parallelisieren von Abl ufen 9 2 4 Definieren von Workflows Durch das Verwenden von Workflows k nnen wir im gleichen Netz verschiedene Auftr ge verarbeiten ohne dass wir das System neu konfigurieren m ssen Der Workflow wird mit jedem Arbeitspaket mit gegeben Somit wissen die Zellen beim Erhalten des Auftrags wie er bearbeitet werden muss Abbildung 26 Aufbau eines Arbeitspaketes Benjamin Hadorn Seite 49 von 162 Fachhochschule f r Informatik Bern Diplomarbeit 9 3 Beispiel Versorgung mit Auftr gen Wie gelangen Zellen an ihre Arbeit Hier kann das DCS gebraucht werden Jeder Auftrag hat eine Zieladresse Diese Zieladresse definiert ein bestimmtes Zellensystem Zellengruppe f r welche die Arbeit definiert ist Das Zellensystem nimmt diesen Auftrag aus einem Kanal des DCS entgegen und nimmt eine gewisse Aufteilung der Arbeit vor siehe oben Die Teilaufgaben und Teilprodukte werden in einem internen Pool gespeichert Jede Arbeitszelle hat einen speziellen Kanal auf diesen Pool durch den sie die Auftr ge entgegen nehmen kann Jede Arbeitszelle pr ften nun ob ein Au
44. amework 2 2 ee 57 12 1 D38 Syslen a usn aa 57 12 2 Einsagebiels2 2 2 2 2222222 2 kurse 58 12 2 1 Glustefing 222422 ende 58 12 2 2 Bediensoftware f r Maschinen u nne een 60 12 8 Vorgehen 222222 2 ee 61 13 Module Object Model Spezifikation 2 0 22244224444444Rnnnnnnnnn nenn 62 13 1 Eigenschaften des MOM 3 see 62 13 2 Aufbau undDeflinition cesan u ea 63 13 2 1 Basis Anforderungen a 63 132 2Erwellerungen un ae eisen 64 14 Das Klassen Framework 222224444ssnnnnnnnnnnennnnnnnnnnnnnnnnnnnnnnnnnnnnnnnennnne 66 14 1 Vorschriften bei der Entwicklung mit Zeus umsssnnn nennen 67 14 1 1 S5chnittstelen ar ae re 67 14 1 2 Die Basisschnittstelle IZUnknown 0000s2222sennennnneneenen nn 69 14 1 3 Die Basisklasse TZObject 71 Benjamin Hadorn Seite 3 von 162 Fachhochschule f r Informatik Bern Diplomarbeit 14 2 Datentypen des Zeus Frameworks 44444444HmmHnnnnnnnnnnnnnnnnnnnennnn 73 14 3 Klassen zum MOM 2 02 25 ee air 74 14 3 1 Implementation eines X Objekts 2444444 een 77 14 3 2 Wichtige Methoden des X Objekts uunnnnnnnnnnnnnnnnn 80 14 3 3 Objekipladzunauzessesesegeresissnnnun keinen 81 14 4 Die Zellenarchitektur 040044444400000000nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn 82 14 41 Die Zellen e 2 2 2 2222 a 82 14 4 2 Thresding nase 84 14 4 3 Ne Working
45. ammcode der Zelle Wie weiss nun die Zelle wie sie eine Aufgabe wahrnehmen und erledigen soll Jede Zelle besitzt ein DNA deoxyribonucleic acid Die DNA entspricht dem Programm der Zellen Dieses Programm beschreibt die Verhaltens und Verarbeitungsalgorithmen Jede Zelle besitzt immer die ganze DNA des Systems Mit anderen Worten k nnte eine Zelle jede Aufgabe wahrnehmen Durch den Teilungsprozess werden jedoch den einzelnen Zellen Bereiche der DNA zugeordnet Die Zellen kennen zwar die ganze DNA arbeiten aber ausschliesslich im zugeordneten Bereich Theoretisch w re es denkbar diesen Bereich beliebig zu wechseln Um die DNA zu interpretieren existiert in jeder Zelle ein DNA Interpreter Dieser Interpreter erstellt nach der DNA die Algorithmen welche die Zelle verwendet um ihre Aufgaben wahrzunehmen Die DNA beschreibt auch wie diese Algorithmen mit einander agieren und kommunizieren Verwendeter DNA Bereich Verwendeter DNA Bereich einer Arbeitszelle einer Mutterzelle Abbildung 13 Funktionsweise eines DNA Interpreter Bei spezialisierten Zellen links wird nicht die gesamte DNA verwendet Mutterzellen k nnen Aufgaben von verschiedenen Zellen bernehmen rechts da sie gr ssere Ausschnitte aus der DNA interpretieren k nnen Wie die DNA im Detail realisiert wird ist noch offen Man k nnte die gesamte Information jeder Zelle mitgeben Dieses Prinzip wird in der Natur verwendet Der Nachteil ist dass dies enorm viel Speicherplat
46. ant werden Komponenten k nnen auch sp ter spezifiziert entwickelt und integriert werden Erweiterbarkeit der Software Durch sich ndernde Kundenw nsche kann die Software auch sp ter noch einfach erweitert werden Durch die flexible Konfiguration kann die Software nach Kundenwunsch angepasst werden Es k nnen beliebige Komponenten in den Objektbaum eingeh ngt oder entfernt werden Gute Wartbarkeit von komplexen Systemen Einzelne Komponenten k nnen ausgewechselt oder neu geschrieben werden ohne dass das gesamte System neu bearbeitet werden muss 2 MOM 1 wurde bei Studer com definiert STWIN Benjamin Hadorn Seite 62 von 162 Fachhochschule f r Informatik Bern Diplomarbeit Das Modell hat auch seine Schwachpunkte die aber durch klare Richtlinien bei der Entwicklung wieder wett gemacht werden k nnen Die Vernetzung der Komponenten ist nicht begrenzt Legt ein Projektteam die Vernetzung nicht fest kann ein System entstehen welches sehr viele und un berblickbare Abh ngigkeiten besitzt 13 2 Aufbau und Definition Die MOM Spezifikation wird in 2 Anforderungskategorien unterteilt 1 Die Basis Anforderungen definieren die MUSS Kriterien 2 Die erweiterten Anforderungen definieren Zus tze welche implementiert werden k nnen Jedes Objekt ist durch eine einheitliche Schnittstelle von den anderen Objekten entkoppelt Es gibt 2 Arten von Objekttypen X Objekt Das X Objekt ist ein einfaches Objekt welches ei
47. as folgendes Beispiel soll die Funktionsweise des OCS verdeutlichen Durch einen Angriff von aussen durch Hacker oder Viren wurden einige Zellen zerst rt auch drangen Virenzellen in das System ein um weiteren Schaden zu verursachen Die Sicherheitszellen haben den Angriff erkannt und sind nun besch ftigt die Virenzellen zu eliminieren Durch Botschaften an die Zellenfabrik welche die Sicherheitszellen herstellt wird bekannt gegeben dass mehr Sicherheitszellen zu produzieren sind Die Fabrik reagiert auf diese Botschaften und produziert nun vermehrt Sicherheitszellen Durch den Angriff mangelt es im System an Arbeitszellen Das System reagiert mit der Produktion dieser Zellenart auf die erh hte Nachfrage W hrend die zerst rten Zellen nun von den Fresszellen entfernt werden bernehmen die umliegenden und neu produzierten Zellen die Produktion Benjamin Hadorn Seite 40 von 162 Fachhochschule f r Informatik Bern Diplomarbeit 9 Arbeitsweise der Zellen Wie arbeiten nun diese Zellensysteme zusammen um etwas brauchbares herstellen zu k nnen Um dieser Frage auf den Grund zu gehen m ssen wir die zu verrichtende Arbeit etwas genauer anschauen Jeder Auftrag jede Arbeit jedes Problem kann in kleinere Einheiten aufgeteilt werden Diesem Prinzip folgt jede Programmierung Der Unterschied besteht aber in der Art und Weise der Aufteilung Das CCM verlangt ein paralleles Denken Mit anderen Worten das Aufteilen der Arbeit geschieht na
48. as heisst es existieren Tausende vielleicht Millionen von Prozessoren in diesem Hardwaresystem Dies kann bereits mit herk mmlichen Netzwerken erreicht werden Mehrere Computer kommunizieren ber dieses Netzwerk miteinander Das CCM wird also als ein verteiltes System betrieben In den Anf ngen der Entwicklung des CCM kann auch mit einem Einzelprozessor gearbeitet werden Gewisse Verhaltensweise k nnen so bereits Umgesetzt werden Zudem sind die Einzelprozessoren relativ kosteng nstig 3 4 Einsatzgebiet 3 4 1 Vorteile Vorteile sind immer relativ zu den existierenden Systemen auszumachen Ein wichtiger Punkt ist sicher die Autonomie des Systems Es kann sich selbstst ndig an der Umgebung und an die Auftr ge anpassen was eine sehr hohe Flexibilit t und Lebensdauer mit sich bringt Durch k nstliche Intelligenz und der Lernf higkeit kann das System gewisse Entscheidungen selber treffen und Abl ufe noch optimieren Benjamin Hadorn Seite 17 von 162 Fachhochschule f r Informatik Bern Diplomarbeit Die Vermehrung jener Zellen welche sehr oft und intensiv genutzt werden erh ht die Performance des Systems Sofern mehrere Prozessoren zur Verf gung stehen Somit kann das System je nach Arbeit reagieren und sich anpassen Durch so genannte Sicherheitszellen wird das gleiche Schema f r die Systemsicherheit implementiert Je mehr das System angegriffen wird durch Hacker Fremdzellen usw desto mehr Sicherheitszellen werden p
49. azu beigetragen dass schon zu Beginn wenige konzeptionelle Probleme aufgetreten sind und ein umfangreicher Prototypen entwickelt werden konnte Kleinere Probleme sind trotzdem aufgetreten 27 1 Technische Probleme Wie bereits angesprochen war die Entwicklung der Bewegungserkennung nicht befriedigend da es vor allem an Hardware zum Testen und Durchf hren von Messungen fehlte Trotzdem konnten gewisse Erkenntnisse bei der Umsetzung gewonnen werden Somit war diese Beispielimplementation der Bewegungserkennung nicht umsonst Zum Umsetzen und Testen der anderen Applikationen gab es keine namhaften Zwischenf lle Die Hardware und Software Umgebung an der HTA Bern war gut zu gebrauchen Benjamin Hadorn Seite 137 von 162 Fachhochschule f r Informatik Bern Diplomarbeit 28 Erreichte Ziele Das Ziel ein Framework zu entwickeln mit welchem die Entwicklung von Cell Computing Model Applikationen vereinfacht wird wurde erreicht Das Produkt befindet sich nun in der Projektphase Test und kann erstmals f r Applikationen eingesetzt werden Durch eine ausf hrliche Beschreibung des Frameworks und die erarbeiteten Beispielimplementationen wurde der Grundstein gelegt damit andere Personen am Projekt mitarbeiten k nnen Die Spezifikation wurde ebenfalls erweitert und verfeinert Durch den Prototypen gewonnene Erkenntnisse haben zu einer Verbesserung und genaueren Beschreibung des Cell Computing Models beigetragen Folgende Ziele wurde
50. beit 8 Kommunikation zwischen den Zellen Ein sehr wichtiges Konzept ist die Kommunikation Einerseits ist es wichtig Zellen mit Informationen und Daten zu versorgen die sie verarbeiten sollen die Nahrung der Zelle und anderseits m ssen die Zelle dem System R ckmeldungen geben k nnen All dies geschieht mittels Botschaften Events Die Botschaften sind einfache Zellen oder Objekte die Daten enthalten Es gibt zwei Arten von Kommunikationssysteme Das Direct Communication System DCS Das Open Communication System OCS 8 1 Direct Communication System DCS Das Direct Communication System DCS dient der gezielten und schnellen Kommunikation zwischen einzelnen Zellensystemen Um ein bestimmtes Zellensystem zu erreichen muss eine Adressierung erfolgen Der Kommunikationspartner muss bekannt sein Das DCS eignet sich besonders zum Steuern der Zelle oder zum Senden von Botschaften nach einem Prozessplan Workflow 8 1 1 Steuern von Zellen durch eine Zentrale Die Zellensysteme werden von der Zentrale aus geleitet Diese Zentrale hat direkten Zugang zu den Erfahrungswerten Je nach Erfahrung und Grundintelligenz Grundeinstellungen des Systems kann es nun reagieren und die Verarbeitungszellen steuern Siehe Kommandozentrale R ckmeldungen von Zellenfabriken und Verarbeitungszellen sowie Daten von Sensoren k nnen somit in die Kommandozentrale gelangen Benjamin Hadorn Seite 36 von 162 Fachhochschule f r Informatik Bern
51. beiten von Auftr gen konzipiert ist Zuk nftig sollen alle Computersysteme mit CCM ausgestattet werden Zusammen mit der Intelligenz des Erfahrungssystems Ged chtnis des Systems k nnte das System die neue Computersoftwarerevolution bedeuten Computer nehmen dem Menschen nicht nur rechnerische und datenverwaltende Aufgaben ab sondern nun auch das Treffen von minderwertigen Entscheidungen Sie werden auch hier nicht wie schon vor etlichen Jahren bef rchtet den Menschen ersetzen sondern ihm l stige oder zeitkritische Arbeit und Entscheidungen abnehmen Lernf hige Systeme werden in der Wirtschaft wie auch f r milit rische Zwecke gebraucht um aus Erfahrungen und neuen Gegebenheiten Entscheidungen treffen zu k nnen Benjamin Hadorn Seite 19 von 162 Fachhochschule f r Informatik Bern Diplomarbeit 4 Grundkonzept des CCM Der folgende Abschnitt zeigt eine m gliche Umsetzung des Cell Computing Model auf Dabei wird immer wieder auf die Synergien zur realen Welt zur ckgegriffen Gerade dieser Abschnitt kann sich im Verlaufe der Entwicklung noch stark ver ndern da viele Strategien zuerst noch getestet und erforscht werden m ssen Es ist auch nicht ausgeschlossen dass neue Erkenntnisse aus der Genforschung die Entwicklung dieses Projekts beeinflussen werden Deshalb kann es sich hier nicht um eine endg ltige L sung handeln Vielmehr soll es zum F rdern von Ideen und neuen Ans tzen dienen 4 1 Das EVA Prinzip Die Grundid
52. bolisieren die Manager die Quadrate die Module Das aktive Modul rot ist durch einen Aktivierungspfad gekennzeichnet Die Systemmodule werden immer geladen Sie stehen dem System generell zur Verf gung Benjamin Hadorn Seite 65 von 162 Fachhochschule f r Informatik Bern Diplomarbeit 14 Das Klassen Framework Zur Entwicklung das Frameworks wurde ein eigenes Klassen Framework aufgebaut Es erm glicht das Entwickeln und Betreiben von Applikationen in Linux und Windows Das Klassen Framework umfasst Verschiedene Datentypen wie Listen Strings Variant etc Die MOM 2 Implementation Die Zellenarchitektur nach CCM Threading Networking Messaging Zellen K nstliche Intelligenz wie genetische Algorithmen Fuzzy Logic etc Serialisierung von Objekten Streaming Objektfabriken Remote Method Invocation f r C Das Framework kann beliebig erweitert werden Es ist m glich ein eigenes Framework zu entwickeln welches alle Eigenschaften des Zeus Frameworks erbt Die Klassen wurden in Paketen zusammengefasst und stehen als Klassen Bibliothek zeusbase 1ib und zeusdev 1lib zur Verf gung Die zeusbase lib beinhaltet alle Basis Klassen des Zeus Frameworks Die zeusdev lib beinhaltet alle Hilfsklassen f r einen Applikationsentwickler Benjamin Hadorn Seite 66 von 162 Fachhochschule f r Informatik Bern Diplomarbeit 14 1 Vorschriften bei der Entwicklung mit Zeus Das Zeus Framework schreibt gewisse Vorgehensweisen bei
53. ch dem Grundsatz welche Teilbereiche k nnen parallel abgearbeitet werden Diese Teilbereiche m ssen nicht einmal unabh ngig von einander l sbar sein Zwischen den parallelen Abl ufen kann eine Kommunikation stattfinden die als Synchronisation gebraucht werden kann Auftrag Teilungsprozess EEE unseres Synkhronisation Endprodukte zusammensetzen EEE dprodukt Abbildung 19 Aufteilen von Arbeitspaketen paralleles Verarbeiten der kleinen Pakete und zusammenf gen der Resultate Der grosse Vorteil des parallelen Verarbeiten der Auftr ge ist die enorme Zeitersparnis gegen ber dem linearen Vorgehen Durch den Einsatz mehrerer Zellen ist der Auftrag ziemlich breit abgest tzt Das Aussetzen einer Zelle bedingt deshalb nicht einen kompletten Neubeginn um den Auftrag zu erledigen Eine neue Zelle f hrt die von der defekten Zelle hinterlassenen Arbeit zu Ende Benjamin Hadorn Seite 41 von 162 Fachhochschule f r Informatik Bern Diplomarbeit 9 1 Aufteilen der Arbeit Jeder Auftrag muss eine klar definierte Struktur aufweisen Diese wird verwendet um diesen Auftrag ordnungsgem ss aufteilen zu k nnen Die Aufteilung ist der erste Arbeitsschritt und wird von einer Zelle im System vorgenommen Teilen Q i on gt gt nr N Teilauftr ge a o Verarbeiten gt o m Zusammensetzen Abbildung 20 Das Aufteilen und Zusammenf gen der Arbeitspakete wird durch das Zellensystem selber vorgenommen Jede
54. dem Zuordnen eines Klassennamens zu der ID der Klasse Ein X Objekt kann auch mehrere Klassennamen besitzen im XML welche die gleiche ID referenzieren API REG _ROOT_ END Dieses Makro beendet die Definition Die X Objekte k nnen in so genannten Code Modulen Bibliotheken entwickelt und f r eine Anwendung bereitgestellt werden Damit die Objektfabrik die Klasse eines X Objekts auch findet und ein Objekt instanziern Benjamin Hadorn Seite 78 von 162 Fachhochschule f r Informatik Bern Diplomarbeit kann muss die Klasse entweder registriert werden oder sie wird durch eine Fabrikfunktion in einem Code Modul exportiert Informationen zur Programmierung von externen Code Modulen sind im Kapitel Seite zu finden Das direkte Registrieren bei der Objektfabrik wird durch ein entsprechendes Makro get tigt Dieses Makro muss vor dem Laden des Objektbaums ausgef hrt werden API XOBJECTFACTORY REGISTER ROOT classid Dieses Makro registriert ein Wurzelobjekt bei der Objektfabrik API XOBJECTFACTORY REGISTER SUB classid Dieses Makro registriert ein X Objekt bei der Objektfabrik Es gibt auch Makros zum Abmelden von X Objekten API _XOBJECTFACTORY UNREGISTER ROOT classid Dieses Makro meldet ein Wurzelobjekt bei der Objektfabrik ab API _XOBJECTFACTORY UNREGISTER SUB classid
55. e Ende des Kanals kann auf dem gleichen PC oder auf einem entfernten Rechner liegen Die Meldungsklassen sind alle von der Schnittstelle ISerializable abgeleitet und k nnen so serialisiert bers Netzwerk gesendet werden Dadurch lassen sich die Systemgrenzen einfach berwinden API IMessage Basisschnittstelle f r Meldungen Benjamin Hadorn Seite 87 von 162 Fachhochschule f r Informatik Bern Diplomarbeit API IBinaryMessage Schnittstelle f r Meldungen mit bin rem Format IXMLMessage Schnittstelle f r Meldungen mit XML Inhalt IOobjectMessage Schnittstelle f r Meldungen die ein Objekt beinhalten ISystemMessage Schnittstelle f r Meldungen die Systemdaten bermitteln TBinaryMessage Klasse welche ein bin re Meldung repr sentiert TXMLMessage Klasse welche eine XML Meldung repr sentiert TOobjectMessage Klasse welche eine Objekt Meldung repr sentiert TSystemMessage Klasse welche eine Systemmeldung repr sentiert Mit diesen Klassen k nnen nun verschiedenartige Meldungen realisiert werden Kontrollmeldungen wie Ping Status Informationen etc e Die Arbeitspakete welche Daten mit Prozessbeschreibung enthalten Autonome Zellen Meldungszellen Agenten 14 4 5 1 Die Kontrollmeldungen Die Kontrollmeldungen dienen dem Steuern und berwachen von Zellen und Zellensystemen Diese Meldungen werden meistens von der Kontrollstruktur inner
56. e Kompetenzen muss sie entfernt werden Thread kill Benjamin Hadorn Seite 114 von 162 Fachhochschule f r Informatik Bern Diplomarbeit Benjamin Hadorn Seite 115 von 162 Fachhochschule f r Informatik Bern Diplomarbeit 18 Einleitung Projekthandbuch Das Projekthandbuch dient als einheitliche Handlungsgrundlage f r alle Projektbeteiligten und legt damit den allgemein g ltigen technischen und organisatorischen Rahmen fest Dieses Dokument ist die Weiterf hrung des bereits bestehenden Projekthandbuchs der Projektarbeit und beschreibt im wesentlichen den Ablauf der Diplomarbeit Die in der Projektarbeit abgeschlossenen Ziele und Arbeitspakete werden hier nicht mehr erw hnt Benjamin Hadorn Seite 116 von 162 Fachhochschule f r Informatik Bern Diplomarbeit 19 Projektbeschreibung Das Projekt Cell Computing Model CCM befasst sich mit einem neuen Paradigma der Informatikwelt Das Paradigma versucht ein Software Modell zu definieren welches Aufbau und Arbeitsweise von biologischen Organismen zum Vorbild nimmt hnliche Denkans tze liegen etwa dem Grid Computing oder den evolution ren Algorithmen zu Grunde Die Diplomarbeit hat ein Software Framework zum Ziel welches nach biologischem Vorbild auf dem Zusammenwirken von miteinander kommunizierenden dynamisch erzeugten Software Zellen beruht Das Projekt wird als Open Source Projekt ver ffentlicht Somit k nnen keine Patentrechte seitens Fachhochschu
57. e Reflektion zur erarbeiteten L sung enthalten die aufzeigt wo die Vorteile bzw Nachteile beim Einsatz des Frameworks liegen Benjamin Hadorn Seite 134 von 162 Fachhochschule f r Informatik Bern Diplomarbeit 26 Soll Ist Vergleich Dieses Kapitel befasst sich mit dem Soll Ist Vergleich Dabei werden die Resultate Termine und Aufw nde ber cksichtigt Nicht enthalten sind die Kosten Da es sich um ein reines Schulprojekt handelt und auf bestehenden Ressourcen zur ckgegriffen wurde war das Projekt kostenneutral Es wurden alle geplanten Muss Ergebnisse erfolgreich umgesetzt Zus tzlich wurde ein RMI Remote Method Invocation f r C geschrieben was einen Mehraufwand von 8 Schultagen bedeutete Die Begr ndung des Mehraufwands ist weiter unten beschrieben Folgende Ergebnisse wurden fertig gestellt Ergebnis Realisiert Geplanter Effektiver Ja Nein Aufwand Aufwand Beispiel Bildverarbeitungsprozess und Ja 14 15 Mandelbrot Menge Sicherheitskonzept f r CCM Ja Spezifikation CCM vervollst ndigen Ja Reviews und Sitzungen Ja Projektdokumente Ja Web Seiten Ja RMI f r C Nicht geplant 5 Aufwand in Schultage mit 8 Lektionen pro Tag 6 Ergebnis wurde nicht von Anfang an in der Planung ber cksichtigt Benjamin Hadorn Seite 135 von 162 Fachhochschule f r Informatik Bern Diplomarbeit 26 1 Abweichungen zu den geplanten Termine und Ergebnissen Das fakultat
58. e abzubilden Benjamin Hadorn Seite 103 von 162 Fachhochschule f r Informatik Bern Diplomarbeit Zweites Schema lt xml version 1 0 encoding 1S0 8859 1 gt lt RootObject ID 1 ClassName TXRootObject AttributeSchema 2 gt lt Attribute Name Label Value Begruessung gt lt Attribute Name Text Value Hallo Welt gt lt SubObjectl ID 1 ClassName TXObject1 gt lt Attribute Name Status Value OK gt lt SubObjectl1 gt lt Subobjectl ID 2 ClassName TXObject1 gt lt Attribute Name Status Value NA gt lt Subobjectl gt lt Subobject2 ID 1 ClassName TXObject2 gt lt RootObject gt Listing 3 Beispiel einer XML Objekt Konfiguration mit Attributen die als Unterknoten zum XML Objekt eingef gt wurden Das dritte und flexibelste Schema definiert dass die Attribute als Unterknoten eingef gt die Attributwerte im Gegensatz zur 2 Variante aber als Textknoten eingef gt werden Dies hat den grossen Vorteil dass auch komplexe Attributwerte wie zum Bsp ein Textdokument gespeichert werden kann Drittes Schema lt xml version 1 0 encoding IS0 8859 1 gt lt RootObject ID 1 ClassName TXRootObject AttributeSchema 3 gt lt Attribute Name Label gt Begruessung lt Attribute gt lt Attribute Name Text gt Hallo Welt lt Attribute gt lt SubObjectl ID 1 ClassName TXObject1 gt lt Attribute Name Status gt OK lt Attribute gt lt SubObjec
59. e des Projekts nicht erreicht werden da das Projektteam nur aus einer Person besteht Durch Krankheit Unfall oder Ausfall durch berufliche T tigkeit kann das Resultat des Projekts negativ beeinflusst werden Beim Eintreten eines der genannten Szenarien muss mit dem Fachdozenten die Ziele neu definiert und nach m glichen Alternativen gesucht werden Technische Risiken bez glich Machbarkeit gibt es keine da auch die Erkenntnis dass CCM nicht umsetzbar ist ein Ergebnis dieser Diplomarbeit sein kann Weitere Projektrisiken sind in der folgenden Tabelle zusammengefasst Fall Schadens Schadens Ausl ser Verhinderung Minimierung Die Implementierung Prototyp erstellen und Durch Risikoanalyse liefert nicht die testen und gew nschten Testimplementationen Resultate Datenhaltung Verlust Backup auf Backup auf HD Crash von Daten verschiedene Rechner verschiedene Rechner ablegen ablegen ev periodisch CD brennen Durch Krankheit von Jeder ist informiert ber Unfall Krankheit Team Projektmitglieder den aktuellen Benjamin Hadorn Seite 120 von 162 Fachhochschule f r Informatik Bern Diplomarbeit Fall Schadens Schadens Ausl ser Verhinderung Minimierung verz gert sich das Projektstand Projekt Zus tzliche Sorgf ltige Arbeitgeber Belastungen durch Terminpl ne Arbeit in der Firma vern nftiges verz gert sich das Zeitmanagement Projekt nderung der Sorgf l
60. ee des Informatiksystems bleibt auch hier bestehen Es handelt sich also ebenfalls um ein EVA System Eingabe Verarbeitung Ausgabe Das CCM Konzept beinhaltet eine Dateneingabe Datenverarbeitung und eine Datenausgabe Der grosse Unterschied ist aber in der Systemarchitektur und der Art der Datenverarbeitung zu finden Im Weiteren wird die Peripherie anders benannt So heissen die Eingabeger te mit dem entsprechenden Zellenhaufen Sensoren Kamera Maus Tastatur etc die Ausgabeger te werden als Aktoren bezeichnet Drucker Bildschirm Roboterarm etc Diese Bezeichnungen sollen abstrakt verstanden werden Abbildung 6 Das EVA Prinzip Benjamin Hadorn Seite 20 von 162 Fachhochschule f r Informatik Bern Diplomarbeit Es k nnen sowohl virtuelle wie auch reale Ger te sein Durch die Sensoren kann das System zu Daten gelangen w hrend bei Aktoren irgend ein Resultat der Eingabedaten und deren Verarbeitung sichtbar wird zum Bsp Bewegung eines Roboters Das Prinzip wird mit Hilfe von Tastaturen und Bildschirmen verdeutlicht An einem solchen Grosssystem k nnen zum Beispiel hunderte Tastaturen vorhanden sein Jede spricht eine Sensorzelle an Diese Zellen nehmen die Eingaben entgegen und speisen damit das System Jeder Bildschirm wird von einer oder mehreren Ausgabezellen angesprochen Das System kann nun Informationen und Daten ber diese Ausgabezellen an den Bildschirm weitergeben Dabei k nnte es sich auch um hunderte von Bild
61. ei ist es wichtig dass der Schaden sich m glichst nur lokal auswirkt und das System sofort wieder einen stabilen Zustand erreicht Das Prinzip der Zellen ist hier sehr geeignet da die Abst tzung sehr breit ist hnlich wie beim Internet steigt irgendwo ein Server aus stirbt nicht gerade das ganze Netz In dem CCM sieht der Regenerierungsprozess folgendermassen aus steigt eine Zelle aus muss diese Zelle ersetzt werden damit das System weiterarbeiten kann Um das Problem kurzfristig in den Griff zu bekommen und keinen grossen Leistungsverlust erleiden zu m ssen bernimmt eine benachbarte Zelle die Arbeit der defekten zerst rten Zelle Das bedingt Benjamin Hadorn Seite 30 von 162 Fachhochschule f r Informatik Bern Diplomarbeit Ei L FJaktive Zellen En aktive Zellen NM C Cell Factory Wzerstoette Zellen Cell Factory Cleaner cell Selbstheilung Abbildung 12 Regenerierung von Zellen Mit Hilfe von Zellenfabriken und Fresszellen wird der Lebenszyklus von Zellen beeinflusst Nach dem gleichen Prinzip geschieht die Regenerierung durch Klonen dass es im System noch inaktive Zellen hat welche bei Bedarf sofort eingesetzt werden k nnen Gerade bei wichtigen Aufgaben ist es wichtig dass die verstorbenen Zellen sofort ersetzt werden k nnen und nicht auf die Erzeugung neuer Zellen gewartet werden muss Benjamin Hadorn Seite 31 von 162 Fachhochschule f r Informatik Bern Diplomarbeit 6 DNA Der Progr
62. eispiel Implementation erfordert eine graphische Schnittstelle zum Bedienen der Applikation und zur berwachung bzw Einstellen der Zellen Die Graphik wird mit QT von Trolltech implementiert ATDOC Dabei muss noch gekl rt werden inwiefern QT f r dieses Projekt als Open Source verwendet werden kann 19 2 4 Reflektieren und Verbessern des System Zus tzlich sind zu Untersuchen ggf zu Verbessern Welche Arbeitsschritte m ssen gemacht werden oder bleiben erspart Ist es einfach eine CCM Anwendung zu Programmieren Was sind die Voraussetzung um mit dem Zeus Framework zu programmieren Ing oder Lehrling K nnen die Arbeitsschritte nachvollzogen werden Wie schnell ist man bei der Entwicklung von Software mit dem Zeus Framework Muss nur das wesentliche geschrieben werden Ist das Verhalten des Systems transparent Ist das Verfahren performant Benjamin Hadorn Seite 119 von 162 Fachhochschule f r Informatik Bern Diplomarbeit 19 2 5 Mobile Zellen fakultativ Als Zusatz kann das System mit so genannten mobilen Zellen Agenten erweitert werden Dabei wird das theoretisch erarbeitete umgesetzt Speziell zu beachten sind folgende Aspekte Wie verbreiten sich die mobilen Zellen Welches Protokoll soll verwendet werden Wie wird der Zustand der Zellen erhalten Streaming Anwendung des Sicherheitskonzepts 19 3 Projektrisiken Das Risiko ist mittel bis hoch einzusch tzen dass die technischen Ziel
63. eit R ckgabe von Schnittstellen Tabelle 2 Wird bei solchen Methoden ein RET_NOERROR zur ckgegeben muss der interne Referenzz hler um eins erh ht werden Bei jedem anderen R ckgabewert d rfen keine Referenzz hler erh ht werden 14 1 2 Die Basisschnittstelle IZUnknown Im Klassen Framework sind alle Objekte von Schnittstellen abgeleitet Die Basisschnittstelle heisst IL2Unknown und regelt die folgenden Zugriffe e Verwaltung von Referenzen Die Verwaltung regelt wann ein konkretes Objekt gel scht wird Ein direktes delete f hrt zu Fehler und sollte vermieden werden e Casting zu anderen Schnittstellen Da eine Art Mehrfachvererbung gebraucht wird k nnen durch direktes casting falsche Zeiger entstehen Das geschieht vor allem beim Casten von einer beliebigen Schnittstelle zur anderen Eine Ausnahme ist das Casting auf eine Basisklasse Die Methoden der Basisschnittstelle sind definiert als Benjamin Hadorn Seite 69 von 162 Fachhochschule f r Informatik Bern Diplomarbeit API Zeusbase System Interfaces IZUnknown unsigned long MQUALIFIER askForInterface long interface id IZUnknown iface Diese Methode dient dem Abfragen und ggf Casten auf eine andere Schnittstelle unsigned long MQUALIFIER addRef Diese Methode erh ht den internen Referenzz hler um eins unsigned long MOUALIFIER release Diese Methode verringert den internen Referenzz hler um eins F llt der Referenzz
64. ekte Die Spezifikation schreibt nicht vor dass sich Objekte im XML eindeutig von einander unterschieden Je nach Anwendung ist es aber erw nscht dass jedes Objekt eindeutig identifizierbar ist Das XML Objekt wird durch den Namen des Objekts Knotennamen und dem Attribute ID zum Unikat Objekt lt Name gt lt ID gt Benjamin Hadorn Seite 102 von 162 Fachhochschule f r Informatik Bern Diplomarbeit Beispiel von XML Objekt Tree Listing 1 Beispiel einer XML Objekt Konfiguration mit eindeutig identifizierbaren Objekten 15 1 2 Attribute Das Objekt kann Attribute enthalten Es gibt 3 Schemas wie Attribute in das XML eingef gt werden k nnen Das erste Schema definiert dass Attribute des Objekts auch als Attribute des XML Knotens eingef gt werden Dabei k nnen alle primitiven Werte einfach und schnell abgebildet werden Der Vorteil dieser Art ist dass sie weniger Speicher verwendet und der Zugriff schnell ist Erstes Schema Listing 2 Beispiel einer XML Objekt Konfiguration mit Attributen die auch als Attribute im XML Objekt eingef gt wurden Das zweite Schema definiert dass die Attribute als Unterknoten lt Attribute gt eingef gt werden Der Name und der Wert des Attributs werden direkt in diesem Knoten definiert wie zum Bsp lt Attribute Name Name Value MyName gt Dies hat den Vorteil dass auch Listen einfach angegeben werden k nnen Es braucht aber schon erheblich mehr Speicher grosse Objektb um
65. ekten siehe Kapitel auf Seite API IXxObject Basisschnittstelle des MOM 2 IXRootObject Schnittstelle f r das Wurzelobjekt Benjamin Hadorn Seite 75 von 162 Fachhochschule f r Informatik Bern Diplomarbeit API IXLoaderObject Schnittstelle f r ein ladbares X Objekt TXobject Implementation eines X Objekts Andere X Objekte k nnen von dieser Klasse erben TXRootObject Implementation eines Wurzelobjekts Andere Wurzelobjekte k nnen von dieser Klasse erben TXLoaderObject Implementation eines ladbares X Objekts TXobjectFactory Fabrik welche X Objekte aus einem XML Dokument erstellen kann Die erweiterten Eigenschaften des MOM 2 wurden durch die Klassen TModule und TSystemManager implementiert Die Basisklasse des Moduls heisst TModule Sie implementiert die Schnittstelle IModule welches das Aktivieren und deaktivieren von Modulen spezifiziert Die Klasse TSystemManager ist vom Typ TXRootObject abgeleitet und implementiert ebenfalls die Schnittstelle IModule Der Systemmanager ist das Wurzelobjekt im Modul Objektbaum API IModule Basisschnittstelle aller Module und Manager TModule Implementation des Moduls und des Managers Das Modul kann auch die Aufgabe des Managers bernehmen TSystemManager Implementation eines Wurzelobjekts in Form eines Moduls Benjamin Hadorn Seite 76 von 162 Fachhochschule f r Informatik Bern Diplomarbeit
66. elle A2 bereit ist wird ebenfalls einen Request R2 an die Zelle A1 gesendet a Die Zelle A1 ist nicht erreichbar Gleiche Fehlerbehandlung wie bei Punkt 1 b Die Zelle A1 ist erreichbar das Arbeitspaket wurde aber verworfen da die Zeit abgelaufen ist expired Die Zelle A2 muss nun ihr Arbeitspaket auch verwerfen da es nutzlos geworden ist Benjamin Hadorn Seite 46 von 162 Fachhochschule f r Informatik Bern Diplomarbeit 3 Steht bei einer Zelle einen Request an und die Zelle hat selber einen Request gesendet wird eine Answer gesendet und auf die Answer der anderen Zelle gewartet a Request wurde gesendet es kommt aber kein Answer auf diesen Request Nach x Versuchen oder nach einer definierten Zeit wird abgebrochen und die Fehlerbehandlung eingeleitet b Beim Senden der Answer ist die andere Zelle nicht mehr erreichbar Es wird abgebrochen und die Fehlerbehandlung eingeleitet 4 Beim Eintreffen der Answers werden die Arbeitspakete gesendet a Das Zielsystem ist nicht erreichbar Fehlerbehandlung wird eingeleitet Benjamin Hadorn Seite 47 von 162 Fachhochschule f r Informatik Bern Diplomarbeit Zelle A1 Zelle A2 Senden von W1 f r R1 Senden von W2 f r R2 Abbildung 24 Ablauf der Synchronisation in einem Workflow Bis zum Synchronisieren m ssen die Zellen AT und A2 untereinander ihre Bereitschaft bekannt geben 9 2 3 Parallelisieren von Abl ufen Parallelisieren heisst ein Arbeitsp
67. em findet sich auch in der Konfiguration wieder Die Programmierung mit den Klassen des Zeus Frameworks braucht C oder Java Kenntnisse Zwar braucht es f r einzelne Konzepte Zeit zur Einarbeitung es wird aber kein Ingenieur Wissen verlangt Bei der Programmierung von Zellen m ssen nur die wesentlichen Schritten gemacht werden Die Programmierung k nnte noch durch Komponenten verbessert werden welche die Kommunikation der Zellen besser steuern zum Beispiel Petrinetze 28 1 2 Schnelligkeit Zum Entwickeln einer CCM Anwendung brauchen nur die Zellen entwickelt zu werden Diese sind in Bibliotheken Shared Libraries zu implementieren Durch das Verwenden von Hilfsklassen ist die Implementation relativ einfach und schnell Auch die Konfiguration in XML ist durch die bersichtliche Strukturierung schnell gemacht 28 1 3 Performance Die Performance des Zeus Frameworks ist gut Die Klassen sind zwar vor allem auf die Sicherheit optimiert aber dank dem direkten Umsetzen in Maschinencode sehr schnell C Der Code im Framework enth lt noch sehr viele Debug Ausgaben Durch das Entfernen von unwichtigen Ausgaben kann die Performance noch verbessert werden Das RMI Remote Method Invocation in C hat auch noch Potential zur Verbesserung Der Objekt Header der Daten Serialisierung k nnte noch verkleinert und optimiert werden Dadurch m ssten weniger Daten bers Netzwerk bertragen werden 7 Ingenieur Wissen braucht es dann
68. en Definition des X Objekts class TXObjectExample public TXObject pubie TXObjectExample IXMLNode node Methods of TXObject virtual bool MOUALIFIER freeze virtual bool MOUALIFIER unfreeze REG SUBT BEGIN TXObjectExample REG _ SUB ADD TXObjectExample L TXObjectExample REG SUB END protected virtual TXObjectExample hr Tabelle 14 Definition des X Objekts Die Makros dienen der Registrierung bei der Objektfabrik Benjamin Hadorn Seite 111 von 162 Fachhochschule f r Informatik Bern Diplomarbeit Implementation des X Objekts Tabelle 15 Implementation des X Objekts Die Methoden freeze und unfreeze sind im Kapitel Seite erkl rt Benjamin Hadorn Seite 112 von 162 Fachhochschule f r Informatik Bern Diplomarbeit 17 Das Sicherheitskonzept In diesem Kapitel wird das Sicherheitskonzept des Zeus Frameworks erl utert Nicht umgesetzte Mechanismen oder Aspekte sind klar deklariert Das Sicherheitskonzept umfasst das Laden von den Code Modulen und der berwachung von laufenden Zellen 17 1 Sicheres Laden von Code Modulen Das Konzept des sicheren Ladens von Code Modulen wurde in der aktuellen Version des Zeus Frameworks umgesetzt Die Eigenschaft kann durch die Einstellung zeus LibraryManager Security In der Konfiguration ein oder ausgeschaltet werden Ob ein Code Module geladen werden kann oder nicht liegt an seiner Signatur
69. en Kommunikation zwischen Zellen ber Systemgrenzen hinweg Eingerichtet ist auch eine Internet Plattform unter http www xatlantis ch 19 2 Problemstellung Die Aufgabenstellung der HTA Bern wurde im Dokument DIP ISWPi verfasst Die Aufgabenstellung Problemstellung soll hier noch etwas genauer erl utert werden 19 2 1 Spezifikation zum Cell Computing Model Die Spezifikation zum Cell Computing Model muss fortlaufend erg nzt und ggf korrigiert werden Es fehlen noch folgende Angaben Sicherheitskonzept Wie k nnen fremde Zellen erkannt werden und wie k nnen solche Zellen eliminiert werden Autonome Zellen welche von einem System zum n chsten gelangen Wie findet die bertragung statt und nach welchen Kriterien wandert eine solche Zelle Benjamin Hadorn Seite 118 von 162 Fachhochschule f r Informatik Bern Diplomarbeit 19 2 2 Implementation der Finger Print Technik Umsetzen des Sicherheitskonzept welches in der Spezifikation theoretisch beschrieben wurde Verwenden geeigneter Algorithmen zur Erzeugung von Finger Prints und zur Verschl sselung von sicherheitsrelevanten Daten 19 2 3 Beispiel Implementation Als Beispiel soll ein Verfahren aus der Bildverarbeitung implementiert werden Dieses Beispiel soll auf dem bereits erstellten Zeus Framework laufen und auf mehrere Rechner verteilt werden k nnen Es soll folgendes Verfahren angewandt werden Motion Detection in einem Film station re Kamera Die B
70. en dient A 4 Benutzerhandbuch zum Framework zeus Dieses Kapitel dient als Referenz zur Konfiguration und den Gebrauch der Applikation bin zeus Diese Applikation ist reine Konsolen Applikation und kann sehr einfach zum Erstellen von Clustering und Server Diensten verwendet werden A 4 1 Konfiguration Die Applikation bin zeus wird durch 2 Dateien f r den ben tigten Dienst konfiguriert Die erste Datei ist die Konfigurationsdatei des Frameworks Sie beinhaltet Angaben und Einstellungen zum Framework und kann durch kundenspezifische Einstellungen erweitert werden Standardm ssig heisst die Datei zeus properties API zeus LibraryManager Dient als Angabe welche Systemkomponenten Services direkt vom Framework geladen und verwaltet werden sollen Diese Systemkomponenten werden hier als eindeutige Namen angegeben Die Angabe ist eine Aufz hlung kommagetrennt zeus Die einzelnen Systemkomponenten werden dann mit dieser LibraryManager lt Name gt Einstellung konfiguriert Dabei wird der Namen der Bibliothek Code Modul in der Einstellung angegeben welche vom Framework geladen werden soll Platzhalter lt Namel gt Rechts muss dann ein Pfad zugewiesen Benjamin Hadorn Seite 143 von 162 Fachhochschule f r Informatik Bern Diplomarbeit API werden welcher dem Bibliothekspfad entspricht zeus Ist diese Einstellung 1 werden alle Code Module mit LibraryManager Secu
71. en verwendet werden Die dynamischen Zellen sind Zellen die nicht fest zu einem Zellenhaufen geh ren sondern hnlich wie Blutzellen zum Beispiel im System Botschaften und Daten bertragen Oder Zellenarten wie die Fresszellen und Polizeizellen welche durch eine Fabrik in das System eingeschleust werden 5 2 2 Klonen von Zellen Zellen haben die F higkeit sich selber auch zu vermehren Es gibt so genannte Mutterzellen die sich bei berlastung teilen k nnen Pro Zellensystem existiert eine Mutterzelle die die gesamte F higkeit des Teilsystems besitzt Durch das Teilen entstehen neue Zellen die beim Erledigen der Aufgabe mithelfen Die geklonten Zellen sind spezialisierte Zellentypen die nur ein ganz bestimmten Teil einer Aufgabe erledigen k nnen Ihre F higkeit ist gegen ber der Mutterzelle eingeschr nkt Sie k nnen aber bei Bedarf auch ihren spezialisierten Teilbereich wechseln und so anderen Zellen in diesem Zellensystem aushelfen Benjamin Hadorn Seite 25 von 162 Fachhochschule f r Informatik Bern Diplomarbeit Das Prinzip des Klonen kann vor allem bei statischen Strukturen Zellenhaufen eingesetzt werden Stelt man sich ein Baum mit verschiedenen Knoten vor so kann der Knoten sich nun teilen und vermehren Hier w re eine Zellenfabrik weniger geeignet da die Fabrik wissen m sste zu welchem Zellenhaufen die Zellen zu erstellen sind und wie sie dort angebunden werden m ssten Die Mutterzelle hingegen ist bereits
72. ffskanal auf den Pool Durch diesen Kanal kann jede Zelle Meldungen absetzen aber auch Meldungen anfordern und lesen Eine Zelle w hlt eine beliebige Meldungen im Pool aus Kann sie die Meldung interpretieren reagiert sie entsprechend darauf und hat somit diese Meldung verbraucht Andere Zellen k nnen auf diese Meldung nicht mehr reagieren Kann eine Zelle die Botschaft nicht interpretieren gelangt sie unver ndert zur ck in den Pool Wie jede Zelle hat auch die Meldung eine Lebensdauer Wird sie nicht gelesen oder niemand kann sie interpretieren wird sie nach einer gewissen Zeit von Fresszellen gefressen und die Ressourcen werden freigegeben Der Code der Meldung legt fest welche Zellenart sie verbrauchen darf Aber welche der Zellen gerade damit besch ftigt ist die Meldung wirklich zu verarbeiten l sst sich nicht vorhersagen Ein Nachteil des Pools ist dass es sich hier um eine zentrale und somit verletzliiche Komponente handelt Zentrale Objekte sind immer ein gutes Angriffsziel von Viren und Hacker Benjamin Hadorn Seite 39 von 162 Fachhochschule f r Informatik Bern Diplomarbeit Meldungspool Zellensystem A Zellensystem C Zellensystem B Abbildung 18 Als OCS k nnte ein solcher Pool zum Einsatz kommen Das Zellensystem A entfernt Meldungen zum Verarbeiten Das Zellensystem B pr ft ob es die Meldung gebrauchen kann und das Zellensystem C sendet Meldungen an den Pool 8 3 Beispiel Hacker Angriff D
73. ftrag ansteht und nimmt diesen entgegen Sobald der Auftrag erledigt ist wird dieser wieder in den Datenpool des Zellensystems abgelegt Dort wird der Auftrag entweder mit anderen Auftr gen wieder vereint oder an andere Zellen weitergeleitet Dies geschieht nach dem Workflow Er definiert wer was und wie verarbeitet Benjamin Hadorn Seite 50 von 162 Fachhochschule f r Informatik Bern Diplomarbeit 10 Kommandozentrale des Systems Die Kommandozentrale ist die intelligente Komponente des CCM Sie entspricht sozusagen dem Gehirn und bernimmt hnliche Aufgaben welche in diesem Abschnitt n her erkl rt werden Die Kommandozentrale ist noch am wenigsten beschrieben ist aber eines der wichtigsten Komponenten des CCM Durch sie wird das CCM erst zum System welches autonome F higkeiten und k nstliche Intelligenz besitzt 10 1 Steuern der Zellen Eine der Aufgaben ist das Steuern der einzelnen Zellensysteme Wie bereits beschrieben geschieht die Steuerung entweder durch direkte Kommunikation Siehe DCS oder durch die Trendkommunikation Siehe OCS W hrend die direkte Kommunikation dem Nervensystem bei biologischen Systemen entspricht wird mit der Trendkommunikation eine Art Steuerung mit Hormonen realisiert Die Kommandozentrale empf ngt Signale aus der Umgebung des Systems wie Eingaben eines Benutzers oder Bilder von Kameras usw Diese Signale werden von den Sensorzellen in Meldungen Datenpakete umgewandelt Aus diesen Meldu
74. g und an die Aufgabe KI Lernf higkeit Das System soll gewisse Abl ufe selbst ndig optimieren Erfahrungen sammeln und Verhaltensmuster lernen k nnen neuronal evolution res Prinzip 3 2 1 Regenerierung Ein sehr wichtiges Ziel ist die Stabilit t und Systemsicherheit Mit der Regenerierung von Zellen und einer geschickten Arbeitsteilung soll ein m glichst absturzsicheres Konzept realisiert werden Mit automatischem Erkennen von Fehler und Einleiten der entsprechenden Massnahmen soll sich das System selber wieder stabilisieren k nnen Sterben Zellen ab durch Fehler oder durch Angriffe von Fremdk rper bernimmt die Arbeit eine benachbarte Zelle Zudem sollen Angriffe auf das System von Aussen besser erkannt werden k nnen Im weitesten Sinne w rde dies einer Antivirus Software entsprechen Das System erkennt Viren automatisch und beseitigt sie durch entsprechende Gegenmassnahmen Durch die F higkeit Erfahrungen sammeln zu k nnen soll das System gegen Virenarten immun werden Benjamin Hadorn Seite 14 von 162 Fachhochschule f r Informatik Bern Diplomarbeit 3 2 2 Parallele Verarbeitung der Daten Das System soll durch parallele Verarbeitung riesige Datenmengen schneller verarbeiten und analysieren k nnen Die Performance des Systems soll sich nach dem Arbeitsvolumen richten Stehen viele Auftr ge an vermehren sich gewisse Zellenarten um der gr sseren Arbeitslast entgegen zu wirken Dagegen schrumpft das System
75. ge Tokens eine Transition aktivieren Dadurch k nnen wir von einer Zelle aus definieren dass unterschiedliche Arbeitspakete an verschiedene Zellen gesendet werden Abbildung 21 9 2 2 Synchronisieren Ein wichtiger Bestandteil der Petrinetze ist das Synchronisieren und Parallelisieren von Abl ufen Das Synchronisieren wird gebraucht um Teilprodukte zusammenzusetzen Die Zellen A1 und A2 Abbildung 20 senden ihre Arbeitspakete an die Zelle B welche diese Pakete zu einem Produkt zusammenf gt Die gesamte Koordination beim Synchronisieren ist nicht trivial l sbar Hier ist ein m glicher Ansatz gegeben Benjamin Hadorn Seite 45 von 162 Fachhochschule f r Informatik Bern Diplomarbeit Zelle A1 Zelle B Bedingung PaketTyp Z Bedingung PaketTyp X Zelle A2 Abbildung 23 Synchronisieren der Zelle AT und A2 9 2 2 1 Das Synchronisationsverfahren Da ein Netzwerk nicht als sicher eingestuft werden kann muss eine Fehlerbehandlung eingebaut werden Zu den obigen Punkten k nnen verscheiden Strategien verwendet werden Nehmen wir an die Zelle A1 ist bereit zur Auslieferung des Arbeitspakets Z 1 Die Zelle A1 informiert die Zelle A2 mit einem Request R1 dass sie zur Auslieferung bereit ist a Die Zelle A2 kann nicht erreicht werden Nach x Versuchen abbrechen und durch Back Tracking den Fehler an die vorhergehenden Zellen zur ckgegeben oder den Fehler an eine Fehlerbehandlungsroutine weiterleiten 2 Sobald die Z
76. halb eines Zellensystem verwendet berwachungszelle Sie kann aber auch von externen Zellen zur Pr fung von Qualit t und Lebenserhaltung verwendet werden Die ber hmteste Meldung ist das Ping welches pr ft ob der Kommunikationspartner noch lebt Benjamin Hadorn Seite 88 von 162 Fachhochschule f r Informatik Bern Diplomarbeit 14 4 5 2 Die Arbeitspakete Die Arbeitspakete enthalten Daten Diese Daten k nnen bin r oder als Text bergeben werden Extension Arbeitspakete mit Workflow Der Workflow ist in Form eines Petrinetzes angeben und wird jedem Arbeitspaket mitgegeben In diesem Petrinetz wird gespeichert wo sich das Paket zur Zeit befindet ob die Zelle auf weitere Arbeitspakete warten muss und an welche Zelle n das bearbeitete Paket gesendet werden soll Abbildung 33 Aufbau der Arbeitspakete 14 4 6 Kommunikationskan le Will eine Zelle mit einer anderen Zelle kommunizieren muss zuerst ein Kommunikationskanal erstellt werden Durch diesen Kanal werden dann Arbeitspakete und Kommandos gesendet Das Zellenumgebung verwaltet alle Kommunikationskan le durch welche die Zellen zu Informationen gelangen k nnen Input Pipes Diese Art von Kan len werden in einer lokalen und einer globalen Registrierungsstelle Namensdienst registriert damit andere Zellen Meldungen an dieses Zellensystem senden kann Die Zellenumgebung holt sich die ausgehenden Kommunikationskan le Benjamin Hadorn Seite 89 von 162
77. hule f r Informatik Bern Diplomarbeit Serialisierbares Objekt class TSerialTestObject Pulbyleler TSerialTestObject Serializing macros public TZObject public ISerializable SERIAL END private Long value long m 1Value Double value double m dValue String value TString m strValue hr SEIRSIEZNESIIARUNCTHS Erz ueseoBs le ee a Sern Nest OEI Ee Ea SERIAL LONG mi value SERIAL DOUBLE m _dValue SERIAL STRING m strValue SERTANFOBJECT TSerralTestsubobjleet mrpobJjeck An other serializable Object I entalllesiesubopseece EmBpobsjeet Implementationsteil cpp SERIAL _CONSTRUCTOR TSerialTestobject Tabelle 10 Implementation eines serialisierbaren Objekts Folgende Klassen dienen zum Serialisiereen bzw Deserialisieren von Objekten API ISerializable Schnittstelle f r die serialisierbaren Objekte TZOobjectFactory Fabrik zum Erstellen von Objekten aus einem Byte Stream Benjamin Hadorn Seite 98 von 162 Fachhochschule f r Informatik Bern Diplomarbeit Extension Die Serialisierung kann durch weitere Datentypen erweitert werden Die Datei zeusbase System Interfaces ISerializableImplHelper hpp beinhaltet f r jeden Datentypen Makros Das folgende Beispiel zeigt wie eine Liste von double Werten serialisiert werden k nnte als Datentyp ID der Liste define SERIAL DOUBLELIST_ID 0x30 Makro z
78. im Haufen vorhanden und kennt die Struktur bzw den Ort wo die neue Zelle ihren Platz findet 5 2 2 1 Vermehrung in dem Zellenhaufen Gehen wir einmal davon aus dass die Arbeit welche eine Zelle verrichten muss in Form von Meldungen Botschaften existiert Wir ben tigen dazu einen Eingangspuffer in welchem alle Meldungen zwischengespeichert werden welche noch nicht von der Zelle verarbeitet wurden Die Gr sse des Puffers dient als wichtigste Gr sse um die Auslastung zu berechnen Der Algorithmus ben tigt folgende Eingabeparameter Anzahl Meldungen eines Zellensystems zu einem beliebigen Zeitpunkt t d t Maximale Grenze des Meldungseingangs Puffers N max Reaktionsgrenze N ect Dabei wird der Zuwachs der Meldungen und die nderung des Zuwachs gepr ft wenn die Gr sse des Eingangspuffer die Reaktionsgrenze berschreitet Zellen werden geklont wenn der Zuwachs positiv und die nderung des Zuwachs stabil oder zunehmend ist Die Funktion f n bestimmt wann eine Zelle im Zellensystem geklont werden soll Resultiert eine 1 wird eine neue Zelle generiert bei O wird das System nicht ver ndert fno SLHOPONEO gt Doa a NaN u In der obigen Formel ist die Messzeit analog Die Messzeit muss f r den Computer noch diskretisiert werden Halten wir die Messzeit variabel so passt sie sich der Reaktionszeit des Zellenhaufens an F r die Messzeit k nnen eine obere und untere Schranke angegeben werden Tmax und T um Dies i
79. ind in dem Projektplan in zeitliche Abh ngigkeit dargestellt Auf einen Netzplan wurde verzichtet da die Arbeitspakete nur sequentiell abgearbeitet werden nur ein Projektsachbearbeiter Benjamin Hadorn Seite 129 von 162 Fachhochschule f r Informatik Bern Diplomarbeit 24 3 1 Arbeitspaket Beispiel Bildverarbeitungsprozess Arbeitspaket Beispiel Bildverarbeitungsprozess Priorit t Hoch Projekt Verantwortlicher Benjamin Hadorn QS Hr P Schwab Projektmitarbeiter Benjamin Hadorn Eingaben Ressourcen Knowhow Menge Aufwand d Spezifikation Cell Computing Model 1 Diplomarbeit Rahmenbedingungen Zeus Framework 1 1 Grundlagen zu Bildverarbeitung und Computer Vision 1 Motion Detection Algorithmus Aktivit ten Parameter Menge Aufwand d Erstellen eines UML Modells der Anwendung Diagramme 1 2 Erstellen der Grundstruktur Code Module 1 2 Erstellen der graphischen Oberfl che Code Module 1 2 Erstellen der Zellen mit Algorithmen Code Module 1 6 Testen der Anwendung 1 Code Review Code Module 4 Pauschal Produkte Resultate Menge Aufwand d UML Modell Anwendung zur Motion Detection Total in Tage 14 Benjamin Hadorn Seite 130 von 162 Fachhochschule f r Informatik Bern Diplomarbeit Bemerkungen Die Code Module der Anwendung setzen sich zusammen aus EVA Zellen Protokolle GUI Module Testklassen Ben
80. inderobjekte untergeordnet Eine Objektfabrik versucht aus einem XML Dokument von jedem Knoten ein X Objekt zu erzeugen und so einen Objektbaum aufzubauen Jeder XML Knoten muss deshalb spezifizieren welche Klasse instanziert werden soll damit die Fabrik das entsprechende Objekt erzeugen und am richtigen Ort im Baum platzieren kann Als Basisklasse eines X Objekts wird das TXObject definiert Diese Klasse verwaltet eine Liste von Kinderobjekten welche ebenfalls vom Typ TXObject sind Durch diese rekursive Formulierung wird der Objektbaum definiert Die Basisklasse wird erweitert durch die Klassen TXRootObject Definiert den Wurzelknoten des Objektbaums TXLoaderObject Definiett einen Knoten welcher folgende Funktionalit t implementiert Kann verhindern dass beim Aufbauen des Objektbaums ein Unterbaum erstellt wird Dieser Unterbaum wird sp ter erst bei Gebrauch erstellt Kann ein Unterbaum aus einem anderen XML Dokument laden Dies erm glicht eine Modularisierung der XML Dokumente Diese Klassen implementieren die Basisanforderungen der MOM Spezifikation Sie dienen weiter als Persistenzlayer Beim Starten der Applikation k nnen X Objekte ihre Einstellung Attribute aus der XML Struktur lesen und beim Beenden k nnen sie ihre Attribute wieder in die XML Struktur speichern Diese XML Struktur kann in einer Datenbank XML f hige Datenbank oder als XML Datei gespeichert werden Weitere Informationen zur XML Definition von X Obj
81. ine eigene Applikation welche f r die laufenden Zeus Applikationen zug nglich ist Beim Starten einer Zelle werden ihre Kommunikationskan le automatisch bei der Registrierungsstelle registriert Benjamin Hadorn Seite 94 von 162 Fachhochschule f r Informatik Bern Diplomarbeit Als Kommunikationsprotokoll wird das Cell Communication Transfer Protocol CCTP verwendet Es handelt sich um ein bin res Protokoll welches einfach ber Sockets angewendet werden kann 14 5 Serialisierung von Objekten Damit Objekte wie Meldungen von einer Zelle zur n chsten bertragen werden k nnen m ssen Objekte serialisiert werden Mit anderen Worten Objekte m ssen in einen Byte Stream umgewandelt und beim Kommunikationspartner wieder aus dem Byte Stream erstellt werden k nnen Dabei werden ausschliesslich die Attribute eines Objekts im Byte Stream gespeichert Object Data Stream Format Byte 1 Byte 2 Byte 3 Byte 4 37 en c2 o oes ors ObjectID Length of ClassName Abbildung 37 Aufbau des Serialiserungsprotokoll Zur Serialisierung von Objekten wurde ein einfaches bin res Format definiert Es besteht aus einem Kopfteil und aus den Daten der Objektattribute Der Kopfteil wird durch eine 4 Byte lange Kennung initialisiert Damit kann ein Stream als Objekt Stream identifiziert werden Weitere 4 Bytes dienen der Objekt ID Am Schluss des Kopfteils wird die L nge des Klassennamens und der Klasse
82. ion nach Konventionen Doxygen Code Editor Doxygen Code nach Konventionen C KWrite KDevelop Benjamin Hadorn Seite 125 von 162 Fachhochschule f r Informatik Bern Diplomarbeit Aktivit t Methode Werkzeug Konfiguration erstellen nach Konventionen XML KWrite 23 Standards und Richtlinien Folgende Richtlinien sind zu befolgen Richtlinie Dokument Codierstandard f r C Codierstandard f r XML Design Patterns Namenskonventionen Integrationsbestimmungen Benjamin Hadorn Seite 126 von 162 Fachhochschule f r Informatik Bern Diplomarbeit 24 Erg nzende Projektvereinbarungen 24 1 Projektorganisation Da nur eine Person das Projekt bearbeitet bernimmt diese die Rollen des Projektleiters Software Architekten Projektsachbearbeiter Tester Das Projektteam wird durch den Fachdozenten P Schwab technisch unterst tzt Die Diplomarbeit wird durch den Experten Armin Blum begleitet Projektorganisation B Hadorn Student Projektbearbeiter Armin Blum Experte technischer Betreuer P Schwab Benjamin Hadorn Seite 127 von 162 Fachhochschule f r Informatik Bern Diplomarbeit 24 2 Projektplanung Die Reihenfolge der Arbeitspakete sind folgendermassen definiert 1 Sicherheitskonzept f r CCM 2 Beispiel Bildverarbeitungsprozess 3 Spezifikation CCM vervollst ndigen 4 Mobile Zellen 5 Gebrauch von
83. ist dies nicht mehr eindeutig feststellbar Welche Zelle nun gerade welchen Auftrag verarbeitet kann nicht vorausgesagt werden Auch wie viel das System w chst bzw schrumpft kann h chstens gesch tzt werden Es kann h chstens ein Trend festgestellt werden Wie beim Wetter bei welchem man auch nie hundertprozentig vorhersagen kann wie der morgige Tag aussieht Dieses Verhalten k nnte als ein Nachteil empfunden werden Benjamin Hadorn Seite 18 von 162 Fachhochschule f r Informatik Bern Diplomarbeit 3 5 Zukunftsvisionen Wie sich die Computertechnologie in mittlerer Zukunft entwickelt l sst sich nicht so leicht analysieren Sicher ist dass mit der neuen Quanten und Nanotechnologie ein gewaltiger Schritt in Richtung Kleinstprozessoren gemacht wird Eine meiner Visionen ist dass sich in Zukunft ein PC nicht nur aus einem Einzelprozessor aufbaut sondern dass man hnlich wie beim RAM Speicher Processor Banks kaufen kann Auf solchen Banks befinden sich unz hlige Prozessoren die von einem Programm oder eine Zelle aktiviert werden und nun die Aufgabe dieses Programms bew ltigen hnlich wie ein Speicherbaustein kann nun eine Zelle einen freien Prozessor aktivieren Werden Prozessoren nicht gebraucht befinden sie sich im Leerlauf Diese Technologie w rde es dann erlauben eine Menge von Prozessen in Echtheit parallel arbeiten zu lassen Das CCM w rde sich hervorragend f r solche Hardware eignen da es f r das parallele Abar
84. ist die Kommunikationsschnittstelle ein Engpass Aber auch die Aufbereitung und das Rechnen der Daten kann sehr viel Zeit in Anspruch nehmen Deshalb muss die bertragung der Daten von der Benjamin Hadorn Seite 60 von 162 Fachhochschule f r Informatik Bern Diplomarbeit Maschine zur Bedienoberfl che und zur ck m glichst schnell und optimal laufen Das Zeus Framework wird hier einerseits bei der Darstellung und Verarbeitung der Daten und anderseits bei der Kommunikation verwendet Es ist vorstellbar dass in Zukunft nicht mehr eine zentrale Maschinensteuerung mit PLC Programmable Logic Controller und CNC Computer Numeric Control existiert sondern dass sich mehrere Prozessoren in einem Maschinenraum befinden und die Daten m glichst nahe bei der Messstelle auswerten Hier k nnte das Zeus Framework ebenfalls zum Einsatz kommen Durch sein dynamisches Verhalten kann sich die Software der Auslastung anpassen und auch in kritischen Momenten noch gen gend reagieren Diesbez glich mussten aber noch allgemeine Konzepte erarbeitet werden 12 3 Vorgehen Viele Arbeitsschritte werden von den Klassen des Frameworks bereits abgenommen So ist es einfacher Objekte zu serialisieren Verteilte Applikationen zu schreiben Skeleton Stub Zellen zu entwickeln XML einzusetzen und vieles mehr Um mit dem Framework zu arbeiten sind gewisse Vorkenntnisse notwendig So muss ein Entwickler die Programmiersprache C kennen F r Java Entwick
85. iterbarkeit der Software Durch sich ndernde Kundenw nsche kann die Software auch sp ter noch einfach erweitert werden Durch die flexible Konfiguration kann die Software nach Kundenwunsch angepasst werden Es k nnen beliebige Komponenten in den Objektbaum eingeh ngt oder entfernt werden Gute Wartbarkeit von komplexen Systemen Einzelne Komponenten k nnen ausgewechselt oder neu geschrieben werden ohne dass das gesamte System neu bearbeitet werden muss Das Zeus Framework kann auf sehr verschiedene Arten eingesetzt werden Durch seine modulare Struktur eignet es sich gut f r grosse Projekte Mehrere Entwickler k nnen gleichzeitig an einem Produkt arbeiten Integration von Softwarekomponenten ist sehr einfach m glich Einsatz f r hochdynamische verteilte Anwendungen bei denen k nstliche Intelligenz zum Einsatz kommt gt Neuronale Netze mit Zellen gt Evolution re Algorithmen gt Fuzzy Logik Es eignet sich f r parallele Verarbeitung von Daten Clustering Es kann zur Entwicklung von Anwendungen dienen bei denen Java oder C aus Grund der schlechteren Effizienz nicht eingesetzt werden kann Bsp bei hardwarenaher Software Bedien und Kommunikationssoftware f r Maschinensteuerungen Benjamin Hadorn Seite 139 von 162 Fachhochschule f r Informatik Bern Diplomarbeit 28 1 1 Einfachheit Die Konfiguration ist einfach und transparent da sie der statischen Softwarestruktur entspricht Jede Komponente im Syst
86. ive Arbeitspaket zur Umsetzung der mobilen Zellen wurde nur theoretisch behandelt Im Sicherheitskonzept wurden nicht alle Aspekte zur berwachung von Zellen umgesetzt da diese nur mit mobilen Zellen h tten getestet werden k nnen Deshalb war die Zeit zur Umsetzung dieses Pakets geringer als urspr nglich geplant Beim Umsetzen des Bildverarbeitungsprozesses wurde klar dass es sich nicht um die optimale Anwendung f r CCM mit der heutigen Hardware handelt Diese Anwendung w re f r Computer mit Multiprozessor Hardware geeigneter Diese Art von Hardware steht an der HTA Bern nur bedingt zur Verf gung nur Dual Prozessor Deshalb wurde mit dem Fachdozenten Peter Schwab vereinbart dass eine zweite Anwendung entwickelt wird die sich einfacher bers Netzwerk verteilen l sst Als Anwendung wurde das Mandelbrot umgesetzt W hrend der Entwicklung habe ich festgestellt dass die vorhandene Klassen Struktur zum Verteilen von Applikationen nicht gen gend war Die Klassen mussten berarbeitet werden was einen erheblichen Mehraufwand von 8 Tagen bedeutete Die neue Struktur ist konzeptionell an das RMI von Java angelehnt und wird zur Kommunikation der Zellen eingesetzt Benjamin Hadorn Seite 136 von 162 Fachhochschule f r Informatik Bern Diplomarbeit 27 Erkannte ungel ste Probleme Bei der Umsetzung des Cell Computing Model konnte ich auf grosse Erfahrung im Bereich der Entwicklung von Frameworks mit C zur ckgreifen Das hat d
87. jamin Hadorn Seite 131 von 162 Fachhochschule f r Informatik Bern Diplomarbeit 24 3 2 Arbeitspaket Sicherheitskonzept f r CCM Arbeitspaket Sicherheitskonzept f r CCM Finger prints Priorit t Hoch Projekt Verantwortlicher Benjamin Hadorn QS Hr P Schwab Projektmitarbeiter Benjamin Hadorn Eingaben Ressourcen Knowhow Menge Aufwand d Bestehende Spezifikation Cell Computing Model Diplomarbeit Rahmenbedingungen Mathematische Kryptologische Grundkenntnisse Bekannte Kryptographie Algorithmen Aktivit ten Parameter Menge Aufwand d Erarbeiten des Konzepts Modell Implementieren des Konzepts Code Module Testen der Verhaltensweisen Tests 1 bis 4 Code Review Code Module 4 Pauschal Produkte Resultate Menge Aufwand d Sicherheitsklassen im Framework Tests Total in Tage 10 Bemerkungen Der Algorithmus f r Finger Prints wird nicht selber entwickelt sondern ein bestehender eingesetzt Benjamin Hadorn Seite 132 von 162 Fachhochschule f r Informatik Bern Diplomarbeit Benjamin Hadorn Seite 133 von 162 Fachhochschule f r Informatik Bern Diplomarbeit 25 Einleitung Schlussbericht Im Schlussbericht der Diplomarbeit sollen die erreichten und nicht erreichten Ziele aufgezeigt werden SOLL IST Vergleich Zudem ist ein
88. le oder des Diplomanden geltend gemacht werden Das Projekt ist ffentlich unter www xatlantis ch zug nglich 19 1 Ausgangssituation In der Projektarbeit wurde eine Grundlage in Form eines Frameworks erschaffen Die Diplomarbeit f hrt diese Arbeit nun weiter indem weitere Funktionen und Verhaltensweisen umgesetzt werden Dazu wurde das Projekt an der HTI Bern als Diplomarbeit beantragt und genehmigt Das Projekt ist eine Grundlagenarbeit zu dem Thema und kann im weitesten Sinne als Forschungsarbeit beschrieben werden Aufbauend auf der Projektarbeit sollen insbesondere folgende Aufgaben angegangen werden Erarbeiten einer Spezifikation zum Cell Computing Model Sicherheitskonzept Erkennen der Zellen mit finger print Technik Beispiel Implementation eines Bildverarbeitungsprozesses mit dem erstellten Framework Erweiterung des Systems mit mobilen Zellen welche sich autonom im Netz verteilen k nnen fakultativ Benjamin Hadorn Seite 117 von 162 Fachhochschule f r Informatik Bern Diplomarbeit 19 1 1 Bestehende Produkte zu CCM Zu dem Begriff CCM wurde bereits eine Spezifikation mit Analyse geschrieben Die genaue Definition des Begriffs wird im Dokument CCM 1J erl utert Weiter wurde ein Framework erschaffen das Zeus Framework welches als Grundlage zur Entwicklung von CCM Applikationen dient Folgende Funktionen sind bereits implementiert dynamische modulare Software Struktur Klonen und Abbauen von Zell
89. len u0044440400044000000Rnnnn nenn nnnnnnnnnnnnnn nennen 41 9 1 Aufteilen der Arbeit zes anne unse 42 9 2 Beschreiben eines Workflows 2224444044404ennnnnnnnnneee nennen 43 9 2 1 Definieren von Bedingungen uerzrsrsnsrsreeensnenenennnenn anna 44 9 2 2 SYNENTONISIBREN 2 0 00 este enge een 45 9 2 2 1 Das Synchronisationsverfahren 2444444444nnnnnnnnnn 46 9 2 3 Parallelisieren von Abl ufen 222222004442000000000Rnn nn nn nenn 48 9 2 4 Definieren von Workflows uu00s22200000000nnnnnnnnnnnnnnnnnnnnnnnnnnnnnn 49 9 3 Beispiel Versorgung mit Auftr gen 44444444044Hnnn nn nn nn non nennen 50 10 Kommandozentrale des Systems 2244444000048000008Rnn nen nnnn nennen 51 10 1 Steuern der Zellen ae 51 10 2 System Effahf ng ass sekaske a rEiaeeil 52 10 3 Evolution re Weiterentwicklung 22444444 nnnnn nenne nnnennnnnn 52 11 Die Datenablage s 242244 teenete tke nennen nnssnssnannnnnnannannnsnnnsnnnnnnnennnsnnen 53 11 1 Lokale Zellendaten 000424400008000000RRRnnnnnnn nenn nnnnnnnnnnnnn 53 11 2 Die Speicherzellen 224444400040800000nnnnnnnnnnnnnnnnnnnnnnnnnnnnn 53 11 3 Beispiel einer Datenverwaltung 44244444444Hnee nennen 54 11 4 Einige Zellenarten a2 2 2s amp 22 222 2 aa ee 54 12 Einleitung zum Fr
90. ler ist der Einstieg nicht allzu schwierig da viele Klassen und Konzepte von Java abgebildet wurden So existieren hnliche Konzepte f r Streaming Sockets und Threading Es gibt aber komplett andere Konzepte zur Speicherverwaltung und nat rlich die Zellenarchitektur Diese m ssen zuerst erlernt werden wenn sich jemand mit dem Framework befassen m chte Es braucht aber kein Ingenieur Wissen solange man nicht k nstliche Intelligenz oder andere komplexe Konzepte einsetzen m chte Benjamin Hadorn Seite 61 von 162 Fachhochschule f r Informatik Bern Diplomarbeit 13 Module Object Model Spezifikation 2 0 Die Module Object Model Spezifikation dient der allgemeinen Vereinbarung und der Definition von Objekten in der Frameworkumgebung Das Zeus Framework ist eine Referenzimplementation dieser Spezifikation Das Module Object Model MOM definiert den Aufbau eines dynamisch und modularen Frameworks Das MOM besteht prim r aus einem Baum von Softwarekomponenten Objekten die dynamisch geladen werden k nnen 13 1 Eigenschaften des MOM Das MOM hat durch seine einheitliche Entkopplung von Komponenten folgende Eigenschaften Hohe Wiederverwendbarkeit der Komponenten Das erm glicht hervorragendes Software Recycling Dezentrale Entwicklung von Softwarekomponenten Durch klare Schnittstellen k nnen komplexe Systeme dezentral entwickelt werden Stufenweises Entwickeln Das System muss nicht schon beim Projektstart ins Detail gepl
91. mentiert werden in dem jedes Neuron auch eine Zelle ist Data Exchange Line Maus Tastatur 1 Sensorik Kamera g D 5 m x Q d D amp DCS Line Abbildung 27 Das CCM als Komplettl sung mit k nstlicher Intelligenz 10 3 Evolution re Weiterentwicklung Die F higkeit gewisse Zellen zu z chten und weiter zu entwickeln wird ebenfalls durch Bereiche in der Kommandozentrale gesteuert Wie weit dieses Prinzip eingesetzt werden kann um die DNA der jeweiligen Zellen zu ver ndern bzw gewisse Mutationen vorzunehmen muss noch im Detail abgekl rt werden Benjamin Hadorn Seite 52 von 162 Fachhochschule f r Informatik Bern Diplomarbeit 11 Die Datenablage 11 1 Lokale Zellendaten Die lokalen Zellendaten dienen der Zelle als Arbeitsdaten Sie werden nur von einer bestimmten Zellenart verwendet und k nnen von anderen Zellenarten nicht ohne weiteres verwendet werden Es handelt sich hier nur um tempor re Daten welche von einem Zellensystem verarbeitet werden Nicht jede einzelne Zelle hat einen lokalen Speicher Der lokale Speicher wird vom Zellensystem verwaltet Das hat den Vorteil dass die Daten von verschiedenen Zellen gleichzeitig verarbeitet werden k nnen Kann eine Zelle nun die Arbeit nicht zu Ende f hren bernimmt eine inaktive Zelle die verbleibende Arbeit Dieses Data Sharing verlangt aber eine klare Absprache zwischen den arbeitenden Zellen 11 2 Die Speicherzellen Im Gegensatz z
92. mgebung Der Algorithmus ben tigt folgende Eingabeparameter Anzahl Meldungen eines Zellensystems zu einem beliebigen Zeitpunktt d t Maximale Grenze des Meldungseingangs Gr sse der Meldungsqueue N max Reaktionsgrenze N eac Obere Schranke der Messzeit T max Untere Schranke der Messzeit T m B 2 Abbauen von Zellen Das zweite Verfahren steuert den Abbau von Zellen Dabei wird jeder neu erstellten Zelle die Lebenskraft 100 zugewiesen bedeutet 100 Der Algorithmus verwendet folgende Eingabeparameter Benjamin Hadorn Seite 148 von 162 Fachhochschule f r Informatik Bern Diplomarbeit Lebenskraft der Zelle in Abh ngigkeit der Zeitt g t Erh hung der Lebenskraft Zu Verringerung der Lebenskraft Z e Faktor f r Wahrscheinlichkeit des Abbaus w B 3 Messungen In diversen Versuchen wurden empirisch folgende Werte f r Zellen mit variabler Eingangslast ermittelt Parameter Wert Pi 1 0 sec Tiy 0 1 sec N uag 20 jobs N PESA 10 jobs Laaa 1 4 L sub 1 w 7 8 Die Messung erfolgte auf einem Laptop Sony PCG FX290K mit 1GHz Prozessor und 512MB RAM Als Systemsoftware wurde SUSE Linux 9 1 mit Kernel 2 6 4 verwendet GCC 3 3 3 Benjamin Hadorn Seite 149 von 162 Fachhochschule f r Informatik Bern Diplomarbeit 30 4 25 20 Measure Time Job Count Cell Count 0 1 82 163 244 325 406 487 568 649 730 811
93. mme f r Computer geschrieben Die darauf folgenden Hochsprachen waren einfacher zu lesen und anzuwenden die Programmierung erfolgte aber nach dem gleichen Prinzip n mlich linear Prozedural Es entstanden Probleme mit der Strukturierung von umfangreicherer Software Die Lesbarkeit und dadurch die Wartung der Software waren schwierig und kompliziert Mit der objektorientierten Programmierung OO Programming wurde eine neue Denkweise ins Leben gerufen Die Modellierung der Software wurde an die reale Welt angepasst Objekte aus der realen Welt werden abstrahiert und in die Entwicklung der Software miteinbezogen sie werden also abgebildet Diese Objekte k nnen miteinander kommunizieren und Daten austauschen In den letzten Jahren ist der Umfang der Software und deren Anforderungen st ndig gestiegen Mit der weltweiten Vernetzung dem Internet wurde die Entwicklung von verteilten Systemen zum Bsp Web Services Java stark gef rdert Die Objekte befinden sich nicht mehr nur auf einem Computer sondern existieren dezentral und kommunizieren ber das Netzwerk miteinander Das Ziel ist in einem Netzwerk von Computer verschiedene Dienste bereitzustellen welche von anderen Computer oder Computersystemen gebraucht werden k nnen Was die Zukunft bringt weiss niemand Aber der heutige Trend in der Computerwelt zeigt dass die Informationsmenge nicht geringer wird Im Gegenteil Die Verarbeitung der Informationen wird immer aufwendiger Bilde
94. n 162 Fachhochschule f r Informatik Bern Diplomarbeit API TCCTPRequest Request Objekt f r das bin re Cell Communication Transfer Protocol TCCTPResponse Response Objekt f r das CCTP Der Body des Protokolls kann ein beliebiger bin rer Datenblock sein wie zum Bsp Bilder serialisierbare Objekte usw 14 4 4 1 Request Pakete Das Request Paket besteht aus folgenden Felder e Version Dieses Feld dient der Protokollversion e Methode Definiert die Art und Weise wie der Request verarbeitet werden soll Identit t der Meldung Diese ID kann wichtig sein wenn Meldungen wiederholt werden m ssen L nge des Body Anzahl Bytes des folgenden Datenblocks Byte 1 Byte 2 Byte 3 Byte 4 Tabelle 7 Format des Request Pakets Benjamin Hadorn Seite 86 von 162 Fachhochschule f r Informatik Bern Diplomarbeit 14 4 4 2 Response Pakete Das Response Paket besteht aus folgenden Teilen Version Protokollversion Zustand Antwort bzw Fehlercode Analog zu HTTP L nge des Body Anzahl Bytes des folgenden Datenblocks Byte 1 Byte 2 Byte 3 Byte 4 Tabelle 8 Format des Response Pakets 14 4 5 Messaging Zum Kommunizieren zwischen Zellen und Zellensystemen wurde ein Meldungssystem entwickelt Die Meldungen k nnen durch so genannte Kommunikationskan le Pipes abgesetzt werden Ein Kanal ist eine Verbindung von einer Zelle zu einer anderen Zelle oder zu einem Zellensystem Das ander
95. n erreicht bzw nicht erreicht Beschreibung Erreicht Erarbeiten einer Spezifikation zum Cell Computing RE Model Vollst ndig Sicherheitskonzept Erkennen der Zellen mit finger we print Technik Vollst ndig Beispiel Implementation eines Bildverarbeitungs Vollst ndig prozesses mit dem erstellten Framework Erweiterung des Systems mit mobilen Zellen welche nur theoretisch sich autonom im Netz verteilen k nnen fakultativ Gebrauch von Petrinetz Strukturen zur Beschreibung Vollst ndig von Prozessen Theoretisch erarbeiten Tabelle 17 Erreichte Ziele der Diplomarbeit 05 06 28 1 Das Zeus Framework Die genaue Beschreibung und Erkl rung zum Framework ist im entsprechenden Kapitel zu finden Hier soll nur kurz erl utert werden welcher Produkteigenschaften erreicht wurden Durch den Einsatz des Zeus Frameworks ergeben sich folgende positive Benjamin Hadorn Seite 138 von 162 Fachhochschule f r Informatik Bern Diplomarbeit Auswirkungen auf die Entwicklung von Software Produkten Hohe Wiederverwendbarkeit der Komponenten Das erm glicht hervorragendes Software Recycling Dezentrale Entwicklung von Softwarekomponenten Durch klare Schnittstellen k nnen komplexe Systeme dezentral entwickelt werden Stufenweises Entwickeln Das System muss nicht schon beim Projektstart ins Detail geplant werden Komponenten k nnen auch sp ter spezifiziert entwickelt und integriert werden Erwe
96. n mit C Durch eine Implementation von Remote Method Invocation RMI kann das Zeus Framework f r verteilte Applikationen eingesetzt werden Folgende Klassen und Objekte sind von Interesse API Naming Objekt des Naming Service Durch dieses Objekt k nnen Remote Objects nachgeschlagen werden oder es k nnen eigene Remote Objects registriert werden IRemoteobject Alle Remote Objects m ssen diese Schnittstelle implementieren Die Hilfsklasse TAbstractRemoteObject implementiert die wichtigsten Methoden TAbstractSkel Hilfsklasse f r die Implementation des Skeleton Benjamin Hadorn Seite 100 von 162 Fachhochschule f r Informatik Bern Diplomarbeit API TAbstractStub Hilfsklasse f r die Implementation der Stub Klasse ISerializable Schnittstelle f r die serialisierbaren Objekte Damit das RMI funktioniert muss auf einem Rechner ein Namensdienst gestartet werden Die Applikation muss dann den Naming Service lokal mit dem Namensdienst verbinden Weitere Informationen zum RMI f r C sind auf dem Web unter www xatlantis ch examples rmi example html zu finden 14 7 Klassen f r k nstliche Intelligenz Das Zeus Framework bietet einige Klassen f r Fuzzy Logik und genetische Algorithmen an API TFuzzySet Das Fuzzy Set beinhaltet eine Menge zum Rechnen mit Fuzzy Logik TruzzyLogic Fuzzy Logik Klasse IGAGene Interface f r Gene Genstruk
97. n werden Die Fabrik reagiert darauf und generiert neue Zellen welche die berlasteten Zellen unterst tzen sollen So kann das System je nach Nachfrage und Auslastung selber reagieren Aus Sicherheitsgr nden hat jede Nachfrage eine obere Grenze die das System nicht berschreiten darf Folgendes Beispiel soll dies verdeutlichen Benjamin Hadorn Seite 24 von 162 Fachhochschule f r Informatik Bern Diplomarbeit Eine Zelle ist falsch programmiert und deshalb immer voll ausgelastet Die Fabrik erzeugt nun weitere Zellen die die Arbeit der berlasteten Zelle versuchen zu teilen Jede Zelle ist nun durch diesen Fehler auch voll ausgelastet Solche Zellenarten nennen wir Wucherzellen Ohne obere Schranke w rde die Fabrik immer mehr Zellen produzieren bis die Ressourcen des Systems aufgebraucht worden sind Solche Zellen werden vom System speziell behandelt wenn das System diese als Wucherzelle erkennt Es gibt eine weitere Art von Zellen die egoistischen Zellen Dies sind Zellen die Ihre Arbeit nicht teilen k nnen oder wollen Sie sind weit weniger schlimm als Wucherzellen Von ihrer Gattung existieren noch inaktive Zellen und somit generiert die Fabrik keine neuen Zellen Einzig die Performance der Arbeit leidet darunter Die Philosophie des System wird hier nicht eingehalten die Arbeit zu teilen und somit schneller zum Ziel zu kommen Siehe Arbeitsweise von Zellen Das Prinzip der Zellenfabriken kann vor allem f r dynamische Zell
98. naktiv sp ter sterben sie ab Dadurch kann das System auch langfristig Ressourcen freigeben wenn die Auslastung tief ist Benjamin Hadorn Seite 27 von 162 Fachhochschule f r Informatik Bern Diplomarbeit Dieser Prozess schliesst den Kreislauf der Zellen Das System w chst also wenn die Auslastung gross ist und schrumpft wenn die Auslastung tief ist Diese Ver nderung darf nat rlich nicht schnell erfolgen sondern entspricht einen Trend ber l ngere Zeit 5 2 3 1 Die Lebenskraft Jeder Zelle wird eine Lebenskraft zugewiesen welche beim Erstellen der Zelle das Maximum Z enth lt zum Beispiel den Wert 100 Die Lebenskraft wird durch Verarbeiten von Meldungen um einen konstanten Wert erh ht Lu Ist keine Meldung zum Bearbeiten vorhanden hungert die Zelle sie liegt brach Dabei wird die Lebenskraft um einen konstanten Wert verringert Lu Mit abnehmender Lebenskraft nimmt die Wahrscheinlichkeit zu dass die Zelle inaktiv wird Die Funktion A t liefert die Anzahl Arbeitspakete die von einer Zelle bearbeitet wurden Der Algorithmus verwendet folgende Eingabeparameter Lebenskraft der Zelle in Abh ngigkeit der Zeitt g t Erh hung der Lebenskraft Zu Verringerung Lebenskraft Z Faktor f r Wahrscheinlichkeit des Abbaus w g t gti Zu if A gt Lyu Else Die Funktion f t gibt 1 zur ck wenn die Zelle inaktiv werden muss sonst 0 falt S Li Lee gt l Lu 0 else wobei Y eine Random Funktion ist
99. nannte Programmzellen entwickelt die eine bestimmte Aufgabe im System bernehmen sollen Diese Zellen laufen parallel und kommunizieren miteinander Sie tauschen Daten untereinander aus Zellen sterben ab wenn sie nicht mehr gebraucht werden und es werden je nach Bedarf wieder neue generiert Dadurch passt sich ein System stets der Aufgabe an und es kann sich sogar weiterentwickeln Neue Zellen k nnen von der Erfahrung bestehender Zellen profitieren Die Systemsicherheit wird durch mobile Sicherheitszellen realisiert Sie wandern im System und siedeln sich dort an wo sie dringend gebraucht werden Sie blockieren und neutralisieren Fremdzellen zum Beispiel Viren Refresh Zoom Factor EKI Color Max Iterations 100 Max Range nn Aoo G Paur 28850000001 sec 23 se Abbildung 2 Beispiel zum Berechnen von Fraktalen Noch bleibt viel zu tun denn die Hardware von heute ist noch nicht f r diese extrem parallele Verarbeitung gebaut Dennoch kann dieses Modell bereits mit mehreren vernetzten PC s eingesetzt werden Mehr Informationen zur Entwicklung und den M glichkeiten sind unter http www xatlantis ch zu finden Benjamin Hadorn Seite 8 von 162 Fachhochschule f r Informatik Bern Diplomarbeit 2 Einleitung Seit dem Beginn der Computer wurden immer wieder neue Technologien und Methoden entwickelt um gewisse Probleme einfacher und strukturierter zu l sen Mit der Maschinensprache wurden die ersten Progra
100. nde Datenarten Zellendaten Diese Daten verwendet eine Zellen nur intern Sie sind die Daten der Zellenattribute Diese Daten sind von aussen nicht zug nglich Speicherdaten Diese Daten entsprechen sozusagen den gespeicherten Benjamin Hadorn Seite 21 von 162 Fachhochschule f r Informatik Bern Diplomarbeit Dokumenten und der verarbeitete Daten des Benutzers Erfahrungsdaten sind Einstellungen und Erfahrungen des Systems Diese Daten werden von der Kommandozentrale verwaltet Diese Daten k nnten zum Beispiel in einem neuronalen Netz verkn pft gespeichert werden Benjamin Hadorn Seite 22 von 162 Fachhochschule f r Informatik Bern Diplomarbeit 5 Das Zellenleben Dieser Abschnitt stellt zwei M glichkeiten vor Zellen zu generieren Bei der ersten Variante werden die Zellen durch eine Zellenfabrik erzeugt Bei der zweiten Variante wird das Klonen angewandt Beide Varianten werden auch von der Natur eingesetzt um Zellen zu produzieren Dabei ist entscheidend wo und wie die Zellen eingesetzt werden und damit nat rlich um welche Zellenart es sich handelt 5 1 Der Lebenszyklus Jede Zelle durchlebt einen Zyklus Ein Zyklus umfasst folgende Stadien Zelle wird generiert Zelle ist inaktiv dient als Reserve Zelle wird aktiviert und kann nun Daten verarbeiten Zelle wird wieder inaktiv wenn keine Daten vorhanden sind Zelle stirbt ab wenn sie Fehlerhaft ist Gef hrlich ist Zu lange inaktiv ist verhungert
101. ne Softwarekomponente repr sentiert Das X Objekt implementiert die Basis Anforderungen der MOM Spezifikation Modul Das Modul ist eine Komponente welche eine ganze Software Bibliothek repr sentiert Das Modul implementiert die Erweiterungen der MOM Spezifikation Zudem kann das Modul eine Session von einer Bibliothek erzeugen Kontext Die Modulsession ist ein Spezialfall und wird in diesem Dokument nicht weiter ber cksichtigt 13 2 1 Basis Anforderungen Das MOM beschreibt sich folgendermassen X Objekte k nnen Endknoten sein welche im System eine Dienstleistung oder eine bestimmte Aufgabe erf llen X Objekte k nnen Knoten sein welche andere X Objekte zu logischen Einheiten gruppieren Benjamin Hadorn Seite 63 von 162 Fachhochschule f r Informatik Bern Diplomarbeit X Objekte k nnen eingefroren oder freigeschaltet werden Beim Einfrieren der X Objekte werden alle Referenzen freigegeben die von anderen X Objekten stammen Eingefrorene X Objekte reagieren nicht mehr Beim Freischalten k nnen die ben tigten Referenzen von anderen X Objekten angefordert und gebraucht werden Das MOM definiert den Datenaustausch zwischen X Objekten durch vordefinierte Schnittstellen Ein X Objekt kann seine Kinderobjekte verz gert erstellen Die Kinderobjekte werden erst erstellt wenn jemand aus dem System ein solches Kinderobjekt referenzieren m chte 13 2 2 Erweiterungen Die Erweiterungen definieren spezielle X Objekte
102. ng 14 Nach dem Berechnen und Vergleichen des Finger Print kann das Code Modul mit der Zelle geladen werden Benjamin Hadorn Seite 33 von 162 Fachhochschule f r Informatik Bern Diplomarbeit Dabei pr fen wir nicht nur den Programmcode der Zelle sondern auch den zus tzlichen statischen Programmcode da sich auch hier sch dliche Programmteile verstecken k nnten Abbildung 1 Beide der Programmcode der Zelle und der statische Programmcode sind in einem Code Modul zusammengefasst In diesem Zusammenhang sprechen wir in der Informatik auch von Packages oder Shared Libraries Der Fingerabdruck Finger print wird nach dem Berechnen mit einem Eintrag einer Datenbank Finger print registry verglichen Stimmt der Fingerabdruck mit dem registrierten Fingerabdruck berein kann das Code Modul geladen werden Stimmt der Fingerabdruck nicht mit dem Eintrag der Datenbank berein wird das gesamte Code Modul als unsicher eingestuft Das Code Modul kann aber trotzdem geladen werden wenn der Entwickler des Systems dies zulassen m chte 7 2 Mobile Sicherheitszellen Das Erkennen der Fremdk rper ist in dem Zellensystem ein wichtiger Bestandteil um das System l ngerfristig am Leben zu erhalten Um die Sicherheit m glichst breit abzust tzen wird eine dezentrale Eingreiftruppe geschaffen Sie erm glicht es schnell und effizient einzugreifen wenn ein Angriff auf das System erfolgt Diese Eingreiftruppe besteht aus so genannten Sicherheits
103. ngen erfolgt der Start der Verarbeitung Diese Signale werden meistens ber die direkte Kommunikation erfolgen Zuerst muss zu jeder Meldung oder Meldungsart eine geeignete Verarbeitungsbeschreibung Workflow hinzugef gt werden Diese Beschreibung dient dem Verarbeiten Aufteilen Synchronisieren und dem Zusammenf gen mit anderen Daten Die Verarbeitungsbeschreibung ist entweder fix codiert oder durch Erfahrung des Systems entstanden ber die Trendkommunikation k nnen die Zellensysteme nachhaltig beeinflusst werden Zum Beispiel eine Stresssituation k nnte ein Trend ausl sen welcher Zellenfabriken veranlasst mehr Zellen zu produzieren Das Feststellen ob eine solche Situation vorliegt kann einerseits lokal erfolgen in einem Zellensystem oder durch globale Verhaltensmuster des Gesamtsystems W hrend ersteres auch lokal gel st werden kann muss das Zweite durch die Kommandozentrale gel st werden Benjamin Hadorn Seite 51 von 162 Fachhochschule f r Informatik Bern Diplomarbeit 10 2 System Erfahrung Eine weitere wichtige Aufgabe der Kommandozentrale ist gewisse Entscheidungen selber f llen zu k nnen und je nach Erfahrung selbst ndig Einfluss auf die jeweiligen betroffenen Zellensysteme zu nehmen Die Kommandozentrale hat direkten Zugriff auf eine Erfahrungsdatenbank Hier k nnen die Erfahrungen miteinander verkn pft und gespeichert werden Diese Erfahrungsdatenbank k nnte zum Beispiel mit einem neuronalen Netzwerk imple
104. nke Zellen die f r den Transport zust ndig sind Seite 55 von 162 Fachhochschule f r Informatik Bern Diplomarbeit Benjamin Hadorn Seite 56 von 162 Fachhochschule f r Informatik Bern Diplomarbeit 12 Einleitung zum Framework Das Zeus Framework ist eine Implementation des Cell Computing Model CCM Das CCM ist aber nur eines von vielen Konzepten die in diesem Framework umgesetzt wurden Dieses Dokument beschreibt was mit dem Zeus Framework Applikationen realisiert werden kann und wie die einzelnen Konzepte umgesetzt wurden Dieses Dokument beinhaltet Die Spezifikation des Module Object Model MOM Version 2 0 Die Beschreibung des Klassen Frameworks dazu die Umsetzung des Cell Computing Model welches in CCM1 spezifiziert wurde Die Bedienanleitung der Zeus Framework Applikation 12 1 Das System Das Zeus Framework besitzt zwei Haupteigenschaften modulare Struktur mit Softwarekomponenten in einem abgeschlossenen System statische Eigenschaft dynamische Kommunikation mit anderen gleichartigen und fremden Systemen Zudem autonomes Anpassen an neue Situationen dynamische Eigenschaft Diese Eigenschaften erm glichen ein breites und umfassendes Einsatzgebiet des Frameworks Weitere Eigenschaften wie portabel auf verschiedene Systeme Linux und Windows bereits getestet schnell und effizient In C geschrieben keine Lizenzgeb hren Open Source zeichnen das Framework ebenfalls aus Benjamin
105. nnamen selbst angegeben Dieser Namen dient der Objektfabrik die richtige Klasse zu instanzieren Benjamin Hadorn Seite 95 von 162 Fachhochschule f r Informatik Bern Diplomarbeit File or Socket Network Abbildung 38 Serialisieren und Deserialisieren von Objekten mit dem Zeus Framework Alle serialisierbaren Objekte m ssen bei der Objektfabrik registriert sein damit die richtige Klasse instanziert werden kann Die Registrierung erfolgt beim Programmstart kann aber auch w hrend der Programmlaufzeit geschehen Sie muss aber zwingend vor dem Eintreffen des Byte Streams erfolgen Das Zeus Framework unterst tzt folgende Attributtypen Benjamin Hadorn Seite 96 von 162 Fachhochschule f r Informatik Bern Diplomarbeit Unterst tzte Datentypen Long Double Bool Byte Strings charn ByteArays Sub Objects Abbildung 39 Attributtypen welche vom Zeus Framework unterst tzt werden Die Entwicklungsumgebung des Zeus Frameworks stellt verschiedene Makros zur Verf gung um m glichst einfach serialisierbare Objekte zu implementieren Folgendes Makro dient dem Registrieren der Klasse Makro zum Registrieren Tabelle 9 Registrieren von serialisierbaren Objekten hier der Klasse TBinaryMessage F r die Programmierung von serialisierbaren Objekten stehen folgende Makros zur Verf gung Benjamin Hadorn Seite 97 von 162 Fachhochsc
106. on langsame Kommunikation Die Zellen werfen Meldungen in das Central Communication Network aus Diese Meldungen sind nicht explizit adressiert Jeder kann die Meldungen lesen Wer sie interpretieren und umsetzen kann entfernt die Meldung verspeisen Ein Vorteil des OCS ist dass verschiedene Zellen oder Zellensysteme auf Meldungen fast gleichzeitig reagieren k nnen Solche Meldungen werden auch fortlaufend von den Fresszellen abgebaut wenn sie nicht gelesen werden DCS Line 89996 Abbildung 17 Das Open Communication System OCS dient zur Trend Kommunikation welche l ngerfristige nderungen im System steuert Dieses System hat aber auch einen Nachteil Der Sender hat keinen Einfluss wann und wo seine Meldungen gelesen werden Es muss mehrmals dieselbe Meldung versendet werden da unter Umst nden nie alle Meldungen ihr Ziel erreichen Ob eine Meldung verstanden und umgesetzt wurde kann der Sender erst feststellen wenn im System die gew nschte Reaktion erfolgt Benjamin Hadorn Seite 38 von 162 Fachhochschule f r Informatik Bern Diplomarbeit 8 2 1 Das OCS nach dem Pool Prinzip Eine konkrete Art der OCS Umsetzung ist das Pool Prinzip Der Pool beinhaltet alle Meldungen Sie schwirren da sozusagen frei herum Diese Meldungen beinhalten Daten welche f r eine bestimmte Zellenart oder einer Gruppe von Zellen definiert sind Damit nun jeder Zellenhaufen an diese Meldungen gelangen kann existiert einen globalen Zugri
107. othek zugegriffen werden IZeusAPI Schnittstelle f r den Zugriff auf den X Objektbaum TAbstractModuleSession Diese Klasse ist eine Hilfsimplementierung um einfach und schnell eigene Modulsessionen zu entwickeln Die Schnittstelle der Ressource wird IModuleSession genannt Durch diese kann das Framework mit der gew nschten Bibliothek kommunizieren und Objekte erzeugen bzw anfordern Die Schnittstelle des Frameworks ist das IZeusAPI Durch diese Schnittstelle kann die Bibliothek auf das Framework oder auf eine andere Bibliothek des Frameworks zugreifen Benjamin Hadorn Seite 108 von 162 Fachhochschule f r Informatik Bern Diplomarbeit TXY_ModuleSession TYZ_ModuleSession Module Library MOM Framework BEEENER Abbildung 40 Schnittstellen welche beim Laden der Bibliothek ausgetauscht werden Wenn mehrere X Objekte vom Typ TModul die gleiche Bibliothek laden m chten wird pro X Objekt eine neue Session erzeugt Die Bibliothek wird aber nur einmal geladen gt Werden die Bibliotheken erst bei Gebrauch geladen kann einerseits Speicher und anderseits Zeit beim Hochfahren eingespart werden Das Attribut im entsprechenden XML Knoten muss mit CreateChildren 0 eingestellt werden Benjamin Hadorn Seite 109 von 162 Fachhochschule f r Informatik Bern Diplomarbeit Um die Modulsession oder eigene Klassen einfach zu exportieren gibt es im C Header zeusdev AbstractModuleSes
108. plementation der Speicherverwaltung MEMORY MANAGER _ IMPL TTest INTERFACE _CAST ITest INTERFACE ITest MEMORY MANAGER IMPL END Tabelle 5 Bei der Implementation der Speicherverwaltung k nnen Makros verwendet werden Benjamin Hadorn Seite 72 von 162 Fachhochschule f r Informatik Bern Diplomarbeit 14 2 Datentypen des Zeus Frameworks Das Framework bietet verschiedenste Datentypen an wie zum Bsp API TString Unicode f higer String welcher die Schnittstelle IString implementiert TSingleLinkedList Template Klasse welche Objekte in einer verketteten Liste verbindet Implementiert die Schnittstelle IList TArrayList Eine Template Klasse welche ein Array verwaltet Implementiert die Schnittstelle IList TByteArray Diese Klasse verwaltet ein char Array und wird f r Streaming Anwendungen gebraucht TStringList Eine Liste f r Strings vom Typ TString Diese Liste implementiert die Schnittstelle IList lt IString gt TStringMap Ein bin rer Suchbaum welcher als Schl ssel einen String Wert akzeptiert TStack Eine Template Klasse die einen Stack implementiert TQueue Eine Template Klasse die eine Queue implementiert TZVariant Ein Variant zum Kapseln von anderen Datentypen und Objekten Die Datentypen erweitern die primitiven Datentypen Von den primitiven Datentypen werden folgende vollst ndig unterst tzt API long Ganzz
109. r k nnen mit hoch genauerer Aufl sung erstellt und gespeichert werden Filme werden mit hoher Qualit t ber Netzwerke verteilt und umgewandelt Bald wird das Fernsehen live und mehrkanalig auch ber das Internet bertragen Aber auch im Bereich der Gesch ftswelt wird die Datenmenge gr sser Die Vernetzung der Gesellschaft spiegelt sich auch in den Systemen wieder welche die Gesellschaft braucht um ihre Aufgaben zu erledigen Dazu werden in der Gesch ftswelt immer k rzere Antwortzeiten verlangt Das erfordert einerseits schnelle und anderseits flexible Systeme Der Wunsch nach Systemen die sich autonom regenerieren und sich an der Umgebung und der Aufgabe anpassen w chst Heute werden diese Systeme mit dem objektorientierten Ansatz entwickelt Durch das Anwenden von Design Patterns und anderen Implementationstechniken wird versucht schneller und durchg ngiger zu entwickeln Die Entwicklungszeit solcher Systeme ist jedoch relativ lang und deshalb auch teurer Die finanziellen Ressourcen der K ufer ist mehr oder weniger begrenzt und so ist es auch verst ndlich dass solche Systeme in der Gesch ftswelt nicht gerade zu einer Euphorie f hren Benjamin Hadorn Seite 9 von 162 Fachhochschule f r Informatik Bern Diplomarbeit 3 Was ist Cell Computing Model Es stellt sich die Frage ob nicht ein neues dem OO Programming bergeordnetes Konzept geschaffen werden k nnte um die genannten Probleme und Anforderungen an zuk nftige Sys
110. r Kommunikationskan le Dadurch k nnen Kan le lokal von anderen Zellen gefunden werden lookup Die Kan le k nnen aber auch im Namensdienst global registriert werden Durch den zweiten Mechanismus dem Erkennen von neuen Kommunikationspartner wird das dynamische Kommunikationsverhalten geschlossen Stellt eine Zelle A mit Zellen des Typs B einer Verbindung her kann es sein dass zu einem sp teren Zeitpunkt weitere Zellen des Typs B hinzu kommen Nat rlich ist es w nschenswert wenn die Zelle A nun auch mit diesen neuen Zellen kommunizieren kann automatisch versteht sich Dazu wird nach einer bestimmten Zeit T die Registrierungsstelle erneut nach m glichen Zellen B abgefragt Die neuen Zellen werden dann als m gliche Kommunikationspartner in der Zelle A registriert 14 4 6 1 Lokale Kommunikationskan le Lokale Kommunikationskan le sind intern im Framework implementiert Es gibt unterschiedliche Arten der Kommunikation e Queuing Die Arbeitspakete werden in eine Queue abgelegt F r Queues gibt es keine Grenze der Anzahl Eintr ge Der Klon Algorithmus regelt die Auslastung der Queues eines Zellensystems Siehe Kapitel zum Klonen Benjamin Hadorn Seite 92 von 162 Fachhochschule f r Informatik Bern Diplomarbeit Queuing with Replace Werden viele gleiche Pakete bertragen interessieren aber nur die aktuellsten Pakete kann das Queuing with Replace angewandt werden Jedes Arbeitspaket besitzt eine ID
111. rity einem Sicherheitsdienst verifiziert Nur registrierte Module werden zugelassen zeus LoggerManager Diese Angabe setzt den gew nschten Logging Dienst zeus LoggerManager Der Logging Dienst braucht auch Einstellungen Hier wird ConfigFile angegeben welche Einstellungen verwendet werden sollen Es kann ein Dateinamen angegeben werden oder mit der Angabe BasicConfiguration wird eine Standardkonfiguration geladen Ein Beispiel soll die Anwendung der Konfiguration verdeutlichen Beispiel von zeus properties Listing 6 Beispiel einer Framework Konfiguration Die zweite Datei dient dem Erstellen des Module Object Model MOM Diese Datei ist ein XML Dokument und heisst standardm ssig zeus xml Der Aufbau ist je nach Anwendung sehr verschieden Zum Beispiel die Benjamin Hadorn Seite 144 von 162 Fachhochschule f r Informatik Bern Diplomarbeit Testanwendung zum Zeus Framework Beispiel Testapplikation Listing 7 Beispiel einer MOM Konfiguration Die Testapplikation erzeugt eine Arbeitszelle die WorkCell A 4 2 Kommandozeilen Parameter Die Zeus Framework Applikation kann durch Kommandozeilen Parameter zus tzlich beeinflusst werden Folgende Parameter sind zul ssig API conf lt file gt Durch diese Angabe wird nicht die MOM Konfiguration zeus xml gelesen sondern die Datei lt file gt prop lt file gt Durch diese Angabe wird nicht die Framework
112. roduziert Zudem kann das System gegen gewisse Fremdzellen immun werden indem gewisse Zellenarten von Anfang an als sch dlich erkannt und somit neutralisiert werden k nnen Ein weiterer Vorteil liegt in der hohen Stabilit t des Systems Es k nnen immer nur kleine Teile dieses System zerst rt werden und diese werden fortlaufend ersetzt Es handelt sich hier um einen Regenerierungsseffekt 3 4 2 Nachteile Das System braucht enorme Hardware in Bezug auf Schnelligkeit und Prozessorleistung Man kann sich etwa vorstellen dass jede Zelle ein Thread oder sogar ein eigener Prozess im heutigen Sinne der Informatik ist Bei herk mmlichen Systemen PC mit einem Prozessor wird mit context switching gearbeitet Pseudo multi threading Dies bringt nicht eine wesentliche Steigerung der Leistung Im Gegenteil bei gewissen Auftr gen verliert man Leistung durch den Wechsel von einem Thread zum anderen Scheduling Um eine grosse Leistungssteigerung vollbringen zu k nnen sollte jede Zelle einen eigenen Prozessor Hardware f r sich beanspruchen k nnen Das heisst f r die Hardware dass CCM einen Parallelrechner braucht In dieser Hinsicht ist der Erfolg von CCM von zuk nftigen Hardwareentwicklungen abh ngig Siehe Zukunftsvisionen Bei sequenziellen Systemen kann zu jedem Zeitpunkt genau gesagt werden welches der n chste Verarbeitungsschritt ist Auch bei der OOP ist genau definiert welches Objekt mit welchem Objekt wie kommuniziert Im CCM
113. rt Fehler im Design und Code Benjamin Hadorn Seite 67 von 162 Fachhochschule f r Informatik Bern Diplomarbeit Bei der Entwicklung von Schnittstellen in C ist auf folgendes zu achten Alle Methoden sind abstrakt definiert Schnittstellen d rfen keine Attribute besitzen Auch keine statische Attribute Diese sind eh nicht global sondern pro Modul einmal vorhanden Besser Singletons verwenden Alle bergabeparameter sind primitive Datentypen oder Schnittstellen Es d rfen keine konkreten Objekte bergeben werden Die Schnittstellen werden als Referenzen oder Zeiger bergeben Wird von einer Schnittstelle eine andere Schnittstelle verlangt muss der Referenzz hler um eins erh ht werden Diese Schnittstelle darf nicht direkt als R ckgabewert zur ckgegeben werden da in C die R ckgabe ins Leere gehen kann verursacht ein Ressourcen Leck Der letzte Punkt ist sehr wichtig Alle angeforderten Schnittstellen m ssen wieder freigegeben werden Beispiel eines Schnittstellen Benutzers R ckgabe von Schnittstellen Tabelle 1 Bei der R ckgabe einer Schnittstelle wird der interne Referenzz hler automatisch erh ht Deshalb muss ein release aufgerufen werden Wird dies nicht gemacht bleibt das Objekt im Speicher und wird nie mehr gel scht Das k nnte ein Systemabsturz ausl sen Beispiel einer Implementation einer solchen Methode Benjamin Hadorn Seite 68 von 162 Fachhochschule f r Informatik Bern Diplomarb
114. rverwaltung im Header der Klassendefinition API MEMORY MANAGER IMPL classid Dieses Makro startet die Implementation der Speicherverwaltung Es gibt eine Variante mit Locks um eine thread sichere Speicherverwaltung zu implementieren API EINaRITACH CAST inwerraee cyoe Iimterrace Adel 7 Dieses Makro definiert ein speziellen Cast Es muss der Typ der Schnittstelle angegeben werden und die eindeutige Nummer der Schnittstelle ID API MEMORY MANAGER IMPL END Beendet die Implementation der Speicherverwaltung Es gibt die Variante der Delegation aller Aufrufe an eine spezielle Vaterklasse Die Vaterklasse TZObject wird standardm ssig gebraucht Folgende Bespiele illustrieren das Definieren einer solchen Klasse Benjamin Hadorn Seite 71 von 162 Fachhochschule f r Informatik Bern Diplomarbeit Klassendefinition in Zeus class TTest public TZObject public ITest public TTest Methods of ITest virtual unsigned long MOUALIFII ER getObject IString pName IXObject pObject Methods of IZUnknown MEMORY MANAGER DECL protected vezevenl murest private hr Tabelle 4 Die Mehrfachvererbung besteht darin zuerst von einer Hilfsklasse oder Vaterklasse und dann von Schnittstellen zu erben Implementation einer Klasse TTest TTest public TZObject nee Im
115. schirmen handeln Wo diese Zelle lebt kann je nach Hardware verschieden sein Sie k nnte zum Beispiel direkt in der Tastatur existieren Das h tte den Vorteil dass der Treiber sich bereits bei der richtigen Hardware befindet Kurz gesagt die Software und Hardware verschmelzen zu einer Einheit Die Steuerung des Systems erfolgt durch eine oder mehrere Kommandozentrale n Die erlernten Erfahrungswerten werden hier verkn pft und verwaltet Durch Kommunikationssysteme kann die Zentrale die einzelnen Zellenhaufen steuern und so Einfluss auf den Verarbeitungsprozess nehmen Damit kann die M glichkeit einer autonomen Systemverbesserung und Optimierung erzielt werden was wiederum zu einer besseren Lebensf higkeit f hrt Ein weiterer Ansatz zur Prozessoptimierung ist das Z chten von guten und das Zerst ren der weniger effektiven Zellen evolution res Prinzip Wie sieht es bei der Datenablage aus Die Datenablage ist einem Datenarchiv hnlich Durch Verzeichnisse kann der Benutzer Strukturen anlegen und darin seine Dokumente speichern Hier wird das CCM keine nderung bringen Im Gegenteil sollen hier die vorhandenen Technologien weiter verwendet werden Irgendwo m ssen die Zellen ihre Arbeiten holen bzw speichern Daten im RAM zwischenspeichern und Erfahrungen verkn pfen Aber auch hier k nnen wir vorhandene Technologien verwenden die sich gerade in der objektorientierten Programmierung bew hrt haben Im CCM unterscheiden wir folge
116. sion h Makros Fabrikfunktion der Bibliothek Tabelle 12 Beispiel zeigt das Exportieren einer Fabrikfunktion zum Erzeugen von normalen Objekten wie zum Beispiel eine Modulsession 16 3 Beispiel einer Code Modul Implementation Im folgenden Beispiel wird gezeigt wie ein Code Modul zu entwickeln ist Das Code Modul beinhaltet ein X Objekt welches exportiert wird Das Beispiel setzt sich aus 3 Dateien zusammen ExampleModule cpp Exportierte Funktionen der Bibliothek XObjectExample h Definition des X Objekts XObjectExample cpp Implementation des X Objekts Benjamin Hadorn Seite 110 von 162 Fachhochschule f r Informatik Bern Diplomarbeit Alle exportieren Funktionen include lt stdio h gt include lt XObjectExample h gt include lt zeusbase System XObjectFactory h gt include lt zeusbase System LibraryManager h gt include lt zeusdev AbstractModuleSession h gt USING NAMESPACE Zeus USING _NAMESPACE Zeus VUA UUN UUU UA UNUUNU ONE UNUU UUU UUU Exported Factories MExportXObjectFactory TXObjectExample EEE REN EDEN DIENEN nn MregisterLibrary L ExampleModule MunregisterLibrary Tabelle 13 Dieser Code steht in der CPP Datei ExampleModule cpp Das TxXObjectExample ist ein normales X Objekt Welche M glichkeiten und welche Makros noch zur Verf gung stehen um X Objekte zu erstellen ist im Kapitel auf Seite beschrieb
117. sor Variante 4 Zudem ist der Arbeitsspeicher beim PC doppelt so gross Man sieht deutlich dass der PC ca 3 x schneller ist als der Laptop Die Inprozess Varianten berechnen die gesamte Arbeit selber und zeichnen auch das Resultat Benjamin Hadorn Seite 156 von 162 Fachhochschule f r Informatik Bern Diplomarbeit Inprocess 2 53GHz vs 1 0GHz 30 N Var3 N Var4 0 T T T Column B Column C Column D Column E Column F Column G Column H Die n chste Messung zeigt den Verbrauch beim Darstellen der Bilder auf Dabei ist deutlich zu erkennen das der Unterschied zwischen dem schnelleren PC zum langsamen PC nicht gross ist Anzeige 2 53GHz vs 1 0GHz 7 5 7 6 5 6 5 5 5 4 5 4 N Var1 35 N Var5 3 2 5 2 1 5 1 0 5 0 T T T T T l Column B Column C Column D Column E Column F Column G Column H Benjamin Hadorn Seite 157 von 162 Fachhochschule f r Informatik Bern Diplomarbeit D 3 Konfiguration Hardware und Software Konfigurationen sind hier enthalten Hardware Laptop Sony Vaio 16Hz 512MB RAM SUSE 9 1 Htibe2ci12 005 Pentuim 4 2 533GHz 1024MB RAM Ubuntu Htibe2ci12 006 Pentuim 4 2 533GHz 1024MB RAM Ubuntu Htibe2c5 006 Pentuim 4 2 533GHz 1024MB RAM Ubuntu Htibe2c5 007 Pentuim 4 2 533GHz 1024MB RAM Ubuntu Htibe2c5 010 Pentuim 4 2 533GHz 1024MB RAM Ubuntu Htibe2c5 011 Pentuim 4 2 533GHz 1024
118. st notwendig um auf variable Verarbeitungszeit der Meldungen reagieren zu k nnen Die Messzeiten haben einen direkten Einfluss auf die Reaktionszeit des Systems Bei langer Verarbeitungszeit der Meldungen Benjamin Hadorn Seite 26 von 162 Fachhochschule f r Informatik Bern Diplomarbeit macht es wenig Sinn schnelle Messungen durchzuf hren Dies w rde h chstens die Performance des Systems beeintr chtigen Im Gegensatz ist es nicht optimal bei kurzer Verarbeitungszeit der Meldungen nur gelegentlich zu Messen Das Wachstum w rde sehr tr ge sein und es w rde lange dauern bis das System sich stabilisiert Deshalb ist eine variable Messzeit sehr n tzlich um das System zeitoptimal zu steuern 1 8 1 6 1 4 1 2 Count 1 a 0 3 0 6 0 4 0 2 0 0 2 0 4 0 6 0 8 Time Abbildung 9 Funktionsweise des Klonalgorithmus Ist ein Anstieg der Meldungen vorhanden wird gepr ft ob die Ver nderung positiv a oder gleich bleibend ist b Nur in diesen 2 F llen wird geklont Im Falle c wird erst geklont wenn die Grenze berschritten wurde Gibt die Funktion f n den Wert 1 zur ck was bedeutet dass die Zelle geklont wird so kann nun eine noch inaktive Zelle wieder aktiviert werden Sind keine inaktiven Zellen mehr vorhanden dann muss eine neue gleiche Zelle erstellt werden 5 2 3 Abbauen von Zellen Die Lebensdauer einer Zelle ist nicht eindeutig festlegbar Werden Zellen ber l ngere Zeit nicht gebraucht werden sie zuerst i
119. t der Natur besteht darin abgestorbene Zellen 1 Wissen ber die biologischen Zusammenh nge stammen aus GEOK2 und MSENC Benjamin Hadorn Seite 12 von 162 Fachhochschule f r Informatik Bern Diplomarbeit durch neue zu ersetzen Stirbt eine Zelle ab bernimmt die Aufgabe eine benachbarte Zelle Laufend werden die abgestorbenen Zellen durch neue herangewachsene Zellen ersetzt Dieser Regenerierungsprozess wird vor allem bei Zellen eingesetzt die unter hoher Belastung stehen oder f r das System von grosser Bedeutung sind 3 1 3 Das Programm der Zelle DNA Wie eine Zelle arbeiten soll steht in der so genannten DNA deoxyribonucleic acid dem Programm der Zelle Mit Hilfe der DNA werden Proteine produziert die dann die Aufgaben der Zelle bernehmen wie Stoffwechsel Produzieren von anderen Zellen usw Eine Leberzelle braucht also nicht denselben DNA Abschnitt wie eine Hautzelle Dennoch ist die ganze DNA in jeder Zelle vorhanden Die Zelle braucht aber nur einen bestimmten Ausschnitt aus dem DNA f r ihre Arbeit Die nicht verwendeten Abschnitte der DNA sind komprimiert Die Stammzellen Siehe Stammzellen sind noch nicht spezialisierte Zellen das heisst sie k nnen einen gr sseren Abschnitt der DNA verwenden und mehrere Arbeiten erledigen Durch das Teilen der Stammzellen entstehen dann immer spezialisiertere Zellen deren DNA Abschnitt gegen ber der Stammzelle eingeschr nkter ist 3 1 3 1 Wechseln des DNA Abschnitts
120. te zur Auslieferung besitzt Die Transition Quadrat ist dann aktiviert wenn die Bedingung erf llt ist dass heisst es m ssen Vor und Nachbereich der Transition erf llt sein Eine Bedingung kann folgendes Enthalten Hat es Arbeitspakete vom Typ X im Vorbereich Zelle A Nach Definition vom Petrinetz Hat es gen gend Kapazit t im Nachbereich Nach Definition vom Petrinetz Ist das Zellensystem B erreichbar Benjamin Hadorn Seite 43 von 162 Fachhochschule f r Informatik Bern Diplomarbeit Zelle A Zelle B Bedingung Abbildung 21 Darstellung eines Verarbeitungsprozesses mit 2 Zellensystemen Ist die Bedingung wahr wird das Arbeitspaket von der Zelle A an die Zelle B gesendet Aktion 9 2 1 Definieren von Bedingungen Die obige Definition hat gewisse Nachteile Wir m ssen den Vorbereich kontaktieren und pr fen Durch folgende Definition kann das Pr fen vereinfacht werden und den Ablauf schneller erfolgen Fertig geleistete Arbeit wird von der Zelle A weiter geschickt Dabei wird nur die Erreichbarkeit der Zelle B gepr ft Kapazit t beim Zielsystem ist unendlich gross Benjamin Hadorn Seite 44 von 162 Fachhochschule f r Informatik Bern Diplomarbeit Zelle A Zelle B Bedingung PaketTyp Z Bedingung PaketTyp X Zelle C Abbildung 22 Es werden gleichzeitig die Pakete vom Typ X und Z an die entsprechenden Zellensysteme gesendet Zus tzlich k nnen wir nun definieren welche Auftr
121. tem Erde die Stabilit t welche es schlussendlich erm glicht dass Lebewesen existieren k nnen Die Lebewesen ihrerseits helfen aber auch mit das System zu steuern und zu stabilisieren Sie sind in diese Kreisl ufen integriert Wird ein Kreislauf instabil wird er durch andere Systemkomponenten wieder stabilisiert Dabei ist das Prinzip der Evolution nicht irrelevant Komponenten die sich st rend entwickeln werden zerst rt oder mit der Zeit ver ndert und an die Umgebung angepasst Dieses Prinzip hat sich ber mehrere Milliarden Jahre bew hrt Benjamin Hadorn Seite 10 von 162 Fachhochschule f r Informatik Bern Diplomarbeit Nicht nachgewiesen dass A Lebewesen das Magama beeinflussen Abbildung 3 Die 3 chaotischen Systeme der Erde die das Leben beeinflussen und welche vom Leben beeinflusst werden Beim Betrachten eines Lebewesens wird klar dass sich auch die internen Systeme eines jeden Lebewesens hnlich verhaltet wie das ganze System Erde Krankheiten werden bek mpft das Immunsystem aufgebaut und weiter entwickelt Benjamin Hadorn Seite 11 von 162 Fachhochschule f r Informatik Bern Diplomarbeit 3 1 1 Aufbau der Lebewesen Die Lebewesen auf der Erde sind aus Zellen aufgebaut Die Zellen stellen sozusagen kleine Systeme dar die mit der Aussenwelt und ihren benachbarten Zellen interagieren Diese Interaktion ist f r die Zelle lebenswichtig Sie k nnen also nicht als eigenst ndig bezeichnet
122. teme besser in den Griff zu bekommen Wie k nnte ein solches System aussehen Es gibt in der realen Welt einen riesigen Unterschied zu den heutigen Computersystemen In der realen Welt laufen unendliche Ereignisse Tasks parallel ab Arbeiten und Abl ufe geschehen gleichzeitig Es existieren unz hlige Kreisl ufe die das System stabilisieren und ausbalancieren In der Computerwelt stellt sich nun langsam die Frage ob solche Verhaltensweisen nicht auch erw nscht w ren Die Datenmenge artet langsam in eine richtige Flut aus das Verarbeiten wird dadurch nicht k rzer Auch mit den immer leistungsf higeren Mikroprozessoren wird einmal Schluss sein Hier st sst die Technik heute schon an gewisse Grenzen Doch die Vernetzung und Verarbeitung wird mit dem Wachstum unserer Gesellschaft stetig zunehmen vielleicht sogar exponentiell Dieses Dokument zeigt eine M glichkeit auf wie zuk nftige Software geschrieben werden kann n mlich mit den Erkenntnissen der Genforschung Die Natur k nnte uns also auch hier wieder einmal als Vorbild dienen um solche Systeme zu entwickeln Das folgende Unterkapitel befasst sich kurz mit der realen Welt und welche Prinzipien zum Bau des Systems gebraucht werden k nnen 3 1 Die Welt der chaotischen Systeme Die Erde besteht aus 3 Hauptkreisl ufen der Atmosph re den Meeresstr mungen und der Magmastr mungen Diese Kreisl ufe sind chaotisch organisiert und beeinflussen sich gegenseitig Sie geben dem Sys
123. tfernte Kommunikation TCcell Diese Klasse repr sentiert eine Zelleninstanz Sie stellt Diagnosem glichkeiten zur Verf gung Sie besitzt die F higkeit des Klonens TCellSurvey Diese Zelle ist spezialisiert um ein Zellensystem zu berwachen und Daten von Zellen auszuwerten TAbstractCell Hilfsklasse zur Implementation eines Zellkerns Dieser Zellkern wird vom Applikationsentwickler geschrieben TRelyCell Umleitung von Meldungen Diese Zelle kann als Gateway verwendet werden um Meldungen zu filtern Benjamin Hadorn Seite 83 von 162 Fachhochschule f r Informatik Bern Diplomarbeit Abbildung 32 Verwendung des MOM Bilden von hierarchischen Zellensystemen Das TCellEnvironment implementiert die M glichkeit Zellen zu klonen und abzubauen Diese 2 Verfahren sind im Dokument CCM1 beschrieben 14 4 2 Threading Damit die Zellen parallel arbeiten k nnen brauchen es Threads F rs Threading unter Linux und Windows wurden Klassen erstellt die Funktionen und Datentypen der Betriebssystem API kapseln API TThread Ein Thread kann mit Hilfe dieser Klasse implementiert werden TCriticalSection Kritische Abschnitte und Locks k nnen mit dieser Klasse umgesetzt werden TEvent Diese Klasse dient dem Signalisieren von Threads TTime Klasse f r Zeit Funktionen wie sleep und 4 f r Linux werden POSIX Threads eingesetzt PTHREAD und POSIXTH
124. tige Analyse zu Projektteam Projektanforderungen Beginn des Projekts Betreuer durch neue Prototypen entwickeln Erkenntnisse Benjamin Hadorn Seite 121 von 162 Fachhochschule f r Informatik Bern Diplomarbeit 19 4 Ziele Das Ziel der Diplomarbeit ist das Vertiefen der Grundlagen Mit dem bereits entwickelten Framework Prototypen sollen die Grundlagen des CCM verifiziert getestet und ausgewertet werden Das Hauptziel in der Diplomarbeit ist das Erstellen einer Beispiel Implementation zur Bildverarbeitung Beschreibung Erarbeiten einer Spezifikation zum Cell Computing Model Sicherheitskonzept Erkennen der Zellen mit finger print Technik Beispiel Implementation eines Bildverarbeitungsprozesses mit dem erstellten Framework Erweiterung des Systems mit mobilen Zellen welche sich autonom im Netz verteilen k nnen fakultativ Tabelle 16 Ziele der Diplomarbeit 2005 19 5 Vorgehensstrategie Um die oben genannten Ziele zu erreichen wird ein iteratives Modell verwendet Dabei werden periodisch Prototypen entwickelt welche als Grundlage f r weitere Entscheidungen dienen Eine Iteration dauert ca 1 Woche Fortlaufend wird die Spezifikation angepasst und begutachtet Projektverz gerungen werden mit Funktionsreduzierung entgegengewirkt bis das Minimum an Muss Funktionen erreicht wird Deshalb sind alle Funktionen und Aufgaben priorisiert Benjamin Hadorn Seite 122 von 162
125. tl gt lt Subobjectl ID 2 ClassName TXObject1 gt lt Attribute Name Status gt NA lt Attribute gt lt SubObjectl gt lt Subobject2 ID 1 ClassName TXObject2 gt lt RootObject gt Listing 4 Beispiel einer XML Objekt Konfiguration mit Attributen die als Unterknoten zum XML Objekt eingef gt wurden Die Attributwerte sind als Textknoten angegeben was eine grosse Flexibilit t zul sst Diese 3 Schemas d rfen f r ein XML Objekt nicht gemischt werden Welche Art f r ein XML Objekt verwendet wird wird mit dem Attribut AttributeSchema SchemaNr angegeben Ist f r ein Vaterknoten bereits ein Schema festgelegt wird dieses von den Kinderknoten geerbt standardm ssig ist das Schema 1 gesetzt Benjamin Hadorn Seite 104 von 162 Fachhochschule f r Informatik Bern Diplomarbeit 15 2 Erweiterte Definition zum ClassLoader Der XML Objektbaum kann Objekte besitzen die zur Laufzeit noch nicht bekannt sind Dabei handelt es sich um so genannte externe Objekte welche in einem Code Modul implementiert sind Diese Code Module m ssen w hrend dem Aufbauen des Baums geladen werden Beim XML Objekt wird das Attribut CodeModule path filename angegeben Das Attribut setzt sich aus einem relativen Pfad und dem Namen einer Bibliothek ohne Endung zusammen Der Klassenlader ClassLoader f gt automatisch die korrekte Endung an unter Linux mit Endung so unter Windows mit Endung dll Der
126. turen TGAChromosone Sammlung von Genen Implementiert das Kreuzen von Gen Str ngen TGAlndividual Ein Individuum TGAPopulation Sammlung von Individuen Durch das Bilden von Generationen werden immer bessere Individuen gez chtet Weitere Informationen zu genetischen Algorithmen sind auf dem Web unter www xatlantis ch examples ga_example htmi zu finden Benjamin Hadorn Seite 101 von 162 Fachhochschule f r Informatik Bern Diplomarbeit 15 Definition von X Objekten in XML Dieser Abschnitt befasst sich mit der statischen Strukturdefinition von X Objekten in einem Objektbaum Dieser Objektbaum ist in XML abgebildet da sich diese Beschreibungssprache optimal f r solche Strukturen eignet 15 1 Allgemeine XML Spezifikation Die Definition in XML ist sehr offen spezifiziert Ein XML Knoten welcher ein X Objekt repr sentiert kennzeichnet sich lediglich durch folgende Attribute Knotennamen Gibt dem Objekt einen Namen Attribut ClassName Name der Klasse von welcher das Objekt erzeugt werden soll Attribut CodeModule Name des Code Moduls in welchem die Klasse implementiert ist Es k nnen beliebige weitere Attribute definiert werden welche Daten f r die konkreten Objekte enthalten Der XML Knoten kann auch Kinderknoten haben die keine X Objekte repr sentieren Der Wurzelknoten des XML Knotens muss immer ein Objekt erzeugen welches die Schnittstelle IXRootObject implementiert 15 1 1 Obj
127. u den lokalen Daten k nnen Daten auch global in den Speicherzellen abgespeichert werden Die Speicherzellen stellen eine globale Datenbank dar in welcher jeder mit Zugriffsrecht zugreifen und Daten verarbeiten kann Es gibt zwei Hauptgruppen von Speicherzellen Speicherzellen f r Verarbeitungsdaten Speicherzellen f r die Erinnerungswerte Die Erinnerungswerte werden von der Kommandozentrale verwaltet Sie entstehen durch die Lernf higkeit und den Erfahrungen des Systems Es entsteht eine netzartige Verkn pfung zwischen diesen Daten eine M glichkeit gewisse Daten mit anderen Daten in Verbindung zu bringen Die Speicherzellen der Verarbeitungsdaten k nnten mit einer relationalen Datenbank implementiert werden Benjamin Hadorn Seite 53 von 162 Fachhochschule f r Informatik Bern Diplomarbeit 11 3 Beispiel einer Datenverwaltung Nehmen wir an eine Kamera generiert Bilder Diese Bilder werden nun von den Sensorzellen zuerst so umgewandelt dass das System sie interpretieren kann Real World gt Hardware gt Sensorzellen Treiber gt Bildformat jpg gif etc Nun sollen diese Bilder von gewissen Zellen weiterverarbeitet werden Damit dies geschehen kann werden sie von den Sensoren ber die Kommandozentrale in Speicherzellen abgelegt ber die Kommandozentrale werden nun die entsprechenden Zellen animiert diese Informationen zu verarbeiten Die Bilder werden zum Teil kopiert und als lokale Daten in der jeweiligen
128. ule f r Informatik Bern Diplomarbeit Literaturverzeichnis GEOK2 Diverse GEO kompakt Das Wunder Mensch 2005 MSENC Microsoft Microsoft Encarta 2001 CCM1 Hadorn Benjamin Cell Computing Model 2005 XMLO1 W3C Extensible Markup Language XML STWIN Benjamin Hadorn Programmieranleitung zum StuderWINFrame 2003 XMLO2 Apache CCM1 Hadorn Benjamin Cell Computing Model 2003 PTHREAD Xavier Leroy Manual Linux Threads POSIXTH Ulrich Drepper Ingo Molar The Native POSIX Thread Library for Linux 2005 2005 DIP ISWP1 P Schwab Diplomarbeit 2005 zum Thema Cell Computing Model 2005 QATDOC Trolltech com LOG4CXX Apache Logging Services Project Apache 2005 Benjamin Hadorn Seite 162 von 162
129. um Pr fen define CHECK_DOUBLELIST stream CHECK ATTRIBUTE stream SERIAL _DOUBLELIST_ID Serialisierung und Deserialisierung von Listen mit double Werten define SERIAL _DOUBLELIST attrib if ulRetval RET_NOERROR EN if 1Mode 2 EN stream out gt writeByte SERIAL DOUBLELIST ID long lAttCount obj _old gt attrib getCount stream out gt writeLong lAttCount for int i 0 i lt 1lAttCount i EN stream out gt writeDouble obj_old gt attrib getItemCopy i IN PN else if CHECK_DOUBLELIST stream in EN long lAttCount stream in gt readLong for int i 0 i lt 1lAttCount IFF N ON obj new gt attrib add stream in gt readDouble IN EN else EN ulRetval RET REQUEST FAILED IN Benjamin Hadorn Seite 99 von 162 Fachhochschule f r Informatik Bern Diplomarbeit 14 5 1 Streaming Mit den Streaming Klassen k nnen Daten aus Dateien und Puffer einfach gelesen und geschrieben werden API IInputStream Schnittstelle f rs Lesen aus Streams IOutputStream Schnittstelle f rs Schreiben in Streams TByteArrayInputStream Streaming Klasse zum Lesen aus einem Puffer TByteArrayOutputStream Streaming Klasse zum Schreiben in einem Puffer TFileInputStream Streaming Klasse zum Lesen aus einer Datei TFileOutputStream Streaming Klasse zum Schreiben in eine Datei 14 6 Remote Method Invocatio
130. wenn k nstliche Intelligenz in die Zellen eingebaut werden sollen Benjamin Hadorn Seite 140 von 162 Fachhochschule f r Informatik Bern Diplomarbeit A Applikationen des Framework Zeus Das Zeus Framework umfasst diverse Bibliotheken Code Module und Programme In diesem Kapitel werden die Systemkomponenten des Frameworks erkl rt Weiter wird beschrieben wie das Framework konfiguriert werden kann A 1 Bibliotheken Die Bibliotheken werden zum Entwickeln und Linken von Applikationen gebraucht Alle Klassen sind in die entsprechenden Bibliotheken enthalten API lib zeusbase lib Diese Bibliothek beinhaltet alle Basisklassen zum Entwickeln mit dem Zeus Framework e _Systemklassen Netzwerk Threading Sockets Datentypen Streaming Serialisierung e Remote Method Invocation RMI e Module Object Model MOM Cell Computing Model e Klassen f r k nstliche Intelligenz und viele mehr lib zeusdev lib Diese Bibliothek dient der Entwicklung von Code Modulen Sie beinhaltet Hilfsklassen f r Modul Sessionen und Zellenarchitektur lib cppunit lib Zusammengestellte Bibliothek zum Testen der Applikationen Der Source stammt aus dem Open Source Projekt CPPUNIT http sourceforge net projects cppunit Benjamin Hadorn Seite 141 von 162 Fachhochschule f r Informatik Bern Diplomarbeit A 2 Code Module Es gibt bereits entwickelte Code Module die standardm ssig zum Framework
131. werden Sie brauchen die Umgebung um zu existieren Aber auch die Umgebung ist von den Zellen abh ngig Die Zelle ist fest in einem oder mehreren der 3 Kreisl ufe beteiligt Je nach Komplexit t des Lebewesen gibt es unterschiedliche Zellenverbunde Zellenhaufen Die Zellenverbunde bestehen aus einem bestimmten Zellentyp der dem Lebewesen einen bestimmten Dienst erweist 3 1 1 1 Stammzellen Interessant ist das jedes Lebewesen aus einer einzigen Zelle entsteht Diese Zelle teilt sich nun es entsteht ein Zellenhaufen und schlussendlich das vollst ndige Lebewesen Stammzellen sind die Bausteine des Lebens Urzellen Sie k nnen sich fast unbegrenzt teilen Aus ihnen entwickeln sich alle anderen Zellen eines Lebewesens Die ersten Zellen sind die embryonale Stammzellen Aber auch nach der vollst ndigen Entwicklung des Lebewesens existieren Stammzellen um den K rper zu heilen und zu reparieren 3 1 1 2 Spezialisierte Zellen Aus den Stammzellen entstehen spezialisierte Zellen Diese nehmen nun eine bestimmte Aufgabe wahr Sie sind die Bausteine der Organe Haut Leber etc der Nerven Muskeln und des Bluts Je nachdem wie gross und umfangreich die einzelnen Aufgaben sind existieren mehr oder weniger Zellen einer Zellenart Gewisse Arten werden erst in gr sserem Ausmass produziert wenn sie dringend gebraucht werden Andere sind einfach als Reservezellen vorhanden 3 1 2 Generierung und Regenerierung Ein sehr wichtiges Konzep
132. wird Zur Implementation der Zellen sind weitere Konzepte und Verfahren n tig welche in diesem Kapitel mit den dazugeh rigen Klassen beschrieben werden 14 4 1 Die Zellen F r das Zeus Framework wurde eine Zellenumgebung Klasse TCellEnvironment entwickelt welche eine beliebige Zellenart beherbergen kann Abbildung 31 Die Zellenumgebung erbt von der MOM Klasse TModule und bernimmt die Kontroll und Steuerfunktion eines bestimmten Zellensystems Verwalten der Kommunikationskan le berwachen der Zellen Vermehren der Zellen Abbauen von Zellen Die entsprechenden Zellen werden in Code Modulen Bibliotheken entwickelt Diese werden zur Laufzeit vom Framework dynamisch geladen damit die Zellenobjekte erzeugt werden k nnen API ICellKernel Schnittstelle f r den Zellkern Diese muss von einem Applikationsentwickler implementiert werden ICellComm Schnittstelle des Zellmantels Durch diese Schnittstelle k nnen Meldungen aus der Zellenumgebung gelesen oder Meldungen abgesetzt werden Benjamin Hadorn Seite 82 von 162 Fachhochschule f r Informatik Bern Diplomarbeit API ICell Interne Schnittstelle f r die Diagnose von Zellen Sie repr sentiert den usseren Zellmantel ICellSurvey Schnittstelle der berwachungszelle TCellEnvironment Umgebung einer oder mehreren Zellen Die Umgebung erstellt Kommunikationskan le und registriert die Zellen f r lokale oder en
133. z verschwendet Die Natur komprimiert deshalb den nicht verwendeten Teil der DNA Eine weitere M glichkeit w re das Halten von globalen Daten Dadurch w rde das Speicherproblem weitgehend gel st Es hat aber der grosse Nachteil dass sich die DNA durch die zentrale Haltung ein gutes Angriffsziel ist Zudem ist hier die Realisierung von Verteilten Systemen sehr aufwendig Benjamin Hadorn Seite 32 von 162 Fachhochschule f r Informatik Bern Diplomarbeit 7 Immunsystem Sicherheit im System Ein Immunsystem dient dem automatischen Erkennen von Viren sch dlichen Programmen und trojanischen Pferden Spionage Schlussendlich muss das Immunsystem die geeigneten Gegenmassnahmen treffen In diesem Kapitel werden einige Verfahren vorgestellt wie ein solches Immunsystem im Cell Computing Model realisiert werden k nnte 7 1 Erkennen von Fremdzellen Fremdzellen sind Zellen die nicht zum eigentlichen System geh ren und somit als sch dlich oder unsicher eingestuft werden In der Biologie werden solche Zellen anhand der molekularen Struktur erkannt sie riechen anders als die k rpereigenen Zellen Dies ist in der Informatik nicht so leicht nachzubilden Wir k nnen aber eine verwandtes Prinzip anwenden den Fingerabdruck Mit einem Fingerabdruck einer One Way Hash Function k nnen wir den Programmcode einer Zelle eindeutig erkennen Secure code Unsecure code 2 evaluateHashi print 3 Load and initialize l Abbildu
134. zellen die andere Zellen berwachen und analysieren k nnen Diese Zellen k nnen sich im System frei herum bewegen sie sind mobil Beim Auftreten eines Problems k nnen durch Trendkommunikation Sicherheitszellen angelockt werden die versuchen das Problem zu analysieren und erste Massnahmen zu ergreifen Eine solche Analyse kann unter anderem auch die Pr fung des Fingerabdrucks siehe oben beinhalten Kann das Problem nicht ausreichend schnell oder effizient gel st werden k nnen spezialisierte Sicherheitszellen angefordert werden Das geschieht wieder durch die Trendkommunikation zu nahe liegenden Sicherheitsstellen Zellenfabriken die Sicherheitszellen produzieren Benjamin Hadorn Seite 34 von 162 Fachhochschule f r Informatik Bern Diplomarbeit Infizierte Zelle o Botschaften a b Abbildung 15 Das Immunsystem des CCM a Eine Sicherheitszelle detektiert eine von Viren befallene Zelle b Die Sicherheitszelle sendet Botschaften welche andere Sicherheitszellen anlocken und versucht die befallene Zelle zu vernichten c Spezialisierte Sicherheitszellen neutralisieren die Viren und die defekten Sicherheitszellen So genannte Ged chtniszellen welche den Vorfall miterleben und berleben speichern die Signatur der Virenzellen ab Durch ihre Alarmbereitschaft k nnen nun Virenzellen schneller detektiert und bek mpft werden Benjamin Hadorn Seite 35 von 162 Fachhochschule f r Informatik Bern Diplomar
135. zessor Systeme geeignet welche auf einen Shared Memory zugreifen k nnen Der Film muss nicht dupliziert werden sondern die Zellen arbeiten direkt am gleichen Bilder Stream Berechnungszeit EI Single r i 1 F r l N i 1 2 4 8 16 32 64 128 256 Anzahl Zellen Auffallend ist dass der Dual Prozessor mit 2 Zellen ca 22 schneller ist als nur mit einer einzigen Zelle Der Single Prozessor ist auch etwas schneller mit 4 f llt dies aber sehr moderat aus Interessant ist auch dass beim Single Prozessor die Belastung ab 64 Zellen extrem zu nimmt w hrend der Dual Prozessor stabil bleibt Zeit Oa NOU gt VO N Benjamin Hadorn Seite 152 von 162 Fachhochschule f r Informatik Bern Diplomarbeit C 1 Konfiguration Hardware Single Processor htibe2ci12 006 2 533GHz 1024MB RAM Ubuntu Dual Processor pinguin 3 601GHz 2048MB RAM Ubuntu Anzeige PC htibe2ci12 005 2 533GHz 1024MB RAM Ubuntu Einstellungen des Modec Blockgr sse 16 Pixel Blocks pro Fragment 200 Blocks Max Bewegung 10 Pixel Zellen berwachung Max 2 Sekunden Zellen berwachung Min 1 Sekunde Software Zeus Version 0 2 5 QT Version 3 xx Verbindung ssh X f r X Server Benjamin Hadorn Seite 153 von 162 Fachhochschule f r Informatik Bern Diplomarbeit Benjamin Hadorn Seite 154 von
136. zum Vorbild nimmt Durch die Kombination mit bew hrten Paradigmen der objektorientierten Entwicklung wurde ein Framework geschaffen welches die Entwicklung und Anwendung von Cell Computing Applikationen erm glicht In der realen Welt laufen unendlich viele Ereignisse zur gleichen Zeit ab unz hlige Kreisl ufe stabilisieren das System in stetiger Wechselwirkung Durch die Evolution werden unflexible und st rende Komponenten zerst rt oder angepasst Dieses Verhalten wird mit der Definition des Cell Computing Model CCM in die Computerwelt bertragen wobei sich dieses Modell sehr stark an die biologische Arbeitsweise und den Aufbau von Lebewesen orientiert Das Modell richtet sich nach Multiprozessor Computer und verteilten Applikationen aus In absehbarer Zukunft st sst die Entwicklung von noch schnelleren Rechnern an ihre Grenzen Die Vernetzung und der Bedarf an Information wird aber stetig zunehmen Dadurch wird die Entwicklung von Applikationen komplexer und aufwendiger Cell System Multiprocessor Clusters Network Computer E gt yo g NO Abbildung 1 Verteilte Applikation mit Cell Computing Model Im Rahmen dieser Diplomarbeit wurde das CCM definiert und ein Framework geschaffen welches das Entwickeln von komplexen und verteilten Applikationen auf Basis des CCM erm glicht Wie der Name Cell Computing Benjamin Hadorn Seite 7 von 162 Fachhochschule f r Informatik Bern Diplomarbeit bereits besagt werden so ge
Download Pdf Manuals
Related Search
Related Contents
Troop User Manual August 1, 2012 GSM module G10C MF730M USB Modem Quick Guide V1.0-1206.indd National Instruments FP-RLY-420 User's Manual F:\MEGA PC\6265Quick Installati QS-Worldwide Conference and Exhibition SMAC CA Catalogue 2009 rev.1.0 Ferris Industries IS5000 User's Manual TORNADO T25 Instruções Operacionais e de Copyright © All rights reserved.
Failed to retrieve file