Integration in bestehende Applikationen
Wie es der Name sagt, ist
ScenarioAssistant Component eine
Software-Komponente. Sie baut auf dem .NET-Framework auf
und kann somit von beliebigen Applikationen genutzt werden, die ihrerseits Zugriff auf das .NET-Framework haben.
Die .NET-Technologieplattform macht ScenarioAssistant zukunftssicher und kosteneffizient, denn
das .NET-Framework ist anerkanntermaßen eines der modernsten EDV-Infrastrukturen, die ständig weiter entwickelt wird.
Einer der wesentlichen Vorzüge von .NET-basierter Software ist ihre Schnittstellentransparenz.
Die Schnittstelle zwischen einer bestehenden Applikation und ScenarioAssistant ist ScenarioAssistant Component.
Die bestehende Applikation wird im Folgenden Master-Applikation genannt.
Schnittstellentechnologie
Architektonisch gesehen ist ScenarioAssistant Component eine .NET-Assembly, die
- von .NET-basierten Applikationen direkt
- von allen anderen Windows-Applikationen über die COM-Technologie
angesteuert werden kann. Wenn die Ansteuerung über COM erfolgen soll (z.B. eine Kopplung an Excel), ist die Erstellung einer Wrapper-Klasse notwendig,
die auf die Bedürfnisse der Master-Applikation zugeschnitten ist. Beispiele für diesen einfachen Vorgang stehen in der Installation zur Verfügung.
Datenaustausch
Das ScenarioAssistant-Datenmodell ist als .NET-Objektmodell in ScenarioAssistant Component realisiert. Alle zur Planung notwendigen
Vorgabedaten (Kalender, Ressourcen, Projekte und Jobablaufkonfiguration) werden über dieses Objektmodell ausgetauscht. Analog erzeugt
ScenarioAssistant Component nach einem Planungslauf ein separates Objektmodell für die Planergebnisdaten (Termine und Aufwände sowie
deren zeitliche Verteilung). Die Ergebnisse können somit einfach und transparent in die Master-Applikation zurück transportiert werden.
Die Menge der Vorgabedaten wird im Folgenden
Vorgabekonfiguration genannt. Sämtliche Daten zusammen genommen, die das
ScenarioAssistant-Datenmodell umfasst, werden
Simulation genannt.
ScenarioAssistant Component garantiert (per Konstruktion) die Datenkonsistenz der Vorgabekonfiguration.
Daher ist bei ihrem programmgesteuerten Aufbau der Daten eine Reihenfolge zu beachten, weil strukturelle Abhängigkeiten
zwischen den Daten bestehen. Zum Beispiel hat jede Ressource einen Verweis auf einen Standortkalender, der zur Definition der täglichen
Verfügbarkeit der Ressource benötigt wird. Folglich muss der Standortkalender im Objektmodell zuerst angelegt werden, so dass auf ihn bei der
Erzeugung einer Ressource verwiesen werden kann. Beim Aufbau der Vorgabekonfiguration ist die folgende Reihenfolge einzuhalten:
- Standortkalender
- Basisdaten
- Tageseinträge des Kalenders
- Ressourcen
- Basisdaten für permanente Ressourcen; Erzeugungsreihenfolge: Top-Down
- Grundlast für permanente Ressourcen
- Ausweichkapazitäten für permanente Ressourcen
- Ressourcenkalender-Tageseinträge
- Basisdaten für temporäre Ressourcen; Erzeugungsreihenfolge: Top-Down
- Grundlast für temporäre Ressourcen
- Ausweichkapazitäten für temporäre Ressourcen
- Lieferkapazitäten für temporäre Ressourcen
- Projekte
- Basisdaten für Projekte
- Basisdaten für alle Netze des Projektes
- Basisdaten für alle Vorgänge des Projektes
- Ausführende Ressourcen der Produktionsvorgänge
- Vorgangsverknüpfungen zwischen den Vorgängen, netz-intern und -übergreifend
- Istdaten
- Vorgangsbezogene Istdaten
- Ressourcenbezogene Istdaten
- Jobablaufsteuerung für den Planungslauf
- Jobkarte für den Gesamtablauf
- Jobkarten für die Steuerung der Ressourcenplanung
- Jobkarten für die Steuerung der Terminplanung (Startwertermittlung)
- Jobkarten für die Steuerung der Freigabe
Bemerkungen
- Sowohl der permanente als auch der temporäre Ressourcenbaum müssen top-down, erzeugt werden,
da jede Ressource einen Verweis auf ihre Verdichtungsressource trägt. Die Verdichtungsressource muss
dementsprechend vorhanden sein, wenn ihre Kindressourcen erzeugt werden. Oftmals ist es am einfachsten,
die Ressourcen ebenenweise zu erzeugen
- Die Projektstrukturbäume müssen analog zu den Ressourcenbäumen top-down erzeugt werden
- Vor Neuplanungen reicht es aus, die Vorgabekonfiguration zu modifizieren;
es muss also nicht stets die gesamte Konfiguration neu erzeugt werden. Oftmals werden vor zyklisch
wiederholten Planungsläufen nur die neu eingelaufenen Istdaten ergänzt, so dass die Planergebnisdaten
auf der Basis des besten Wissensstandes generiert werden können
- Die Planergebnisdaten können in beliebiger Reihenfolge abgerufen werden
Datenzustände
Da sich der Planstand der Projekte und Ressourcen bis zum Abschluss sämtlicher Projekte der Simulation verändert, muss der Gesamtzustand
der Simulation zwischen den sich zyklisch wiederholenden Planungsläufen gespeichert werden. Andernfalls stünde er nicht als Ausgangszustand
für den nächsten Planungslauf zur Verfügung.
Wie im .NET-Framework üblich geschieht die Konservierung des Zustandes durch Serialisierung. Nach Aufruf einer Serialisierungs-Methode
gibt ScenarioAssistant Component einen Stream zurück, der seinen aktuellen Datenzustand repräsentiert. Dieser kann in einer Datei oder
Datenbank gespeichert werden. Zur Wiederherstellung wird der Stream nach dem Auslesen aus einer Datei oder Datenbank einfach einem
ScenarioAssistant Component-Konstruktor übergeben. Dies wird Deserialisierung genannt. Je nach Datenmenge können die Serialisierung
und die Deserialisierung zwischen Sekundenbruchteilen und mehreren Minuten beanspruchen.
Insbesondere können natürlich die einzelnen Gesamtzustände der Simulation aufbewahrt werden, um Zeitreihen zu bilden. Z.B. die
Meilenstein-Trend-Analyse baut auf solchen fortgeschriebenen Planzuständen einzelner Projekte einer Simulation auf.
Ablauf
Eine Job-Session läuft
synchron ab, d.h. der Ablauf der Master-Applikation wird unterbrochen,
bis die Job-Session beendet ist.
Hinweis
ScenarioAssistant Component ist
nicht thread-save. Das heißt, falls die Master-Applikation mehrere Threads zur Parallelisierung
von Abläufen verwendet, muss die Master-Applikation selbst für die korrekte Koordination der Threads sorgen, um die Datenkonsistenz
zu garantieren! Während eines Jobs dürfen weder die Daten der Vorgabekonfiguration noch evtl. bereits vorhandene Planergebnisdaten
geändert werden.
Meldungen
Die während eines Jobs generierten Meldungen sind leicht über das ScenarioAssistant Component-Objektmodell abrufbar.
Details können den Beispielen entnommen werden.
Ihre Bewertung: Diese Seite...
Wenn Sie möchten, senden Sie uns gerne eine
E-Mail mit Ihren Anmerkungen.