DE102021123128A1 - Mittels blockchains realisiertes datenmigrationsprüfprotokoll - Google Patents

Mittels blockchains realisiertes datenmigrationsprüfprotokoll Download PDF

Info

Publication number
DE102021123128A1
DE102021123128A1 DE102021123128.0A DE102021123128A DE102021123128A1 DE 102021123128 A1 DE102021123128 A1 DE 102021123128A1 DE 102021123128 A DE102021123128 A DE 102021123128A DE 102021123128 A1 DE102021123128 A1 DE 102021123128A1
Authority
DE
Germany
Prior art keywords
blockchain
data migration
data
processor
migration
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.)
Pending
Application number
DE102021123128.0A
Other languages
English (en)
Inventor
Kumar Saurabh
Gururajan Sundaramurthy
Susheel Gooly
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.)
Kyndryl Inc
Original Assignee
Kyndryl Inc
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 Kyndryl Inc filed Critical Kyndryl Inc
Publication of DE102021123128A1 publication Critical patent/DE102021123128A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/214Database migration support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2358Change logging, detection, and notification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/254Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/256Integrating or interfacing systems involving database management systems in federated or virtual databases
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Mittels Computer realisiertes Verfahren, Systeme und Computerprogrammprodukte, die Blockchain-Netzwerk nutzen, um ein manipulationssicheres Ledger zu speichern, das ein Prüfprotokoll enthält, das auf der Grundlage eines Zeitrahmens eines Terminplans für durchgängige Datenmigrationsaufgaben die Beendigung von Datenmigrationsaufgaben oder missglückte Datenmigrationsaufgaben beschreibt. Jedes der Ereignisprotokolle und jede der Warnungen von der Datenmigrationsquelle, dem Datenmigrationsziel und/oder von Migrationstools, unter anderem Netzwerkeinheitenprotokolle, Betriebssystemprotokolle, Benutzerzugriffsprotokolle, Warnungen, Ausgaben von Migrationstools usw., das den durchgängigen Migrationsaufgaben zugehörig ist, wird als Teil des Prüfprotokolls erzeugt und im Ledger der Blockchain gespeichert. Alle Ereignisprotokolle, Warnungen oder anderen digitalen Assets, die in Blöcken der Blockchain aufgezeichnet werden, können mit einem Zeitstempel versehen, mit einem Hash versehen und über alle Knoten des Blockchain-Netzwerks hinweg verteilt und durch jeden der Peer-Knoten als gültig überprüft werden. Da Blöcke, die das Prüfprotokoll aktualisieren, zur Blockchain hinzugefügt werden, können die Einträge nicht modifiziert oder manipuliert werden.

Description

  • HINTERGRUND
  • Die vorliegende Offenbarung betrifft allgemein das Gebiet der Blockchain-Speicherung und insbesondere ein Realisieren von Blockchains, um Prüfprotokolle sicher zu speichern, die Datenmigration zwischen Rechenzentren, Computernetzwerken und/oder Netzwerken auf Cloud-Basis beschreiben.
  • „Datenmigration“ kann einen Prozess zum Bewegen von Daten von einem Speicherort zu einem anderen, aus einem Format in ein anderes und/oder von einer Anwendung zu einer anderen bezeichnen. Migration von Daten ist im Allgemeinen ein Ergebnis des Einführens von neuen Systeme und/oder Speicherorten für die Daten, während eine Migration oder Konsolidierung von Anwendungen durch geschäftliche Entscheidungen bedingt sein kann, bei denen es darum geht, veraltete Systeme durch neue Anwendungen zu ersetzen oder zu erweitern, die gemeinsam denselben Datensatz nutzen können. Gegenwärtig deuten Tendenzen in der Datenmigration darauf hin, dass Unternehmen damit beginnen, Daten aus standortbezogenen Infrastrukturen, Rechenzentren und Anwendungen auf Speicher-, Services- und Anwendungs-Bereitstellungsmechanismen auf Cloud-Basis zu migrieren. Zu einigen Migrationsarten können Anwendungsmigration, Cloud-Migration und Speichermigration gehören. „Anwendungsmigration“ kann ein Bewegen von Anwendungsprogrammen aus einer Umgebung in eine andere, aus IT-Zentren an einem Standort in eine Cloud, ein Bewegen zwischen Clouds (privat, öffentlich und/oder hybrid) oder ein Bewegen von Daten, die Anwendungen zugrunde liegen, in eine neue Form von Anwendungen bezeichnen, die durch einen Software-Provider gehostet werden. In ähnlicher Weise kann „Cloud-Migration“ den Prozess eines Bewegens von Daten, Anwendungen oder anderen Geschäftselementen entweder aus Rechenzentren an einem Standort in eine Cloud oder aus einer Cloud in eine andere Cloud bezeichnen. Schließlich kann „Speichermigration“ ein Bewegen von Daten aus bestehenden Speicheranordnungen in neue Speicheranordnungen aufweisen.
  • KURZDARSTELLUNG
  • Ausführungsformen der vorliegenden Offenbarung betreffen ein mittels Computer realisiertes Verfahren, ein zugehöriges Computersystem und ein Computerprogrammprodukt zum Realisieren einer Blockchain, die den Zugriff auf ein Ledger kontrolliert, das ein Prüfprotokoll aufweist, das digitale Assets enthält, die zur Durchführung eines Datenmigrationsereignisses gehörige Aufgaben beschreiben. Das mittels Computer realisierte Verfahren weist auf: Erstellen, durch den Prozessor, einer Aufgabenliste, die so konfiguriert ist, dass eine oder mehrere Aufgaben zum Migrieren von Daten von einer Datenmigrationsquelle auf ein Datenmigrationsziel delegiert werden; Zuweisen, durch den Prozessor, der einen oder der mehreren Aufgaben zu mindestens einer Partei, die für eine Durchführung einer zugewiesenen Aufgabe verantwortlich ist, um das Migrieren der Daten von der Datenmigrationsquelle auf das Datenmigrationsziel auszuführen; Durchführen, durch den Prozessor, der zugewiesenen Aufgabe; Protokollieren, durch den Prozessor in Abhängigkeit vom Durchführen der zugewiesenen Aufgabe, von Einzelheiten, die der Durchführung der zugewiesenen Aufgabe entsprechen, in ein digitales Asset; Aufzeichnen, durch den Prozessor, des digitalen Asset als Block einer Blockchain; und Verteilen, durch den Prozessor, des Blocks der Blockchain, der die Durchführung der zugewiesenen Aufgabe zum Migrieren von einer Datenmigrationsquelle auf ein Datenmigrationsziel beschreibt, an alle Knoten eines Blockchain-Netzwerks, wobei der in der Blockchain aufgezeichnete Block das mittels Blockchains realisierte Datenmigrationsprüfprotokoll aktualisiert.
  • Figurenliste
  • Die in der vorliegenden Offenbarung enthaltenen Zeichnungen sind in die Spezifikation einbezogen und bilden einen Teil davon. Sie veranschaulichen Ausführungsformen der vorliegenden Offenbarung und erläutern zusammen mit der Beschreibung die Grundgedanken der Offenbarung. Die Zeichnungen veranschaulichen lediglich bestimmte Ausführungsformen und schränken die Offenbarung nicht ein.
    • 1 stellt eine Ausführungsform eines Blockschemas interner und externer Komponenten eines Datenverarbeitungssystems dar, in dem hierin beschriebene Ausführungsformen gemäß der vorliegenden Offenbarung realisiert werden können.
    • 2A stellt ein Blockschema einer Ausführungsform einer Datenverarbeitungsumgebung zum Ausführen eines mittels Blockchains realisierten Datenmigrationsprüfprotokolls gemäß der vorliegenden Offenbarung dar.
    • 2B stellt ein Blockschema einer alternativen Ausführungsform einer Datenverarbeitungsumgebung zum Realisieren eines mittels Blockchains realisierten Datenmigrationsprüfprotokolls gemäß der vorliegenden Offenbarung dar.
    • 3 stellt eine Ausführungsform einer Cloud-Computing-Umgebung dar, innerhalb deren hierin beschriebene Ausführungsformen gemäß der vorliegenden Offenbarung realisiert werden können.
    • 4 stellt eine Ausführungsform von Abstraktionsmodellschichten einer Cloud-Computing-Umgebung gemäß der vorliegenden Offenbarung dar.
    • 5A veranschaulicht eine beispielhafte Blockchain-Architektur gemäß Ausführungsformen der vorliegenden Offenbarung.
    • 5B veranschaulicht einen Blockchain-Transaktionsablauf gemäß Ausführungsformen der vorliegenden Offenbarung.
    • 6 veranschaulicht ein Beispiel von Peer-Knoten eines Blockchain-Netzwerks und einen oder mehrere ihrer Inhalte gemäß Ausführungsformen der vorliegenden Offenbarung.
    • 7 stellt ein Blockschema einer Ausführungsform eines Verfahrens zum Ausführen eines mittels Blockchains realisierten Datenmigrationsprüfprotokolls gemäß der vorliegenden Offenbarung dar.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Die hierin verwendete Terminologie dient ausschließlich zur Beschreibung bestimmter Ausführungsformen und ist nicht als Einschränkung der Offenbarung gedacht. Im hierin verwendeten Sinne schließen die Einzahlformen „ein/eine“ und „der/die/das“ auch die Pluralformen ein, sofern im Kontext nicht ausdrücklich etwas anderes angegeben ist. Es versteht sich ferner, dass die Begriffe „weist auf“ bzw. „aufweisen/aufweisend“ bei Verwendung in dieser Beschreibung das Vorhandensein angegebener Merkmale, Schritte, Operationen, Elemente und/oder Komponenten bezeichnen, jedoch das Vorhandensein oder die Hinzufügung eines bzw. einer oder mehrerer anderer Merkmale, Schritte, Operationen, Elemente, Komponenten und/oder Gruppen davon nicht ausschließen.
  • Die entsprechenden Strukturen, Materialien, Aktionen und Äquivalente aller Mittel bzw. Schritt-plus-Funktion-Elemente (Step Plus Function Elements) in den folgenden Ansprüchen sollen alle Strukturen, Materialien oder Aktionen zum Durchführen der Funktion in Verbindung mit anderen ausdrücklich beanspruchten Elementen mit einschließen. Die Beschreibung der vorliegenden Offenbarung soll der Veranschaulichung und Beschreibung dienen, ist jedoch nicht als erschöpfend oder auf die Offenbarung in der offenbarten Form beschränkt gedacht. Für Fachleute sind viele Modifikationen und Variationen denkbar, ohne dass diese eine Abweichung vom Schutzbereich und Grundgedanken der Offenbarung darstellen würden. Die gewählten und beschriebenen Ausführungsformen sollen die Grundgedanken, die praktischen Anwendungsmöglichkeiten der Offenbarung auf bestmögliche Weise erklären und anderen Fachleuten das Verständnis der Offenbarung für verschiedene Ausführungsformen mit verschiedenen Modifikationen ermöglichen, die für die betreffende betrachtete Verwendung geeignet sind.
  • ÜBERBLICK
  • Datenmigrationsprogramme, die die hunderte von Anwendungen und Betriebslasten zwischen veralteten Rechenzentren und/oder Cloud-Netzwerken (öffentlich oder privat) migrieren können, können hunderte von Aufgaben (oder mehr) umfassen, die durch eine Mehrzahl von Projektbeteiligten durchgeführt werden müssen. Diese Projektbeteiligten können Teil unterschiedlicher Einheiten, Gruppen, Organisationen, Unternehmen oder Firmen sein und müssen möglicherweise oftmals zusammenarbeiten, um die einem Datenmigrationsereignis zugehörigen durchgängigen Aufgaben auszuführen. Projektbeteiligte können Teil von Anwendungsteams sein, bei denen es sich um Kunden und/oder Diensteanbieter, Migrationsteams von Dritten, die einen oder mehrere Migrationsdienste zwischen einer Datenmigrationsquelle (wie z.B. einem Rechenzentrum oder einem Cloud-Netzwerk) und einem Datenmigrationsziel durchführen, sowie um Infrastrukturteams, die mit der Verwaltung des Datenmigrationsziels in Zusammenhang stehen, und um Managementteams für die Kunden und/oder die Diensteanbieter handeln.
  • Ausführungsformen der vorliegenden Erfindung berücksichtigen, dass die aktuellen Datenmigrationsprozeduren möglicherweise ein manuelles Nachverfolgen und Aktualisieren von Zeitlinien zum Ausführen einer oder mehrerer Migrationsaufgaben umfasst, sodass ein oder mehrere Projektbeteiligte innerhalb der geplanten Zeitlinie auf ausgeführte Aufgaben zurückblicken, die Ausführung von Aufgaben nachprüfen und die Zeitlinien manuell aktualisieren kann. Ausführungsformen der vorliegenden Offenbarung berücksichtigen jedoch entscheidende Sicherheitsprobleme im Zusammenhang damit, dass Projektbeteiligte die Ausführung von Datenmigrationsaufgaben prüfen, wenn der Prozess durch mehrere Projektbeteiligte durchgeführt wird, die in die durchgängigen Datenmigrationsaufgaben eingebunden sind. Infolge mehrerer Projekt beteiligter, die Teil unterschiedlicher Einheiten, Firmen, Organisationen usw. sein können, steht möglicherweise nicht nur eine alleinige vertrauenswürdige Quelle für alle Projektbeteiligten zur Verfügung, die allen, die in die Datenmigration eingebunden sind, möglicherweise das Verständnis des Ausführungsfortschritts und der Zeitlinien für alle der durchgängigen Migrationsaufgaben erleichtert. Bei mehreren Projektbeteiligten aus einer Mehrzahl von unterschiedlichen Zugehörigkeiten kann ein Eingeben von Daten in die geplanten Migrationszeitlinien, die eine oder die mehreren Dateien, mit denen die Ausführung der durchgängigen Datenmigrationsaufgaben nachverfolgt wird, anfällig für Vertrauensprobleme, Manipulation und Fehler sein. Infolgedessen steht Prüfern, die den Fortschritt der durchgängigen Migration der Daten nachverfolgen, möglicherweise ein schlecht erarbeitetes Prüfprotokoll ohne eine alleinige Quelle vertrauenswürdiger Nachverfolgungsinformationen für das Überwachen oder Verständnis der Ausführung der durchgängigen Migrationsaufgaben zur Verfügung.
  • Ausführungsformen der vorliegenden Offenbarung berücksichtigen die Notwendigkeit eines gesicherten, manipulationssicheren Prüfprotokolls, das Projektbeteiligte beim Prüfen der durchgängigen Migration von Daten und zum Überwachen des Fortschritts der durchgängigen Datenmigrationsaufgaben verwenden können und dem sie vertrauen können. Ausführungsformen der vorliegenden Offenbarung greifen auf die Verwendung einer Blockchain zurück, um ein sicher gespeichertes, manipulationssicheres Ledger zu erstellen, das das Prüfprotokoll aufweist, wobei das erstellte und aktualisierte Prüfprotokoll die Ausführung der durchgängigen Migrationsaufgaben beschreibt. Das Prüfprotokoll kann für Projektbeteiligte zugänglich sein, die für das Prüfen der Ausführung der Datenmigration verantwortlich sind, um nachzuverfolgen, dass die Aufgaben in der geplanten Weise ausgeführt werden, und um sicherzustellen, dass die Anforderungen an die Durchführung der Datenmigration erfüllt werden. Jedes der Ereignisprotokolle und jede der Warnungen von den Servern der Datenmigrationsquelle und des Datenmigrationsziels, unter anderem Protokolle von Netzwerkeinheiten, Betriebssystemprotokolle, Benutzerzugriffsprotokolle usw., die den durchgängigen Migrationsaufgaben zugehörig sind, sowie Ausgaben aus dem Datenmigrationstool, können zu einem Teil des Prüfprotokolls werden und in den Blöcken des Blockchain-Netzwerks gespeichert werden. Zu einem Beispiel eines Blockchain-Netzwerks kann ein Peer-to-Peer-Netzwerk (P2P-Netzwerk) zählen. Alle Ereignisprotokolle, Warnungen und anderen Assets, die als Blöcke in der Blockchain aufgezeichnet werden, können mit einem Zeitstempel versehen, mit einem Hash versehen und über alle Knoten des Blockchain-Netzwerks hinweg gespeichert werden. Alle Einträge werden als Blöcke zur Blockchain hinzugefügt, die Einträge werden durch jeden der Knoten des Blockchain-Netzwerks als gültig nachgeprüft, und zum Blockchain-Netzwerk hinzugefügte Blöcke können nicht modifiziert oder manipuliert werden.
  • Das eine oder die mehreren digitalen Assets, die das Prüfprotokoll aufweisen können, können von jeweiligen Überwachungsservern, Protokollierungsservern zu Knoten eines Blockchain-Netzwerks weitergeleitet und/oder aus Migrationstools zu Knoten eines Blockchain-Netzwerks ausgegeben werden, das durch eine Blockchain-Plattform genutzt wird, indem eine Funktionalität einer Anwendungsprogrammierschnittstelle (Application Programming Interface, API) verwendet wird, um Anwendungscode auszuführen, um eine oder mehrere Blockchain-Transaktionen zu realisieren. Administratoren und/oder Prüfer, die für ein Nachverfolgen des Fortschritts der Aufgaben verantwortlich sind, können über die Blockchain-Plattform auf die Blöcke des Prüfprotokolls zugreifen und diese bearbeiten, das/die Ledger/s abfragen, die das Prüfprotokoll enthalten, weitere Analysen durchführen und/oder eine oder mehrere Blockchain-Anwendungen verwenden und/oder benutzerfreundliche Berichte aus den Ledger-Informationen erzeugen. Erzeugte Berichte können durch Clients angezeigt werden, die mit der Blockchain-Plattform verbunden sind, wobei die Clients mit den Datenmigrationsquellen oder den Datenmigrationszielen und/oder anderen Projekt beteiligten verbunden sind, um allen Teams oder Gruppen, die an den durchgängigen Datenmigrationsaufgaben beteiligt sind, ein Fortschreiten der Aufgaben anzuzeigen. Dementsprechend wird allen Teilnehmern und Prüfern der durchgängigen Migration ermöglicht, eine alleinige, nicht manipulierte Quelle zu beobachten, die den gesamten Ablauf der Ereignisse der durchgängigen Migration beschreibt.
  • DATENVERARBEITUNGSSYSTEM
  • Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt in einem beliebigen möglichen Integrationsgrad technischer Einzelheiten handeln. Das Computerprogrammprodukt kann (ein) durch einen Computer lesbare(s) Speichermedium (oder -medien) enthalten, auf dem/denen die durch einen Computer lesbaren Programmanweisungen gespeichert sind, um einen Prozessor zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
  • Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine physische Einheit handeln, auf der Anweisungen zur Verwendung durch eine Einheit zur Ausführung von Anweisungen aufbewahrt und gespeichert sein können. Bei dem durch einen Computer lesbaren Speichermedium kann es sich zum Beispiel, ohne auf diese beschränkt zu sein, um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder eine beliebige geeignete Kombination des Vorstehenden handeln. Eine nicht erschöpfende Liste genauerer Beispiele des durch einen Computer lesbaren Speichermediums enthält Folgendes: eine transportable Computerdiskette, eine Festplatte, einen Direktzugriffsspeicher (Random Access Memory, RAM), einen Nur-Lese-Speicher (Read-Only Memory, ROM), einen löschbaren programmierbaren Nur-Lese-Speicher (Erasable Programmable Read-Only Memory, EPROM oder Flash-Speicher), einen statischen Direktzugriffsspeicher (Static Random Access Memory, SRAM), einen transportablen Nur-Lese-Speicher in Form einer Compact Disc (CD-ROM), eine Digital Versatile Disc (DVD), einen Speicherstick, eine Diskette, eine mechanisch codierte Einheit wie zum Beispiel Lochkarten oder erhöhte Strukturen in einer Rille mit darauf aufgezeichneten Anweisungen oder beliebige geeignete Kombinationen des Vorstehenden. Ein durch einen Computer lesbares Speichermedium im hierin verwendeten Sinne ist nicht so auszulegen, dass es sich dabei um flüchtige Signale an sich handelt, beispielsweise um Funkwellen oder sich frei ausbreitende elektromagnetische Wellen, um elektromagnetische Wellen, die sich durch einen Hohlleiter oder andere Übertragungsmedien ausbreiten (z.B. ein Lichtwellenleiterkabel durchlaufende Lichtimpulse) oder um elektrische Signale, die über ein Kabel übertragen werden.
  • Hierin beschriebene, durch einen Computer lesbare Programmanweisungen können über ein Netzwerk, zum Beispiel das Internet, ein lokales Netzwerk ein Weitverkehrsnetzwerk und/oder ein Drahtlosnetzwerk von einem durch einen Computer lesbaren Speichermedium auf betreffende Datenverarbeitungs-/Verarbeitungseinheiten oder auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, Drahtlosübertragung, Router, Firewalls, Switches, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder eine Netzwerkschnittstelle bei jeder Datenverarbeitungs-/Verarbeitungseinheit empfängt durch einen Computer lesbare Programmanweisungen aus dem Netzwerk und leitet die durch einen Computer lesbaren Programmanweisungen zur Speicherung in einem durch einen Computer lesbaren Speichermedium innerhalb der jeweiligen Datenverarbeitungs-/Verarbeitungseinheit weiter.
  • Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Arbeitsschritten der vorliegenden Erfindung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (ISA = Instruction-Set-Architecture), Maschinenanweisungen, - maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben sind, unter anderem objektorientierte Programmiersprachen wie z.B. Smalltalk, C++ oder dergleichen sowie prozedurale Programmiersprachen wie z.B. die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die durch einen Computer lesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Softwarepaket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. Beim letztgenannten Szenario kann der entfernt angeordnete Computer mit dem Computer des Benutzers über eine beliebige Art von Netzwerk verbunden sein, unter anderem über ein lokales Netzwerk (Local Area Network, LAN) oder über ein Weitverkehrsnetzwerk (Wide Area Network, WAN), oder die Verbindung kann zu einem externen Computer hergestellt sein (zum Beispiel über das Internet unter Nutzung eines Internet-Dienstanbieters (Internet Service Provider)). Bei einigen Ausführungsformen können elektronische Schaltungen, unter anderem zum Beispiel programmierbare Logikschaltungen, vor Ort programmierbare Gatter-Anordnungen (FPGA, field programmable gate arrays) oder programmierbare Logikanordnungen (PLA, programmable logic arrays) die durch einen Computer lesbaren Programmanweisungen ausführen, indem Zustandsinformationen der durch einen Computer lesbaren Programmanweisungen genutzt werden, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Erfindung durchzuführen.
  • Aspekte der vorliegenden Erfindung sind hierin unter Bezugnahme auf Flussdiagrammdarstellungen und/oder Blockschemata von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es wird klar sein, dass jeder Block der Flussdiagramme und/oder der Blockschemata und Kombinationen von Blöcken in den Flussdiagrammen und/oder Blockschemata mit Hilfe von durch einen Computer lesbaren Programmanweisungen realisiert werden kann bzw. können.
  • Diese durch einen Computer lesbaren Programmanweisungen können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder anderer programmierbaren Datenverarbeitungsvorrichtungen bereitgestellt werden, um eine Maschine zu erzeugen, sodass die Anweisungen, die über den Prozessor des Computers oder anderer programmierbarer Datenverarbeitungsvorrichtungen ausgeführt werden, Mittel schaffen, um die in einem Block bzw. in den Blöcken des Flussdiagramms bzw. der Flussdiagramme und/oder des Blockschemas bzw. der Blockschemata angegebenen Funktionen/Aktionen zu realisieren. Diese durch einen Computer lesbaren Programmanweisungen können ebenfalls in einem durch einen Computer lesbaren Medium gespeichert sein, das einen Computer, andere programmierbare Datenverarbeitungsvorrichtungen oder andere Einheiten anweisen kann, in einer bestimmten Weise zu funktionieren, sodass das durch einen Computer lesbare Medium mit darauf gespeicherten Anweisungen ein Erzeugnis aufweist, das Anweisungen enthält, die die in einem Block bzw. in den Blöcken der Flussdiagramme und/oder der Blockschemata angegebene Funktion/Aktion realisieren.
  • Die durch einen Computer lesbaren Programmanweisungen können auch in einen Computer, in andere programmierbare Datenverarbeitungsvorrichtungen oder in andere Einheiten geladen werden, um zu bewirken, dass auf dem Computer, auf anderen programmierbaren Vorrichtungen oder anderen Einheiten eine Reihe von Arbeitsschritten ausgeführt werden, um einen mittels Computer realisierten Prozess zu schaffen, sodass die Anweisungen, die auf dem Computer, auf anderen programmierbaren Vorrichtungen oder Einheiten ausgeführt werden, die in einem Block bzw. in den Blöcken der Flussdiagramme und/oder der Blockschemata angegebenen Funktionen/Aktionen realisieren.
  • Die Flussdiagramme und Blockschemata in den Figuren veranschaulichen die Architektur, Funktionalität und Wirkungsweise möglicher Realisierungsformen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in den Flussdiagrammen bzw. in den Blockschemata ein Modul, ein Segment oder einen Abschnitt von Anweisungen darstellen, das bzw. der eine oder mehrere ausführbare Anweisungen zum Realisieren der angegebenen Logikfunktion bzw. Logikfunktionen aufweist. Bei einigen alternativen Ausführungen können die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt stattfinden. Zum Beispiel können zwei hintereinander aufgeführte Blöcke tatsächlich im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können je nach der mit den Blöcken verbundenen Funktionalität manchmal in umgekehrter Reihenfolge ausgeführt werden. Darüber hinaus ist anzumerken, dass jeder Block der dargestellten Blockschemata und/oder Flussdiagramme sowie Kombinationen von Blöcken in den dargestellten Blockschemata und/oder Flussdiagrammen mit Hilfe zweckgebundener hardwaregestützter Systeme zum Ausführen der angegebenen Funktionen bzw. Aktionen oder mit Hilfe von Kombinationen aus zweckgebundener Hardware und zweckgebundenen Computeranweisungen realisiert werden kann bzw. können.
  • Die Beschreibungen der verschiedenen Ausführungsformen der vorliegenden Erfindung sollen der Veranschaulichung dienen, sind jedoch nicht als erschöpfend oder auf die offenbarten Ausführungsformen beschränkt gedacht. Für Fachleute sind viele Modifikationen und Variationen denkbar, ohne dass diese eine Abweichung vom Schutzbereich und Grundgedanken der Erfindung darstellen würden. Die hierin verwendete Terminologie wurde gewählt, um die Grundgedanken der Ausführungsform, die praktische Anwendung bzw. die technische Verbesserung gegenüber den auf dem Markt vorgefundenen Technologien auf bestmögliche Weise zu erläutern bzw. anderen mit entsprechenden Fachkenntnissen das Verständnis der hierin offenbarten Ausführungsformen zu ermöglichen.
  • 1 veranschaulicht ein Blockschema eines Datenverarbeitungssystems 10, bei dem es sich um ein vereinfachtes Beispiel eines Datenverarbeitungssystems handeln kann, das in der Lage ist, einen oder mehrere hierin beschriebene Datenverarbeitungs-Arbeitsschritte durchzuführen. Das Datenverarbeitungssystem 10 kann für ein oder mehrere Datenverarbeitungssysteme oder eine oder mehrere Datenverarbeitungseinheiten stehen, die in einer Datenverarbeitungsumgebung 200, 240, 300, 500, 550 abgebildet sind, die in den 2A bis 6 gezeigt und gemäß den Ausführungsformen der vorliegenden Offenbarung hierin beschrieben sind. Es sollte klar sein, dass 1 lediglich eine Veranschaulichung einer Realisierungsform eines Datenverarbeitungssystems 10 bereitstellt und nicht als Einschränkung in Bezug auf die Umgebungen gedacht ist, in denen unterschiedliche Ausführungsformen realisiert werden können. Allgemein können die in 1 veranschaulichten Komponenten für eine beliebige elektronische Einheit stehen, die in der Lage ist, durch eine Maschine lesbare Programmanweisungen auszuführen.
  • Zwar zeigt 1 ein Beispiel eines Datenverarbeitungssystems 10, ein Datenverarbeitungssystem 10 kann jedoch unterschiedliche Formen annehmen, unter anderem reale, virtualisierte und containerisierte Formen. Zum Beispiel kann das Datenverarbeitungssystem 10 die Form von Desktop-Personal-Computersystemen, Laptops, Notebooks, Tablets, Servern, Clients, Netzwerkeinheiten, Endgeräten, Thin Clients, Thick Clients, Kiosken, mobilen Datenübertragungseinheiten (z.B. Smartphones), Augmented-Reality-Einheiten (AR-Einheiten), Virtual-Reality-Headsets (VR-Headsets), Multiprozessorsystemen, auf Mikroprozessoren beruhenden Systemen, Minicomputersystemen, Großrechnersystemen, intelligenten mobilen Endgeräten (d.h. Smartglasses, Smartwatches usw.), Internet-of-Things-Einheiten (loT-Einheiten) usw. annehmen. Die Datenverarbeitungssysteme 10 können in einer vernetzten Datenverarbeitungsumgebung, einer virtuellen Datenverarbeitungsumgebung, einer containerisierten Datenverarbeitungsumgebung, einer Datenverarbeitungsumgebung ohne Server und/oder einer Kombination von Umgebungen davon arbeiten, die ein beliebiges der Systeme oder eine beliebige der Einheiten, die hierin beschrieben sind, und/oder zusätzliche Datenverarbeitungseinheiten oder -systeme umfassen kann, die einem Fachmann bekannt sind oder die er verwendet.
  • Das Datenverarbeitungssystem 10 kann eine Datenübertragungsstruktur 22 umfassen, die elektronische Datenübertragung zwischen einem oder mehreren Prozessor(en) 13, Speicher 15, Permanentspeicher 16, Cache 17, Datenübertragungseinheit 21 und einer oder mehreren Eingabe/Ausgabe-Schnittstellen (E/A-Schnittstelle(n)) 25 bereitstellen kann. Die Datenübertragungsstruktur 22 kann mit einer beliebigen Architektur realisiert werden, die zum Durchleiten von Daten und/oder Steuerungsinformationen zwischen Prozessor(en) 13, Speicher 15, Cache 17, externen Einheiten 27 und beliebigen anderen Hardwarekomponenten innerhalb eines Datenverarbeitungssystems 10 ausgestaltet ist. Zum Beispiel kann die Datenübertragungsstruktur 22 mit einem oder mehreren Bussen realisiert sein.
  • Bei dem Speicher 15 und dem Permanentspeicher 16 kann es sich um durch einen Computer lesbare Speichermedien handeln. Ausführungsformen des Speichers 15 können Direktzugriffsspeicher (RAM) und Cache-Speicher 17 umfassen. Im Allgemeinen kann der Speicher 15 beliebige geeignete flüchtige oder nicht-flüchtige, durch einen Computer lesbare Speichermedien umfassen und kann Firmware oder andere Software aufweisen, die in den Speicher 15 programmiert ist. Softwareprogramme 24, Anwendungen 107a, 107b (die hierin allgemein als „Anwendungen 107“) bezeichnet werden, Betriebslasten 109a, 109b (die hierin allgemein als „Betriebslasten 109“ bezeichnet werden) und Dienste, die hierin beschrieben sind, können im Speicher 15, Cache 17 und/oder Permanentspeicher 16 zur Ausführung und oder zum Zugriff durch einen oder mehrere der jeweiligen Prozessoren 13 des Datenverarbeitungssystems 10 gespeichert sein.
  • Permanentspeicher 16 kann eine Mehrzahl von magnetischen Festplattenlaufwerken umfassen. Alternativ oder zusätzlich zu magnetischen Festplattenlaufwerken kann der Permanentspeicher 16 ein oder mehrere Festkörperlaufwerke, Halbleiterspeichereinheiten, Nur-Lese-Speicher (read-only memories, ROM), löschbare programmierbare Nur-Lese-Speicher (erasable programmable read-only memories, EPROM), Flash-Speicher oder beliebige andere, durch einen Computer lesbare Speichermedien umfassen, die in der Lage sind, Programmanweisungen oder digitale Informationen zu speichern. Ausführungsformen der durch den Permanentspeicher 16 verwendeten Medien können außerdem auswechselbar sein. Zum Beispiel kann als Permanentspeicher 16 ein auswechselbares Festplattenlaufwerk verwendet werden. Zu anderen Beispielen gehören optische und magnetische Platten, USB-Sticks und Smart-Cards, die in ein Laufwerk zum Übertragen auf ein weiteres, durch einen Computer lesbares Speichermedium eingeführt werden, das ebenfalls Teil des Permanentspeichers 16 ist.
  • Dank der Datenübertragungseinheit 21 ist eine elektronische Datenübertragung zwischen Datenverarbeitungssystemen 10 möglich, zum Beispiel zwischen einem oder mehreren Computersystemen oder einer oder mehreren Computereinheiten über ein Datenübertragungsnetzwerk. Bei der beispielhaften Ausführungsform kann die Datenübertragungseinheit 21 Netzwerkadapter oder -schnittstellen wie z.B. TCP/IP-Adapterkarten, WLAN-Drahtlosschnittstellenkarten oder eine WLAN-Antenne, 3G-, 4G- oder 5G-Mobilfunknetz-Schnittstellenkarten oder andere drahtgebundene Datenaustauschverbindungen oder Drahtlos-Datenaustauschverbindungen umfassen. Datenaustauschnetzwerke können zum Beispiel Kupferleitungen, Lichtwellenleiter, Drahtlosübertragung, Router, Firewalls, Switches, Gateway-Computer, Edge-Server und/oder andere Netzwerkhardware aufweisen, die Teil von Knoten von Einheiten, Systemen, Hosts, Endgeräten des Datenübertragungsnetzwerks oder von anderen Netzwerkcomputersystemen sein können. Software und Daten, die verwendet werden, um Ausführungsformen der vorliegenden Erfindung in die Praxis umzusetzen, können über die Datenübertragungseinheit 21 auf die Computersysteme heruntergeladen werden, die in einer Netzwerkumgebung arbeiten (z.B. über das Internet, ein lokales Netzwerk oder andere Weitverkehrsnetzwerke). Von der Datenübertragungseinheit 21 können die Software und die Daten von Programmen 24, Anwendungen 107, Betriebslasten 109 oder Diensten in den Permanentspeicher 16 und im Speicher 15 und/oder Cache 17 gespeichert werden.
  • Eine oder mehrere E/A-Schnittstellen 25 können die Eingabe und Ausgabe von Daten mit anderen Einheiten ermöglichen, die mit dem Datenverarbeitungssystem 10 verbunden sein können. Zum Beispiel kann die E/A-Schnittstelle 25 eine Verbindung zu einer oder mehreren externen Einheiten 27 wie z.B. zu einer oder mehreren loT-Einheiten, Aufzeichnungseinheiten wie z.B. Audioaufzeichnungseinheiten, Mikrofonen, Kameras, einem oder mehreren Sensoren, Eingabeeinheiten wie z.B. einer Tastatur, einer Computermaus, einem Touchscreen, einer virtuellen Tastatur, einem Touchpad, einer Zeigeeinheit oder zu anderen Benutzerschnittstelleneinheiten bereitstellen. Zu externen Einheiten 27 können außerdem transportable, durch einen Computer lesbare Speichermedien wie zum Beispiel USB-Sticks, transportable optische oder magnetische Platten und Speicherkarten gehören. Die E/A-Schnittstelle 25 stellt eine Verbindung zu einer durch den Menschen lesbaren Anzeige 28 her. Die Anzeige 28 stellt einen Mechanismus bereit, um einem Benutzer Daten anzuzeigen, und es kann sich dabei zum Beispiel um einen Computermonitor, einen Bildschirm, ein Fernsehgerät, einen Projektor, eine Anzeigetafel usw. handeln. Anzeigeeinheiten 28 können außerdem in eine Anzeige eingebunden sein und als Touchscreen als Bestandteil einer integrierten Anzeige eines Tablet-Computers oder einer mobilen Datenverarbeitungseinheit fungieren.
  • SYSTEM ZUM AUSFÜHREN EINES MITTELS BLOCKCHAINS REALISIERTEN DATENMIGRATIONSPRÜFPROTOKOLLS
  • Aspekte der vorliegenden Offenbarung betreffen allgemein das Gebiet der Blockchain-Speicherung und insbesondere ein Realisieren von Blockchains zum sicheren Übertragen von Nachweisen, die die Ausführung einer oder mehrerer Aufgaben im Zusammenhang mit der durchgängigen Datenmigration beschreiben, unter anderem von Nachweisen, die Blöcken eines Blockchain-Netzwerks durch Anwendungsprotokolle, Betriebssystemprotokolle, Benutzerzugriffsprotokolle, Netzwerkeinheitenprotokolle und/oder Migrationstools oder andere Ereignisdatensätze (die hierin zusammenfassend als „Asset“ der „digitale Assets“ bezeichnet werden) bereitgestellt werden, wodurch ein sicheres Ledger erstellt wird, das ein Prüfprotokoll 129 aufweist, dem jeder Projektbeteiligte vertraut, der eine oder mehrere Aufgaben des durchgängigen Migrationsprozesses durchführt. Während der durchgängige Migrationsprozess fortgesetzt wird und letztlich die Übertragung von Daten zwischen Netzwerken, Rechenzentren, privaten und/oder öffentlichen Clouds ausführt, können die Administratoren und/oder Prüfer, die für das Beaufsichtigen und/oder Prüfen der Ausführung der durchgängigen Migrationsaufgabe 111 verantwortlich sind, über das Blockchain-Netzwerk 130 auf die im Prüfprotokoll 129 gespeicherten Prüfdaten zugreifen, indem das Ledger abgefragt wird, das durch die Peer-Knoten 104 bis 110 des Blockchain-Netzwerks 130 gespeichert wurde. Prüfer und Administratoren können den Fortschritt der Datenmigration prüfen, den Fortschritt einer oder mehrerer verantwortlicher Parteien nachverfolgen, denen eine oder mehrere der Aufgaben zugewiesen sind, beliebige Fehler analysieren und sicher nachprüfen, dass die Übertragung der Daten erfolgreich durchgeführt wird.
  • Es versteht sich ohne Weiteres, dass die vorliegenden Komponenten, die in diesem Dokument allgemein beschrieben und in den Figuren veranschaulicht sind, in einer großen Vielfalt unterschiedlicher Konfigurationen angeordnet und ausgestaltet sein können. Dementsprechend ist die folgende ausführliche Beschreibung der Ausführungsformen von mindestens einem aus einem Verfahren, einer Vorrichtung, einem nicht-flüchtigen, durch einen Computer lesbaren Speichermedium und einem System, die in den beigefügten Figuren wiedergegeben sind, nicht als Einschränkung des beanspruchten Schutzumfangs der Anmeldung, sondern lediglich als repräsentativ für ausgewählte Ausführungsformen gedacht.
  • Die vorliegenden Merkmale, Strukturen oder Eigenschaften, die in dieser Beschreibung beschrieben sind, können bei einer oder mehreren Ausführungsformen in einer beliebigen geeigneten Weise kombiniert oder entfernt werden. Zum Beispiel bezieht sich die Verwendung der Formulierungen „beispielhafte Ausführungsformen“, „einige Ausführungsformen“ oder anderer ähnlicher Ausdrücke in der gesamten Beschreibung auf die Tatsache, dass ein bestimmtes Merkmal, eine bestimmte Struktur oder Eigenschaft, die in Verbindung mit der Ausführungsform beschrieben sind, bei mindestens einer Ausführungsform enthalten sein kann. Dementsprechend bezieht sich das Auftreten der Formulierungen „beispielhafte Ausführungsformen“, „einige Ausführungsformen“, „bei einigen Ausführungsformen“, „bei anderen Ausführungsformen“ oder anderer ähnlicher Ausdrücke in der gesamten Beschreibung nicht zwangsläufig in allen Fällen auf dieselbe Gruppe von Ausführungsformen, und die beschriebenen Merkmale, Strukturen oder Eigenschaften können bei einer oder mehreren Ausführungsformen in einer beliebigen geeigneten Weise kombiniert oder entfernt werden. Ferner kann in den FIGUREN eine beliebige Verbindung zwischen Elementen Einweg- und/oder Zweiweg-Datenübertragung zulassen, selbst wenn es sich bei der abgebildeten Verbindung um einen Einweg- oder Zweiweg-Pfeil handelt. Ebenso kann es sich bei einer beliebigen in den Zeichnungen abgebildeten Einheit auch um eine andere Einheit handeln. Wenn zum Beispiel eine mobile Einheit gezeigt ist, die Daten sendet, könnte auch eine drahtgebundene Einheit verwendet werden, um die Daten zu senden.
  • Zwar wird bei der Beschreibung von Ausführungsformen möglicherweise der Begriff „Nachricht“ verwendet, die Anmeldung kann darüber hinaus jedoch auf viele Arten von Netzwerken und Daten angewendet werden. Zwar sind möglicherweise bei beispielhaften Ausführungsformen bestimmte Arten von Verbindungen, Nachrichten und Signalisierung abgebildet, die Anmeldung ist des Weiteren jedoch nicht auf eine bestimmte Art von Verbindung, Nachricht und Signalisierung beschränkt.
  • Hierin ausführlich beschrieben sind ein Verfahren, ein System und ein Computerprogrammprodukt, die eine Blockchain/Hyperledger-Struktur nutzen, um ein Prüfprotokoll 129 sicher zu erstellen, das den Fortschritt und/oder die Ausführung einer oder mehrerer durchgängiger Datenmigrationsaufgaben 111 beschreibt, die während der Migration von Daten zwischen einer oder mehreren Migrationsdatenquellen wie z.B. einem Rechenzentrum 101 oder Cloud-Netzwerken 250 (öffentlich oder privat), Datenmigrationszielen wie z.B. einem Ziel-Rechenzentrum 125 oder einem Ziel-Cloud-Netzwerk 250 durchgeführt werden. Unter Bezugnahme auf die Zeichnungen stellen die 2A bis 6 einen Ansatz dar, der unter Verwendung eines oder mehrerer Datenverarbeitungssysteme 10 ausgeführt werden kann, die innerhalb einer Datenverarbeitungsumgebung 200, 240, 300, 500, 550 und Variationen davon arbeiten, um Systeme, Verfahren und Computerprogrammprodukte eines mittels Blockchains realisierten Datenmigrationsprüfprotokolls 129 zu realisieren. Ausführungsformen der Datenverarbeitungsumgebung in 200, 240, 300, 500, 550 können eine oder mehrere Datenverarbeitungssysteme 10 umfassen, die untereinander als Teil eines Datenverarbeitungsnetzwerks verbunden sind. Bei den untereinander verbundenen Datenverarbeitungssystemen 10, die über das Datenverarbeitungsnetzwerk Daten austauschen, kann es sich um spezialisierte Systeme oder Einheiten handeln, die die Verbindung eines oder mehrerer Rechenzentren 101, 125 untereinander, die einen Protokollierungsserver 103 und/oder einen Überwachungsserver 105 aufweisen können; Client-Einheiten 119, 123, 127 und/oder Blockchain-Plattform(en) 112, auf denen Blockchain-Knoten 102 eines Blockchain-Netzwerks 130 gehostet sind, umfassen, ohne auf diese beschränkt zu sein.
  • Die in den 2A bis 6 gezeigten spezialisierten Datenverarbeitungssysteme 10 können nicht nur die Elemente der Systeme und Einheiten aufweisen, die in den Zeichnungen der 2A bis 6 dargestellt sind, sondern die in den 2A bis 6 dargestellten spezialisierten Datenverarbeitungssysteme können ferner ein oder mehrere Elemente eines Datenverarbeitungssystems 10 enthalten, das in 1 gezeigt und vorstehend beschrieben ist. Obwohl in den Figuren nicht gezeigt, können ein oder mehrere Elemente des Datenverarbeitungssystems 10 in Ausführungsformen der Rechenzentren 101, 125, des Protokollierungsservers 103a, 103b, des Überwachungsservers 105a, 105b, der Client-Einheiten 119, 123, 127 und von Systemen integriert sein, die die Blockchain-Plattform 112 und/oder die Blockchain-Knoten 102 hosten, die das Blockchain-Netzwerk 130 bilden, einschließlich (und ohne auf diese beschränkt zu sein) der Integration eines oder mehrerer Prozessoren 13, von Programmen 24, des Speichers 15, des Permanentspeichers 16, des Cache 17, der Datenübertragungseinheit 21, der Eingabe/Ausgabe-Schnittstellen (E/A-Schnittstellen) 25, der externen Einheit(en) 27 und/oder der Anzeigeeinheit 28.
  • Unter Bezugnahme auf die Zeichnungen stellen die 2A bis 2B Beispiele von Datenverarbeitungsumgebungen 200, 240 dar, die in der Lage sind, ein mittels Blockchains realisiertes Prüfprotokoll 129 auszuführen, um den Fortschritt von durchgängigen Migrationsaufgaben 111 (die hierin auch als „Aufgaben 111“ bezeichnet werden) sicher zu speichern und nachzuverfolgen, während die Aufgaben 111 durchgeführt und beendet werden, Termine zum Beenden von Aufgaben 111 nicht eingehalten werden oder zu Fehlern führen und/oder Warnungen ausgegeben werden. Wie in den 2A bis 2B gezeigt, können die durchgängigen Migrationsaufgaben 111 Aufgaben aufweisen, die als Teil der Datenmigrationsprozedur durchgeführt werden können, bevor die Datenmigration stattfindet (Vormigrationsaufgaben 113), Aufgaben, die Teil des Migrierens der Daten von einer Datenmigrationsquelle auf ein Datenmigrationsziel (Migrationsaufgaben 115), und Aufgaben, die nach der Beendigung der Datenmigration auf das Datenmigrationsziel ausgeführt werden können (Nachmigrationsaufgaben 117).
  • Wie bei den Ausführungsformen der 2A bis 2B gezeigt, können Beispiele von Datenmigration, unter anderem die Migration einer oder mehrerer Anwendungen 107 und/oder Betriebslasten 109, durchgeführt werden als Teil von: einer Migration von einer Datenmigrationsquelle (d.h. Quell-Rechenzentrum 101) auf ein Datenmigrationsziel (d.h. Ziel-Rechenzentrum 125, wie in 2A gezeigt); von einem Quell-Rechenzentrum 101 auf ein privates oder öffentliches Cloud-Netzwerk 250 (wie in 2B gezeigt); und/oder bei einigen Ausführungsformen als Teil einer Migration von einem ersten privaten oder öffentlichen Cloud-Netzwerk 250 auf ein zweites privates oder öffentliches Cloud-Netzwerk 250.
  • Bei Cloud- Netzwerken 250 handelt es sich um ein Modell zur Bereitstellung von Diensten, um einen praktischen und bei Bedarf verfügbaren Netzwerkzugriff auf ein gemeinsam genutztes Reservoir konfigurierbarer Datenverarbeitungsressourcen (z.B. Netzwerke, Netzwerkbandbreite, Server, Verarbeitung, Hauptspeicher, Speicher, Anwendungen, virtuelle Maschinen und Dienste) zu ermöglichen, die bei minimalem Verwaltungsaufwand oder minimaler Interaktion mit einem Anbieter des Dienstes schnell bereitgestellt und freigegeben werden können. Ein Cloud-Modell kann mindestens fünf Eigenschaften, mindestens drei Dienstmodelle und mindestens vier Bereitstellungsmodelle umfassen.
  • Die Eigenschaften sind folgende:
  • On-demand Self Service (Selbstzuweisung bei Bedarf): Ein Cloud-Kunde kann sich einseitig Datenverarbeitungsfunktionen wie zum Beispiel Serverzeit und Netzwerkspeicher dem Bedarf entsprechend automatisch bereitstellen, ohne dass eine Interaktion von Menschen mit dem Anbieter des Dienstes erforderlich ist.
  • Broad Network Access (umfassender Netzwerkzugriff): Es stehen Funktionen über ein Netzwerk zur Verfügung, auf die der Zugriff über Standardmechanismen erfolgt, die die Verwendung heterogener Thin- oder Thick-Client-Plattformen (z.B. Mobiltelefone, Laptops, intelligente mobile Einheiten (smart devices), loT-Einheiten, Virtual Assistant Hubs usw.) unterstützen.
  • Resource Pooling (Ressourcenbündelung): Die Datenverarbeitungsressourcen des Anbieters werden gebündelt, um mehrere Kunden unter Verwendung eines Mehrfachnutzermodells mit unterschiedlichen physischen und virtuellen Ressourcen zu bedienen, die entsprechend dem Bedarf dynamisch zugewiesen und neu zugewiesen werden. Es besteht eine gefühlte Ortsunabhängigkeit in der Weise, dass der Kunde im Allgemeinen keine Kontrolle oder Kenntnis über den exakten Ort der bereitgestellten Ressourcen hat, aber möglicherweise in der Lage ist, den Ort auf einer höheren Abstraktionsebene (z.B. Land, Bundesstaat oder Rechenzentrum) anzugeben.
  • Rapid Elasticity (rasche Elastizität): Funktionen können rasch und elastisch bereitgestellt werden, in einigen Fällen automatisch, um den Funktionsumfang schnell nach oben anzupassen, und schnell freigegeben werden, um den Funktionsumfang schnell nach unten anzupassen. Für den Kunden entsteht oftmals der Eindruck, dass die zur Bereitstellung verfügbaren Funktionen unbegrenzt sind und jederzeit in jeder beliebigen Menge gekauft werden können.
  • Measured Service (bemessener Dienst): Cloud-Systeme steuern und optimieren automatisch die Ressourcenverwendung durch Nutzung einer Bemessungsfunktion auf einer bestimmten Abstraktionsebene, die für die Art des Dienstes geeignet ist (z.B. Speicher, Verarbeitung, Bandbreite und aktive Benutzerkonten). Die Ressourcennutzung kann überwacht, gesteuert und gemeldet werden, sodass Transparenz sowohl für den Anbieter als auch den Kunden des genutzten Dienstes besteht.
  • Die Dienstmodelle sind folgende:
  • Software as a Service (SaaS) (Software als Dienst): Die dem Kunden bereitgestellte Funktion besteht darin, die auf einer Cloud-Infrastruktur ausgeführten Anwendungen des Anbieters zu nutzen. Die Anwendungen sind von verschiedenen Client-Einheiten aus über eine Thin-Client-Schnittstelle wie z.B. über einen Web-Browser (z.B. auf dem Web beruhende eMail) zugänglich. Der Kunde verwaltet oder steuert die zugrunde liegende Cloud-Infrastruktur, unter anderem Netzwerke, Server, Betriebssysteme, Speicherplatz oder sogar einzelne Anwendungsfähigkeiten, nicht, abgesehen von der möglichen Ausnahme eingeschränkter benutzerspezifischer Konfigurationseinstellungen von Anwendungen.
  • Platform as a Service (PaaS) (Plattform als Dienst): Die dem Kunden bereitgestellte Funktion besteht darin, auf der Cloud-Infrastruktur vom Kunden erzeugte oder erworbene Anwendungen bereitzustellen, die unter Verwendung von Programmiersprachen und Programmierwerkzeugen erzeugt wurden, die durch den Anbieter unterstützt werden. Der Kunde verwaltet oder steuert die zugrunde liegende Cloud-Infrastruktur, unter anderem Netzwerke, Server, Betriebssysteme oder Speicherplatz, nicht, hat aber die Kontrolle über die bereitgestellten Anwendungen und möglicherweise über Konfigurationen der Hosting-Umgebung der Anwendungen.
  • Infrastructure as a Service (laaS) (Infrastruktur als Dienst): Die dem Kunden bereitgestellte Funktion besteht darin, Verarbeitung, Speicherplatz, Netzwerke und andere grundlegende Datenverarbeitungsressourcen bereitzustellen, wobei der Kunde beliebige Software bereitstellen und ausführen kann, zu der Betriebssysteme und Anwendungen gehören können. Der Kunde verwaltet oder steuert die zugrunde liegende Cloud-Infrastruktur nicht, hat aber die Kontrolle über Betriebssysteme, Speicherplatz sowie bereitgestellte Anwendungen und möglicherweise eine eingeschränkte Kontrolle über ausgewählte Vernetzungskomponenten (z.B. Host-Firewalls).
  • Die Bereitstellungsmodelle sind folgende:
  • Private Cloud (private Cloud): Die Cloud-Infrastruktur wird ausschließlich für eine Organisation betrieben. Sie kann durch die Organisation oder einen Dritten verwaltet werden und in den Räumen der Organisation oder außerhalb davon vorhanden sein.
  • Community Cloud (Community-Cloud): Die Cloud-Infrastruktur wird von mehreren Organisationen genutzt und unterstützt eine bestimmte Benutzergemeinschaft, die gemeinsame Interessen hat (z.B. Gesichtspunkte im Zusammenhang mit einer Aufgabe, mit Sicherheitsanforderungen, Richtlinien und mit der Einhaltung von Gesetzen und Vorschriften). Sie kann durch die Organisation oder einen Dritten verwaltet werden und in den Räumen der Organisation oder außerhalb davon vorhanden sein.
  • Public Cloud (öffentliche Cloud): Die Cloud-Infrastruktur wird der allgemeinen Öffentlichkeit oder einer großen Gruppe in einem Industriezweig zur Verfügung gestellt und ist Eigentum einer Organisation, die Cloud-Dienste verkauft.
  • Hybrid cloud (Hybrid-Cloud): Die Cloud-Infrastruktur ist eine Mischung aus zwei oder mehreren Clouds (Private Cloud, Community Cloud oder Public Cloud), die eigenständige Einheiten bleiben, aber über eine standardisierte oder proprietäre Technologie miteinander verbunden sind, die die Portierbarkeit von Daten und Anwendungen ermöglicht (z.B. Cloud-Zielgruppenverteilung (Cloud Bursting) zum Lastausgleich zwischen Clouds).
  • Eine Cloud-Computing-Umgebung 300 ist dienstorientiert, wobei der Schwerpunkt auf Zustandslosigkeit, geringer Kopplung, Modularität und semantischer Interoperabilität liegt. Im Mittelpunkt des Cloud-Computing steht eine Infrastruktur, die ein Cloud Netzwerk 250 aus untereinander verbundenen Knoten 310 umfasst.
  • Unter Bezugnahme auf die Zeichnungen ist 3 ein veranschaulichendes Beispiel einer Cloud-Computing-Umgebung 300. Wie gezeigt enthält die Cloud-Computing-Umgebung 300 einen oder mehrere Cloud-Computing-Knoten 310, auf die Kunden unter Verwendung von Client-Einheiten zugreifen können, die durch Cloud-Nutzer betrieben oder konfiguriert werden. Knoten 310 der Cloud-Computing-Umgebung 300 wie z.B. ein oder mehrere Host-Systeme oder Edge-Einheiten können wie hierin vorstehend beschrieben untereinander Daten austauschen und in einem oder mehreren Netzwerken wie z.B. privaten Clouds, Community-Clouds, öffentlichen Clouds oder Hybrid-Clouds oder einer Kombination davon physisch oder virtuell gruppiert sein (nicht gezeigt). Dies ermöglicht der Cloud-Computing-Umgebung 300, Infrastruktur, Plattformen und/oder Software als Dienste zu bieten, für die ein Cloud-Nutzer keine Ressourcen auf den Client-Einheiten 318a bis 318n zu verwalten braucht, die mit den Knoten 310 des Cloud-Netzwerks 250 verbunden sind oder Daten mit diesen austauschen. Es versteht sich, dass die Arten von Client-Einheiten 318a bis 318n, die mit der Cloud-Computing-Umgebung 300 verbunden sind, lediglich als veranschaulichend gedacht sind und dass die Datenverarbeitungsknoten 310 der Cloud-Computing-Umgebung 300 über eine beliebige Art von Netzwerk und/oder netzwerkadressierbarer Verbindung mit einer beliebigen Art von computergestützter Einheit Daten austauschen können (z.B. unter Verwendung eines Web-Browsers).
  • Unter Bezugnahme auf FIG: 4 ist dort ein Satz von funktionalen Abstraktionsschichten gezeigt, die durch die Cloud-Computing-Umgebung 300 bereitgestellt werden. Es sollte von vornherein klar sein, dass die in 4 gezeigten Komponenten, Schichten und Funktionen lediglich veranschaulichend sein sollen und Ausführungsformen der Erfindung nicht darauf beschränkt sind. Wie dargestellt werden die folgenden Schichten und entsprechenden Funktionen bereitgestellt:
  • Eine Hardware- und Softwareschicht 460 umfasst Hardware- und Softwarekomponenten. Zu Beispielen von Hardware-Komponenten gehören Großrechner 461; auf der RISC-Architektur (RISC = Reduced Instruction Set Computer) beruhende Server 462; Server 463, unter anderem Protokollierungsserver 103 und Überwachungsserver; Blade-Server 464; Speichereinheiten 465; und Netzwerke und Vernetzungskomponenten 466. Bei einigen Ausführungsformen umfassen Softwarekomponenten eine Netzwerk-Anwendungsserversoftware 467 und eine Datenbanksoftware 468.
  • Eine Virtualisierungsschicht 470 stellt eine Absorptionsschicht bereit, von der aus die folgenden Beispiele von virtuellen Einheiten bereitgestellt sein können: virtuelle Server 471; virtueller Speicher 472; virtuelle Netzwerke 473, unter anderem virtuelle private Netzwerke; virtuelle Anwendungen und Betriebssysteme 474; und virtuelle Clients 475.
  • Bei einem Beispiel kann eine Verwaltungsschicht 480 die nachfolgend beschriebenen Funktionen bereitstellen. Eine Ressourcenbereitstellung 481 stellt eine dynamische Beschaffung von Datenverarbeitungsressourcen sowie anderen Ressourcen bereit, die genutzt werden, um Aufgaben innerhalb der Cloud-Computing-Umgebung 300 durchzuführen. Eine Gebührenerfassung und Preisberechnung 482 stellt eine Kostenverfolgung bereit, während Ressourcen innerhalb der Cloud-Computing-Umgebung 300 genutzt werden, sowie eine Abrechnung und Fakturierung der Inanspruchnahme dieser Ressourcen. Bei einem Beispiel können diese Ressourcen Anwendungssoftwarelizenzen umfassen. Eine Sicherheit stellt eine Identitätsüberprüfung für Cloud-Kunden und Aufgaben sowie einen Schutz für Daten und andere Ressourcen bereit. Ein Benutzerportal 483 stellt Kunden und Systemadministratoren einen Zugang zur Cloud-Computing-Umgebung 300 bereit. Eine Dienstgüteverwaltung (Service Level Management) 484 stellt eine Zuordnung und Verwaltung von Cloud-Computing-Ressourcen bereit, sodass die jeweils erforderliche Dienstgüte erreicht wird. Eine Planung und Erfüllung von Dienstgütevereinbarungen 485 (Service Level Agreement (SLA), Servicevertrag) stellt die Vorausplanung für und die Beschaffung von Cloud-Computing-Ressourcen bereit, für die auf der Grundlage eines SLA zukünftige Anforderungen erwartet werden.
  • Eine Betriebslastschicht 490 stellt Beispiele von Funktionalitäten bereit, für die die Cloud-Computing-Umgebung genutzt werden kann. Zu Beispielen von Betriebslasten 109 und Funktionen, die von dieser Schicht aus bereitgestellt werden können, gehören Softwareentwicklung und Lebenszyklusverwaltung 491, Verarbeitung 492 von Datenanalysen, Bereitstellung 493 von Schulungen in virtuellen Schulungsräumen, Transaktionsverarbeitung 494, Blockchain-Anwendung 124 und/oder eine API 122 zum Zugreifen auf und zum Übertragung von Daten mit Peer-Knoten 104 bis 110 der Blockchain-Plattform 112. Zum Beispiel dient die Anwendung 124 und/oder die API 122 zum Aufrufen von Chaincode/Smart Contracts (was im Folgenden ausführlich erläutert wird), vorgeschlagene aktualisierte Blöcke, die zur Blockchain hinzugefügt werden sollen, und/oder um ein durch Peer-Knoten 104 bis 110 gespeichertes Ledger abzufragen, das das Prüfprotokoll 129 aufweist.
  • Unter Bezugnahme auf die Zeichnungen stellen die 2A bis 2B Beispiele von Blockschemata der Datenverarbeitungsumgebungen 200, 240 dar, die unter Verwendung eines Blockchain-Netzwerks 130 zum Erstellen, Speichern und/oder Aktualisieren eines Ledgers in einer Blockchain in der Lage sind, das ein Prüfprotokoll 129 aufweist. Ausführungsformen eines Prüfprotokolls 129 können zum Zweck des Nachverfolgens und Überwachens des Fortschritts der Aufgaben 111 erzeugt werden, die mit dem Migrieren von Daten von einer Datenmigrationsquelle auf ein Datenmigrationsziel in Zusammenhang stehen. Wie bei dem Beispiel der Datenverarbeitungsumgebung 200 gezeigt, kann die Datenverarbeitungsumgebung 200 eine Datenmigrationsquelle (d.h. Quell-Rechenzentrum 101) aufweisen, das die Daten speichert und verwaltet, die zum Übertragen zu oder Kopieren auf einen anderen Speicherort innerhalb der Datenverarbeitungsumgebung und/oder des Netzwerks ausgewählt wurden. Zum Beispiel die Übertragung einer oder mehrerer Anwendungen 107a, Betriebslasten 109a und virtueller Einheiten und Systeme, die durch die Datenmigrationsquelle gehostet werden, unter anderem Server 103a, 105a, virtuelle Einheiten, Speicher, Container usw.
  • Ein Projektbeteiligter entscheidet sich, ein Datenmigrationsereignis durchzuführen, wobei die Komplexität des Datenmigrationsereignisses je nach der Art der möglicherweise stattfindenden Datenmigration variieren kann. Zum Beispiel kann bei einigen Ausführungsformen ein Eigentümer einer Anwendung 107a oder ein Diensteanbieter, die durch ein Quell-Rechenzentrum 101 gehostet werden, wählen, Anwendungen 107a oder Betriebslasten 109a und die zugehörigen Daten, die durch das Quell-Rechenzentrum 101 gehostet werden, auf einen neuen Speicherort wie z.B. das Ziel-Rechenzentrum 125 oder das Cloud-Netzwerk 250 zu migrieren. Bei anderen Ausführungsformen kann ein Eigentümer oder Administrator der Migrationsdatenquelle wie z.B. der Eigentümer eines Quell-Rechenzentrums 101 sich dazu entscheiden, Rechenzentren zu aktualisieren, von veralteten Systemen auf ein öffentliches oder privates Cloud-Netzwerk 250 zu migrieren oder vor einer privaten Cloud zu einer öffentlichen Cloud (oder umgekehrt) überzugehen. Infolge einer Entscheidung des Eigentümers oder Administrators des Rechenzentrums 101, 125 und/oder des Cloud-Netzwerks 250, auf eine neue Infrastruktur oder einen neuen Speicherort zu migrieren, kann die daraus folgende Migration alle gehosteten Anwendungen 107a, Betriebslasten 109a, Server, virtuellen Clients und Daten auf den neuen Ziel-Speicherort überführen.
  • Der Projektbeteiligte, der die Migration der Daten von einer Datenmigrationsquelle auf ein Datenmigrationsziel anfordert und/oder koordiniert, kann einen Zeitplan zum Ausführen einer oder mehrerer der durchgängigen Migrationsaufgaben 111 entwickeln, um ein Migrationsereignis innerhalb bestimmter Vorgaben ordnungsgemäß auszuführen. Zum Beispiel innerhalb eines zugesagten Zeitrahmens oder in Übereinstimmung mit zugesagten Vertragspflichten oder Dienstgüten. Bei einigen Ausführungsformen kann es sich bei der Einheit, die die Migration von Daten koordiniert und/oder die Aufgaben 111 zeitlich plant, um einen Eigentümer, Administrator oder Betreiber der übertragenen Daten und/oder um den Eigentümer, Betreiber oder Administrator der Datenmigrationsquelle handeln. Zum Beispiel um den Eigentümer, Betreiber oder Administrator eines Quell-Rechenzentrums 101 und/oder um den Diensteanbieter einer oder mehrerer Anwendungen 107a und/oder Betriebslasten 109a, die durch ein Quell-Rechenzentrum 101 gehostet werden. Bei anderen Ausführungsformen kann es sich bei der Einheit, die möglicherweise die Ausführung einer oder mehrerer Aufgaben 111 koordiniert und zeitlich plant, um ein oder mehrere Migrationsteams handeln (entweder im eigenen Unternehmen oder ein Dritter, der beauftragt wurde, den durchgängigen Migrationsprozess durchzuführen). Ausführungsformen der Aufgaben 111, die zur Ausführung zeitlich geplant werden können, können eine Reihe von Vormigrationsaufgaben 113, Migrationsaufgaben 115 und Nachmigrationsaufgaben 117, einen geplanten Zeitrahmen zum Ausführen der Aufgabe, unter anderem einen Termin, sowie einen Projektbeteiligten umfassen, der dem Ausführen jeder der Aufgaben zugewiesen ist. Zu Beispielen von Vormigrationsaufgaben können ein erneutes Starten von Servern, ein Erstellen von Sicherungskopien der Speichereinheiten des Quell-Rechenzentrums 101, ein Beenden der Dienste einer oder mehrerer ausgeführter Anwendungen 107a und/oder Betriebslasten 109a gehören. Ausführungsformen von Migrationsaufgaben 115 können eine oder mehrere Aufgaben, die in das eigentliche Übertragen von Daten, Anwendungen 107a, Betriebslasten 109a und Bibliotheken einbezogen sein können, sowie Prozesse umfassen, die die Daten konvertieren und/oder formatieren können, um Anforderungen an die Speicherung und den Betrieb auf dem Datenmigrationsziel zu erfüllen. Zum Beispiel ein Konvertieren von Daten, die durch eine Datenbank im Quell-Rechenzentrum 101 gespeichert sind, in ein neues aktualisiertes Format, das die Datenbankmodule des Ziel-Rechenzentrums 125 verstehen, die die Datenbankdatensätze während der Migration der Daten empfangen. Darüber hinaus können Beispiele von Nachmigrationsdaten 117 Aufgaben wie z.B. Validieren der Ausführung von migrierten Daten, die durch das Datenmigrationsziel empfangen werden, Aktualisieren von Berechtigungen, Aktualisieren von Feldern, sodass sie den Zielorten auf dem neuen Datenmigrationsziel entsprechen, Aktualisieren von Servernamen, Aktualisieren von Abhängigkeiten und schließlich Testen des Datenmigrationsziels, um zu gewährleisten, dass während der Datenmigration keine Fehler aufgetreten sind, unter anderem Nachmigrationsaufgaben 117, die auf das Testen der übertragenen Anwendungen 107b und/oder Betriebslasten 109b gerichtet sind, um zu gewährleisten, dass sie fehlerfrei eingeleitet werden und arbeiten.
  • Ausführungsformen der Datenverarbeitungsumgebung 200, 240 können eine Mehrzahl von Systemen, Komponenten, Modulen, Services und/oder Programmen aufweisen, die die Durchführung und/oder Beendigung der Aufgaben 111 ausführen und protokollieren, die einem oder mehreren bestimmten Projekt beteiligten zur Ausführung als Teil des durchgängigen Datenmigrationsereignisses zugewiesen wurden. Die Durchführung, Beendigung und sogar die Nichtdurchführung einer oder mehrerer Aufgaben 111 (d.h. aufgrund eines nicht eingehaltenen Termins oder von Fehlern) können durch ein/eine oder mehrere Systeme, Komponenten, Programme usw. innerhalb der Datenverarbeitungsumgebung 200, 240 erfasst und protokolliert werden. Zum Beispiel können die Aufgaben 111 in Abstimmung mit einem oder mehreren Protokollierungsservern 103a, 103b, Überwachungsservern 105a, 105b, Anwendungen 107a, 107b, Betriebslasten 109a, 109b von entweder der Datenmigrationsquelle und/oder vom Datenmigrationsziel sowie mit Migrationstools 121 und/oder Client-Einheiten 119, 123, 127 überwacht, durchgeführt und/oder protokolliert werden, die eine oder mehrere Blockchain-Anwendungen 124, APIs 122 oder Anwendungscode 120 ausführen.
  • In Abhängigkeit vom Ausführen einer oder mehrerer Aufgaben 111, die geplant oder einer bestimmten Einheit zugewiesen sind, können Ausführungsformen der Systeme, Komponenten, Module, Dienste und/oder Programme, die die Durchführung der einen oder der mehreren Aufgaben 111 ausführen, ein digitales Asset erstellen, das die Ausführung (oder versuchte Ausführung) der Aufgaben 111 beschreibt. Der Begriff „digitales Asset“ kann elektronische Datensätze bezeichnen, die dem Eigentümer oder Administrator der erstellten Daten gehören oder durch diesen lizenziert oder kontrolliert werden. Zum Beispiel kann es sich bei durch das Quell-Rechenzentrum 101 erzeugten Protokollen, Warnungen oder Ereignisdatensätzen um digitale Assets handeln, die in einigen Fällen dem Eigentümer des Quell-Rechenzentrums 101 oder dem Eigentümer/Lizenznehmer einer Anwendung 107a oder einer Betriebslast 109a gehören, die das Protokoll oder den Datensatz erstellt. Ausführungsformen von Ressourcen, die ein Protokoll, eine Warnung, einen Ereignisdatensatz, einen Fehlerbericht oder eine andere Art von Datei erzeugen, können Einzelheiten innerhalb der Dateidaten (oder Metadaten) bereitstellen, die die Merkmale des Ereignisses beschreiben. Zum Beispiel können der Datensatz, das Protokoll, der Fehlerbericht oder die Warnung einen Aufgabennamen, ein Datum und eine Uhrzeit, zu der die Aufgabe ausgeführt wurde, ein Datum und eine Uhrzeit der Beendigung der Aufgabe, das Ergebnis der Aufgabe (d.h., wurde sie erfolgreich beendet oder ist sie fehlgeschlagen?), eine Liste und eine Beschreibung beliebiger aufgetretener Fehler zusammen mit beliebigen Fehlercodes oder Warnungen, dem System, den Anwendungen 107, den Betriebslasten 109, den Programmen, den Migrationstools 121 oder anderen Datenverarbeitungsressourcen aufweisen, die zum Ausführen der Aufgabe 111 verwendet werden. Das digitale Asset kann durch das eine oder die mehreren Systeme, Komponenten, Module, Dienste, Anwendungen 107, Betriebslasten 109, Programme (die allgemein als „Ressourcen“ bezeichnet werden) ausgegeben werden, die die Durchführung der einen oder der mehreren Aufgaben 111 ausführen. Ausführungsformen der Ressourcen, die die Durchführung der einen oder der mehreren Aufgaben 111 ausführen, können über eine API 122 und/oder über Blockchain-Anwendungen 124 automatisch und/oder in regelmäßigen Abständen eine Verbindung zu der Blockchain-Plattform 112 herstellen und anfordern, ein Ledger, das das Prüfprotokoll 129 aufweist, mit einer oder mehreren Dateien zu aktualisieren, die die digitalen Assets aufweisen, die die Ausführung und die Durchführung der durchgängigen Migrationsaufgaben 111 auf einen oder mehrere Peer-Knoten 104 bis 110 der Blockchain-Plattform 112 beschreiben. Ausführungsformen der Peer-Knoten 104 bis 110 hosten jeweils Instanzen eines oder mehrerer Blockchain-Ledger und können Chaincode umfassen (der auch als „Smart Contract“ bezeichnet und nachstehend ausführlich beschrieben wird), der auf das Ledger der Blockchain (d.h. das Prüfprotokoll 129) zugreifen kann. Ein Verbinden mit dem Chaincode erfolgt über die API 122, die den Anwendungscode 120 ausführt. Zum Beispiel können Prüfer der durchgängigen Migrationsaufgaben 111 Chaincode über die API 122 ausführen, um das Ledger und/oder Migrationstools 121 abzufragen, oder Chaincode kann über die API 122 ausgeführt werden, um das Ledger eines Peer-Knotens zu aktualisieren. Bei einigen Ausführungsformen kann jede der Ressourcen außerdem die digitalen Assets sichern und speichern, die die Ausführung der einen oder der mehreren Aufgaben 111 auf ein örtlich eingegrenztes Repository oder eine örtlich eingegrenzte Datenbank und/oder auf ein/eine über ein Netzwerk zugängliche/s Repository oder Datenbank in Einzelheiten aufführen und beschreiben, auf das/die von außerhalb der Blockchain-Plattform 112 zugegriffen werden kann.
  • Wie vorstehend angemerkt, kann es sich bei einer der Ressourcen, die nach der Ausführung und Durchführung einer oder mehrerer Aufgaben 111 möglicherweise ein digitales Asset erstellen, um einen Protokollierungsserver 103a, 103b handeln. Ausführungsformen des Protokollierungsservers 103 können einen Computer (real oder virtuell) oder ein Computerprogramm bezeichnen, das Protokolldaten und Ereignisdatensätze verwalten und bieten kann, die den Status eines Computersystems betreffen, aus dem die Protokolldaten gesammelt werden. Zum Beispiel verwaltet und bietet der Protokollierungsserver 103a Protokolldaten und Ereignisdatensätze, die den Status des Quell-Rechenzentrums 101 beschreiben, unter anderem Protokolle und Ereignisdatensätze, die die Aktionen einer oder mehrerer Anwendungen 107a und Betriebslasten 109a des Quell-Rechenzentrums 101 beschreiben. Ausführungsformen des Protokollierungsservers 103a können darüber hinaus Datensätze der Ereignisse und Protokolle selektiv speichern und archivieren, die durch den Protokollierungsserver 103a nachverfolgt wurden, Sicherheit und Vertraulichkeit der gespeicherten Protokolle sicherstellen, Qualität von Protokollen und Ereignisdatensätzen steuern, indem fehlende Informationen ausgewertet und/oder den Protokollen hinzugefügt werden und durch die Protokolle aufgezeichnete Ereignisse mit Kontexten versehen werden, unter anderem Aufzeichnen von Informationen über die IP-Adresse, die das Protokoll oder den Ereignisdatensatz erzeugt hat, Benutzerinformationen, ein oder mehrere Merkmale des Systems, auf das zugegriffen wird, und beliebige Federdetails oder Warnungen, die als Teil des Protokolls oder des auftretenden Ereignisses ausgelöst werden können.
  • Eine weitere Art von Ressource, die digitale Assets erstellen kann, die als Reaktion auf die Ausführung oder Durchführung der durchgängigen Migrationsaufgaben 111 zum Prüfprotokoll 129 der durchgängigen Aufgaben 111 beitragen, kann einen Überwachungsserver 105a, 105b umfassen. Bei Ausführungsformen des Überwachungsservers 105 kann es sich um ein Computersystem (real oder virtuell) oder ein Computerprogramm handeln, das für ein Beaufsichtigen von Anwendungen 107 und Betriebslasten 109 verantwortlich ist und eine globale Sicht auf die Anwendungen 107 und Betriebslasten 109 zu einem bestimmten Moment sowie einen Verlauf zurückliegender Zustände der Anwendung 107 oder Betriebslast 109 bereitstellt, unter anderem; Leistungsfähigkeit und/oder Reaktionszeit der Anwendung oder der Ressourcen der Betriebslast; die Integrität der Anwendung 107 oder Betriebslast 109; und die Verfügbarkeit der Anwendung 107 oder Betriebslast 109. Der Überwachungsserver 105 kann eine mangelnde Leistungsfähigkeit, die Anzahl eingehender Verbindungen für einen Dienst, eine Anwendung 107 oder eine Betriebslast 109 und Anomalien erkennen. Der Überwachungsserver 105 kann mehrere Elemente von Services, Anwendungen 107 und Betriebslasten 109 überwachen, die üblicherweise als „Maßzahlen“ bezeichnet werden. Zu den Maßzahlen, die überwacht werden können, können (ohne auf diese beschränkt zu sein) CPU-Last, die Anzahl gleichzeitiger Verbindungen, Fehler, simulierte Interaktionen mit einer Anwendung 107 oder Betriebslast 109, Netzwerklast (d.h. Dienstgüte, Latenz, Ping usw.) und versuchte Verbindungen gehören, die durch eine Firewall blockiert wurden. Die Beaufsichtigung der Maßzahlen durch den Überwachungsserver 105 ermöglicht die Erstellung von Warnungen, die auf erhebliche Statusänderungen verweisen oder diese anzeigen können, bei denen es sich in einigen Fällen um das Ergebnis des Durchführens einer oder mehrerer Aufgaben 111 handeln kann. Zu Beispielen von Warnungen, die als Reaktion auf die Ausführung einer oder mehrerer Aufgaben 111 erstellt werden können, können eine zu hohe CPU-Last, ein Push-Vorgang auf ein Repository, ein Aufbaufehler und zu viele gleichzeitige Verbindungen gehören.
  • Bei einigen Ausführungsformen können die Migrationstools 121 verwendet werden, um eine oder mehrere durchgängige Migrationsaufgaben 111 durchzuführen. Die Migrationsaufgaben 121 können durch einen oder mehrere Projektbeteiligte über eine Migrations-Client-Einheit 119 betrieben und oftmals durch mehr als nur ein Team verwendet werden, denen Aufgaben 111 zugewiesen sind, wie z.B. ein Datenmigrationsteam, ein Managementteam und/oder ein Infrastrukturteam. Ausführungen der Datenmigrationstools 121 können verwendet werden, um Anwendungen 107a, Dienste, Bibliotheken, Server 103a, 105a und/oder Betriebslasten 109a (die zusammen als „Migrationsdaten“ bezeichnet werden) von einem Speichersystem auf ein anderes und insbesondere von einem oder mehreren Speichersystemen der Datenmigrationsquelle auf das/die Speichersystem(e) eines Datenmigrationsziels zu verschieben. Datenmigrationstools 121 können eine oder mehrere durchgehende Migrationsaufgaben 111 durchführen, unter anderem Migrationsaufgaben 115 über einen Prozess des Auswählens, Vorbereitens, Extrahierens und/oder Umwandelns der Daten der Datenmigrationsquelle, um sicherzustellen, dass die Form der Migrationsdaten mit dem neuen Speicherort des Speichersystems des Datenmigrationsziels kompatibel ist. Ausführungsformen der Migrationstools 121 können Toolsets umfassen, die zum Durchführen von Datenintegration in der Lage sind und Tools zum Extrahieren, Laden und Umwandeln (ETL-Tools) (ETL = extract, load and transform) umfassen.
  • ETL-Tools, die Teil von Ausführungsformen der Migrationstools 121 sein können, können in der Lage sein, mit komplexen Anforderungen der durchgängigen Migrationsaufgaben 111 umzugehen, unter anderem mit komplexen Migrationsaufgaben 115 des Datenmigrationsprozesses. Die ETL-Funktionalität von Migrationstools 121 kann Tools zum Verarbeiten großer Datensätze, eingehenden Profilieren von Daten und zur Integration von Migrationsdaten zwischen mehreren Plattformen umfassen. Bei einigen Ausführungsformen kann die ETL-Funktionalität der Migrationstools 121 ETL-Standardaufgaben wie z.B. Abrufen von Daten von Betriebssystemen, Umwandeln der abgerufenen Daten in ein vereinheitlichtes Format und Laden der umgewandelten Daten in eine Bestimmungsdatenbank oder in ein Bestimmungsspeichersystem des Datenmigrationsziels automatisieren.
  • Bei einigen Ausführungsformen der Migrationstools 121 kann die Ausgabe der Migrationstools, die eine oder mehrere durchgängige Migrationsaufgaben durchführen, ein Ausgeben eines oder mehrerer Protokolle, einer oder mehrerer Warnungen, eines oder mehrerer Fehler, Datensätze und/oder einer anderen Art von digitalem Asset umfassen, in dem die durch die Migrationstools 121 durchgeführten Aufgaben 111, die eine oder die mehreren durchgeführten Aktionen, Ergebnisse aus dem Durchführen der Aufgaben 111 in Einzelheiten aufgeführt sind, unter anderem einen Hinweis auf Erfolg, Fehlschlag, Fehler usw., das Datum und die Uhrzeit, zu dem/der die Aufgaben eingeleitet und beendet wurden, sowie Informationen, die die Benutzer beschreiben, die die Aufgaben durchgeführt haben, die IP-Adressen der Migrations-Client-Einheiten 119, auf denen die Migrationstools 121 ausgeführt wurden, die Datenmigrationsquelle und das Datenmigrationsziel.
  • Ausführungsformen der digitalen Assets wie z.B. die Protokolle, Datensätze, Fehler, Warnungen und Ereignisse, die infolge des Durchführens einer oder mehrerer zugewiesener durchgängiger Migrationsaufgaben 111 durch ein oder mehrere Systeme, eine oder mehrere Komponenten, Programmanwendungen 107, Betriebslasten, Server 103, 105 und/oder Migrationstools 121 aufgezeichnet und/oder erzeugt wurden, können als Teil des Prüfprotokolls 129 als ein oder mehrere Blöcke innerhalb der Datenschicht 128 einer Blockchain oder einer anderen Art von dezentraler Datenbank gespeichert werden. Bei einer bestimmten Ausführungsform nutzen Verfahren, Systeme und/oder ein Computerprogrammprodukt, die hierin beschrieben sind, eine dezentrale Datenbank (wie z.B. eine Blockchain), bei der es sich um ein verteiltes Speichersystem handelt, das mehrere Knoten 102 (darunter Peer-Knoten 104 bis 110) in einem Blockchain-Netzwerk 130 umfasst, die untereinander Daten austauschen, um die Daten des Prüfprotokolls 129 zu erstellen und zu aktualisieren, die die durchgängige Migration von Daten zwischen Datenmigrationsquelle(n) und Datenmigrationsziel(en) beschreiben. Die dezentrale Datenbank kann eine unveränderbare Nur-anhängen-Datenstruktur umfassen, die einem verteilten Ledger ähnelt, das in der Lage ist, Datensätze zwischen Parteien zu verwalten, die sich gegenseitig nicht vertrauen. Die sich gegenseitig nicht vertrauenden Parteien werden hierin als „Peer-Knoten 104 bis 110“ oder einfach als „Peers“ bezeichnet. Jeder Peer 104 bis 110 verwaltet eine Kopie des verteilten Ledger, das das Prüfprotokoll 129 beschreibt, und kein einziger Peer kann die Datensätze verändern, ohne dass unter den verteilten Peers 104 bis 110 ein Konsens erzielt wurde. Zum Beispiel können die Peers-Knoten 104 bis 110 ein Konsensprotokoll ausführen, um Blockchain-Speichertransaktionen zu validieren, indem die digitalen Assets als in das Prüfprotokoll 129 geschriebene Blöcke gespeichert werden, die Speichertransaktionen in Blöcken zu gruppieren und eine blockübergreifende Hash-Chain aufzubauen. Dieser Prozess bildet das Ledger, indem die Speichertransaktionen gegebenenfalls angeordnet werden, um Konsistenz zu erreichen.
  • Bei verschiedenen Ausführungsformen kann eine zugriffsrechtebehaftete und/oder zugriffsrechtelose Blockchain verwendet werden. An einer öffentlichen bzw. zugriffsrechtelosen Blockchain kann jeder ohne eine bestimmte Identität (z.B. durch Bewahren der Anonymität) teilnehmen. Öffentliche Blockchains können native Kryptowährung einschließen und einen Konsens verwenden, der auf verschiedenen Protokollen wie z.B. dem Arbeitsnachweis (Proof of Work) beruht. Andererseits stellt eine zugriffsrechtebehaftete Blockchain-Datenbank sichere Interaktionen in einer Gruppe von Wirtschaftseinheiten bereit, die ein gemeinsames Ziel haben (d.h. Migration von Daten), aber einander nicht vollständig vertrauen, wie z.B. Unternehmen, Einheiten und/oder Projektbeteiligte, die Finanzmittel, Waren, (private) Informationen und dergleichen austauschen, um ihr Ziel zu erreichen.
  • Ferner können das Verfahren, das System und/oder das Computerprogrammprodukt bei einer bestimmten Ausführungsform eine Blockchain nutzen, die mit programmierbarer Zufallslogik arbeitet, die auf ein dezentrales Speicherschema zugeschnitten und als „Smart Contracts“ oder „Chaincodes“ bezeichnet wird. Peers 104 bis 110 können Instanzen von Chaincodes hosten, die mit Anwendungen 124 und/oder APIs 122 verbunden werden können, die Anwendungscode ausführen können, um Chaincode-Anweisungen oder -Befehle zu realisieren. Zum Beispiel Anweisungen zum Zugreifen oder Abfragen des Ledger eines bestimmten Peer-Knotens oder zum Abfragen des Ledger (d.h. des Prüfprotokolls 129) bei Konsens der Peer-Knoten 104 bis 110. In einigen Fällen können spezialisierte Chaincodes für Verwaltungsfunktionen und Parameter vorhanden sein, die als „System-Chaincode“ bezeichnet werden (wie z.B. Verwalten des Zugriffs auf einen Datenspeicher/eine Datenbank außerhalb der Chain). Bei einigen Ausführungsformen können das Verfahren, das System und/oder das Computerprogrammprodukt ferner Smart Contracts nutzen, bei denen es sich um vertrauenswürdige verteilte Anwendungen handelt, die manipulationssichere Eigenschaften der Blockchain-Datenbank und eine zugrunde liegende Vereinbarung zwischen Knoten 102 effizient nutzen, die als „Bewilligung“ oder „Bewilligungsrichtlinie“ bezeichnet wird. Blockchain-Transaktionen im Zusammenhang mit dieser Anmeldung können bewilligt werden, bevor sie in der Blockchain festgeschrieben werden, während Transaktionen außer Acht gelassen werden, die nicht bewilligt sind.
  • Eine Bewilligungsrichtlinie ermöglicht es Chaincode, Bewilliger für eine Transaktion in Form eines Satzes von Peer-Knoten 104 bis 110 anzugeben, die zur Bewilligung nötig sind. Wenn ein Client-Knoten des Blockchain-Netzwerks 130 die Transaktion an die in der Bewilligungsrichtlinie angegebenen Peers 104 bis 110 sendet, wird die Transaktion ausgeführt, um die Transaktion zu validieren. Nach der Validierung gelangen die Transaktionen in eine Anordnungsphase, in der ein Konsensprotokoll verwendet wird, um eine angeordnete Abfolge von bewilligten Transaktionen zu erzeugen, die in Blöcken gruppiert sind.
  • Bei einer bestimmten Ausführungsform können das Verfahren, das System und/oder das Computerprogrammprodukt Knoten 102 nutzen, bei denen es sich um die Datenübertragungseinheiten des Blockchain-Systems handelt. Ein „Knoten“ kann eine logische Funktion in dem Sinne durchführen, dass mehrere Knoten unterschiedlicher Arten auf demselben physischen Server oder auf derselben Blockchain-Plattform 112 ausgeführt werden können. Blockchain-Knoten 102 sind in Vertrauensdomänen gruppiert und logischen Einheiten zugehörig, die sie auf verschiedene Weise steuern. Blockchain-Knoten 102 können unterschiedliche Arten enthalten, wie z.B. einen Client Knoten 560 oder einen übermittelnden Client-Knoten, der einen Transaktionsaufruf an einen Bewilliger (z.B. Peer) übermittelt und Transaktionsvorschläge an einen Anordnungsservice (z.B. an einen Anordnungsknoten) übermittelt.
  • Bei einer weiteren Art von Knoten 102 handelt es sich um einen Peer-Knoten 104 bis 110, der durch einen Client übermittelte Transaktionen empfangen, die Transaktionen festschreiben und einen Status und eine Kopie des Ledger von Blockchain-Transaktionen verwalten kann. Peers 104 bis 110 können außerdem die Rolle eines Bewilligers haben, obwohl dies keine Anforderung ist. Bei einem Anordnungsserviceknoten oder Anordner handelt es sich um einen Knoten, der einen Datenübertragungsservice für alle Blockchain-Knoten 102 ausführt und der eine Bereitstellungsgarantie wie z.B. eine Rundsendung an jeden der Peer-Knoten 104 bis 110 in dem System beim Festschreiben/Bestätigen von Transaktionen (einschließlich des Dokumentierens der Übertragung digitaler Assets, die von einer Datenübertragungsquelle, einem Datenmigrationsziel, von Migrationstools 121 und einer oder mehreren Clients-Einheiten 119, 123, 127 empfangen wurden) und Verändern eines World-Status der Blockchain realisiert, bei dem es sich um einen weiteren Namen für die anfängliche Blockchain-Transaktion handelt, die normalerweise Steuerungs- und Einrichtungsinformationen enthält.
  • Bei einer bestimmten Ausführungsform können das Verfahren, das System und/oder das Computerprogrammprodukt ein Ledger nutzen, bei dem es sich um einen in einer Abfolge angeordneten manipulationsbeständigen Datensatz aller Statusübergänge einer Blockchain handelt. Statusübergänge können aus Chaincode-Aufrufen (z.B. Transaktionen) entstehen, die durch teilnehmende Parteien (z.B. Client-Knoten, Anordnungsknoten, Bewilligerknoten, Peer-Knoten usw.) übermittelt wurden. Jede teilnehmende Partei (wie z.B. ein Peer-Knoten bzw. Peer-Knoten 104 - 110) kann/können eine Kopie des Ledger verwalten. Eine Transaktion kann zu einem Satz von Asset-Schlüsselwertpaaren führen, die im Ledger als ein oder mehrere Operanden wie z.B. Erstellungen, Aktualisierungen, Löschungen und dergleichen festgeschrieben werden. Das Ledger enthält eine Blockchain (die auch als „Chain“ bezeichnet wird), die verwendet wird, um einen unveränderlichen, in einer Abfolge angeordneten Datensatz in Blöcken zu speichern. Das Ledger enthält außerdem eine Statusdatenbank, die einen aktuellen Status der Blockchain verwaltet.
  • Bei einigen Ausführungsformen können das Verfahren, das System und/oder das Computerprogrammprodukt, die hierin beschrieben sind, eine Chain nutzen, bei der es sich um ein Transaktionsprotokoll handelt, das als Hash-verknüpfte Blöcke strukturiert ist (wie in 6 gezeigt) und jeder Block eine Abfolge von N Transaktionen enthält, wobei N gleich oder größer als eins ist. Die Block-Kopfdaten enthalten einen Hash 605a bis 605n der Transaktionen des Blocks sowie einen Hash 607a bis n der Kopfdaten des vorherigen Blocks. Im Falle des Ursprungsblocks kann der Hash der Kopfdaten des vorherigen Blocks auf null gesetzt werden, da möglicherweise kein vorhergehender Block vorhanden ist. Im Hinblick auf die Hash-verknüpften Blöcke können alle Transaktionen im Ledger in einer Abfolge angeordnet und kryptografisch miteinander verknüpft werden. Dementsprechend ist es nicht möglich, die Ledger-Daten zu manipulieren, ohne die Hash-Verknüpfungen aufzubrechen. Ein Hash 605 des zuletzt hinzugefügten Blockchain-Blocks gibt jede Transaktion der Chain wieder, die vor dieser stattgefunden hat, wodurch es möglich wird zu gewährleisten, dass sich alle Peer-Knoten 104 bis 110 in einem konsistenten und vertrauenswürdigen Status befinden. Die Blockchain kann in einem Dateisystem von Peer-Knoten 104 bis 110 (z.B. lokaler Speicher, angeschlossener Speicher, Cloud usw.) gespeichert werden, das die Nur-anhängen-Art der Blockchain-Betriebslast effizient unterstützt. 6 stellt ein Beispiel eines Transaktionsprotokolls dar, das als Hash-verknüpfte Blocks strukturiert ist, die durch Peer-Knoten 104 bis 110 gespeichert sind. Wie in 6 gezeigt, weist jeder der Peer-Knoten 104 bis 110 des Blockchain-Netzwerks 130 nicht nur den verknüpften Hash 605a bis 605n, den vorhergehenden Hash 607a bis 607n des vorherigen Blocks sowie Nutzdaten 609a bis 609n (d.h. das digitale Asset oder die Datei, das bzw. die zum Prüfprotokoll 129 hinzugefügt wurde), sondern auch einem Zeitstempel 603a bis 603n auf, der den Empfang des Zeitpunkts kennzeichnet, zu dem der Block erstellt und/oder zu der Blockchain hinzugefügt wurde, und einen Index 601a bis 601n. Bei einigen Ausführungsformen kann dem durch jeden Peer-Knoten 104 bis 110 gespeicherten Block eine Nonce 608a bis 608n hinzugefügt sein. Eine „Nonce“ kann eine während einer kryptografischen Datenübertragung „nur einmal verwendete Zahl“ bezeichnen. Bei Ausführungsformen einer Nonce 608 kann es sich um eine Zufallszahl oder Pseudozufallszahl handeln, die in einem Berechtigungsprüfungsprotokoll ausgegeben wird, wenn der Block Hash-verarbeitet oder verschlüsselt wird, um sicherzustellen, dass alte Datenübertragungen nicht bei Attacken durch Nachrichtenaufzeichnung und -wiederholung (replay attacks) wiederverwendet werden können, und wenn ein Block in einer Blockchain erneut Hash-verarbeitet wird, erfüllt die erneute Hash-Verarbeitung des Blocks bestimmte, für die erneute Hash-Verarbeitung geltende Schwierigkeitsgradeinschränkungen, indem diesem eine neue Nonce zugewiesen wird, die den Werten des erneut Hash-verarbeiteten Blocks zugehörig ist.
  • Der aktuelle Status des unveränderbaren Ledger gibt die neuesten Werte aller Schlüssel wieder, die im Chain-Transaktionsprotokoll enthalten sind. Da der aktuelle Status die neuesten Schlüsselwerte wiedergibt, die einem Kanal in dem Blockchain-Netzwerk 130 bekannt sind, wird er manchmal als „World-Status“ bezeichnet. Ausführungsformen von Kanälen ermöglichen es einem bestimmten Satz von Peers, Anwendungen 124 und APIs 122, in einem Blockchain-Netzwerk 130 untereinander Daten auszutauschen. Chaincode-Aufrufe führen Transaktionen in Bezug auf die Daten des aktuellen Status des Ledger aus. Um diese Chaincode-Interaktionen effizient ablaufen zu lassen, können die neuesten Werte der Schlüssel in einer Statusdatenbank gespeichert werden. Bei der Statusdatenbank kann es sich einfach um eine indizierte Ansicht des Transaktionsprotokolls der Chain handeln, sie kann daher zu einem beliebigen Zeitpunkt aus der Chain neu erzeugt werden. Die Statusdatenbank kann nach dem Start von Peer-Knoten und vor dem Akzeptieren von Transaktionen automatisch wiederhergestellt (oder erzeugt) werden.
  • Zu einigen Vorteilen der vorliegenden Lösungen, die hierin beschrieben und dargestellt sind, gehören ein Verfahren, ein System und ein Computerprogrammprodukt zum Realisieren von Blockchains, um ein Prüfprotokoll 129 eines durchgehenden Migrationsereignisses sicher zu erstellen, indem ein oder mehrere digitale Assets verwendet werden, die die Durchführung einer oder mehrerer durchgehender Migrationsaufgaben 111 beschreiben. Die beispielhaften Ausführungsformen lösen die Probleme der Zeit und des Vertrauens, indem Merkmale einer Datenbank wie z.B. Unveränderbarkeit, digitale Signaturen und das Merkmal, dass es sich um die einzige Echtheitsquelle handelt, erweitert werden. Die beispielhaften Ausführungsformen stellen eine Lösung zum Erzeugen eines sicheren Ledger bereit, das das Prüfprotokoll 129 in einer Blockchain enthält, die über eine Blockchain-Plattform 112 zugänglich ist. Ausführungsformen der Blockchain-Netzwerke 130 können auf der Grundlage der Art gespeicherter Informationen (z.B. private Informationen, öffentliche Informationen, Anwendungs- oder Betriebslastspezifikationen usw.) und von Regeln homogen sein, die die Assets auf der Grundlage von Smart Contracts regeln, die über Anwendungen 124 und/oder die API 122 ausgeführt werden. Bei einigen Ausführungsformen können die Blockchain-Netzwerke 130 wegen der Eigenart der unterschiedlichen Arten digitaler Assets, die von den verschiedenen Servern 103, 105, Migrationstools 121, Anwendungen 107, Betriebslasten 109 und Client-Einheiten 119, 123, 123 erfasst werden können, auf der im Prüfprotokoll 129 gespeicherten Assets-Art beruhen oder auf dem zum Prüfprotokoll 129 hinzugefügten Migrationsprojekt beruhen, und ein Blockchain-übergreifendes Datenübertragungsprotokoll kann für jedes Blockchain-Netzwerk verwendet werden, um in Synchronität Daten untereinander zu übertragen. Bei anderen Ausführungsformen kann jede Chain in einem Blockchain-Netzwerk 130 einer Asset-Art zugehörig sein, und Regeln, die die Asset-Art regeln, können über die Chains kombiniert werden, die über ein Blockchain-übergreifendes Datenübertragungsprotokoll Daten übertragen.
  • Es wird angemerkt, dass sich die Blockchain von einer herkömmlichen Datenbank darin unterscheidet, dass es sich bei Blockchain nicht um einen zentralen Speicher handelt, sondern vielmehr um einen dezentralen, unveränderbaren und sicheren Speicher, bei dem Knoten 102 Änderungen an Datensätzen im Speicher gemeinsam nutzen können. Zu einigen Eigenschaften, die für Blockchain charakteristisch sind und eine Realisierung der Blockchain erleichtern, gehören, ohne auf diese beschränkt zu sein, ein unveränderbare Ledger, Smart Contracts, Sicherheit, Privatsphäre, Dezentralisierung, Konsens, Bewilligung, Zugriffsfähigkeit und dergleichen, die im Folgenden ausführlicher beschrieben werden. Gemäß verschiedenen Aspekten wird das hierin beschriebene System aufgrund unveränderbarer Verantwortlichkeit, Sicherheit, Privatsphäre, zulässiger Dezentralisierung, Verfügbarkeit von Smart Contracts, Bewilligungen und Zugriffsfähigkeit realisiert, die für Blockchain charakteristisch und spezifisch sind.
  • Insbesondere sind die Daten des Blockchain-Ledger unveränderbar, die das Prüfprotokoll 129 aufweisen, wodurch ein effizientes Verfahren zum sicheren Prüfen der Durchführung einer oder mehrerer durchgängiger Aufgaben 111 bereitgestellt wird, während eine durchgängige Migration von Daten zwischen einer Datenmigrationsquelle und einem Datenmigrationsziel ausgeführt wird. Außerdem stellt eine Verwendung von Verschlüsselung in der Blockchain Sicherheit bereit und baut Vertrauen auf. Der Smart Contract verwaltet den Status der zum Prüfprotokoll 129 hinzugefügten digitalen Assets. Die beispielhaften Blockchains sind in Bezug auf Zugriffsrechte dezentralisiert. Somit kann jeder Endanwender, Administrator und/oder Prüfer eines durchgängigen Datenmigrationsprojekts Zugriff auf seine eigene Kopie des Ledger haben. Mehrere Projektbeteiligte, unter anderem unterschiedliche Organisationen, Einheiten (und Peers), die für das Prüfen oder Durchführen eines Abschnitts der Aufgaben 111 verantwortlich sind, können in das Blockchain-Netzwerk 130 aufgenommen werden. Die wichtigsten Organisationen können als Bewilligungs-Peers dienen, um die Ergebnisse der Ausführung von Smart Contracts, Lesesatz und Schreibsatz zu validieren. Mit anderen Worten, die charakteristischen Merkmale der Blockchain stellen eine effiziente Realisierung zum Prüfen der durchgehenden Migration von Daten zwischen der Quelle und dem Ziel bereit, indem die Blockchain-Plattform 112 durch Projektbeteiligte verwendet wird, um den Fortschritt und die Durchführung der durchgehenden Migrationsaufgaben 111 nachzuverfolgen.
  • Einer der Vorteile der hierin beschriebenen beispielhaften Ausführungsformen besteht darin, dass Blockchain die Funktionalität eines oder mehrerer Datenverarbeitungssysteme 10 verbessert, die ein Datenmigrationsprüfprotokoll 129 unter Verwendung eines Blockchain-Netzwerks 130 realisieren (z.B. durch Realisieren eines Übertragungskonformitätsvalidators/-knotens in dem Blockchain-Netzwerk 130, der die Erfassung und Bewilligung mehrerer Signaturen ermöglichen kann, die zum Bestätigen der Akzeptanz der Durchführung einer oder mehrerer durchgängiger Migrationsaufgaben 111 im Prüfprotokoll 129 benötigt werden). Über das hierin beschriebene Blockchain-System können die Datenverarbeitungssysteme der Datenverarbeitungsumgebung 200, 240, 300, 500, 550 (oder ein Prozessor des/der Datenverarbeitungssystem(e) 10) Funktionalität zum Nachverfolgen des Fortschritts der durchgängigen Datenmigration zwischen einem Quell- und einem Zielsystem und/oder einem Cloud-Netzwerk 250 unter Nutzung von Blockchain-Netzwerken 130 durchführen, indem Zugriff auf Fähigkeiten der Blockchain-Plattform 112 wie z.B. ein verteiltes Ledger, Peers, Verschlüsselungstechnologien, Ereignisbehandlung usw. bereitgestellt wird. Außerdem ermöglicht die Blockchain-Plattform 112 die Erstellung eines Geschäftsnetzwerks und ein Aufnehmen beliebiger Projektbeteiligter, unter anderem Benutzer, Einheiten oder Organisationen, an dem durchgängigen Migrationsereignis, zur Teilnahme (die z.B. in ein unveränderbares Ledger einbezogen werden, bei denen es sich um einen überprüften/vertrauenswürdigen Dritten handelt usw.). Die Blockchain an sich ist nicht nur eine Datenbank; die Blockchain enthält Fähigkeiten zum Erstellen eines Netzwerks aus Benutzern und zum Aufnehmen/Entfernen von Organisationen und anderen Projektbeteiligten, die zusammenarbeiten und Serviceprozesse in Form von Smart Contracts ausführen können, indem Transaktionen ausgeführt werden, die das Ledger abfragen und aktualisieren, das das Prüfprotokoll 129 mit digitalen Assets aufweist, die die durchgängigen Migrationsaufgaben beschreiben. Darüber hinaus erlauben Abfragetransaktionen eine Untersuchung des Ledger durch Prüfer, um den Fortschritt und die Durchführung einer oder mehrerer durchgängiger Migrationsaufgaben zu überwachen.
  • Ausführungsformen einer herkömmlichen Datenbank konnten nicht verwendet werden, um die hierin beschriebenen Ausführungsformen zu realisieren, da herkömmliche Datenbanken nicht in der Lage sind, alle an der durchgängigen Migration teilnehmenden Projektbeteiligten in das Blockchain-Netzwerk 130 zu bringen, herkömmliche Datenbanken keine vertrauenswürdige Zusammenarbeit herstellen und keine manipulationssichere Speicherung und Aufbewahrung der Protokolle, Warnungen, Datensätze und anderen digitalen Assets bereitstellen, die im Blockchain-Ledger aufgezeichnet sind. Somit können die hierin beschriebenen vorgeschlagenen Ausführungsformen, die Blockchain-Netzwerke 130 nutzen, nicht durch eine herkömmliche Datenbank realisiert werden. Wenn eine herkömmliche Datenbank verwendet werden müsste, um die beispielhaften Ausführungsformen zu realisieren, würden bei den hierin beschriebenen beispielhaften Ausführungsformen unnötige Nachteile wie z.B. Fehlen von Sicherheit und Fehlen eines einzigen vereinheitlichten Konsenses des Ledger auftreten, das das Prüfprotokoll 129 aufweist, das den Status der durchgehenden Migrationsaufgaben 111 beschreibt. Dementsprechend stellen die beispielhaften Ausführungsformen eine konkrete Lösung für ein Problem in der Technik/auf dem Gebiet des Prüfens von Datenmigration zwischen Datenmigrationsquellen und Datenmigrationszielen bereit.
  • Nunmehr unter Bezugnahme auf die Blockchain-Plattform 112 von 2A bis 2B und die Blockchain-Architektur 500 von 5A können Ausführungsformen der Blockchain-Plattform 112 bestimmte Blockchain-Elemente umfassen, zum Beispiel eine Gruppe von Blockchain-Knoten 102. Die Blockchain-Knoten 102 können einen oder mehrere Peers 104 bis 110 enthalten (diese vier Knoten sind lediglich beispielhaft abgebildet). Diese Knoten 102 nehmen an mehreren Aktivitäten wie z.B. an einem Hinzufügungs- und Validierungsprozess (Konsens) bezüglich Blockchain-Transaktionen teil. Einer oder mehrere der Peers 104 bis 110 können auf der Grundlage einer Bewilligungsrichtlinie Transaktionen (wie z.B. Aufzeichnen eines oder mehrerer digitaler Assets als Blöcke in der Blockchain) bewilligen oder empfehlen und können einen Anordnungsservice für alle Blockchain-Knoten 102 in der Blockchain-Architektur 500 bereitstellen. Ein Blockchain-Knoten 102 kann eine Blockchain-Berechtigungsprüfung einleiten und versuchen, in ein unveränderbares Blockchain-Ledger zu schreiben, das in einer Blockchain-Schicht 116 gespeichert ist, von dem eine Kopie auch in der ??? und/oder in der Datenschicht 128 oder unterlagerten physischen Infrastruktur 114 gespeichert sein kann. Die Blockchain-Konfiguration kann eine oder mehrere Blockchain Anwendungen 124 enthalten, die mit Anwendungsprogrammierschnittstellen (Application Programming Interfaces, APIs) 122 verknüpft sind, um auf gespeicherten Programm-/Anwendungscode 120 (z.B. Chaincode, Smart Contracts usw.) zuzugreifen und diesen auszuführen, der gemäß einer von Teilnehmern gesuchten maßgeschneiderten Konfiguration erstellt werden kann und ihren eigenen Status verwalten, ihre eigenen Assets verwalten und externe Informationen empfangen kann. Anwendungscode 120 kann als Transaktion bereitgestellt und über ein Anhängen an das verteilte Ledger bei allen Blockchain-Knoten 102 und Peers 104 bis 110 davon installiert werden. Zum Beispiel kann der Anwendungscode 120 Chaincode ausführen, der auf der Grundlage des Ledger des abgefragten Peer das Prüfprotokoll 129 in seinem aktuellen Status abfragt, und/oder Anwendungscode 120, der bei Konsens der Peers auf einem bestimmten Kanal des Blockchain-Netzwerks 130 das Prüfprotokoll 129 mit einem oder mehreren neuen Datensätzen, Protokollen, Ereignissen, Warnungen usw. aktualisiert.
  • Ausführungsformen der Blockchain-Plattform 112 können verschiedene Schichten wie z.B. eine Blockchain-Datenschicht 128, eine Services-Schicht 118 (z.B. kryptografische Vertrauens-Services, virtuelle Ausführungsumgebung usw.) und eine Schicht der unterlagerten physischen Computerinfrastruktur 114 umfassen, die verwendet werden können, um neue Transaktionen zu empfangen und in der Blockchain zu speichern, die das Prüfprotokoll 129 bildet, und Prüfern Zugriff bereitzustellen (zum Beispiel über eine Prüf-Client-Einheit 127), die Daten des Prüfprotokolls 129 abfragen möchten. Die Blockchain-Schicht 116 kann eine Schnittstelle zeigen, die Zugriff auf die virtuelle Ausführungsumgebung bereitstellt, die notwendig ist, um den Anwendungscode 120 zu verarbeiten und die physische Infrastruktur 114 einzubeziehen. Kryptografische Vertrauensservices können verwendet werden, um Transaktionen wie z.B. Asset-Austauschtransaktionen zu überprüfen und Transaktionsinformationen privat zu halten.
  • Die Blockchain-Architektur 500 kann Anwendungscode 120 mit Hilfe der API 122 über eine oder mehrere in der Blockchain-Schicht 116 zugängliche Schnittstellen und Services verarbeiten und ausführen, die durch die Blockchain-Plattform 112 in der Services-Schicht 118 bereitgestellt werden. Der Anwendungscode 120 kann Blockchain-Assets steuern. Zum Beispiel kann der Anwendungscode 120 Daten speichern und übertragen und kann durch Peers 104 bis 110 in Form eines Smart Contract und zugehörigen Chaincodes mit Bedingungen oder anderen Codeelementen ausgeführt werden, die seiner Ausführung unterliegen. Als nicht einschränkendes Beispiel können Smart Contracts erstellt werden, um die Übertragung von Ressourcen und/oder die Erzeugung von Ressourcen auszuführen. Die Smart Contracts selbst können verwendet werden, um Regeln im Zusammenhang mit der Berechtigung (z.B. Regeln zur Bereitstellung von Assets, Asset-Speicherung, Asset-Einschränkungen usw.), Zugriffsanforderungen (z.B. eines Datenspeichers, eines Datenspeichers außerhalb der Chain usw.) und/oder Verwendung des Ledger zum Erstellen oder Ergänzen des Prüfprotokolls 129 zu erkennen. Zum Beispiel können die Prüfprotokoll-Asset-Daten 529 durch eine oder mehrere Verarbeitungseinheiten (z.B. virtuelle Maschinen) verarbeitet werden, die in der Blockchain-Schicht 116 enthalten sind. Das ausgegebene Ergebnis 531 kann eine Mehrzahl von verknüpften, gemeinsam genutzten Dokumenten umfassen (z.B. mit jedem verknüpften, gemeinsam genutzten Dokument, das die Ausgabe eines Smart Contract in Bezug auf die Prüfprotokoll-Asset-Daten 529 aufzeichnet, die als entweder genehmigte oder abgelehnte Hinzufügung zur Blockchain erkannt wurden), unter anderem die Dokumente und Dateien, die möglicherweise die Protokolle, Datensätze, Meldungen, Fehlerberichte und andere digitale Assets enthalten, die über die API 122 zur Blockchain-Plattform 112 übertragen wurden. Bei einigen Ausführungsformen kann die physische Infrastruktur 114 genutzt werden, um beliebige der hierin beschriebenen Daten oder Informationen abzurufen.
  • Ein Smart Contract kann über eine Anwendung und eine Programmiersprache einer höheren Ebene erstellt und anschließend in einen Block in der Blockchain geschrieben werden. Der Smart Contract kann ausführbaren Code enthalten, der bei einer Blockchain (z.B. bei einem verteilten Netzwerk aus Blockchain-Peers) registriert, gespeichert und/oder repliziert ist. Bei einer Transaktion handelt es sich um eine Ausführung des Smart-Contract-Codes, der als Reaktion auf Bedingungen durchgeführt werden kann, die dem erfüllten Smart Contract zugehörig sind. Das Ausführen des Smart Contract kann (eine) vertrauenswürdige Veränderung(en) an einem Status des Ledger einer Blockchain auslösen. Die Veränderung(en) an dem Blockchain-Ledger, die durch die Ausführung des Smart Contract verursacht wurden, können über ein oder mehrere Konsensprotokolle automatisch über das gesamte verteilte Netzwerk aus Blockchain-Peers 104 bis 110 hinweg repliziert werden.
  • Der Smart Contract kann Daten im Format von Schlüsselwertpaaren in die Blockchain schreiben. Des Weiteren kann der Smart-Contract-Code die in einer Blockchain gespeicherten Werte lesen und sie bei Anwendungsarbeitsschritten verwenden, um zum Beispiel benutzerfreundliche Berichte über das Prüfprotokoll 129 zu erzeugen und die Berichte einer Blockchain-Anwendung 124 bereitzustellen, die auf einer Benutzer-Client-Einheit 124 installiert ist. Der Smart-Contract-Code kann die Ausgabe verschiedener Logikarbeitsschritte in die Blockchain schreiben. Der Code kann verwendet werden, um eine zeitweilige Datenstruktur in einer virtuellen Maschine oder in einer anderen Datenverarbeitungsplattform zu erstellen. In die Blockchain geschriebene Daten können öffentlich und/oder verschlüsselt sein und als privat verwaltet werden. Die durch den Smart Contract verwendeten/erzeugten Daten werden durch die bereitgestellte Ausführungsumgebung im Speicher gehalten und anschließend gelöscht, sobald die für die Blockchain benötigten Daten erkannt wurden.
  • Ein Chaincode kann die Codeinterpretation eines Smart Contract mit zusätzlichen Merkmalen enthalten. Wie hierin beschrieben kann es sich bei dem Chaincode um Anwendungscode 120 handeln, der auf einem Datenverarbeitungsnetzwerk bereitgestellt ist, in dem er ausgeführt und während eines Konsensprozesses durch Chain-Validation gemeinsam validiert wird. Der Chaincode empfängt einen Hash 605 und ruft aus der Blockchain einen Hash ab, der der Datenvorlage zugehörig ist, die durch Verwendung eines zuvor erstellten Merkmalextraktors erstellt wurde. Wenn die Hashes der Hash-Kennung und der Hash übereinstimmen, der aus den gespeicherten Kennungsvorlagendaten erstellt wurde, sendet der Chaincode einen Berechtigungsschlüssel an den angeforderten Service. Der Chaincode kann Daten in die Blockchain schreiben, die den kryptografischen Einzelheiten zugehörig sind (z.B. somit eine Übertragung des digitalen Asset wie z.B. eines Protokolls, eines Datensatzes, einer Warnung oder eines Ereignisses in das Prüfprotokoll 129 bestätigen; oder eine Nichtübereinstimmung mit einer voraussichtlichen Übertragung eines digitalen Asset usw. erkennen).
  • 5B veranschaulicht ein Beispiel eines Blockchain-Transaktionsablaufs 550 zwischen Knoten 102 des Blockchain-Netzwerks 130, zum Beispiel durch Knoten 102 eines Peer-to-Peer-Netzwerks (P2P-Netzwerks). Der Transaktionsablauf 550 kann einen Transaktionsvorschlag 591 enthalten, der durch einen Anwendungs-Client-Knoten 560 an einen Bewilligungs-Peer-Knoten 581 gesendet wird (z.B. kann es sich bei einigen Ausführungsformen bei dem Transaktionsvorschlag 591 und eine Anforderung handeln, die eine Kennung enthält, die einem Datenspeicher oder einer Datenbank außerhalb der Chain zugehörig ist). Der Bewilligungs-Peer-Knoten 581 kann die Client-Signatur überprüfen und eine Chaincode-Funktion ausführen, um die vorgeschlagene Transaktion einzuleiten. Zum Beispiel eine vorgeschlagene Transaktion, um ein Protokoll aus den Migrationstools 121 in einen Block aufzuzeichnen und den Block in die Blockchain des Prüfprotokolls 129 einzutragen. Die Ausgabe kann die Chaincode-Ergebnisse, einen Satz von Schlüssel-/Wertversionen, die im Chaincode gelesen wurden (Lesesatz), und einen Satz von Schlüsseln/Werten enthalten, die im Chaincode geschrieben wurden (Schreibsatz). Die Vorschlagsantwort 592 wird zusammen mit einer Bewilligungssignatur (sofern diese genehmigt wurde) zurück an den Client Knoten 560 gesendet. Der Client-Knoten 560 setzt die Bewilligungen zu Transaktionsnutzdaten 593 zusammen und sendet die Nutzdaten 593 per Rundsendung an einen Anordnungsserviceknoten 584. Der Anordnungsserviceknoten 584 stellt dann allen Peers 581 bis 583 auf einem Kanal geordnete Transaktionen als Blöcke bereit. Vor der Festschreibung in die Blockchain kann jeder Peer 581 bis 583 die Transaktion validieren. Zum Beispiel können die Peers 581 bis 583 die Bewilligungsrichtlinie kontrollieren, um sicherzustellen, dass der korrekte Anteil der angegebenen Peers die Ergebnisse signiert und die Signaturen gegen die Transaktionsdaten 593 auf Berechtigung geprüft haben (z.B. validieren alle oder eine Schwellenwertanzahl von Peers, dass die Anforderung die Kennung und/oder den symmetrischen Schlüssel enthält, die/der das Auffinden eines Datenspeicherverbindungsobjekts und/oder den Zugriff auf einen Datenspeicher außerhalb der Blockchain ermöglicht, der das digitale Asset speichert).
  • Ausführungsformen des Client-Knotens 560 leiten den Transaktionsvorschlag 591 ein, indem eine Anforderung aufgebaut und an den Peer-Knoten 581 gesendet wird, bei dem es sich um einen Bewilliger handelt. Der Client-noten 560 kann eine Anwendung enthalten, die ein unterstütztes Software Development Kit (SDK) nutzt, das eine verfügbare API 122 zum Verbinden mit den Peers und zum Aufrufen von Chaincode nutzt, um einen Transaktionsvorschlag 591 zu erzeugen. Über eine Peer-Verbindung können Anwendungen 124 und/oder die API 122 Chaincodes ausführen, um ein Ledger abzufragen oder zu aktualisieren. Das Ergebnis eine Ledger-Abfragetransaktion wird sofort zurückgegeben, während Ledger-Aktualisierungen eine komplexere Interaktion zwischen Anwendungen, Peers und Anordnern umfassen (hierin ausführlich beschrieben). Bei dem Transaktionsvorschlag 591 handelt es sich um eine Anforderung zum Aufrufen einer Chaincode-Funktion, sodass die Daten in das Ledger geschrieben (z.B. Schreiben neuer Schlüsselwertpaare für die Assets, die zum Prüfprotokoll 129 hinzugefügt werden) und/oder daraus gelesen werden können. Das SDK kann das Paket des Transaktionsvorschlags 591 zu einem Format mit einer ordnungsgemäßen Architektur (z.B. Protokollpuffer über einen Prozedurfernaufruf (Remote Procedure Call, RPC)) verringern und die Kryptografie-Berechtigungsnachweise des Client-Knotens 560 nehmen, um eine eindeutige Signatur für den Transaktionsvorschlag 591 zu erzeugen.
  • Als Reaktion kann der Bewilligungs-Peer-Knoten 581 überprüfen, dass (a) der Transaktionsvorschlag 591 zum Hinzufügen des digitalen Asset, der das Prüfprotokoll 129 aufweist, richtig gebildet ist, (b) die Transaktion nicht bereits in der Vergangenheit übermittelt wurde (Schutz vor Attacken durch Nachrichtenaufzeichnung und -wiederholung (replay-attacks)), (c) die Signatur gültig ist und (d) dass der Übermittler (bei diesem Beispiel Client Knoten 560) ordnungsgemäß berechtigt ist, den vorgeschlagenen Arbeitsschritt auf diesem Kanal des Blockchain-Netzwerks 130 durchzuführen. Der Bewilligungs-Peer-Knoten 581 kann die Eingaben des Transaktionsvorschlags 591 als Argumente zu der aufgerufenen Chaincode-Funktion nehmen. Der Chaincode wird dann im Vergleich mit einer Aktueller-Status-Datenbank ausgeführt, um Transaktionsergebnisse zu erzeugen, die einen Antwortwert, einen Lesesatz und einen Schreibsatz enthalten. Zu diesem Zeitpunkt werden jedoch keine Aktualisierungen am Ledger der Knoten 102 der Blockchain vorgenommen. Bei einigen Ausführungsformen wird der Satz von Werten zusammen mit der Signatur des Bewilligungs-Peer-Knotens 581 als Vorschlagsantwort 592 an das SDK des Clients-Knotens 560 zurückgegeben, das die Nutzdaten 593 für die Anwendung 124 und/oder die API 122 zum Verbrauch und zur Anzeige analysiert.
  • Als Reaktion untersucht/überprüft die Anwendung des Client-Knotens 560 die Signaturen der Bewilligungs-Peers und vergleicht die Vorschlagsantworten, um zu ermitteln, ob es sich bei der Vorschlagsantwort um dieselbe handelt. Wenn der Chaincode nur das Ledger abgefragt hat, untersucht die Anwendung die Abfrageantwort und würde die Transaktion in der Regel nicht an den Service des Anordnungsknotens 584 übermitteln. Wenn der Client-Knoten 560 beabsichtigt, die Transaktion an den Service des Anordnungsknotens 584 zu übermitteln, um das Ledger zu aktualisieren, ermittelt der Client-Knoten 560, ob die angegebene Bewilligungsrichtlinie vor dem Übermitteln erfüllt wurde (z.B., wurde eine Anforderung akzeptiert?). Hierbei können Client-Knoten 560 nur eine/einen von mehreren Parteien oder Projektbeteiligten an der Transaktion enthalten, um die digitalen Assets zu dem Block des Prüfprotokolls 129 hinzuzufügen. In diesem Fall kann jeder einzelne Client-Knoten 560 seinen eigenen Bewilligungsknoten haben, und jeder Bewilligungsknoten muss die Transaktion bewilligen. Die Architektur ist so gestaltet, dass die Bewilligungsrichtlinie nach wie vor durch Peers durchgesetzt und in der Validierungsphase der Festschreibung aufrechterhalten wird, selbst wenn ein Client-Knoten 560 entscheidet, Antworten nicht zu untersuchen oder ansonsten eine nicht bewilligte Transaktion weiterleitet.
  • Nach erfolgreicher Untersuchung setzt der Client-Knoten 560 im Schritt der Transaktionsdaten 593 Bewilligungen zu einer Transaktion zusammen und sendet den Transaktionsvorschlag 591 und die Antwort innerhalb einer Transaktionsnachricht per Rundsendung an den Anordnungsknoten 584. Die Transaktion kann die Lese-/Schreibsätze, die Signaturen der Bewilligungs-Peers und eine Kanal-ID enthalten. Der Anordnungsknoten 584 muss nicht den gesamten Inhalt einer Transaktion untersuchen, um seinen Arbeitsschritt durchzuführen, stattdessen kann der Anordnungsknoten 584 möglicherweise einfach Transaktionen von allen Kanälen im Netzwerk empfangen, sie chronologisch nach Kanal anordnen und Blöcke von Transaktionen pro Kanal erstellen.
  • Die Blöcke der Transaktionen werden vom Anordnungsknoten (dem 4. Peer-Knoten 584 in dem Beispiel von 5B, der hierin als „Anordnungsknoten 584“ bezeichnet wird) allen Peer-Knoten 581 bis 583 auf dem Kanal bereitgestellt. Die Transaktionen 594 innerhalb des Blocks werden validiert, um sicherzustellen, dass beliebige Bewilligungsrichtlinien ausnahmslos erfüllt sind, und um sicherzustellen, dass am Ledger-Status bei Lesesatz-Variablen keine Änderungen vorgenommen wurden, seitdem der Lesesatz durch die Transaktionsausführung erzeugt wurde. Transaktionen in dem Block sind als „gültig“ oder „ungültig“ markiert. Des Weiteren hängt jeder Peer-Knoten 581 bis 583 in den Schritten 595 den Block an die Chain des Kanals an, und für jede gültige Transaktion werden die Schreibsätze in die Aktueller-Status-Datenbank festgeschrieben. Ein Ereignis wird ausgegeben, um die Anwendung des Clients-Knotens 560 darüber zu informieren, dass die Transaktion (der Aufruf) unveränderbar an die Chain angehängt wurde, sowie, um mitzuteilen, ob die Transaktion für gültig oder ungültig erklärt wurde (z.B. ob der Anforderung zugebilligt oder verweigert wird, die Aktualisierung am Prüfprotokoll 129 vorzunehmen, was eine Hinzufügung eines neuen digitalen Asset umfassen kann, das von einem/einer oder mehreren Servern 103, 105, Migrationstools 121 und/oder Client-Einheiten 119, 123, 127 zur Blockchain-Plattform 112 übertragen wurde).
  • VERFAHREN ZUM AUSFÜHREN EINES MITTELS BLOCKCHAINS REALISIERTEN DATENMIGRATIONSPRÜFPROTOKOLLS
  • Die Zeichnung von 7 stellt eine Ausführungsform eines Algorithmus 700 dar, der ein mittels Computer realisiertes Verfahren zum Ausführen eines mittels Blockchains realisierten Datenmigrationsprüfprotokolls 129 durchführt, das in der Lage ist, den Fortschritt von durchgängigen Migrationsaufgaben 111 sicher nachzuverfolgen. Der durch 7 gezeigte und beschriebene Algorithmus 700 kann ein oder mehrere Computersysteme verwenden, die allgemein durch das Datenverarbeitungssystem 10 von 1 und insbesondere durch die Ausführungsformen von spezialisierten Datenverarbeitungssystemen der Datenverarbeitungsumgebungen 200, 240, 300, 500, 550 definiert sind, die in den 2A bis 6 abgebildet und hierin beschrieben sind. Ein Fachmann sollte erkennen, dass die in 7 beschriebenen Schritte des Algorithmus 700 in einer anderen Reihenfolge als der dargestellten durchgeführt werden können. Der Algorithmus 700 erfordert möglicherweise nicht zwangsläufig, dass alle hierin beschriebenen Schritte durchgeführt werden müssen. Vielmehr können einige Ausführungsformen des Algorithmus 700 die Verfahren abändern, indem eine Teilmenge von Schritten unter Verwendung eines oder mehrerer der nachstehend erörterten Schritte durchgeführt wird.
  • Ausführungsformen des Algorithmus 700 können bei Schritt 701 beginnen. In Schritt 701 ein Benutzer, ein Eigentümer, ein Administrator, eine Einheit oder ein anderer Projektbeteiligter mit der Berechtigung zum Genehmigen von Datenmigration von Daten, die durch eine oder mehrere Datenmigrationsquellen gespeichert sind, um ein neues Datenmigrationsprojekt zu erstellen und/oder zu genehmigen. Der Benutzer, der das Datenmigrationsprojekt genehmigt und/oder erstellt, kann die für das Übertragen verantwortliche Datenmigrationsquelle wie z.B. ein Quell-Rechenzentrum 101 oder ein Cloud-Netzwerk 250 und eine Ziel-Datenquelle wie z.B. das Ziel-Rechenzentrum 125 oder ein zweites Cloud-Netzwerk identifizieren, die zum Empfangen der Daten benannt ist, die von der Datenmigrationsquelle migriert werden.
  • In Schritt 703 des Algorithmus 700 kann eine Aufgabenliste 111 erzeugt und/oder an jeden der Projektbeteiligten und/oder Teilnehmer verteilt werden, die an dem in Schritt 701 erstellten Datenmigrationsprojekt teilnehmen oder einen Beitrag dazu leisten. Die erzeugte Aufgabenliste 111 kann eine oder mehrere durchgängige Migrationsaufgaben zum Vorbereiten, Übertragen und Validieren einer erfolgreichen Migration von Daten zwischen der Datenmigrationsquelle und dem Datenmigrationsziel aufweisen. Ausführungsformen der Liste 111 durchgängiger Migrationsaufgaben kann eine oder mehrere Vormigrationsaufgaben 113, Migrationsaufgaben 115 und/oder Nachmigrationsaufgaben 117 enthalten. In Schritt 705 können eine oder mehrere Aufgaben 111 der in Schritt 703 erzeugten Aufgabenliste einem oder mehreren Projekt beteiligten wie z.B. einem bestimmten Team von Teilnehmern zugewiesen werden, die für das Durchführen der zugewiesenen Aufgabe der Aufgabenliste 111 verantwortlich sind. Darüber hinaus kann die Aufgabenliste 111 außer der zugewiesenen Aufgabe ferner einen Zeitplan zum Ausführen der Aufgabe zu einem Termin und eine Benennung einer oder mehrerer abhängiger Aufgaben aufweisen, die möglicherweise eine Ausführung der zugewiesenen Aufgabe erfordern, bevor die abhängigen Aufgaben ausgeführt werden können.
  • In Schritt 707 des Algorithmus 700 wird eine Ermittlung vorgenommen, ob eine oder mehrere der zugewiesenen Aufgaben der Datenmigrationsprojekte überfällig sind, indem das für die Ausführung der Aufgabe geplante Fälligkeitsdatum mit dem aktuellen Datum verglichen wird, an dem die Ermittlung vorgenommen wird. Wenn eine zugewiesenen Aufgabe nicht durchgeführt wurde und das zugewiesen Fälligkeitsdatum überschritten hat, das durch die in Schritt 703 erzeugte Aufgabenliste geplant ist, kann der Algorithmus zu Schritt 709 übergehen, wobei die Nichtdurchführung der Aufgabe(n) nach dem Fälligkeitsdatum in einem digitalen Asset wie z.B. einer Protokolldatei, einem Ereignisdatensatz, einer Warnung usw. aufgezeichnet wird. Die Komponente, das Programm, der Server 103, 105, die Migrationstools 121 oder andere Ressourcen, die die Nichtdurchführung der zugewiesenen Aufgabe aufzeichnen, können eine Transaktion einleiten, um das digitale Asset, das die Nichtdurchführung der Aufgabe anzeigt, zum Prüfprotokoll 129 hinzuzufügen, das durch die Blockchain-Plattform 112 verwaltet wird. Zum Beispiel kann/können die Ressource(n), die das digitale Asset erzeugt/erzeugen, das die Nichtdurchführung der Aufgabe anzeigt, Anwendungscode 120 über die API 122 und/oder die Anwendung 124 ausführen, der anfordert, dass das Ledger, das das Prüfprotokoll 129 verwaltet, aktualisiert wird, um das Nichtdurchführungs-Asset zu enthalten. Insbesondere kann ein Client-Knoten, der die Anforderung zum Aktualisieren des Ledger empfängt, Chaincode ausführen, der die Ausführung der Aktualisierungsanforderung mit den Peers 104 bis 110 des Blockchain-Netzwerks 130 verbreitet.
  • Wenn umgekehrt in Schritt 707 die Ermittlung, ob eine zugewiesene Aufgabe 111 nicht überfällig ist, kann eine zweite Ermittlung vorgenommen werden, ob eine oder mehrere Aufgaben 111 in der Datenverarbeitungsumgebung 200, 250 als Teil des in Schritt 701 erstellten durchgängigen Migrationsprojekts durchgeführt wurden. Wenn die Aufgaben 111 in Schritt 711 nicht durchgeführt wurden, kann der Algorithmus 700 zu Schritt 707 zurückkehren. Ebenso kann der Algorithmus 700 zu Schritt 713 übergehen, wenn in Schritt 711 die Durchführung einer oder mehrerer Aufgaben 111 stattgefunden hat. In Schritt 713 können die eine oder die mehreren Ressourcen der Datenverarbeitungsumgebung nach Durchführung einer Aufgabe durch eine oder mehrere Ressourcen der Datenverarbeitungsumgebung 200, 250 wie z.B. durch die Anwendung(en) 107, Betriebslasten 109, Migrationstools 121, Server 103, 105 und/oder Client-Einheiten 119, 124, 127 ein digitales Asset wie z.B. ein Protokoll, eine Warnung, einen Fehlerbericht, einen Ereignisdatensatz usw. erzeugen und/oder aktualisieren, in denen Einzelheiten der Durchführung der Aufgabe 111, das Ergebnis und eine oder mehrere zusätzliche Einzelheiten aufgeführt sind, die Kontext für die Durchführung der Aufgabe 111 bereitstellen können (d.h. angeben, wann die Aufgabe durchgeführt wurde, welche Ressource die Aufgabe durchgeführt hat, wann die Aufgabe durchgeführt wurde, den Benutzernamen, das Netzwerk, die IP-Adresse usw. angeben). Zum Beispiel kann es sich bei dem digitalen Asset, das die Durchführung der Aufgabe(n) protokolliert, um ein Anwendungsprotokoll, ein Betriebssystemprotokoll, Ausgaben aus einem oder mehreren Migrationstools 121, um Benutzerzugriffsprotokolle und/oder Netzwerkeinheitenprotokolle von Clients 119, 123, 127 oder Servern 103, 105 handeln.
  • In Schritt 715 des Algorithmus 700 können die digitalen Assets, die durch eine oder mehrere Ressourcen der Datenverarbeitungsumgebung 200, 240 erzeugt wurden, das Asset zusammen mit einem Transaktionsvorschlag zum Aktualisieren des Ledger des Prüfprotokolls 129 übertragen, um die Durchführung der einen oder der mehreren Aufgaben 111 an der Blockchain wiederzugeben, die das Prüfprotokoll 129 verwaltet. Zum Beispiel können eine oder mehrere Ressourcen der Computerumgebung 200, 240, die das Asset erzeugen, die Anforderung über eine Anwendung 124 und/oder eine API 122 zur Blockchain-Plattform 112 weiterleiten. Die Anwendung 124 und/oder die API 122 können als Reaktion auf den Empfang des Transaktionsvorschlags zum Aktualisieren des Ledger der Blockchain, die das Prüfprotokoll 129 aufweist, Anwendungscode 120 ausführen, um die Anforderung mit einem oder mehreren Peer-Knoten 104 bis 110 zu verarbeiten. Zum Beispiel stellt die Ressource, die die Blockchain aktualisieren möchte, über die API 122 eine Peer-Verbindung zu einem oder mehreren Peer-Knoten 104 bis 110 des Blockchain-Netzwerks 130 her, und der Anwendungscode 120 ruft Chaincode auf, um den Peer-Knoten 104 bis 110 zum Aktualisieren der Blockchain aufzufordern, die das Prüfprotokoll 129 aufweist, wobei das digitale Asset bereitgestellt wird, in dem Einzelheiten der Durchführung der Aufgabe 111 aufgeführt sind. Der aufgerufene Chaincode kann eine Aktualisierungsvorschlagsantwort erzeugen, die an die Anwendung 124 oder die API 122 zurückgegeben werden kann, die die anfängliche Aktualisierungsanforderung sendet.
  • In Schritt 717 des Algorithmus 700 kann die Aufzeichnung des digitalen Asset, die die Durchführung einer oder mehrerer Aufgaben angibt, in die Blockchain, die das Prüfprotokoll 129 aufweist, als Block in der Blockchain eingegeben werden. Zum Beispiel kann die Anwendung 124 und/oder die API als Reaktion auf den Empfang der Vorschlagsantwort vom Peer-Knoten über die Anwendung 124 oder die API 122 vorschreiben, dass die Aktualisierungstransaktion durchgeführt wird, indem die Transaktionsanforderung an einen Anordnungsknoten des Blockchain-Netzwerks 130 gesendet wird. Der Anordnungsknoten kann die Transaktionen aus dem gesamten Blockchain-Netzwerk 130 zu Blöcken sammeln, die einen Index 601, einen Zeitstempel 603, einen Hash 605, einen vorhergehenden Hash 607 eines vorherigen Blocks, eine Nonce 608 und/oder Nutzdaten 609 aufweisen können, die das digitale Asset aufweisen, in dem die Durchführung (oder Nichtdurchführung) einer durchgehenden Migrationsaufgaben in Einzelheiten aufgeführt ist. Ausführungsformen des Anordnungsknotens des Blockchain-Netzwerks 130 können die Blöcke für die angeforderte Transaktion auf alle Peers im Blockchain-Netzwerk 130 (oder auf dem betreffenden Kanal des Blockchain-Netzwerks) verteilen, unter anderem auf den Peer-Knoten, der die ursprüngliche Aktualisierungsanforderung empfängt, die den Chaincode zum Aktualisieren des Ledger aufgerufen hat, das das Prüfprotokoll 129 aufweist. Die Peer-Knoten 104 bis 110 können die vom Anordnungsknoten empfangenen Blöcke validieren, und wenn die Aktualisierungsanforderung als gültig betrachtet wird, kann jeder Peer-Knoten, der einen Block vom Anordnungsknoten empfängt, seine Kopie des Ledger des durch jeden Peer-Knoten 104 bis 110 verwalteten Prüfprotokolls 129 aktualisieren (wenn durch die Peer-Knoten 104 bis 110 ein Konsens erzielt wurde, die Aktualisierungstransaktion durchzuführen). Bei einigen Ausführungsformen können Peer-Knoten 104 bis 110 nach einer validierten Aktualisierung des Ledger, das das Prüfprotokoll 129 aufweist, ein Ereignis erzeugen, um die Beendigung der Aktualisierungstransaktion anzudeuten, und das Ereignis zu der Anwendung 124 oder der API 122 übertragen, die die anfängliche Transaktionsanforderung erzeugt hat.
  • In Schritt 719 des Algorithmus 700 kann eine Ermittlung vorgenommen werden, ob jede der durchgängigen Migrationsaufgaben 111 beendet wurde. Wenn alle in Schritt 703 erzeugten durchgängigen Migrationsaufgaben 111 beendet wurden, kann der Algorithmus 700 enden. Wenn umgekehrt noch weitere nicht durchgeführte durchgängige Migrationsaufgaben 111 des Datenmigrationsprojekts vorliegen, kann der Algorithmus 700 von Schritt 719 zu Schritt 707 zurückgehen.
  • Bei einigen Ausführungsformen kann ein Prüfer der durchgängigen Migrationsaufgaben 111 versuchen, das Ledger, das das Prüfprotokoll 129 aufweist, zu einem beliebigen Zeitpunkt zu untersuchen, ob die Durchführung der Aufgaben 111 geplant oder beendet wurde, unter anderem nach Beendigung aller durchgängigen Migrationsaufgaben 111. Prüfer können auf das Ledger, das das Prüfprotokoll aufweist, zum Beispiel über eine Prüf-Client-Einheit 127 zugreifen, indem eine Peer-Verbindung mit einem Peer-Knoten 104 bis 110 unter Verwendung einer Anwendung 124 und/oder über eine API 122 hergestellt und eine Abfrageanforderung zum Empfangen einer Kopie des durch den Peer-Knoten verwalteten Ledger mit der hergestellten Peer-Verbindung übermittelt werden. Die über die Anwendung 124 und/oder die API 122 übermittelte Abfrageanforderung kann Anwendungscode 120 ausführen, der Chaincode des Peer-Knotens aufruft, um die Abfrageanforderung durchzuführen. Der Chaincode erzeugt das Abfrageergebnis des Ledger und gibt eine Kopie des Ledger, das das Prüfprotokoll 129 aufweist, an die Client-Einheit 127 des Prüfers zur Überprüfung und Analyse durch den Prüfer zurück. Bei einigen Ausführungsformen kann der Prüfer die Kopie des Ledger nutzen, das das Prüfprotokoll 129 aufweist, um eine oder mehrere Berichte zu erarbeiten, in denen Einzelheiten des Status und der Durchführung der durchgängigen Migrationsaufgaben aufgeführt sind, und kann die erzeugten Berichte zu einer oder mehreren Client-Einheiten 119, 123, 127 übertragen.
  • Die Beschreibungen der verschiedenen Ausführungsformen der vorliegenden Offenbarung sollen der Veranschaulichung dienen, sind jedoch nicht als vollständig oder auf die offenbarten Ausführungsformen beschränkt gedacht. Für Fachleute sind viele Modifikationen und Variationen denkbar, ohne dass diese eine Abweichung vom Schutzbereich und Grundgedanken der Erfindung darstellen würden. Die hierin verwendete Terminologie wurde gewählt, um die Grundgedanken der Ausführungsform, die praktische Anwendung bzw. die technische Verbesserung gegenüber den auf dem Markt vorgefundenen Technologien auf bestmögliche Weise zu erläutern bzw. anderen mit entsprechenden Fachkenntnissen das Verständnis der hierin offenbarten Ausführungsformen zu ermöglichen.

Claims (9)

  1. Mittels Computer realisiertes Verfahren zum Erzeugen eines mittels Blockchains realisierten Datenmigrationsprüfprotokolls, wobei das Verfahren aufweist: Erstellen, durch einen Prozessor, einer Aufgabenliste, die so konfiguriert ist, dass eine oder mehrere Aufgaben zum Migrieren von Daten von einer Datenmigrationsquelle auf ein Datenmigrationsziel delegiert werden; Zuweisen, durch den Prozessor, der einen oder der mehreren Aufgaben zu mindestens einer Partei, die für eine Durchführung einer zugewiesenen Aufgabe verantwortlich ist, um das Migrieren der Daten von der Datenmigrationsquelle auf das Datenmigrationsziel auszuführen; Durchführen, durch den Prozessor, der zugewiesenen Aufgabe; Protokollieren, durch den Prozessor in Abhängigkeit vom Durchführen der zugewiesenen Aufgabe, von Einzelheiten, die der Durchführung der zugewiesenen Aufgabe entsprechen, in ein digitales Asset; Aufzeichnen, durch den Prozessor, des digitalen Asset als Block einer Blockchain; und Verteilen, durch den Prozessor, des Blocks der Blockchain, der die Durchführung der zugewiesenen Aufgabe zum Migrieren von einer Datenmigrationsquelle auf ein Datenmigrationsziel beschreibt, an alle Knoten eines Blockchain-Netzwerks, wobei der in der Blockchain aufgezeichnete Block das mittels Blockchains realisierte Datenmigrationsprüfprotokoll aktualisiert.
  2. Mittels Computer realisiertes Verfahren nach Anspruch 1, wobei das digitale Asset, das die Durchführung der zugewiesenen Aufgaben protokolliert, ausgewählt ist aus der Gruppe, bestehend aus Ereignisprotokollen, Anwendungsprotokollen, Benutzerzugriffsprotokollen, Systemwarnungen, Netzwerkeinheitenprotokollen und Ausgaben aus Datenmigrationstools.
  3. Mittels Computer realisiertes Verfahren nach Anspruch 1, das ferner aufweist: Herstellen, durch den Prozessor, einer Peer-Verbindung mit einem Peer-Knoten des Blockchain-Netzwerks unter Verwendung einer Anwendungsprogrammierschnittstelle (application programming interface, API), die im Datenaustausch mit einer Blockchain-Plattform steht, die das Blockchain-Netzwerk hostet; und Aufrufen, durch den Prozessor, von Chaincode des Peer-Knotens, um die Blockchain mit dem Block zu aktualisieren, der das digitale Asset aufweist, das durch mindestens eines aus einem Protokollierungsserver oder einem Überwachungsserver der Datenmigrationsquelle oder des Datenmigrationsziels oder den Datenmigrationstools erzeugt wurde.
  4. Mittels Computer realisiertes Verfahren nach Anspruch 3, wobei der Block der Blockchain, die aktualisiert wird, der das digitale Asset aufweist, ferner einen Zeitstempel des zu dem Block hinzugefügten digitalen Asset, einen für den aktualisierten Block erzeugten Hash, der eindeutige Inhalte beschreibt, die als durch den Block aufzuzeichnen angefordert werden, und einen vorhergehenden Hash aufweist, der einen unmittelbar vorher aufgezeichneten Block in dem Blockchain-Netzwerk beschreibt.
  5. Mittels Computer realisiertes Verfahren nach Anspruch 1, wobei die Datenmigrationsquelle und das Datenmigrationsziel jeweils ausgewählt sind aus der Gruppe, bestehend aus einem Rechenzentrum, einem öffentlichen Cloud-Netzwerk und einem privaten Cloud-Netzwerk.
  6. Mittels Computer realisiertes Verfahren nach Anspruch 1, das ferner aufweist: Herstellen, durch den Prozessor, einer Peer-Verbindung zu einem Peer-Knoten des Blockchain-Netzwerks unter Verwendung einer Anwendungsprogrammierschnittstelle (API), die im Datenaustausch mit einer Blockchain-Plattform steht, die das Blockchain-Netzwerk hostet; Abfragen, durch den Prozessor, des Peer-Knotens des Blockchain-Netzwerks in Bezug auf eine Kopie des mittels Blockchains realisierten Datenmigrationsprüfprotokolls; Erzeugen, durch den Prozessor, eines Berichts, der den Fortschritt der einen oder der mehreren Aufgaben zum Migrieren von Daten von einer Datenmigrationsquelle auf ein Datenmigrationsziel auf der Grundlage des abgerufenen, mittels Blockchains realisierten Datenmigrationsprüfprotokolls beschreibt; und Verteilen, durch den Prozessor, des Berichts auf eine oder mehrere Client-Einheiten der Datenmigrationsquelle oder des Datenmigrationsziels.
  7. Mittels Computer realisiertes Verfahren nach Anspruch 1, wobei es sich bei dem Blockchain-Netzwerk um ein Peer-to-Peer-Netzwerk (P2P-Netzwerk) handelt und jeder Knoten des P2P-Netzwerks, der den Block empfängt, den Block daraufhin überprüft, dass der Block nicht manipuliert wurde, und den Block zu einer bestehenden Blockchain des Blockchain-Netzwerks hinzufügt.
  8. Computersystem zum Erzeugen eines mittels Blockchains realisierten Datenmigrationsprüfprotokolls, das aufweist: einen Prozessor; und ein durch einen Computer lesbares Speichermedium, das mit dem Prozessor verbunden ist, wobei das durch einen Computer lesbare Speichermedium Programmanweisungen enthält, die ein mittels Computer realisiertes Verfahren ausführen, das aufweist: Erstellen, durch den Prozessor, einer Aufgabenliste, die so konfiguriert ist, dass eine oder mehrere Aufgaben zum Migrieren von Daten von einer Datenmigrationsquelle auf ein Datenmigrationsziel delegiert werden; Zuweisen, durch den Prozessor, der einen oder der mehreren Aufgaben zu mindestens einer Partei, die für die Durchführung einer zugewiesenen Aufgabe verantwortlich ist, um das Migrieren der Daten von der Datenmigrationsquelle auf das Datenmigrationsziel auszuführen; Durchführen, durch den Prozessor, der zugewiesenen Aufgabe; Protokollieren, durch den Prozessor in Abhängigkeit vom Durchführen der zugewiesenen Aufgabe, von Einzelheiten, die der Durchführung der zugewiesenen Aufgabe entsprechen, in ein digitales Asset; Aufzeichnen, durch den Prozessor, des digitalen Asset als Block einer Blockchain; und Verteilen, durch den Prozessor, des Blocks der Blockchain, der die Durchführung der zugewiesenen Aufgabe zum Migrieren von einer Datenmigrationsquelle auf ein Datenmigrationsziel beschreibt, an alle Knoten eines Blockchain-Netzwerks, wobei der in der Blockchain aufgezeichnete Block das mittels Blockchains realisierte Datenmigrationsprüfprotokoll aktualisiert.
  9. Computerprogrammprodukt, das aufweist: ein durch einen Computer lesbares Speichermedium, das darauf verkörperte Programmanweisungen enthält, wobei die Programmanweisungen durch einen Prozessor ausführbar sind, um den Prozessor zu veranlassen, das Verfahren zum Erstellen eines mittels Blockchains realisierten Datenmigrationsprüfprotokolls auszuführen, das aufweist: Erstellen, durch den Prozessor, einer Aufgabenliste, die so konfiguriert ist, dass eine oder mehrere Aufgaben zum Migrieren von Daten von einer Datenmigrationsquelle auf ein Datenmigrationsziel delegiert werden; Zuweisen, durch den Prozessor, der einen oder der mehreren Aufgaben zu mindestens einer Partei, die für die Durchführung einer zugewiesenen Aufgabe verantwortlich ist, um das Migrieren der Daten von der Datenmigrationsquelle auf das Datenmigrationsziel auszuführen; Durchführen, durch den Prozessor, der zugewiesenen Aufgabe; Protokollieren, durch den Prozessor in Abhängigkeit vom Durchführen der zugewiesenen Aufgabe, von Einzelheiten, die der Durchführung der zugewiesenen Aufgabe entsprechen, in ein digitales Asset; Aufzeichnen, durch den Prozessor, des digitalen Asset als Block einer Blockchain; und Verteilen, durch den Prozessor, des Blocks der Blockchain, der die Durchführung der zugewiesenen Aufgabe zum Migrieren von einer Datenmigrationsquelle auf ein Datenmigrationsziel beschreibt, an alle Knoten eines Blockchain-Netzwerks, wobei der in der Blockchain aufgezeichnete Block das mittels Blockchains realisierte Datenmigrationsprüfprotokoll aktualisiert.
DE102021123128.0A 2020-10-08 2021-09-07 Mittels blockchains realisiertes datenmigrationsprüfprotokoll Pending DE102021123128A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/065,555 2020-10-08
US17/065,555 US11449478B2 (en) 2020-10-08 2020-10-08 Blockchain implemented data migration audit trail

Publications (1)

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

Family

ID=78399508

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021123128.0A Pending DE102021123128A1 (de) 2020-10-08 2021-09-07 Mittels blockchains realisiertes datenmigrationsprüfprotokoll

Country Status (5)

Country Link
US (1) US11449478B2 (de)
JP (1) JP7470089B2 (de)
CN (1) CN114297174A (de)
DE (1) DE102021123128A1 (de)
GB (1) GB2601049B (de)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11416449B2 (en) * 2020-07-23 2022-08-16 National Applied Research Laboratories Method of synchronous deletion for distributed storage system
US20220129443A1 (en) * 2020-10-27 2022-04-28 Genetec Inc. Document management system and related method
US11700304B2 (en) * 2020-11-19 2023-07-11 Deixis, PBC Confirmation of service levels via distributed ledgers
US20220197730A1 (en) * 2020-12-21 2022-06-23 Sap Se Blockchain-based multi-application communication platform
US11962697B2 (en) * 2021-09-24 2024-04-16 Johnson Controls Tyco IP Holdings LLP Systems and methods for tracking chain of custody of body worn cameras
US11704219B1 (en) * 2021-10-04 2023-07-18 Splunk Inc. Performance monitoring of distributed ledger nodes
US20240020266A1 (en) * 2022-07-15 2024-01-18 Box, Inc. Methods and systems for external migration collaboration
CN115412336B (zh) * 2022-08-26 2023-03-31 国网数字科技控股有限公司 联盟链账本篡改攻击检测方法、装置及电子设备
CN116032793B (zh) * 2022-11-17 2024-04-02 中国联合网络通信集团有限公司 信息处理方法、装置、电子设备及计算机可读介质
CN115858687B (zh) * 2023-03-02 2023-05-23 山东省计算中心(国家超级计算济南中心) 一种可审计、可强制撤销的区块链修改方法及系统
CN116010998B (zh) * 2023-03-20 2023-08-29 中国信息通信研究院 基于区块链的数据格式校验及托管方法、装置和电子设备
CN116361271B (zh) * 2023-05-09 2024-01-23 中航信移动科技有限公司 一种区块链数据修改迁移方法、电子设备及存储介质
CN116723239B (zh) * 2023-08-09 2023-10-31 腾讯科技(深圳)有限公司 区块链数据的传输方法、装置、电子设备和可读介质
CN116910816B (zh) * 2023-09-12 2023-12-05 北京迅京科技有限公司 一种提高隐私保护下的多方资产协同管理方法及装置
CN117689227B (zh) * 2023-12-11 2024-06-04 广州智业节能科技有限公司 一种数字化运营管理平台、数据标准化方法及装置

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8422682B2 (en) 2006-07-14 2013-04-16 Kinamik Data Integrity, S.L. Method and system of generating immutable audit logs
JP2009110102A (ja) 2007-10-26 2009-05-21 Chugoku Electric Power Co Inc:The ログ監視システムおよびログ監視方法
JP4990322B2 (ja) 2009-05-13 2012-08-01 株式会社日立製作所 データ移動管理装置及び情報処理システム
US9602598B2 (en) * 2013-05-29 2017-03-21 International Business Machines Corporation Coordinating application migration processes
US10324914B2 (en) * 2015-05-20 2019-06-18 Commvalut Systems, Inc. Handling user queries against production and archive storage systems, such as for enterprise customers having large and/or numerous files
US20170345011A1 (en) * 2016-05-26 2017-11-30 Hitfin, Inc. System and method executed on a blockchain network
US11042525B2 (en) * 2017-04-04 2021-06-22 Oracle International Corporation Extracting and labeling custom information from log messages
EP3785199A4 (de) * 2018-04-26 2022-01-19 The Assay Depot, Inc. Dezentralisierte datenverifizierung
CN108829350B (zh) 2018-05-31 2020-02-21 阿里巴巴集团控股有限公司 基于区块链的数据迁移方法和装置
EP3804215A4 (de) * 2018-06-04 2022-03-09 Foogal, Inc. System und verfahren auf tokenbasis
JP7056429B2 (ja) 2018-07-18 2022-04-19 株式会社デンソー 履歴管理方法、及び履歴管理装置
US20200058007A1 (en) 2018-08-15 2020-02-20 NEC Laboratories Europe GmbH Data exchange platform using blockchain
US11301590B2 (en) * 2018-09-05 2022-04-12 International Business Machines Corporation Unfalsifiable audit logs for a blockchain
JP2020057881A (ja) 2018-09-30 2020-04-09 株式会社ミツトヨ データ管理システム
US20200142965A1 (en) * 2018-11-06 2020-05-07 International Business Machines Corporation Migration of a legacy system
US11455380B2 (en) * 2018-11-20 2022-09-27 International Business Machines Corporation Chain-of-custody of digital content in a database system
EP3692487B1 (de) * 2019-08-27 2022-08-24 Advanced New Technologies Co., Ltd. System und verfahren zur registrierung von subskribierbaren teilzuständen in einer blockchain
US10637666B1 (en) 2019-08-29 2020-04-28 Blockstack Pbc Migrating data for decentralized applications between disparate backend storage providers

Also Published As

Publication number Publication date
GB2601049B (en) 2023-02-08
GB2601049A (en) 2022-05-18
CN114297174A (zh) 2022-04-08
JP2022062705A (ja) 2022-04-20
JP7470089B2 (ja) 2024-04-17
GB202113648D0 (en) 2021-11-10
US11449478B2 (en) 2022-09-20
US20220114150A1 (en) 2022-04-14

Similar Documents

Publication Publication Date Title
DE102021123128A1 (de) Mittels blockchains realisiertes datenmigrationsprüfprotokoll
US11397744B2 (en) Systems and methods for data storage and processing
US11169985B2 (en) System and method for supporting SQL-based rich queries in hyperledger fabric blockchains
US20220021711A1 (en) Security Platform and Method for Efficient Access and Discovery
DE112020005289B4 (de) Teilweise sortierte blockchain
US9734230B2 (en) Cross system analytics for in memory data warehouse
EP3959842A1 (de) Extraktion von daten aus einem blockchain-netzwerk
CN108475288B (zh) 一种联合数据库统一访问控制的系统、方法和设备
US9773048B2 (en) Historical data for in memory data warehouse
DE112021002245T5 (de) Verhindern einer unberechtigten bereitstellung von paketen in clustern
DE112021001413T5 (de) Verwaltung eines privilegierten zugriffs mit geringer vertrauenswürdigkeit
DE112013002542T5 (de) Cloud-basierte Anwendungsressourcendateien
DE112021004344T5 (de) Konsensdienst für Blockchain-Netzwerke
DE102021122557A1 (de) Konformitätsmechanismen in blockchain-netzwerken
DE112019006678T5 (de) Blockchaintechnologie für die Einhaltung gesetzlicher Bestimmungen bei Datenverwaltungssystemen
DE112021000688T5 (de) Indexstruktur für blockchain-ledger
DE112021001671T5 (de) Netzübergreifendes bereitstellen von identitäten
DE112021003971T5 (de) Nachhaltige token für eine lieferkette mit datenschutzerhaltendem protokoll
DE102016105062A1 (de) Nähengestützte Berechtigungsprüfung für einheitenübergreifend verteilte Daten
DE112021005862T5 (de) Selbstprüfende blockchain
DE112020002343T5 (de) Verteilung von Sicherheitsberechtigungsnachweisen
DE112021002201T5 (de) Datenschutzorientierte Datensicherheit in einer Cloud-Umgebung
DE112021004008T5 (de) Validieren von verfolgten abschnitten von empfangenen sensordaten mithilfe von kryptographischer computerverarbeitung
DE112021005837T5 (de) Dezentrale sendeverschlüsselung und schlüsselerzeugungseinrichtung
US11146560B1 (en) Distributed governance of computing resources

Legal Events

Date Code Title Description
R012 Request for examination validly filed