DE112016003355B4 - Sicherer Einsatz einer Anwendung über Einsatzorte hinweg - Google Patents
Sicherer Einsatz einer Anwendung über Einsatzorte hinweg Download PDFInfo
- Publication number
- DE112016003355B4 DE112016003355B4 DE112016003355.9T DE112016003355T DE112016003355B4 DE 112016003355 B4 DE112016003355 B4 DE 112016003355B4 DE 112016003355 T DE112016003355 T DE 112016003355T DE 112016003355 B4 DE112016003355 B4 DE 112016003355B4
- Authority
- DE
- Germany
- Prior art keywords
- application
- data
- message
- usage restrictions
- aspects
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1074—Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
- H04L67/1076—Resource dissemination mechanisms or network resource keeping policies for optimal resource availability in the overlay network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/52—Network services specially adapted for the location of the user terminal
Abstract
Es werden Verfahren und Systeme für den sicheren Einsatz einer Anwendung über Einsatzorte hinweg bereitgestellt. Aspekte beinhalten das Bereitstellen einer Anwendung zur Analyse, wobei die Anwendung in der Lage ist, in Verarbeitungsknoten geteilt zu werden, die möglicherweise an verschiedenen Orten eingesetzt werden. Die Anwendung verarbeitet Nachrichten beruhend auf Nachrichtenmodellen, die Anmerkungen aufweisen, die Beschränkungen für den Einsatz von Daten in gegebenen Datenaspekten festlegen. Zu Datenaspekten gehören die gesamte Nachricht oder Datenfelder, Datenelemente oder Datenstrukturen der Nachricht. Zu Aspekten gehören auch das Analysieren der Anwendung, um Verarbeitungsknoten zu erkennen, die auf die gegebenen Datenaspekte mit Einsatzbeschränkungen verweisen, und das Ermitteln einer Einschränkung für einen Verarbeitungsknoten beruhend auf den Einsatzbeschränkungen der verwiesenen Datenaspekte. Zu Aspekten gehört ferner das Einsetzen jedes Verarbeitungsknotens der Anwendung entsprechend der ermittelten Einschränkung.
Description
- HINTERGRUND
- Die vorliegende Erfindung betrifft den sicheren Einsatz einer Anwendung über Einsatzorte hinweg.
- Produkte wie zum Beispiel der IBM Integration Bus (IBM und Integration Bus sind Marken von International Business Machines Corporation) stellen Optionen für eine allgemeine Integrationsbasis beruhend auf der Enterprise-Service-Bus- (ESB-) Technologie bereit. Umsetzungen dienen dazu, Verbindungsmöglichkeiten und Umwandlungen in heterogenen Informationstechnologie-Umgebungen für Unternehmen jeder beliebigen Größe und Branche zu ermöglichen, und decken eine Reihe von Plattformen ab, darunter Cloud-Umgebungen und Mainframe-Server.
- Bestimmte Integrationsabläufe führen möglicherweise Aktionen für sensible Daten enthaltende Nachrichten aus, die wahrscheinlich Einschränkungen im Zusammenhang damit unterliegen, wo diese Daten fließen können. Zum Beispiel müssen bestimmte Daten möglicherweise innerhalb der Unternehmensfirewall bleiben oder dürfen das Land nicht verlassen.
- Die Nutzung von Cloud-Technologien ermöglicht es Unternehmen, elastisch zu skalieren, um mit der Nachfrage mitzuhalten, Informationstechnologie-Infrastrukturen zu vermindern und zu rationalisieren, Betriebskosten zu verringern und Systeme schneller, einfacher und auf Anforderung (on-demand) einzusetzen.
- Bestimmte Ende-zu-Ende-Integrationsanwendungen oder -Dienste laufen möglicherweise in hybriden Cloud-Umgebungen, wobei ein Teil der Verarbeitung in einem öffentlichen Cloud-Bereich durchgeführt wird, und ein Teil der Verarbeitung, der möglicherweise geschützte Daten verwendet, vor Ort (on-premises) innerhalb der Unternehmensfirewall läuft.
- Es sind sichere Konnektoren bekannt, die sich mit hinter einer Firewall befindlichen Systemen verbinden. Für Systeme wie Datenbanken sind sichere Konnektoren erforderlich, um die Integration durchzuführen. Auf diese Weise wird es einer Integrationsanwendung, die in einem öffentlichen Cloud-Bereich ausgeführt wird, ermöglicht, sich mit einer Anwendung zu verbinden, die vor Ort hinter einer Unternehmensfirewall ausgeführt wird.
- Die
US 2014 / 0 101 300 A1 - KURZDARSTELLUNG
- Die Erfindung betrifft ein auf einem Computer ausgeführtes Verfahren, ein System und ein Computerprogrammprodukt für den sicheren Einsatz einer Anwendung über Einsatzorte hinweg, deren Merkmalen in den entsprechenden Hauptansprüchen angegeben sind. Ausführungsformen der Erfindung sind in den abhängigen Patentansprüchen angegeben.
- In einem Beispiel wird ein auf einem Computer ausgeführtes Verfahren für den sicheren Einsatz einer Anwendung über Einsatzorte hinweg bereitgestellt, aufweisend: Bereitstellen einer Anwendung zur Analyse, wobei die Anwendung in der Lage ist, in Verarbeitungsknoten geteilt zu werden, die möglicherweise an verschiedenen Orten eingesetzt werden, und wobei die Anwendung Nachrichten beruhend auf Nachrichtenmodellen verarbeitet, die Anmerkungen aufweisen, die Beschränkungen für den Einsatz von Daten in gegebenen Datenaspekten festlegen, wobei zu Datenaspekten gehören: die gesamte Nachricht oder Datenfelder, Datenelemente oder Datenstrukturen der Nachricht; Analysieren der Anwendung, um Verarbeitungsknoten zu erkennen, die auf die gegebenen Datenaspekte mit Einsatzbeschränkungen verweisen; Ermitteln einer Einschränkung für einen Verarbeitungsknoten beruhend auf den Einsatzbeschränkungen der verwiesenen Datenaspekte; und Einsetzen jedes Verarbeitungsknotens der Anwendung entsprechend der ermittelten Einschränkung.
- In einem zweiten Beispiel wird ein System für den sicheren Einsatz einer Anwendung über Einsatzorte hinweg bereitgestellt, aufweisend: einen Prozessor und einen Hauptspeicher, der so konfiguriert ist, dass er dem Prozessor Computerprogrammanweisungen bereitstellt, um die Funktion der folgenden Komponenten auszuführen, die so angeordnet sind, dass sie die festgelegte Funktionalität bereitstellen; eine Empfangskomponente zum Empfangen einer Anwendung zur Analyse, wobei die Anwendung in der Lage ist, in Verarbeitungsknoten geteilt zu werden, die möglicherweise an verschiedenen Orten eingesetzt werden, und wobei die Anwendung Nachrichten beruhend auf Nachrichtenmodellen verarbeitet, die Anmerkungen aufweisen, die Beschränkungen für den Einsatz von Daten in gegebenen Datenaspekten festlegen, wobei zu Datenaspekten gehören: die gesamte Nachricht oder Datenfelder, Datenelemente oder Datenstrukturen der Nachricht; eine Analysierkomponente zum Analysieren der Anwendung, um Verarbeitungsknoten zu erkennen, die auf die gegebenen Datenaspekte mit Einsatzbeschränkungen verweisen; eine Ermittlungskomponente zum Ermitteln einer Einschränkung für einen Verarbeitungsknoten beruhend auf den Einsatzbeschränkungen der verwiesenen Datenaspekte; und eine Einsatzkomponente zum Einsetzen jedes Verarbeitungsknotens der Anwendung entsprechend der ermittelten Einschränkung.
- In einem dritten Beispiel wird ein Computerprogrammprodukt für den sicheren Einsatz einer Anwendung über Einsatzorte hinweg bereitgestellt, wobei das Computerprogrammprodukt ein durch einen Computer lesbares Speichermedium aufweist, auf dem Programmanweisungen enthalten sind, wobei die Programmanweisungen durch einen Prozessor ausführbar sind, um den Prozessor zu veranlassen zum: Bereitstellen einer Anwendung zur Analyse, wobei die Anwendung in der Lage ist, in Verarbeitungsknoten geteilt zu werden, die möglicherweise an verschiedenen Orten eingesetzt werden, und wobei die Anwendung Nachrichten beruhend auf Nachrichtenmodellen verarbeitet, die Anmerkungen aufweisen, die Beschränkungen für den Einsatz von Daten in gegebenen Datenaspekten festlegen, wobei zu Datenaspekten gehören: die gesamte Nachricht oder Datenfelder, Datenelemente oder Datenstrukturen der Nachricht; Analysieren der Anwendung, um Verarbeitungsknoten zu erkennen, die auf die gegebenen Datenaspekte mit Einsatzbeschränkungen verweisen; Ermitteln einer Einschränkung für einen Verarbeitungsknoten beruhend auf den Einsatzbeschränkungen der verwiesenen Datenaspekte; und Einsetzen jedes Verarbeitungsknotens der Anwendung entsprechend der ermittelten Einschränkung.
- Die beschriebenen Aspekte der Erfindung bieten den Vorteil eines einfachen und benutzerfreundlichen Einsatzmodells für Kunden, die eine Anwendung zum Beispiel in einer verteilten Umgebung oder einer hybriden Cloud-Umgebung einsetzen möchten.
- KURZBESCHREIBUNG DER ZEICHNUNGEN
- Der als Erfindung angesehene Gegenstand wird insbesondere in dem abschließenden Teil der Beschreibung dargelegt und eindeutig beansprucht. Die Erfindung kann sowohl in Bezug auf die Organisation als auch auf die Funktionsweise zusammen mit ihren Aufgaben, Merkmalen und Vorteilen am besten unter Bezugnahme auf die folgende detaillierte Beschreibung verstanden werden, wenn man diese zusammen mit den beigefügten Zeichnungen liest.
- Beispielhafte Ausführungsformen der vorliegenden Erfindung werden nun lediglich beispielhaft unter Bezugnahme auf die beigefügten Zeichnungen beschrieben. Es zeigen:
- Die
1A und1B Ablaufpläne zweier beispielhafter Ausführungsformen eines Verfahrens in Übereinstimmung mit der vorliegenden Erfindung; -
2 einen Ablaufplan einer detaillierteren beispielhaften Ausführungsform eines Verfahrens in Übereinstimmung mit der vorliegenden Erfindung; -
3 ein Blockschaubild einer beispielhaften Ausführungsform eines Systems in Übereinstimmung mit der vorliegenden Erfindung; -
4 ein Blockschaubild einer Ausführungsform eines Computersystems, in dem die vorliegende Erfindung umgesetzt werden kann; - die
5A und5B schematische Schaubilder eines Beispiels eines Einsatzes eines Nachrichtenflusses in einer Integrationsumgebung, das ein Verfahren in Übereinstimmung mit der vorliegenden Erfindung veranschaulicht; -
5C ein schematisches Schaubild eines zweiten Beispiels eines Einsatzes eines Nachrichtenflusses, das den festgelegten Verfolgungsaspekt in Übereinstimmung mit der vorliegenden Erfindung zeigt; -
6 ein Blockschaubild einer Ausführungsform eines Computersystems oder Cloud-Servers, in dem die vorliegende Erfindung realisiert werden kann; -
7 ein schematisches Schaubild einer Cloud-Datenverarbeitungsumgebung, in der die vorliegende Erfindung umgesetzt werden kann; und -
8 ein Schaubild von Abstraktionsmodellschichten einer Cloud-Datenverarbeitungsumgebung, in der die vorliegende Erfindung umgesetzt werden kann. - Man wird verstehen, dass in den Figuren gezeigte Elemente der Einfachheit und Klarheit der Abbildung halber nicht unbedingt maßstabsgetreu gezeichnet sind. Die Abmessungen einiger Elemente können zum Beispiel in Bezug auf andere Elemente der Klarheit halber übertrieben groß dargestellt sein. Ferner können sich Bezugszahlen in den Figuren wiederholen, wenn dies angebracht erscheint, um entsprechende oder analoge Merkmale anzuzeigen.
- AUSFÜHRLICHE BESCHREIBUNG
- Möglicherweise müssen Daten zwischen ungleichen Anwendungen über mehrere Hardware- und Software-Plattformen hinweg fließen. Eine Architektur, die dies unterstützt, ist die Enterprise-Service-Bus-Architektur, die integrierte Verbindungsmöglichkeiten zwischen Anwendungen und Diensten in einer serviceorientierten Architektur bereitstellt. IBM Integration Bus (früher WebSphere Message Broker, wobei IBM und WebSphere Marken von International Business Machines Corporation sind) ist ein Beispiel für eine derartige Architektur, die es ermöglicht, dass Geschäftsdaten als Integrationsanwendung fließen, wobei Regeln auf die Daten angewendet werden, die durch einen Integrationsknoten (auch als Message Broker bezeichnet) fließen, um die Daten weiterzuleiten und umzuwandeln.
- Zu anderen Architekturen kann eine verteilte Datenverarbeitung gehören, wobei es sich bei einem verteilten System um ein Software-System handelt, in dem sich Komponenten auf vernetzten Computern befinden und Daten austauschen und ihre Aktionen koordinieren, indem sie Nachrichten weitergeben. Verteilte Anwendungen können über eine verteilte Datenverarbeitungsarchitektur hinweg verarbeitet werden.
- Das beschriebene Verfahren und System werden auf dem Gebiet von Integrationsabläufen oder -anwendungen beschrieben, die über verschiedene Orte hinweg eingesetzt werden können, darunter die Verwendung einer hybriden Cloud-Umgebung. Ein Fachmann wird jedoch verstehen, dass gleichwertige Verfahren und Systeme auf eine verteilte Datenverarbeitungsumgebung angewendet werden können.
- In dem beschriebenen Verfahren und System wird eine Beschreibung oder ein Modell einer Datenstruktur, die zum Beispiel in Form eines Nachrichtenmodells vorliegen kann, mit Anmerkungen versehen, um Aspekte wie zum Beispiel Felder oder Strukturen oder Elemente innerhalb der Strukturen zu erkennen, die bestimmte Beschränkungen aufweisen. Zum Beispiel sind Daten in einem bestimmten Feld oder einer bestimmten Struktur auf ein Firmengelände beschränkt, auf innerhalb einer Unternehmensfirewall beschränkt, auf ein Land beschränkt oder dürfen ungehindert in die öffentliche Cloud eintreten.
- Eine Integrationsanwendung wird dann analysiert, um zu ermitteln, auf welche Datenfelder oder Strukturen die jeweilige Verarbeitung der Anwendung einwirkt. Die Analyse erkennt möglicherweise die Verarbeitungsknoten, die möglicherweise mit unterschiedlichen Einschränkungen beruhend auf den in dem Nachrichtenmodell bereitgestellten Einschränkungen durchgeführt werden. Die Einschränkungen schränken die Verarbeitung möglicherweise auf bestimmte Orte oder Kategorien von Orten entsprechend den in dem Nachrichtenmodell festgelegten Einschränkungen ein. Die Verarbeitungsknoten sind möglicherweise mit Metadaten gekennzeichnet, welche die Einschränkung angeben.
- Die Analyse und das Kennzeichnen der einschränkenden Metadaten können ausgeführt werden, wenn die Anwendung entwickelt und verpackt wird, wobei die einschränkenden Metadaten in den Knoten der Anwendung gekennzeichnet sind. Alternativ kann dies zum Einsatzzeitpunkt der Anwendung durchgeführt werden, wobei in diesem Fall die Metadaten möglicherweise nicht an einem Knoten gekennzeichnet sind, und stattdessen wird der Knoten möglicherweise gemäß der anwendbaren Einschränkung eingesetzt.
- Wenn die Integrationsanwendung eingesetzt wird, werden die Verarbeitungsknoten ordnungsgemäß innerhalb der Umgebung beruhend auf den Datenfeldern oder Strukturen, die sie verarbeiten, eingesetzt.
- Vorteilhafterweise setzt ein Chief Information Security Officer (CISO) oder ein anderer entsprechender Systemverwalter die Einschränkungen hinsichtlich Datensicherheit im Vorfeld fest, die dann auf das Nachrichtenmodell angewendet werden. Anschließend müssen der/die Anwendungs- oder Integrationsentwickler und Systemverwalter keine tieferen Kenntnisse darüber haben, welche Einschränkungen für die Daten gelten. Hierdurch wird die Entwicklung und Verwaltung von Anwendungen in einer hybriden Cloud-Umgebung effizienter, wodurch Kosten und Komplexität verringert werden.
- Ein Einsatzsystem in einem System zur Verarbeitung von Daten, wobei die Daten sicher (d.h. vor Ort) verarbeitet werden können oder in einer weniger sicheren Umgebung (z.B. der Cloud) verarbeitet werden können, kann die Verarbeitung verteilen, indem die einschränkenden Metadaten (entweder in dem Knoten gekennzeichnet oder während der Verarbeitung erzeugt), die Sicherheit oder Datenschutz betreffen, untersucht werden, und kann beruhend auf Regeln bestimmte Teile dieser Daten darauf beschränken, dass sie in einer sichereren Umgebung verarbeitet werden, während Daten, die nicht sensibel sind, in einer weniger sicheren Umgebung verarbeitet werden dürfen.
- Das Verfahren beschreibt die Erweiterung des Nachrichtenmodells und die Verwendung dessen in Abstimmung mit der Anwendungsanalyse, um geeignete Einsatzorte für verschiedene Teile einer verteilten Anwendung zu ermitteln und anschließend zu bestimmen, wo die Verarbeitung stattfinden sollte. Das beschriebene Verfahren und System stellen einen Logikbruch zwischen dem Nachrichtenmodell und dem Code bereit, sodass der Entwickler nichts über Beschränkungen der Datenausbreitung wissen muss, da dies durch entsprechende Architekten auf der Nachrichtenmodellebene festgelegt wird.
- Nachrichtenmodelle stellen allgemein eine Trennung zwischen dem Code und der Beschreibung der Nachricht bereit. Diese Trennung wird bei dem Einsatz von Anwendungen, die auf geschützte Daten zugreifen, in hybriden Cloud-Umgebungen vorteilhaft genutzt.
- Die
1A und1B zeigen Ablaufpläne100 ,150 , die zwei beispielhafte Ausführungsformen des beschriebenen Verfahrens veranschaulichen, einer bei der Entwicklung einer Anwendung und der andere bei dem Einsatz der Anwendung. Unter Bezugnahme auf1A veranschaulicht ein Ablaufplan100 eine beispielhafte Ausführungsform des beschriebenen Verfahrens, das in einer Anwendungsentwicklungsstufe einer Anwendung ausgeführt werden kann, die über mehrere Systeme hinweg eingesetzt werden kann. - Als vorbereitender Schritt können Nachrichtenmodelle mit Beschränkungen versehen werden, um Einschränkungen für die Verwendung von Daten in Aspekten einer Nachricht bereitzustellen. Bei dem Aspekt der Nachricht, auf welche die Beschränkung angewendet wird, kann es sich um eine ganze Nachricht, ein komplexes Element (das komplexe Kindelemente oder einfache Elemente/Felder enthalten kann) oder einzelne Elemente oder Felder einer Nachricht handeln. Die Einschränkungen können als Beschränkungen in dem Nachrichtenmodell bereitgestellt werden, die festlegen, wo die Daten eingesetzt werden dürfen. Das Versehen des Nachrichtenmodells mit Anmerkungen kann Datenfelder oder Strukturen kennzeichnen, die innerhalb der Grenze X, Grenze Y usw. bleiben müssen. (D.h. innerhalb einer Abteilung, einer Firewall, eines Landes usw.). Das Nachrichtenmodell wird erweitert, um von einer Anwendung verarbeitete flüchtige Daten zu beschreiben und dies für die Ermittlung der Einsatzorte zu verwenden.
- Ein Nachrichtenmodell stellt ein mit Anmerkungen versehenes Modell eines Nachrichtenformats zur Verfügung, zum Beispiel kann es sich bei einem Nachrichtenmodell um ein mit Anmerkungen versehenes Extensible Markup Language (XML) Schema-Modell oder ein Data Format Description Language (DFDL) Schema-Modell handeln.
- Wenn ein Nachrichtenmodell erstellt wird, kann ein Systemverwalter ein Element oder Feld erstellen und für das Element oder Feld eine Eigenschaft festsetzen, um eine Beschränkung festzulegen. Wenn ein bestehendes Nachrichtenmodell verändert wird, kann der Systemverwalter bestehende Elemente oder Felder durch Festsetzen einer entsprechenden Beschränkungseigenschaft verändern. Eine Anwendung kann während ihrer Entwicklung Nachrichtenmodelle in den Anwendungsablauf zur Verwendung durch Knoten oder Teilmengen der Anwendung hineinziehen, die durch die Nachrichtenmodelle festgelegte Nachrichten verarbeiten. Es kann eine Anwendung zur Analyse während der Entwicklung der Anwendung bereitgestellt werden
101 . Die Anwendung kann Verarbeitungsknoten oder Code-Teilmengen aufweisen, die über mehrere Systeme hinweg eingesetzt werden können, die zum Beispiel über ein Netzwerk oder eine hybride Cloud-Umgebung hinweg verteilt sein können. - Es wird eine Analyse der Anwendung ausgeführt, und Verarbeitungsknoten der Anwendung werden erkannt
102 , die auf Datenfelder, Elemente oder Strukturen verweisen oder Nachrichten verarbeiten, die in ihrem Nachrichtenmodell Beschränkungen auferlegt haben. Die Analyse kann auf die mit Anmerkungen versehenen Nachrichtenmodelle zugreifen103 , in denen Aspekte der Nachricht wie zum Beispiel Datenfelder, Elemente und/oder Datenstrukturen mit Beschränkungen versehen wurden, um Einzelheiten der Einschränkungen für Einsatzorte der Daten in den Feldern, Elementen und/oder Strukturen zu erhalten. - In einer Ausführungsform kann die Analyse auch auf Verfolgungsdaten zugreifen
104 , die Aspekte von Nachrichten betreffen, auf die Einschränkungen angewendet werden und die zu Zielaspekten von Nachrichten verschoben wurden, die uneingeschränkt sind. Die Zielaspekte können verfolgt werden, und es können entsprechende Beschränkungen auf deren Daten angewendet werden. Die Knoten der Anwendung können mit einschränkenden Metadaten gekennzeichnet werden105 , um die Einschränkung der Verteilung des Knotens anzugeben. Die einschränkenden Metadaten beruhen106 auf der Anmerkung der Beschränkung in dem Nachrichtenmodell, die den Aspekt des Verfahrens (Nachricht, Datenfeld, Element oder Struktur) betrifft, der von dem Knoten verwendet wird. - Bei einem späteren Einsatz der Anwendung können die einschränkenden Metadaten der Verarbeitungsknoten gelesen werden, und verschiedene Knoten der Anwendung können zur Verarbeitung durch Systeme gesendet werden
107 , welche die Anforderungen bezüglich der einschränkenden Metadaten für diesen Knoten erfüllen. - Unter Bezugnahme auf
1B veranschaulicht ein Ablaufplan150 eine beispielhafte Ausführungsform des beschriebenen Verfahrens, das während der Verarbeitung beim Einsatz einer Anwendung ausgeführt werden kann, die über mehrere Systeme hinweg eingesetzt werden kann. Wie bei dem Verfahren aus1A können als vorbereitender Schritt Nachrichtenmodelle mit Beschränkungen versehen werden, um Einschränkungen für die Verwendung von Daten in Aspekten einer Nachricht bereitzustellen. Eine Anwendung kann zum Einsatz bereitgestellt werden151 . Die Anwendung kann Verarbeitungsknoten aufweisen, die über mehrere Systeme hinweg eingesetzt werden können, die zum Beispiel über ein Netzwerk oder eine hybride Cloud-Umgebung verteilt sein können. - Es wird eine Analyse der Anwendung ausgeführt, und Verarbeitungsknoten der Anwendung werden erkannt
152 , die auf Datenfelder, Elemente oder Strukturen verweisen oder Nachrichten verarbeiten, die in ihrem Nachrichtenmodell Beschränkungen auferlegt haben. Die Analyse kann auf die mit Anmerkungen versehenen Nachrichtenmodelle zugreifen153 , in denen Aspekte der Nachricht wie zum Beispiel Datenfelder, Elemente und/oder Datenstrukturen mit Beschränkungen versehen wurden, um Einzelheiten der Einschränkungen für Einsatzorte der Daten in den Feldern, Elementen und/oder Strukturen zu erhalten. In einer Ausführungsform kann die Analyse auch auf Verfolgungsdaten zugreifen154 , die Aspekte von Nachrichten betreffen, auf die Einschränkungen angewendet werden und die zu Zielaspekten von Nachrichten verschoben wurden, die uneingeschränkt sind. Die Zielaspekte können verfolgt werden, und es können entsprechende Beschränkungen auf deren Daten angewendet werden. - Die Einschränkungen für einen Verarbeitungsknoten können beruhend auf den Beschränkungsanmerkungen in den Nachrichtenmodellen und Verfolgungsdaten ermittelt werden
155 , und die Knoten der Anwendung können gemäß der ermittelten Einschränkungen eingesetzt werden156 , und verschiedene Knoten der Anwendung können zur Verarbeitung durch Systeme gesendet werden, welche die Einschränkungsanforderungen für diesen Knoten erfüllen. Das Aufteilen einer Anwendung in Knoten für den Einsatz, wobei sich zum Beispiel einige Knoten vor Ort und einige in einer öffentlichen Cloud-Umgebung befinden, ermöglicht ein Cloud-Bursting der Verarbeitung, wenn Vor-Ort-Ressourcen knapp werden. - Unter Bezugnahme auf
2 zeigt ein Ablaufplan200 eine ausführlichere beispielhafte Ausführungsform des beschriebenen Verfahrens, wie es nach der Entwicklung einer Anwendung201 ausgeführt wird, die über mehrere Systeme hinweg eingesetzt werden kann. Diese Ausführungsform wird in einer Integrationsumgebung bereitgestellt, in der eine Anwendung ein Integrationsablauf mit Knoten ist, die eine oder mehrere eingehende Schnittstellen und eine oder mehrere ausgehende Schnittstellen aufweisen. Eine entsprechende Anwendung in einer verteilten Umgebung kann ein gleichartiges Verfahren verwenden. - Eine statische Analyse der entwickelten Anwendung kann ausgelöst werden
202 , und ein Knoten der Anwendung kann in Schritt203 analysiert werden. Es kann ermittelt werden 204, ob eine eingehende Schnittstelle des Knotens beschränkte Felder oder Daten enthält. Dies kann auf das Nachrichtenmodell verweisen, um Beschränkungen zu ermitteln, die für Felder oder Daten bereitgestellt werden. Dies kann auch auf einen Verfolgungsspeicher210 verweisen, der Felder aufzeichnet, auf die Beschränkungen angewendet werden. Wenn der Knoten kein beschränktes Feld beinhaltet, fährt das Verfahren mit Schritt208 fort, der nachfolgend beschrieben ist. - Wenn der Knoten ein beschränktes Feld beinhaltet, kann der Knoten entsprechend als eingeschränkt gekennzeichnet werden
205 . Es kann dann ermittelt werden206 , ob die Knotenlogik ein beschränktes Feld zu irgendeinem anderen Feld auf einer ausgehenden Schnittstelle verschiebt. Wenn die Logik kein beschränktes Feld verschiebt, kann das Verfahren mit Schritt208 fortfahren, der nachfolgend beschrieben ist. Wenn die Logik jedoch ein beschränktes Feld verschiebt, wird in dem Verfolgungsspeicher210 aufgezeichnet207 , dass das Zielfeld beschränkte Daten enthält, bevor mit Schritt208 fortgefahren wird. - In Schritt
208 kann ermittelt werden, ob eine ausgehende Schnittstelle des Knotens ein beschränktes Feld mit Daten enthält. Dies kann auch auf einen Verfolgungsspeicher210 verweisen, der Felder aufzeichnet, auf die Beschränkungen angewendet werden. Wenn es derartige beschränkte Felder gibt, kann der Knoten entsprechend als eingeschränkt gekennzeichnet werden209 . Es kann dann ermittelt werden211 , ob es in der Anwendung weitere Knoten gibt. Falls dem so ist, kann das Verfahren eine Schleife ausführen und den nächsten Knoten213 in Schritt203 analysieren. Wenn es keine weiteren Knoten gibt, kann die Anwendung in einer hybriden Umgebung eingesetzt werden214 , wobei jeder Knoten beruhend auf allen in den Knoten gekennzeichneten Beschränkungen an einem entsprechenden Ort eingesetzt wird. - Der Verfolgungsspeicher
210 in dieser Ausführungsform wird während der Analyse vor dem Einsatz verwendet. Beim Erkennen, dass ein beschränktes Feld zum Erstellen einer neuen Nachricht verwendet wird, die auf einem Schema beruht, das keine Beschränkungen angibt, kann die statische Analyse unter Bezugnahme auf den Verfolgungsspeicher210 erkennen, dass beim Verarbeiten dieser neuen Nachricht durch einen nachfolgenden Knoten, obwohl das aktuell verwendete Modell keine Beschränkungen aufweist, die Nachricht ein Feld aufweist, das in einem vorhergehenden Nachrichtenmodell als beschränkt gekennzeichnet wurde, wodurch der Umfang des Einsatzes oder der Verarbeitung für den Knoten eingeschränkt wird. - Das Verfolgungsverfahren kann mit dem Analysieren der Logik in dem Knoten selbst, im Gegensatz zu lediglich den Schnittstellen einhergehen. Dabei kann es sich um das Analysieren von Produkt-Anwendungsprogrammschnittstellen (APIs) oder allgemeiner (d.h. XSLT, XQuery usw.) handeln, um zu verstehen, welche Felder zu anderen ausgehenden Feldern verschoben oder als Eingabe für diese verwendet werden, mit Kenntnis der APIs oder der allgemeinen Umwandlungstechnologie.
- Unter Bezugnahme auf
3 zeigt ein Blockschaubild eine beispielhafte Ausführungsform eines beschriebenen Systems300 . Das System300 beinhaltet ein sicheres Einsatzsystem310 . Das sichere Einsatzsystem310 kann als Teil eines Entwicklungssystems zur Anwendungsentwicklung oder als Teil eines Einsatzsystems für den Einsatz von Anwendungen über Einsatzorte hinweg bereitgestellt werden. Eine sichere Einsatzkomponente320 ist in3 separat gezeigt, wobei diese jedoch auch als eine Ausgangskomponente des sicheren Einsatzsystems310 integriert sein kann, wenn dieses als Einsatzsystem bereitgestellt wird. - Eine Nachrichtenmodell-Anmerkungskomponente
330 kann bereitgestellt werden, die getrennt von dem sicheren Einsatzsystem310 sein und als eine Benutzerschnittstelle für einen Systemverwalter bereitgestellt werden kann, um Nachrichtenmodelle mit Einsatzbeschränkungen wie hierin beschrieben mit Anmerkungen zu versehen. Dies kann getrennt von der Anwendungsentwicklung geschehen. Das sichere Einsatzsystem310 kann einen Prozessor und einen Hauptspeicher beinhalten, der so konfiguriert ist, dass er dem Prozessor Computerprogrammanweisungen bereitstellt, um die Funktion der folgenden Komponenten auszuführen, die so angeordnet sind, dass sie die festgelegte Funktionalität bereitstellen. - Das sichere Einsatzsystem
310 kann eine Empfangskomponente311 beinhalten, die zum Empfangen einer Anwendung312 zur Analyse angeordnet ist, wobei die Anwendung in der Lage ist, in Verarbeitungsknoten401 bis405 geteilt zu werden, die möglicherweise an verschiedenen Orten eingesetzt werden. Die Anwendung312 verarbeitet Nachrichten beruhend auf Nachrichtenmodellen313 , die Anmerkungen aufweisen, die Beschränkungen für den Einsatz von Daten in gegebenen Datenfeldern oder Strukturen der Nachricht festlegen. Eine Zugriffskomponente317 kann zum Zugreifen auf die benötigten Nachrichtenmodelle313 bereitgestellt werden. - Das sichere Einsatzsystem
310 kann eine Analysierkomponente314 beinhalten, die zum Analysieren der Anwendung angeordnet ist, um die Verarbeitungsknoten401 bis405 zu erkennen, die auf die gegebenen Datenfelder oder Strukturen mit Einsatzbeschränkungen verweisen, die durch die Anmerkungen in den Nachrichtenmodellen313 festgelegt sind. Die Analysierkomponente314 kann auch auf eine Verfolgungskomponente316 verweisen, die zum Verfolgen von Datenfeldern oder Strukturen mit Einsatzbeschränkungen und zum Ermitteln, ob ein Datenfeld oder eine Struktur mit Einsatzbeschränkungen von einem Verarbeitungsknoten501 bis505 verschoben wird, angeordnet ist. Ein Verfolgungsspeicher318 kann bereitgestellt werden, um aufzuzeichnen, dass ein verschobenes Datenfeld oder eine verschobene Struktur Einsatzbeschränkungen aufweist. - Das sichere Einsatzsystem
310 kann eine Ermittlungskomponente321 zum Ermitteln einer Einschränkung für einen Verarbeitungsknoten beruhend auf den Einsatzbeschränkungen der verwiesenen Datenfelder und Strukturen beinhalten. - In der Ausführungsform, in der das sichere Einsatzsystem
310 vor dem Einsatz betrieben wird, kann das sichere Einsatzsystem310 eine Kennzeichnungskomponente315 beinhalten, die zum Kennzeichnen der Verarbeitungsknoten401 bis405 mit einschränkenden Metadaten entsprechend den in dem Nachrichtenmodell313 angemerkten Einsatzbeschränkungen, welche die gegebenen Datenfelder oder Strukturen betreffen, auf welche der Verarbeitungsknoten zugreift, angeordnet ist. Eine Ausgabekomponente319 für gekennzeichnete Anwendungen kann die gekennzeichnete Anwendung bei Bedarf an eine separate Einsatzkomponente320 ausgeben. Die Einsatzkomponente320 kann die einschränkenden Metadaten lesen und jeden Verarbeitungsknoten401 bis405 gemäß den Einsatzbeschränkungen einsetzen. - In der Ausführungsform, in der das sichere Einsatzsystem
310 beim Einsatz einer Anwendung betrieben wird, kann die Ermittlungskomponente321 die ermittelte Einschränkung für einen Verarbeitungsknoten an die sichere Einsatzkomponente320 ausgeben, die den Verarbeitungsknoten entsprechend einsetzen kann. - Unter Bezugnahme auf
4 zeigt ein Blockschaubild ein beispielhaftes System400 , in dem das beschriebene Verfahren und System umgesetzt werden können. Bei dem gezeigten beispielhaften System400 handelt es sich um eine Anwendung312 in Form einer Integrationsanwendung, die über eine hybride Cloud-Umgebung hinweg eingesetzt wird. Einer einfachen Veranschaulichung halber ist die hybride Cloud-Umgebung als ein Vor-Ort-System410 und eine öffentliche Cloud420 gezeigt. - Das Vor-Ort-System
410 und die öffentliche Cloud420 können Laufzeit-Engines411 bzw.421 aufweisen. Die Laufzeit-Engines411 ,421 führen Anwendungen aus, die auf diesen eingesetzt werden. In einer beispielhaften Ausführungsform kann es sich bei einer Laufzeit-Engine um einen Integrationsserver handeln. Die Anwendung verweist auf Bibliotheken, die üblicherweise zugehörige Ressourcen enthalten können, wie zum Beispiel die Nachrichtenmodelle313 . - Die Integrationsanwendung
312 weist die Verarbeitungsknoten401 bis405 mit den zugehörigen Nachrichtenmodellen313 auf. Jeder der Knoten401 bis405 kann in der Laufzeit-Engine411 vor Ort oder der Laufzeit-Engine421 in der öffentlichen Cloud (oder an anderen Orten in einer komplexeren Anordnung) ausgeführt werden. Wenn die Logik in der Anwendung312 einen Knoten401 bis405 erreicht, werden, wenn er in der öffentlichen Cloud420 auszuführen ist, eine Nachricht und ein Kontext, der verarbeitet wird, an diese Laufzeit-Engine421 gesendet. Wenn er auf dem Vor-Ort-System410 auszuführen ist, werden eine Nachricht und ein Kontext, der verarbeitet wird, an die Laufzeit-Engine411 auf dem Vor-Ort-System410 gesendet. - Ein sicherer Konnektor
420 kann als ein an einem Ort (vor Ort, in der Cloud oder zwischen beiden aufgeteilt) laufender Prozess bereitgestellt werden, der die Laufzeit-Engine411 vor Ort mit der Laufzeit-Engine421 in der Cloud420 verbindet. Sobald die Verarbeitung in der Cloud-Laufzeit-Engine421 abgeschlossen ist, kehrt die Steuerung zu der Vor-Ort-Laufzeit-Engine411 zurück. Also ist der sichere Konnektor420 ein externer Prozess in Bezug auf die aufgerufenen Laufzeit-Engines411 ,421 und verbindet die Vor-Ort-Laufzeit-Engine411 mit der Laufzeit-Engine421 in der Cloud. - Die beschriebene sichere Einsatzkomponente
310 kann an dem sicheren Konnektor420 bereitgestellt werden und kann einschränkende Metadaten an einem Verarbeitungsknoten401 bis405 lesen und ermitteln, auf welcher Laufzeit-Engine411 ,421 der Knoten eingesetzt werden darf. - Es wird nun ein Beispiel bereitgestellt, welches das beschriebene Verfahren veranschau licht.
- Beim Beschreiben einer Nachrichtenstruktur mit einem Nachrichtenmodell (XML/DFDL-Schemas, etc.) kann ein Systemverwalter zusätzlich Anmerkungen bereitstellen, die Einschränkungen für bestimmte Datenstrukturen oder Felder festsetzen. Das folgende Beispiel erlegt FIELD2 eine Einschränkung auf, dass es die Unternehmensfirewall nicht verlässt, und dass die Daten in der komplexen Struktur PERSONAL_DATA das Land nicht verlassen dürfen:
HEADER:: FIELD1 ::STRING BODY:: FIELD2::STRING::ONPREM PERSONAL_DATA::::COUNTRY FIELD3::INTEGER FIELD4::STRING FIELD5::STRING FOOTER:: FIELD6::DATETIME
Die Felder/Elemente FIELD2 und PERSONAL_DATA (darunter die Unterelemente FIELD3, FIELD4 und FIELD5) weisen Beschränkungen auf. Wenn ein Knoten eine Schnittstelle zu diesen Feldern aufweist, muss er in einer geeigneten Umgebung ausgeführt werden.
Ein Integrationsablaufentwickler kann anschließend das Nachrichtenmodell in einen Integrationsablauf ziehen, der die beschriebenen Nachrichten verarbeitet. Wenn die Anwendung fertiggestellt und verpackt ist oder eingesetzt wird, kann eine statische Analyse des Codes stattfinden, um zu ermitteln, welche Knoten der Anwendung auf Felder zugreifen oder Nachrichten verarbeiten, die in dem Nachrichtenmodell Beschränkungen auferlegt haben. Vorteilhafterweise kann dies zusätzlich Verfolgungsdaten beinhalten, die das Nachrichtenmodell verlassen, die zum Beispiel von obigem FIELD2 entnommen und in ein nicht beschränktes Feld in einem anderen Nachrichtenmodell verschoben wurden, um einen ausgehenden Aufruf durchzuführen.
Die Anwendungsknoten können dann beruhend auf der Analyse gekennzeichnet werden, um anzugeben, wo sie eingesetzt werden dürfen. Die Knoten, die mit auf „ONPREM“ beschränkten Daten arbeiten, dürfen lediglich in einer Vor-Ort-Umgebung eingesetzt werden.
Eine erste beispielhafte Integration und ein anschließender Einsatz sind in den 5A und 5B gezeigt. Die in 5A gezeigte beispielhafte Ausführungsform eines Nachrichtenablaufs 500 einer Integration durch die Knoten Eingabe 501 , Weiterleitung 502 , Umwandlung 503 , SOAP-Anfrage 504 , Umwandlung 505 und Ausgabe 506 . Wenn Nachrichtenboxen übereinander gezeigt werden, zeigt dies, dass die Nachricht oben in die Nachricht unten umgewandelt wird, oder dass die Nachricht oben an einen externen Dienst gesendet und die Nachricht unten zurückkommt.
An der Eingangsstufe 501 zu dem Nachrichtenablauf wird eine Nachricht 511 empfangen. Die Nachricht 511 wird beruhend auf dem in der Nachricht unterstrichenen Feld weitergeleitet 502 . Der Einfachheit halber werden die anderen Pfade, die von diesem Punkt aus gewählt werden können, nicht gezeigt. Die Nachricht 513 wird von der oben gezeigten Nachricht 513A in die unten gezeigte 513B umgewandelt 503 . Unterstrichene Felder zeigen Daten, die sich zu der ausgehenden Nachricht des Umwandlungsknotens 503 hin ausbreiten. Die Nachricht 514A oben an dem SOAP-Anfrageknoten 504 wird an einen externen SOAP-Dienst gesendet, und die Antwort unter 514B wird empfangen. Keine der Schnittstellen verweist auf beschränkte Felder, also kann dieser Knoten in einer Umgebung mit niedrigerer Sicherheit ausgeführt werden. Die Nachricht 515A oben an dem Umwandlungsknoten 505 wird in die unten gezeigte 151B umgewandelt. Die an dem Ausgabeknoten 506 gezeigte Nachricht 516 wird nach der Integration ausgegeben.
Die Nachrichtenmodelle für die Schnittstellen zwischen dem Eingabeknoten 501 und dem Weiterleitungsknoten 502 und zwischen dem Weiterleitungsknoten 502 und dem Umwandlungsknoten 503 weisen das Feld FIELD2 und die Felder und Elemente PERSONAL_DATA (darunter die Teilelemente field3, field4 und field5) auf, die beschränkt sind. Wenn also ein Knoten eine Schnittstelle zu diesen Feldern aufweist, muss er in einer geeigneten Umgebung ausgeführt werden.
Sie könnten in einer Cloud-Umgebung verwendet werden, wenn der geografische Ort der Umgebung bekannt wäre oder angegeben werden könnte. Oder könnten (zum Beispiel) nicht an eine Datenbank gesendet werden, wenn der Ort der Datenbank unbekannt oder außerhalb der geografischen Beschränkung befindlich wäre. Unter derartigen Umständen würden die Daten nicht gesendet werden (vom Inhalt befreit). Dies könnte möglicherweise einen Fehler in der Anwendung verursachen, der an Systemverwalter / Entwickler berichtet wird.
Unter Bezugnahme auf 5C ist eine zweite beispielhafte Integration gezeigt, die ein verfolgtes Feld 551 mit dem Wert PN515DL zeigt. Obwohl das Nachrichtenmodell der Schnittstelle zwischen dem Umwandlungsknoten 503 und dem Anfrageknoten 504 keine beschränkten Felder enthält, hat die statische Analyse gezeigt, dass das beschränkte Feld 551 (mit dem Wert PN515DL) in ein unbeschränktes Feld 552 verschoben wurde. Da dies beschränkte Daten enthält, kann es die Beschränkung nicht verlassen (d.h. muss vor Ort bleiben). Deshalb muss der Anfrageknoten 504 vor Ort verarbeitet werden. Die Schnittstellen zwischen dem Anfrageknoten 504 und dem Umwandlungsknoten 505 und zwischen dem Umwandlungsknoten 505 und der Ausgabe 506 enthalten keine beschränkten Daten, und es wurden keine in diese Nachrichtenmodelle eintretenden Daten verfolgt, die beschränkt waren, deshalb können die letzten zwei Knoten 505 , 506 in einer öffentlichen Umgebung verarbeitet werden.
Obwohl die vorstehende Umsetzung und Beschreibung auf einer Integrationsanwendung beruhen, sind die Verfahren allgemeiner auf jede Anwendung anwendbar, die in einzelne Bestandteile zerlegt werden kann.
Unter Bezugnahme auf 6 ist eine schematische Abbildung eines Beispiels eines Systems 600 in Form eines Computersystems oder Servers gezeigt.
Ein Computersystem oder Server 612 kann mit zahlreichen anderen Universal- bzw. Spezial-Datenverarbeitungssystem-Umgebungen bzw. Konfigurationen betriebsfähig sein. Zu Beispielen für allgemein bekannte Datenverarbeitungssysteme, Umgebungen und/oder Konfigurationen, die zur Verwendung mit dem Computersystem/Server 612 geeignet sein können, gehören Personal-ComputerSysteme, Server-Computersysteme, Thin Clients, Thick Clients, Handheld- bzw. Laptop-Geräte, Multiprozessorsysteme, auf Mikroprozessoren beruhende Systeme, Set-Top-Boxen, programmierbare Verbraucherelektronik, Netzwerk-PCs, Minicomputersysteme, Mainframe-Computersysteme sowie verteilte Cloud-Computing-Umgebungen, die irgendeine(s) der obigen Systeme bzw. Einheiten enthalten, u.ä., aber nicht darauf beschränkt.
Das Computersystem/der Server 612 kann in dem allgemeinen Kontext von durch Computersysteme ausführbaren Instruktionen, z.B. durch Programmmodule, beschrieben werden, die von einem Computersystem ausgeführt werden. Allgemein können zu Programmmodulen Routinen, Programme, Objekte, Komponenten, Logik, Datenstrukturen und so weiter gehören, die bestimmte Aufgaben durchführen bzw. bestimmte abstrakte Datentypen umsetzen. Das Computersystem/der Server 612 kann in verteilten Cloud-Computing-Umgebungen ausgeführt werden, wo Aufgaben durch ferne Verarbeitungseinheiten durchgeführt werden, die über ein Datenübertragungsnetzwerk verbunden sind. In einer verteilten Cloud-Computing-Umgebung können sich Programmmodule sowohl in lokalen als auch in fernen Computersystem-Speichermedien befinden, darunter Arbeitsspeichereinheiten.
In 6 ist ein Computersystem/Server 612 in Form einer Universal-Datenverarbeitungseinheit gezeigt. Die Komponenten des Computersystems/Servers 612 können eine(n) oder mehrere Prozessoren oder Verarbeitungseinheiten 616 , einen Systemspeicher 628 und einen Bus 618 aufweisen, der verschiedene Systemkomponenten, darunter den Systemspeicher 628 , mit dem Prozessor 616 verbindet, sind aber nicht darauf beschränkt.
Der Bus 618 stellt eine oder mehrere einer beliebigen von mehreren Arten von Busstrukturen dar, darunter einen Speicherbus oder eine Speichersteuereinheit, einen Peripheriebus, einen beschleunigten Grafikanschluss und einen Prozessor- oder lokalen Bus, die eine beliebige aus einer Vielfalt von Busarchitekturen verwenden. Zu derartigen Architekturen gehören als Beispiel und nicht als Einschränkung ein ISA-Bus (Industry Standard Architecture), ein MCA-Bus (Micro Channel Architecture), ein EISA-Bus (Enhanced ISA), ein VESA-Lokalbus (Video Electronics Standards Association) sowie ein PCI-Bus (Peripheral Component Interconnects).
Das Computersystem/der Server 612 beinhaltet üblicherweise eine Vielfalt von durch ein Computersystem lesbaren Medien. Bei derartigen Medien kann es sich um jedes beliebige Medium handeln, auf welches das Computersystem/der Server 612 zugreifen kann, und es beinhaltet sowohl flüchtige als auch nichtflüchtige Medien, austauschbare und nicht austauschbare Medien.
Der Systemspeicher 628 kann durch ein Computersystem lesbare Medien in Form eines flüchtigen Speichers wie einen Direktzugriffsspeicher (RAM) 630 und/oder Cachespeicher 632 enthalten. Das Computersystem/der Server 612 kann ferner andere austauschbare/nicht austauschbare, flüchtige/nichtflüchtige Computersystem-Speichermedien enthalten. Lediglich als Beispiel kann das Speichersystem 634 zum Lesen von und zum Schreiben auf ein nicht austauschbares, nichtflüchtiges magnetisches Medium bereitgestellt werden (das nicht gezeigt ist und üblicherweise „Festplattenlaufwerk“ genannt wird). Es können auch ein Magnetplattenlaufwerk zum Lesen von und Schreiben auf eine austauschbare, nichtflüchtige Magnetplatte (z.B. eine „Floppy-Diskette“) und ein optisches Plattenlaufwerk zum Lesen von oder Schreiben auf eine austauschbare, nichtflüchtige optische Platte wie eine CD-ROM, DVD-ROM oder ein anderes optisches Medium bereitgestellt werden, auch wenn diese nicht gezeigt sind. In derartigen Fällen können sie jeweils über eine oder mehrere Datenmedienschnittstellen mit dem Bus 618 verbunden sein. Wie nachfolgend weiter abgebildet und beschrieben wird, kann der Speicher 628 mindestens ein Programmprodukt enthalten, das einen Satz von Programmmodulen (z.B. mindestens einen) aufweist, die so konfiguriert sind, dass sie die Funktionen von Ausführungsformen der Erfindung ausführen.
Als Beispiel und nicht als Einschränkung können das Programm/Dienstprogramm 640 mit (mindestens) einem Satz von Programmmodulen 642 sowie ein Betriebssystem, ein oder mehrere Anwendungsprogramme, andere Programmmodule und Programmdaten in dem Speicher 628 gespeichert sein. Jedes der Betriebssysteme, ein oder mehrere Anwendungsprogramme, andere Programmmodule und die Programmdaten oder eine beliebige Kombination daraus können eine Umsetzung einer Netzwerkumgebung enthalten. Die Programmmodule 642 führen allgemein die hierin beschriebenen Funktionen und/oder Methodiken von Ausführungsformen der Erfindung aus.
Das Computersystem/der Server 612 kann auch mit einer oder mehreren externen Einheiten 614 wie einer Tastatur, einer Zeigeeinheit, einer Anzeige 624 usw., einer oder mehreren Einheiten, die es einem Benutzer ermöglichen, mit dem Computersystem/Server 612 Daten auszutauschen, und/oder beliebigen Einheiten (z.B. Netzwerkkarten, Modems usw.) Daten austauschen, die es dem Computersystem/Server 612 ermöglichen, mit einer oder mehreren anderen Datenverarbeitungseinheiten Daten auszutauschen. Ein derartiger Datenaustausch kann über die Eingabe/Ausgabe- (E/A-) Schnittstellen 622 erfolgen. Außerdem kann das Computersystem/der Server 612 über den Netzwerkadapter 620 mit einem oder mehreren Netzwerken Daten austauschen, wie zum Beispiel einem lokalen Netzwerk (LAN), einem allgemeinen Weitverkehrsnetz (WAN) und/oder einem öffentlichen Netzwerk (z.B. dem Internet). Wie abgebildet ist, tauscht der Netzwerkadapter 620 mit den anderen Komponenten des Computersystems/Servers 612 über den Bus 618 Daten aus. Es sollte klar sein, dass andere Hardware- und/oder Software-Komponenten in Verbindung mit dem Computersystem/Server 612 verwendet werden könnten, auch wenn diese nicht gezeigt sind. Zu Beispielen gehören folgende, ohne auf diese beschränkt zu sein: Mikrocode, Einheitentreiber, redundante Verarbeitungseinheiten, externe Festplattenlaufwerk-Arrays, RAID-Systeme, Bandlaufwerke und Speichersysteme zur Datenarchivierung usw.
Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt handeln. Das Computerprogrammprodukt kann (ein) durch einen Computer lesbare(s) Speichermedium (oder -medien) beinhalten, auf dem/denen durch einen Computer lesbare Programmanweisungen gespeichert ist/sind, um einen Prozessor dazu zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine physische Einheit handeln, die Anweisungen zur Verwendung durch ein System zur Ausführung von Anweisungen behalten und speichern kann. Bei dem durch einen Computer lesbaren Speichermedium kann es sich zum Beispiel um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder jede geeignete Kombination daraus handeln, ohne auf diese beschränkt zu sein. Zu einer nicht erschöpfenden Liste spezifischerer Beispiele des durch einen Computer lesbaren Speichermediums gehören die Folgenden: eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM bzw. Flash-Speicher), ein statischer Direktzugriffsspeicher (SRAM), ein tragbarer Kompaktspeicherplatte-Nur-Lese-Speicher (CD-ROM), eine DVD (digital versatile disc), ein Speicher-Stick, eine Diskette, eine mechanisch kodierte Einheit wie zum Beispiel Lochkarten oder gehobene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und jede geeignete Kombination daraus. Ein durch einen Computer lesbares Speichermedium soll in der Verwendung hierin nicht als flüchtige Signale an sich aufgefasst werden, wie zum Beispiel Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder ein anderes Übertragungsmedium ausbreiten (z.B. durch ein Glasfaserkabel geleitete Lichtimpulse) oder durch einen Draht übertragene elektrische Signale.
Hierin beschriebene, durch einen Computer lesbare Programmanweisungen können von einem durch einen Computer lesbaren Speichermedium auf jeweilige Datenverarbeitungs-/Verarbeitungseinheiten oder über ein Netzwerk wie zum Beispiel das Internet, ein lokales Netzwerk, ein Weitverkehrsnetz und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Leitwegrechner, Firewalls, Vermittlungseinheiten, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in 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 entsprechenden 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 (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 werden, darunter objektorientierte Programmiersprachen wie Smalltalk, C++ o.ä. sowie herkömmliche prozedurale Programmiersprachen wie 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 Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem fernen Computer oder vollständig auf dem fernen Computer oder Server ausgeführt werden. In letzterem Fall kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch eine beliebige Art Netzwerk verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters). In einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, im Feld programmierbare Gatter-Anordnungen (FPGA, field programmable gate arrays) oder programmierbare Logikanordnungen (PLA, programmable logic arrays) die durch einen Computer lesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der durch einen Computer lesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Erfindung durchzuführen.
Aspekte der vorliegenden Erfindung sind hierin unter Bezugnahme auf Ablaufpläne und/oder Blockschaltbilder bzw. Schaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es wird darauf hingewiesen, dass jeder Block der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder sowie Kombinationen von Blöcken in den Ablaufplänen und/oder den Blockschaltbildern bzw. Schaubildern durch durch einen Computer lesbare Programmanweisungen ausgeführt werden können.
Diese durch einen Computer lesbaren Programmanweisungen können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, so dass die über den Prozessor des Computers bzw. der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Mittel zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte erzeugen. Diese durch einen Computer lesbaren Programmanweisungen können auch auf einem durch einen Computer lesbaren Speichermedium gespeichert sein, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Art funktionieren, so dass das durch einen Computer lesbare Speichermedium, auf dem Anweisungen gespeichert sind, ein Herstellungsprodukt aufweist, darunter Anweisungen, welche Aspekte der/des in dem Block bzw. den Blöcken des Ablaufplans und/oder der Blockschaltbilder bzw. Schaubilder angegebenen Funktion/Schritts umsetzen.
Die durch einen Computer lesbaren Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um das Ausführen einer Reihe von Prozessschritten auf dem Computer bzw. der anderen programmierbaren Vorrichtung oder anderen Einheit zu verursachen, um einen auf einem Computer ausgeführten Prozess zu erzeugen, so dass die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführten Anweisungen die in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte umsetzen.
Die Ablaufpläne und die Blockschaltbilder bzw. Schaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder Blockschaltbildern bzw. Schaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zur Ausführung der bestimmten logischen Funktion(en) aufweisen. In einigen alternativen Ausführungen können die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt stattfinden. Zwei nacheinander gezeigte Blöcke können zum Beispiel in Wirklichkeit im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal je nach entsprechender Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es ist ferner anzumerken, dass jeder Block der Blockschaltbilder bzw. Schaubilder und/oder der Ablaufpläne sowie Kombinationen aus Blöcken in den Blockschaltbildern bzw. Schaubildern und/oder den Ablaufplänen durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die festgelegten Funktionen oder Schritte durchführen, oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.
Cloud-Computing
Es sei von vornherein klargestellt, dass das Umsetzen der hierin angeführten Lehren nicht auf eine Cloud-Computing-Umgebung beschränkt ist, obwohl diese Offenbarung eine ausführliche Beschreibung von Cloud-Computing enthält. Stattdessen können Ausführungsformen der vorliegenden Erfindung gemeinsam mit jeder beliebigen Art von jetzt bekannter oder später erfundener Datenverarbeitungsumgebung umgesetzt werden.
Cloud-Computing ist ein Servicebereitstellungsmodell zum Ermöglichen eines problemlosen bedarfsgesteuerten Netzwerkzugriffs auf einen gemeinsam genutzten Pool von konfigurierbaren Datenverarbeitungsressourcen (z.B. Netzwerke, Netzwerkbandbreite, Server, Verarbeitung, Hauptspeicher, Speicher, Anwendungen, virtuelle Maschinen und Dienste), die mit minimalem Verwaltungsaufwand bzw. minimaler Interaktion mit einem Anbieter des Service schnell bereitgestellt und freigegeben werden können. Dieses Cloud-Modell kann mindestens fünf Eigenschaften enthalten, mindestens drei Dienstmodelle und mindestens vier I mplementierungsm odelle.
Bei den Eigenschaften handelt es sich um die Folgenden:
On-Demand Self-Service: Ein Cloud-Nutzer kann einseitig automatisch nach Bedarf für Datenverarbeitungsfunktionen wie Serverzeit und Netzwerkspeicher sorgen, ohne dass eine menschliche Interaktion mit dem Anbieter der Dienste erforderlich ist.
Broad Network Access: Es sind Funktionen über ein Netzwerk verfügbar, auf die durch Standardmechanismen zugegriffen wird, welche die Verwendung durch heterogene Thin- oder Thick-Client-Plattformen (z.B. Mobiltelefone, Laptops und PDAs) unterstützen.
Resource-Pooling: Die Datenverarbeitungsressourcen des Anbieters werden zusammengeschlossen, um mehreren Nutzern unter Verwendung eines Multi-Tenant-Modells zu dienen, wobei verschiedene physische und virtuelle Ressourcen dynamisch nach Bedarf zugewiesen und neu zugewiesen werden. Es gibt eine gefühlte Standortunabhängigkeit, da der Nutzer allgemein keine Kontrolle bzw. Kenntnis über den genauen Standort der bereitgestellten Ressourcen hat, aber in der Lage sein kann, einen Standort auf einer höheren Abstraktionsebene festzulegen (z.B. Land, Staat oder Rechenzentrum).
Rapid Elasticity: Funktionen können für eine schnelle horizontale Skalierung (scale out) schnell und elastisch bereitgestellt werden, in einigen Fällen auch automatisch, und für ein schnelles Scale-in schnell freigegeben werden. Für den Nutzer erscheinen die für das Bereitstellen verfügbaren Funktionen häufig unbegrenzt und sie können jederzeit in jeder beliebigen Menge gekauft werden.
Measured Service: Cloud-Systeme steuern und optimieren die Verwendung von Ressourcen automatisch, indem sie eine Messfunktion auf einer gewissen Abstraktionsebene nutzen, die für die Art von Dienst geeignet ist (z.B. Speicher, Verarbeitung, Bandbreite sowie aktive Benutzerkonten). Der Ressourcen-Verbrauch kann überwacht, gesteuert und gemeldet werden, wodurch sowohl für den Anbieter als auch für den Nutzer des verwendeten Dienstes Transparenz geschaffen wird.
Bei den Dienstmodellen handelt es sich um die Folgenden:
Software as a Service (SaaS): Die dem Nutzer bereitgestellte Funktion besteht darin, die in einer Cloud-Infrastruktur laufenden Anwendungen des Anbieters zu verwenden. Die Anwendungen sind über eine Thin-Client-Schnittstelle wie einen Web-Browser (z.B. auf dem Web beruhende E-Mail) von verschiedenen Client-Einheiten her zugänglich. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, darunter das Netzwerk, Server, Betriebssysteme, Speicher bzw. sogar einzelne Anwendungsfunktionen, mit der möglichen Ausnahme von eingeschränkten benutzerspezifischen Anwendungskonfigurationseinstellungen.
Platform as a Service (PaaS): Die dem Nutzer bereitgestellte Funktion besteht darin, durch einen Nutzer erstellte bzw. erhaltene Anwendungen, die unter Verwendung von durch den Anbieter unterstützten Programmiersprachen und Tools erstellt wurden, in der Cloud-Infrastruktur einzusetzen. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, darunter Netzwerke, Server, Betriebssysteme bzw. Speicher, hat aber die Kontrolle über die eingesetzten Anwendungen und möglicherweise über Konfigurationen des Application Hosting Environment.
Infrastructure as a Service (IaaS): Die dem Nutzer bereitgestellte Funktion besteht darin, Verarbeitungs-, Speicher-, Netzwerk- und andere grundlegende Datenverarbeitungsressourcen bereitzustellen, wobei der Nutzer in der Lage ist, beliebige Software einzusetzen und auszuführen, zu der Betriebssysteme und Anwendungen gehören können. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, hat aber die Kontrolle über Betriebssysteme, Speicher, eingesetzte Anwendungen und möglicherweise eine eingeschränkte Kontrolle über ausgewählte Netzwerkkomponenten (z.B. Host-Firewalls).
Bei den Einsatzmodellen handelt es sich um die Folgenden:
Private Cloud: Die Cloud-Infrastruktur wird einzig und allein für eine Organisation betrieben. Sie kann durch die Organisation oder einen Dritten verwaltet werden und kann sich in den eigenen Räumen oder in fremden Räumen befinden.
Community Cloud: Die Cloud-Infrastruktur wird von mehreren Organisationen gemeinsam genutzt und unterstützt eine spezielle Benutzergemeinschaft, die gemeinsame Angelegenheiten hat (z.B. Mission, Sicherheitsanforderungen, Richtlinien sowie Überlegungen bezüglich der Einhaltung von Vorschriften). Sie kann durch die Organisationen oder einen Dritten verwaltet werden und kann in den eigenen Räumen oder fremden Räumen stehen.
Public Cloud: Die Cloud-Infrastruktur wird der allgemeinen Öffentlichkeit oder einer großen Industriegruppe zur Verfügung gestellt und sie gehört einer Cloud-Dienste verkaufenden Organisation.
Hybrid Cloud: Die Cloud-Infrastruktur ist eine Zusammensetzung aus zwei oder mehreren Clouds (privat, Benutzergemeinschaft oder öffentlich), die zwar einzelne Einheiten bleiben, aber durch eine standardisierte oder proprietäre Technologie miteinander verbunden sind, die Daten- und Anwendungsportierbarkeit ermöglicht (z.B. Cloud-Zielgruppenverteilung für den Lastenausgleich zwischen Clouds).
Eine Cloud-Computing-Umgebung ist dienstorientiert mit Fokus auf Statusunabhängigkeit, geringer Kopplung, Modularität und semantischer Interoperabilität. Im Herzen von Cloud-Computing liegt eine Infrastruktur, die ein Netzwerk aus zusammengeschalteten Knoten aufweist.
Unter Bezugnahme auf 7 ist die veranschaulichende Cloud-Computing-Umgebung 750 abgebildet. Wie gezeigt ist, weist die Cloud-Computing-Umgebung 750 einen oder mehrere Cloud-Computing-Knoten 600 auf, mit denen von Cloud-Benutzern verwendete lokale Datenverarbeitungseinheiten wie zum Beispiel der elektronische Assistent (PDA, personal digital assistant) oder das Mobiltelefon 754A , der Desktop-Computer 754B , der Laptop-Computer 754C und/oder das Automobil-Computer-System 754N Daten austauschen können. Die Knoten 600 können miteinander Daten austauschen. Sie können physisch oder virtuell in ein oder mehrere Netzwerke wie private, Benutzergemeinschafts-, öffentliche oder hybride Clouds gruppiert werden (nicht gezeigt), wie vorstehend beschrieben wurde, oder in eine Kombination daraus. Dies ermöglicht es der Cloud-Computing-Umgebung 750 , Infrastruktur, Plattformen und/oder Software als Dienst anzubieten, für die ein Cloud-Nutzer keine Ressourcen auf einer lokalen Datenverarbeitungseinheit vorhalten muss. Es sei darauf hingewiesen, dass die Arten von in 7 gezeigten Datenverarbeitungseinheiten 754A bis N lediglich veranschaulichend sein sollen und dass die Datenverarbeitungsknoten 600 und die Cloud-Computing-Umgebung 750 über eine beliebige Art Netzwerk und/oder über eine beliebige Art von über ein Netzwerk aufrufbarer Verbindung (z.B. unter Verwendung eines Web-Browsers) mit einer beliebigen Art von computergestützter Einheit Daten austauschen können.
Unter Bezugnahme auf 8 wird ein Satz von funktionalen Abstraktionsschichten gezeigt, die durch die Cloud-Computing-Umgebung 750 (7 ) bereitgestellt werden. Es sollte von vornherein klar sein, dass die in 8 gezeigten Komponenten, Schichten und Funktionen lediglich veranschaulichend sein sollen und Ausführungsformen der Erfindung nicht darauf beschränkt sind. Wie abgebildet ist, werden die folgenden Schichten und entsprechenden Funktionen bereitgestellt:
- Eine Hardware- und Software-Schicht
860 enthält Hardware- und Software-Komponenten. Zu Beispielen für Hardware-Komponenten gehören: Mainframe-Computer861 ; auf der RISC- (Reduced Instruction Set Computer) Architektur beruhende Server862 ; Server863 ; Blade-Server864 ; Speichereinheiten865 ; und Netzwerke sowie Netzwerkkomponenten866 . In einigen Ausführungsformen beinhalten Software-Komponenten eine Netzwerk-Anwendungsserver-Software867 und eine Datenbank-Software868 .
Die Virtualisierungsschicht 870 stellt eine Abstraktionsschicht bereit, aus der die folgenden Beispiele für virtuelle Einheiten bereitgestellt werden können: virtuelle Server 871 , virtueller Speicher 872 , virtuelle Netzwerke 873 , darunter virtuelle private Netzwerke, virtuelle Anwendungen und Betriebssysteme 874 ; und virtuelle Clients 875 .
In einem Beispiel kann die Verwaltungsschicht 880 die nachfolgend beschriebenen Funktionen bereitstellen. Eine Ressourcen-Bereitstellung 881 stellt die dynamische Beschaffung von Datenverarbeitungsressourcen sowie anderen Ressourcen bereit, die zum Durchführen von Aufgaben innerhalb der Cloud-Computing-Umgebung verwendet werden. Ein Messen und eine Preisfindung 882 stellen die Kostenverfolgung beim Verwenden von Ressourcen innerhalb der Cloud-Computing-Umgebung sowie die Abrechnung oder Rechnungsstellung für den Verbrauch dieser Ressourcen bereit. In einem Beispiel können diese Ressourcen Anwendungs-Software-Lizenzen aufweisen. Die Sicherheit stellt die Identitätsüberprüfung für Cloud-Nutzer und Aufgaben sowie Schutz für Daten und andere Ressourcen bereit. Ein Benutzerportal 883 stellt Nutzern und Systemadministratoren den Zugang zu der Cloud-Computing-Umgebung bereit. Eine Verwaltung des Dienstumfangs 884 stellt die Zuordnung und Verwaltung von Cloud-Computing-Ressourcen bereit, so dass die benötigten Dienstziele erreicht werden. Ein Planen und Erfüllen von Vereinbarungen zum Dienstumfang (SLA, Service Level Agreement) 885 stellt die Anordnung vorab und die Beschaffung von Cloud-Computing-Ressourcen, für die eine zukünftige Anforderung vorausgesehen wird, gemäß einem SLA bereit.
Eine Arbeitslastschicht 890 stellt Beispiele für die Funktionalität bereit, für welche die Cloud-Computing-Umgebung verwendet werden kann. Zu Beispielen für Arbeitslasten und Funktionen, die von dieser Schicht bereitgestellt werden können, gehören: Abbildung und Navigation 891 ; Software-Entwicklung und Lebenszyklusverwaltung 892 ; Bereitstellung von Ausbildung in virtuellen Klassenzimmern 893 ; Datenanalytikverarbeitung 894 ; Transaktionsverarbeitung 895 ; und Einsatz- und Verbindungsfunktionalität 896 für den sicheren Einsatz über Einsatzorte hinweg.
Die Beschreibungen der verschiedenen Ausführungsformen der vorliegenden Erfindung wurden zum Zwecke der Veranschaulichung aufgeführt, sollen jedoch nicht gesamthaft stehen für bzw. begrenzt sein auf die offenbarten Ausführungsformen. Für Fachleute werden viele Abänderungen und Abweichungen ersichtlich sein, ohne von dem Umfang und dem Gedanken der beschriebenen Ausführungsformen abzuweichen. Die hierin verwendete Terminologie wurde gewählt, um die Grundgedanken der Ausführungsformen, die praktische Anwendung oder technische Verbesserung von auf dem Markt vorgefundenen Technologien bestmöglich zu erläutern oder um es anderen Fachleuten zu ermöglichen, die hierin offenbarten Ausführungsformen zu verstehen.
Die Beschreibungen der verschiedenen Ausführungsformen der vorliegenden Erfindung wurden zum Zwecke der Veranschaulichung aufgeführt, sollen jedoch nicht gesamthaft stehen für bzw. begrenzt sein auf die offenbarten Ausführungsformen. Für Fachleute werden viele Abänderungen und Abweichungen ersichtlich sein, ohne von dem Umfang und dem Gedanken der beschriebenen Ausführungsformen abzuweichen. Die hierin verwendete Terminologie wurde gewählt, um die Grundgedanken der Ausführungsformen, die praktische Anwendung oder technische Verbesserung von auf dem Markt vorgefundenen Technologien bestmöglich zu erläutern oder um es anderen Fachleuten zu ermöglichen, die hierin offenbarten Ausführungsformen zu verstehen.
Claims (17)
- Auf einem Computer ausgeführtes Verfahren für den sicheren Einsatz einer Anwendung über Einsatzorte hinweg, aufweisend: Bereitstellen einer Anwendung zur Analyse, wobei die Anwendung in der Lage ist, in Verarbeitungsknoten geteilt zu werden, die möglicherweise an verschiedenen Orten eingesetzt werden, und wobei die Anwendung Nachrichten beruhend auf Nachrichtenmodellen verarbeitet, die Anmerkungen aufweisen, die Beschränkungen für den Einsatz von Daten in gegebenen Datenaspekten festlegen, wobei zu Datenaspekten gehören: eine gesamte Nachricht oder Datenfelder, Datenelemente oder Datenstrukturen der Nachricht, wobei es sich bei der Anwendung um eine verteilte Anwendung handelt, die Verarbeitungsknoten aufweist, die in der Lage sind, über verteilte Ressourcen hinweg eingesetzt zu werden; Analysieren der Anwendung, um Verarbeitungsknoten zu erkennen, die auf die gegebenen Datenaspekte mit Einsatzbeschränkungen verweisen; Ermitteln einer Einschränkung für einen Verarbeitungsknoten beruhend auf den Einsatzbeschränkungen der verwiesenen Datenaspekte; Kennzeichnen von Verarbeitungsknoten mit einschränkenden Metadaten entsprechend den in dem Nachrichtenmodell angemerkten Einsatzbeschränkungen, welche die gegebenen Datenaspekte betreffen, auf die durch den Verarbeitungsknoten verwiesen wird; und Einsetzen jedes Verarbeitungsknotens der Anwendung entsprechend der ermittelten Einschränkung, wobei das Analysieren und Ermitteln vor dem Einsatz der Anwendung ausgeführt wird.
- Verfahren nach
Anspruch 1 , wobei das Analysieren und Ermitteln dynamisch beim Einsatz der Anwendung ausgeführt wird. - Verfahren nach
Anspruch 1 , wobei das Einsetzen an gekennzeichneten Verarbeitungsknoten durch Lesen der einschränkenden Metadaten und Einsetzen jedes Verarbeitungsknotens entsprechend der Einschränkung ausgeführt wird. - Verfahren nach
Anspruch 1 , beinhaltend: Verfolgen von Datenaspekten mit Einsatzbeschränkungen; Ermitteln, ob ein Datenaspekt mit Einsatzbeschränkungen zu einem Zieldatenaspekt verschoben wird, der keine Einsatzbeschränkungen aufweist; und Aufzeichnen, dass der Zieldatenaspekt Einsatzbeschränkungen aufweist. - Verfahren nach
Anspruch 4 , wobei das Analysieren der Anwendung, um Verarbeitungsknoten zu erkennen, die auf die gegebenen Datenaspekte mit Einsatzbeschränkungen verweisen, das Ermitteln beinhaltet, ob ein gegebener Datenaspekt als Einsatzbeschränkungen aufweisend verfolgt wird. - Verfahren nach
Anspruch 1 , beinhaltend: Zugreifen auf die Nachrichtenmodelle, um die in dem Nachrichtenmodell für gegebene Datenaspekte angemerkten Einsatzbeschränkungen zu ermitteln. - Verfahren nach
Anspruch 4 , beinhaltend: Zugreifen auf Verfolgungsdaten, um Einsatzbeschränkungen für gegebene Datenaspekte zu ermitteln. - Verfahren nach
Anspruch 1 , wobei ein Logikbruch zwischen den Nachrichtenmodellen und einem Code der Anwendung bereitgestellt wird, wodurch ermöglicht wird, dass Einsatzbeschränkungen lediglich in dem Nachrichtenmodell festgelegt werden. - Verfahren nach
Anspruch 1 , wobei die Anwendung ein Integrationsablauf mit Verarbeitungsknoten ist, die eine oder mehrere eingehende Schnittstellen und eine oder mehrere ausgehende Schnittstellen aufweisen, und wobei das Analysieren der Anwendung, um Verarbeitungsknoten zu erkennen, die auf die gegebenen Datenaspekte verweisen, das Ermitteln beinhaltet, ob eine eingehende Schnittstelle oder eine ausgehende Schnittstelle die gegebenen Datenaspekte mit Einsatzbeschränkungen enthält. - Verfahren nach
Anspruch 1 , wobei die Anwendung in der Lage ist, in einer hybriden Cloud-Umgebung eingesetzt zu werden, und sich die Einsatzbeschränkungen auf Einsatzorte in der hybriden Cloud-Umgebung beziehen, zu der eine oder mehrere aus einer Gruppe der Folgenden gehören: lokale Client-Bereitstellung, Vor-Ort-Bereitstellung, Einsatz innerhalb eines Unternehmens, Einsatz innerhalb eines geografischen Ortes oder Einsatz in einer öffentlichen Cloud. - System für den sicheren Einsatz einer Anwendung über Einsatzorte hinweg, aufweisend: einen Prozessor und einen Hauptspeicher, die konfiguriert sind zum: Empfangen einer Anwendung zur Analyse, wobei die Anwendung in der Lage ist, in Verarbeitungsknoten geteilt zu werden, die möglicherweise an verschiedenen Orten eingesetzt werden, und wobei die Anwendung Nachrichten beruhend auf Nachrichtenmodellen verarbeitet, die Anmerkungen aufweisen, die Beschränkungen für den Einsatz von Daten in gegebenen Datenaspekten festlegen, wobei zu Datenaspekten gehören: eine gesamte Nachricht oder Datenfelder, Datenelemente oder Datenstrukturen der Nachricht, wobei es sich bei der Anwendung um eine verteilte Anwendung handelt, die Verarbeitungsknoten aufweist, die in der Lage sind, über verteilte Ressourcen hinweg eingesetzt zu werden; Analysieren der Anwendung, um Verarbeitungsknoten zu erkennen, die auf die gegebenen Datenaspekte mit Einsatzbeschränkungen verweisen; Ermitteln einer Einschränkung für einen Verarbeitungsknoten beruhend auf den Einsatzbeschränkungen der verwiesenen Datenaspekte; Kennzeichnen von Verarbeitungsknoten mit einschränkenden Metadaten entsprechend den in dem Nachrichtenmodell angemerkten Einsatzbeschränkungen, welche die gegebenen Datenaspekte betreffen, auf die durch den Verarbeitungsknoten verwiesen wird; und Einsetzen jedes Verarbeitungsknotens der Anwendung entsprechend der ermittelten Einschränkung, wobei das Analysieren und Ermitteln vor dem Einsatz der Anwendung ausgeführt wird.
- System nach
Anspruch 11 , wobei das Analysieren und Ermitteln dynamisch beim Einsatz der Anwendung ausgeführt wird. - System nach
Anspruch 11 , wobei das Einsetzen an gekennzeichneten Verarbeitungsknoten durch Lesen der einschränkenden Metadaten und Einsetzen jedes Verarbeitungsknotens entsprechend der Einschränkung ausgeführt wird. - System nach
Anspruch 11 , bei dem der Prozessor ferner konfiguriert ist zum: Verfolgen von Datenaspekten mit Einsatzbeschränkungen; Ermitteln, ob ein Datenaspekt mit Einsatzbeschränkungen zu einem Zieldatenaspekt verschoben wird, der keine Einsatzbeschränkungen aufweist; und Aufzeichnen, dass der Zieldatenaspekt Einsatzbeschränkungen aufweist. - System nach
Anspruch 14 , wobei das Analysieren der Anwendung, um Verarbeitungsknoten zu erkennen, die auf die gegebenen Datenaspekte mit Einsatzbeschränkungen verweisen, das Ermitteln beinhaltet, ob ein gegebener Datenaspekt als Einsatzbeschränkungen aufweisend verfolgt wird. - System nach
Anspruch 11 , wobei der Prozessor darüber hinaus konfiguriert ist zum Zugreifen auf die Nachrichtenmodelle, um die in dem Nachrichtenmodell für gegebene Datenaspekte angemerkten Einsatzbeschränkungen zu ermitteln. - Computerprogrammprodukt für den sicheren Einsatz einer Anwendung über Einsatzorte hinweg, wobei das Computerprogrammprodukt ein durch einen Computer lesbares Speichermedium aufweist, auf dem Programmanweisungen enthalten sind, wobei die Programmanweisungen durch einen Prozessor ausführbar sind, um den Prozessor zu veranlassen zum: Bereitstellen einer Anwendung zur Analyse, wobei die Anwendung in der Lage ist, in Verarbeitungsknoten geteilt zu werden, die möglicherweise an verschiedenen Orten eingesetzt werden, und wobei die Anwendung Nachrichten beruhend auf Nachrichtenmodellen verarbeitet, die Anmerkungen aufweisen, die Beschränkungen für den Einsatz von Daten in gegebenen Datenaspekten festlegen, wobei zu Datenaspekten gehören: eine gesamte Nachricht oder Datenfelder, Datenelemente oder Datenstrukturen der Nachricht, wobei es sich bei der Anwendung um eine verteilte Anwendung handelt, die Verarbeitungsknoten aufweist, die in der Lage sind, über verteilte Ressourcen hinweg eingesetzt zu werden; Analysieren der Anwendung, um Verarbeitungsknoten zu erkennen, die auf die gegebenen Datenaspekte mit Einsatzbeschränkungen verweisen; Ermitteln einer Einschränkung für einen Verarbeitungsknoten beruhend auf den Einsatzbeschränkungen der verwiesenen Datenaspekte; Kennzeichnen von Verarbeitungsknoten mit einschränkenden Metadaten entsprechend den in dem Nachrichtenmodell angemerkten Einsatzbeschränkungen, welche die gegebenen Datenaspekte betreffen, auf die durch den Verarbeitungsknoten verwiesen wird; und Einsetzen jedes Verarbeitungsknotens der Anwendung entsprechend der ermittelten Einschränkung, wobei das Analysieren und Ermitteln vor dem Einsatz der Anwendung ausgeführt wird.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/953,353 US9398087B1 (en) | 2015-11-29 | 2015-11-29 | Secure deployment of an application across deployment locations |
US14/953,353 | 2015-11-29 | ||
PCT/IB2016/057007 WO2017089943A1 (en) | 2015-11-29 | 2016-11-21 | Secure deployment of an application across deployment locations |
Publications (2)
Publication Number | Publication Date |
---|---|
DE112016003355T5 DE112016003355T5 (de) | 2018-04-05 |
DE112016003355B4 true DE112016003355B4 (de) | 2021-10-07 |
Family
ID=56381819
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE112016003355.9T Active DE112016003355B4 (de) | 2015-11-29 | 2016-11-21 | Sicherer Einsatz einer Anwendung über Einsatzorte hinweg |
Country Status (6)
Country | Link |
---|---|
US (1) | US9398087B1 (de) |
JP (1) | JP6714693B2 (de) |
CN (1) | CN108140007B (de) |
DE (1) | DE112016003355B4 (de) |
GB (1) | GB2561759B (de) |
WO (1) | WO2017089943A1 (de) |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10318265B1 (en) * | 2015-10-09 | 2019-06-11 | Amazon Technologies, Inc. | Template generation for deployable units |
US9398087B1 (en) * | 2015-11-29 | 2016-07-19 | International Business Machines Corporation | Secure deployment of an application across deployment locations |
US20180329700A1 (en) * | 2015-11-30 | 2018-11-15 | Hewlett Packard Enterprise Development Lp | Application migration system |
US10601871B2 (en) | 2017-01-18 | 2020-03-24 | International Business Machines Corporation | Reconfiguration of security requirements for deployed components of applications |
US10579511B2 (en) | 2017-05-10 | 2020-03-03 | Bank Of America Corporation | Flexible testing environment using a cloud infrastructure—cloud technology |
US10419539B2 (en) | 2017-05-19 | 2019-09-17 | Bank Of America Corporation | Data transfer path selection |
US10462230B2 (en) | 2017-05-23 | 2019-10-29 | Bank Of America Corporation | Migrating sessions using a private cloud-cloud technology |
US10320920B2 (en) | 2017-05-23 | 2019-06-11 | Bank Of America Corporation | Automatic migration of communication sessions using a private cloud-cloud technology |
US10461898B2 (en) | 2017-06-08 | 2019-10-29 | Bank Of America Corporation | Parallel data transmission |
US10608793B2 (en) | 2017-06-08 | 2020-03-31 | Bank Of America Corporation | Serial data transmission |
US10481954B2 (en) | 2017-06-09 | 2019-11-19 | Bank Of America Corporation | System and method of managing computing resources |
US10657615B2 (en) | 2017-06-09 | 2020-05-19 | Bank Of America Corporation | System and method of allocating computing resources based on jurisdiction |
US10796304B2 (en) | 2017-06-12 | 2020-10-06 | Bank Of America Corporation | System and method of managing computing resources |
US10423590B2 (en) | 2017-06-23 | 2019-09-24 | Bank Of America Corporation | System and method of managing data in a distributed computing environment |
US10659451B2 (en) | 2017-07-18 | 2020-05-19 | Bank Of America Corporation | System and method for injecting a tag into a computing resource |
US10462126B2 (en) | 2017-08-17 | 2019-10-29 | Bank Of America Corporation | Self-adjusting multifactor network authentication |
US10462665B2 (en) | 2017-08-17 | 2019-10-29 | Bank Of America Corporation | Multifactor network authentication |
US11537445B2 (en) | 2019-09-17 | 2022-12-27 | International Business Machines Corporation | Dynamic integration flows in hybrid cloud environments |
US20210390197A1 (en) | 2019-09-25 | 2021-12-16 | Hitachi, Ltd. | Computer System, Data Control Method, and Storage Medium |
US11169864B2 (en) * | 2019-11-21 | 2021-11-09 | Spillbox Inc. | Systems, methods and computer program products for application environment synchronization between remote devices and on-premise devices |
US11756112B2 (en) | 2020-06-10 | 2023-09-12 | Bank Of America Corporation | Settings optimization engine using artificial intelligence to enhance client privacy |
CN113973127B (zh) * | 2020-07-24 | 2024-03-19 | 中移(苏州)软件技术有限公司 | 一种网络部署方法、装置及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140101300A1 (en) | 2012-10-10 | 2014-04-10 | Elisha J. Rosensweig | Method and apparatus for automated deployment of geographically distributed applications within a cloud |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050277428A1 (en) * | 2004-05-13 | 2005-12-15 | International Business Machines Corporation | Location-based control of wireless communications device features |
WO2007099276A1 (en) * | 2006-03-02 | 2007-09-07 | British Telecommunications Public Limited Company | Message processing methods and systems |
US9049306B1 (en) * | 2008-11-30 | 2015-06-02 | Nadejda V. Gueorguieva | Apparatus and methods for remote control of access to facilities |
US20120005724A1 (en) | 2009-02-09 | 2012-01-05 | Imera Systems, Inc. | Method and system for protecting private enterprise resources in a cloud computing environment |
CN102004886B (zh) * | 2010-11-15 | 2012-07-25 | 上海安纵信息科技有限公司 | 一种基于操作系统虚拟化原理的数据防泄漏方法 |
US8549539B2 (en) * | 2010-12-13 | 2013-10-01 | International Business Machines Corporation | Programmatic modification of a message flow during runtime |
US9519520B2 (en) * | 2011-10-25 | 2016-12-13 | Viasat, Inc. | Federated, policy-driven service meshes for distributed software systems |
US8434080B2 (en) | 2011-12-22 | 2013-04-30 | Software Ag Usa, Inc. | Distributed cloud application deployment systems and/or associated methods |
US8984132B2 (en) * | 2012-01-23 | 2015-03-17 | International Business Machines Corporation | System and method for supporting secure application deployment in a cloud |
US9959273B2 (en) | 2012-04-26 | 2018-05-01 | International Business Machines Corporation | Enterprise-level data protection with variable data granularity and data disclosure control with hierarchical summarization, topical structuring, and traversal audit |
US20140075502A1 (en) * | 2012-09-11 | 2014-03-13 | Selim Aissi | Resource management of execution environments |
US9832205B2 (en) * | 2013-03-15 | 2017-11-28 | International Business Machines Corporation | Cross provider security management functionality within a cloud service brokerage platform |
US9344516B2 (en) | 2013-05-30 | 2016-05-17 | Zentera Systems, Inc. | Interlocking applications and files |
WO2015006170A1 (en) * | 2013-07-12 | 2015-01-15 | FREILICH, Arthur | A computer system storing content into application independent objects |
US20150134424A1 (en) * | 2013-11-14 | 2015-05-14 | Vmware, Inc. | Systems and methods for assessing hybridization of cloud computing services based on data mining of historical decisions |
US9411611B2 (en) * | 2014-05-02 | 2016-08-09 | International Business Machines Corporation | Colocation and anticolocation in colocation data centers via elastic nets |
US9398087B1 (en) * | 2015-11-29 | 2016-07-19 | International Business Machines Corporation | Secure deployment of an application across deployment locations |
-
2015
- 2015-11-29 US US14/953,353 patent/US9398087B1/en not_active Expired - Fee Related
-
2016
- 2016-11-21 JP JP2018517828A patent/JP6714693B2/ja active Active
- 2016-11-21 WO PCT/IB2016/057007 patent/WO2017089943A1/en active Application Filing
- 2016-11-21 DE DE112016003355.9T patent/DE112016003355B4/de active Active
- 2016-11-21 CN CN201680061027.9A patent/CN108140007B/zh active Active
- 2016-11-21 GB GB1810593.2A patent/GB2561759B/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140101300A1 (en) | 2012-10-10 | 2014-04-10 | Elisha J. Rosensweig | Method and apparatus for automated deployment of geographically distributed applications within a cloud |
Also Published As
Publication number | Publication date |
---|---|
CN108140007B (zh) | 2021-10-01 |
DE112016003355T5 (de) | 2018-04-05 |
GB2561759A (en) | 2018-10-24 |
GB201810593D0 (en) | 2018-08-15 |
CN108140007A (zh) | 2018-06-08 |
WO2017089943A1 (en) | 2017-06-01 |
GB2561759B (en) | 2019-05-08 |
US9398087B1 (en) | 2016-07-19 |
JP6714693B2 (ja) | 2020-06-24 |
JP2018535480A (ja) | 2018-11-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE112016003355B4 (de) | Sicherer Einsatz einer Anwendung über Einsatzorte hinweg | |
DE112016003120B4 (de) | Umleiten einer Kopie beim Schreiben | |
DE112020003820T5 (de) | Erkennung von Anomalien und Abweichungen unter Verwendung eines domänenindizierten Einschränkungs-Repository | |
DE112019001433T5 (de) | Datenanonymisierung | |
DE112021002245T5 (de) | Verhindern einer unberechtigten bereitstellung von paketen in clustern | |
DE112019002235T5 (de) | Einbinden eines wörterbuch-bearbeitungssystems in ein text mining | |
DE112017005588T5 (de) | Speichern und abrufen von eingeschränkten datensätzen in und aus einem cloud-netzwerk mit nichteingeschränkten datensätzen | |
DE112018005898T5 (de) | Dynamische bereitstellung von software-funktionen | |
DE112021003401T5 (de) | Schattenexperimente für serverlose multi-tenant-cloud-dienste | |
DE102016103713A1 (de) | Erkennung virtueller Maschineneinheiten auf der Grundlage eines Katalogs | |
DE102016105062A1 (de) | Nähengestützte Berechtigungsprüfung für einheitenübergreifend verteilte Daten | |
DE112020000891T5 (de) | Erzeugung von nativem code für cloud-services | |
DE102013206354A1 (de) | Adaptive Bewertung der Objektrelevanz auf der Grundlage dynamischer Benutzereigenschaften | |
DE112017005022T5 (de) | Umladen der Bandverarbeitung auf Objektspeicher | |
DE112019003130T5 (de) | Hsm-selbstzerstörung in einer hybriden cloud-kms-lösung | |
DE112017005015T5 (de) | Verarbeiten von gleichgeordneten Aufrufen (SIBLING CALLS) | |
DE112019002052T5 (de) | Datenschutzsensibilisierung bei der bereitstellung von arbeitslasten | |
DE102014116744A1 (de) | Management von Informationstechnologieressourcen | |
DE112021005927T5 (de) | Patchen von arbeitsabläufen | |
DE112021004663T5 (de) | Verteiltes, ressourcen berücksichtigendes training von pipelines desmaschinellen lernens | |
DE112021004695T5 (de) | Umgang mit zurückstellbaren netzwerkanforderungen | |
DE102021125847A1 (de) | Auf blockchain beruhende reservierung und delegierung von diensten | |
DE102021123058A1 (de) | Maskieren von sensiblen informationen in einem dokument | |
DE112021004577T5 (de) | Verwalten eines aufgabenablaufs in einer edge-datenverarbeitungsumgebung | |
DE102016204594A1 (de) | Abgleichen von datenquellen ohne tags mit datenanalyseanwendungen ohne tags |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R012 | Request for examination validly filed | ||
R016 | Response to examination communication | ||
R018 | Grant decision by examination section/examining division | ||
R084 | Declaration of willingness to licence | ||
R020 | Patent grant now final |