© Martin Korneffel, Stuttgart der 21.10.06 +++ email: info@tracs.de +++ web: www.tracs.de

Verteilte .NET Anwedungen

Inhalt

  1. Verteilte Anwendungen

    1. Blog

    2. DMS

  2. Grundprinzip der Programmierung verteilter Komponenten



Verteilte Anwendungen

Blog

Ein weiteres Beispiel für eine Verteilte Anwendung ist ein Blog (WebLog).


Kern der Anwendung sind die beiden Klassen Blog und BlogServer. Mittels der Methode blog(string Author, string Message) wird eine neue Nachricht im WebLog aufgenommen. Wird aus dem Titels des Blogs, dem Autor und der Nachricht ein spezieller Blog- String erzeugt wie folgt:

<Titel>/<Autor>/Message

Diese wird an über die statische Referenz log an eine Menge registrierter Log- Handler weitergeleitet. Ein Log- Handler ist eine Klasse, die die Schnittstelle mko.ILogHnd implementiert.


Ein solcher Log- Handler ist z.B. die Klasse BlogServer. Jeder neuen Eintrag wird in der Liste Blogs aufgenommen, die zusätzlich nich einen Zeistempel für jeden Eintrag verwaltet. Mittels der Get... Methoden kann ein Client alle, oder eine Teilmenge von Einträgen abrufen.




Die Clients von Blog können im Intranet oder Internet existieren. Während z.B. Intranetclients über Remoting der Zugriff auf die Blog- Objekte ermöglicht wird, wären bei Internet- Clients Webservices oder Asp- Webseiten zu bevorzugen.

DMS

Als Beispiel für eine verteilte Anwendung diene ein Dokumentenmanagmentsystem, genannt DMS. DMS hat die Aufgabe, den Benutzern eines Intranets Informationen über die im Intranet verfügbaren Dateien bereitzustellen.




Modul

Aufgabe/Funktion

FindFileServer

  • Sucht auf einer Maschine alle Dateien, die sich unter einem definierten Unterverzeichnis befinden, die einem gegebenen regulären Ausdruck genügen.Beispielsweise würde der Ausdruck: @".*\.\e\x\e" alle Pfadnamen von ausführbaren Dateien liefern.

  • Für jede gefundene Datei wird ein GUID angelegt

  • Erzeugt für jeden GUID eine Job zum speichern in der DMS Datenbank und erteilt diesen an den FeatureCollector

  • Extrahiert aus jeder gefundenen Datei eine Menge von Merkmalen, bindet diese an den GUID der Datei

  • Erzeugt für jedes Merkmal ein Job zum Speichern in der DMS Datenbank und erteilt diesen an den FeatureCollector

FindFileManager

  • Definiert die Aufträge zum suchen nach bestimmten Dateien und extrahieren von Merkmalen auf einem FindFileServer.

  • Verschiedene Aufträge können parallel gestartet werden

  • Bearbeitungsfortschritt aller aktiven Aufträge wird überwacht

FeatureCollector

  • Hält eine Verbindung zur DMS- Datenbank offen

  • Nimmt Dateimerkmale von den FindFileServern über eine Queue an und speichert sie in der DMS- Datenbank

FindFileClient

  • Ein Auftrag zum suchen nach Dateien, deren Name einem Regulären Ausdrcuk genügt, kann definiert und an den LoadBalancer gesendet werden

  • Client wartet bis zum Auftragsende und gibt das Ergebnis zurück

FindFileLoadBalancer

  • Stellt einen Suchdienst mit regulären Ausdrücken für einen Dateiverzeichnis bereit. Die Suchanfragen können auf mehrere FindFileServer verteilt werden. Dazu muß aber jeder FindFileServer eine exakte Kopie des Dateiverzeichnises besitzen.

  • Nimmt Aufträge der FndFileClients entgegen und teilt diese nach einem simpelen Algorithmus den FindFileServern zu, so daß bei N parallelen Clientanfragen und M FindFileServern jeder FindFileServer N/M Aufträge zu bearbeiten hat.

DMS DB

  • Verwaltet die von den FindFileServern extrahierten Merkmale von Dokumenten im Intranet

  • Stellt Abfragen zum analysieren der Merkmalsmengen bereit

DMSSearchServer

  • Stellt einen Dienst zum Ausführen von DMSDB- Abfragen bereit, deren Resultsets als ADO- Datasets geliefert werden.

DSMSearchClient

  • Client des DMSSearchServers



FindFileServer






FindFileManager


Grundprinzip der Programmierung verteilter Komponenten