Over 10 years we help companies reach their financial and branding goals. Engitech is a values-driven technology agency dedicated.

Gallery

Contacts

411 University St, Seattle, USA

engitech@oceanthemes.net

+1 -800-456-478-23

Die umfassende Bestandsaufnahme
Ihrer Legacy Landschaft

Jeder CIO, jeder Entwicklungsleiter hat es schon erlebt, dass in einem Projekt bereits nach wenigen Wochen die ersten unerwarteten Probleme auftauchen: Keiner hat gewusst, dass aus  Anwendung A  auch 5 Programme aus Anwendung B gerufen werden, dass die Anwendung über Umwege doch IMS nutzt, obwohl man doch sicher war, dass alles nur auf DB2 läuft, dass da eine komplexe Assembler Datumsroutine angesprochen wird, die undokumentiert, aber von essentieller Bedeutung ist und so weiter…

Am Ende wird die „kleine Änderung“ oder das Projekt doppelt so teuer und dauert drei Mal länger als geplant. Der Grund liegt in den meisten Fällen darin, dass es einfach keine Möglichkeit gab, sämtliche Beziehungen zwischen allen Objekten der Anwendungslandschaft zu sehen, egal ob Programme, Dateien, DB-Tabellen, Feldern oder Jobs. Hätte man das gewusst wäre es nicht passiert.

Das Njema Assessment

Njema ist ein umfassendes Framework, das entwickelt wurde, um vollautomatisch Quellcode und Daten regelgesteuert zu transformieren. Die ersten Projekte hatten gezeigt, dass sie nur erfolgreich sein können, wenn man vor Projektbeginn wirklich alles über den umzustellenden Code weiß. Njema enthält Parser für eine Vielzahl von Sprachen – es kann COBOL und PL/I genauso lesen wie Natural, Job Control, Assembler, Scheduler Dateien, SDF oder REXX. Dadurch ist das Produkt in der Lage, eine vollständige Analyse durchzuführen und eine Datenbank aufzubauen, in der alle Objekte einer Anwendungslandschaft mit ihren Eigenschaften und Beziehungen enthalten sind. Inzwischen wurden mehr als 400 Millionen Zeilen mit Njema analysiert und ein großer Teil davon in andere Sprachen und Zielarchitekturen transformiert.

Einsatzgebiete

    • Projektvorbereitung und -begleitung
      • Einführung neuer Softwarepakete
      • Auslagern von Anwendungen in die Cloud (Cloud Enablement)
      • Entwicklung neuer Eigenanwendungen
      • Migration
      • Software-Modernisierung usw.
    • Unterstützung der Programmwartung
    • Projektbegleitende Qualitätssicherung
    • Vollständigkeit des Quellcodes sicherstellen
    • Eruieren von nicht verwendeten Entitäten, z.B. Programme, COPY Books, Jobs usw.
    • Unterstützung des Programmentwurfs durch interaktive Visualisierung der bestehenden Vernetzung von Programmcode und Daten
    • Entdecken von homonymen Entitäten, d.h. Quellcode-Objekten gleichen Namens, aber verschiedenen Inhalts
    • Untersuchung von sporadischen Datenfehlern oder Systemabstürzen
    • Erstellen von Dokumentation durch
      • Analyse des aktiven Quellcodes
      • Fehlenden Quellcode aufspüren
      • Unterstützung von Testaktivitäten

Die Modernisierung von Anwendungslandschaften

Das Njema Assessment spielt eine essentielle Rolle bei der Transformation ganzer Anwendungslandschaften, sei es für die Migration auf neue Betriebssysteme, für die Verlagerung in die Cloud, zum Outsourcing oder ganz allgemein für die Modernisierung.

Die produktive Anwendungslandschaft unserer Kunden besteht aus Tausenden von Software-Entitäten, Programme, COPY-Books, Jobs, Scheduling Dateien, Katalogen, Online Transaktionen, Dateibeschreibungen, Datenbanktabellen usw. Immer neue Änderungen mussten eingebaut un neue Entitäten hinzugefügt werden.

Der Zeitdruck unter dem dies geschah, verhinderte oft eine saubere Integration der Änderungen in die bestehenden Systeme. Mit den Experten, die in den Ruhestand gingen, hat Ihr Unternehmen jedoch auch deren Wissen verloren, was zu neuen Unsicherheiten führte und dem Bestreben, möglichst nichts von der „alten“ Software anzufassen, sondern lieber neue Teile anzufügen, oft in anderen „modernen“ Sprachen geschrieben.

Der Einsatz von zugekauften Softwarepaketen führte dazu, dass manche Daten in Datenbanken bereitgestellt werden mussten. Dann war man oft gezwungen, die alten Dateien zusätzlich parallel in einer zweiten Form zu führen.

Über die Jahre hinweg wurde die Anwendungslandschaft zu einem monolithischen Gebilde, bei dem man nie wusste, was mit Anwendung A passiert, wenn man ein Element in Anwendung B oder Datenbank C änderte.

Modernisierung tut Not, weil Wartung und Entwicklung sonst immer teurer werden und das Risiko von Produktionsausfällen kontinuierlich steigt. Das Njema Assessment gibt Ihnen die Klarheit über die innere Struktur der Anwendungslandschaft und versetzt Sie in die Lage, eine Modernisierung durchzuführen: risikoarm und planbar betreffend Kosten, Zeit und Aufwand. Modernität ist per se kein Mehrwert – eine sauber strukturierte Anwendungslandschaft hingegen schon: sie spart Zeit und Geld. Jeden Tag.

Angenehme Effekte sind:

    • Ihr Projekt wird in der geplanten Zeit und gemäß Budget durchgeführt
    • die laufenden Kosten (TCO) sinken durch die Modernisierung drastisch (50% und mehr sind keine Seltenheit)
    • Wartung und Neuentwicklung sind mit den Kenntnissen und Fähigkeiten der heute an Bord befindlichen Mitarbeiter möglich. Es müssen keine teuren Externen dafür eingekauft werden.

Welche Möglichkeiten eröffnet das Njema Assessment?

Das Assessment macht alle Verflechtungen innerhalb der bestehenden quasi-monolithischen Anwendungslandschaft sichtbar. Daraus ergibt sich unmittelbar die Möglichkeit, zuverlässig zu erkennen, welche Schritte notwendig sind, um das gesamte System ohne Risiko neu zu strukturieren.

Diese Maßnahmen sind auf dem aktuellen System durchzuführen. Sie gliedern sich in 3 Gruppen:

Homogenisieren

    • Reduzieren Sie die Anzahl der applikatorisch eingesetzten Programmiersprachen auf eine oder höchstens zwei. Assembler muss unbedingt durch eine höhere Sprache ersetzt werden. 4GL Sprachen können oft nach Cobol portiert oder durch Report Generatoren ersetzt werden.
    • Im gesamten System sollte nur noch eine einzige Datenbank eingesetzt werden. Dies spart menschliche Ressourcen und Lizenzkosten.
    • In vielen Systemen finden wir beispielsweise CICS zusammen mit IMS/DC, meist verursacht durch die Fusion zweier Unternehmen. Es sollte nur noch ein einziger OLTP Monitor verwendet werden.
    • Auf allen Ebenen darf es für bestimmte Aufgaben nur noch ein eingesetztes Hilfsmittel gibt, z.B. nur ein Screen Painter, nur ein Scheduler, nur eine Scriptsprache, nur einen Sort usw.

Modularisieren

Die graphische Aufbereitung im Assessment zeigt alle Verknüpfungen zwischen Software- und Daten-Entitäten. Oft erkennt man dabei, dass eine geplante Paketierung Hunderte von Verbindungen zwischen Programmen untereinander sowie Programmen und Daten durchtrennen würde.

    • Die Anzahl Verbindungen zwischen Programmen verschiedener Anwendungen muss stark reduziert werden. Dafür gibt es viele Möglichkeiten, die jedoch fallweise völlig unterschiedlich sind. Vielfach kann eine ganze Gruppe von Verbindungen nach außen auf einen Service abgebildet werden.

Klassische Dateien sollten in die Datenbank migriert werden. Die Datenbank führt die Sicherung und das Rückladen von Daten im Fehlerfall automatisch durch. Bei klassischen Dateien hingegen, müssen dafür Jobs gestartet und Administratoren zum Einsatz kommen.

    • Reine Arbeitsdaten können in den meisten Fällen durch In-Memory Dateien ersetzt werden.
    • Funktionen, die von mehr als einem Programm genutzt werden, werden in ein Common Paket verschoben und als Service aufgerufen.

Redundanzen entfernen

    • Das Assessment weist alle Software-Entitäten aus, die nicht angesprochen werden. Diese „toten“ Entitäten werden entfernt.
    • Dasselbe gilt für viele Dateien, die nur geschrieben, aber niemals gelesen werden. Ausnahme: Druck-Dateien.

Nach Abschluss dieser Maßnahmen ist die Anwendungslandschaft strukturiert und so positioniert, dass Aufwand, Kosten und Dauer eines anstehenden Projekts wie Re-Hosting, Cloud Enablement, Outsourcing, Integration von Drittsoftware, Entwicklung einer Eigenanwendung sicher einzuschätzen sind. Durch den Wegfall bestimmter Technologien sinken nicht nur die laufenden Kosten, sondern auch Aufwand und Risiko für Wartung und Entwicklung.

Vier Einsatzszenarien

Das Njema Assessment kommt in vier unterschiedlichen Varianten zum Einsatz:

Basis: Dienstleistung von EasiRun. Schafft in sehr kurzer Zeit einen Gesamtüberblick über alle Entitäten in Form eines Berichts (PDF und CSV-Dateien). Verifiziert die Konsistenz der gesamten Anwendungslandschaft.

Erweitert: Die Ergebnisse aus Szenario „Basis“ werden in eine graphische Datenbank (Neo4J) eingespielt. EasiRun präsentiert Verknüpfungen und Eigenschaften aller Entitäten der Anwendungslandschaft und analysiert die graphischen Daten vor Ort gemäß Kundenanforderungen (Ergebnis: Graphiken, Reports und exportierte Daten). Dieses Variante sollte vor größeren Projekten immer durchgeführt werden.

Permanent: EasiRun stellt das Njema Assessment als Cloud-Lösung zur Verfügung. Der Kunde kann selbständig das Entitäts-Repository verwalten und Abfragen an die graphische Datenbank durchführen. Diese Variante wird projektbegleitend und zur generellen Qualitätssicherung eingesetzt.

Dynamisch: Die Ergebnisse aus der statischen Analyse werden durch Laufzeitanalysen mit dem Produkt SMARTFlow angereichert. Diese Daten stehen dann ebenfalls für Abfragen an das graphische System zur Verfügung. Das Szenario ergänzt die Szenarien „Erweitert“ und „Permanent“. Die Szenarien werden im Folgenden beschrieben.

Einsatzszenario „Basis“

EasiRun liest den vollständigen Bestand an Quellcode in das Njema Repository ein und führt den Analyselauf durch. Ein solcher Lauf dauert beispielsweise bei 50 Millionen Zeilen etwa 4 Stunden. In der Regel zeigt der erste Lauf, dass Entitäten fehlen oder sonstiger Klärungsbedarf besteht. Der fehlende Code wird nachgeliefert und eingespielt. Falls eine Entität nicht zu beschaffen ist, wird ihre Eigenschaft auf den Status Alien oder Known Alien gesetzt und die Verarbeitung wiederholt. Je nach Situation kann dieses Prozedere 2 bis 4 Wochen dauern. Als Ergebnis erhält der Kunde einen umfassenden Report als PDF. Zusätzlich werden die Ergebnisse als CSV-Datei zur Verfügung gestellt.

Anmerkungen

    • Da wir niemals Kundendaten veröffentlichen, wurden die Berichte nur anhand von Testdaten erstellt.
    • Ein Pool ist eine logische Gruppierung von Entitäten, z.B. alle PL/I-Programme, oder alle Prozeduren der Anwendung XY
    • Ein Alien ist eine Entität, von der kein Quellcode verfügbar ist und deren Zweck wir nicht kennen
    • Ein Known Alien ist eine Entität, deren Funktion wir kennen, die aber nicht im Quellcode vorliegen muss, z.B. ein Utility
    • Ein Plug ist ein Konstrukt, das eine Verbindung sucht, ein Socket repräsentiert den gesuchten Punkt der  Verbindungspunkt

Der Bericht enthält weiterhin die folgenden Informationen:

    • Welche Entitäten werden benutzt (COPY, INCLUDE, C Headers, Prozeduren usw.)
    • Welche Entitäten fehlen, welche sind überflüssig („tot“)
    • Spezielle Auswertungen zu Problem- oder Fehlerklassen zur Vorbereitung einer Code-Transformation

Die Variante „Basis“ wird gerne dort genutzt, wo der Kunde bereits eine gute Kontrolle über seinen Quellcode hat. Es dient der Absicherung und schützt vor späteren Überraschungen wie auch der Ermittlung des Aufwands eines geplanten Projekts.

Einsatzszenario „Erweitert“

Das Szenario enthält die Leistungen aus Szenario „Basis“. Zusätzlich wird aus der Njema Datenbank ein Export generiert, der in Neo4J eingelesen wird. Neo4J ist ein System zur Visualisierung von sog. Graphen, d.h. von Objekten und deren Beziehungen.

Die Ergebnisse enthalten eine quantitative und qualitative Analyse des Codes:

    • Viele Objekteigenschaften wie Typus, Sprache, Zugehörigkeit zu Pools
    • Art der Verknüpfung mit anderen Objekten, z.B. CALL, ENTRY, EXEC, COPY, READ, WRITE usw.
    • Verknüpfungshierarchien, ermittelt über Abfragen an Neo4J
    • Ausweisen der Zugriffe und Zugriffsarten auf Dateien und Datenbanken
    • Qualitative Kennzeichen des Codes: Anzahl Sprungbefehle, Redefinitionen, RENAMES (COBOL), COPY Book Nesting, ODO (COBOL), Micro Focus Conditional Code, CALL Signaturen u.a.

Das übergebene System enthält eine große Zahl von vordefinierten Queries, erlaubt aber auch die Formulierung eigener SQL-Abfragen. EasiRun unterstützt den Kunden bei weiteren Abfragen an das System und bei der Erzeugung von zusätzlichen Metadaten aus der Neo4J Datenbank.

Einsatzszenario „Permanent“

Dieses Szenario ist für größere Projekte wie Migrationen, Modernisierungen oder die Entwicklung von Eigenanwendungen entworfen. Der Kunde erhält Zugriff auf eine Cloud-basierte Umgebung, in der sich seine Software-Entitäten befinden sowie die kundenspezifische Neo4J Installation. So ist er in der Lage, seinen jeweils aktuellen Softwarestand hochzuladen und in eigener Verantwortung die Abfragen an das graphische System durchzuführen.

EasiRun unterstützt durch

    • Schulung in der Nutzung dieser Technologie und der verfügbaren Prozesse
    • Unterstützung bei der Arbeit mit dieser Umgebung
    • Einspielen von Updates für das Njema Assessment Paket

Ergänzung „Dynamisch“

Die Szenarien „Basis“ bis „Permanent“ analysieren den Code statisch. Das bedeutet im Extremfall, dass eine Verknüpfung wie beispielsweise ein CALL zur Laufzeit aus datentechnischen Gründen niemals ausgeführt wird. Eine Laufzeitanalyse untersucht das dynamische Verhalten der Software unter produktiven Bedingungen. Sie erkennt Situationen im Code, die auf ungenutzte Objekte und Verbindungen hindeuten. Durch Einsatz von SMARTFlow wird ein Verwendungsnachweis für Programme, Daten und (vom Kunden bestimmte) Felder erstellt. Dieser Verwendungsnachweis wird in komprimierter Form in die graphische Datenbank aufgenommen und kann danach in die Neo4J-Queries einbezogen werden.

Wir wollen eine große Menge Code entfernen – wie sollen wir vorgehen?

„Würde es nicht eine Menge Geld und Zeit sparen, wenn wir zuerst selbst bestimmen, welche Programme nicht mehr gebraucht werden und dann den Rest zur Analyse bzw. Transformation geben?“

      • Bitte bedenken Sie: In den vergangenen 20 Jahren hatten wir Dutzende von Kunden, die versuchten, mit Bordmitteln herauszufinden, welche Programme, Makros, COPY Bücher, Dateien usw. für ihr Migrationsprojekt benötigt werden.
      • Das hat NIE funktioniert! Im Gegenteil: man war stets frustriert, so viel Zeit und Aufwand investiert zu haben, um dann ein unbrauchbares und fehlerhaftes Ergebnis zu erzielen.
      • Wenn wir in der Folge das Assessment eines derart „reduzierten“ Systems durchführten, fanden wir heraus, dass unser Kunde oft Hunderte von Entitäten übersehen und eine große Zahl von Objekten für „tot“ erklärt haben, obwohl sie noch benötigt werden. Dies ist in der Komplexität der Systeme begründet, weil z.B. ein COPY ein weiteres COPY enthält, das dann in ein Makro oder ein anderes Programm verzweigt, das seinerseits mit einem anderen Objekt verbunden ist usw. – es gibt fast unendlich viele Möglichkeiten.
      • Genau aus diesem Grund haben wir das Njema Assessment entwickelt, das Millionen von Codezeilen in beliebigen Sprachen vollautomatisch verarbeitet und ein präzises Inventar dessen erstellt, was benötigt wird und was nicht.
      • Darüber hinaus bietet sich so die Möglichkeit, dass Sie uns Startpunkte in Form von Bildschirmmasken, Transaktionscodes oder Job Namen geben, die Sie weiterhin nutzen wollen. Aus dem Njema Assessment erhalten Sie dann die exakte Liste aller Software Entitäten, Jobs, Dateien, Tabellen usw., die Sie für Ihr Projekt tatsächlich benötigen.

    Dieser Lösungsansatz ist einfach und für Sie wesentlich attraktiver, denn Sie bekommen alle notwendigen Informationen in sehr kurzer Zeit und zu Kosten, die weit unter Ihrem eigenen Aufwand liegen.

    Alles, was Sie tun müssen, ist den gesamten Code in den Assessment Prozess zu geben, sei es in Cobol, PL/I, Assembler oder einer anderen Sprache, einschließlich JCL für den Batch-Teil und Definitionen wie CICS FCT und PCT, IMS PSB und PCB usw.

    Sobald wir diese Informationen haben, liefern wir in kürzester Zeit die exakten Daten für Ihr Projekt.