-
HINTERGRUND DER ERFINDUNG
-
Bereich der Erfindung
-
Die vorliegende Erfindung betrifft allgemein Computersysteme und insbesondere ein Verfahren zur Aufrechterhaltung von Dienstqualitätsstandards in einem verteilten Rechnersystem.
-
Beschreibung der verwandten Technik
-
Rechnersysteme sind im Laufe der Jahre erheblich komplexer geworden. In den Anfangszeiten der Computertechnik gab es einen einzelnen Computer, der sämtliche ein Projekt betreffenden Aufgaben abwickelte. Mit dem Aufkommen von mehr Nebensystemen und der Einführung der vernetzten Computertechnik, insbesondere des Internet, hat sich ein großer Teil der Welt der Computer der verteilten Datenverarbeitung zugewendet. Eine verteilte Datenverarbeitung bzw. ein verteiltes System ist ein System, dessen Komponenten an unterschiedlichen Orten wie unterschiedlichen vernetzten Computern implementiert sind. Beispiele schließen Peer-to-Peer-Netzwerke, Online-Spiele, Telefonie und Datenmanagement ein.
-
Datenmanagement ist im Allgemeinen eine Technologie, die die Beschaffung, den Erhalt und die Nutzung von Daten, d.h. von Informationen betrifft. Die Daten selbst können etwas so einfaches wie Kundeninformationen wie Namen und Adressen oder umfangreicher sein, wie es bei Finanzdienstleistungen, beispielsweise einer Ermittlungslösung gegen Wirtschaftskriminalität der Fall ist. Das operative Management von Daten in derartigen Systemen ist sehr kompliziert. Diese Herausforderung ist insbesondere bei Systemen eine reale, die verteilte funktionale Verarbeitungsarchitekturen wie Mikroservices nutzen. Mikroservices sind eine Software-Entwicklungstechnik, die eine Strukturierung einer Anwendung als Zusammenstellung lose gekoppelter Dienste ermöglicht. Ein Vorteil der Zerlegung einer Anwendung in unterschiedliche kleinere Dienste ist, dass der modulare Aufbau verbessert wird, wodurch die Anwendung leichter zu verstehen, zu entwickeln, zu testen ist und widerstandsfähiger gegen eine Erosion der Architektur wird. Man kann sich Mikroservices als diskrete Prozesse vorstellen, die zur Erfüllung einer beliebigen Zielsetzung insbesondere unter Verwendung technologieunabhängiger Protokolle wie des Hypertext Transfer Protocol (HTTP) über ein Netzwerk kommunizieren.
-
Die Natur der spezifischen genutzten Mikroservices hängt stark von der Anwendung ab. Bei einer Anwendung zur Erkennung von Betrug bei Finanzdienstleistungen könnten die Mikroservices beispielsweise einschließen: einen Empfangsdienst, der Transaktionen in Warteschlangen platziert; einen Anlagenverarbeitungsdienst, der nach Anlagen sucht und sie im Falle ihres Vorhandenseins an einen anderen Mikroservice wie einen Texterkennungsdienst sendet; einen Kontexterstellerdienst, der die aktuelle Transaktion analysiert und sie vergangenen Transaktionen zuordnet, die damit in Verbindung stehen; eine Entscheidungsausführungsmaschine, die Regeln umsetzt, die von dem Kunden zur Erkennung von Verstößen aufgestellt wurden; eine Analysemaschine, die Transaktionen überprüft und Ausreißer markiert; einen Fallmanagementdienst, der anhand erkannter Probleme entscheidet, ob ein Fall zur Weiterverfolgung durch Menschen erstellt werden soll; und einen Benachrichtigungsmanager, der Aktualisierungen zur Verarbeitung jeder Transaktion an das Aufwands-/Vergabesystem des Kunden zurückleitet.
-
Wie es für alle Rechnersysteme gilt, ist es wesentlich, verteilte Rechnersysteme überwachen zu können, um sicherzustellen, dass sie Anforderungen an die Dienstqualität (QoS, quality of service) genügen. QoS ist eine Messung der Gesamtleistung eines Dienstes wie eines Telefon- oder Computernetzwerks oder eines Cloud-Computing-Dienstes, insbesondere der von den Benutzern des Netzwerks wahrgenommenen Leistung. Zur quantitativen Messung der Dienstqualität werden häufig mehrere diesbezügliche Aspekte des Netzwerkdienstes berücksichtigt. Wie bei den Mikroservices hängt die spezifische Natur der QoS-Anforderungen von der speziellen betroffenen Anwendung ab. QoS-Kriterien können in einer Dienstqualitätsvereinbarung festgelegt werden, die beispielsweise Datentypen entsprechende Reaktionszeitanforderungen und kontextbezogene Qualifikationen, darunter Zeit- und Datenqualifikationen angibt.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Die vorliegende Erfindung ist gemäß zumindest einer Ausführungsform allgemein auf ein Verfahren zum Management von Betriebsdaten in einem verteilten Verarbeitungssystem durch Empfangen von Definitionen von Datenquellen und Datenzielen und Dienstqualitätskriterien für die Datenquellen und die Datenziele, Überwachen einer Betriebsarbeitslast des verteilten Verarbeitungssystems zum Erstellen einer aktuellen Beurteilung einer Betriebsdatenbewegung zwischen den Datenquellen und den Datenzielen, Empfangen von Verlaufsinformationen zu einer bisherigen Betriebsdatenbewegung in dem verteilten Verarbeitungssystem, die bisherige Fälle einer Betriebsdatenbewegung einschließen, die eine Beeinträchtigung eines oder mehrerer der Dienstqualitätskriterien zur Folge hatten, Bestimmen, dass bevorstehende Betriebsdatenvorgänge ein bestimmtes der Dienstqualitätskriterien nicht erfüllen werden, anhand der aktuellen Beurteilung und der Verlaufsinformationen und automatisches Anwenden einer Datenmanagement-Optimierungsinfrastruktur, die auf die Verbesserung der Dienstqualitätskriterien entsprechend den Definitionen ausgelegt ist, als Reaktion auf die Bestimmung ausgerichtet. Bei einer beispielhaften Implementierung stellt ein Dienstqualitätsvereinbarungsmodell die Dienstqualitätskriterien bereit, wobei das Dienstqualitätsvereinbarungsmodell Datentypen, kontextbezogene Qualifikationen, Zeit-/Datenqualifikationen und Reaktionszeitanforderungen umfasst, ein Datenbewegungs-Durchführungsverlaufsmodell stellt die Verlaufsinformationen bereit, wobei das Datenbewegungs-Durchführungsverlaufsmodell einen Dienststatistikverlauf, einen Dienstressourcenverbrauch und eine Diensttypen-Ausführungsprojektion aufweist, ein aktuelles Systemlastmodell ermöglicht die Überwachung der Betriebsarbeitslast, wobei das aktuelle Systemlastmodell eine Ressourcennutzung, eine aktuelle Cluster-Größe und eine Kapazitätseinschätzung einschließt, ein Datentypen- und QoS-Anforderungsmodell stellt die die Datentypen betreffenden Definitionen und Kenngrößen bereit, wobei das Datentypen- und QoS-Anforderungsmodell Datentypdefinitionen und Datendienst-Qualitätsdefinitionen umfasst, und ein Prozesssteuermechanismus steuert die Datenmanagement-Optimierungsinfrastruktur zur Erzeugung von Worker-Threads an von dem Prozesssteuermechanismus entfernten Netzwerkstandorten wie zur Erfüllung der Dienstqualitätskriterien erforderlich, wobei der Prozesssteuermechanismus eine Datenoptimierungsauswahl, einen Datendienst, ein Dienst-Feedback und eine Datenbewegungsabwicklung umfasst. Die Reaktionszeitanforderungen basieren auf den Datentypen, den kontextbezogenen Qualifikationen und den Zeit-/Datenqualifikationen. Die Bestimmung kann ein mit den Verlaufsinformationen trainiertes kognitives System nutzen, wobei das kognitive System basierend auf der aktuellen Beurteilung ein operatives Endergebnis prognostiziert, wobei das operative Endergebnis einen Indikator liefert, dass die speziellen Dienstqualitätskriterien nicht erfüllt werden. Die aktuelle Beurteilung kann eine Ressourcennutzung der Ressourcen des verteilten Verarbeitungssystems, eine Kapazität der Ressourcen und Reaktionszeiten der Ressourcen einschließen. Die Datenmanagement-Optimierungsinfrastruktur umfasst mehrere skalierbare Backplane-Datendienste. Bei einer beispielhaften Anwendung stellt das verteilte Verarbeitungssystem eine Betrugserkennungslösung bereit, wobei die Datenquellen und Datenziele Datentypen umfassen, die große Mengen an Kundeninformationen wie Namen, Adressen, Telefonnummern, Sozialversicherungsnummern oder Steuer-IDs, Transaktionsinformationen wie Transaktionsumfänge und -typen (Überweisung, ACH, Gutschrift, Lastschrift) und Fallmanagementdaten zur Nachverfolgung einer Erfassung der vorstehend gennannten Kunden- oder Finanzinformationen einschließen; die Dienstqualitätskriterien Ressourcenzuweisungen, Datenintegritätsspezifikationen und eine Dienstverfügbarkeit einschließen und die Backplane-Datendienste Nachrichtenschnittstellen, APIs, Streams oder andere Instrumente der Datenkommunikation umfassen.
-
Vorstehendes sowie zusätzliche Zielsetzungen, Merkmale und Vorteile der unterschiedlichen Ausführungsformen der vorliegenden Erfindung gehen aus der folgenden genauen schriftlichen Beschreibung hervor.
-
Figurenliste
-
Unter Bezugnahme auf die beiliegenden Zeichnungen wird die vorliegende Erfindung besser verständlich, und die zahlreichen Aufgaben, Merkmale und Vorteile ihrer unterschiedlichen Ausführungsformen werden Fachleuten deutlich aufgezeigt.
- 1 ist ein Blockdiagramm eines Computersystems gemäß einer Implementierung der vorliegenden Erfindung, das darauf programmiert ist, ein durch Dienstqualitätskriterien vorgegebenes automatisiertes Betriebsdatenmanagement auszuführen;
- 2 ist eine bildliche Darstellung einer Cloud-Computing-Umgebung gemäß einer Implementierung der vorliegenden Erfindung;
- 3 ist ein Blockdiagramm, das funktionale Module eines Betriebsdaten-Managementsystems gemäß einer Implementierung der vorliegenden Erfindung darstellt;
- 4 ist ein Modelldiagramm, das eine Lösung für ein automatisiertes Betriebsdatenmanagement gemäß einer Implementierung der vorliegenden Erfindung aufzeigt, das ein Dienstqualitätsvereinbarungsmodell, ein Datenbewegungs-Durchführungsverlaufsmodell, ein aktuelles Systemlastmodell und ein Datentypen- und QoS-Anforderungsmodell nutzt;
- 5 ist ein Blockdiagramm eines zur Vorhersage operativer Endergebnisse für das Betriebsdaten-Managementsystem gemäß 3 verwendeten kognitiven Systems gemäß einer Implementierung der vorliegenden Erfindung; und
- 6 ist eine Übersicht, die den logischen Ablauf eines Datenmanagementprozesses gemäß einer Implementierung der vorliegenden Erfindung darstellt.
-
Die Verwendung übereinstimmender Bezugszeichen in unterschiedlichen Zeichnungen weist auf ähnliche oder identische Elemente hin.
-
Beschreibung der bevorzugten Ausführungsform(en)
-
Obwohl die verteilte Datenverarbeitung und die Verwendung von Mikroservices zahlreiche Vorteile bietet, stellt dieser Ansatz den Systementwickler auch vor neue Probleme. In der Vergangenheit konnten monolithische Anwendungen als eine einzige Großaufgabeneinheit ablaufen und auf Daten zugreifen, die zugunsten einer minimalen Datenbewegung und -vervielfältigung optimiert werden konnten. Die Daten konnten sich leicht in einem einzigen gemeinsamen Datenspeicher befinden, sie konnten verteilt sein, und es konnte über einen verbundenen Mechanismus auf sie zugegriffen werden, und sie konnten auch in mehreren Typen von Datenstrukturen (Datenbanken, dateibasiert, etc.) vorliegen, aber dennoch eine API-Datenzugriffsebene ermöglichen. In jedem dieser Fälle bestand ein konsequentes Bemühen, nicht auf eine Datenbewegung und Redundanz angewiesen zu sein, die Anlass zu Problemen hinsichtlich der Datenintegrität, Inkonsistenz und Formaten gibt.
-
All diese Annahmen verändern sich bei verteilten Rechnersystemen. Die Schwierigkeit besteht darin, dass Daten zur Nutzung segmentierter Dienste häufig reproduziert werden müssen. So ist es beispielsweise bei einer Finanzdienstleistungsanwendung wünschenswert, eine Reihe von Technologiekomponenten zur Unterstützung einer Ermittlungslösung gegen Wirtschaftskriminalität zu nutzen. Dies könnte beispielsweise die Verwendung von Technologienkomponenten zur Zuordnung von Banktransaktionsdaten als dem gleichen Individuum zugehörig, zum Verständnis des Netzwerks von Partnern dieses Individuums oder zum Ausführen einer Maschinenlernanalyse der Daten zur Erkennung potentiell betrügerischer Verhaltensmuster einschließen. Die Nutzung vorhandener Dienste für diese Funktionen ist wesentlich, doch der Entwickler ist häufig mit dem Problem konfrontiert, dass diese Dienste Zugriff auf ähnliche Datenaufzeichnungen (Kundeninformationen, Transaktionsprotokolle, etc.) benötigen und erwarten, sie in einem bestimmten Format, nach einem bestimmten Schema gespeichert oder unter Verwendung einer bestimmten Datenquellen-Zugangsschnittstelle zu einem erwartungsgemäßen Datendienst zu erhalten. In diesen Fällen muss der Ersteller der Anwendung nicht kontrollieren, wie eine Verfügbarkeit der Daten zu erwarten ist und wie eine Datenbewegung und -vervielfältigung minimiert wird. Das Problem wird zum Thema für den Anbieter der Gesamtlösung für das Management, und dieser muss dies heute von Projekt zu Projekt bewerkstelligen, da sich die Komponenten verändern können, das Problem jedoch bleibt.
-
Es wäre daher wünschenswert, ein verbessertes Verfahren zum Management von Daten in derartigen verteilten Systemen zu entwickeln. Es wäre zur Erfüllung der den spezifischen beteiligten Systemen eigenen Anforderungen an die Dienstqualität (QoS, Qualität of service) ferner vorteilhaft, wenn das Verfahren automatisiert sein könnte. Diese und weitere Vorteile werden bei unterschiedlichen Ausführungsformen der vorliegenden Erfindung durch die Bereitstellung einer Lösung zur Erfüllung der Anforderung an Datenbewegung, - vervielfältigung und -formate unter Verwendung eines zielgerichteten QoS-Ansatzes zur Festlegung erzielt, wie das System die Datenbewegung innerhalb des gesamten Systems verwaltet. Das System gestattet dem Anwendungsentwickler die Festlegung der Quelle und der Ziele spezifischer Datenelemente und liefert QoS-Kenngrößen, die aufzeigen, wie schnell die Daten bewegt werden müssen (Aktualität), was die Zielsetzung hinsichtlich der Konsistenz ist (z.B. gewährleistete Konsistenz, letztendliche Konsistenz, etc.), wie die Daten erwartungsgemäß gelöscht werden sollen und wo reproduzierte Daten erstellt werden. Das System kann eine skalierbare Infrastruktur für die Datenbewegung (einschließlich Aktualisierungen und Löschungen) nutzen, damit die QoS-Ziele durch eine elastische Skalierung der Infrastruktur eingehalten werden können.
-
Unter Bezugnahme auf die Figuren und insbesondere unter Bezugnahme auf 1 ist nun eine Ausführungsform 10 eines Computersystems dargestellt, in dem ein automatisiertes Betriebsdatenmanagement gemäß der vorliegenden Erfindung implementiert werden kann. Das Computersystem 10 ist ein symmetrisches Multiprozessorsystem (ein SMP-System, SMP: symmetric multiprocessor) mit mehreren Prozessoren 12a, 12b, die an einen Systembus 14 angeschlossen sind. Der Systembus 14 ist ferner an eine kombinierte Speichersteuerung/Host-Brücke (MC/HB: memory controller/host bridge) 16 angeschlossen, die eine Schnittstelle zu einem Systemspeicher 18 bildet, und kommuniziert mit dieser. Der Systemspeicher 18 kann eine lokale Speichervorrichtung sein oder alternativ mehrere verteilte Speichervorrichtungen aufweisen, vorzugsweise dynamischen Direktzugriffsspeicher (DRAM). Es können zusätzliche Strukturen wie integrierte (L1) und Zweitstufen- (L2) oder Drittstufen- (L3) Cache-Speicher in der Speicherhierarchie vorhanden sein, die nicht dargestellt sind. In den Systemspeicher 18 sind eine oder mehrere Anwendungen oder Software-Module gemäß der vorliegenden Erfindung geladen, darunter die zum Ausführen der besonderen Funktion des verteilten Systems erforderlichen Betriebsprogramme, Datendefinitionen, QoS-Kriterien, ein Systemmonitor, eine Datenoptimierung, verschiedene Backplane-Dienste und ein zur Vorhersage operativer Endergebnisse verwendetes kognitives System, die nachstehend sämtlich genauer erläutert werden. Obwohl 1 diese unterschiedlichen Komponenten in einem einzigen Speicher 18 zeigt, versteht sich, dass einige dieser Komponenten in anderen vernetzten (entfernt angeordneten) Computersystemen gespeichert sein können, die dem Computersystem 10 ähnlich sind oder sich von ihm unterscheiden. Insbesondere können die Backplane-Dienste an mehreren von der Datenoptimierung entfernen Netzwerkstandorten implementiert sein.
-
Die MC/HB 16 weist auch eine Schnittstelle zu PCI-Express-Verbindungen (PCI: peripheral component interconnect, Peripheriekomponentenanschluss) 20a, 20b, 20c auf. Jede PCIe-Verbindung (PCle: PCI Express) 20a, 20b ist an einen jeweiligen PCIe-Adapter 22a, 22b angeschlossen, und jeder PCIe-Adapter 22a, 22b ist an eine jeweilige Eingabe/Ausgabe-Vorrichtung (E-/A-Vorrichtung) 24a, 24b angeschlossen. Die MC/HB 16 kann zusätzlich eine Schnittstelle zu einem E-/A-Bus 26 aufweisen, der an einen Switch (E-/A-Struktur) 28 angeschlossen ist. Der Switch 28 bildet eine Ausgangsverzweigung zu mehreren PCI-Verbindungen 20d, 20e, 20f für den E-/A-Bus. Diese PCI-Verbindungen sind an mehrere PCIe-Adapter 22c, 22d, 22e angeschlossen, die wiederum mehrere E-/A-Vorrichtungen 24c, 24d, 24e unterstützen. Die E-/A-Vorrichtungen können, ohne Beschränkung, eine Tastatur, eine grafische Zeigervorrichtung (eine Maus), ein Mikrophon, eine Anzeigevorrichtung, Lautsprecher, eine Dauerspeichervorrichtung (ein Festplattenlaufwerk) oder eine Anordnung derartiger Speichervorrichtungen, ein optisches Plattenlaufwerk, das eine optische Platte 25 (ein Beispiel eines computerlesbaren Speichermediums) wie eine CD oder eine DVD aufnimmt, und eine Netzwerkkarte umfassen. Jeder PCIe-Adapter bildet eine Schnittstelle zwischen der PCI-Verbindung und der jeweiligen E-/A-Vorrichtung. Die MC/HB 16 bietet einen Pfad mit niedriger Latenz, über den die Prozessoren 12a, 12b auf PCI-Vorrichtungen zugreifen können, die irgendwo in dem Busspeicher oder in den E-/A-Adressbereichen zugeordnet sind. Die MC/HB 16 bietet ferner einen Pfad mit hoher Bandbreite, der den PCI-Vorrichtungen den Zugriff auf den Speicher 18 ermöglicht. Der Switch 28 kann eine Peer-to-Peer-Kommunikation unter verschiedenen Endpunkten ermöglichen, und dieser Datenverkehr muss nicht an die MC/HB 16 weitergeleitet werden, wenn keine Cachekohärenten Speichertransfers beteiligt sind. Der Switch 28 ist als separate logische Komponente gezeigt, er könnte jedoch in die MC/HB 16 integriert sein.
-
Bei dieser Ausführungsform verbindet die PCI-Verbindung 20c die MC/HB 16 zum Ermöglichen einer Kommunikation zwischen der E-/A-Vorrichtung 24a und einem Dienstprozessor 32 mit einer Dienstprozessorschnittstelle 30. Der Dienstprozessor 32 ist über eine JTAG-Schnittstelle 34 an Prozessoren 12a, 12b angeschlossen und verwendet eine Wartungsleitung 36, die den Betrieb der Prozessoren 12a, 12b unterbricht. Der Dienstprozessor 32 kann seinen eigenen lokalen Speicher 38 aufweisen und ist an einen Festspeicher (ROM) 40 angeschlossen, in dem verschiedene Programmanweisungen für einen Systemstart gespeichert sind. Der Dienstprozessor 32 kann zur Übermittlung von Systemstatus- und diagnostischen Informationen auch Zugriff auf eine Hardware-Bedienkonsole 42 haben.
-
Bei alternativen Ausführungsformen kann das Computersystem 10 Modifikationen dieser Hardware-Komponenten oder ihrer Verbindungen oder zusätzliche Komponenten aufweisen, daher darf das dargestellte Beispiel in Bezug auf die vorliegende Erfindung nicht als architekturbezogene Einschränkungen implizierend ausgelegt werden. Die Erfindung kann ferner in einem äquivalenten Cloud-Computing-Netzwerk implementiert werden.
-
Wenn das Computersystem 10 anfangs hochgefahren wird, verwendet der Dienstprozessor 32 die JTAG-Schnittstelle 34 zur Abfrage der Systemprozessoren (Host-Prozessoren) 12a, 12b und der MC/HB 16. Nach Abschluss der Abfrage ruft der Dienstprozessor 32 ein Inventar und eine Topologie des Computersystems 10 ab. Der Dienstprozessor 32 führt dann verschiedene Überprüfungen wie eingebaute Selbsttests (BISTs, built-in-selftests), grundlegende Rückversicherungstests (BATs, basic assurance tests) und Speichertests an den Komponenten des Computersystems 10 aus. Sämtliche Fehlerinformationen zu bei der Überprüfung erfassten Störungen werden von dem Dienstprozessor 32 an die Bedienkonsole 42 gemeldet. Wenn nach Ausschluss aller Komponenten, die bei der Überprüfung für defekt befunden wurden, noch eine gültige Konfiguration von Systemressourcen möglich ist, wird dem Computersystem 10 die Fortsetzung gestattet. Ausführbarer Code wird in den Speicher 18 geladen, und der Dienstprozessor 32 gibt die Host-Prozessoren 12a, 12b zur Ausführung des Programmcodes, z.B. eines Betriebssystems (OS, operating system) frei, das zum Starten von Anwendungen und insbesondere der automatisierten Betriebsdatenmanagementanwendung gemäß der vorliegenden Erfindung verwendet wird, deren Ergebnisse in einem Festplattenlaufwerk des Systems (einer E-/A-Vorrichtung 24) gespeichert werden können. Während die Host-Prozessoren 12a, 12b Programmcodes ausführen, kann der Dienstprozessor 32 in einen Modus zur Überwachung und Meldung beliebiger Betriebsparameter oder Fehler wie der Drehzahl und des Betriebs des Kühlgebläses, der Wärmesensoren, der Stromversorgungsregler und von einem der Prozessoren 12a, 12b gemeldeter behebbarer und nicht behebbarer Fehler, des Speichers 18 und der MC/HB 16 eintreten. Der Dienstprozessor 32 kann entsprechend dem Typ von Fehler oder festgelegten Schwellenwerten weitere Maßnahmen einleiten.
-
Die vorliegenden Erfindung kann ein System, ein Verfahren und/oder ein Computerprogrammprodukt sein. Das Computerprogrammprodukt kann ein computerlesbares Speichermedium (oder -medien) mit darauf gespeicherten computerlesbaren Programmanweisungen zum Veranlassen eines Prozessors zum Ausführen von Aspekten der vorliegenden Erfindung aufweisen.
-
Das computerlesbare Speichermedium kann eine konkrete Vorrichtung sein, die Anweisungen zur Verwendung durch eine Anweisungsausführungsvorrichtung halten und speichern kann. Das computerlesbare Speichermedium kann beispielsweise eine elektronische Speichervorrichtung, eine magnetische Speichervorrichtung, eine optische Speichervorrichtung, eine elektromagnetische Speichervorrichtung, eine Halbleiter-Speichervorrichtung oder jede geeignete Kombination der vorstehenden sein, ist jedoch nicht darauf beschränkt. Eine nicht erschöpfende Liste spezifischerer Beispiele des computerlesbaren Speichermediums umfasst die folgenden: eine tragbare Computerdiskette, eine Festplatte, einen Direktzugriffsspeicher (ein RAM), einen Festspeicher (ein ROM), einen löschbaren programmierbaren Festspeicher (ein EPROM oder einen Flash-Speicher), einen statischen Direktzugriffsspeicher (ein SRAM), einen tragbaren Compact-Disc-Festspeicher (eine CD-ROM), eine digitale, vielseitig einsetzbare Platte (eine DVD, digital versatile disk), einen Speicherstick, eine Diskette, eine mechanisch codierte Vorrichtung wie Lochkarten oder erhabene Strukturen in einer Nut mit darauf aufgezeichneten Anweisungen und jede geeignete Kombination der Vorstehenden. Ein computerlesbares Speichermedium im hier verwendeten Sinne darf nicht als flüchtige Signale per se wie Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich über einen Wellenleiter oder andere Sendemedien ausbreiten (z.B. Lichtimpulse, die ein Glasfaserkabel durchlaufen) oder über ein Kabel gesendete elektrische Signale aufgefasst werden.
-
Die hier beschriebenen computerlesbaren Programmanweisungen können von einem computerlesbaren Speichermedium auf jeweilige Rechen-Nerarbeitungsvorrichtungen oder über ein Netzwerk, beispielsweise das Internet, ein lokales Netzwerk, ein Weitbereichsnetzwerk und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichervorrichtung heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, optische Übertragungsfasern, eine drahtlose Übertragung, Router, Firewalls, Schalter, Netzkopplercomputer und/oder Edge-Server umfassen. Eine Netzadapterkarte oder eine Netzschnittstelle in jeder Rechen-A/erarbeitungsvorrichtung empfängt computerlesbare Programmanweisungen aus dem Netzwerk und leitet die computerlesbaren Programmanweisungen zur Speicherung auf einem computerlesbaren Speichermedium in der jeweiligen Rechen-/Verarbeitungsvorrichtung weiter.
-
Computerlesbare Programmanweisungen zum Ausführen von Operationen gemäß der vorliegenden Erfindung können Assembler-Anweisungen, Befehlssatzarchitekturanweisungen (ISA-Anweisungen, ISA: instruction set architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten, oder entweder ein Quellencode oder ein Objektcode sein, der in einer beliebigen Kombination einer oder mehrerer Programmiersprachen geschrieben ist, darunter einer objektorientierten Programmiersprache wie Smalltalk, C++ oder dergleichen und herkömmlichen prozeduralen Programmiersprachen wie der Programmiersprache „C“ oder ähnlichen Programmiersprachen. Die computerlesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als unabhängiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernten Computer oder vollständig auf dem entfernten Computer oder Server ausgeführt werden. Bei dem zuletzt genannten Szenario kann der entfernte Computer über jeden Typ von Netzwerk einschließlich eines lokalen Netzwerks (LAN) oder eines Weitbereichsnetzwerks (WAN) mit dem Computer des Benutzers verbunden sein, oder die Verbindung zu einem externen Computer kann (beispielsweise über das Internet unter Verwendung eines Internetdienstanbieters) hergestellt werden. Bei einigen Ausführungsformen können elektronische Schaltkreise, darunter beispielsweise programmierbare Logikschaltkreise, feldprogrammierbare Gatteranordnungen (FPGA) oder programmierbare Logikanordnungen (PLA), die computerlesbaren Programmanweisungen durch die Nutzung von Zustandsinformationen der computerlesbaren Programmanweisungen zur Personalisierung der elektronischen Schaltkreise zum Ausführen von Aspekten der vorliegenden Erfindung ausführen.
-
Aspekte der vorliegenden Erfindung sind hier unter Bezugnahme auf Ablaufdiagrammdarstellungen und/oder Blockdiagramme von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es versteht sich, dass jeder Block der Ablaufdiagrammdarstellungen und/oder Blockdiagramme und Kombinationen von Blöcken in den Ablaufdiagrammdarstellungen und/oder Blockdiagrammen durch computerlesbare Programmanweisungen implementiert werden können.
-
Diese computerlesbaren Programmanweisungen können einem Prozessor eines Allzweckcomputers, eines Computers mit besonderer Zweckbestimmung oder einer anderen programmierbaren Datenverarbeitungsvorrichtung zur Erzeugung einer Maschine zugänglich gemacht werden, so dass die Anweisungen, die über den Prozessor des Computers oder der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, eine Einrichtung zur Implementierung der in dem bzw. den Ablaufdiagramm - und/oder Blockdiagramm-Block oder -Blöcken spezifizierten Funktionen/Vorgänge schaffen. Diese computerlesbaren Programmanweisungen können auch in einem computerlesbaren Speichermedium gespeichert werden, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Vorrichtungen anweisen kann, auf eine bestimmte Weise zu arbeiten, so dass das computerlesbare Speichermedium, in dem Anweisungen gespeichert sind, ein Fertigungserzeugnis umfasst, das Anweisungen einschließt, durch die Aspekte der Funktion/des Vorgangs implementiert werden, die bzw. der in dem bzw. den Ablaufdiagramm- und/oder Blockdiagramm-Block oder -Blöcken spezifiziert ist.
-
Die computerlesbaren Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Vorrichtung geladen werden, um zur Erzeugung eines computerimplementierten Prozesses die Ausführung einer Folge von Verfahrensschritten auf dem Computer, der anderen programmierbaren Vorrichtung oder sonstigen Vorrichtung zu veranlassen, so dass die Anweisungen, die auf dem Computer, der anderen programmierbaren Vorrichtung oder der sonstigen Vorrichtung ausgeführt werden, die in dem bzw. den Ablaufdiagramm- und/oder Blockdiagramm-Block oder -Blöcken spezifizierten Funktionen/Vorgänge implementieren.
-
Das Ablaufdiagramm und die Blockdiagramme in den Figuren zeigen die Architektur, den Funktionsumfang und die Funktionsweise möglicher Implementierungen von Systemen, Verfahren und Computerprogrammprodukten gemäß unterschiedlichen Ausführungsformen der vorliegenden Erfindung. In dieser Hinsicht kann jeder Block in dem Ablaufdiagramm oder den Blockdiagrammen ein Modul, ein Segment oder einen Anteil von Anweisungen repräsentieren, das bzw. der eine oder mehrere ausführbare Anweisungen zur Implementierung der spezifizierten logischen Funktion(en) umfasst. Bei einigen alternativen Implementierungen können die in den Blöcken aufgeführten Funktionen außerhalb der in den Figuren festgehaltenen Reihenfolge auftauchen. So können abhängig von dem beteiligten Funktionsumfang beispielsweise zwei als aufeinanderfolgend dargestellte Blöcke tatsächlich im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können gelegentlich in umgekehrter Reihenfolge ausgeführt werden. Es wird auch darauf hingewiesen, dass jeder Block der Blockdiagramme und/oder der Ablaufdiagrammdarstellung und Kombinationen von Blöcken der Blockdiagramme und/oder der Ablaufdiagrammdarstellung durch hardwarebasierte Systeme mit besonderer Zweckbestimmung implementiert werden können, die die spezifizierten Funktionen oder Vorgänge ausführen oder Kombinationen von Spezialhardware und Computeranweisungen durchführen.
-
Das Computersystem 10 führt Programmanweisungen zu einem automatisierten Betriebsdatenmanagementprozess aus, der neuartige Optimierungstechniken zur Verwaltung von Daten in einem verteilten System nutzt. Dementsprechend kann ein die Erfindung verkörperndes Programm zusätzlich herkömmliche Aspekte unterschiedlicher Datenverwaltungsinstrumente umfassen, und diese Einzelheiten werden für Fachleute bei der Bezugnahme auf diese Offenbarung ersichtlich. Einige dieser Dienstprogramme können das Cloud-Computing betreffen. Es versteht sich, dass die Implementierung der hier aufgeführten Lehren nicht auf eine Cloud-Computing-Umgebung beschränkt sind, obwohl diese Offenbarung eine genaue Beschreibung des Cloud-Computing enthält. Vielmehr können Ausführungsformen der vorliegenden Erfindung in Verbindung mit jedem anderen gegenwärtig bekannten oder künftig entwickelten Typ von Computerumgebung implementiert werden.
-
Cloud-Computing ist ein Modell von Dienstleistung, das einen bequemen, bedarfsgerechten Netzwerkzugriff auf einen geteilten Pool konfigurierbarer Computerressourcen (z.B. Netzwerke, Netzwerkbandbreite, Server, Verarbeitung, Speicherplatz, Speicherkapazität, Anwendungen, virtuelle Maschinen und Dienste) ermöglicht, die mit minimalem Verwaltungsaufwand oder minimaler Interaktion mit einem Anbieter des Diensts schnell bereitgestellt und freigegeben werden können. Dieses Cloud-Modell kann unterschiedliche Produkteigenschaften, Dienstmodelle und Bereitstellungsmodelle aufweisen.
-
Die Produkteigenschaften können ohne Beschränkung darauf On-Demand Service, Broad Network Access, Ressourcen-Pooling, Rapid Elasticity und Measured Service einschließen. On-Demand Self-Service bezeichnet die Möglichkeit eines Cloud-Nutzers, ohne die Notwendigkeit einer menschlichen Interaktion mit dem Dienstanbieter einseitig automatisch bedarfsgerecht Computerkapazitäten wie Server-Zeit und Netzspeicher zu beschaffen. Broad Network Access bezeichnet Kapazitäten, die über ein Netzwerk verfügbar sind und auf die über Standardmechanismen zugegriffen wird, die die Nutzung durch heterogene Thin- oder Thick-Kunde-Plattformen (z.B. Mobiltelefone, Laptops und PDAs) unterstützen. Ressourcen-Pooling liegt vor, wenn die Computerressourcen des Anbieters unter Verwendung eines Multi-Tenant-Modells mit unterschiedlichen, bedarfsgerecht dynamisch zugewiesenen und neu zugewiesenen physischen und virtuellen Ressourcen gebündelt werden, um einer Vielzahl an Konsumenten zu dienen. Es besteht dahingehend ein Eindruck von Ortsunabhängigkeit, dass der Konsument im Allgemeinen weder Kontrolle über noch Kenntnis von dem genauen Standort der bereitgestellten Ressourcen hat, aber dennoch in der Lage sein kann, einen Standort auf einer höheren Abstraktionsebene (z.B. Land, Bundesstaat oder Datenzentrum) zu spezifizieren. Rapid Elasticity bedeutet, dass die Kapazitäten für ein schnelles Scale-Out schnell und elastisch, in einigen Fällen automatisch bereitgestellt und für ein schnelles Scale-In schnell freigegeben werden können. Dem Konsumenten erscheinen die zur Bereitstellung verfügbaren Kapazitäten häufig unbegrenzt, und sie können jederzeit in jeder Menge erworben werden. Measured Service ist die Kapazität eines Cloud-Systems, die Ressourcennutzung durch den Einsatz einer Messfunktion auf einer für den Typ von Dienst (z.B. Speichern, Verarbeitung, Bandbreite und aktive Nutzerkonten) geeigneten Abstraktionsebene automatisch zu steuern und zu optimieren. Die Ressourcenauslastung kann überwacht, gesteuert und gemeldet werden, wodurch sowohl für den Anbieter als auch für den Konsumenten des genutzten Dienstes Transparenz geschaffen wird.
-
Dienstmodelle können ohne Beschränkung darauf Software as a Service, Platform as a Service und Infrastructure as a Service einschließen. Software as a Service (SaaS) bezieht sich darauf, dass die dem Konsumenten zur Verfügung gestellte Kapazität die Nutzung der Anwendungen des Anbieters ist, die in einer Cloud-Infrastruktur ausgeführt werden. Auf die Anwendungen kann von unterschiedlichen Kundenvorrichtungen über eine Thin-Client-Schnittstelle wie einen Web-Browser zugegriffen werden. Der Konsument verwaltet oder steuert die zugrundeliegende Cloud-Infrastruktur einschließlich Netzwerk, Server, Betriebssysteme, Speicher oder sogar individuelle Anwendungskapazitäten nicht, mit der möglichen Ausnahme von begrenzten benutzerspezifischen Anwendungskonfigurationseinstellungen. Platform as a Service (PaaS) bezieht sich darauf, dass die dem Konsumenten zur Verfügung gestellte Kapazität die Nutzung von dem Konsumenten erstellter oder erworbener Anwendungen, die unter Verwendung von vom Anbieter unterstützten Programmiersprachen und Dienstprogrammen erstellt wurden, in der Cloud-Infrastruktur ist. Der Konsument verwaltet oder steuert die zugrundeliegende Cloud-Infrastruktur einschließlich Netzwerke, Server, Betriebssysteme oder Speicher nicht, hat jedoch die Kontrolle über die genutzten Anwendungen und möglicherweise die Anwendung hostende Umgebungskonfigurationen. Infrastructure as a Service (laaS) bezieht sich darauf, dass die dem Konsumenten zur Verfügung gestellte Kapazität die Bereitstellung von Verarbeitung, Speicher, Netzwerken und weiteren grundlegenden Computerressourcen ist, wobei der Konsument beliebige Software nutzen und ausführen kann, die Betriebssysteme und Anwendungen einschließen kann. Der Konsument verwaltet oder steuert die zugrundeliegende Cloud-Infrastruktur nicht, hat jedoch die Kontrolle über Betriebssysteme, Speicher, genutzte Anwendungen und möglicherweise eingeschränkte Kontrolle über ausgewählte Netzwerkkomponenten (z.B. Host-Firewalls).
-
Die Bereitstellungsmodelle können ohne Beschränkung darauf eine private Cloud, eine Gemeinschafts-Cloud, eine öffentliche Cloud und eine Hybrid-Cloud einschließen. Private Cloud bezieht sich darauf, dass die Cloud-Infrastruktur ausschließlich für eine Organisation betrieben wird. Sie kann von der Organisation oder einem Dritten verwaltet werden und sich auf dem eigenen Gelände oder außerhalb desselben befinden. Eine Gemeinschafts-Cloud hat eine Cloud-Infrastruktur, die von mehreren Organisationen geteilt wird und eine bestimmte Gemeinschaft mit geteilten Anliegen (z.B. Zielsetzung, Sicherheitserfordernisse, Strategie und Konformitätserwägungen) unterstützt. Sie kann von den Organisationen oder einem Dritten verwaltet werden und sich auf dem eigenen Gelände oder außerhalb desselben befinden. Bei einer öffentlichen Cloud wird die Cloud-Infrastruktur der allgemeinen Öffentlichkeit oder einer großen Branchengruppe zur Verfügung gestellt und befindet sich im Eigentum einer Organisation, die Cloud-Dienste verkauft. Die Cloud-Infrastruktur einer Hybrid-Cloud ist eine Zusammenstellung von zwei oder mehr (privaten, Gemeinschafts- oder öffentlichen) Clouds, die eigenständige Einheiten bleiben, aber durch standardisierte oder geschützte Technologie miteinander verbunden sind, die eine Übertragbarkeit von Daten und Anwendungen ermöglicht (z.B. Cloud Bursting zum Lastenausgleich unter Clouds).
-
Eine Cloud-Computing-Umgebung kann dienstorientiert mit einem Schwerpunkt auf Zustandslosigkeit, geringer Kopplung, modularem Aufbau und semantischer Interoperabilität sein. Im Herzen des Cloud-Computing befindet sich eine Infrastruktur, die ein Netzwerk miteinander verbundener Knoten umfasst. In 2 ist eine beispielhafte Cloud-Computing-Umgebung 50 dargestellt. Wie gezeigt, weist die Cloud-Computing-Umgebung 50 einen oder mehrere Cloud-Computing-Knoten 52 in einem Netzwerk 56 auf, mit denen von Cloud-Nutzern verwendete lokale Computervorrichtungen wie beispielsweise ein Personal Digital Assistant (PDA) oder ein Mobiltelefon 54a, ein Desktop-Computer 54b, ein Laptop-Computer 54c und/oder ein KFZ-Computersystem 54d kommunizieren können. Die Knoten 52 können auch untereinander kommunizieren. Sie können (nicht gezeigt) physisch oder virtuell in einem oder mehreren Netzwerken wie privaten, Gemeinschafts-, öffentlichen oder Hybrid-Clouds, wie vorstehend beschrieben, oder einer Kombination dieser gruppiert sein. Dies ermöglicht der Cloud-Computing-Umgebung 50, Infrastruktur, Plattformen und/oder Software als Dienste anzubieten, für die ein Cloud-Nutzer keine Ressourcen auf einer lokalen Computervorrichtung halten muss. Es versteht sich, dass die in 2 gezeigten Typen von Computervorrichtungen 54a - 54d nur Veranschaulichungszwecken dienen sollen und dass Rechnerknoten 52 und eine Cloud-Computing-Umgebung 50 über jeden Typ von Netzwerk und/oder über ein Netzwerk ansteuerbarer Verbindung (z.B. unter Verwendung eines Web-Browsers) mit jedem Typ von computerisierter Vorrichtung kommunizieren können.
-
Wird nun auf 3 Bezug genommen, ist eine Ausführungsform eines gemäß der vorliegenden Erfindung gestalteten Betriebsdaten-Managementsystems 60 dargestellt. Das Betriebsdaten-Managementsystem 60 weist allgemein eine operative Funktion oder ein operatives Modul 62, eine Systemmonitorfunktion oder ein Systemmonitormodul 64 und eine Datenbewegungsoptimierungsfunktion oder ein Datenbewegungs-Optimierungsmodul 66 auf. Das operative Modul 60 weist Data Engineering (Information Engineering) 68, eine Dienstqualitätsvereinbarung 70 und eine Erfassung von Datentyp-/Objektkenngrößen und Adressen 72 auf. Data Engineering 68 macht das Zugpferd des operativen Moduls 62 aus und weist einen architekturbezogenen Ansatz zur Planung, Analyse, Gestaltung und Implementierung von Anwendungen auf. Seine spezifischen Funktionen sind je nach der jeweiligen Anwendung unterschiedlich. Die Dienstqualitätsvereinbarung 70 ist ein Vertrag zwischen einem Dienstanbieter und einem oder mehreren Kunden. Zwischen dem Dienstanbieter und dem Kunden werden spezifische Aspekte des Dienstes wie Qualität, Verfügbarkeit und Verpflichtungen vereinbart. Dienstqualitätsvereinbarungen können zahlreiche Dienstleistungsmetriken mit entsprechenden Dienstumfangsvorgaben aufweisen. Hinsichtlich des Beispiels der Finanzdienstleistungen könnte die Dienstqualitätsvereinbarungsmetrik Dienstverfügbarkeit, Kostenabstriche und die Antwortzeit für den Support aufweisen. Die in dem operativen Modul 62 enthaltene Dienstqualitätsvereinbarung 70 entspricht den in dem Vertrag zu findenden quantitativen Werten. Datentyp-/Objektkenngrößen und Adressen wird zur Beschreibung der für die Anwendung relevanten Datenstrukturen verwendet, die entweder für das Data Engineering 68 oder die Dienstqualitätsvereinbarung 70 gelten. Kenngrößen können grundlegende Merkmale von Datentypen sowie komplexere Merkmale (Datenstrukturen, Klassen, etc.) einschließen. Bei dem Beispiel der Finanzdienstleistungen könnten spezifische Kenngrößen strukturierte und unstrukturierte Daten, Grafikdaten und große Mengen an Informationen einschließen, die Massendatenimplementierungen mit Datenquellen und Datenzielen mit Datentypen wie Namen, Adressen, Telefonnummern, Sozialversicherungsnummern oder Steuer-IDs oder anderen Identifikationsnummern erfordern. Adressen sind die (physischen oder virtuellen) Netzwerkspeicherstellen, an denen Daten zu speichern und aus denen sie abzurufen sind, und können abhängig von den verwendeten Protokollen (HTTP, TCP/IP, etc.) unterschiedliche Formen aufweisen.
-
Das Systemmonitormodul 64 verfolgt die aktuelle und vergangene Betriebsleistung der Komponenten des verteilten Datensystems nach. Das Systemmonitormodul 64 empfängt aktuelle Informationen von unterschiedlichen Hardware-Tools 76 wie einer Zentraleinheit (CPU), Plattenlaufwerken oder anderen Dauerspeichern (nicht flüchtigen Speichern), flüchtigen Speichern (d.h. RAM), Clustern dieser oder anderen Ressourcen, etc. Die Informationen können jeden Parameter einschließen, der mit einer Vorrichtung in Zusammenhang steht, wie Leistungsnutzung, Zuweisung, Stromverbrauch, Ressourcenverfügbarkeit, etc. Diese Informationen werden zur Einrichtung einer aktuellen Systemkapazität 78 verwendet. Der Systemmonitor 64 umfasst auch Betriebsleistungs-Verlaufsinformationen 80, d.h. einen Verlauf von Vorrichtungsnutzung und Kapazität, der mit unterschiedlichen Parametern wie Zeitabschnitten (z.B. Spitzennutzungszeiten), bestimmten Kunden oder bestimmten Diensten in Beziehung gesetzt ist.
-
Das Datenbewegungs-Optimierungsmodul 66 weist einen separaten Monitor 82 auf, der die Datenbewegung innerhalb des verteilten Datensystems und andere Datenleistungsfaktoren wie Konsistenz und Formate nachverfolgt, insbesondere in Bezug auf von dem Systementwickler angegebene Spezifikationen. Diese Informationen können auch dem Betriebsleistungsverlauf 80 des Systemmonitormoduls 64 zur Verfügung gestellt werden. Das Datenbewegungs-Optimierungsmodul kann dann entsprechend den aktuellen Datenleistungsfaktoren bedarfsgerecht Datensynchronisationsdienste 84 aufrufen, wie nachstehend genauer beschrieben. Diese Dienste können beispielsweise Dateiensystemkopien, Messaging, Datenbankzugriff, Übertragungsprotokolle, etc. einschließen. Service-Worker 86 werden dementsprechend nach Bedarf optimiert.
-
Bei der beispielhaften Implementierung nutzt die vorliegende Erfindung unterschiedliche Modelle zur Erstellung von zur Optimierung des Datenmanagements verwendeten Eingaben. Wie in 4 zu sehen, empfängt ein Prozesssteuermechanismus 90 Eingaben von einem Dienstqualitätsvereinbarungsmodell 92, einem Datenbewegungs-Durchführungsverlaufsmodell 94, einem aktuellen Systemlastmodell 96 und einem Datentypen- und QoS-Anforderungsmodell 98. Eines oder sämtliche dieser Elemente können in dem Computersystem 10 realisiert sein. Das Dienstqualitätsvereinbarungsmodell 92 sorgt für das Speichern der Definitionen der Datenquellen, der Ziele und der ihnen jeweils zugeordneten QoS-Kriterien. Dieses Modell legt fest, wie die Daten über das gesamte System angelegt und verwaltet werden. Im Allgemeinen erstellt ein Anwendungsentwickler nur diese Definition, dann werden die Daten von dem System in der Laufzeit automatisch bewegt und verwaltet, daher muss sich der Lösungsentwickler nicht auf diesen Teil des Systembetriebs konzentrieren und kann den Schwerpunkt stattdessen auf den Domainwert legen und hat auch die Flexibilität, Veränderungen der Datenarchitektur zu übernehmen, ohne dass in diesem Bereich Infrastrukturcodieraufwand erforderlich ist. Bei der beispielhaften Implementierung umfasst das Dienstqualitätsvereinbarungsmodell 92 eine Liste von Datentypen, kontextbezogenen Qualifikationen, Zeit-/Datenqualifikationen und Reaktionszeitanforderungen.
-
Das Datenbewegungs-Durchführungsverlaufsmodell 94 gibt den bisherigen Einsatz von Datenbewegunganforderungen wieder, der von dem Verarbeitungssteuermechanismus 90 verwendet werden kann, um zur Prognose des aktuellen operativen Endergebnisses und zur Vornahme einer fundierten Beurteilung, wie viele Ressourcen für den Arbeitsaufwand eingesetzt werden müssen, um den Kriterien zu genügen (sie einzuhalten), aus vergangenen Vorgängen zu lernen. Wie nachstehend in Verbindung mit 5 genauer beschrieben, kann das Datenbewegungs-Durchführungsverlaufsmodell 94 maschinelles Lernen und prognostische Techniken nutzen, um sicherzustellen, dass das System mit optimalen Schwellenwerten arbeitet. Bei der beispielhaften Implementierung umfasst das Datenbewegungs-Durchführungsverlaufsmodell 94 den Dienststatistikverlauf, den Dienstressourcenverbrauch und die Diensttypen-Ausführungsprojektion. Das aktuelle Systemlastmodell 96 verfolgt die vorliegende Arbeitslast des Systems nach. Diese Informationen werden zum Verständnis der aktuellen Kapazität des Systems und der Befähigung zur Erfüllung der QoS-Kriterien bei bevorstehenden Datenbewegungsvorgängen benötigt. Ein schwer belastetes System kann für den Abschluss der Arbeit den Start von mehr operativen Backplane-Threads erfordern als einen gering genutztes System mit verfügbaren Ressourcen. Selbstverständlich kann sich dies in Echtzeit ändern, daher ist eine aktive Überwachung und Anpassung erforderlich. Bei der beispielhaften Implementierung umfasst das aktuelle Systemlastmodell 96 die Ressourcennutzung, die aktuelle Cluster-Größe und die Kapazitätseinschätzung. Das Datentypen- und QoS-Anforderungsmodell 98 beschreibt Kenngrößen zu unterschiedlichen Datentypen und wie die QoS-Definitionen realisiert werden können. So ist beispielsweise ein Abzielen auf Echtzeitkonsistenz mit einer Niederlatenz-Aktualitätsanforderung hinsichtlich der Implementierung bei einer relationalen Datenbank, einem verteilten Dateiensystem, Blockspeicherung, etc. unterschiedlich. Bei der beispielhaften Implementierung weist das Datentypen- und QoS-Anforderungsmodell 98 Datentypdefinitionen und Daten-QoS-Definitionen auf.
-
Der Prozesssteuermechanismus 90 weist die elastischen Mikroservices 100 (Daten-Backplane) an, Worker-Threads zur Erfüllung der Erfordernisse der zubewegenden Daten aufzurufen. Elastische Mikroservices 100 bilden eine skalierbare Infrastruktur zum tatsächlichen Bewegen (Aktualisieren oder Löschen) der Daten über heterogene Systemkomponenten und Technologien. Diese Systeme sind konventionell und weisen eine Vielzahl von Verhaltenskenngrößen auf, die allgemein bekannt sind und vorhergesehen werden können. Ein Daten-Backplane-Dienst ist ein Mechanismus zum Kommunizieren von Daten in einer Datenarchitektur. Ein Beispiel hierfür ist Kafka von Apache. Kafka ist eine Open-Source-Stream-Verarbeitungs-Software-Plattform, die einen einheitlichen Kommunikationsmechanismus mit hohem Durchsatz und niedriger Latenz zur Handhabung von Echtzeit-Datenströmen bietet. Backplane-Datendienste für eine Betrugserkennungslösung könnten solche Nachrichtenschnittstellen, Anwendungsprogrammschnittstellen (APIs), Streams oder andere Instrumente für die Datenkommunikation einschließen. Elastische Skalierung bezeichnet die Kapazität zur dynamischen Vergrößerung oder Verkleinerung der Infrastruktur abhängig vom Bedarf, d.h. zur Aufstockung oder Reduzierung von Ressourcen wie physischem Plattenspeicherplatz, Speicher, CPU, etc. abhängig von den Erfordernissen der Anwendung zu einem bestimmten Augenblick in der Zeit.
-
Bei der beispielhaften Implementierung weist der Prozesssteuermechanismus 90 eine Datenoptimierungsauswahl, einen Datendienst, ein Dienst-Feedback und eine Datenbewegungsabwicklung auf. Die Datenoptimierungsauswahl empfängt die Reaktionszeitanforderungen von dem Dienstqualitätsvereinbarungsmodell 92 und wählt die Reihenfolge der von dem Datendienst abzuwickelnden Dienste. Der Datendienst empfängt die Datentyp- und QoS-Definitionen von dem Datentypen- und QoS-Anforderungsmodell 98 und bestimmt, welche Backplane-Dienste für die spezifischen Datentypen geeignet sind. Der Datendienst kann dann der Datenbewegungsabwicklung befehlen, die erforderlichen Backplane-Datendienste zu initialisieren. Die Backplane-Datendienste liefern ein Feedback an das Dienst-Feedback des Prozesssteuermechanismus 90, das auch den Dienststatistikverlauf in dem Datenbewegungs-Durchführungsverlaufsmodell 94 aktualisieren kann.
-
Bei der bevorzugten Implementierung ist die prognostische Funktion des Datenmanagementsystems in einem neuartigen kognitiven System realisiert. Ein (gelegentlich als Deep Learning, Deep Thought oder Deep Question Answering bezeichnetes) kognitives System ist eine Form von künstlicher Intelligenz, die maschinelles Lernen und Problemlösung nutzt. Kognitive Systeme nutzen häufig neuronale Netzwerke, obwohl alternative Konzepte existieren. Das neuronale Netzwerk kann unterschiedlichen Typen angehören. Eine neuronales Netzwerk mit Vorwärtskopplung ist ein künstliches neuronales Netzwerk, bei dem die Verbindungen zwischen den Einheiten keinen Zyklus erzeugen. Das neuronale Netzwerk mit Vorwärtskopplung war der erste und einfachste Typ von künstlichem neuronalem Netzwerk, der entwickelt wurde. Bei diesem Netzwerk bewegen sich die Informationen von dem Eingabeknoten nur in einer Richtung, vorwärts, über die verdeckten Knoten (falls vorhanden) und zu dem Ausgabeknoten. Es befinden sich keine Kreisläufe oder Schleifen in dem Netzwerk. Als solches unterscheidet es sich von rekurrenten neuronalen Netzwerken. Ein rekurrentes neuronales Netzwerk ist eine Klasse von künstlichem neuronalem Netzwerk, bei dem die Verbindungen zwischen den Einheiten einen gerichteten Zyklus erzeugen. Dadurch wird ein interner Zustand des Netzwerks erzeugt, der es ihm ermöglicht, dynamisches zeitliches Verhalten aufzuzeigen. Anders als neuronale Netzwerke mit Vorwärtskopplung können rekurrente neuronale Netzwerke ihren internen Speicher zur Verarbeitung beliebiger Sequenzen von Eingaben nutzen. Ein Convolutional Neural Network ist ein spezifischer Typ von neuronalem Netzwerk mit Vorwärtskopplung, der auf der visuellen Wahrnehmung von Tieren basiert und daher insbesondere bei der Verarbeitung von Bilddaten nützlich ist. Convolutional Neural Networks sind normalen neuronalen Netzwerken ähnlich, sind jedoch aus Neuronen aufgebaut, die erlernbare Gewichtungen und Tendenzen aufweisen.
-
Es existieren viele Alternativen zur Nutzung neuronaler Netzwerke für maschinelles Lernen, wie eine Support-Vector-Maschine (SVM). Eine SVM erstellt im Prinzip anhand von Trainingsbeispielen einen multidimensionalen mathematischen Raum und schafft in diesem Raum eine Grenzlinie, die eine binäre Klassifikation einer Eingabe z.B. als „gute“ Antwort gegenüber einer „schlechten“ Antwort ermöglicht. Ein weiterer Ansatz bezieht Bayes'sche Netzwerke ein, die einen Satz von Variablen durch einen gerichteten azyklischen Graphen darstellen. Das Netzwerk wird dann zur Berechnung probabilistischer Beziehungen zwischen den Variablen verwendet. Ein kognitives System ist nicht auf die Verwendung eines einzigen Ansatzes beschränkt, d.h. es kann eine beliebige Anzahl dieser maschinellen Lernalgorithmen einschließen.
-
Eine moderne Implementierung künstlicher Intelligenz ist die kognitive IBM Watson™ Technologie, die fortschrittliche linguistische Datenverarbeitung, Informationsabfrage, Wissensdarstellung, automatisiertes Schlussfolgern und maschinelle Lerntechnologien auf den Bereich der Open-Domain-Fragenbeantwortung anwendet. Derartige kognitive Systeme können vorhandene Dokumente (Corpora) nutzen und sie zur Extraktion von für eine Abfrage relevanten Antworten wie einer Person, eines Ortes, einer Organisation und bestimmten Objekten oder zur Erkennung positiver und negativen Gefühle auf verschiedene Weise analysieren. Zur Analyse natürlicher Sprache, zur Ermittlung von Quellen, zur Erkennung und Erstellung von Hypothesen, zur Suche und Bewertung von Belegen und zur Verbindung und Einstufung von Hypothesen können unterschiedliche Techniken verwendet werden. Modelle zur Bewertung und Einstufung der Antwort können anhand umfangreicher Sätze von Frage- (Eingabe-) und Antwort- (Ausgabe)-Paaren trainiert werden. Je mehr Algorithmen unabhängig die gleiche Antwort finden, desto größer ist die Wahrscheinlichkeit, dass die Antwort korrekt ist, woraus sich ein Gesamtergebnis oder Gewissheitsgrad ergibt.
-
5 zeigt, wie ein neuartiges kognitives System 120 gemäß einer Implementierung der vorliegenden Erfindung trainiert und eingesetzt werden könnte. Die prognostische Funktion des kognitiven Systems 120 beruht auf für das Training verwendeten Verlaufsinformationsdaten 122. Bei diesem Beispiel wird das kognitive System zur Erstellung laufender operativer Endergebnisse für eine Finanzdienstleistungsanwendung eingesetzt, die eine Betrugserkennungslösung bereitstellt. Die Trainingsdaten 122 stellen daher bisherige Beispiele von Betriebsfaktoren in unterschiedlichen Situationen mit tatsächlichen Endergebnissen hinsichtlich der QoS-Anforderungen dar. So können die Trainingsdaten 122 beispielsweise zeitbezogene Informationen (Tageszeit, Wochentag(e), den Tag des Monats oder andere Kalenderdaten, etc.) aufweisen, die Spitzennutzungszeiten oder Pausen in der Aktivität, Momentaufnahmen der Ressourcenverfügbarkeit, bestimmte betreute Kunden (oder nur die Anzahl der Kunden), die Transaktionslast (d.h. wie viele Transaktionen kürzlich angefordert wurden oder aktuell in Bearbeitung sind) und den Netzwerkverkehr über von dem operativen System verwendete Kommunikationsleitungen aufzeigen. Jeder Datenpunkt in den Trainingsdaten 122 kann im Vergleich zu QoS-Anforderungen diese und weitere Informationen einschließen, die mit Datenbewegungsparametern (für sämtliche Datentypen) in Beziehung gesetzt werden. Anders ausgedrückt liefert ein Datenpunkt die Eingabefaktoren, die zu einem gegebenen Datenmanagementstatus führen, bei dem einige QoS-Anforderungen erfüllt werden, während andere nicht erfüllt werden (ein zurückliegendes Betriebsergebnis). Dieses Training lehrt das kognitive System 120 die Wahrscheinlichkeit, dass bestimmte QoS-Anforderungen in einer gegebenen Betriebssituation nicht erfüllt werden. Die bisherigen Betriebsfaktoren können mit dem Dienst-Feedback von den Backplane-Datendiensten aktualisiert werden.
-
Ist das kognitive System 120 einmal auf diese Weise trainiert, kann es von dem Betriebsdaten-Managementsystem zur Prognose wahrscheinlicher Verhaltensweisen anhand aktueller Faktoren verwendet werden. Die aktuellen Betriebsfaktoren 124 des Systems werden in das kognitive System 120 eingegeben; diese Faktoren umfassen die gleichen Typen von Eingaben (zeitbezogen, Ressourcen, etc.) als Trainingsdaten. Mit den spezifischen in dem kognitiven System 120 implementierten maschinellen Lernalgorithmen kann das prognostizierte operative Endergebnis an die Datenbewegungsoptimierung 126 des Datenmanagementsystems weitergeleitet werden. Ferner könnte das kognitive System bei dem Betrugserkennungsbeispiel Hinweise liefern, dass die Wahrscheinlichkeit besteht, dass eine oder sämtliche der rechnerischen, Ressourcen-, Datenzuweisungs- oder Dienstverfügbarkeitsanforderungen gerade oder in naher Zukunft beeinträchtigt werden. Die Datenbewegungsoptimierung 126 kann dann entsprechend den spezifischen beeinträchtigten QoS-Anforderungen die Backplane-Datendienste priorisieren, die zur effizienteren Bewältigung dieser Defizite erforderlich sind. Bei einer Implementierung kann das prognostizierte operative Endergebnis (basierend auf von dem kognitiven System generierten Konfidenzwerten, dass ein gegebenes QoS-Kriterium nicht erfüllt wird) unterschiedliche Werte zuordnen, die die Wahrscheinlichkeit einer Nichterfüllung der QoS in quantitativer Form einschließen, und die Datenbewegungsoptimierung 126 kann die Dienste priorisieren, die den Anforderungen zugeordnet sind, bei denen die höchste Nichterfüllungswahrscheinlichkeit aufgezeigt wird, d.h. bei einem eine QoS-Kriterium mit einer höheren Nichterfüllungswahrscheinlichkeit die Dienste zuerst aufrufen und/oder mehr dieser Dienste bereitzustellen.
-
Die vorliegende Erfindung wird unter Bezugnahme auf die Übersicht in 6 weiter verständlich, die den logischen Ablauf eines Datenmanagementprozesses 150 gemäß einer Implementierung darstellt. Der Prozess 150, der auf jedem beliebigen Computersystem einschließlich des Computersystems 10 oder eines verteilten Systems ausgeführt werden kann, beginnt mit dem Empfangen der Datendefinitionen der Quellen und Ziele sowie der Dienstqualitätskriterien für diese Quellen und Ziele (152). Die Definitionen können von einem Anwendungsentwickler entsprechend der spezifischen Codierung und den verwendeten Variablen bestimmt werden. Das Datenmanagementsystem überwacht kontinuierlich die Betriebsarbeitslast (154). Die überwachten Faktoren können beispielsweise die Ressourcennutzung, die Kapazität und die Reaktionszeit einschließen. Dadurch wird eine aktuelle Beurteilung des laufenden Betriebsdatenflusses erstellt (156). Die aktuelle Beurteilung wird zur Vorhersage des unmittelbar bevorstehenden operativen Endergebnisses genutzt (158). Diese Ergebnisse können von einem kognitiven System unter Verwendung von Verlaufsinformationen zu einer bisherigen Betriebsdatenbewegung erkannt werden (160). Die prognostizierten Ergebnisse ermöglichen der Datenbewegungsoptimierung die Erkennung, welche QoS-Kriterien in Gefahr sind (162). Einige QoS-Kriterien können gefährdeter sein, und ihnen wird dementsprechend bei der Zuweisung von Ressourcen Priorität eingeräumt. Die Datenbewegungsoptimierung kann dann zur Verbesserung der erkannten QoS-Kriterien eine geeignete Optimierungsinfrastruktur anwenden (164). Die Optimierungsinfrastruktur (die Backplane-Datendienste) erzeugt zur Erfüllung der zu erreichenden QoS-Ziele bedarfsgerecht Worker-Threads. Solange der Betrieb fortgesetzt wird (166), wird der Prozess zur kontinuierlichen Überwachung iterativ auf den Block 154 zurückgesetzt.
-
Die vorliegende Erfindung stellt damit eine herausragende Elastizität der Daten-Backplane in Kombination mit der Überwachung und anschließenden prognostischen Skalierung der Arbeitslast zur Erfüllung von QoS-Standards bereit, wodurch die Daten-Backplane zu einem bestimmten Augenblick in der Zeit dynamisch an den Bedarf der Anwendung angepasst werden kann. Obwohl die Erfindung unter Bezugnahme auf spezifische Ausführungsformen beschrieben wurde, darf diese Beschreibung nicht in einem einschränkenden Sinne ausgelegt werden. Zahlreiche Modifikationen der offenbarten Ausführungsformen sowie alternative Ausführungsformen der Erfindung gehen für Fachleute aus der Bezugnahme auf die Beschreibung der Erfindung hervor. Daher ist zu berücksichtigen, dass derartige Modifikationen vorgenommen werden können, ohne von dem Grundgedanken oder Umfang der vorliegenden Erfindung abzuweichen, die in den beiliegenden Ansprüchen angegeben sind.