Im vergangenen Jahr hat IBM gezeigt, wie AI die sich wiederholende Arbeit der Softwarewartung durch Aktualisierung von Legacy-Code erledigen kann . Das Unternehmen hat jetzt AI-basierte Techniken zur Neucodierung von Legacy-Anwendungen eingeführt, die auf modernen Computerplattformen ausgeführt werden können.
Aktuelle IBM-Projekte namens Mono2Micro und Application Modernization Accelerator(AMA) stellen Anwendungsarchitekten die Tools zum Aktualisieren und Wiederverwenden älterer Anwendungen zur Verfügung. Laut Nick Fuller , Director Hybrid Cloud Services bei IBM Research, tragen diese Initiativen dazu bei, AI näher an den Punkt zu bringen, an dem AI automatisch von COBOL nach Java migriert werden kann.
Fuller merkt jedoch an, dass diese fortschrittlichen AI-basierten Ansätze derzeit nur in der Lage sind, alten Maschinencode monolithischer Programme in separate Mikrodienste aufzuteilen. Ein weiterer Schritt bleibt, um eine vollständige Übersetzung von einer Programmiersprache in eine andere abzuschließen, da das AMA-Toolkit, obwohl es zur Modernisierung von COBOL entwickelt wurde, derzeit nur einen weiteren Schritt in diesem Prozess bietet. "Das Übersetzen von einer Sprache in eine andere ist eine grundlegende Herausforderung für AI, an der wir arbeiten, um einen Teil dieses Legacy-Codes in einer modernen Programmiersprache funktionsfähig zu machen", fügte er hinzu.
In der Zwischenzeit bieten die fortschrittlichen KI-Tools von IBM einige neue Funktionen. Bei Mono2Micro analysiert dieses Tool zunächst den alten Code, um alle darin verborgenen Verbindungen aufzudecken, z. B. verschiedene Komponenten in der zugrunde liegenden Geschäftslogik, die zahlreiche Aufrufe und Verbindungen untereinander enthalten. Es wäre für einen Anwendungsarchitekten sehr schwierig und zeitaufwändig, eine solche Aufgabe selbst zu erledigen.
Mono2Micro verwendet AI-basierte Clustering-Techniken, um ähnliche Codes in Gruppen zu gruppieren. Dies zeigt deutlicher, wie Gruppen von Codes interagieren. Mono2Micro akzeptiert zuerst den Code und analysiert dann den Quell- und Objektcode sowohl statisch (durch Analyse des Programms vor seiner Ausführung) als auch dynamisch (durch Analyse des Programms während der Ausführung).
Das Tool konvertiert dann die Java-basierten monolithischen Programme und die zugehörige Geschäftslogik und Benutzeroberflächen in Microservices. Durch die Umgestaltung des Monolithen in separate Mikrodienste mit bestimmten Funktionen werden die Verbindungen minimiert, die in der Software als monolithisches Programm bestanden, indem die Struktur der Anwendung geändert wird, ohne dass das externe Verhalten geändert wird.
Der Zweck des AMA-Toolkits besteht darin, zuvor entwickelte Anwendungen, die in Legacy-Sprachen (COBOL, PL / I) geschrieben wurden, zu analysieren und zu überarbeiten. Das AMA-Toolkit kombiniert die statische Analyse des Quellcodes mit dem Verständnis der Struktur der Anwendung, um ein Diagramm zu erstellen, das die Legacy-Anwendung darstellt. In Verbindung mit Deep-Learning-Techniken erleichtert dieser graphbasierte Ansatz die Datenpersistenz.
Bild: IBM Research
Bild der Mono2Micro-Schnittstelle
Die KI-Strategie von IBM befasst sich mit den wichtigsten Herausforderungen beim maschinellen Lernen, bei denen die Eingaben Code und die zu analysierenden Parameter Volumen und mehrere Werte sind. Kritische Legacy-Anwendungen enthalten normalerweise Hunderttausende bis Millionen von Codezeilen. In diesem Zusammenhang kann die Anwendung von Techniken des maschinellen Lernens (ML) auf so große Datenmengen mit dem Konzept der Einbettung effizienter gestaltet werden.
Diese Einbettungsebenen sind eine Möglichkeit, Daten in numerische Werte umzuwandeln. Der Vorteil der Einbettungsmethode besteht darin, dass Sie einer großen Codemenge mit vielen möglichen Werten einen numerischen Ausdruck zuweisen können. Das gleiche passiert zum Beispiel, wenn natürliche menschliche Sprache unter Verwendung von Vektorworteinbettungen in numerische Werte übersetzt wird. Dies erfolgt auch im Kontext eines Diagramms, da es sich um eine Codeanalyse handelt.
"Das Einbetten von Ebenen ist fantastisch, da es ohne sie schwierig wäre, etwas zu bekommen, das wie ein effizientes maschinelles Lernsystem aussieht", sagte Fuller.
Er fügte hinzu, dass im Fall der Codeanalyse das maschinelle Lernsystem jedes Mal besser Microservices für eine überarbeitete Legacy-Anwendung bietet, indem der funktionale Inhalt der Anwendung repliziert wird.
Ausführlichere Anmerkungen: "Zu diesem Zeitpunkt können Sie noch nicht ausatmen, aber 70% der Arbeit liegen hinter Ihnen, was bedeutet, dass Sie der Umgestaltung einer wichtigen Anwendung in eine Microservice-Architektur viel näher sind."