ixCMF im Umfeld einer Simulation von Supply Netzwerken II

In einem früheren Beitrag hatten wir über den anstehenden Einsatz von PHP5 sowie ixCMF in einer "Supply Chain"- oder besser "Supply Netzwerk"-Simulation berichtet. Siehe:

ixCMF im Umfeld einer Simulation von Supply Netzwerken I

In der letzten Woche hatten wir eine interessante Testrunde mit unserem Auftraggeber für das Core-Programm der beauftragten "Supply Netzwerk Simulation". Als Testaufgabe wurde gestellt, für ein Netzwerk mit folgenden charakteristischen Merkmalen eine zeitabhängige Propagationsrechnung durchzuführen:

  • 60 Zeitschritte,
  • ca. 2 * 65 Haupt-Knoten,
  • ca. 2 * 250 unterschiedliche logische Pfadsegmente zwischen den Haupt-Knoten,
  • ca. 19000 individuelle logische Pfade durch das Netz,
  • logische Tiefe der Knotenstruktur > 9,
  • 3 zu propagierende Größen,
  • ca. 80 Zeitschritte

Auf einem Laptop mit Opensuse 12.3, Apache2 mit PHP 5.4, MariaDB und einer Hardware mit I7 3632 Quad Mobile Prozessor, 16 GB RAM und einer schnellen SSD haben wir

  • die logische Struktur-Analyse des Netzwerks samt einer Analyse aller möglichen Pfade in 15 Sekunden
  • und den eigentlichen Simulationslauf auf dem 3-dimensionalen Netz-Zeit-Gitter in unter 3 Sekunden

fehlerfrei bewältigt.

Dabei wurden im Schnitt nur zwei Prozessorcores belastet. Der Speicherbedarf des PHP-Programms betrug ca. 60 MB. Bzgl. der Datenbanktransaktionen, die zur Abspeicherung der berechneten Daten erforderlich sind, konnten wir zeigen, dass die SSD auf einem Laptop bereits eine Peak-Performance im Bereich von mehreren Tausend (einfachen) Transaktionen per Sek. ermöglicht. Auf einer anderen über den zugehörigen Linux Host gut gepufferten virtuellen LAMP-Maschine mit nur einem einzigen CPU Core (Quad 9950 auf dem Host / Raid-System mit virtio-Zugriff der KVM-Guests) haben wir entsprechend ebenfalls Insert-Raten im Bereich von über 20K Inserts pro Sekunde bei kleinen Datengrößen pro Record gemessen.

supp_chain_2_600

Dies alles hat uns und unserem Auftraggeber gezeigt, dass wir auf dem richtigen Weg sind. Bereits ein nur ansatzweise optimiertes PHP-Programm bietet auf aktueller Hardware genügend Perfomance-Reserven nicht nur für einzelne sondern ganze Ketten von vielen sukzessiven Simulationsläufen. Zwischenzeitliche Kritik, das ganze System sei allein aus Performance-Gründen in Java zu entwickeln, konnten wir dadurch weitgehend entkräften. Die eigentlich zu stellende Frage wäre aus unserer Sicht zudem eher die gewesen, ob man bestimmte Komponenten des Core-Systems nicht besser hätte in C (mit embedded SQL) darstellen sollen.

Nächste Schritte bestehen nun in einer Erweiterung der im Simulationslauf zu lösenden Aufgaben und einer Erweiterung des Transportes der zu verfolgenden Größen. Für das zu entwickelnde User-Interface zur Kontrolle einer Sequenz von Simulationsläufen wird ixCMF in wachsendem Umfang zum Einsatz kommen.

ixCMF im Umfeld einer Simulation von Supply Netzwerken I

Im Auftrag eines Supply Chain Beraters entwickelt die Fa. anracon zur Zeit Prototypen zur Durchführung von logischen und statistischen Analysen von Supply Netzwerken und zur zeitabhängigen Simulation solcher Netze.

Komplexe Netzwerke in mehreren Dimensionen

"Supply Chain"-Prozesse entfalten sich heute weniger als einzelne lineare Ketten, sondern als Prozesse in komplexen Netzwerke aus verzahnten Pfadsegmenten und verarbeitenden Einheiten für die Transformation von Zwischenprodukten. Dabei spielen die Zeitabhängigkeit der Erzeugung von Zwischen- und Endprodukten sowie die Zeitabhängigkeit des zugehörigen Transportes eine entscheidende Rolle.

Die Rückberechnung von Konsequenzen aus Kunden-Anforderungen auf die zeitgerechte Produktion im Supply Netzwerk erfordert zeitabhängige Simulationen von Netzen, die nur im Ein- und Ausgangsbereich baumartigen Strukturen ähneln. Im Hauptbereich entsprechen moderne Supply Netze vielmehr voll entwickelten Netzwerken mit Knoten, die auf vielfältige Weise miteinander verbundenen sein können.

Rückkopplungen erzeugter Zwischen-Produkte in bestimmte verarbeitende Knoten verkomplizieren die logische Struktur und heben "natürlich" erscheinende geometrische Knotenanordnungen, die sich auf die produzierenden Einheiten beziehen, hinsichtlich einer strukturellen, logischen Ordnung materialabhängiger Pfade auf. Den gleichen Effekt haben produktabhängige Zeitverschiebungen. Die logische Abfolgestruktur entspricht nicht mehr der physikalischen Knotenanordnung von Produktionseinheiten sondern tiefer liegenden Ordnungsstrukturen, deren Knoten Punkte einer komplexen, hoch entwickelten mehrdimensionalen Netzstruktur sind.

Entwicklung des Core-Algorithmus

Dr. Ralph Mönchmeyer ist z.Z. maßgeblich an der Entwicklung eines Core-Algorithmus zur logischen Analyse solcher Netzwerke, zur Simulation dynamischer Gleichgewichte zu vorgegebenen Produktionsniveaus und zur Simulation der Auswirkungen zeitlich veränderlicher Kundenanforderungen auf das Netz beteiligt. Das gesamte System wird zwar datenbankgestützt laufen; wesentliche Operationen werden jedoch auf komplexen Array-Strukturen im Speicher erfolgen. Hier kommt einerseits die Erfahrung von Dr. Mönchmeyer im Umgang mit komplexen numerischen Simulationen physikalischer Systeme als auch die Erfahrung mit weborientierten Spachen wie PHP zum Tragen.

Einsatz von PHP und ixCMF

Ungewöhnlich ist in diesem Zusammenhang der Einsatz von PHP 5. Sieht man als Ziel aber eine Software, die im Web später ggf. als SaaS angeboten werden soll, so bekommt diese Anforderung Sinn. Ferner spielen die guten Möglichkeiten von PHP zur Anbindung an Datenbanken, zur Darstellung von Webservices sowie zur Erzeugung von Grafiken eine Rolle.

Da PHP eine rel. "langsame" Sprache ist, ist auf Programmoptimierung und Performance großen Wert zu legen: Einfache realistische Netze enthalten bereits mehrere zehn-tausend unterschiedlicher Pfade zwischen Ausgangs- und Eingangsknoten. Erste Simulationsrechnungen zeigen, dass die erforderlichen Zeiten zur Analyse und Simulation auch ohne künstliches Threading und Parallelisierung auf Webservern bereits im gewünschten Zielkorridor liegen.

Was hat das Ganze mit ixCMF zu tun?

Bzgl. der Kernalgorithmen fast nichts. ixCMF hilft jedoch bereits jetzt bei der strukturierten Verwaltung von Parameter- und Strukturtabellen und der webbasierten Darstellung von Ergebnistabellen. Ferner wird die Veränderung von Schlüsselwerten für Vergleichssimulationen erleichtert.

In späteren Ausbaustadien wird ixCMF jedoch eine Rolle bei der Erzeugung kundenspezifischer Webseiten und des Aufbaus eines generellen User-Interfaces zur Steuerung von Simulationsläufen spielen.

Unabhängig davon freuen wir uns, dass ixCMF schon heute die Handhabung der komplexen Tabellen, in denen die Struktur und Parameter des Supply Netzes erfasst werden, unterstützen kann.

Erneuerung der Applikation „Stellenanzeigen“

Seit der Version 1.0 des ixCMF-Frameworks gibt es eine Applikation, mit der mittelständische Unternehmen auf einfache Weise Stellenanzeigen in ihre Website integrieren können. Diese Applikation wird z.Z. für einen Kunden erneuert und an das aktuelle Framework 4.0 angepasst. Dabei wird u.a. dafür gesorgt, dass die Stellen Niederlassungen (in anderen Orten) zugeordnet werden können. In der Web-Anzeige wird ein entsprechender Filter nach der Niederlassung angeboten.

Kennzeichen der bisherigen Applikation

Die Applikation erlaubt das Erfassen bestimmter charakteristischer Felder zur Beschreibung der Stelle wie etwa :

Berufsgruppe, erforderliche Qualifikation, ab wann, zeitl. Umfang, Beschreibung, Ansprechpartner ... etc...

Zu den erfassten Inhalten verschiedener Stellenangebote werden folgende Arten von Web-Seiten generiert:

  • eine listenartige Übersicht zu allen angebotenen Stellen
  • eine Einzelseite zur Darstellung einer aus der Liste ausgewählten Position
  • eine generierte und ausdruckbare PDF-Datei mit allen erforderlichen Informationen

Die Erfassungsmasken entsprechen dabei den Masken des ixCMF des FW 1.0. Die Stellenapplikation kann an das ixCMF-User- und Rechte-System angebunden werden.

Bislang konnten nur Stellen-Anzeigen für genau zwei unterschiedliche Niederlassungen erfasst werden.

Kennzeichen der überarbeiteten Applikation

Die Überarbeitung erfolgt in folgenden größeren Schritten:

Zwischenlösung (bis ca. 20.08.)

  • Nutzung der Pflege-Masken (Stretch-Layout), Funktionalitäten und Webseitengeneratoren des FW 4.0
  • Technische Anpassung der Schemata und Datenbank-Tabellen an das FW 4.0. Damit wird die spätere Erfassung weiterer Freitextfelder und von Bildern vorbereitet.
  • Künstliche Einschränkung der Erfassungsfelder auf das bisherige Spektrum.
  • Aufbau einer vollständigen verzahnten Master-Detail-Hierarchie aus drei Applikationen: Für die Erfassung/Nutzung von Orten und Niederlassungen sowie die eigentliche Stellenapplikation. Damit können Kunden ihre Stellen vorhandenen Niederlassungen anderer ixCMF-Anwendungen zuordnen oder in einer Stand Alone Umgebung schnell Orte und Niederlassungen erfassen und dann den Stellen zuordnen.
  • Filter nach der Niederlassung in den Pflegemasken der Stellenbearbeitung
  • Filter nach der Niederlassung in den generierten, öffentlich zugänglichen Webseiten
  • Herstellung der Lauffähigkeit in älteren Umgebungen ixCMF V2.0 oder V3.0.
  • Ablösung der bisherigen Anwendung durch die Zwischenlösung.

Standard-Kundenlösung (bis ca. 30.09.)

  • Erweiterung der FPDF-basierten PDF-Generatoren zur Behandlung und Formatierung von Aufzählungen in erfassten Texten. Dabei werden Blocksatz-Darstellungen inkl. evtl. vorhandener Bold- und Italic-Formatierungen beachtet. Letzteres ist in FPDF ja ein grundsätzliches Problem. Hiermit werden die bisherigen Formatierungsmöglichkeiten der PDF-Generatoren des IxCMF V4.0 grundsätzlich erweitert.
  • Erweiterung der PDF-Generatoren für Stellen zur Behandlung erfasster Bilder, die Freitext-Feldern zugeordnet sind.
  • Freischaltung der Erfassung der Standard-Freitext-Felder mit Bildern des FW 4.0.
  • Erfassung von frei positionierbaren Bildern für die Stellenpräsentation auf den Webseiten zur Einzelansicht einer Webseite. (Diese Bilder werden im PDF ignoriert.)
  • Erfassung von Layout-Varianten für die Webseiten zur Darstellung einer einzelnen Stelle. (Layout-Varianten werden im PDF ignoriert).

Erweiterte Kundenlösung (bis ca. 30.11.)

  • Automatische Erfassung neuer Berufsgruppen in einer Datenbanktabelle / Auswahl in der Pflege per Select-Box
  • Kalender-Widget zur Erfassung von Datumsinformationen
  • Berücksichtigung der drei Basislayouts für die Web-Einzelpräsentation in Form von drei Varianten der PDF-Generatoren.
  • Berücksichtigung von 3 frei positionierten Bildern im PDF.

Zusammenfassung

Es handelt sich um ein mittleres PHP5-Projekt, mit dem die bisherige Stellenapplikation erneuert, auf mehrere Niederlassungen erweitert und um attraktive Features erweitert wird. Die kommenden zwei Anwendungsvarianten können im Verbund mit anderen ixCMF-Anwendungen betrieben werden oder sie lassen sich durch uns als Einzelapplikationen in vorhandene statische oder PHP-basierte Websites integrieren. Voraussetzungen sind PHP 5.1 oder höher, MySQL 5, die Basisklassen des FW 4.0 und applikationsspezifische Dateien.