{"id":2622,"date":"2018-11-09T09:15:22","date_gmt":"2018-11-09T09:15:22","guid":{"rendered":"https:\/\/smartshifttech.org\/?p=2622"},"modified":"2023-04-13T21:41:28","modified_gmt":"2023-04-13T21:41:28","slug":"of-application-understanding-and-machine-learning-or-where-i-am-coming-from","status":"publish","type":"post","link":"https:\/\/smartshift.imagemakersdev.com\/de\/der-anwendung-verstehen-und-maschine-lernen-oder-woher-komme-ich-her\/","title":{"rendered":"Von Anwendungsverst\u00e4ndnis und maschinellem Lernen oder woher ich komme"},"content":{"rendered":"<p>Seit 25 Jahren bin ich im Bereich der Automatisierung t\u00e4tig.  Aber das war nicht der Anfang meiner Karriere. W\u00e4hrend meines Masterstudiums an der USC wurde ich zum ersten Mal mit k\u00fcnstlicher Intelligenz konfrontiert, ein Bereich, der mich sofort faszinierte.  Zu dieser Zeit gab es nur wenige Stellen, die mit k\u00fcnstlicher Intelligenz zu tun hatten, aber meine erste Stelle war tats\u00e4chlich relevant: Ich arbeitete mit regelbasierten Entscheidungssystemen. Seitdem hat sich der Bereich der k\u00fcnstlichen Intelligenz stark weiterentwickelt, zumeist ohne f\u00fcr Schlagzeilen zu sorgen.  Erst in den letzten Jahren hat er wieder gro\u00dfe Aufmerksamkeit erregt, insbesondere der Bereich des maschinellen Lernens. Das erinnert mich an den Hype, den das Internet und \"dot com\" in den 1990er Jahren ausgel\u00f6st haben. Blase gef\u00e4llig? Nur dieses Mal haben die Fortschritte in diesem Bereich eine solide Grundlage geschaffen, um die Expansion des maschinellen Lernens zu unterst\u00fctzen.  Mein zweiter Job f\u00fchrte mich in die Welt des Anwendungs- und Sprachverst\u00e4ndnisses ein, und in diesem Bereich bin ich nun schon seit vielen Jahren t\u00e4tig. In dieser Zeit sind viele faszinierende Dinge passiert, und wie Sie sehen werden, geht es jetzt dorthin, wo ich angefangen habe. Der Kreislauf schlie\u00dft sich jetzt.<\/p>\n<p><strong>Verstehen von Anwendungen und deren Code<\/strong><\/p>\n<p>Am Anfang stand der Gro\u00dfrechner.  Leistungsstarke Ger\u00e4te, die eine enorme Anzahl von Transaktionen bew\u00e4ltigen konnten, die aber auch ihren Preis hatten.  Dann kam das \"Netzwerk als Computer\", wie Sun Microsystems der Welt verk\u00fcndete. Die Unternehmen hatten nun Alternativen zu den Mainframe-Monolithen.<\/p>\n<p>Es gab jedoch ein Problem.  Erfolgreiche Unternehmen hatten viel Geld in die Entwicklung von Mainframe-Prozessen investiert, die ihnen einen Vorsprung verschafften, und nat\u00fcrlich Unmengen an benutzerdefiniertem Code, der dazu geh\u00f6rte.  Was sollte man nun mit all dem benutzerdefinierten Code machen? Der Wille war stark, aber der Code war schwach, propriet\u00e4r und inkompatibel. Und wir sollten nicht vergessen, dass relationale Datenbanken noch nicht als selbstverst\u00e4ndlich galten.  Hierarchische und Netzwerk-Datenbankverwaltungssysteme waren stark und, wenn Sie mich fragen, basierten sie auf eleganten Konzepten und waren sehr gut in dem, was sie taten. Aber die Geschichte wird von den Gewinnern (neu) geschrieben, und so wurden es Server und relationale Datenbanken.<\/p>\n<p><strong>Die Rolle der Automatisierung<\/strong><\/p>\n<p>Das Wort des Tages war Migration.   Weg von den Mainframe-Monolithen, hin zu den Client-Servern.  Dies erforderte jedoch eine Aufteilung der Anwendungen auf verschiedene Ebenen, die dem Client-Server-Modell entsprachen: Front-End, Business- und Datenbankebene. Das war eine gro\u00dfe Aufgabe, denn die Herausforderung war vielschichtig:<\/p>\n<ul>\n<li>Frontend:  \u00dcbergang von Green-Screen-Terminals zu schicken grafischen Terminals mit WYSIWYG-Funktionen (ja, WYSIWYG war damals ein Feature)<\/li>\n<li>Netzwerk:  Staatlichkeit war die Norm, daher war der richtige Umgang mit dem Staat von gr\u00f6\u00dfter Bedeutung<\/li>\n<li>Datenbank: Konsistente Transaktionsabwicklung, Kompatibilit\u00e4t mit Transaktionsmanagern (nicht alle wollten oder konnten gleichzeitig wechseln)<\/li>\n<li>Neue Sprachen:  COBOL war die vorherrschende Sprache f\u00fcr die Gesch\u00e4ftslogik.  Die neue Serverwelt unterst\u00fctzte jedoch weitere Sprachen, wie C, C++ und Java.<\/li>\n<li>Betriebssysteme:  Unix und seine zahlreichen Varianten, Windows und X f\u00fcr die Front-End-Interaktion.<\/li>\n<\/ul>\n<p>Es war klar, dass ein disziplinierter Ansatz erforderlich war, um erfolgreich zu sein.  Und hier kamen das Verstehen von Anwendungen und die Automatisierung ins Spiel.  Anwendungsverst\u00e4ndnis kann f\u00fcr jeden etwas anderes bedeuten, aber hier definieren wir es als eine Methode zur Extraktion der wichtigsten Attribute und Merkmale der Anwendung.  Die Extraktion erfolgt programmatisch auf wiederholbare Weise und wird in einem Repository als Metamodell der Anwendung und ihrer Komponenten gespeichert. Die Attribute und Merkmale m\u00fcssen sorgf\u00e4ltig ausgew\u00e4hlt werden, um eine intelligente Entscheidungsfindung zu erm\u00f6glichen, wenn es an der Zeit ist, die Anwendung \"umzuschreiben\". \"Rewriting\" bedeutet eigentlich sowohl Refactoring als auch Rearchitecting.  Refactoring bezieht sich auf den Code, Rearchitecting auf die Anwendung. In unserem Fall bestand die Umstrukturierung in der Neuverteilung der Anwendungskomponenten, um dem Client-Server-Paradigma am besten gerecht zu werden. In den meisten F\u00e4llen bedeutete das Aufbrechen von Monolithen sowohl Re-Architektur als auch Refactoring.<\/p>\n<p><strong>Das objektorientierte Paradigma<\/strong><\/p>\n<p>Der meiste Code, mit dem wir es in monolithischen Systemen zu tun hatten, war in prozeduralen Sprachen oder Berichtssprachen wie COBOL geschrieben.  Ebenfalls \u00fcblich war die Verwendung von Generatoren, vor allem f\u00fcr Code, Bildschirmdefinitionen und Datenbankartefakte. Das fr\u00fche Refactoring wurde mit C durchgef\u00fchrt, der damaligen Unix-Sprache f\u00fcr Gesch\u00e4fts- und Datenbankschichten.  F\u00fcr die Front-End-Codierung war C++ bis zu einem gewissen Grad die beste Option, um die Vorteile der Windows-GUI-Funktionen zu nutzen.<\/p>\n<p>Zu Beginn des neuen Jahrtausends hat Java bei den Entwicklern stark Fu\u00df gefasst.  Inzwischen ist es auch zum \"Favoriten\" in der Unternehmensentwicklung geworden. Java wurde einem breiteren Entwicklerkreis vorgestellt und hat einige Schl\u00fcsselaspekte der Programmierung gef\u00f6rdert: objektorientierte Programmierung, Trennung von Belangen, virtuelle Maschinen, Softwarepaketierung und Interoperabilit\u00e4t.<\/p>\n<p>Durch die Verwendung eines Metamodells und eines Repositorys konnten wir eine flexible und plattformneutrale Infrastruktur und Tools aufbauen.  All dies ist unserem intelligenten Automatisierungsansatz zu verdanken, der eine steckbare Unterst\u00fctzung von Quell- und Zielsprachen und die F\u00e4higkeit, zahlreiche Plattformen zu assimilieren und optimal zu nutzen, erm\u00f6glicht<\/p>\n<p><strong>ERP und SAP(r)<\/strong><\/p>\n<p>Ein weiterer wichtiger Trend, der Mitte der 1990er Jahre an Fahrt aufnahm und seither immer st\u00e4rker wird, sind ERP-Software und -Plattformen.  Eine f\u00fcr uns als Unternehmen besonders wichtige ERP-Software war und ist SAP. Dank unseres intelligenten Automatisierungsansatzes konnten wir dessen Entwicklung in den letzten 10-15 Jahren verfolgen und werden dies auch in Zukunft tun.  Die fr\u00fchere Anwendung unserer automatisierten L\u00f6sung befasste sich haupts\u00e4chlich mit Code-Refactoring und hatte einen starken Fokus auf ABAP, die Programmiersprache von SAP ERP. Wir waren und sind immer noch dabei, um SAP-Kunden mit unserer intelligenten Automatisierung zu unterst\u00fctzen, insbesondere als SAP seine Reise zur Digitalisierung mit der Unterst\u00fctzung von In-Memory-Datenbanken, der Einf\u00fchrung von S\/4 und dem Wechsel in die Cloud begann.<\/p>\n<p><strong>Schlusswort<\/strong><\/p>\n<p>Der Beginn eines neuen Jahres ist immer eine gute Gelegenheit, Bilanz zu ziehen, nachzudenken und vorauszuplanen. Wie Sie wahrscheinlich inzwischen wissen, wiederholt sich die Geschichte.  Intelligente Automatisierung bedeutet, wachsam zu bleiben und nach neuen Chancen Ausschau zu halten. Wie ich bereits angedeutet habe, sehe ich, dass sich der Zyklus nach all den Jahren nun schlie\u00dft, vor allem aus meiner Sicht.  Ich freue mich, sagen zu k\u00f6nnen, dass wir jetzt maschinelles Lernen in unser Automatisierungs-Repository als weiteres Werkzeug einf\u00fchren, um das Verst\u00e4ndnis f\u00fcr Anwendungen zu f\u00f6rdern und unseren Tools und Kunden neue M\u00f6glichkeiten zu er\u00f6ffnen.  In diesem Sinne w\u00fcnsche ich Ihnen allen einen erfolgreichen Start in das neue Jahr und in das neue Kapitel, das Sie nun aufschlagen werden. Unser Vorsatz f\u00fcr das neue Jahr ist es, mehr Blogs \u00fcber uns, unseren intelligenten Automatisierungsansatz und die von uns verwendeten Technologien zu ver\u00f6ffentlichen.<\/p>\n<p>Niko Faradouris, leitender technischer Architekt, smartShift Technologies, Mannheim<\/p>\n<p>&nbsp;<\/p>","protected":false},"excerpt":{"rendered":"<p>Seit 25 Jahren bin ich im Bereich der Automatisierung t\u00e4tig.  Aber das war nicht der Anfang meiner Karriere. W\u00e4hrend meines Masterstudiums an der USC wurde ich zum ersten Mal mit k\u00fcnstlicher Intelligenz konfrontiert, ein Bereich, der mich sofort faszinierte.  Zu dieser Zeit gab es nur wenige Stellen im Bereich der k\u00fcnstlichen Intelligenz, aber [...]<\/p>","protected":false},"author":3,"featured_media":15035,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"content-type":"","rank_math_lock_modified_date":false,"footnotes":""},"categories":[32],"tags":[47],"class_list":["post-2622","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","tag-post"],"acf":[],"_links":{"self":[{"href":"https:\/\/smartshift.imagemakersdev.com\/de\/wp-json\/wp\/v2\/posts\/2622","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/smartshift.imagemakersdev.com\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/smartshift.imagemakersdev.com\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/smartshift.imagemakersdev.com\/de\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/smartshift.imagemakersdev.com\/de\/wp-json\/wp\/v2\/comments?post=2622"}],"version-history":[{"count":1,"href":"https:\/\/smartshift.imagemakersdev.com\/de\/wp-json\/wp\/v2\/posts\/2622\/revisions"}],"predecessor-version":[{"id":22154,"href":"https:\/\/smartshift.imagemakersdev.com\/de\/wp-json\/wp\/v2\/posts\/2622\/revisions\/22154"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/smartshift.imagemakersdev.com\/de\/wp-json\/wp\/v2\/media\/15035"}],"wp:attachment":[{"href":"https:\/\/smartshift.imagemakersdev.com\/de\/wp-json\/wp\/v2\/media?parent=2622"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/smartshift.imagemakersdev.com\/de\/wp-json\/wp\/v2\/categories?post=2622"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/smartshift.imagemakersdev.com\/de\/wp-json\/wp\/v2\/tags?post=2622"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}