1 Plugin Konzept
      Dieses Kapitel beschreibt den Aufbau der konzipierten und erstellten Plugins. Ziel
      dieses Kap...
Abbildung 1 zeigt die oben beschriebene erste Möglichkeit zur Strukturierung eines
Plugins.




                         A...
Das Element [authors] beschreibt die Ersteller oder Autoren des Plugin. Das
Element [authors] kann Elemente vom Typ [autho...
Abbildung 6. Plugin Element Abhängigkeiten

Das Element [parameters], beschreibt die Parameter welche der Quellzielcode
er...
Im folgende wird eine Tabelle dargestellt welche die verwendeten und
     angebotenen Quellzielsprachen und die implementi...
2 XML Parser
      In diesem Kapitel soll der XML Parser betrachtet werden. Analog zu dem
      vorherigen Punkt, soll gek...
DependencyFile:
Beinhaltet alle Informationen einen Plugin-Abhängigkeit. Diese sind die Plugin-
Beschreibung und der Plugi...
Ist das Gesamte XML File durchlaufen, werden Methoden bereitgestellt die zur
Verfügung stehenden Hashtabelle zu ermitteln.
Nächste SlideShare
Wird geladen in …5
×

Setup Skrip Makr Dokumentation

522 Aufrufe

Veröffentlicht am

0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
522
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
6
Aktionen
Geteilt
0
Downloads
1
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Setup Skrip Makr Dokumentation

  1. 1. 1 Plugin Konzept Dieses Kapitel beschreibt den Aufbau der konzipierten und erstellten Plugins. Ziel dieses Kapitels soll es sein, dem Lesenden Einblick in den Plugin-Aufbau zu geben und die definierten Plugin-Punkte zu Erläutern und etwaige Entscheidungspunkte beim Aufbau des Plugins herauszuarbeiten und darzustellen. In dem ersten Punkt dieses Kapitels soll die Zielstellung eines Plugins im Hinblick auf das Gesamtprojekt definiert werden. Die Frage die in diesem Kapitel aufkommt lautet: „Weshalb werden Plugins verwendet und wozu dienen sie?“. Ein Plugin stellt im Blick auf das Gesamtgefüge des Projektes „Setup Script Maker“ den Zielanwendungscode bereit. Ein Plugin enthält somit Quellcode der Zielsprache oder sogar der Zielsprachen. Die Struktur dieses Projektes „SetupSkriptMakr“ ist somit in zwei Teilbereichen zu untergliedern. Der erste Teilbereich, das Frontend, stellt die Anwendungsoberfläche dar. In dieser kann der Anwender seine Zielsprache definieren und das Skript zusammenbauen. Der zweite Teilbereich, die Plugins, stellen den Quellcode der Zielsprache bereit. Das Vorgehen lässt sich somit folgend beschreiben. Die Plugins werden von dem System eingelesen und die Struktur und die Inhalte gespeichert. Hat der Anwender die gewünschte Struktur seines zu erstellenden und auszugebenden Skriptes definiert und etwaige notwendig Angeben über z.B. Pfadparameter und Zielparamater, angegeben, wird der Zielquellcode des jeweiligen Plugins dem Anwenderanforderungen angepasst und als Gesamtskript in Form eines Batch oder zum Beispiel Shell Files ausgegeben. Der zweite Punkt dieses Kapitels, soll sich mit der Struktur des Plugins beschäftigen. In unserem Projekt standen zwei Plugin-Aufbaustrukturen zur Auswahl. 1. Ein Plugin enthält genau eine Quellzielsprache. Jedoch können in einem Plugin mehrere Aufgaben definiert werden. 2. Ein Plugin enthält mehrere Quellzielsprache. In einem Plugin befindet sich jedoch nur ein Aufgabentyp. Folgendes UML Klassendiagramm soll den Aufbau eines Plugins näher verdeutlichen. Abbildung 1. Pluginstruktur 1
  2. 2. Abbildung 1 zeigt die oben beschriebene erste Möglichkeit zur Strukturierung eines Plugins. Abbildung 2. Pluginstruktur 2 In Abbildung 2 wird mit Hilfe eines UML Klassendiagramm die 2te mögliche Strukturierung eines Plugins beschrieben. In unserem Projekt wird ein Plugin als ein elementares Objekt betrachtet, welches eine bestimmte Aufgabe mit mehreren Quellzielsprachen bereitstellt. Die Entscheidung viel Aufgrund der besseren Strukturierung. Da in unserem Projekt die Gewichtung sehr stark auf den Aufgabenteil liegt, soll diese Gewichtung ebenfalls auf die Plugin-Struktur überführt werden. Im weiteren Verlauf wird der Plugin-Aufbau detaillierter betrachtet. Es werden die von uns definierten Plugin-Parameter und erläutert. Der Plugin-Aufbau wird mit der Extensible Markup Language [XML] beschrieben. Dabei ist XML eine Auszeichnungssprache zur Darstellung hierarchisch strukturierter Daten in Form von Textdaten. Eine Plugin-Hierarchie erfolgt mit dem Element [plugin] welches ein Attribut [id] enthält. Das Attribut [id] definiert dabei die Eindeutigkeit und Identität eines Plugin. Innerhalb des Elementes [plugin] existieren eine Vielzahl von weiteren Elementen, welche nachfolgend beschrieben werden. Das Element [name] beschreibt den Namen des Plugin, welcher dem Anwender im System angezeigt wird. Das Element [description] gliedert sich in die Unterelemente [short] und [long] auf. Das Element [description] ist für die weitere Beschreibung eines Plugin vorgesehen. Abbildung 3. Plugin Elemente Name und Beschreibung
  3. 3. Das Element [authors] beschreibt die Ersteller oder Autoren des Plugin. Das Element [authors] kann Elemente vom Typ [author] enthalten Abbildung 4. Plugin Element Autoren Ein Autor besitzt hierbei die Element [name], [email], [homepage] und [nickname], welche die den Plugin-Ersteller eindeutig beschreiben. Das nachstehende Element [languagesupported] beinhaltet die vom Plugin bereitgestellten und angebotenen Zielsprachen. Ein Element [languagesupported] beinhaltet Elemente vom Typ [language]. Die Sprache welche durch das Element [language] definiert wird, wird durch die Elemente [name] und [platform] beschrieben. Abbildung 5. Plugin Element Angebotene Zielsprachen Das Element [dependencies] enthält mögliche Abhängigkeiten eines Plugins. Ein [dependencies] Element kann dabei mehrere Elemente vom Typ [dependency] enthalten. Das Attribut [typ] in dem Element [dependency] sagt aus, von welchem Typ die Abhängigkeit ist. Ein Typ kann dabei z.B. ein anderes Plugin oder eine Software sein. Betrifft die Abhängigkeit ein anderes Plugin, muss das Attribut [id] des Plugin angegeben werden. Eine Abhängigkeit besitzt die Elemente [description], welche die Abhängigkeit beschreibt, und [filename] oder [softwarename].
  4. 4. Abbildung 6. Plugin Element Abhängigkeiten Das Element [parameters], beschreibt die Parameter welche der Quellzielcode erwartet. Ein Element [parameter] besitzt die Attribute [name] – Parameterbezeichnung, [type] – Typisierungsangabe des Parameters, [id] – Eindeutigkeitsschlüssel, [lenght] – Länge des zu übergebenden Parameters und [description] – Parameterbeschreibung. Abbildung 7. Plugin Element Parameter Das Element [codesnippets] enthält den Code der Aufgabe. Ein Element [codesnippets] kann Elemente vom Typ [codesnippet] beinhalten. Ein Element [codesnippet] muss ein Element [script] beinhalten, in dem der Quellzielcode eingebunden wird. Durch das Attribute [language] wird die Zielsprache angegeben und definiert. Das Element [script] kann ein Element vom Typ [imports] beinhalten, welches mögliche Importdateien einer Zielsprache beinhaltet. Abbildung 8. Plugin Element Quellzielcode
  5. 5. Im folgende wird eine Tabelle dargestellt welche die verwendeten und angebotenen Quellzielsprachen und die implementierten Aufgaben aufzeigt. Id Aufgabe Zielsprachen Beschreibung 1. Ordner/File Löschen Windows Batch, Linux löscht einen Shell und Ruby bestehenden Ordner 2. Ordner/File Kopieren Windows Batch, Linux Kopiert einen Shell und Ruby bestehenden Ordner von A nach B 3. Ordner/File Verschieben Windows Batch, Linux Kopiert einen Shell und Ruby bestehenden Ordner von A nach B und löscht Ordner aus A 4. Ordner erstellen Windows Batch, Linux Erstellt einen Shell und Ruby Ordner 5. Ordnergröße ermitteln Windows Batch, Linux Ermittel die Größe Shell und Ruby eines bestehenden Ordners
  6. 6. 2 XML Parser In diesem Kapitel soll der XML Parser betrachtet werden. Analog zu dem vorherigen Punkt, soll geklärt werden, was die Aufgabenstellung und der Zweck des Parser darstellen. In dem Kapitel [Plugin Konzept] wurde die Plugin-Konzeption und deren Ziel erläutert. Das Ziel oder die Aufgabe des Parser besteht darin, die definierten Inhalte des Plugin auszulesen und der Anwendung bereitzustellen. Da das Plugin mit Hilfe der Extensible Markup Language (XML) beschrieben wurde, wird zum auslesen eines bestehenden Plugin ein XML-Parser benötigt. Die Anwendung wurde mit der Sprache Ruby umgesetzt. Somit muss auch der zu definierende XML Parser mit Ruby entwickelt werden. Ruby stellt dem Entwickler eine Reihe von XML Parsern zur Verfügung. In unserem Projekt soll der XML Parser [hpricot] zum Einsatz kommen. Dieser Ruby XML Parser kann auf der Seite [http://wiki.github.com/why/hpricot/hpricot- xml] kostenfrei heruntergeladen werden. Die ausgelesenen Informationen sollen, lautet interner Zielsetzung, in Hashtabellen abgelegt werden. Folgenden Hashtabellen wurden hierbei angelegt. PluginDescription: In dieser Hashtabelle werden die Plugin-ID, der Plugin-Name, die Plugin-Kurz- und die Plugin-Langbeschreibung gespeichert. Authors: Diese Hashtabelle beinhaltet Hashtabelle vom Typ Author. Author: Eine Hashtabelle Author beinhaltet die Parameter Name, E-Mail, Homepage und Nickname des Authors. LanguageSupported: Diese Hashtabelle beinhaltet Hashtabelle vom Typ Language. Language: Diese Hashtabelle speichert die Informationen der definierten und angebotenen Sprachen. Die hier gespeicherten Parameter sind der Sprachenname und die Platform. DependenciesSoftware: Beinhaltet Hashtabellen vom Typ DependencySoftware. DependencySoftware: Speichert die Informationen der Abhängigkeitsbeschreibung und den Namen der Software. DependenciesFile: Beinhaltet Hashtabellen vom Typ DependencyFile.
  7. 7. DependencyFile: Beinhaltet alle Informationen einen Plugin-Abhängigkeit. Diese sind die Plugin- Beschreibung und der Plugin-Name. ParametersInput: Beinhaltet Hashtabelle vom Typ ParameterInput. ParameterInput: Beinhaltet Parameter die den Parameterinput beschreiben. Diese sind der Name, Typ, ID, Lenght und die Beschreibung. ParametersOutput: Beinhaltet Hashtabelle vom Typ ParameterOutput. ParameterOutput: Beinhaltet Parameter die den Parameteroutput beschreiben. Diese sind der Name, Typ, ID, Lenght und die Beschreibung. CodeShell: Beinhaltet den Code der Quellzielsprache Shell. CodeBatch: Beinhaltet den Code der Quellzielsprache Batch. CodeRuby: Beinhaltet sowohl den Code der Quellzielsprache Ruby, als auch weitere Hashtabellen vom Typ RubyRequire. RubyRequire: In dieser Hashtabelle werden die von Ruby benötigten Bibliotheken gespeichert. Im nachfolgenden sollen die Schritte zum Auslesen eines Elementinhaltes Beispielhaft aufgezeigt werden. Um den [hpricot] XML Parser verwenden zu können, wird die Bibliothek [hpricot] verwendet. Anschließend wird das XML File durch den Befehl aufgerufen. Ein Attribut kann durch den Befehl ausgelesen werden. Mit Hilfe von [each do] Schleifen werden mehrere Elemente vom selben Typ durchlaufen und der Inhalt ausgelesen. Das Beispiel zum Auslesen der Unterstützten Programmiersprache soll dies verdeutlichen.
  8. 8. Ist das Gesamte XML File durchlaufen, werden Methoden bereitgestellt die zur Verfügung stehenden Hashtabelle zu ermitteln.

×