Wir l[i]eben Datenbanken

Produkte

PMS (Pattern Match Services)

Ein großes Problem bei Softwaremigrationen ist oftmals die Analyse des bestehenden Quell­codes. Dazu kommt als weitere Aufgabe die Transformation des Quellcodes in eine neue Sprache. Infolytics hat daher für Migrationen ein universelles Werkzeug entwickelt: PMS.

Mit PMS lassen sich formale Texte, wie 3G-Sprachen, JCL und SQL auf einfache Weise zerlegen und transformieren. Dieses Werkzeug bildet die technische Basis für Software-Migrationen.

Die Pattern Match Services (PMS) sind ein mächtiges Toolset zur Analyse von beliebigen Quellen wie Programmen, Skripten, Textdateien etc. mit Hilfe von Patterns. PMS kann aber mit Hilfe der Pattern nicht nur gematchte Stellen finden, sondern aufgrund der Fundstellen die Quelle auch transformieren oder auf Basis derselben neue Zieldateien generieren. So wurde beispielsweise für ein Kundenprojekt mittels PMS ein Konverter entwickelt, der 3000 JSP-Programme (Jackson Structured Programming) automatisiert in strukturiertes COBOL umwandeln konnte.

PMS lässt sich überall dort sinnvoll einsetzen, wo Programme oder andere Quelldateien systematisch durchforstet und als Ergebnis der Analyse automatisiert bearbeitet werden sollen. Die gängigsten Anwendungsfälle sind die

  • Quellcode-Migration von einer Programmiersprache in eine andere (z.B. Assembler nach COBOL),
  • die Abbildung von Quellen von einem »Dialekt« auf einen anderen (z.B. ADABAS D SQL in MaxDB SQL) oder
  • die Transformation von Datentypen in Programmen (z.B. 2-stellige in 4-stellige Jahreszahl oder 4-Byte in 8-Byte Integer).

Aber auch eine intelligente Volltextsuche mit anschließender Klassifizierung und/oder Indizierung der Dokumente (z.B. HTML- oder XML-Dateien) lässt sich mit Hilfe von PMS einfach bewerkstelligen. Die Transformation bzw. Generierung der Zieldokumente kann wiederum durch komplexe Regeln gesteuert werden — beispielsweise um sicherzustellen, dass das Ergebnis einer vorgegebenen Grammatik entspricht.

Die Pattern von PMS repräsentieren Such- und Umformungsregeln. Obwohl es Ähnlichkeiten mit regulären Ausdrücken gibt, gehen diese Regeln über deren Funktionalität weit hinaus. Einige Unterscheidungsmerkmale:

  • Verschachtelung von Regeln: Mit Hilfe von Pattern formulierte Regeln lassen sich beliebig tief verschachteln. Einmal definierte Pattern können wieder Bestandteil anderer Pattern sein.
  • Syntax ähnlich der (erweiterten) Backus-Naur-Form: Dadurch
    lassen sich Optionen, (ggf. genau quantifizierte) Wiederholungen und Alternativen definieren.
  • Rekursives Backtracking: Die Analyse nach dem Versuch-und-Irrtum-Prinzip stellt sicher, dass alle in Frage kommenden Lösungswege ausprobiert werden.
  • Assoziative bzw. approximative Suche: Außer exakter Suche erlauben Pattern auch näherungsweises (ggf. fehlertolerantes) Suchen. Hierfür bietet PMS die Möglichkeit zur Spezifikation eines Ähnlichkeitsmaßes.

Darüber hinaus sind Pattern in hohem Maße wartbar und lassen sich in unterschiedlichsten Kontexten weiterverwenden.

PMS wird in verschiedenen Ausbaustufen und Lizenzmodellen zur Verfügung gestellt:

  • Enterprise Version, bestehend aus Regel-Editor sowie den benötigten Komponenten für die Einbindung des generierten Codes in diverse Hostsprachen
  • Stand-alone-Entwicklerversion (Java-basiert)
  • Plugin für Eclipse
  • Laufzeitumgebung zur Ausführung von PMS-Programmen