DE102021101201A1 - Verfahren zum Einsetzen von Software-Stacks und computerlesbares Speichermedium - Google Patents

Verfahren zum Einsetzen von Software-Stacks und computerlesbares Speichermedium Download PDF

Info

Publication number
DE102021101201A1
DE102021101201A1 DE102021101201.5A DE102021101201A DE102021101201A1 DE 102021101201 A1 DE102021101201 A1 DE 102021101201A1 DE 102021101201 A DE102021101201 A DE 102021101201A DE 102021101201 A1 DE102021101201 A1 DE 102021101201A1
Authority
DE
Germany
Prior art keywords
stack
user
services
definition
service
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
DE102021101201.5A
Other languages
English (en)
Inventor
Petr Grigoriev
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kvinta GmbH
Original Assignee
Kvinta GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Kvinta GmbH filed Critical Kvinta GmbH
Priority to PCT/EP2021/075487 priority Critical patent/WO2022073740A1/en
Publication of DE102021101201A1 publication Critical patent/DE102021101201A1/de
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Document Processing Apparatus (AREA)
  • Stored Programmes (AREA)

Abstract

Die vorliegende Erfindung betrifft ein computerimplementiertes Verfahren (400) zum Einsetzen von Software-Stacks in einem Kommunikationsnetzwerk. Das Verfahren (400) umfasst das Anzeigen (401) einer Benutzerschnittstelle (300) auf einem Bildschirm, die eine Datenserialisierungssprache zum Spezifizieren einer Benutzer-Stack-Definition (100) für jedes Paar (509) durch einen Benutzer vorsieht, wobei ein Paar (509) aus einem ersten Kommunikationspartner (511) und einem zweiten Kommunikationspartner (513) besteht,Erzeugen (403) einer separaten einsatzfähigen Stack-Definition basierend auf einer Benutzer-Stack-Definition (100) für jedes Paar (509), Speichern (405) der erzeugten einsatzfähigen Stack-Definitionen in einem in einem Speicher (503) gespeicherten Stack-Verzeichnis, Einsetzen (407) vollständiger Stacks in dem Kommunikationsnetzwerk gemäß den in dem Stack-Verzeichnis spezifizierten einsatzfähigen Stack-Definitionen,wobei eine einsatzfähige Stack-Definition für ein Paar (509) aus einem ersten Kommunikationspartner (511) und einem zweiten Kommunikationspartner (513) einzusetzende Dienste und Spezifikationen von Lese- und Schreibabhängigkeiten für den ersten Kommunikationspartner (511) und den zweiten Kommunikationspartner (513) für jeden einzusetzenden Dienst spezifiziert, undwobei die Lese- und Schreibabhängigkeiten in einer choreographierten Architektur durch ein Ereignismodul organisiert werden.

Description

  • Die vorliegende Erfindung betrifft ein computerimplementiertes Verfahren und ein System zum Einsetzen von Software-Stacks in einem Kommunikationsnetzwerk.
  • Für den Einsatz von Software in einer verteilten Computerumgebung, wie zum Beispiel einem sogenannten „Cloud-Computernetzwerk“, ist ein sogenannter „Software As A Service“-(SAAS)-Ansatz bekannt, bei dem Softwaremodule (Dienste), wie etwa Programme oder Anwendungen, über ein Kommunikationsnetzwerk an ausgewählte Endbenutzer verteilt werden.
  • Zur Steuerung und Koordinierung von Diensten in einem SAAS-Ansatz sind so genannte „orchestrierte“ Verfahren bekannt, die auf einem Dienst-Controller basieren, der die gesamte Kommunikation zwischen den Mikrodiensten abwickelt und jeden Dienst anweist, eine beabsichtigte Funktion auszuführen. Der Dienst-Controller steuert also die Dienste und spezifiziert deren Timing und Prozessfluss in einem zentralisierten und synchronisierten Verfahren.
  • In einem orchestrierten Verfahren kann es zu Situationen kommen, in denen der Dienst-Controller auf die Antwort eines Dienstes wartet, der zum Beispiel defekt ist. Ein solches Ereignis führt zu einer massiven Verzögerung bei allen anderen Diensten, die von dem Dienst-Controller gesteuert werden, da die anderen Dienste auf die Antwort des ausgefallenen Dienstes oder eine entsprechende Timeout-Nachricht warten müssen.
  • Des Weiteren sind Workflow-Systeme bekannt, die bestimmte, von einem Cloud-Computersystem einzusetzende Dienste spezifizieren, die individuelle Workflows von Benutzern abbilden, die ihre Workflow-Anwendungen auf von Dritten verwalteten Cloud-Diensten einsetzen möchten.
  • Gemäß einem ersten Aspekt betrifft die vorliegende Erfindung ein computerimplementiertes Verfahren zum Einsetzen von Software-Stacks in einem Kommunikationsnetzwerk. Das Verfahren umfasst einen Anzeigeschritt zum Anzeigen einer Benutzerschnittstelle auf einem Bildschirm, die eine Datenserialisierungssprache zum Spezifizieren einer Benutzer-Stack-Definition für jedes Paar, das aus einem ersten Kommunikationspartner und einem zweiten Kommunikationspartner besteht, durch einen Benutzer vorsieht, einen Erzeugungsschritt zum Erzeugen einer separaten einsatzfähigen Stack-Definition basierend auf einer Benutzer-Stack-Definition für jedes Paar, einen Speicherschritt zum Speichern erzeugter einsatzfähiger Stack-Definitionen in einem in einem Speicher gespeicherten Stack-Verzeichnis, und einen Einsatzschritt zum Einsetzen vollständiger Stacks in dem Kommunikationsnetzwerk gemäß den in dem Stack-Verzeichnis spezifizierten einsatzfähigen Stack-Definitionen, wobei eine einsatzfähige Stack-Definition für ein Paar aus einem ersten Kommunikationspartner und einem zweiten Kommunikationspartner einzusetzende Dienste und Spezifikationen von Lese- und Schreibabhängigkeiten für den ersten Kommunikationspartner und den zweiten Kommunikationspartner für jeden einzusetzenden Dienst spezifiziert, und die Lese- und Schreibabhängigkeiten in einer choreographierten Architektur durch ein Ereignismodul organisiert werden.
  • Im Rahmen der vorliegenden Erfindung ist eine Benutzer-Stack-Definition eine Datei, die von einem Benutzer spezifizierte Merkmale einer Softwareumgebung enthält. Eine Benutzer-Stack-Definition spezifiziert eine Reihe von Diensten, wie zum Beispiel Programme und/oder Datenbanken oder andere Software-Ressourcen.
  • Im Rahmen der vorliegenden Erfindung ist eine einsatzfähige Stack-Definition eine Datei, die Anweisungen enthält, die ein Computersystem, zum Beispiel ein Cloud-Computernetzwerk, so konfigurieren, dass es Dienste, zum Beispiel Programme und/oder Datenbanken, für einen bestimmten Kommunikationspartner eines Benutzers einsetzt. Einsatzfähige Stack-Definitionen können als YAML/JSON-Datei vorgesehen werden, die eines oder mehrere der folgenden Elemente beschreibt: Datenbanken, wie etwa Postgres, Scylla, DynamoDB oder dergleichen, Messaging-Themen, wie zum Beispiel Kafka-Themen, SNS-Themen oder dergleichen, Objektspeicher-Buckets, wie etwa S3-Buckets, GCP-Buckets oder dergleichen, interne Dienste, wie etwa Docker-Container, Lambda-Funktionen, KSQUL, Connectors/Tables/Streams oder dergleichen, externe Dienste, wie etwa ein Dienst, der einen internen Dienst aufruft oder von einem internen Dienst aufgerufen wird, und Lese-/Schreib-Abhängigkeiten für ein Paar von Kommunikationspartnern.
  • Im Rahmen der vorliegenden Erfindung ist eine Datenserialisierungssprache eine Computersprache, die Datenobjekte in komplexen Datenstrukturen, wie etwa Programme und/oder Datenbanken, die von einem Benutzer in einer Benutzer-Stack-Definition spezifiziert werden, in einen Bytestrom zur Speicherung, Übertragung und Verteilung auf physischen Vorrichtungen umwandelt.
  • Im Rahmen der vorliegenden Erfindung ist eine choreographierte Architektur eine Softwarearchitektur, die auf einem Ereignismodul basiert, das Dienste untereinander choreographiert, anstatt Dienste in einem zentralisierten Master/Slave-Ansatz zu orchestrieren. Somit steuert das Ereignismodul gemäß dem hier beschriebenen Verfahren die zwischen bestimmten Diensten ausgetauschten Nachrichten. Durch Verwendung des Ereignismoduls ist somit, sobald ein bestimmter Dienst eine Nachricht an das Ereignismodul sendet, der Vorgang abgeschlossen, das heißt es ist keine weitere Interaktion zwischen dem Ereignismodul und dem Dienst erforderlich. Weitere Prozesse, die vom Ereignismodul abgewickelt werden, können asynchron ausgeführt werden, ohne auf eine Antwort eines anderen Dienstes zu warten oder von einem nachfolgenden Prozess abhängig zu sein.
  • Im Rahmen der vorliegenden Erfindung umfassen Lese- und Schreibabhängigkeiten, die durch eine einsatzfähige Stack-Definition spezifiziert werden, Anweisungen für die Verarbeitung von Diensten für den ersten Kommunikationspartner und den zweiten Kommunikationspartner, wie etwa von wo Daten zu lesen sind, wohin Daten zu schreiben sind und wo der Fortschritt zu melden ist. Mit dem hier spezifizierten Verfahren können also Dienste, die nicht von einem ausgefallenen Dienst abhängig sind, weiterlaufen, während ein Problem des Dienstes behoben wird. Es ist auch nicht erforderlich, dass jeder Dienst eine komplexe, eingebaute Fehlerbehandlung im Falle von Netzwerkausfällen hat, da das Ereignismodul so konfiguriert ist, dass es die Dienste in einer bestimmten Choreographie steuert.
  • Die vorliegende Erfindung basiert auf einem Verteilungsmodell, das strikt auf einen einzigen Mandanten ausgerichtet ist, was bedeutet, dass für jedes Paar aus einem ersten Kommunikationspartner, wie etwa einem Kunden, und einem zweiten Kommunikationspartner, wie etwa einer Entwicklungsumgebung, einer Testumgebung, einer Produktionsumgebung oder dergleichen, ein separater Stack von Diensten eingesetzt wird. Gemäß der vorliegenden Erfindung werden also verschiedene Paare keine zugrunde liegenden Cloud-Ressourcen gemeinsam nutzen. Dementsprechend können Dienste, die einem bestimmten Paar zugeordnet sind, bearbeitet oder sogar gelöscht werden, ohne dass dies einen Einfluss auf andere Paare hat. Mit anderen Worten, die vorliegende Erfindung ermöglicht einen modularen Einsatz von Diensten für bestimmte Paare von Kommunikationspartnern.
  • Da der Einsatz von Diensten gemäß dem hier beschriebenen Verfahren für jedes Paar von Kommunikationspartnern spezifisch ist, wie in einer Stack-Definition spezifiziert, können zahlreiche Stack-Definitionen in einem Stack-Verzeichnis zusammengefasst werden, das ein Computersystem so konfiguriert, dass die Dienste gemäß den in den jeweiligen Stack-Definitionen spezifizierten Regeln eingesetzt werden, wobei bestimmte Stack-Definitionen im Stack-Verzeichnis bearbeitet, dupliziert oder gelöscht werden können, ohne dass andere Stack-Definitionen im Stack-Verzeichnis bearbeitet werden müssen.
  • Da das hier beschriebene Verfahren eine Visualisierung einer Benutzerschnittstelle zur Bearbeitung von Benutzer-Stack-Definitionen umfasst, bietet die vorliegende Erfindung eine geführte Mensch-Maschine-Interaktion basierend auf einem Einblick in die Verarbeitung des Softwareeinsatzes durch ein Kommunikationsnetzwerk.
  • Insbesondere ermöglicht das hier beschriebene Verfahren durch Erzeugen einer einsatzfähigen Stack-Definition basierend auf einer Benutzer-Stack-Definition, die von einer Datenserialisierungssprache vorgesehen wird, den Einsatz vollständiger Stacks, das heißt einer Summe von Diensten, die für ein Paar aus einem ersten Kommunikationspartner und einem zweiten Kommunikationspartner gemäß einer Benutzer-Stack-Definition eingesetzt werden sollen, im Gegensatz zum bloßen Einsatz von Workflows basierend auf einem orchestrierten Einsatz, an dem verschiedene Kommunikationspartner beteiligt sind.
  • Gemäß einer Ausführungsform umfasst das Verfahren ferner einen Anzeigeschritt zum Anzeigen, über die Benutzerschnittstelle, einer Visualisierung der Datenserialisierungssprache zum Spezifizieren einer Benutzer-Stack-Definition, wobei die Visualisierung grafische Elemente für jeden der folgenden Punkte umfasst: einzusetzende Dienste, Eingabe jedes Dienstes, Ausgabe jedes Dienstes, und wobei die Visualisierung einen Prozessfluss der einzusetzenden Dienste und einen Prozessfluss für die Datenkommunikation zwischen den Diensten umfasst, und wobei die grafischen Elemente Links zu Dokumentationsdaten der entsprechenden Dienste, zur Eingabe jedes Dienstes oder zur Ausgabe jedes Dienstes sind.
  • Durch die Visualisierung der Datenserialisierungssprache zum Spezifizieren einer Benutzer-Stack-Definition kann ein Benutzer den Zustand eines Einsatzes von Diensten, die in einem Verzeichnis spezifiziert sind, auf einen Blick erfassen. Darüber hinaus kann der Benutzer Probleme beim Einsatz der Dienste, wie zum Beispiel einen ausgefallenen Zielserver, leicht erkennen.
  • Die Visualisierung nach dem beanspruchten Verfahren sieht außerdem Links zu Dokumentationsdaten der entsprechenden Dienste, zur Eingabe jedes Dienstes oder zur Ausgabe jedes Dienstes vor. Somit kann ein Benutzer die Links nutzen, indem er beispielsweise auf die Links klickt, um die Dokumentationsdaten des Dienstes, deren Eingabe und Ausgabe zu überprüfen. Dementsprechend sieht die Visualisierung für den Benutzer eine intuitive Schnittstelle für eine geführte Mensch-Computer-Interaktion vor, die einen Einblick in das komplexe System zum Einsatz von Diensten in einem Kommunikationsnetzwerk vorsieht.
  • Gemäß einer anderen Ausführungsform des hier beschriebenen Verfahrens umfasst die Visualisierung einen gerichteten azyklischen Graphen „DAG“, der mindestens eines der folgenden Elemente zeigt: Lese-/Schreib-Abhängigkeiten zwischen Diensten einer bestimmten Benutzer-Stack-Definition, Ressourcenzustand von Instanzen, die Dienste einer bestimmten Benutzer-Stack-Definition vorsehen, Unterschiede zwischen einer eingesetzten Stack-Definition und einer Benutzer-Stack-Definition, die gerade über die Benutzerschnittstelle bearbeitet wird.
  • Durch die Verwendung eines DAG kann der Status des Einsatzes von Diensten, die in einem Verzeichnis spezifiziert sind, gemäß einem bestimmten Satz von Regeln dargestellt werden, die für einen Benutzer leicht zu verstehen sind. Durch die Verwendung eines DAG kann der Benutzer den Status des Einsatzes der Dienste auf einen Blick erfassen. Mit anderen Worten: Durch die Verwendung eines DAG muss der Benutzer den detaillierten Code für den Einsatz der Dienste nicht überprüfen, da der Zustand des Einsatzes, das heißt der Zustand der Dienste und die Dateneingabe in und die Datenausgabe aus den bestimmten Diensten, auf benutzerfreundliche Weise visualisiert werden kann.
  • Ein DAG kann insbesondere Symbole enthalten, die den Zustand bestimmter Ressourcen, wie zum Beispiel der Zielserver, anzeigen. Solche Symbole können beispielsweise ein Anzeigesymbol, wie eine Ampel, umfassen, das den Zustand einer Ressource nach einem Farbschema anzeigt, das auf den von der Ressource übermittelten Daten, wie beispielsweise der Antwortzeit, basiert.
  • Gemäß einer anderen Ausführungsform umfasst das Verfahren ferner einen Aktualisierungsschritt zum automatischen Aktualisieren des DAG in Reaktion auf den Empfang von Daten von bestimmten Diensten und/oder Computerressourcen, die die bestimmten Dienste ausführen.
  • Ein Aktualisierungsschritt zur Aktualisierung eines DAG kann regelmäßig, das heißt in einem bestimmten Zeitfenster, oder ereignisbasiert, das heißt bei Vorliegen neuer Daten, durchgeführt werden.
  • Gemäß einer anderen Ausführungsform umfassen die einsatzfähigen Stack-Definitionen für jeden Dienst mindestens eine der folgenden Listen: Datenbank, Nachrichtenthema, Objektspeicherbereich, interner Dienst und externer Dienst.
  • Insbesondere enthalten die einsatzfähigen Stack-Definitionen alle Informationen, die für den Einsatz eines Benutzer-Stacks erforderlich sind. So können die einsatzfähigen Stack-Definitionen als Basis für eine andere einsatzfähige Stack-Definition kopiert werden, so dass die einsatzfähigen Stack-Definitionen als Module dienen, die jeweils in einem bestimmten Verzeichnis ausgetauscht, hinzugefügt und gelöscht werden können.
  • Gemäß einer Ausführungsform sind die einsatzfähigen Stack-Definitionen so konfiguriert, dass sie bei folgenden Anbietern eingesetzt werden können: Cloud-Providern, On-Prem-Instanzen mit mehreren Servern und On-Prem-Instanzen mit Single-Server-Instanzen.
  • Im Allgemeinen können die einsatzfähigen Stack-Definitionen für den Einsatz von Diensten auf jedem Zielsystem verwendet werden. Somit können die einsatzfähigen Stack-Definitionen Befehle für die Konfiguration von On-Prem-Instanzen und von Cloud-Providern enthalten. Natürlich können die einsatzfähigen Stack-Definitionen auch exklusive Befehle für die Konfiguration bestimmter Instanzen, zum Beispiel eines On-Prem-Servers oder eines bestimmten Cloud-Anbieters, enthalten, um die Stabilität des Einsatzes zu erhöhen.
  • Gemäß einer anderen Ausführungsform werden die Benutzer-Stack-Definitionen für jedes Paar aus mehreren Paaren unabhängig voneinander verarbeitet, so dass keines dieser Paare die zugrunde liegenden Computerressourcen gemeinsam nutzt.
  • Durch die voneinander unabhängige Verarbeitung von Benutzer-Stack-Definitionen für verschiedene Paare können die in einem Verzeichnis spezifizierten Paare leicht ausgetauscht werden, ohne dass die Benutzer-Stack-Definitionen für andere in dem Verzeichnis spezifizierte Paare angepasst werden müssen.
  • Gemäß einem zweiten Aspekt der vorliegenden Erfindung wird ein Computersystem zum Einsetzen von Software-Stacks in einem Kommunikationsnetzwerk vorgestellt, wobei das Computersystem so konfiguriert ist, dass es mindestens eine Ausführungsform des hierin beschriebenen Verfahrens ausführt.
  • Das hier beschriebene Computersystem kann ein lokaler Server, ein verteiltes Kommunikationsnetzwerk oder eine andere Computerressource sein. Das Computersystem kann mindestens einen Prozessor und/oder mindestens eine Speichervorrichtung zur Durchführung der Berechnungen umfassen, die dem hier beschriebenen Verfahren zugrunde liegen.
  • Gemäß einem dritten Aspekt der vorliegenden Erfindung enthält ein computerlesbares Speichermedium Anweisungen, die eine Ausführungsform des hierin beschriebenen Computersystems veranlassen, alle Schritte einer Ausführungsform des hierin beschriebenen Verfahrens auszuführen.
  • Ausführungsformen der vorliegenden Erfindung sind in den beigefügten Zeichnungen dargestellt und werden im Folgenden ausführlich beschrieben. Es zeigen:
    • 1 eine Stack-Definition gemäß einer Ausführungsform des hierin beschriebenen Verfahrens,
    • 2 eine graphische Darstellung der Stack-Definition gemäß 1,
    • 3 eine Benutzerschnittstelle gemäß einer Ausführungsform des hierin beschriebenen Verfahrens,
    • 4 eine Übersicht über eine Ausführungsform des hierin beschriebenen Verfahrens,
    • 5 eine Ausführungsform des hierin beschriebenen Computersystems.
  • Die vorliegende Erfindung bezieht sich auf ein Verfahren zum Einsetzen und zur Visualisierung vollständiger Stacks unter Verwendung eines Microservice-Choreographie-Ansatzes.
  • Die Erfindung basiert auf einem Verteilungsmodell, das strikt auf einen einzigen Mandanten ausgerichtet ist, was bedeutet, dass für jedes Paar (Kunde, Stufe) ein separater Stack eingesetzt wird, wobei die Stufe eine beliebige der Kategorien „Entwicklung“, „Test“, „Produktion“ usw. sein kann. Erfindungsgemäß wird keines dieser Paare zugrunde liegende Cloud-Ressourcen gemeinsam nutzen.
  • Die erfindungsgemäße SaaS-Lösung wird für das Paar (Kunde, Stufe) unter Verwendung einer neuartigen, erfindungsgemäßen Stack-Definition eingesetzt.
  • Vorzugsweise ist die erfindungsgemäße Stack-Definition eine YAML/JSON-Datei, die eines oder mehrere der folgenden Elemente beschreibt:
    • - Datenbanken (zum Beispiel Postgres, Scylla, DynamoDB, usw.)
    • - Messaging-Themen (zum Beispiel Kafka-Themen oder SNS-Themen)
    • - Objektspeicher-Buckets (zum Beispiel S3-Buckets, GCP-Buckets, usw. )
    • - interne Dienste - Docker-Container, Lambda-Funktionen, KSQL, Connectors/Tables/Streams, usw.
    • - externe Dienste - jeder Dienst außerhalb der proprietären Cloud, der entweder einen internen Dienst aufruft oder von einem internen Dienst aufgerufen wird
    • - Lese-/Schreib-Abhängigkeiten der beiden oben genannten.
  • Die erfindungsgemäßen Stack-Definitionen ermöglichen die Visualisierung als DAG, der:
    • - Lese-/Schreib-Abhängigkeiten zwischen einzelnen Komponenten aufzeigt
    • - bei der Ausarbeitung der Lösung mit Kunden, Implementierungspartnern usw. während der Entwurfsphase hilft
    • - bei Sicherheitsprüfungen hilft (alle Ingress, Egress, ACLs, IP-Whitelisting usw. sind aus dem DAG ablesbar)
    • - bei der Behebung von Problemen im laufenden System hilft:
    • - den Zustand der Ressourcen anzeigt
    • - eine schnelle Navigation zu Ressourcenprotokollen/Metriken/Dokumentation usw. ermöglicht
    • - als 100% genaue und aktuelle Dokumentation dient (keine Notwendigkeit mehr, PUML-Diagramme von Hand zu erstellen)
    • - Unterschiede zwischen Stacks anzeigen kann, die auf verschiedenen Kundenstufen eingesetzt werden
  • Die erfindungsgemäße Stack-Definition ist plattformunabhängig. Dieselbe Stack-Definition kann wiederverwendet werden, um sie bei folgenden Anbietern einzusetzen:
    • - Cloud-Anbieter: AWS, GCP, Azure, Alibaba, Yandex
    • - On-Prem mit Kubernetes/Docker Swarm/Etc
    • - On-Prem mit Single-Server, zum Beispiel mit Docker-Compose
  • Die erfindungsgemäßen Stack-Definitionen können in einem dedizierten Stack-Verzeichnis gespeichert werden.
  • Das erfindungsgemäße Stack-Definitions-Verzeichnis ermöglicht:
    • - die schnelle Ausgliederung eines neuen Projekts basierend auf einem ähnlichen Aufbau (zum Beispiel durch die Übernahme bestehender Definitionen, die bei Kunde A eingesetzt wurden, Hinzufügung der dort fehlenden Elemente und Wiederverwendung für Kunde B)
    • - sich möglicherweise zu einem gemeinschaftsgetriebenen Projekt zu entwickeln oder als „Marktplatz“ zu dienen
    • - Einbindung eines Stacks in einen anderen (zum Beispiel proprietärer Kern)
  • Die Erfindung ermöglicht den Einsatz und die Visualisierung vollständiger Stacks. Im Gegensatz dazu ermöglichen Ansätze des Standes der Technik lediglich den Einsatz und die Visualisierung einzelner Workflows, die Ressourcen in einem bestehenden Stack orchestrieren. Erfindungsgemäß kann ein Microservice-Choreographie-Ansatz verwendet werden. Dieser erfindungsgemäße Ansatz ersetzt nicht einen Microservice-Orchestrierungs-Ansatz. Vielmehr kann er mit diesem ergänzt werden.
  • Wie aus dem Stand der Technik bekannt ist, vgl. https://solace.com/blog/microservices-choreography-vs-orchestration/ von Jonathan Schabowsky, 26. November 2019, bezeichnet die Microservices-Architektur ein Software-Design-Paradigma, bei dem eine Anwendung und ein geschäftlicher Anwendungsfall in einen Satz von zusammensetzbaren Diensten aufgeteilt wird, wodurch Unternehmen viele technische Vorteile erhalten. Erstens sind Microservices-Architekturen klein, leicht und einfach zu implementieren. Zweitens ermöglichen Microservices-Architekturen eine Wiederverwendbarkeit, die die Kosten für die Entwicklung oder Änderung von Anwendungen reduziert. Darüber hinaus gewährleisten sie eine effiziente Nutzung von Ressourcen und erleichtern die bedarfsgerechte Skalierung von Anwendungen.
  • Im Sinne der vorliegenden Erfindung gibt es zwei Ansätze, um Microservices dazu zu bringen, auf ein gemeinsames Ziel hinzuarbeiten: Orchestrierung und Choreographie. Orchestrierung im Sinne der vorliegenden Erfindung bedeutet die aktive Steuerung aller Elemente und Interaktionen, wie ein Dirigent die Musiker eines Orchesters dirigiert. Im Gegensatz dazu bedeutet Choreographie im Sinne der vorliegenden Erfindung die Festlegung eines Musters oder einer Routine, der die Microservices folgen, während die Musik spielt, ohne dass eine Überwachung und Anweisungen erforderlich sind.
  • In dieser schnelllebigen Landschaft, in der die Zeit bis zur Markteinführung von entscheidender Bedeutung ist, kann die Geschwindigkeit, mit der man Anwendungen entwickeln und ändern kann, ernsthafte Auswirkungen auf das Geschäft haben. Dass Entwicklungsteams durch Änderungen an anderen Diensten beeinträchtigt werden, ist ein häufiges Hindernis für Agilität. Choreographierte, insbesondere ereignisgesteuerte Microservices ermöglichen es den Entwicklungsteams, unabhängiger zu arbeiten und sich auf ihre wichtigsten Dienste zu konzentrieren. Sobald diese Dienste erstellt sind, können sie leicht von verschiedenen Teams gemeinsam genutzt werden. Diese Wiederverwendung von entwickelten Komponenten bedeutet eine enorme Arbeits- und Zeitersparnis.
  • Wenn man einen Microservice erstellt, der eine bestimmte Funktion hat, kann man eine modularere Codebasis schaffen. Jeder Microservice übernimmt eine bestimmte Geschäftsfunktion, und gemeinsam führen sie als Einheit den Geschäftsprozess aus.
  • Die Wiederverwendbarkeit dieser Microservices als Teil vieler Geschäftsprozesse sorgt für ein konsistentes System und erleichtert die Erstellung oder Änderung von Diensten, da man auf Code zurückgreifen kann, der sich bereits für die Ausführung einer bestimmten Funktion bewährt hat.
  • Ein bevorzugter Ansatz besteht daher darin, die Interaktionen der Microservices zu choreographieren. Da ereignisgesteuerte Architekturen und Microservices zum Einsatz kommen, spart ein choreographierter Ansatz für die Kommunikation zwischen den Diensten Zeit und Geld und verbessert gleichzeitig das Kundenerlebnis.
  • Die erfindungsgemäße Lösung für den Einsatz von Paaren (Kunde, Stufe) ist die Verwendung einer die Erfindung darstellenden Stack-Definition. Die Stack-Definition wird in Form einer menschenlesbaren Datenserialisierungssprache gespeichert. Bevorzugte Ausführungsformen der Erfindung basieren auf YAML und/oder insbesondere JSON (JavaScript object notation).
  • Darüber hinaus ermöglicht die bestimmte erfindungsgemäße Stack-Definition die Visualisierung als gerichteter azyklischer Graph (DAG). Die erfindungsgemäße Stack-Definition ist plattformunabhängig und eignet sich daher gleichermaßen für den Einsatz bei verschiedenen Cloud-Anbietern, für On-Premises-Architekturen, die entweder Single-Server- oder Open-Source-Container-Orchestrierungsarchitekturen verwenden.
  • Darüber hinaus ist das oben gezeigte erfindungsgemäße PlantUML-Diagramm eine Visualisierung in Form eines gerichteten azyklischen Graphen (DAG) der Stack-Definition. Die erfindungsgemäßen Stacks können als plantUML-Diagramme exportiert werden. Die erfindungsgemäße Stack-Definition kann in Klartext, zum Beispiel in UTF8-Kodierung, gespeichert werden.
  • Weiterhin umfasst die Erfindung einen Stack-Editor. Dieser Stack-Editor ermöglicht es den Benutzern, den Stack in What You See Is What You Get(WYSIWYG) Form zu bearbeiten. Das heißt, eine Änderung des Textes aktualisiert automatisch das Diagramm.
  • Der entscheidende Unterschied zu den Lösungen des Standes der Technik besteht darin, dass die Erfindung den gesamten Stack visualisiert, der eine Choreographie verwendet, während die genannten ähnlichen Technologien einzelne Workflows in einer orchestrierten Umgebung visualisieren.
  • Im Gegensatz dazu bieten die bisherigen Technologien lediglich Mittel zur Service-Orchestrierung. Sie befassen sich nicht mit dem Stack-Einsatz. AWS StepFunctions, Zeebe/Comunda, Netflix Conductor und ähnliche Technologien ermöglichen lediglich:
    • - Erstellung von Workflow-ähnlichen Diensten, basierend auf der JSON/YAML/etc.-Definition
    • - die anderen Dienste orchestrieren, die bereits mit anderen Mitteln auf der gleichen Stufe eingesetzt werden sollten
    • - und die Überwachung, Fehlersuche, Wiederholungsversuche usw. ermöglichen.
  • Im Gegensatz dazu ermöglicht der erfindungsgemäße Ansatz den Einsatz von Software-Stacks, die eine Choreographie verwenden. Dienste, die in der erfindungsgemäßen Stack-Definition erscheinen:
    • - werden auf der Stufe (Cloud/vor Ort) eingesetzt, wenn der erfindungsgemäße Stack eingesetzt wird
    • - wissen, woher sie Daten lesen, wohin sie Daten schreiben und wohin sie den Fortschritt melden sollen, basierend auf der erfindungsgemäßen Stack-Definition
  • YAML und insbesondere JSON (JavaScript Object Notation) sind zwei austauschbare Formate, so dass die erfindungsgemäße Plattform mit beiden Formaten arbeitet.
  • Erfindungsgemäß können choreographierte Stacks visualisiert werden, statt nur Workflows zu visualisieren.
  • Die erfindungsgemäße Stack-Definition ermöglicht die Visualisierung als gerichteter azyklischer Graph (DAG). Die erfindungsgemäße Stack-Definition ist plattformunabhängig und eignet sich daher gleichermaßen für den Einsatz bei Cloud-Anbietern, für On-Premises-Architekturen, die entweder Single-Server- oder Open-Source-Container-Orchestrierungsarchitekturen verwenden.
  • In 1 ist eine Benutzer-Stack-Definition 100 dargestellt. Die Benutzer-Stack-Definition 100 umfasst Anweisungen 101 in einer Datenserialisierungssprache, die einen Computer veranlassen, einen Satz von Diensten, die in der Stack-Definition 100 spezifiziert sind, paarweise einzusetzen, das heißt für ein bestimmtes Paar von Kommunikationspartnern, die von einem Benutzer spezifiziert werden, und die den Computer veranlassen, eine Visualisierung 200 der Datenserialisierungssprache anzuzeigen, die in der Benutzer-Stack-Definition 100 spezifiziert ist, wie in 2 gezeigt.
  • In 2 ist eine Visualisierung 200 der Benutzer-Stack-Definition 100 dargestellt. Die Visualisierung 200 stellt die in der Benutzer-Stack-Definition 100 spezifizierten Dienste und ihre Abhängigkeiten durch einen Satz vorgegebener Symbole 201 in einem sogenannten „gerichteten azyklischen Graphen“ oder „PUML-Diagramm“ dar, der auf einem Anzeigegerät, wie etwa einem Monitor, angezeigt wird. Auf diese Weise kann ein Benutzer den Inhalt der Benutzer-Stack-Definition 100 auf einen Blick erfassen.
  • Optional kann der Computer so konfiguriert sein, dass er die Visualisierung 200 regelmäßig und/oder im Falle einer Änderung der Benutzer-Stack-Definition 100 aktualisiert.
  • Optional kann der Computer auch so konfiguriert werden, dass er die Benutzer-Stack-Definition 100 regelmäßig und/oder im Falle einer Änderung der Visualisierung aktualisiert. Somit kann ein Benutzer die Visualisierung zum Beispiel durch Ziehen und Ablegen von Symbolen bearbeiten und dabei die Datenserialisierungssprache der Benutzer-Stack-Definition 100 bearbeiten. Mit anderen Worten, die Visualisierung 200 kann als Teil der Benutzerschnittstelle 300, wie in 3 gezeigt, zur Bearbeitung der Stack-Definition 100 verwendet werden.
  • In 3 ist eine Benutzerschnittstelle 300 dargestellt, wobei die Benutzerschnittstelle 300 einen ersten Anzeigebereich 301 und einen zweiten Anzeigebereich 303 umfasst.
  • Im ersten Anzeigebereich 301 wird die Benutzer-Stack-Definition 100 in der Datenserialisierungssprache angezeigt, während im zweiten Anzeigebereich 303 die Visualisierung 200 angezeigt wird. Durch die Verwendung der Benutzerschnittstelle 300 kann ein Benutzer somit die Auswirkungen von Änderungen in der Benutzer-Stack-Definition 100 sehen, die Änderungen in der Visualisierung 200 verursachen, und umgekehrt. Mit anderen Worten, die Benutzerschnittstelle 200 ermöglicht eine Bearbeitung im WYSIWYG-Stil, das heißt wenn der Text in der Stack-Definition 100 geändert wird, aktualisiert sich ein Diagramm der Visualisierung 200 „automatisch“. Somit sind erfindungsgemäß in der Sprache der Benutzer-Stack-Definition 100 obligatorische Choreographie-Elemente enthalten, das heißt es werden Schreib- und Leseabhängigkeiten aufgeführt.
  • In 4 ist ein computerimplementiertes Verfahren 400 zum Einsetzen von Software-Stacks in einem Kommunikationsnetzwerk dargestellt. Das Verfahren 400 umfasst einen Anzeigeschritt 401 zum Anzeigen einer Benutzerschnittstelle 300 auf einem Bildschirm, die eine Datenserialisierungssprache zum Spezifizieren einer Benutzer-Stack-Definition für jedes Paar durch einen Benutzer vorsieht, wobei ein Paar aus einem ersten Kommunikationspartner und einem zweiten Kommunikationspartner besteht, einen Erzeugungsschritt 403 zum Erzeugen einer separaten einsatzfähigen Stack-Definition basierend auf einer Benutzer-Stack-Definition 100 für jedes Paar, einen Speicherschritt 405 zum Speichern erzeugter einsatzfähiger Stack-Definitionen in einem Stack-Verzeichnis, einen Einsatzschritt 407 zum Einsetzen vollständiger Stacks in dem Kommunikationsnetzwerk gemäß den in dem Stack-Verzeichnis spezifizierten einsatzfähigen Stack-Definitionen, wobei eine einsatzfähige Stack-Definition für ein Paar aus einem ersten Kommunikationspartner und einem zweiten Kommunikationspartner einzusetzende Dienste und Spezifikationen von Lese- und Schreibabhängigkeiten für den ersten Kommunikationspartner und den zweiten Kommunikationspartner für jeden einzusetzenden Dienst spezifiziert, und wobei die Lese- und Schreibabhängigkeiten in einer choreographierten Architektur durch ein Ereignismodul organisiert werden.
  • In 5 ist ein Computersystem 500 zum Einsetzen von Software-Stacks in einem Kommunikationsnetzwerk dargestellt. Das Computersystem 500 umfasst einen Prozessor 501, der so konfiguriert ist, dass er Berechnungen ausführt, die in Benutzer-Stack-Definitionen 100 spezifiziert sind, die in einem Verzeichnis in einem Speicher 503 des Computersystems 500 gespeichert sind.
  • Optional ist der Prozessor 501 so konfiguriert, dass er eine Benutzerschnittstelle 300 auf einem Monitor 505 anzeigt, um die Benutzer-Stack-Definitionen 100 und dementsprechend das Verzeichnis und die darin enthaltenen einsatzfähigen Stack-Definitionen als solche zu bearbeiten.
  • Ferner umfasst das Computersystem 500 eine Kommunikationsschnittstelle 507 für eine Verbindung mit Zielservern, die in den Benutzer-Stack-Definitionen 100 für den Einsatz von Diensten an bestimmte Paare 509 eines ersten Kommunikationspartners 511, wie zum Beispiel einem Server eines öffentlichen Kommunikationsnetzwerkes, und eines zweiten Kommunikationspartners 513, wie zum Beispiel einem Mobiltelefon, spezifiziert sind.
  • Bezugszeichenliste
  • 100
    Benutzer-Stack-Definition
    101
    Anweisungen
    200
    Visualisierung
    201
    Symbol
    300
    Benutzerschnittstelle
    301
    Erster Anzeigebereich
    303
    Zweiter Anzeigebereich
    400
    Computerimplementiertes Verfahren
    401
    Anzeigeschritt
    403
    Erzeugungsschritt
    405
    Speicherschritt
    407
    Einsatzschritt
    500
    Computersystem
    501
    Prozessor
    503
    Speicher
    505
    Monitor
    507
    Kommunikationsschnittstelle
    509
    Paar
    511
    Erster Kommunikationspartner
    513
    Zweiter Kommunikationspartner

Claims (10)

  1. Computerimplementiertes Verfahren (400) zum Einsetzen von Software-Stacks in einem Kommunikationsnetzwerk, wobei das Verfahren (400) Folgendes umfasst: - Anzeigen (401) einer Benutzerschnittstelle (300) auf einem Bildschirm, die eine Datenserialisierungssprache zum Spezifizieren einer Benutzer-Stack-Definition (100) für jedes Paar (509) durch einen Benutzer vorsieht, wobei ein Paar (509) aus einem ersten Kommunikationspartner (511) und einem zweiten Kommunikationspartner (513) besteht, - Erzeugen (403) einer separaten einsatzfähigen Stack-Definition basierend auf einer Benutzer-Stack-Definition (100) für jedes Paar (509), - Speichern (405) erzeugter einsatzfähiger Stack-Definitionen in einem in einem Speicher (503) gespeicherten Stack-Verzeichnis, - Einsetzen (407) vollständiger Stacks in dem Kommunikationsnetzwerk gemäß den in dem Stack-Verzeichnis spezifizierten einsatzfähigen Stack-Definitionen, wobei eine einsatzfähige Stack-Definition für ein Paar (509) aus einem ersten Kommunikationspartner (511) und einem zweiten Kommunikationspartner (513) einzusetzende Dienste und Spezifikationen von Lese- und Schreibabhängigkeiten für den ersten Kommunikationspartner (511) und den zweiten Kommunikationspartner (513) für jeden einzusetzenden Dienst spezifiziert, und wobei die Lese- und Schreibabhängigkeiten in einer choreographierten Architektur durch ein Ereignismodul organisiert werden.
  2. Verfahren (400) nach Anspruch 1, wobei das Verfahren (400) ferner umfasst: - Anzeigen, über die Benutzerschnittstelle (300), einer Visualisierung (200) der Datenserialisierungssprache zum Spezifizieren einer Benutzer-Stack-Definition (100), wobei die Visualisierung (200) grafische Elemente (201) für jeden der folgenden Punkte umfasst: einzusetzende Dienste, Eingabe jedes Dienstes, Ausgabe jedes Dienstes, und wobei die Visualisierung (200) einen Prozessfluss der einzusetzenden Dienste und einen Prozessfluss für die Datenkommunikation zwischen den Diensten umfasst, und wobei die grafischen Elemente Links zu Dokumentationsdaten der entsprechenden Dienste, zur Eingabe jedes Dienstes oder zur Ausgabe jedes Dienstes umfassen.
  3. Verfahren (400) nach Anspruch 2, wobei die Visualisierung (200) einen gerichteten azyklischen Graphen „DAG“ umfasst, der mindestens eines der folgenden Elemente zeigt: Lese-/Schreib-Abhängigkeiten zwischen Diensten einer bestimmten Benutzer-Stack-Definition, Ressourcenzustand von Instanzen, die Dienste einer bestimmten Benutzer-Stack-Definition vorsehen, Unterschiede zwischen einer eingesetzten Stack-Definition und einer Benutzer-Stack-Definition, die gerade über die Benutzerschnittstelle bearbeitet wird.
  4. Verfahren (400) nach Anspruch 3, wobei das Verfahren (400) ferner umfasst: - automatisches Aktualisieren des DAG in Reaktion auf den Empfang von Daten von bestimmten Diensten und/oder Computerressourcen, die die bestimmten Dienste ausführen.
  5. Verfahren (400) nach einem der vorhergehenden Ansprüche, wobei das Verfahren (400) ferner umfasst: - automatisches Aktualisieren von in dem Stack-Verzeichnis gespeicherten einsatzfähigen Stack-Definitionen basierend auf über die Benutzerschnittstelle vorgesehenen Benutzer-Stack-Definitionen.
  6. Verfahren (400) nach einem der vorhergehenden Ansprüche, wobei die einsatzfähigen Stack-Definitionen für jeden Dienst mindestens eine der folgenden Listen umfassen: Datenbank, Nachrichtenthema, Objektspeicherbereich, interner Dienst und externer Dienst.
  7. Verfahren (400) nach einem der vorhergehenden Ansprüche, wobei die einsatzfähigen Stack-Definitionen so konfiguriert sind, dass sie eingesetzt werden können bei: Cloud-Providern, On-Prem-Instanzen mit mehreren Servern und On-Prem-Instanzen mit Single-Server-Instanzen.
  8. Verfahren (400) nach einem der vorhergehenden Ansprüche, wobei Benutzer-Stack-Definitionen (100) für jedes Paar (509) aus mehreren Paaren unabhängig voneinander verarbeitet werden, so dass keines dieser Paare irgendwelche zugrunde liegenden Computerressourcen gemeinsam nutzt.
  9. Computersystem (500) zum Einsetzen von Software-Stacks in einem Kommunikationsnetzwerk, wobei das Computersystem (500) so konfiguriert ist, dass es das Verfahren (400) nach einem der Ansprüche 1 bis 8 ausführt.
  10. Computerlesbares Speichermedium, das Anweisungen enthält, die ein Computersystem (500) veranlassen, alle Schritte eines Verfahrens (400) nach einem der Ansprüche 1 bis 8 auszuführen, wenn es von dem Computersystem (500) ausgeführt wird.
DE102021101201.5A 2020-10-08 2021-01-21 Verfahren zum Einsetzen von Software-Stacks und computerlesbares Speichermedium Ceased DE102021101201A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/EP2021/075487 WO2022073740A1 (en) 2020-10-08 2021-09-16 Method for deploying software stacks and computer-readable storage medium

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102020126443.7 2020-10-08
DE102020126443 2020-10-08

Publications (1)

Publication Number Publication Date
DE102021101201A1 true DE102021101201A1 (de) 2022-04-14

Family

ID=80818289

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021101201.5A Ceased DE102021101201A1 (de) 2020-10-08 2021-01-21 Verfahren zum Einsetzen von Software-Stacks und computerlesbares Speichermedium

Country Status (2)

Country Link
DE (1) DE102021101201A1 (de)
WO (1) WO2022073740A1 (de)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190129769A1 (en) 2017-10-31 2019-05-02 Seven Bridges Genomics Inc. System and method for dynamic control of workflow execution

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8793377B2 (en) * 2011-05-03 2014-07-29 International Business Machines Corporation Identifying optimal virtual machine images in a networked computing environment

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190129769A1 (en) 2017-10-31 2019-05-02 Seven Bridges Genomics Inc. System and method for dynamic control of workflow execution

Also Published As

Publication number Publication date
WO2022073740A1 (en) 2022-04-14

Similar Documents

Publication Publication Date Title
EP1456753B1 (de) System und verfahren zur modellierung und/oder realisierung von softwareanwendungen, insbesondere mes-anwendungen
DE102017102651A1 (de) Vorrichtung zum Formulieren von Regeln in einem Prozesssteuerungsnetzwerk
DE112017006164T5 (de) Differenzvergleich von ausführbaren Datenflussdiagrammen
DE19712946A1 (de) Methode zum Generieren einer Implementierung wiederverwendbarer Teile von Containern eines Workflow-Prozessmodells
CN105700888A (zh) 一种基于jbpm工作流引擎的可视化快速开发平台
DE10206902A1 (de) Engineeringverfahren und Engineeringsystem für industrielle Automatisierungssysteme
DE4134419A1 (de) Dynamische entwurfsschnittstelleneinrichtung fuer leistungsfaehigkeit und konfiguration eines computersystems
US9081478B2 (en) Unified process management software and method
EP1454280A2 (de) System und verfahren zum testen und/oder debuggen von laufzeitsystemen zur lösung von mess-aufgaben
EP1461697A2 (de) SYSTEM UND VERFAHREN ZUR KOMMUNIKATION ZWISCHEN SOFTWAREAPPLIKATIONEN, INSBESONDERE MES−APPLIKATIONEN
EP3049920A1 (de) Verfahren und einrichtung zur automatisierten erzeugung und bereitstellung wenigstens einer softwareanwendung
DE112017001301T5 (de) Verfahren und System zum Erstellen und Anzeigen eines Projektmanagementplans
CH703073B1 (de) Vergleich von Modellen eines komplexen Systems.
JP2008226252A (ja) ネットワーク上でプロジェクトスケジュールを管理するためのプロジェクトタスク管理システムのデータベースクエリの生成
DE102010007967A1 (de) Verfahren, Computerprogramm-Produkt sowie computerlesbares Speichermedium zur generischen Erstellung eines Strukturbaums zur Beschreibung eines IT-Verfahrens
DE112020004967T5 (de) Änderungsverwaltung und analytik für microservices
DE102019131291A1 (de) Gleichzeitige ausführung von dienstleistungen
EP1589416A2 (de) Verfahren und System zum Erzeugen eines Quellcodes für ein Computerprogramm
DE102010004192A1 (de) Verfahren zur Konstruktion industrieller Anlagen
EP2648094A2 (de) Verfahren und System zum Erzeugen eines Quellcodes für ein Computerprogramm zur Ausführung und Simulation eines Prozesses
DE602004006630T2 (de) Verfahren zur Durchführung eines Softwaredienstes in einer Systemlandschaft
EP1508093A2 (de) Transformation von objektbäumen, insbesondere in mes-systemen
WO2003050716A2 (de) System und verfahren zur projektierung von transformationen von objektbäumen
DE102021101201A1 (de) Verfahren zum Einsetzen von Software-Stacks und computerlesbares Speichermedium
EP1202167A1 (de) Verfahren zur modellbasierten objektorientierten Entwicklung von externen Schnittstellen für verteilte Softwaresysteme

Legal Events

Date Code Title Description
R163 Identified publications notified
R012 Request for examination validly filed
R409 Internal rectification of the legal status completed
R437 Application is deemed to be withdrawn due to failure to submit translation
R002 Refusal decision in examination/registration proceedings
R003 Refusal decision now final