DE202020005700U1 - Aufrufen externer Funktionen aus einem Datenlager - Google Patents

Aufrufen externer Funktionen aus einem Datenlager Download PDF

Info

Publication number
DE202020005700U1
DE202020005700U1 DE202020005700.2U DE202020005700U DE202020005700U1 DE 202020005700 U1 DE202020005700 U1 DE 202020005700U1 DE 202020005700 U DE202020005700 U DE 202020005700U DE 202020005700 U1 DE202020005700 U1 DE 202020005700U1
Authority
DE
Germany
Prior art keywords
computing service
data
network
internet
request
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
Application number
DE202020005700.2U
Other languages
English (en)
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Snowflake Inc
Original Assignee
Snowflake Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Snowflake Inc filed Critical Snowflake Inc
Publication of DE202020005700U1 publication Critical patent/DE202020005700U1/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • G06F9/548Object oriented; Remote method invocation [RMI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • G06F16/2448Query languages for particular applications; for extensibility, e.g. user defined types
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
    • G06F16/84Mapping; Conversion
    • G06F16/86Mapping to a database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • G06F16/972Access to data in other repository systems, e.g. legacy data or dynamic Web page generation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0407Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the identity of one or more communicating identities is hidden
    • H04L63/0414Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the identity of one or more communicating identities is hidden during transmission, i.e. party's identity is protected against eavesdropping, e.g. by using temporary identifiers, but is known to the other party or parties involved in the communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/068Network architectures or network communication protocols for network security for supporting key management in a packet data network using time-dependent keys, e.g. periodically changing keys
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • H04L63/0846Network architectures or network communication protocols for network security for authentication of entities using passwords using time-dependent-passwords, e.g. periodically changing passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/108Network architectures or network communication protocols for network security for controlling access to devices or network resources when the policy decisions are valid for a limited amount of time
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/565Conversion or adaptation of application format or content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/549Remote execution

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Information Transfer Between Computers (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Telephone Function (AREA)
  • Exchange Systems With Centralized Control (AREA)
  • Cash Registers Or Receiving Machines (AREA)
  • Electrochromic Elements, Electrophoresis, Or Variable Reflection Or Absorption Elements (AREA)

Abstract

Netzbasiertes Datenlagersystem, das Folgendes umfasst:
einen Rechendienstmanager, der mindestens einen Hardware-Prozessor umfasst, wobei der Rechendienstmanager ausgelegt ist, Operationen durchzuführen, die Folgendes umfassen:
Empfangen von einer Recheneinrichtung einer Abfrage, die auf eine Funktion, die einer entfernten Software-Komponente zugeordnet ist, Bezug nimmt; und
Erhalten von einer Cloud-Computing-Dienstplattform, die mindestens eine netzzugängliche Speichereinrichtung umfasst, vorläufiger Sicherheitszugangsdaten, die einer Rolle mit zugeordneten Privilegien, Aufrufe zu einem Endpunkt, der der entfernten Software-Komponente entspricht, zu senden, entsprechen, wobei die Cloud-Computing-Dienstplattform vom Rechendienstmanager unabhängig ist; und
eine Ausführungsplattform, die an den Rechendienstmanager gekoppelt ist, wobei die Ausführungsplattform mehrere Rechenknoten umfasst und mindestens einer der Rechenknoten ausgelegt ist, Operationen durchzuführen, die Folgendes umfassen:
Senden zu einem Internet-Anwendungsprogrammierschnittstellen-Managementsystem (Internet-API-Managementsystem) der Cloud-Computing-Dienstplattform einer Anforderung, die, wenn sie durch das Internet-API-Managementsystem empfangen wird, das Internet-API-Managementsystem veranlasst, eine externe Funktionalität, die durch die entfernte Software-Komponente beim Internetendpunkt bereitgestellt wird, in Bezug auf Eingangsdaten, die in der Anforderung enthalten sind, aufzurufen, wobei die Anforderung unter Verwendung der vorläufigen Sicherheitszugangsdaten elektronisch unterzeichnet ist;
Empfangen vom Internet-API-Managementsystem einer Antwort auf die Anforderung, wobei die Antwort Ergebnisdaten umfasst, die ein Ergebnis des Aufrufens der externen Funktionalität umfassen; und
Verarbeiten der Ergebnisdaten gemäß der Abfrage.

Description

  • Diese Anmeldung beansprucht die Priorität der US-Patentoffenlegungsschrift mit der Ifd. Nr. 16/666,911 , eingereicht am 29. Oktober 2019, die hier durch Bezugnahme vollständig mit aufgenommen ist.
  • TECHNISCHES GEBIET
  • Ausführungsformen der Offenbarung beziehen sich im Allgemeinen auf ein netzbasiertes Datenlager und insbesondere auf ein Aufrufen externer Funktionen aus einem netzbasierten Datenlager.
  • Als Gebrauchsmuster zu schützen und Gegenstand eines Gebrauchsmusters sind in Übereinstimmung mit den Anforderungen des Gebrauchsmustergesetzes lediglich Vorrichtungen, die in den beigefügten Ansprüchen definiert sind, jedoch keine Verfahren. Falls in der Beschreibung auf Verfahren Bezug genommen wird, dienen diese Bezüge lediglich dazu, die eine oder die mehreren Vorrichtungen, für die mit den enthaltenen Ansprüchen Schutz ersucht wird, zu veranschaulichen.
  • HINTERGRUND
  • Ein Cloud-Datenlager (das auch als ein „netzbasiertes Datenlager“ oder einfach als ein „Datenlager“ bezeichnet wird) ist ein netzbasiertes System, das zur Analyse und zum Berichten von Daten verwendet wird und eine zentrale Ablage integrierter Daten von einer oder mehreren unterschiedlichen Quellen umfasst. Ein Cloud-Datenlager kann aktuelle und historische Daten speichern, die zum Erstellen von Analyseberichten für ein Unternehmen verwendet werden können. Zu diesem Zweck stellen Datenlager typischerweise Geschäftsanalytikwerkzeuge, Werkzeuge, um Daten in der Ablage zu extrahieren, umzuwandeln und zu laden, und Werkzeuge, um Metadaten zu managen und abzurufen, bereit.
  • In einigen Fällen kann ein Anwender des netzbasierten Datenlagers wünschen, eine Funktionalität, die sich außerhalb des Datenlagersystems befindet, zu verwenden, um Daten, die durch das Datenlager gespeichert werden, zu analysieren oder auf andere Weise zu verarbeiten. Zum Beispiel kann ein Anwender wünschen, eine Funktionalität zu verwenden, die durch eine dritte Instanz (z. B. einen Geocoder einer dritten Instanz) im Kontext des netzbasierten Datenlagers bereitgestellt wird. Als weiteres Beispiel kann ein Anwender wünschen, eine bestehende Geschäftslogik (z. B. eine komplexe Verlustberechnung oder ein Algorithmus für maschinelles Lernen) im Kontext des Datenlagers zu codieren oder wiederzuverwenden. Als noch ein weiteres Beispiel kann ein Anwender wünschen, eine externe Funktionalität wie z. B. ein Benachrichtigungssystem im Kontext eines Datenlagers zu benachrichtigen oder auf andere Weise auszulösen. Als noch ein weiteres Beispiel kann ein Anwender wünschen, Daten aus dem Cloud-Lager in einer Art zu exportieren, die von innerhalb des Kontexts des Datenlagers angesteuert wird. Allerdings stellen herkömmliche Cloud-Datenlager dem Anwender keine Fähigkeit bereit, eine entfernte Software-Komponente (z. B. Code) aufzurufen, die eine derartige Funktionalität bereitstellen kann.
  • Figurenliste
  • Die vorliegende Offenbarung wird aus der genauen Beschreibung, die unten gegeben ist, und aus den begleitenden Zeichnungen verschiedener Ausführungsformen der Offenbarung umfassender verstanden werden.
    • 1 veranschaulicht eine Beispielrechenumgebung, in der ein netzbasiertes Datenlagersystem eine externe Funktionalität, die durch eine entfernte Software-Komponente bereitgestellt wird, aufruft in Übereinstimmung mit einigen Ausführungsformen der vorliegenden Offenbarung.
    • 2 ist ein Datenflussdiagramm, das eine Erstellung eines Integrationsobjekts in der Rechenumgebung in Übereinstimmung mit einigen Ausführungsformen der vorliegenden Offenbarung veranschaulicht.
    • 3 ist ein Datenflussdiagramm, das eine Erstellung eines Funktionsobjekts in der Rechenumgebung in Übereinstimmung mit einigen Ausführungsformen der vorliegenden Offenbarung veranschaulicht.
    • 4 ist ein Datenflussdiagramm, das einen Aufruf einer externen Funktionalität, die durch die entfernte Software-Komponente bereitgestellt wird, durch ein netzbasiertes Datenlager in der Rechenumgebung in Übereinstimmung mit einigen Ausführungsformen der vorliegenden Offenbarung veranschaulicht.
    • 5 ist ein Interaktionsdiagramm, das Interaktionen zwischen Komponenten in der Rechenumgebung beim Erstellen eines Integrationsobjekts in Übereinstimmung mit einigen Ausführungsformen der vorliegenden Offenbarung veranschaulicht.
    • 6 ist ein Interaktionsdiagramm, das Interaktionen zwischen Komponenten in der Rechenumgebung beim Erstellen eines Funktionsobjekt in Übereinstimmung mit einigen Ausführungsformen der vorliegenden Offenbarung veranschaulicht.
    • 7 ist ein Interaktionsdiagramm, das Interaktionen zwischen Komponenten in der Rechenumgebung beim Aufrufen einer externen Funktionalität, die durch die entfernte Software-Komponente bereitgestellt wird, in Übereinstimmung mit einigen Ausführungsformen der vorliegenden Offenbarung veranschaulicht.
    • 8 ist ein Ablaufdiagramm, das Operationen des netzbasierten Datenlagersystems beim Durchführen eines Verfahrens zum Ermöglichen, dass ein netzbasiertes Datenlager eine externe Funktionalität, die durch die entfernte Software-Komponente bereitgestellt wird, aufruft, in Übereinstimmung mit einigen Ausführungsformen der vorliegenden Offenbarung veranschaulicht.
    • 9-11 sind Ablaufdiagramme, die Operationen des netzbasierten Datenlagers beim Durchführen eines Verfahrens zum Aufrufen einer externen Funktionalität, die durch die entfernte Software-Komponente bereitgestellt wird, in Übereinstimmung mit einigen Ausführungsformen der vorliegenden Offenbarung veranschaulichen.
    • 12 ist ein Blockdiagramm, das Komponenten eines Rechendienstmanagers in Übereinstimmung mit einigen Ausführungsformen der vorliegenden Offenbarung veranschaulicht.
    • 13 ist ein Blockdiagramm, das Komponenten einer Ausführungsplattform in Übereinstimmung mit einigen Ausführungsformen der vorliegenden Offenbarung veranschaulicht.
    • 14 veranschaulicht eine schematische Repräsentation einer Maschine in Form eines Computersystems, in dem ein Satz von Befehlen ausgeführt werden kann, um die Maschine zu veranlassen, eine oder mehrere der Methodiken, die hier diskutiert werden, in Übereinstimmung mit einigen Ausführungsformen der vorliegenden Offenbarung durchzuführen.
  • GENAUE BESCHREIBUNG
  • Nun wird auf spezifische Beispielausführungsformen zum Ausführen des Erfindungsgegenstands genau Bezug genommen. Beispiele dieser spezifischen Ausführungsformen sind in den begleitenden Zeichnungen veranschaulicht und spezifische Details werden in der folgenden Beschreibung dargelegt, um ein genaues Verständnis des Gegenstands zu schaffen. Es versteht sich, dass diese Beispiele nicht vorgesehen sind, um den Umfang der Ansprüche auf die veranschaulichten Ausführungsformen zu beschränken. Hingegen sind sie vorgesehen, um Alternativen, Änderungen und Entsprechungen, die im Umfang der Offenbarung enthalten sein können, abzudecken.
  • Wie oben erwähnt stellen herkömmliche netzbasierte Datenlager dem Anwender nicht die Fähigkeit bereit, eine entfernte Software-Komponente, die eine Funktionalität, die sich außerhalb des Datenlagers befindet, aufzurufen. Aspekte der vorliegenden Offenbarung adressieren den oben beschriebenen und weitere Mängel herkömmlicher Datenlager durch Bereitstellen eines netzbasierten Datenlagersystems, das Anwendern eine Fähigkeit bereitstellt, eine externe Funktionalität, die durch eine entfernte Software-Komponente bereitgestellt wird, aufzurufen. Das netzbasierte Datenlagersystem, das hier beschrieben ist, schafft eine Fähigkeit, eine Funktion (z. B. eine Funktion einer strukturierten Abfragesprache (SQL-Funktion)), eine Tabellenfunktion oder eine Prozedur mit entferntem Software-Code, der sich außerhalb des Datenlagers befindet und als eine Internetanwendungsprogrammierschnittstelle (Internet-API) freigelegt ist, zu verbinden.
  • Das netzbasierte Datenlagersystem stellt dem Anwender einen Mechanismus bereit, um Funktionen und gespeicherte Prozeduren zu schreiben, die durch von außen implementierte Internetendpunkte (z. B. Repräsentationszustandsübertragungs-Endpunkte (REST-Endpunkte) des HyperText-Übertragungsprotokolls (HTTP)) in einem von außen gemanagten Internet-API-Managementsystem, das in einer Cloud-Computing-Dienstplattform (z. B. Amazon Web Services® (AWS), Microsoft Azure® oder Google Cloud Services®) bereitgestellt wird, gestützt werden. Anwender sind verantwortlich, Internetendpunkte bereitzustellen und die Endpunkte auf der Grundlage einer Geschäftslogik in der Speicherplattform zu konfigurieren. In einigen Fällen stellt das Internet-API-Managementsystem stellvertretend Anforderungen an Lambda-Funktionen und in weiteren Fällen wandelt das Internet-API-Managementsystem die Anforderungen zu Software-Komponenten einer dritten Instanz um, die sich außerhalb des Datenlagersystems befinden, und leitet sie weiter. Das netzbasierte Datenlagersystem ermöglicht, dass externe Funktionen, die durch diese externen Software-Komponenten bereitgestellt werden, in Abfragen wie z. B. anwenderdefinierten Funktionen, anwenderdefinierten Tabellenfunktionen und gespeicherten Prozeduren verwendet werden.
  • Das netzbasierte Datenlagersystem speichert verschiedene Datenobjekte, um den Aufruf einer externen Funktionalität, die durch entfernte Software-Komponenten bereitgestellt wird, zu ermöglichen. Die Datenobjekte speichern Informationen, die durch das netzbasierte Datenlager verwendet werden, um vorläufige Sicherheitszugangsdaten zu erhalten, die beim Aufrufen der externen Funktionalität mittels eines Internet-API-Managementsystems, das durch eine Cloud-Computing-Plattform bereitgestellt wird, verwendet werden sollen. Während der Ausführung einer Abfrage authentifiziert sich das netzbasierte Datenlagersystem bei einem Zielendpunkt mittels eines Authentifizierungssystems der Cloud-Computing-Dienstplattform unter Verwendung der vorläufigen Sicherheitszugangsdaten und ruft eine Funktionalität beim Endpunkt auf mit Chargen von Zieldaten, die in der Abfrage definiert sind, auf. Zieldaten können z. B. Binärdaten, in JavaScript-Objektnotation codierte Daten (JSON-codierte Daten) oder weitere Textformate wie z. B. die eXtensible-Auszeichnungssprache (XML) umfassen. Zieldaten können in Reihe mit HTTP-Anforderungen/Antworten weitergeleitet werden oder zu einem Speicher, auf den gemeinsam zugegriffen wird, der durch die Cloud-Computing-Dienstplattform (z. B. Amazon® Simple Storage Service (S30)) bereitgestellt wird, geschrieben werden. Anwenderdaten, die durch das netzbasierte Datenlagersystem gespeichert werden, sind in einem Format codiert, das geeignet ist, um durch HTTP-Anforderungen und Antworten weitergeleitet zu werden.
  • Aus der Perspektive eines Anwenders kann externer Code als nahtloser Teil der Datenlagerfunktionalität ähnlich einer intern definierten Funktion oder Prozedur gestaltet werden. Das heißt, das Datenlager kann auf Systeme zugreifen, die durch ihre Natur außerhalb des Datenlagers liegen (z. B. Geocodierungssysteme). Ferner wird Anwendern ermöglicht, beliebigen externen Code zu verwenden, ungeachtet der Sprache, die verwendet wird, um den Code zu verfassen, oder des Systems, in dem der Code ausgeführt wird. Außerdem ermöglicht das netzbasierte Datenlager, das hier beschrieben ist, Anwendern, eine externe Funktionalität aufzurufen, während Sicherheitsbedenken vermieden werden, die sich durch ein Ausführen des Codes im Datenlagersystem entstehen können, und dies in einer Weise durchführen, die zur Funktionalität des Datenlagers orthogonal ist (z. B. kann in beliebigen Anfragen eine externe Funktion verwendet werden). Zusätzlich lagert die Technik zum Aufrufen einer externen Funktionalität aus dem Datenlager sicherheitsrelevante Authentifizierungsinformationen aus, da diese Informationen durch die Cloud-Computing-Dienstplattform statt das netzbasierte Datenlager selbst verarbeitet werden.
  • In einem Beispiel hat ein Anwender des netzbasierten Datenlagers eine Bewertungsfunktion unter Verwendung eines Algorithmus für maschinelles Lernens gebildet und hat eine Bewertungs-API eingesetzt, um Aufrufe der Bewertungsfunktion zu erleichtern. Der Anwender kann eine Funktion im netzbasierten Datenlager an den externen Code binden und eine SQL-Abfrage zum netzbasierten Datenlager ausstellen, die auf die Funktion Bezug nimmt, um einen Satz von Eingangswerten zu bewerten. Wenn die Abfrage ausgeführt wird, greift das netzbasierte Datenlager auf den Satz von Eingangswerten zu, ruft die Bewertungsfunktions-API auf und bezieht die Ergebnisse, die von der externen Bewertungsfunktion empfangen wurden, ein.
  • 1 veranschaulicht eine Beispielrechenumgebung 100, wobei ein netzbasiertes Datenlagersystem 102 eine externe Funktion, die durch eine entfernte Software-Komponente bereitgestellt wird, aufruft, in Übereinstimmung mit einigen Ausführungsformen der vorliegenden Offenbarung. Um ein Verschleiern des Erfindungsgegenstand mit unnötigen Details zu vermeiden, wurden verschiedene Funktionskomponenten, die zum Übermitteln eines Verständnisses des Erfindungsgegenstands nicht relevant sind, aus 1 und den nachfolgenden 2-4 ausgelassen. Allerdings wird ein qualifizierter Fachmann leicht erkennen, dass verschiedene zusätzliche Funktionskomponenten als Teil der Rechenumgebung 100 enthalten sein können, um eine zusätzliche Funktionalität zu ermöglichen, die hier nicht speziell beschrieben ist.
  • Wie gezeigt, umfasst die Rechenumgebung 100 das netzbasierte Datenlagersystem 102, eine Cloud-Computing-Dienstplattform 104 (z. B. AWS®, Microsoft Azure® oder Google Cloud Services®) und eine entfernte Rechenumgebung 106. Das Datenlagersystem 102 ist ein netzbasiertes System, das zum Berichten und zur Analyse integrierter Daten einer oder mehrerer unterschiedlicher Quellen (z. B. die Cloud-Computing-Dienstplattform 104) verwendet wird. Die Cloud-Computing-Dienstplattform 104 umfasst mehrere Rechenmaschinen und stellt dem netzbasierten Datenlagersystem 102 nach Bedarf Computersystembetriebsmittel wie z. B. Datenspeicher und Rechenleistung bereit.
  • Die entfernte Rechenumgebung 106 umfasst eine oder mehrere Rechenmaschinen, die eine entfernte Software-Komponente 108 ausführen, um Anwendern des netzbasierten Datenlagersystems 102 eine zusätzliche Funktionalität bereitzustellen. In einigen Ausführungsformen kann die entfernte Rechenumgebung 106 in der Cloud-Computing-Dienstplattform 104 enthalten sein oder durch sie ausgeführt werden.
  • Die entfernte Software-Komponente 108 umfasst einen Satz maschinenlesbarer Befehle (z. B. Code), die, wenn sie durch die entfernte Rechenumgebung 106 ausgeführt werden, die entfernte Rechenumgebung 106 veranlassen, eine bestimmte Funktionalität bereitzustellen. Die entfernte Software-Komponente 108 kann an Eingangsdaten arbeiten und erzeugt Ergebnisdaten auf der Grundlage des Verarbeitens, des Analysierens oder auf andere Weise Umwandelns der Eingangsdaten. Als Beispiel kann die entfernte Software-Komponente 108 eine Skalarfunktion, eine Tabellenfunktion oder eine gespeicherte Prozedur umfassen. Externe Skalarfunktionen können z. B. als Mechanismus zum Auslösen von Maßnahmen in externen Systemen verwendet werden, was vorhandene Extraktions-, Transformations-, Lade-Pipelines (ETL-Pipelines) verbessern oder vollständig neue Datenverarbeitungsszenarien ermöglichen kann. Zum Beispiel kann eine externe Skalarfunktion verwendet werden, um eine E-Mail oder eine Benachrichtigung zu senden oder einen Trainingsauftrag für maschinelles Lernen in einer Komponente der Cloud-Computing-Dienstplattform 104 zu starten. Externe gespeicherte Prozeduren können z. B. verschachtelte SQL-Abfragen im Kontext derselben Sitzung, die die gespeicherte Prozedur aufgerufen hat, ausführen.
  • Das netzbasierte Datenlagersystem 102 umfasst ein Zugriffsmanagementsystem 110, einen Rechendienstmanager 112, eine Ausführungsplattform 114 und eine Datenbank 116. Das Zugriffsmanagementsystem 110 ist das interne Zugangskontrollsystem für das netzbasierte Datenlagersystem 102 und ermöglicht Administratorbenutzern, einen Zugriff auf Betriebsmittel und Dienste, die durch das netzbasierte Datenlagersystem 102 bereitgestellt werden, zu managen. Administratorbenutzer können Anwender, Rollen und Gruppen erstellen und managen und Genehmigungen verwenden, um Zugriffe auf Betriebsmittel und Dienste zu ermöglichen oder verweigern.
  • Der Rechendienstmanager 112 koordiniert und managt Operationen des netzbasierten Datenlagersystems 102. Der Rechendienstmanager 112 führt auch eine Abfrageoptimierung und eine Kompilierung sowie ein Managen von Clustern von Rechendiensten, die Rechenbetriebsmittel (die auch als „virtuelle Lager“ bezeichnet werden) bereitstellen, durch. Der Rechendienstmanager 112 kann eine beliebige Anzahl von Client-Kontos wie z. B. Endanwender, die Datenspeicher- und Abrufanforderungen liefern, Systemadministratoren, die die Systeme und die Verfahren, die hier beschrieben sind, managen, und weitere Komponenten/Einrichtungen, die mit dem Rechendienstmanager 112 interagieren, unterstützen.
  • Der Rechendienstmanager 112 ist auch an die Datenbank 116, die der Gesamtheit von Daten, die in der Rechenumgebung 100 gespeichert sind, zugeordnet ist, gekoppelt. Die Datenbank 116 speichert Daten im Zusammenhang mit verschiedenen Funktionen und Aspekten, die dem netzbasierten Datenlagersystem 102 und seinen Anwendern zugeordnet sind. Zum Beispiel speichert die Datenbank 116 verschiedene Datenobjekte, die dem netzbasierten Datenlagersystem 102 ermöglichen, eine externe Funktionalität, die durch die entfernte Software-Komponente 108 bereitgestellt wird, aufzurufen. Weitere Details hinsichtlich der Erstellung und Verwendung dieser Datenobjekte werden unten unter Bezugnahme auf 2- 11 diskutiert.
  • In einigen Ausführungsformen enthält die Datenbank 116 eine Zusammenfassung von Daten, die in entfernten Datenspeichersystemen gespeichert sind, sowie Daten, die aus einem lokalen Zwischenspeicher verfügbar sind. Zusätzlich kann die Datenbank 116 Informationen dahingehend enthalten, wie Daten in den entfernten Datenspeichersystemen und dem lokalen Zwischenspeicher organisiert sind. Die Datenbank 116 ermöglicht Systemen und Diensten, zu bestimmen, ob auf ein Datenstück zugegriffen werden muss, ohne die tatsächlichen Daten aus einer Speichereinrichtung zu laden oder auf sie zuzugreifen.
  • Der Rechendienstmanager 112 ist ferner an die Ausführungsplattform 114 gekoppelt, die mehrere Rechenbetriebsmittel, die verschiedene Datenspeicher- und Datenabrufaufgaben ausführen, bereitstellt. Die Ausführungsplattform 114 ist an die Speicherplattform 122, die durch die Cloud-Computing-Dienstplattform 104 bereitgestellt wird, gekoppelt. Die Speicherplattform 122 umfasst mehrere Datenspeichereinrichtungen 124-1 bis 124-N. In einigen Ausführungsformen sind die Datenspeichereinrichtungen 124-1 bis 124-N cloudbasierte Speichereinrichtungen, die sich an einem oder mehreren geographischen Orten befinden. Zum Beispiel können die Datenspeichereinrichtungen 124-1 bis 124-N Teil einer öffentlichen Cloud-Infrastruktur oder einer privaten Cloud-Infrastruktur sein. Die Datenspeichereinrichtungen 124-1 bis 124-N können Festplattenlaufwerke (HDD), Festkörperlaufwerke (SSD), Speichercluster, Amazon S3TM-Speichersysteme oder eine sonstige Datenspeichertechnologie sein. Zusätzlich kann die Cloud-Computing-Dienstplattform 104 verteilte Dateisysteme (wie z. B. verteilt Hadoop-Dateisysteme (HDFS)), Objektspeichersysteme und dergleichen enthalten.
  • Die Ausführungsplattform 114 umfasst mehrere Rechenknoten. Ein Satz Prozesse in einem Rechenknoten führt einen Abfrageplan aus, der durch den Rechendienstmanager 112 kompiliert wurde. Der Satz Prozesse kann Folgendes enthalten: einen ersten Prozess, um den Abfrageplan auszuführen; einen zweiten Prozess, um Mikropartitionsdateien unter Verwendung einer Strategie der längsten Nichtverwendung (LRU-Strategie) zu überwachen und zu löschen und einen Fehlerabschwächungsprozess bei unzureichendem Speicher (OOM-Fehlerabschwächungsprozess) zu implementieren; einen dritten Prozess, der Gesundheitsinformationen aus Prozessprotokollen und einem Status zum Zurücksenden zum Rechendienstmanager 112 extrahiert; einen vierten Prozess, um eine Kommunikation mit dem Rechendienstmanager 112 nach einem Systemstart aufzubauen; und einen fünften Prozess, um jegliche Kommunikation mit einem Rechencluster für einen gegebenen Auftrag, der durch den Rechendienstmanager 112 bereitgestellt wird, zu verarbeiten und Informationen zum Rechendienstmanager 112 und weiteren Rechenknoten der Ausführungsplattform 114 zurückzukommunizieren.
  • Die Cloud-Computing-Dienstplattform 104 umfasst außerdem ein Zugriffsmanagementsystem 118 und ein Internet-API-Managementsystem 120. Das Zugriffsmanagementsystem 118 ist ein Zugangskontrollsystem, das durch die Cloud-Computing-Dienstplattform 104 bereitgestellt wird und das dem Anwender ermöglicht, Anwender, Rollen und Gruppen zu erstellen und zu managen und Genehmigungen zu verwenden, um Zugriff auf Cloud-Dienste und Betriebsmittel im Kontext der Cloud-Computing-Dienstplattform 104 zu genehmigen oder zu verweigern. Ein Anwender kann z. B. eine Rolle im Kontext der Cloud-Computing-Dienstplattform 104 erstellen, die Genehmigungen besitzt, Internetaufrufe zur entfernten Software-Komponente 108 mittels des Internet-API-Managementsystems 120 vorzunehmen. Das Zugriffsmanagementsystem 110 des netzbasierten Datenlagersystems 102 und das Zugriffsmanagementsystem 118 der Cloud-Computing-Dienstplattform 104 können kommunizieren und Informationen gemeinsam verwenden, um ein Zugriff und ein Management von Betriebsmitteln und Diensten, die durch Anwender sowohl das netzbasierten Datenlagersystems 102 als auch der Cloud-Computing-Dienstplattform 104 gemeinsam verwendet werden, zu ermöglichen.
  • Das Internet-API-Managementsystem 120 verarbeitet Aufgaben, die am Annehmen und Verarbeiten zeitlich überlappender API-Aufrufe, die Verkehrsmanagement, Berechtigung und Zugangskontrolle, Überwachen und API-Versionsmanagement enthalten, beteiligt sind. Das Internet-API-Managementsystem 120 stellt einen HTTP-Stellvertreterdienst zum Erstellen, Veröffentlichen, Aufrechterhalten, Sicherstellen und Überwachen von APIs (z. B. REST-APIs) bereit.
  • In einigen Ausführungsformen sind Kommunikationsanbindungen zwischen Elementen der Rechenumgebung 100 mittels eines oder mehrerer Datenkommunikationsnetze implementiert. Diese Datenkommunikationsnetze können ein beliebiges Kommunikationsprotokoll und einen beliebigen Typ eines Kommunikationsmediums verwenden. In einigen Ausführungsformen sind die Datenkommunikationsnetze eine Kombination von zwei oder mehr Datenkommunikationsnetzen (oder Unternetzen), die aneinandergekoppelt sind. In alternativen Ausführungsformen sind diese Kommunikationsanbindungen unter Verwendung eines beliebigen Typs eines Kommunikationsmediums und eines beliebigen Kommunikationsprotokolls implementiert.
  • Wie in 1 gezeigt ist, sind Datenspeichereinrichtungen 124-1 bis 124-N von den Rechenbetriebsmitteln, die der Ausführungsplattform 114 zugeordnet sind, entkoppelt. Diese Architektur unterstützt dynamische Änderungen am netzbasierten Datenlager 102 auf der Grundlage der sich ändernden Anforderungen von Datenspeicherung/-abruf sowie den sich ändernden Anforderungen der Anwender und Systeme, die auf die Datenverarbeitungsplattform 700 zugreifen. Die Unterstützung dynamischer Änderungen ermöglicht dem netzbasierten Datenlager 102, in Reaktion auf sich ändernde Anforderungen an die Systeme und Komponenten im netzbasierten Datenlager 102 schnell zu skalieren. Das Entkoppeln der Rechenbetriebsmittel von den Datenspeichereinrichtungen unterstützt die Speicherung großer Datenmengen, ohne eine entsprechende große Menge von Rechenbetriebsmitteln zu erfordern. Ähnlich unterstützt dieses Entkoppeln von Betriebsmitteln eine wesentliche Zunahme der Rechenbetriebsmittel, die zu einer bestimmten Zeit verwendet werden, ohne eine entsprechende Zunahme der verfügbaren Datenspeicherbetriebsmittel zu erfordern.
  • Der Rechendienstmanager 112, die Datenbank 116, die Ausführungsplattform 114, die Cloud-Computing-Dienstplattform 104 und die entfernte Rechenumgebung 106 sind in 1 als einzelne Komponenten gezeigt. Allerdings können der Rechendienstmanager 112, die Datenbank 116, die Ausführungsplattform 114, die Cloud-Computing-Dienstplattform 104 und die entfernte Rechenumgebung jeweils als ein verteiltes System (z. B. verteilt über mehrere Systeme/Plattformen bei mehreren geographischen Orten) implementiert sein. Zusätzlich können der Rechendienstmanager 112, die Datenbank 116, die Ausführungsplattform 114 und die Cloud-Computing-Dienstplattform 104 jeweils abhängig von Änderungen der Anforderungen, die empfangen wurden, und den sich ändernden Anforderungen der Datenverarbeitungsplattform 700 (unabhängig voneinander) vergrößert oder verkleinert werden. Somit ist in den beschriebenen Ausführungsformen das netzbasierte Datenlager 102 dynamisch und unterstützt regelmäßige Änderungen, um die aktuellen Datenverarbeitungsanforderungen zu erfüllen.
  • Während des typischen Betriebs verarbeitet das netzbasierte Datenlager 102 mehrere Aufträge, die durch den Rechendienstmanager 112 festgelegt werden. Diese Aufträge werden durch den Rechendienstmanager 112 geplant und gemanagt, um zu festzulegen, wann und wie der Auftrag ausgeführt werden soll. Zum Beispiel kann der Rechendienstmanager 112 kann den Auftrag in mehrere diskrete Aufgaben unterteilen und kann bestimmen, welche Daten benötigt werden, um jede der mehreren diskreten Aufgaben auszuführen. Der Rechendienstmanager 112 kann jede der mehreren diskreten Aufgaben einem oder mehreren Knoten der Ausführungsplattform 114 zuweisen, um die Aufgabe zu verarbeiten. Der Rechendienstmanager 112 kann bestimmen, welche Daten benötigt werden, um eine Aufgabe zu verarbeiten, und kann ferner bestimmen, welche Knoten in der Ausführungsplattform 114 am besten geeignet sind, um die Aufgabe zu verarbeiten. Einige Knoten können die Daten, die benötigt werden, um die Aufgabe zu verarbeiten, bereits zwischengespeichert haben und deshalb ein guter Kandidat zum Verarbeiten der Aufgabe sein. Metadaten, die in der Datenbank 116 gespeichert sind, unterstützen den Rechendienstmanager 112 beim Bestimmen, welche Knoten in der Ausführungsplattform 114 mindestens einen Abschnitt der Daten, die benötigt werden, um die Aufgabe zu verarbeiten, bereits zwischengespeichert haben. Ein oder mehrere Knoten in der Ausführungsplattform 114 verarbeiten die Aufgabe unter Verwendung von Daten, die durch den Knoten zwischengespeichert sind, und wenn nötig Daten, die aus der Cloud-Computing-Dienstplattform 104 abgerufen wurden. Es ist wünschenswert, so viele Daten wie möglich aus Zwischenspeichern in der Ausführungsplattform 114 abzurufen, weil die Abrufgeschwindigkeit typischerweise viel schneller als ein Abrufen von Daten aus der Cloud-Computing-Dienstplattform 104 ist.
  • Wie in 1 gezeigt ist, trennt die Rechenumgebung 100 die Ausführungsplattform 114 von der Cloud-Computing-Dienstplattform 104. In dieser Anordnung arbeiten die Verarbeitungsbetriebsmittel und die Zwischenspeicherbetriebsmittel in der Ausführungsplattform 114 unabhängig von den Datenspeicherbetriebsmitteln 124-1 bis 124-n in der Cloud-Computing-Dienstplattform 104. Somit sind die Rechenbetriebsmittel und die Zwischenspeicherbetriebsmittel nicht auf bestimmte Datenspeicherbetriebsmittel 124-1 bis 124-n beschränkt. Stattdessen können alle Rechenbetriebsmittel und alle Zwischenspeicherbetriebsmittel Daten von irgendeinem der Datenspeicherbetriebsmittel in der Cloud-Computing-Dienstplattform 104 abrufen und Daten darin speichern.
  • 2 ist ein Datenflussdiagramm, das eine Erstellung eines Integrationsobjekts 200 in der Rechenumgebung 100 in Übereinstimmung mit einigen Ausführungsformen der vorliegenden Offenbarung veranschaulicht. Wie gezeigt, verwendet ein Administratorbenutzer 202 der Cloud-Computing-Dienstplattform 104 das Zugriffsmanagementsystem 118 der Cloud-Computing-Dienstplattform 104, um eine Rolle 204 zu erstellen. Eine Rolle im Kontext der Cloud-Computing-Dienstplattform 104 ist eine Identität mit einem Satz von Genehmigungen zum Stellen von Dienstanforderungen in der Cloud-Computing-Dienstplattform 104. Eine Rolle ist dahingehend ähnlich einem Anwender, dass sie eine Identität mit Genehmigungsstrategien ist, die bestimmen, was die Identität in der Cloud-Computing-Dienstplattform 104 tun kann, jedoch ist eine Rolle eine Identität, die durch mehrere Anwender angenommen werden kann, statt ähnlich einem Anwender einer einzelnen Person eindeutig zugeordnet zu sein. Eine Rolle besitzt auch keine langfristigen Sicherheitszugangsdaten; stattdessen werden einem Anwender, der eine Rolle annimmt, vorläufige Sicherheitszugangsdaten bereitgestellt, die nach einer Ablaufzeit ablaufen.
  • Der Administratorbenutzer 202 der Cloud-Computing-Dienstplattform 104 erstellt die Rolle 204 mit einer Genehmigung, Internetendpunkte aufzurufen, die der entfernten Software-Komponente 108 entsprechen. Zum Beispiel kann der Administratorbenutzer 202 eine Anwenderschnittstelle, die der Recheneinrichtung 203 durch die Cloud-Computing-Dienstplattform 104 bereitgestellt wird, verwenden, um eine geeignete Eingabe zu liefern, um das Zugriffsmanagementsystem 118 zu veranlassen, die Rolle 204 zu erstellen.
  • Die Cloud-Computing-Dienstplattform 104 weist der Rolle 204 eine Betriebsmittelkennung zu. Der Administratorbenutzer 202 interagiert ferner mit dem Zugriffsmanagementsystem 118 unter Verwendung der UI, die der Recheneinrichtung 203 bereitgestellt wird, um die Betriebsmittelkennung, die der Rolle 204 zugeordnet ist, zu erhalten, und kommuniziert diese Betriebsmittelkennung zu einem Administratorbenutzer 206 des netzbasierten Datenlagersystems 102.
  • In 208 erstellt der Rechendienstmanager 112 das Integrationsobjekt 200 in der Datenbank 116 auf der Grundlage einer Eingabe, die durch den Administratorbenutzer 206 bereitgestellt wird und die Betriebsmittelkennung, die der Rolle 204 zugeordnet ist, und ein Schema zum Zulassen/Verweigern von Internetaufrufen auf der Grundlage von einheitlichen Betriebsmittellokatoren von Zielen (Ziel-URLs) enthält. Als Beispiel kann der Administratorbenutzer 206 eine UI verwenden, die der Recheneinrichtung 207 durch das netzbasierte Datenlagersystem 102 bereitgestellt wird, um die Eingabe bereitzustellen und den Rechendienstmanager 112 zu veranlassen, das Integrationsobjekt 200 zu erstellen.
  • Das Schema zum Zulassen/Verweigern von Internetaufrufen kann eine weiße Liste zulässiger URLs, zu denen Internetaufrufe vorgenommen werden können, eine schwarze Liste unzulässiger URLs, zu denen Internetaufrufe nicht erlaubt sind, oder beides umfassen. Im Allgemeinen wird das Schema durch den Rechendienstmanager 112 verwendet, um zu beschränken, welche Endpunkte mit der Integration verwendet werden können. Das Integrationsobjekt 200, das durch den Rechendienstmanager 112 erzeugt wird, enthält Folgendes: eine Referenz 210 zu der Betriebsmittelkennung, die der Rolle 204 zugeordnet ist, eine Referenz 212 zu einer Betriebsmittelkennung, die einem Anwenderdatensatz 214 zugeordnet ist, und das Schema, das zulässige/beschränkte URLs definiert. In einigen Ausführungsformen kann das Integrationsobjekt 200 ferner eine Referenz zu einer externen Kennungszeichenfolge (ID-Zeichenfolge), die durch den Rechendienstmanager 112 erzeugt wird, umfassen. Die externe ID-Zeichenfolge, die durch den Rechendienstmanager 112 erzeugt wird, kann verwendet werden, um eine Vertrauensbeziehung zwischen der Rolle 204 und dem Anwenderdatensatz 214 aufzubauen.
  • Das Zugriffsmanagementsystem 110 kann einen Pool von Anwenderdatensätzen führen und kann den Anwenderdatensatz 214 wählen, der dem Integrationsobjekt 200 zugewiesen werden und in ihm enthalten sein soll. In 216 interagiert der Administratorbenutzer 206 mit dem Rechendienstmanager 112, um die Betriebsmittelkennung des Anwenderdatensatzes 214 und die externe ID-Zeichenfolge, die im Integrationsobjekt 200 enthalten ist, zu extrahieren und kommuniziert die Betriebsmittelkennung des Anwenderdatensatzes 214 und die externe ID-Zeichenfolge in einer bandexternen Kommunikation zum Administratorbenutzer 202.
  • Der Administratorbenutzer 202 interagiert mit dem Zugriffsmanagementsystem 118, um eine Vertrauensbeziehung zwischen der Rolle 204 und dem Anwenderdatensatz 214 aufzubauen, um einem Anwender, der dem Anwenderdatensatz 214 entspricht, zu ermöglichen, die Rolle 204 anzunehmen und Internetaufrufe mittels des Internet-API-Managementsystems 120 zur entfernten Software-Komponente 108 senden. Als Ergebnis wird die Rolle 204 derart aktualisiert, dass sie eine Referenz 216 zum Anwenderdatensatz 214 enthält.
  • In 218 gewährt der Rechendienstmanager 112 einem oder mehreren Anwendern, die dem Administratorbenutzer 206 zugeordnet sind, Verwendungsrechte am Integrationsobjekt 200 auf der Grundlage einer Eingabe, die durch den Administratorbenutzer 206 mittels der Ul, die an der Recheneinrichtung 207 vorgesehen ist, bereitgestellt wird.
  • 3 ist ein Datenflussdiagramm, das eine Erstellung eines Funktionsobjekts 300 in der Rechenumgebung 100 in Übereinstimmung mit einigen Ausführungsformen der vorliegenden Offenbarung veranschaulicht. Wie gezeigt ist, ist das Internet-API-Managementsystem 120 in 302 konfiguriert, einen Ziel-Internet-Endpunkt 304 (der hier auch einfach als „Zielendpunkt 304“ bezeichnet wird), der der entfernten Software-Komponente 108 entspricht, zu enthalten. Der Zielendpunkt 304 kann einen einheitlichen Betriebsmittellokator (URL), der der entfernten Software-Komponente 108 entspricht, umfassen. Das Internet-API-Managementsystem 120 wird durch einen Funktionsautor 306 unter Verwendung einer Ul, die der Recheneinrichtung 307 durch die Cloud-Computing-Dienstplattform 104 bereitgestellt wird, konfiguriert. Der Funktionsautor 306 ist ein Anwender mit Zugriff auf ein Konto bei der Cloud-Computing-Dienstplattform 104 und ein Konto beim netzbasierten Datenlagersystem 102. Der Zielendpunkt 304 ist konfiguriert, durch das Zugriffsmanagementsystem 118 der Cloud-Computing-Dienstplattform 104 unter Verwendung einer Betriebsmittelstrategie, die ermöglicht, dass Genehmigungen, die der Rolle 204 bewilligt wurden, aufgerufen werden, authentifiziert zu werden.
  • Der Rechendienstmanager 112 empfängt eine Funktionsdefinition von der Recheneinrichtung 307. Die Funktionsdefinition kann durch den Funktionsautor 306 unter Verwendung einer Ul, die der Recheneinrichtung 307 durch das netzbasierte Datenlagersystem 102 bereitgestellt wird, festgelegt werden. Die Funktionsdefinition identifiziert das Integrationsobjekt 200 und den Zielendpunkt 304. In einigen Ausführungsformen kann die Funktionsdefinition eine maximale Stapelgröße zum stapelweisen Verarbeiten von Zeilen in Anforderungen, die zum Internet-API-Managementsystem 120 gesendet werden, umfassen.
  • Der Rechendienstmanager 112 prüft (bei 310) durch das Schema, das zulässige/beschränkte URLs definiert, ob der URL für den Zielendpunkt 304 zulässig ist. Wenn nicht, lehnt der Rechendienstmanager 112 die Funktionsdefinition ab.
  • Andernfalls erstellt der Rechendienstmanager 112 das Funktionsobjekt 300 in der Datenbank 116 (bei 312). Das Funktionsobjekt 300 definiert eine Funktion, die in einer Abfrage (z. B. eine SQL-Abfrage) verwendet werden kann, um die externe Funktionalität, die durch die entfernte Software-Komponente 108 bereitgestellt wird, aufzurufen. Das Funktionsobjekt 300 umfasst eine Referenz 308 (z. B. ein Zeiger) zum Integrationsobjekt 200 und eine Referenz 314 zum Zielendpunkt 304 (z. B. ein URL, der dem Zielendpunkt 304 entspricht). In 316 gewährt der Rechendienstmanager 112 einem oder mehreren Anwendern des netzbasierten Datenlagersystems 102 Verwendungsrechte am Funktionsobjekt 300 auf der Grundlage einer Eingabe, die durch den Funktionsautor 306 mittels der UI, die an der Recheneinrichtung 307 vorgesehen ist, bereitgestellt wird.
  • 4 ist ein Datenflussdiagramm, das einen Aufruf einer externen Funktion, die durch eine entfernte Software-Komponente 108 bereitgestellt wird, durch das netzbasierte Datenlagersystem 102 in der Rechenumgebung 100 in Übereinstimmung mit einigen Ausführungsformen der vorliegenden Offenbarung veranschaulicht. Der Aufruf der externen Funktion wird durch einen Funktionsaufrufer 400 initiiert, der eine Abfrage unter Verwendung einer Recheneinrichtung 401 in Kommunikation mit dem Rechendienstmanager 112 zum Rechendienstmanager 112 ausgibt. Der Funktionsaufrufer 400 ist ein Anwender des netzbasierten Datenlagersystems 102. Die Abfrage umfasst einen Aufruf der Funktion, die durch das Funktionsobjekt 300 definiert ist, und gibt einen Satz von Eingangsdaten für die Funktion an.
  • In 402 der Rechendienstmanager 112 in Reaktion auf das Empfangen der Abfrage von der Recheneinrichtung 401 des Funktionsaufrufers 400, greift auf Informationen des Integrationsobjekts 200 und des Funktionsobjekts 300 zu, um zu bestätigen, dass der Funktionsaufrufer 400 geeignete Verwendungsrechte besitzt, die Funktion aufzurufen, und zu bestätigen, dass der Zielendpunkt der Funktion (z. B. der Endpunkt 304) auf der Grundlage des Schemas, das zulässige/beschränkte URLs (z. B. die weiße Liste und/oder die schwarze Liste) definiert, zulässig ist.
  • Wenn der Funktionsaufrufer 400 geeignete Verwendungsrechte besitzt und der Zielendpunkt zulässig ist, erhält der Rechendienstmanager 112 bei 406 die Betriebsmittelkennung, die dem Anwenderdatensatz 214 zugeordnet ist, die Betriebsmittelkennung, die der Rolle 204 zugeordnet ist, und langfristige Sicherheitszugangsdaten, die dem Anwenderdatensatz 214 zugeordnet sind. Die langfristigen Sicherheitszugangsdaten können verschlüsselt werden, um unberechtigte Zugriff zu minimieren, und können in der Datenbank 116, einer Zwischenspeicherkomponente des Rechendienstmanagers 112 oder beidem gespeichert sein.
  • In 406 arbeitet der Rechendienstmanager 112 in Verbindung mit dem Zugriffsmanagementsystem 110, um vorläufige Sicherheitszugangsdaten zum Annehmen der Rolle 204 zu erhalten. Die vorläufigen Sicherheitszugangsdaten laufen ab, nachdem eine Zeitgrenze (z. B. 1 Stunde) erreicht wurde. Die vorläufigen Sicherheitszugangsdaten sind auch im Umfang zur Verwendung speziell in Sendeanforderungen zur entfernten Software-Komponente 108 eingeschränkt. Die vorläufigen Sicherheitszugangsdaten können durch Senden einer Anforderung zum Zugriffsmanagementsystem 118 der Cloud-Computing-Dienstplattform 104 für die vorläufigen Sicherheitszugangsdaten erhalten werden. Die Anforderung kann die Betriebsmittelkennung, die dem Anwenderdatensatz 214 entspricht, die Betriebsmittelkennung, die der Rolle 204 entspricht, und die langfristigen Sicherheitszugangsdaten, die dem Anwenderdatensatz 214 zugeordnet sind, umfassen oder angeben. Das Zugriffsmanagementsystem 118 stellt die vorläufigen Sicherheitszugangsdaten in Reaktion auf die Anforderung bereit. Die vorläufigen Sicherheitszugangsdaten sind auch verschlüsselt, um unberechtigte Zugriff und Verwendungen zu beschränken.
  • In 408 erzeugt der Rechendienstmanager 112 einen Ausführungsplan, der Daten, die verarbeitet werden sollen, und Aktionen, die durchgeführt werden sollen, festlegt, und stellt ihn der Ausführungsplattform 114 bereit. Der Ausführungsplan identifiziert auch den Zielendpunkt 304 und die vorläufigen Sicherheitszugangsdaten, die zur Authentifizierung beim Internet-API-Managementsystem 120 verwendet werden sollen. Die vorläufigen Sicherheitszugangsdaten, die im Ausführungsplan enthalten sind, sind auch verschlüsselt, um eine sichere Kommunikation sicherzustellen. Beim Erzeugen des Ausführungsplans können externe Funktionen (z. B. Skalarfunktionen, Tabellenfunktionen oder gespeicherte Prozeduren) zusammen mit der URL des Zielendpunkts 304 und weiteren Parametern in Spezifikations- und Beschreibungssprachknoten (SDL-Knoten) umgewandelt werden. Die Ausführungsplattform 114 erzeugt einen Abfrageplan auf der Grundlage des Ausführungsplans, um die verbrauchten Daten zu extrahieren und nach Bedarf Spalten zu bilden, die in Unterspalten zerlegt sind.
  • In 410 führt die Ausführungsplattform 114 den Abfrageplan durch Senden einer oder mehrerer Anforderungen (z. B. HTTP-Anforderungen) zum Internet-API-Managementsystem 120 aus. Die Ausführungsplattform 114 kann beim Kommunizieren der Anforderung zum Internet-API-Managementsystem 120 ein Transportschichtsicherheitsprotokoll (TLS-Protokoll) verwenden. Jede Anforderung kann eine Sammlung von Eingangszeilen sowie weiterer Metadaten zum Durchführen eines Internetaufrufs zur entfernten Software-Komponente 108 umfassen. Daten können als eine Kombination von Kopfteilen und Nachrichtenkörper z. B. im JSON-, Apache-Arrow- oder XML-Format übergeben werden. Zeilen können in Anforderungen stapelweise verarbeitet werden, um den Netzmehraufwand jedes entfernten Prozeduraufrufs zu verringern. Ein stapelweises Verarbeiten kann auf der Grundlage einer vom Anwender festgelegten maximalen Stapelgröße (die z. B. in der Funktionsdefinition enthalten ist), einer maximalen Nutzlastgröße, die durch das Internet-API-Managementsystem 120 ermöglicht wird, oder einer maximalen Stapelgröße (z. B. Bytes oder Zeilen), die durch die Ausführungsplattform 114 ermöglicht wird, erfolgen.
  • Anforderungen werden unter Verwendung der vorläufigen Sicherheitszugangsdaten elektronisch unterzeichnet und authentifiziert. In 412 arbeitet das Internet-API-Managementsystem 120 in Verbindung mit dem Zugriffsmanagementsystem 118, um jede empfangene Anforderung zu authentifizieren, und bestätigt, dass die Rolle 204 geeignete Genehmigungen besitzt, um Internetaufrufe zur entfernten Software-Komponente 108, die dem Endpunkt 304 entspricht, vorzunehmen. Wenn ja, verarbeitet das Internet-API-Managementsystem 120 die Anforderungen durch Vornehmen eines oder mehrerer Internetaufrufe bei 414 zur entfernten Software-Komponente 108 mittels einer API zur entfernten Software-Komponente 108, die durch die entfernte Rechenumgebung 106 bereitgestellt wird, um die externe Funktionalität in Bezug auf den Satz von Eingangsdaten aufzurufen. Bei 416 kommuniziert die entfernte Software-Komponente 108 Ergebnisdaten zurück zum Internet-API-Managementsystem 120 und kommuniziert das Internet-API-Managementsystem 120 eine Antwort zurück zur Ausführungsplattform 114. Die Ergebnisdaten können JSON-, Apache-Arrow- oder XML-codierte Daten umfassen.
  • Die Ausführungsplattform 114 empfängt die Antwort vom Internet-API-Managementsystem 120 und die Ausführungsplattform 114 parst die Antwort, um die Ergebnisdaten zu extrahieren. Die Ergebnisdaten, die durch die Ausführungsplattform 114 extrahiert wurden, können JSON-, Apache-Arrow- oder XML-codierte Daten umfassen. Die Ausführungsplattform 114 verarbeitet die Ergebnisdaten gemäß dem Abfrageplan. Die Verarbeitung der Ergebnisdaten kann ein Speichern der Ergebnisdaten und/oder ein Durchführen einer oder mehrerer Aktionen in Bezug auf die Ergebnisdaten umfassen.
  • In einigen Ausführungsformen kann die Ausführungsplattform 114 als Teil des Ausführens des Abfrageplans Daten durch Schreiben von Daten zu einem ersten vorläufigen Datenspeicher, der üblicherweise durch das netzbasierte Datenlagersystem 102, die Cloud-Computing-Dienstplattform 104 und die entfernte Rechenumgebung 106 zugänglich ist, zum Internet-API-Managementsystem 120 weiterleiten. Der Datenspeicher kann durch die Cloud-Computing-Dienstplattform 104 (z. B. AWS S3®) bereitgestellt werden. In diesen Ausführungsformen sendet die Ausführungsplattform 114 eine Anforderung zum Internet-API-Managementsystem 120, das einen elektronisch unterzeichneten URL, der dem Datenspeicher entspricht, und ein Manifest umfasst. Die entfernte Software-Komponente 108 liest Daten aus dem ersten vorläufigen Datenspeicher, führt die externe Funktionalität an den Daten aus, schreibt die Ergebnisdaten in einen zweiten vorläufigen Datenspeicher, wo sie durch die Ausführungsplattform 114 gelesen werden können, und sendet eine Antwort zurück zum Internet-API-Managementsystem 120.
  • Ein Prozess, der durch die Ausführungsplattform 114 ausgeführt wird, bereinigt die vorläufigen Datenspeicher, wenn eine Abfrage beendet ist oder wenn eine Abfrage scheitert. Daten werden unter Verwendung eines hergeleiteten Schlüssels, der für jede Anfrage spezifisch ist, serverseitig verschlüsselt. Der Schlüssel kann in einer HTTP-Anforderung über TLS gesendet werden und wird durch die entfernte Software-Komponente 108 verwendet, wenn sie Daten aus dem vorläufigen Datenspeicher liest.
  • In einigen Ausführungsformen wendet das Internet-API-Managementsystem 120 eine harte Zeitüberschreitung an, die eine Zeitgrenze (z. B. 30 Sekunden) für eingehende Anforderungen festlegt. Dies kann für Anforderungen problematisch sein, die zur Ausführung länger als die Zeitgrenze benötigen, wie z. B. externe Tabellenfunktionen. Um diese Szenarien zu unterstützen, kann die Ausführungsplattform 114 in einigen Ausführungsformen ein asynchrones Modell verwenden, wobei eine einzelne logische Anforderung als eine Zustandsmaschine mit den folgenden Zuständen implementiert ist: 1) Anforderung beginnen; 2) Status abfragen und 3) Ergebnisse lesen. Auf diese Weise kann die Ausführungsplattform 114 nach dem Beginn eine Anforderung fortschreiten, das Internet-API-Managementsystem 120 hinsichtlich eines Status der Anforderung abzufragen und dies fortzusetzen, bis die Ergebnisdaten bereit sind. In einigen Ausführungsformen verwendet die Ausführungsplattform 114 einen Rückrufmechanismus der Internethakenart, um die harte Zeitüberschreitung, die durch das Internet-API-Managementsystem 120 festgelegt ist, zu adressieren.
  • In einigen Fällen können die vorläufige Zugangsdaten während eines Internetaufrufs zur entfernten Software-Komponente 108 oder während eines Wartens auf die Antwort vom Internet-API-Managementsystem 120 ablaufen. In diesen Fällen kann die Ausführungsplattform 114 in Verbindung mit dem Rechendienstmanager 112 arbeiten, um die vorläufigen Sicherheitszugangsdaten zu aktualisieren und nach dem Aktualisieren der vorläufigen Sicherheitszugangsdaten zusätzliche Anforderungen zum Internetendpunkt 304 zu kommunizieren.
  • 5 ist ein Interaktionsdiagramm, das Interaktionen zwischen dem netzbasierten Datenlagersystem 102, der Cloud-Computing-Dienstplattform 104 und der entfernten Rechenumgebung 106 beim Durchführen eines Verfahrens 500 zum Erstellen eines Integrationsobjekts (z. B. des Integrationsobjekts 200) in Übereinstimmung mit einigen Ausführungsformen der vorliegenden Offenbarung veranschaulicht.
  • In Operation 502 erstellt die Cloud-Computing-Dienstplattform 104 die Rolle 204 mit einer Genehmigung, den Endpunkt 304, der der entfernten Software-Komponente 108 entspricht, aufzurufen. Die Cloud-Computing-Dienstplattform 104 erstellt die Rolle 204 auf der Grundlage einer Eingabe, die von der Recheneinrichtung 203, die durch den Administratorbenutzer 202 betrieben wird, empfangen wurde. Zum Beispiel kann der Administratorbenutzer 202 eine Anwenderschnittstelle, die der Recheneinrichtung 203 durch die Cloud-Computing-Dienstplattform 104 bereitgestellt wird, verwenden, um eine geeignete Eingabe bereitzustellen, um das Zugriffsmanagementsystem 118 zu veranlassen, die Rolle 204 zu erstellen. Die Cloud-Computing-Dienstplattform 104 weist der Rolle 204 eine Betriebsmittelkennung zu, wenn die Rolle 204 erzeugt wurde, und der Administratorbenutzer 202 kommuniziert in einer bandexternen Kommunikation die Betriebsmittelkennung zum Administratorbenutzer 206 des netzbasierten Datenlagersystems 102.
  • In Operation 504 erstellt der Rechendienstmanager 112 das Integrationsobjekt 200 in der Datenbank 116 auf der Grundlage einer Eingabe, die durch den Administratorbenutzer 206 (z. B. mittels einer Ul, die an der Recheneinrichtung 207 durch das netzbasierte Datenlagersystem 102 vorgesehen ist) bereitgestellt wird. Die Eingabe, die durch den Administratorbenutzer 206 bereitgestellt wird, enthält die Betriebsmittelkennung, die der Rolle 204 zugeordnet ist, und Daten, die ein Schema zum Zulassen/Verweigern von Internetaufrufen auf der Grundlage von Ziel-URLs definieren. Das Integrationsobjekt 200, das durch den Rechendienstmanager 112 erzeugt wird, enthält Folgendes: die Referenz 210 zu der Betriebsmittelkennung, die der Rolle 204 zugeordnet ist, die Referenz 212 zu einer Betriebsmittelkennung, die dem Anwenderdatensatz 214 zugeordnet ist; und die Daten, die das Schema definieren. In einigen Ausführungsformen kann das Integrationsobjekt 200 ferner eine Referenz zu einer externen ID-Zeichenfolge, die durch den Rechendienstmanager 112 erzeugt wird, umfassen.
  • Der Administratorbenutzer 206 extrahiert die Betriebsmittelkennung des Anwenderdatensatzes 214 und in einigen Ausführungsformen die externe ID-Zeichenfolge, die im Integrationsobjekt 200 enthalten ist, und kommuniziert die Betriebsmittelkennung des Anwenderdatensatzes 214 und die externe ID-Zeichenfolge zum Administratorbenutzer 202 in einer bandexternen Kommunikation.
  • In Operation 506 baut die Cloud-Computing-Dienstplattform 104 eine Vertrauensbeziehung zwischen der Rolle 204 und dem Anwenderdatensatz 214 auf der Grundlage einer Eingabe vom Administratorbenutzer 202, die die Betriebsmittelkennung des Anwenderdatensatzes 214 und in einigen Ausführungsformen die externe ID-Zeichenfolge enthält, auf. Die Cloud-Computing-Dienstplattform 104 baut die Vertrauensbeziehung auf, um einem Anwender, der dem Anwenderdatensatz 214 entspricht, zu ermöglichen, die Rolle 204 anzunehmen und Internetaufrufe mittels des Internet-API-Managementsystems 120 zur entfernten Software-Komponente 108 zu senden. Als Teil des Aufbauens der Vertrauensbeziehung wird die Rolle 204 in einigen Ausführungsformen aktualisiert, eine Referenz 216 zum Anwenderdatensatz 214 und die externe ID-Zeichenfolge zu enthalten.
  • In Operation 508 gewährt der Rechendienstmanager 112 einem oder mehreren Anwendern, die dem Administratorbenutzer 206 zugeordnet sind, Verwendungsrechte am Integrationsobjekt 200 auf der Grundlage einer Eingabe, die durch den Administratorbenutzer 206 mittels der Ul, die an der Recheneinrichtung 207 vorgesehen ist, bereitgestellt wird.
  • 6 ist ein Interaktionsdiagramm, das Interaktionen zwischen dem netzbasierten Datenlagersystem 102, der Cloud-Computing-Dienstplattform 104, der entfernten Rechenumgebung 106 beim Erstellen des Funktionsobjekts 300 in Übereinstimmung mit einigen Ausführungsformen der vorliegenden Offenbarung veranschaulicht. In Operation 602 ist das Internet-API-Managementsystem 120 durch den Funktionsautor 306 konfiguriert, den Zielendpunkt 304, der der entfernten Software-Komponente 108 entspricht, zu enthalten. Der Funktionsautor 306 kann das Internet-API-Managementsystem 120 unter Verwendung einer Ul, die durch die Cloud-Computing-Dienstplattform 104 an der Recheneinrichtung 307 bereitgestellt wird, konfigurieren.
  • In Operation 604 empfängt der Rechendienstmanager 112 von der Recheneinrichtung 307 eine Funktionsdefinition, die das Integrationsobjekt 200 und den Zielendpunkt 304 (z. B. ein URL) identifiziert. Die Funktionsdefinition kann durch den Funktionsautor 306 unter Verwendung einer Ul, die der Recheneinrichtung 307 durch das netzbasierte Datenlagersystem 102 bereitgestellt wird, festgelegt werden.
  • In Operation 606 überprüft der Rechendienstmanager 112, ob der Zielendpunkt durch das Schema, das zulässige/beschränkte URLs definiert, ermöglicht wird. Wenn er nicht zulässig ist, lehnt der Rechendienstmanager 112 die Funktionsdefinition ab. Andernfalls erstellt der Rechendienstmanager 112 in Operation 608 das Funktionsobjekt 300 in der Datenbank 116, das eine Funktion definiert, die in einer Abfrage (z. B. eine SQL-Abfrage) verwendet werden kann, um die externe Funktionalität, die durch die entfernte Software-Komponente 108 bereitgestellt wird, aufzurufen. Das Funktionsobjekt 300 umfasst die Referenz 308 (z. B. ein Zeiger) zum Integrationsobjekt 200 und die Referenz 314 (z. B. ein Zeiger) zum Zielendpunkt 304. In Operation 610 gewährt der Rechendienstmanager 112 einem oder mehreren Anwendern, die dem Funktionsautor 306 zugeordnet sind, Verwendungsrechte am Funktionsobjekt 300 auf der Grundlage einer Eingabe, die durch den Funktionsautor 306 mittels der Ul, die an der Recheneinrichtung 307 vorgesehen ist, bereitgestellt wird.
  • 7 ist ein Interaktionsdiagramm, das Interaktionen zwischen Komponenten des netzbasierten Datenlagersystems 102, der Cloud-Computing-Dienstplattform 104 und der entfernten Rechenumgebung 106 beim Aufrufen einer externen Funktionalität, die durch eine entfernte Software-Komponente 108 bereitgestellt wird, in Übereinstimmung mit einigen Ausführungsformen der vorliegenden Offenbarung veranschaulicht.
  • In Operation 702 empfängt das netzbasierte Datenlagersystem 102 eine Abfrage von der Recheneinrichtung 401, die durch den Funktionsaufrufer 400 betrieben wird. Die Abfrage umfasst einen Aufruf der Funktion, die durch das Funktionsobjekt 300 definiert ist, und gibt einen Satz von Eingangsdaten für die Funktion an. In Reaktion auf ein Empfangen der Abfrage bestätigt das netzbasierte Datenlagersystem 102 in Operation 704, dass der Funktionsaufrufer 400 geeignete Verwendungsrechte besitzt, um die Funktion aufzurufen. In Operation 706 bestätigt das netzbasierte Datenlagersystem 102, dass der Zielendpunkt der Funktion (z. B. der Endpunkt 304), auf den in der Abfrage Bezug genommen wird, auf der Grundlage des Schemas, das zulässige/beschränkte URLs definiert (z. B. die weiße Liste und/oder die schwarze Liste), zulässig ist.
  • Wenn der Funktionsaufrufer 400 geeignete Verwendungsrechte besitzt und der Zielendpunkt zulässig ist, erhält der Rechendienstmanager 112 in Operation 708 vorläufige Sicherheitszugangsdaten zum Annehmen der Rolle 204. Die vorläufigen Sicherheitszugangsdaten können durch Senden einer Anforderung der vorläufigen Sicherheitszugangsdaten zum Zugriffsmanagementsystem 118 der Cloud-Computing-Dienstplattform 104 erhalten werden. Die Anforderung kann die Betriebsmittelkennung, die dem Anwenderdatensatz 214 entspricht, die Betriebsmittelkennung, die der Rolle 204 entspricht, und die langfristigen Sicherheitszugangsdaten, die dem Anwenderdatensatz 214 zugeordnet sind, umfassen oder angeben.
  • In Operation 710 sendet das netzbasierte Datenlagersystem 102 eine oder mehrere Anforderungen (z. B. HTTP-Anforderungen) (z. B. unter Verwendung des TLS-Protokolls) zum Internet-API-Managementsystem 120 der Cloud-Computing-Dienstplattform 104. Jede Anforderung kann eine Sammlung von Eingangszeilen sowie weiterer Metadaten zum Durchführen eines Internetaufrufs zur entfernten Software-Komponente 108 umfassen.
  • Das Internet-API-Managementsystem 120 arbeitet in Verbindung mit dem Zugriffsmanagementsystem 118 der Cloud-Computing-Dienstplattform 104, um in Operation 712 jede empfangene Anforderung zu authentifizieren. In Operation 714 verarbeitet das Internet-API-Managementsystem 120 der Cloud-Computing-Dienstplattform 104 die Anforderungen durch Senden eines oder mehrerer Internetaufrufe zur entfernten Software-Komponente 108 mittels einer API zur entfernten Software-Komponente 108, die durch die entfernte Rechenumgebung 106 bereitgestellt wird, um die externe Funktionalität in Bezug auf den Satz von Eingangsdaten aufzurufen.
  • In Operation 716 führt die entfernte Rechenumgebung 106 die entfernte Software-Komponente 108 mit den Eingangsdaten, die als Eingabe bereitgestellt werden, aus und dadurch erzeugt die entfernte Rechenumgebung 106 Ergebnisdaten (z. B. im JSON-, Apache-Arrow- oder XML-Format). Die entfernte Rechenumgebung 106 kommuniziert in Operation 718 Ergebnisdaten zurück zum Internet-API-Managementsystem 120. In Operation 720 kommuniziert das Internet-API-Managementsystem 120 eine Antwort, die die Ergebnisdaten (z. B. im JSON-, Apache-Arrow- oder XML-Format) umfasst, zurück zur Ausführungsplattform 114.
  • Das netzbasierte Datenlagersystem 102 parst die Antwort in Operation 722, um die Ergebnisdaten (z. B. im JSON-, Apache-Arrow- oder XML-Format) zu extrahieren. In Operation 724 verarbeitet die Ausführungsplattform 114 die Ergebnisdaten (z. B. durch Speichern der Ergebnisdaten und/oder Durchführen einer oder mehrerer Aktionen in Bezug auf die Ergebnisdaten).
  • 8 ist ein Ablaufdiagramm, das Operationen des netzbasierten Datenlagersystems 102 beim Durchführen eines Verfahrens 800 zum Ermöglichen eines netzbasierten Datenlagersystems 102, um eine externe Funktion, die durch die entfernte Software-Komponente 108 bereitgestellt wird, aufzurufen, in Übereinstimmung mit einigen Ausführungsformen der vorliegenden Offenbarung veranschaulicht. Das Verfahren 800 kann in computerlesbaren Befehlen zur Ausführung durch eine Hardware-Komponente (z. B. ein Prozessor) verkörpert sein, derart, dass die Operationen des Verfahrens 800 durch Komponenten des netzbasierten Datenlagersystems 102 durchgeführt werden können. Entsprechend wird das Verfahren 800 unten unter Bezugnahme darauf beispielhaft beschrieben. Allerdings sollte begrüßt werden, dass das Verfahren 800 in verschiedenen weiteren Hardware-Konfigurationen eingesetzt werden kann und nicht beabsichtigt ist, dass es auf den Einsatz im netzbasierten Datenlagersystem 102 beschränkt ist.
  • In Operation 805 erzeugt der Rechendienstmanager 112 ein Integrationsobjekt (z. B. das Integrationsobjekt 200) auf der Grundlage einer ersten Eingabe, die von einer ersten Recheneinrichtung (z. B. der Recheneinrichtung 207), die einem ersten Anwender (z. B. dem Anwender 206) des netzbasierten Datenlagersystems 102 entspricht, empfangen wurde. Der erste Anwender kann die Eingabe z. B. unter Verwendung einer Ul, die an der Recheneinrichtung durch das netzbasierte Datenlagersystem 102 bereitgestellt wird, bereitstellen. Die Eingabe umfasst eine erste Betriebsmittelkennung, die einer Rolle (z. B. der Rolle 204) in der Cloud-Computing-Dienstplattform 104 entspricht, und ein Schema, das zulässige/beschränkte URLs, an die Internetaufrufe gesendet werden können, definiert (z. B. eine weiße Liste und/oder schwarze Liste von URLs). Die erste Betriebsmittelkennung kann durch einen Administratorbenutzer der Cloud-Computing-Dienstplattform 104 (z. B. der Administratorbenutzer, der die Rolle erstellt hat) zum ersten Anwender kommuniziert werden.
  • Als Teil des Erzeugens des Integrationsobjekts identifiziert der Rechendienstmanager 112 eine zweite Betriebsmittelkennung, die einem Anwenderdatensatz (z. B. dem Anwenderdatensatz 214), der durch das Zugriffsmanagementsystem 110 des netzbasierten Datenlagersystems 102 geführt wird, entspricht, zum Zuweisen zur Integration. In einigen Ausführungsformen erzeugt der Rechendienstmanager 112 auch eine externe ID-Zeichenfolge, die verwendet werden kann, um eine Vertrauensbeziehung zwischen der Rolle in der Cloud-Computing-Dienstplattform 104 und dem Anwenderdatensatz aufzubauen. Ferner kann der Rechendienstmanager 112 auch einem oder mehreren Anwendern (z. B. Anwendern, die durch den Administratorbenutzer des netzbasierten Datenlagers festgelegt wurden) Verwendungsrechte zur Integration gewähren.
  • Das Integrationsobjekt umfasst Folgendes: eine Referenz zur ersten Betriebsmittelkennung, die der Rolle in der Cloud-Computing-Dienstplattform 104 entspricht, eine Referenz zur zweiten Betriebsmittelkennung, die einem Anwenderdatensatz, der durch das netzbasierte Datenlagersystem 102 geführt wird, entspricht, Daten, die ein Schema zum Zulassen/Verweigern von Internetaufrufen auf der Grundlage von Ziel-URLs definieren, und in einigen Ausführungsformen eine Referenz zur externen ID-Zeichenfolge. Der Administratorbenutzer des netzbasierten Datenlagers kann die zweite Betriebsmittelkennung und die externe ID-Zeichenfolge zum Administratorbenutzer der Cloud-Computing-Dienstplattform 104 kommunizieren und der Administratorbenutzer der Cloud-Computing-Dienstplattform kann wiederum die Vertrauensbeziehung zwischen der Rolle und dem Anwenderdatensatz erstellen.
  • In Operation 810 speichert der Rechendienstmanager 112 das Integrationsobjekt in der Datenbank 116 zusammen mit einer Referenz zum Anwenderdatensatz, der durch das Zugriffsmanagementsystem 110 geführt wird, und einer Referenz zur Rolle, die durch die Cloud-Computing-Dienstplattform 104 geführt wird. Zum Beispiel kann der Rechendienstmanager 112 das Integrationsobjekt mit einem ersten Zeiger, der dem Anwenderdatensatz entspricht, und einem zweiten Zeiger, der der Rolle entspricht, speichern.
  • In Operation 815 erzeugt der Rechendienstmanager 112 ein Funktionsobjekt (z. B. das Funktionsobjekt 300) auf der Grundlage einer zweiten Eingabe, die von einer zweiten Recheneinrichtung (z. B. die Recheneinrichtung 203), die einem zweiten Anwender (z. B. der Funktionsautor 306) des Datenlagersystems 102 entspricht, empfangen wurde. Das Funktionsobjekt umfasst eine Referenz zum Integrationsobjekt und eine Referenz zu einem Zielendpunkt im Internet-API-Managementsystem 120 (z. B. der Zielendpunkt 304), der der entfernten Software-Komponente 108 entspricht. Die zweite Eingabe kann den Zielendpunkt und das Integrationsobjekt identifizieren. Zum Beispiel kann die zweite Eingabe einen URL, der dem Zielendpunkt entspricht, und eine Betriebsmittelkennung, die dem Integrationsobjekt entspricht, enthalten. Vor dem Erzeugen des Funktionsobjekts bestätigt der Rechendienstmanager 112, dass der Zielendpunkt zulässig ist, durch Vergleichen des Zielendpunkts mit dem Schema, das zulässige/beschränkte URLs definiert.
  • In Operation 820 speichert der Rechendienstmanager 112 das Funktionsobjekt mit einer Referenz zum Integrationsobjekt und einer Referenz zum Zielendpunkt im Internet-API-Managementsystem 120. Zum Beispiel kann der Rechendienstmanager 112 das Funktionsobjekt mit einem ersten Zeiger, der dem Integrationsobjekt entspricht, und einem zweiten Zeiger, der dem Zielendpunkt entspricht, im Internet-API-Managementsystem 120 speichern.
  • 9-11 sind Ablaufdiagramme, die Operationen des netzbasierten Datenlagersystems 102 beim Durchführen eines Verfahrens 900 zum Aufrufen einer externen Funktionalität, die durch eine entfernte Software-Komponente 108 bereitgestellt wird, in Übereinstimmung mit einigen Ausführungsformen der vorliegenden Offenbarung veranschaulichen. Das Verfahren 900 kann in computerlesbaren Befehlen zur Ausführung durch eine Hardware-Komponente (z. B. ein Prozessor) verkörpert sein, derart, dass die Operationen des Verfahrens 900 durch Komponenten des netzbasierten Datenlagersystems 102 durchgeführt werden können. Entsprechend ist das Verfahren 900 unten beispielhaft unter Bezugnahme darauf beschrieben. Allerdings sollte begrüßt werden, dass das Verfahren 900 in verschiedenen weiteren Hardware-Konfigurationen eingesetzt werden kann und nicht beabsichtigt ist, dass es auf den Einsatz im netzbasierten Datenlagersystem 102 beschränkt ist.
  • In einigen Ausführungsformen wird das Verfahren 900 auf das Verfahren 800 folgend durchgeführt, wobei das netzbasierte Datenlagersystem 102 den Aufruf der externen Funktionalität durch Erzeugen und Speichern des Integrationsobjekts und des Funktionsobjekts ermöglicht. Im Einklang mit diesen Ausführungsformen enthält das Verfahren 900 die Operationen 805, 810, 815 und 820 des Verfahrens 800.
  • In Operation 905 empfängt der Rechendienstmanager 112 eine Abfrage von einer Recheneinrichtung eines dritten Anwenders (z. B. der Funktionsaufrufer 400), die eine Referenz zu einer Funktion, die der entfernten Software-Komponente 108 zugeordnet ist, umfasst. Als Beispiel kann die entfernte Software-Komponente 108 eine Skalarfunktion, eine Tabellenfunktion oder eine gespeicherte Prozedur umfassen. Die Abfrage gibt ferner einen Satz von Eingangsdaten für die Funktion an.
  • In Operation 910 greift der Rechendienstmanager 112 auf ein Funktionsobjekt (z. B. das Funktionsobjekt 300), das der Funktion entspricht, auf der Grundlage der Referenz zur Funktion, die in der Abfrage enthalten ist, zu. Das Funktionsobjekt ist mit einer Zuordnung (z. B. ein Zeiger) zu einem Integrationsobjekt, das der entfernten Software-Komponente 108 zugeordnet ist, gespeichert und der Rechendienstmanager 112 verwendet diese Informationen im Funktionsobjekt, um das Integrationsobjekt zu identifizieren.
  • In Operation 915 greift der Rechendienstmanager 112 auf der Grundlage der Zuordnung zum Funktionsobjekt von der Datenbank 116 auf das Integrationsobjekt (z. B. das Integrationsobjekt 200) zu. Das Integrationsobjekt enthält eine Referenz zu einem Anwenderdatensatz, der durch das Zugriffsmanagementsystem 110 geführt wird, und eine Referenz zu einer Rolle (z. B. die Rolle 204), die durch das Zugriffsmanagementsystem 118 der Cloud-Computing-Dienstplattform 104 geführt wird.
  • In Operation 920 erhält der Rechendienstmanager 112 vorläufige Sicherheitszugangsdaten, die beim Authentifizieren mit dem Internet-API-Managementsystem 120 verwendet werden sollen, um die Rolle in der Cloud-Computing-Dienstplattform 104 anzunehmen. Die vorläufigen Sicherheitszugangsdaten laufen ab, nachdem eine Zeitgrenze (z. B. 1 Stunde) erreicht wurde, und sind im Umfang zur Verwendung speziell beim Aufrufen einer externen Funktionalität, die durch die entfernte Software-Komponente 108 bereitgestellt wird, beschränkt.
  • In Operation 925 sendet die Ausführungsplattform 114 eine oder mehrere Anforderungen (z. B. eine oder mehrere HTTP-Anforderungen) zum Internet-API-Managementsystem 120 der Cloud-Computing-Dienstplattform 104, um die externe Funktionalität, die durch die entfernte Software-Komponente 108 bereitgestellt wird, aufzurufen. Die eine oder die mehreren Anforderungen umfassen Eingangsdaten und eine Referenz zum Zielendpunkt, der der entfernten Software-Komponente 108 entspricht, und sind unter Verwendung der vorläufigen Sicherheitszugangsdaten elektronisch unterzeichnet. Die eine oder die mehreren Anforderungen werden durch das Zugriffsmanagementsystem 118 authentifiziert und veranlassen das Internet-API-Managementsystem 120, die externe Funktionalität, die durch die entfernte Software-Komponente 108 bereitgestellt wird, aufzurufen. Zum Beispiel können die Anforderungen das Internet-API-Managementsystem 120 veranlassen, einen oder mehrere Internetaufrufe (z. B. mittels einer API, die durch die entfernte Rechenumgebung 106 bereitgestellt wird) zur entfernten Software-Komponente 108 zu senden. Die entfernte Software-Komponente 108 führt wiederum eine Skalarfunktion, eine Tabellenfunktion oder eine Prozedur aus und erzeugt auf dieser Grundlage Ergebnisdaten. Die entfernte Software-Komponente 108 kommuniziert die resultierenden Daten zurück zum Internet-API-Managementsystem 120 (z. B. in einer oder mehreren HTTP-Antworten). Das Internet-API-Managementsystem 120 kommuniziert eine Antwort auf die Anforderung zur Ausführungsplattform 114. Die Ergebnisdaten können JSON-, Apache-Arrow- oder XML-codierte Daten umfassen.
  • In Operation 930 empfängt die Ausführungsplattform 114 die Antwort auf die Anforderung vom Rechendienstmanager 112 und in Operation 935 parst die Ausführungsplattform 114 die Antwort, um die Ergebnisdaten zu extrahieren. Die Ergebnisdaten, die durch die Ausführungsplattform 114 extrahiert wurden, können JSON-, Apache-Arrow- oder XML-codierte Daten umfassen.
  • In Operation 940 verarbeitet die Ausführungsplattform 114 die Ergebnisdaten. Die Verarbeitung der Ergebnisdaten kann ein Speichern der Ergebnisdaten und/oder ein Durchführen einer oder mehrerer Aktionen in Bezug auf die Ergebnisdaten umfassen.
  • Wie in 10 gezeigt ist, kann das Verfahren 900 in einigen Ausführungsformen ferner die Operationen 1005, 1010, 1015 und 1020 enthalten. Im Einklang mit diesen Ausführungsformen werden die Operationen 1005 und 1010 auf Operationen 915, wobei der Rechendienstmanager 112 auf das Integrationsobjekt zugreift, folgend durchgeführt. In Operation 1005 bestätigt der Rechendienstmanager 112, dass der dritte Anwender (z. B. der Funktionsaufrufer 400) auf der Grundlage von Verwendungsrechten, die durch das Integrationsobjekt angegeben werden, Verwendungsrechte besitzt, die Integration zu verwenden. In Operation 1010 bestätigt der Rechendienstmanager 112, dass der Zielendpunkt, der in der Abfrage enthalten ist, auf der Grundlage eines Vergleichs des Zielendpunkts mit dem Schema, das zulässige/beschränkte URLs definiert und durch das Integrationsobjekt angegeben wird, zulässig ist.
  • Im Einklang mit diesen Ausführungsformen können die Operationen 1015 und 1020 als Teil der Operation 920 (z. B. als eine Unteroperation oder eine Unterroutine) durchgeführt werden, wobei der Rechendienstmanager 112 vorläufige Sicherheitszugangsdaten erhält, um Rolle einer Cloud-Computing-Dienstplattform 104 anzunehmen.
  • In Operation 1015 greift der Rechendienstmanager 112 auf langfristige Sicherheitszugangsdaten, die dem Anwenderdatensatz zugeordnet sind, im Daten-Cloud-Lagersystem 102 zu. Die langfristigen Sicherheitszugangsdaten können sein gespeichert in einem verschlüsselten Format in der Datenbank und/oder eine Zwischenspeicherkomponente des Rechendienstmanagers 112.
  • In Operation 1020 sendet der Rechendienstmanager 112 eine Anforderung der vorläufigen Sicherheitszugangsdaten zum Zugriffsmanagementsystem 118 der Cloud-Computing-Dienstplattform 104. Die Anforderung kann die erste Betriebsmittelkennung, die dem Anwenderdatensatz in dem Datenlagersystem 102 entspricht, die zweite Betriebsmittelkennung, die der Cloud-Computing-Dienstplattformrolle entspricht, und die langfristigen Sicherheitszugangsdaten, die dem Anwenderdatensatz zugeordnet sind, umfassen oder angeben. Das Zugriffsmanagementsystem 118 der Cloud-Computing-Dienstplattform 104 liefert in Reaktion auf die Anforderung die vorläufigen Sicherheitszugangsdaten.
  • Wie in 11 gezeigt ist, kann das Verfahren 900 in einigen Ausführungsformen die Operationen 1105 und 1110 enthalten. Im Einklang mit diesen Ausführungsformen können die Operationen 1105 und 1110 vor der Operation 930, wobei die Ausführungsplattform 114 die Antwort vom Internet-API-Managementsystem 120 empfängt, durchgeführt werden. In Operation 1105 detektiert die Ausführungsplattform 114 ein Ablaufen der vorläufigen Sicherheitszugangsdaten. Zum Beispiel kann die Ausführungsplattform 114 den Ablauf der vorläufigen Sicherheitszugangsdaten auf der Grundlage des Bestimmens, dass die Ablaufzeitbeschränkung erreicht wurde, oder auf der Grundlage einer Zeitüberschreitungsnachricht, die von der Cloud-Computing-Dienstplattform 104 empfangen wurde, detektieren. In einigen Ausführungsformen kann die Ausführungsplattform 114 das Internet-API-Managementsystem 120 bezüglich eines Status der Anforderung abfragen und den Ablauf der vorläufige Zugangsdaten auf der Grundlage einer Antwort darauf detektieren.
  • In Operation 1110 aktualisiert der Rechendienstmanager 112 die vorläufigen Sicherheitszugangsdaten, um der Ausführungsplattform 114 zu ermöglichen, das Annehmen der Rolle fortzusetzen. Zum Beispiel kann der Rechendienstmanager 112 die vorläufigen Sicherheitszugangsdaten durch Senden einer zusätzlichen Anforderung zum Zugriffsmanagementsystem 118 der Cloud-Computing-Dienstplattform 104 aktualisieren. Nach dem Aktualisieren der Sicherheitszugangsdaten kann der Rechendienstmanager 112 die Ausführungsplattform 114 auffordern, eine oder mehrere zusätzliche Anforderungen zum Internet-API-Managementsystem 120 zu senden, um die externe Funktionalität, die durch die entfernte Software-Komponente 108 bereitgestellt wird, aufzurufen. In einigen Fällen kann der Rechendienstmanager 112 die vorläufigen Sicherheitszugangsdaten aktualisieren, um sicherzustellen, dass das Internet-API-Managementsystem 120 die Antwort zurück zur Ausführungsplattform 114 kommunizieren kann.
  • 12 ist ein Blockdiagramm, das Komponenten des Rechendienstmanagers 112 in Übereinstimmung mit einigen Ausführungsformen der vorliegenden Offenbarung veranschaulicht. Wie in 12 gezeigt ist, managt der Anforderungsverarbeitungsdienst 1202 empfangene Datenspeicheranforderungen und Datenabrufanforderungen (z. B. Aufträge, die an Datenbankdaten durchgeführt werden sollen). Zum Beispiel kann der Anforderungsverarbeitungsdienst 1202 die Daten bestimmen, die nötig sind, um eine empfangene Anfrage (z. B. eine Datenspeicheranforderung oder eine Datenabrufanforderung) zu verarbeiten. Die Daten können in einem Zwischenspeicher in der Ausführungsplattform 114 oder in einer Datenspeichereinrichtung in der Cloud-Computing-Dienstplattform 104 gespeichert sein. Ein Managementkonsolendienst 1204 unterstützt den Zugriff auf verschiedene Systeme und Prozesse durch Administratoren und weitere Systemmanager. Zusätzlich kann der Managementkonsolendienst 1204 eine Anforderung empfangen, einen Auftrag auszuführen und die Arbeitsbelastung im System zu überwachen.
  • Der Rechendienstmanager 112 enthält auch einen Auftragskompilierer 1206, eine Auftragsoptimierungseinrichtung 1208 und eine Auftragsausführungseinrichtung 1210. Der Auftragskompilierer 1206 parst einen Auftrag in mehrere diskrete Aufgaben und erzeugt den Ausführungscode für jede der mehreren diskreten Aufgaben. Die Auftragsoptimierungseinrichtung 1208 bestimmt das beste Verfahren, um die mehreren diskreten Aufgaben auszuführen, auf der Grundlage der Daten, die verarbeitet werden müssen. Die Auftragsoptimierungseinrichtung 1208 verarbeitet außerdem verschiedene Datenbeschnittoperationen und weitere Datenoptimierungstechniken, um die Geschwindigkeit und den Wirkungsgrad des Ausführens des Auftrags zu verbessern. Die Auftragsausführungseinrichtung 1210 führt den Ausführungscode für Aufträge aus, die aus einer Warteschlange empfangen wurden, oder die durch den Rechendienstmanager 112 festgelegt sind.
  • Ein Auftragsplanungs- und Auftragskoordinationseinrichtung 1212 sendet empfangene Aufträge zu den geeigneten Diensten oder Systemen zur Kompilierung, Optimierung und Auslieferung zur Ausführungsplattform 114. Zum Beispiel können Aufträge in dieser priorisierten Reihenfolge priorisiert und verarbeitet werden. In einer Ausführungsform bestimmt die Auftragsplanungs- und Auftragskoordinationseinrichtung 1212 eine Priorität für interne Aufträge, die durch den Rechendienstmanager 112 geplant werden, mit weiteren „außerhalb liegenden“ Aufträgen wie z. B. Anwenderabfragen, die durch weitere Systeme in der Datenbank geplant werden können, jedoch dasselbe Verarbeitungsbetriebsmittel in der Ausführungsplattform 114 verwenden können. In einigen Ausführungsformen identifiziert die Auftragsplanungs- und Auftragskoordinationseinrichtung 1212 bestimmte Knoten in der Ausführungsplattform 114, um bestimmte Aufgaben zu verarbeiten, oder weist sie zu. Ein virtueller Lagermanager 1214 managt den Betrieb mehrerer virtueller Lager, die in der Ausführungsplattform 114 implementiert sind. Wie unten diskutiert wird, enthält jedes virtuelle Lager mehrere Ausführungsknoten, die jeweils einen Zwischenspeicher und einen Prozessor enthalten.
  • Zusätzlich enthält der Rechendienstmanager 112 einen Konfigurations- und Metadatenmanager 1216, der die Informationen in Bezug auf die Daten, die in den entfernten Datenspeichereinrichtungen und in den lokalen Zwischenspeichern (d. h. die Zwischenspeicher in der Ausführungsplattform 114) gespeichert sind, managt. Der Konfigurations- und Metadatenmanager 1216 verwendet die Metadaten, um zu bestimmen, auf welche Datenmikropartitionen zugegriffen werden muss, um Daten zum Verarbeiten einer bestimmten Aufgabe oder eines bestimmten Auftrags abzurufen. Eine Überwachungseinrichtung und eine Arbeitsbelastungsanalyseeinrichtung 1218 beaufsichtigen Prozesse, die durch den Rechendienstmanager 112 durchgeführt werden, und managen die Verteilung von Aufgaben (z. B. die Arbeitsbelastung) über die virtuellen Lager und Ausführungsknoten in der Ausführungsplattform 114. Die Überwachungseinrichtung und die Arbeitsbelastungsanalyseeinrichtung 1218 verteilen nach Bedarf auch Aufgaben auf der Grundlage sich ändernder Arbeitsbelastungen überall im Datenlager 102 um und können ferner Aufgaben auf der Grundlage eines (z. B. „externen“) Anwenderanfragearbeitsbelastung, die auch durch die Ausführungsplattform 114 verarbeitet werden kann, umverteilen. Die Konfigurations- und Metadatenmanager 1216 und die Überwachungseinrichtung und Arbeitsbelastungsanalyseeinrichtung 1218 sind an eine Datenspeichereinrichtung 1220 gekoppelt. Die Datenspeichereinrichtung 1220 in 12 repräsentiert eine beliebige Datenspeichereinrichtung im Datenlager 102. Zum Beispiel kann die Datenspeichereinrichtung 1220 Zwischenspeicher in der Ausführungsplattform 114, Speichereinrichtungen in der Cloud-Computing-Dienstplattform 104 oder eine sonstige Speichereinrichtung repräsentieren.
  • 13 ist ein Blockdiagramm, das Komponenten der Ausführungsplattform 114 in Übereinstimmung mit einigen Ausführungsformen der vorliegenden Offenbarung veranschaulicht. Wie in 13 gezeigt ist, enthält die Ausführungsplattform 114 mehrere virtuelle Lager, die ein virtuelles Lager 1, ein virtuelles Lager 2 und ein virtuelles Lager n enthalten. Jedes virtuelle Lager enthält mehrere Ausführungsknoten, die jeweils einen Datenzwischenspeicher und einen Prozessor enthalten. Die virtuellen Lager können unter Verwendung der mehreren Ausführungsknoten mehrere Aufgaben parallel ausführen. Wie hier diskutiert wird, kann die Ausführungsplattform 114 auf der Grundlage der aktuellen Verarbeitungsanforderungen der Systeme und der Anwender in Echtzeit neue virtuelle Lager hinzufügen und vorhandene virtuelle Lager aufgeben. Diese Flexibilität ermöglicht der Ausführungsplattform 114, schnell große Mengen von Rechenbetriebsmitteln bereitzustellen, wenn sie benötigt werden, ohne gezwungen zu sein, ein Bezahlen für diese Rechenbetriebsmittel fortzusetzen, wenn sie nicht mehr benötigt werden. Alle virtuelle Lager können auf Daten einer beliebigen Datenspeichereinrichtung (z. B. eine beliebige Speichereinrichtung in der Cloud-Computing-Dienstplattform 104) zugreifen.
  • Obwohl jedes virtuelle Lager, das in 13 gezeigt ist, drei Ausführungsknoten enthält, kann ein bestimmtes virtuelles Lager eine beliebige Anzahl von Ausführungsknoten enthalten. Ferner ist die Anzahl von Ausführungsknoten in einem virtuellen Lager dynamisch, derart, dass neue Ausführungsknoten erstellt werden, wenn zusätzlicher Bedarf vorhanden ist, und vorhandene Ausführungsknoten gelöscht werden, wenn sie nicht mehr nötig sind.
  • Jedes virtuelle Lager kann auf irgendeine der Datenspeichereinrichtungen 124-1 bis 124-n, die in 1 gezeigt sind, zugreifen. Somit sind die virtuellen Lager nicht notwendigerweise einer bestimmten Datenspeichereinrichtung 124-1 bis 124-n zugewiesen und können stattdessen auf Daten irgendeiner der Datenspeichereinrichtungen 124-1 bis 124-n in der Cloud-Computing-Dienstplattform 104 zugreifen. Ähnlich kann jeder der Ausführungsknoten, die in 13 gezeigt sind, auf Daten irgendeiner der Datenspeichereinrichtungen 124-1 bis 124-n zugreifen. In einigen Ausführungsformen kann ein bestimmtes virtuelles Lager oder ein bestimmter Ausführungsknoten einer bestimmten Datenspeichereinrichtung vorübergehend zugewiesen werden, jedoch kann das virtuelle Lager oder der Ausführungsknoten später auf Daten sonstiger Datenspeichereinrichtung zugreifen.
  • Im Beispiel von 13 enthält das virtuelle Lager 1 drei Ausführungsknoten 1302-1, 1302-2 und 1302-n. Der Ausführungsknoten 1302-1 enthält einen Zwischenspeicher 1304-1 und einen Prozessor 1306-1. Der Ausführungsknoten 1302-2 enthält einen Zwischenspeicher 1304-2 und einen Prozessor 1306-2. Der Ausführungsknoten 1302-n enthält einen Zwischenspeicher 1304-n und einen Prozessor 1306-n. Jeder Ausführungsknoten 1302-1, 1302-2 und 1302-n ist dem Verarbeiten einer oder mehrerer Datenspeicher- und/oder Datenabrufaufgaben zugeordnet. Zum Beispiel kann ein virtuelles Lager Datenspeicher- und Datenabrufaufgaben verarbeiten, die einem internen Dienst wie z. B. einem Gruppierungsdienst, einem Aktualisierungsdienst einer materialisierten Ansicht, einem Dateikomprimierungsdienst, einem Speicherprozedurdienst oder einem Dateiaufrüstdienst zugeordnet sind. In weiteren Implementierungen kann ein bestimmtes virtuelles Lager Datenspeicher- und Datenabrufaufgaben, die einem bestimmten Datenspeichersystem oder einer bestimmten Kategorie von Daten zugeordnet sind, verarbeiten.
  • Ähnlich dem virtuellen Lager 1, das oben diskutiert wird, enthält das virtuelle Lager 2 drei Ausführungsknoten 1312-1, 1312-2 und 1312-n. Der Ausführungsknoten 1312-a enthält einen Zwischenspeicher 1314-1 und einen Prozessor 1316-1. Der Ausführungsknoten 1312-n enthält einen Zwischenspeicher 1314-n und einen Prozessor 1316-n. Der Ausführungsknoten 1312-n enthält einen Zwischenspeicher 1314-n und einen Prozessor 1316-n. Zusätzlich enthält das virtuelle Lager 3 drei Ausführungsknoten 1322-1, 1322-2 und 1322-n. Der Ausführungsknoten 1322-1 enthält einen Zwischenspeicher 1324-1 und einen Prozessor 1326-1. Der Ausführungsknoten 1322-2 enthält einen Zwischenspeicher 1324-2 und einen Prozessor 1326-2. Der Ausführungsknoten 1322-n enthält einen Zwischenspeicher 1324-n und einen Prozessor 1326-n.
  • In einigen Ausführungsformen sind die Ausführungsknoten, die in 13 gezeigt sind, zustandslos in Bezug auf die Daten, die die Ausführungsknoten zwischengespeichert sind. Zum Beispiel werden durch diese Ausführungsknoten keine Zustandsinformationen über den Ausführungsknoten oder die Daten, die durch einen bestimmten Ausführungsknoten zwischengespeichert sind, gespeichert oder auf andere Weise geführt. Somit kann im Falle eines Ausführungsknotenfehlers der ausgefallene Knoten durch weitere Knoten transparent ersetzt werden. Da dem ausgefallenen Ausführungsknoten keine Zustandsinformationen zugeordnet sind, kann der neue Ausführungsknoten (der Ersatzausführungsknoten) den ausgefallenen Knoten einfach ohne Sorge hinsichtlich des Wiederherstellens eines bestimmten Zustands ersetzen.
  • Obwohl die Ausführungsknoten, die in 13 gezeigt sind, jeweils einen Datenzwischenspeicher und einen Prozessor enthalten, können alternative Ausführungsformen Ausführungsknoten enthalten, die eine beliebige Anzahl von Prozessoren und eine beliebige Anzahl von Zwischenspeichern enthalten. Zusätzlich können die Zwischenspeicher hinsichtlich der Größe zwischen den verschiedenen Ausführungsknoten variieren. Die Zwischenspeicher, die in 13 gezeigt sind, speichern im lokalen Ausführungsknoten Daten, die von einer oder mehreren Datenspeichereinrichtungen in der Cloud-Computing-Dienstplattform 104 abgerufen wurden. Somit verringern oder beseitigen die Zwischenspeicher die Engpassprobleme, die in Plattformen auftreten, die immer wieder Daten aus entfernten Speichersystemen abrufen. Statt auf Daten aus den entfernten Speichereinrichtungen wiederholt zuzugreifen, greifen die Systeme und die Verfahren, die hier beschrieben sind, auf Daten aus den Zwischenspeichern in den Ausführungsknoten zu, was wesentlich schneller ist und das Engpassproblem, das oben diskutiert wird, vermeidet. In einigen Ausführungsformen werden die Zwischenspeicher unter Verwendung von Hochgeschwindigkeitsspeichereinrichtungen, die einen schnellen Zugriff auf die zwischengespeicherten Daten bereitstellen, implementiert. Jeder Zwischenspeicher kann Daten irgendeiner der Speichereinrichtungen in der Cloud-Computing-Dienstplattform 104 speichern.
  • Ferner können die Zwischenspeicherbetriebsmittel und die Rechenbetriebsmittel zwischen verschiedenen Ausführungsknoten variieren. Zum Beispiel kann ein Ausführungsknoten wesentliche Rechenbetriebsmittel und minimale Zwischenspeicherbetriebsmittel enthalten, was den Ausführungsknoten nützlich für Aufgaben macht, die wesentliche Rechenbetriebsmittel erfordern. Ein weiterer Ausführungsknoten kann wesentliche Zwischenspeicherbetriebsmittel und minimale Rechenbetriebsmittel enthalten, was diesen Ausführungsknoten für Aufgaben, die ein Zwischenspeichern großer Datenmengen erfordern, nützlich macht. Dennoch können weitere Ausführungsknoten Zwischenspeicherbetriebsmittel enthalten, die schnellere Ein-/Ausgabeoperationen bereitstellen, die für Aufgaben, die ein schnelles Abtasten großer Datenmengen erfordern, nützlich sind. In einigen Ausführungsformen werden die Zwischenspeicherbetriebsmittel und die Rechenbetriebsmittel, die einem bestimmten Ausführungsknoten zugeordnet sind, auf der Grundlage der erwarteten Aufgaben, die durch den Ausführungsknoten durchgeführt werden sollen, bestimmt, wenn der Ausführungsknoten erstellt wird.
  • Zusätzlich können sich die Zwischenspeicherbetriebsmittel und die Rechenbetriebsmittel, die einem bestimmten Ausführungsknoten zugeordnet sind, im Zeitablauf auf der Grundlage des Änderns von Aufgaben, die durch den Ausführungsknoten durchgeführt werden, ändern. Zum Beispiel kann ein Ausführungsknoten mehreren Verarbeitungsbetriebsmitteln zugewiesen werden, wenn die Aufgaben, die durch den Ausführungsknoten durchgeführt werden, prozessorintensiver werden. Ähnlich kann ein Ausführungsknoten mehreren Zwischenspeicherbetriebsmitteln zugewiesen werden, wenn die Aufgaben, die durch den Ausführungsknoten durchgeführt werden, eine größere Zwischenspeicherkapazität erfordern.
  • Obwohl virtuelle Lager 1, 2 und n derselben Ausführungsplattform 114 zugeordnet werden, können die virtuellen Lager unter Verwendung mehrerer Rechensysteme bei mehreren geographischen Orten implementiert werden. Zum Beispiel kann das virtuelle Lager 1 durch ein Rechensystem bei einem ersten geographischen Ort implementiert werden, während die virtuellen Lager 2 und n durch ein weiteres Rechensystem bei einem zweiten geographischen Ort implementiert werden. In einigen Ausführungsformen sind diese verschiedenen Rechensysteme cloudbasierte Rechensysteme, die durch eine oder mehrere verschiedene Einheiten geführt werden.
  • Zusätzlich ist jedes virtuelle Lager in 13 derart gezeigt, dass es mehrere Ausführungsknoten besitzt. Die mehreren Ausführungsknoten, die jedem virtuellen Lager zugeordnet sind, können unter Verwendung mehrerer Rechensysteme bei mehreren geographischen Orten implementiert werden. Zum Beispiel implementiert ein Fall des virtuellen Lagers 1 die Ausführungsknoten 1302-1 und 1302-2 in einer Rechenplattform bei einem geographischen Ort und implementiert den Ausführungsknoten 1302-n bei einer verschiedenen Rechenplattform bei einem weiteren geographischen Ort. Ein Wählen bestimmter Rechensysteme, um einen Ausführungsknoten zu implementieren, kann von verschiedenen Faktoren wie z. B. dem Niveau von Betriebsmitteln, die für einen bestimmten Ausführungsknoten benötigt werden (z. B. Verarbeitungsbetriebsmittelanforderungen und Zwischenspeicheranforderungen), den Betriebsmitteln, die bei bestimmten Rechensystemen verfügbar sind, Kommunikationsleistungsfähigkeiten von Netzen bei einem geographischen Ort oder zwischen geographischen Orte und welche Rechensysteme bereits weitere Ausführungsknoten im virtuellen Lager implementieren, abhängen.
  • Ausführungsplattform 114 ist auch fehlertolerant. Zum Beispiel wird, wenn ein virtuelles Lager ausfällt, dieses virtuelle Lager schnell durch ein verschiedenes virtuelles Lager bei einem verschiedenen geographischen Ort ersetzt.
  • Eine bestimmte Ausführungsplattform 114 kann eine beliebige Anzahl virtueller Lager enthalten. Zusätzlich ist die Anzahl virtueller Lager in einer bestimmten Ausführungsplattform dynamisch, derart, dass neue virtuelle Lager erstellt werden, wenn zusätzliche Verarbeitungs- und/oder Zwischenspeicherbetriebsmittel benötigt werden. Ähnlich können vorhandene virtuelle Lager gelöscht werden, wenn die Betriebsmittel, die dem virtuellen Lager zugeordnet sind, nicht mehr nötig sind.
  • In einigen Ausführungsformen können die virtuellen Lager an denselben Daten in der Cloud-Computing-Dienstplattform 104 arbeiten, jedoch besitzt jedes virtuelle Lager seinen eigenen Ausführungsknoten mit unabhängigen Verarbeitungs- und Zwischenspeicherbetriebsmitteln. Diese Konfiguration ermöglicht, dass Anforderungen in verschiedenen virtuellen Lagern unabhängig und ohne Interferenz zwischen den Anforderungen verarbeitet werden. Dieses unabhängige Verarbeiten, kombiniert mit der Fähigkeit, virtuelle Lager dynamisch hinzuzufügen und zu entfernen, unterstützt das Hinzufügen einer neuen Verarbeitungskapazität für neue Anwender, ohne die Leistungsfähigkeit, die durch die vorhandenen Anwender beobachtet wird, zu beeinflussen.
  • 14 veranschaulicht eine schematische Repräsentation einer Maschine 1400 in Form eines Computersystems, in dem ein Satz von Befehlen ausgeführt werden kann, um die Maschine 1400 zu veranlassen, eine oder mehrere der Methodiken, die hier diskutiert werden, durchzuführen, gemäß einer Beispielausführungsform. Speziell zeigt 14 eine schematische Repräsentation der Maschine 1400 in der Beispielform eines Computersystems, in der Befehle 1416 (z. B. Software, ein Programm, eine Anwendung, ein Applet, eine App oder weiterer ausführbarer Code), um die Maschine 1400 zu veranlassen, eine oder mehrere der Methodiken, die hier diskutiert werden, durchzuführen, ausgeführt werden kann. Zum Beispiel können die Befehle 1416 die Maschine 1400 veranlassen, eine oder mehrere Operationen eines oder mehrerer der Verfahren 500, 600, 700, 800 oder 900 auszuführen. Als weiteres Beispiel können die Befehle 1416 die Maschine 1400 veranlassen, Abschnitte der Datenströme zu implementieren, die in einer oder mehreren von 2-4 veranschaulicht sind. Auf diese Weise wandeln die Befehle 1416 eine allgemeine, nicht programmierte Maschine in eine bestimmte Maschine 1400 (z. B. die entfernte Rechenumgebung 106, das Zugriffsmanagementsystem 110, der Rechendienstmanager 112, die Ausführungsplattform 114, das Zugriffsmanagementsystem 118, das Internet-API-Managementsystem 120 und die Recheneinrichtungen 203, 207, 307 und 401) um, die speziell konfiguriert ist, eine der beschriebenen und veranschaulichten Funktionen auf die hier beschriebene Weise auszuführen.
  • In alternativen Ausführungsformen arbeitet die Maschine 1400 als eine eigenständige Einrichtung oder kann an weitere Maschinen gekoppelt sein (z. B. vernetzt). In einem vernetzten Einsatz kann die Maschine 1400 in der Kapazität einer Server-Maschine oder einer Client-Maschine in einer Server/Client-Netzumgebung oder als eine Partnermaschine in einer Peer-to-Peer-Netzumgebung (oder einer verteilten Netzumgebung) arbeiten. Die Maschine 1400 kann einen Server-Computer, einen Client-Computer, einen persönlichen Computer (PC), einen Tabletcomputer, einen Laptopcomputer, ein Netbook, ein Smartphone, eine mobile Einrichtung, einen Netz-Router, einen Netz-Switch, eine Netzbrücke oder eine beliebige Maschine, die die Befehle 1416, die Aktionen, die durch die Maschine 1400 vorgenommen werden sollen, festlegen, sequenziell oder auf andere Weise ausführen kann, umfassen, muss jedoch nicht darauf beschränkt sein. Ferner soll, während lediglich eine einzelne Maschine 1400 veranschaulicht ist, auch angenommen werden, dass der Begriff „Maschine“ eine Sammlung von Maschinen 1400 enthält, die einzeln oder gemeinsam die Befehle 1416 ausführen, um eine oder mehrere der Methodiken, die hier diskutiert werden, durchzuführen.
  • Die Maschine 1400 enthält Prozessoren 1410, Speicher 1430 und Eingabe-/Ausgabe-Komponenten (I/O-Komponenten) 1450, die konfiguriert sind, z. B. mittels eines Busses 1402 miteinander zu kommunizieren. In einer Beispielausführungsform können die Prozessoren 1410 (z. B. eine Zentraleinheit (CPU), ein Prozessor zur Berechnung mit verringertem Befehlssatz (RISC-Prozessor), ein Prozessor zur Berechnung mit komplexem Befehlssatz (CISC-Prozessor), eine Grafikverarbeitungseinheit (GPU), ein digitaler Signalprozessor (DSP), eine anwendungsspezifische integrierte Schaltung (ASIC), eine integrierte Hochfrequenzschaltung (RFIC), weitere Prozessoren oder eine beliebige geeignete Kombination davon) z. B. einen Prozessor 1412 und einen Prozessor 1414, die die Befehle 1416 ausführen können, enthalten. Der Begriff „Prozessor“ ist derart vorgesehen, dass er Mehrkernprozessoren 1410 enthält, die zwei oder mehr unabhängige Prozessoren (die manchmal als „Kerne“ bezeichnet werden) umfassen können, die Befehle 1416 gleichzeitig ausführen können. Obwohl 14 mehrere Prozessoren 1410 zeigt, kann die Maschine 1400 einen einzelnen Prozessor mit einem einzelnen Kern, einen einzelnen Prozessor mit mehreren Kernen (z. B. ein Mehrkernprozessor), mehrere Prozessoren mit einem einzelnen Kern, mehrere Prozessoren mit mehreren Kernen oder eine beliebige Kombination davon enthalten.
  • Der Speicher 1430 kann einen Hauptspeicher 1432, einen statischen Speicher 1434 und eine Speichereinheit 1436 enthalten, die alle für die Prozessoren 1410 wie z. B. mittels des Busses 1402 zugänglich sind. Der Hauptspeicher 1432, der statische Speicher 1434 und die Speichereinheit 1436 speichern die Befehle 1416, die eine oder mehrere der Methodiken oder Funktionen, die hier beschrieben sind, verkörpern. Die Befehle 1416 können sich während ihrer Ausführung durch die Maschine 1400 auch vollständig oder teilweise im Hauptspeicher 1432, im statischen Speicher 1434, in der Speichereinheit 1436, in mindestens einem der Prozessoren 1410 (z. B. im Zwischenspeicher des Prozessors) oder in einer beliebigen geeigneten Kombination davon befinden.
  • Die Ein-/Ausgabekomponenten 1450 enthalten Komponenten, um eine Eingabe zu empfangen, eine Ausgabe bereitzustellen, eine Ausgabe zu erzeugen, Informationen zu senden, Informationen auszutauschen, Messwerte aufzunehmen usw. Die bestimmten Ein-/Ausgabekomponenten 1450, die in einer bestimmten Maschine 1400 enthalten sind, werden vom Typ der Maschine abhängen. Zum Beispiel enthalten tragbare Maschinen wie z. B. Mobiltelefone wahrscheinlich eine Berührungseingabeeinrichtung oder weitere derartige Eingangsmechanismen, während eine monitorlose Server-Maschine wahrscheinlich keine derartige Berührungseingabeeinrichtung enthält. Es wird begrüßt werden, dass die Ein-/Ausgabekomponenten 1450 viele weitere Komponenten enthalten können, die in 14 nicht gezeigt sind. Die Ein-/Ausgabekomponenten 1450 sind lediglich gemäß der Funktionalität gruppiert, um die folgende Diskussion zu vereinfachen, und die Gruppierung ist in keiner Weise einschränkend. In verschiedenen Beispielausführungsformen können die Ein-/Ausgabekomponenten 1450 Ausgangskomponenten 1452 und Eingabekomponenten 1454 enthalten. Die Ausgangskomponenten 1452 können optische Komponenten (z. B. eine Anzeigevorrichtung wie z. B. ein Plasmaanzeigefeld (PDP), eine Leuchtdiodenanzeige (LED-Anzeige), eine Flüssigkristallanzeige (LCD), einen Projektor oder eine Kathodenstrahlröhre (CRT)), akustische Komponenten (z. B. Lautsprecher), weitere Signalgeneratoren usw. enthalten. Die Eingabekomponenten 1454 können alphanumerische Eingabekomponenten (z. B. eine Tastatur, einen Berührungsbildschirm, der konfiguriert ist, alphanumerische Eingaben aufzunehmen, eine fotooptische Tastatur oder weitere alphanumerische Eingabekomponenten), Eingabekomponenten auf der Grundlage von Zeigen (z. B. eine Maus, ein berührungsempfindliches Bedienfeld, ein Trackball, ein Steuerknüppel, ein Bewegungssensor oder weitere Zeigemittel), taktile Eingabekomponenten (z. B. eine physische Taste, ein Berührungsbildschirm, der den Ort und/oder die Kraft von Berührungen oder Berührungsgesten liefert, oder weitere taktile Eingabekomponenten), Audioeingabekomponenten (z. B. ein Mikrofon) und dergleichen enthalten.
  • Kommunikation können unter Verwendung einer Vielzahl von Techniken implementiert werden. Die Ein-/Ausgabekomponenten 1450 können Kommunikationskomponenten 1464 enthalten, die betreibbar sind, die Maschine 1400 an ein Netz 1480 oder Einrichtungen 1470 mittels einer Kopplung 1482 bzw. einer Kopplung 1472 zu koppeln. Zum Beispiel können die Kommunikationskomponenten 1464 eine Netzschnittstellenkomponente oder eine weitere geeignete Einrichtung enthalten, um an das Netz 1480 zu koppeln. In weiteren Beispielen können die Kommunikationskomponenten 1464 drahtgebundene Kommunikationskomponenten, Drahtloskommunikationskomponenten, Mobilkommunikationskomponenten und weitere Kommunikationskomponenten enthalten, um eine Kommunikation mittels weiterer Modalitäten zu schaffen. Die Einrichtungen 1470 können eine weitere Maschine oder beliebige einer Vielzahl von Peripherieeinrichtungen (z. B. eine Peripherieeinrichtung, die mittels eines universellen seriellen Busses (USB) gekoppelt ist) sein. Zum Beispiel kann, wie oben erwähnt ist, die Maschine 1400 einer bzw. einem der entfernten Rechenumgebung 106, des Zugriffsmanagementsystems 110, des Rechendienstmanagers 112, der Ausführungsplattform 114, des Zugriffsmanagementsystems 118, des Internet-API-Managementsystems 120 und der Recheneinrichtungen 203, 207, 307 und 401 entsprechen und können die Einrichtungen 1470 jegliche weitere dieser Systeme und Einrichtungen enthalten.
  • AUSFÜHRBARE BEFEHLE UND MASCHINENSPEICHERMEDIUM
  • Die verschiedenen Arbeitsspeicher (z. B. 1430, 1432, 1434 und/oder Arbeitsspeicher des einen oder der mehreren Prozessoren 1410 und/oder die Speichereinheit 1436) können einen oder mehrere Sätze von Befehle 1416 und Datenstrukturen (z. B. Software), die eine oder mehrere der Methodiken oder Funktionen, die hier beschrieben sind, verkörpern oder durch sie verwendet werden, speichern. Diesen Befehle 1416 verursachen, wenn sie durch den einen oder die mehreren Prozessoren 1410 ausgeführt werden, verschiedene Operationen, um die offenbarten Ausführungsformen zu implementieren.
  • Wie hierin verwendet bedeuten die Begriffe „Maschinenspeichermedium“, „Einrichtungsspeichermedium“ und „Computerspeichermedium“ Dasselbe und können in dieser Offenbarung austauschbar verwendet werden. Die Begriffe beziehen sich auf einzelne oder mehrere Speichereinrichtungen und/oder Speichermedien (z. B. eine zentralisierte oder eine verteilte Datenbank und/oder zugeordnete Zwischenspeicher und Server), die ausführbare Befehle und/oder Daten speichern. Entsprechend soll angenommen werden, dass die Begriffe Festkörperspeicher und optische Medien und Magnetmedien, die prozessorinternen oder prozessorexternen Speicher enthalten, jedoch nicht darauf beschränkt sind. Bestimmte Beispiele von Maschinenspeichermedien, Computerspeichermedien und/oder Einrichtungsspeichermedien enthalten nichtflüchtigen Arbeitsspeicher, der beispielhaft Halbleiterspeichereinrichtungen, z. B. löschbaren programmierbaren Festwertspeicher (EPROM), elektrisch löschbaren programmierbaren Festwertspeicher (EEPROM), feldprogrammierbare Gate-Arrays (FPGA) und Flash-Speichereinrichtungen; magnetische Datenträger wie z. B. interne Festplatten und austauschbare Datenträger; magnetooptische Datenträger und CD-ROM- und DVD-ROM-Datenträger enthält. Die Begriffe „Maschinenspeichermedien“, „Computerspeichermedien“ und „Einrichtungsspeichermedien“ schließen speziell Trägerschwingungen, modulierte Datensignale und weiter derartige Medien aus, wovon mindestens einige unter dem Begriff „Signalmedium“, der unten diskutiert wird, abgedeckt sind.
  • ÜBERTRAGUNGSMEDIUM
  • In verschiedenen Beispielausführungsformen können ein oder mehrere Abschnitte des Netzes 980 ein Ad-hoc-Netz, ein Intranet, ein Extranet, ein virtuelles privates Netz (VPN), ein lokales Netz (LAN), ein drahtloses LAN (WLAN), ein Großraumnetz (WAN), ein drahtloses WAN (WWAN), ein Stadtbereichsnetz (MAN), das Internet, ein Abschnitt des Internets, ein Abschnitt des öffentlichen Fernsprechwählnetzes (PSTN), ein gutes altes Telefondienstnetz (POTS-Netz), ein Mobiltelefonnetz, ein Drahtlosnetz, ein Wi-Fi®-Netz, ein weiterer Typ eines Netzes oder eine Kombination von zwei oder mehr derartigen Netzen sein. Zum Beispiel kann das Netz 1480 oder ein Abschnitt des Netzes 1480 ein drahtloses oder ein zellulares Netz enthalten und kann die Kopplung 1482 eine Codemultiplex-Mehrfachzugriffverbindung (CDMA-Verbindung), ein Verbindung des globalen Systems für Mobilkommunikation (GSM) oder ein weiterer Typ einer zellularen oder einer drahtlosen Kopplung sein. In diesem Beispiel kann die Kopplung 1482 einen beliebigen einer Vielzahl von Typen einer Datenübertragungstechnologie wie z. B. Einzelträgerfunkübertragungstechnologie (1xRTT), optimierte Entwicklungsdaten-Technologie (EVDO-Technologie), allgemeine Paketfunkdienst-Technologie (GPRS-Technologie), die Technologie verbesserter Datenraten zur GSM-Entwicklung (EDGE-Technologie), Partnerschaftsprojekt der dritten Generation (3GPP) einschließlich 3G, Drahtlosnetze der vierten Generation (4G-Netze), universelles Mobiltelekommunikationssystem (UMTS), Hochgeschwindigkeitszugang (HSPA), weltweite Interoperabilität für Mikrowellenzugang (WiMAX), die Langzeitentwicklungsnorm (LTE-Norm), sonstiges verschiedener Normungsgremien, weitere Protokolle großer Reichweite oder eine weitere Datenübertragungstechnologie implementieren.
  • Die Befehle 1416 können unter Verwendung eines Übertragungsmediums mittels einer Netzschnittstelleneinrichtung (z. B. eine Netzschnittstellenkomponente, die in den Kommunikationskomponenten 1464 enthalten ist) und unter Verwendung eines mehrerer bekannter Übertragungsprotokolle (z. B. Hypertext-Übertragungsprotokoll (HTTP)) über das Netz 1480 gesendet oder empfangen werden. Ähnlich können die Befehle 1416 unter Verwendung eines Übertragungsmediums mittels der Kopplung 1472 (z. B. eine Peer-to-Peer-Kopplung) an die Einrichtungen 1470 gesendet oder empfangen werden. Die Begriffe „Übertragungsmedium“ und „Signalmedium“ bedeuten Dasselbe und können in dieser Offenbarung austauschbar verwendet werden. Es soll angenommen werden, dass die Begriffe „Übertragungsmedium“ und „Signalmedium“ ein beliebiges immaterielles Medium enthalten, das die Befehle 1416 zur Ausführung durch die Maschine 1400 Speichern, Codieren oder Führen kann, und digitale oder analoge Kommunikationssignale oder weitere immaterielle Medien, um die Kommunikation einer derartigen Software zu erleichtern, enthalten. Daher soll angenommen werden, dass die Begriffe „Übertragungsmedium“ und „Signalmedium“ eine beliebige Form eines modulierten Datensignals, einer Trägerschwingung, usw. enthalten. Der Begriff „moduliertes Datensignal“ bedeutet ein Signal, wovon eine oder mehrere Eigenschaften in einer derartigen Weise, dass Informationen im Signal codieren werden, eingestellt oder geändert werden.
  • COMPUTERLESBARES MEDIUM
  • Die Begriffe „maschinenlesbare Medium“, „computerlesbare Medium“ und „vorrichtungslesbares Medium“ bedeuten Dasselbe und können in dieser Offenbarung austauschbar verwendet werden. Die Begriffe werden derart definiert, dass sie sowohl Maschinenspeichermedien als auch Übertragungsmedien enthalten. Somit enthalten die Begriffe sowohl Speichereinrichtungen/Speichermedien als auch Trägerschwingungen/modulierte Datensignale.
  • Die verschiedenen Operationen von Beispielverfahren, die hier beschrieben sind, können mindestens teilweise durch einen oder mehrere Prozessoren durchgeführt werden, die vorübergehend (z. B. durch Software) konfiguriert sind oder dauerhaft konfiguriert sind, die relevanten Operationen durchzuführen. Ähnlich können die Verfahren, die hier beschrieben sind, mindestens teilweise prozessorimplementiert sein. Zum Beispiel können mindestens einige der Operationen der Verfahren 500, 600, 700, 800 und 900 durch einen oder mehrere Prozessoren durchgeführt werden. Die Leistung bestimmter Operationen kann unter dem einen oder den mehreren Prozessoren, die sich nicht nur in einer einzelnen Maschine befinden, sondern auch über mehrere Maschinen bereitgestellt sind. In einigen Beispielausführungsformen können sich der Prozessor oder die Prozessoren bei einem einzelnen Ort befinden (z. B. in einer häuslichen Umgebung, einer Büroumgebung oder einer Server-Farm), während die Prozessoren in weiteren Ausführungsformen über mehrere Orte verteilt sein können.
  • Obwohl die Ausführungsformen der vorliegenden Offenbarung unter Bezugnahme auf spezifische Beispielausführungsformen beschrieben wurden, wird offensichtlich, dass verschiedene Modifikationen und Änderungen an diesen Ausführungsformen vorgenommen werden können, ohne vom weiteren Umfang des Erfindungsgegenstands abzuweichen. Entsprechend sollen die Spezifikation und die Zeichnungen in einem veranschaulichenden statt einem einschränkenden Sinn betrachtet werden. Die begleitenden Zeichnungen, die einen Teil hiervon bilden, zeigen veranschaulichend und nicht einschränkend spezifische Ausführungsformen, in denen der Gegenstand praktiziert werden kann. Die veranschaulichte Ausführungsformen werden ausreichend detailliert beschrieben, um Fachleuten zu ermöglichen, die Unterweisungen, die hier offenbart sind, zu praktizieren. Weitere Ausführungsformen können verwendet und daraus abgeleitet werden, derart, dass strukturelle und logische Ersetzungen und Änderungen vorgenommen werden können, ohne vom Umfang dieser Offenbarung abzuweichen. Diese genaue Beschreibung soll deshalb nicht einschränkend verstanden werden und der Umfang von verschiedenen Ausführungsformen ist lediglich durch die beigefügten Ansprüche zusammen mit dem gesamten Bereich von Entsprechungen, zu denen derartige Ansprüche berechtigt sind, definiert.
  • Derartige Ausführungsformen des Erfindungsgegenstands können hier lediglich zweckmäßigerweise und ohne zu beabsichtigen, freiwillig den Umfang dieser Anwendung auf eine beliebige einzelne Erfindung oder einen beliebigen einzelnen Erfindungsgedanken zu beschränken, wenn tatsächlich mehrere offenbart sind, einzeln und/oder gemeinsam durch den Begriff „Erfindung“ bezeichnet werden. Somit ist, obwohl hier spezifische Ausführungsformen veranschaulicht und beschrieben wurden, zu bedenken, dass eine beliebige Anordnung, die bestimmt ist, denselben Zweck zu erreichen, für die spezifischen Ausführungsformen, die gezeigt sind, substituiert werden kann. Diese Offenbarung ist vorgesehen, sämtliche Anpassungen oder Variationen von verschiedene Ausführungsformen abzudecken. Kombinationen der oben beschriebenen Ausführungsformen und weiterer Ausführungsformen, die hier nicht speziell beschrieben sind, werden für Fachleute aufgrund der Durchsicht der Beschreibung oberhalb deutlich.
  • In diesem Dokument werden die Begriffe „eine“ oder „ein“, wie es in Patentdokumenten üblich ist, derart verwendet, dass sie eines oder mehr als eines aufweisen, unabhängig von sonstigen Instanzen oder Verwendungen von „mindestens eine“ oder „ein oder mehrere“. In diesem Dokument wird der Begriff „oder“ verwendet, um sich auf ein nichtexklusives oder zu beziehen, derart, dass „A oder B“ „A jedoch nicht B“, „B jedoch nicht A“ und „A und B“ enthält, sofern es nicht anders angegeben ist. In den beigefügten Ansprüchen werden die Begriffe „enthält“ und „wobei“ als die Klartextentsprechungen der jeweiligen Begriffe „umfasst“ und „wobei“ verwendet. Außerdem sind in den folgenden Ansprüchen die Begriffe „enthält“ und „umfasst“ unbegrenzt; d. h. ein System, eine Einrichtung, ein Artikel oder ein Prozess, das bzw. die bzw. der Elemente zusätzlich zu denen, die nach einem derartigen Begriff in einem Anspruch gelistet sind, enthält, wird immer noch als in den Umfang dieses Anspruchs fallend betrachtet.
  • BEISPIELE
  • Beispiel 1 ist ein Rechendienstmanager, der mindestens einen Hardware-Prozessor umfasst, wobei der Rechendienstmanager ausgelegt ist, Operationen durchzuführen, die Folgendes umfassen: Empfangen von einer Recheneinrichtung einer Abfrage, die auf eine Funktion, die einer entfernten Software-Komponente zugeordnet ist, Bezug nimmt; und Erhalten von einer Cloud-Computing-Dienstplattform, die mindestens eine netzzugängliche Speichereinrichtung umfasst, vorläufiger Sicherheitszugangsdaten, die einer Rolle mit zugeordneten Privilegien zum Senden von Aufrufen zu einem Internetendpunkt, der der entfernten Software-Komponente entspricht, entsprechen, wobei die Cloud-Computing-Dienstplattform vom Rechendienstmanager unabhängig ist; und eine Ausführungsplattform, die an den Rechendienstmanager gekoppelt ist, wobei die Ausführungsplattform mehrere Rechenknoten umfasst und mindestens einer der Rechenknoten ausgelegt ist, Operationen durchzuführen, die Folgendes umfassen: Senden zu einem Internet-API-Managementsystem der Cloud-Computing-Dienstplattform einer Anforderung, die, wenn sie durch das Internet-API-Managementsystem empfangen wird, das Internet-API-Managementsystem veranlasst, eine externe Funktionalität, die durch die entfernte Software-Komponente beim Internetendpunkt bereitgestellt wird, in Bezug auf Eingangsdaten, die in der Anforderung enthalten sind, aufzurufen, wobei die Anforderung unter Verwendung der vorläufigen Sicherheitszugangsdaten elektronisch unterzeichnet ist; Empfangen vom Internet-API-Managementsystem einer Antwort auf die Anforderung, wobei die Antwort Ergebnisdaten umfasst, die ein Ergebnis des Aufrufens der externen Funktionalität umfassen; und Verarbeiten der Ergebnisdaten gemäß der Abfrage.
  • In Beispiel 2 umfasst der Gegenstand von Beispiel 1 wahlweise ferner Folgendes: Zugreifen in Reaktion auf ein Empfangen der Abfrage auf ein Funktionsobjekt, das der entfernten Software-Komponente zugeordnet ist, von einer Datenbank, wobei das Funktionsobjekt den Internetendpunkt und ein Integrationsobjekt, das der entfernten Software-Komponente zugeordnet ist, identifiziert; und Zugreifen von der Datenbank auf das Integrationsobjekt, wobei das Integrationsobjekt die Rolle bei der Cloud-Computing-Dienstplattform identifiziert.
  • In Beispiel 3 umfasst der Gegenstand eines der Beispiele 1 und 2 wahlweise ferner Folgendes: Empfangen einer ersten Betriebsmittelkennung, die der Rolle bei der Cloud-Computing-Dienstplattform entspricht; und Erzeugen eines Integrationsobjekt in der Datenbank auf der Grundlage der ersten Betriebsmittelkennung.
  • In Beispiel 4 umfasst der Gegenstand eines der Beispiele 1-3 wahlweise ferner Folgendes: Empfangen einer Funktionsdefinition, die ein Integrationsobjekt und den Zielendpunkt identifiziert; und Erzeugen eines Funktionsobjekt in der Datenbank auf der Grundlage der Funktionsdefinition.
  • Beispiel 5 umfasst den Gegenstand eines der Beispiele 1-4, wobei ein Integrationsobjekt wahlweise eine erste Betriebsmittelkennung und eine zweite Betriebsmittelkennung, die einem Anwenderdatensatz, der durch das netzbasierte Datenlagersystem geführt wird, entspricht, umfasst, wobei der Anwenderdatensatz bei der Cloud-Computing-Dienstplattform der Rolle zugeordnet ist; und das Erhalten der vorläufigen Sicherheitszugangsdaten wahlweise Folgendes umfasst: Zugreifen von der Datenbank auf Sicherheitszugangsdaten, die dem Anwenderdatensatz, der durch das netzbasierte Datenlagersystem geführt wird, zugeordnet sind; und Senden zur Cloud-Computing-Dienstplattform einer Anforderung der vorläufigen Sicherheitszugangsdaten, wobei die Anforderung die erste und die zweite Betriebsmittelkennung und die Sicherheitszugangsdaten, die dem Anwenderdatensatz, der durch das netzbasierte Datenlager geführt wird, zugeordnet sind, umfasst.
  • Beispiel 6 umfasst den Gegenstand eines der Beispiele 1-5, wobei ein Integrationsobjekt wahlweise ferner Daten umfasst, die zulässige einheitliche Betriebsmittellokatoren (URLs) definieren; und die Operationen wahlweise Folgendes umfassen: Bestätigen in Reaktion auf das Empfangen der Abfrage, dass ein Anwender, der der Abfrage zugeordnet ist, Verwendungsrechte besitzt, die dem Integrationsobjekt zugeordnet sind; und Bestätigen, dass der Internetendpunkt zulässig ist, auf der Grundlage des Schemas.
  • In Beispiel 7 umfasst der Gegenstand eines der Beispiele 1-6 wahlweise ferner Folgendes: Detektieren eines Ablaufens der vorläufigen Sicherheitszugangsdaten vor dem Empfangen der Antwort vom Internet-API-Managementsystem und Aktualisieren der vorläufigen Sicherheitszugangsdaten in Reaktion auf ein Detektieren des Ablaufens der vorläufigen Sicherheitszugangsdaten.
  • Beispiel 8 umfasst den Gegenstand eines der Beispiele 1-7 und das Verarbeiten der Ergebnisdaten umfasst wahlweise Folgendes: Speichern der Ergebnisdaten und/oder Durchführen einer oder mehrerer Aktionen an den Ergebnisdaten
  • In Beispiel 9 umfasst der Gegenstand eines der Beispiele 1-8 wahlweise ferner ein Parsen der Antwort, um die Ergebnisdaten zu extrahieren.
  • Beispiel 10 umfasst den Gegenstand eines der Beispiele 19, wobei die Anforderung wahlweise eine Hypertext-Übertragungsprotokollanforderung (HTTP-Anforderung) umfasst; die Antwort wahlweise eine HTTP-Antwort umfasst; die Eingangsdaten wahlweise in JavaScript-Objektnotation codierte Daten (JSON-codierte Daten), Apache-Arrow-codierte Daten oder in eXtensible-Auszeichnungssprache codierte Daten (XML-codierte Daten) umfassen; und die Ergebnisdaten wahlweise JSON-codierte Daten, Apache-Arrow-codierte Daten oder XML-codierte Daten umfassen.
  • Beispiel 11 umfasst den Gegenstand eines der Beispiele 110, wobei die externe Funktionalität, die durch die entfernte Software-Komponente bereitgestellt wird, wahlweise Folgendes umfasst: eine Skalarfunktion oder eine Tabellenfunktion oder eine Prozedur.
  • Beispiel 12 ist ein Verfahren, das Folgendes umfasst: Empfangen bei einem netzbasierten Datenlager, das mindestens ein Rechensystem, das einen oder mehrere Prozessoren umfasst, umfasst, einer Abfrage, die auf eine Funktion, die einer entfernten Software-Komponente zugeordnet ist, Bezug nimmt; Erhalten von einer Cloud-Computing-Dienstplattform vorläufiger Sicherheitszugangsdaten, die einer Rolle mit zugeordneten Privilegien zum Senden von Aufrufen zu einem Internetendpunkt, der der entfernten Software-Komponente entspricht, entsprechen; Senden vom netzbasierten Datenlager zu einem Internet-API-Managementsystem der Cloud-Computing-Dienstplattform einer Anforderung, die, wenn sie durch das Internet-API-Managementsystem empfangen wird, das Internet-API-Managementsystem veranlasst, eine externe Funktionalität, die durch die entfernte Software-Komponente beim Internetendpunkt bereitgestellt wird, in Bezug auf Eingangsdaten, die in der Anforderung enthalten sind, aufzurufen, wobei die Anforderung unter Verwendung der vorläufigen Sicherheitszugangsdaten elektronisch unterzeichnet ist; Empfangen beim netzbasierten Datenlager vom Internet-API-Managementsystem einer Antwort auf die Anforderung, wobei die Antwort Ergebnisdaten umfasst, die ein Ergebnis des Aufrufens der externen Funktionalität umfassen; und Verarbeiten beim netzbasierten Datenlagersystem von Ergebnisdaten gemäß der Abfrage.
  • In Beispiel 13 umfasst der Gegenstand von Beispiel 12 wahlweise ferner Folgendes: Zugreifen in Reaktion auf ein Empfangen der Abfrage auf ein Funktionsobjekt, das der entfernten Software-Komponente zugeordnet ist, von einer Datenbank, wobei das Funktionsobjekt den Internetendpunkt und ein Integrationsobjekt, das der entfernten Software-Komponente zugeordnet ist, identifiziert; und Zugreifen von der Datenbank auf das Integrationsobjekt, wobei das Integrationsobjekt die Rolle bei der Cloud-Computing-Dienstplattform identifiziert.
  • In Beispiel 14 umfasst der Gegenstand eines der Beispiele 12 und 14 wahlweise ferner Folgendes: Empfangen einer ersten Betriebsmittelkennung, die der Rolle bei der Cloud-Computing-Dienstplattform entspricht; und Erzeugen eines Integrationsobjekt in der Datenbank auf der Grundlage der ersten Betriebsmittelkennung.
  • In Beispiel 15 umfasst der Gegenstand eines der Beispiele 12-14 wahlweise ferner ein Empfangen einer Funktionsdefinition, die ein Integrationsobjekt und den Zielendpunkt identifiziert; und Erzeugen eines Funktionsobjekt in der Datenbank auf der Grundlage der Funktionsdefinition.
  • Beispiel 16 umfasst den Gegenstand eines der Beispiele 12-15, wobei ein Integrationsobjekt wahlweise eine erste Betriebsmittelkennung und eine zweite Betriebsmittelkennung, die einem Anwenderdatensatz, der durch das netzbasierte Datenlagersystem geführt wird, entsprechen, umfasst, wobei der Anwenderdatensatz bei der Cloud-Computing-Dienstplattform der Rolle zugeordnet ist; und das Erhalten der vorläufigen Sicherheitszugangsdaten wahlweise Folgendes umfasst: Zugreifen von der Datenbank auf Sicherheitszugangsdaten, die dem Anwenderdatensatz, der durch das netzbasierte Datenlagersystem geführt wird, zugeordnet sind; und Senden zur Cloud-Computing-Dienstplattform einer Anforderung der vorläufigen Sicherheitszugangsdaten, wobei die Anforderung die erste und die zweite Betriebsmittelkennung und die Sicherheitszugangsdaten, die dem Anwenderdatensatz, der durch das netzbasierte Datenlager geführt wird, zugeordnet sind, umfasst.
  • Beispiel 17 umfasst dem Gegenstand eines der Beispiele 121-6, wobei ein Integrationsobjekt wahlweise ferner Daten umfasst, die zulässige einheitliche Betriebsmittellokatoren (URLs) definieren; und die Operationen wahlweise Folgendes umfassen: Bestätigen in Reaktion auf das Empfangen der Abfrage, dass ein Anwender, der der Abfrage zugeordnet ist, Verwendungsrechte besitzt, die dem Integrationsobjekt zugeordnet sind; und Bestätigen, dass der Internetendpunkt auf der Grundlage der zulässigen URLs zulässig ist.
  • In Beispiel 18 umfasst der Gegenstand eines der Beispiele 12-17 wahlweise ferner Folgendes: Detektieren eines Ablaufens der vorläufigen Sicherheitszugangsdaten vor dem Empfangen der Antwort vom Internet-API-Managementsystem und Aktualisieren der vorläufigen Sicherheitszugangsdaten in Reaktion auf ein Detektieren des Ablaufens der vorläufigen Sicherheitszugangsdaten.
  • In Beispiel 19 umfasst der Gegenstand eines der Beispiele 12-18 wahlweise ferner ein Parsen der Antwort, um die Ergebnisdaten zu extrahieren.
  • Beispiel 20 ist ein Computerspeichermedium, das Befehle enthält, die, wenn sie durch eine Verarbeitungseinrichtung ausgeführt werden, die Verarbeitungseinrichtung konfigurieren, Operationen durchzuführen, die Folgendes umfassen: Empfangen von einer Recheneinrichtung einer Abfrage, die auf eine Funktion, die einer entfernten Software-Komponente zugeordnet ist, Bezug nimmt; Erhalten von einer Cloud-Computing-Dienstplattform vorläufiger Sicherheitszugangsdaten, die einer Rolle mit zugeordneten Privilegien zum Senden von Aufrufen zu einem Internetendpunkt, der der entfernten Software-Komponente entspricht, entsprechen; Senden zu einem Internet-API-Managementsystem der Cloud-Computing-Dienstplattform einer Anforderung, die, wenn sie durch das Internet-API-Managementsystem empfangen wird, das Internet-API-Managementsystem veranlasst, eine externe Funktionalität, die durch die entfernte Software-Komponente beim Internetendpunkt bereitgestellt wird, in Bezug auf Eingangsdaten, die in der Anforderung enthalten sind, aufzurufen, wobei die Anforderung unter Verwendung der vorläufigen Sicherheitszugangsdaten elektronisch unterzeichnet ist; Empfangen vom Internet-API-Managementsystem einer Antwort auf die Anforderung, wobei die Antwort Ergebnisdaten umfasst, die ein Ergebnis des Aufrufens der externen Funktionalität umfassen; und Verarbeiten der Ergebnisdaten gemäß der Abfrage.
  • In einem weiteren Beispiel wird eine Abfrage, die auf eine Funktion, die einer entfernten Software-Komponente zugeordnet ist, Bezug nimmt, durch ein netzbasiertes Datenlagersystem empfangen. Vorläufige Sicherheitszugangsdaten, die einer Rolle bei einer Cloud-Computing-Dienstplattform entsprechen, werden erhalten. Die Rolle besitzt eine Genehmigung, Aufrufe zu einem Internetendpunkt, der der entfernten Software-Komponente entspricht, zu senden. Eine Anforderung, die Eingangsdaten umfasst und unter Verwendung der vorläufigen Sicherheitszugangsdaten elektronisch unterzeichnet ist, wird zu einem Internet-Anwendungsprogrammierschnittstellen-Managementsystem (Internet-API-Managementsystem) der Cloud-Computing-Dienstplattform gesendet. Die Anforderung veranlasst, wenn sie durch das Internet-API-Managementsystem empfangen wird, das Internet-API-Managementsystem, eine externe Funktionalität, die durch die entfernte Software-Komponente bei dem Internetendpunkt in Bezug auf die Eingangsdaten bereitgestellt wird, aufzurufen. Eine Antwort, die ein Ergebnis des Aufrufens der externen Funktionalität umfasst, wird vom Internet-API-Managementsystem empfangen und die Ergebnisdaten werden gemäß der Abfrage verarbeitet.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 16/666911 [0001]

Claims (20)

  1. Netzbasiertes Datenlagersystem, das Folgendes umfasst: einen Rechendienstmanager, der mindestens einen Hardware-Prozessor umfasst, wobei der Rechendienstmanager ausgelegt ist, Operationen durchzuführen, die Folgendes umfassen: Empfangen von einer Recheneinrichtung einer Abfrage, die auf eine Funktion, die einer entfernten Software-Komponente zugeordnet ist, Bezug nimmt; und Erhalten von einer Cloud-Computing-Dienstplattform, die mindestens eine netzzugängliche Speichereinrichtung umfasst, vorläufiger Sicherheitszugangsdaten, die einer Rolle mit zugeordneten Privilegien, Aufrufe zu einem Endpunkt, der der entfernten Software-Komponente entspricht, zu senden, entsprechen, wobei die Cloud-Computing-Dienstplattform vom Rechendienstmanager unabhängig ist; und eine Ausführungsplattform, die an den Rechendienstmanager gekoppelt ist, wobei die Ausführungsplattform mehrere Rechenknoten umfasst und mindestens einer der Rechenknoten ausgelegt ist, Operationen durchzuführen, die Folgendes umfassen: Senden zu einem Internet-Anwendungsprogrammierschnittstellen-Managementsystem (Internet-API-Managementsystem) der Cloud-Computing-Dienstplattform einer Anforderung, die, wenn sie durch das Internet-API-Managementsystem empfangen wird, das Internet-API-Managementsystem veranlasst, eine externe Funktionalität, die durch die entfernte Software-Komponente beim Internetendpunkt bereitgestellt wird, in Bezug auf Eingangsdaten, die in der Anforderung enthalten sind, aufzurufen, wobei die Anforderung unter Verwendung der vorläufigen Sicherheitszugangsdaten elektronisch unterzeichnet ist; Empfangen vom Internet-API-Managementsystem einer Antwort auf die Anforderung, wobei die Antwort Ergebnisdaten umfasst, die ein Ergebnis des Aufrufens der externen Funktionalität umfassen; und Verarbeiten der Ergebnisdaten gemäß der Abfrage.
  2. Netzbasiertes Datenlagersystem nach Anspruch 1, wobei der Rechendienstmanager ausgelegt ist, weitere Operationen durchzuführen, die Folgendes umfassen: Zugreifen in Reaktion auf ein Empfangen der Abfrage auf ein Funktionsobjekt, das der entfernten Software-Komponente zugeordnet ist, von einer Datenbank, wobei das Funktionsobjekt den Internetendpunkt und ein Integrationsobjekt, das der entfernten Software-Komponente zugeordnet ist, identifiziert; und Zugreifen von der Datenbank auf das Integrationsobjekt, wobei das Integrationsobjekt die Rolle bei der Cloud-Computing-Dienstplattform identifiziert.
  3. Netzbasiertes Datenlagersystem nach Anspruch 2, wobei der Rechendienstmanager weitere Operationen durchführt, die Folgendes umfassen: Empfangen einer ersten Betriebsmittelkennung, die der Rolle bei der Cloud-Computing-Dienstplattform entspricht; und Erzeugen des Integrationsobjekts in der Datenbank auf der Grundlage der ersten Betriebsmittelkennung.
  4. Netzbasiertes Datenlagersystem nach Anspruch 2, wobei der Rechendienstmanager weitere Operationen durchführt, die Folgendes umfassen: Empfangen einer Funktionsdefinition, die das Integrationsobjekt und den Zielendpunkt identifiziert; und Erzeugen des Funktionsobjekts in der Datenbank auf der Grundlage der Funktionsdefinition.
  5. Netzbasiertes Datenlagersystem nach Anspruch 3, wobei das Integrationsobjekt die erste Betriebsmittelkennung und eine zweite Betriebsmittelkennung, die einem Anwenderdatensatz entspricht, der durch das netzbasierte Datenlagersystem geführt wird, umfasst, wobei der Anwenderdatensatz bei der Cloud-Computing-Dienstplattform der Rolle zugeordnet ist; und das Erhalten der vorläufigen Sicherheitszugangsdaten Folgendes umfasst: Zugreifen von der Datenbank auf Sicherheitszugangsdaten, die dem Anwenderdatensatz, der durch das netzbasierte Datenlagersystem geführt wird, zugeordnet sind; und Senden zur Cloud-Computing-Dienstplattform einer Anforderung der vorläufigen Sicherheitszugangsdaten, wobei die Anforderung die erste und die zweite Betriebsmittelkennung und die Sicherheitszugangsdaten, die dem Anwenderdatensatz, der durch das netzbasierte Datenlagersystem geführt wird, zugeordnet sind, umfasst.
  6. Netzbasiertes Datenlagersystem nach Anspruch 2, wobei das Integrationsobjekt ferner Daten umfasst, die zulässige einheitliche Betriebsmittellokatoren (URLs) definieren; und der Rechendienstmanager weitere Operationen durchführt, die Folgendes umfassen: in Reaktion auf das Empfangen der Abfrage Bestätigen, dass ein Anwender, der der Abfrage zugeordnet ist, Verwendungsrechte besitzt, die dem Integrationsobjekt zugeordnet sind; und Bestätigen, dass der Internetendpunkt auf der Grundlage der zulässigen URLs zulässig ist.
  7. Netzbasiertes Datenlagersystem nach Anspruch 1, wobei der Rechendienstmanager weitere Operationen durchführt, die Folgendes umfassen: Detektieren eines Ablaufens der vorläufigen Sicherheitszugangsdaten vor dem Empfangen der Antwort vom Internet-API-Managementsystem und Aktualisieren der vorläufigen Sicherheitszugangsdaten in Reaktion auf ein Detektieren des Ablaufens der vorläufigen Sicherheitszugangsdaten.
  8. Netzbasiertes Datenlagersystem nach Anspruch 1, wobei das Verarbeiten der Ergebnisdaten Folgendes umfasst: Speichern der Ergebnisdaten und/oder Durchführen einer oder mehrerer Aktionen an den Ergebnisdaten.
  9. Netzbasiertes Datenlagersystem nach Anspruch 1, wobei der mindestens eine Rechenknoten der Ausführungsplattform ferner ausgelegt ist, die Antwort zu parsen, um die Ergebnisdaten zu extrahieren.
  10. Netzbasiertes Datenlagersystem nach Anspruch 1, wobei die Anforderung eine Hypertext-Übertragungsprotokollanforderung (HTTP-Anforderung) umfasst; die Antwort eine HTTP-Antwort umfasst; die Eingangsdaten in JavaScript-Objektnotation codierte Daten (JSON-codierte Daten), Apache-Arrow-codierte Daten oder in eXtensible-Auszeichnungssprache codierte Daten (XML-codierte Daten) umfassen und die Ergebnisdaten JSON-codierte Daten, Apache-Arrow-codierte Daten oder XML-codierte Daten umfassen.
  11. Netzbasiertes Datenlagersystem nach Anspruch 1, wobei die externe Funktionalität, die durch die entfernte Software-Komponente bereitgestellt wird, Folgendes umfasst: eine Skalarfunktion oder eine Tabellenfunktion oder eine Prozedur.
  12. Computerprogramm, das Befehle umfasst, die, wenn sie durch einen oder mehrere Prozessoren ausgeführt werden, den einen oder die mehreren Prozessoren veranlassen, Operationen durchzuführen, wobei die Operationen Folgendes umfassen: Empfangen einer Abfrage, die auf eine Funktion, die einer entfernten Software-Komponente zugeordnet ist, Bezug nimmt, bei einem netzbasierten Datenlagersystem, das mindestens ein Rechensystem, das einen oder mehrere Prozessoren umfasst, umfasst; Erhalten von einer Cloud-Computing-Dienstplattform vorläufiger Sicherheitszugangsdaten, die einer Rolle mit zugeordneten Privilegien zum Senden von Aufrufen zu einem Internetendpunkt, der der entfernten Software-Komponente entspricht, entsprechen; Senden vom netzbasierten Datenlagersystem zu einem Internet-API-Managementsystem der Cloud-Computing-Dienstplattform einer Anforderung, die, wenn sie durch das Internet-API-Managementsystem empfangen wird, das Internet-API-Managementsystem veranlasst, eine externe Funktionalität, die durch die entfernte Software-Komponente beim Internetendpunkt bereitgestellt wird, in Bezug auf Eingangsdaten, die in der Anforderung enthalten sind, aufzurufen, wobei die Anforderung unter Verwendung der vorläufigen Sicherheitszugangsdaten elektronisch unterzeichnet ist; Empfangen beim netzbasierten Datenlagersystem vom Internet-API-Managementsystem einer Antwort auf die Anforderung, wobei die Antwort Ergebnisdaten umfasst, die ein Ergebnis des Aufrufens der externen Funktionalität umfassen; und Verarbeiten beim netzbasierten Datenlagersystem von Ergebnisdaten gemäß der Abfrage.
  13. Computerprogramm nach Anspruch 12, wobei die Operationen ferner Folgendes umfassen: Zugreifen in Reaktion auf ein Empfangen der Abfrage auf ein Funktionsobjekt, das der entfernten Software-Komponente zugeordnet ist, von einer Datenbank, wobei das Funktionsobjekt den Internetendpunkt und ein Integrationsobjekt, das der entfernten Software-Komponente zugeordnet ist, identifiziert; und Zugreifen von der Datenbank auf das Integrationsobjekt, wobei das Integrationsobjekt die Rolle bei der Cloud-Computing-Dienstplattform identifiziert.
  14. Computerprogramm nach Anspruch 13, wobei die Operationen ferner Folgendes umfassen: Empfangen einer ersten Betriebsmittelkennung, die der Rolle bei der Cloud-Computing-Dienstplattform entspricht; und Erzeugen des Integrationsobjekts in der Datenbank auf der Grundlage der ersten Betriebsmittelkennung.
  15. Computerprogramm nach Anspruch 13, wobei die Operationen ferner Folgendes umfassen: Empfangen einer Funktionsdefinition, die das Integrationsobjekt und den Zielendpunkt identifiziert; und Erzeugen des Funktionsobjekts in der Datenbank auf der Grundlage der Funktionsdefinition.
  16. Computerprogramm nach Anspruch 14, wobei das Integrationsobjekt die erste Betriebsmittelkennung und eine zweite Betriebsmittelkennung, die einem Anwenderdatensatz entspricht, der durch das netzbasierte Datenlagersystem geführt wird, umfasst, wobei der Anwenderdatensatz bei der Cloud-Computing-Dienstplattform der Rolle zugeordnet ist; und das Erhalten der vorläufigen Sicherheitszugangsdaten Folgendes umfasst: Zugreifen von der Datenbank auf Sicherheitszugangsdaten, die dem Anwenderdatensatz, der durch das netzbasierte Datenlagersystem geführt wird, zugeordnet sind; und Senden zur Cloud-Computing-Dienstplattform einer Anforderung der vorläufigen Sicherheitszugangsdaten, wobei die Anforderung die erste und die zweite Betriebsmittelkennung und die Sicherheitszugangsdaten, die dem Anwenderdatensatz, der durch das netzbasierte Datenlager geführt wird, zugeordnet sind, umfasst.
  17. Computerprogramm nach Anspruch 13, wobei das Integrationsobjekt ferner Daten umfasst, die zulässige einheitliche Betriebsmittellokatoren (URLs) definieren; und die Operationen ferner Folgendes umfassen: Bestätigen in Reaktion auf das Empfangen der Abfrage, dass ein Anwender, der der Abfrage zugeordnet ist, Verwendungsrechte besitzt, die dem Integrationsobjekt zugeordnet sind; und Bestätigen, dass der Internetendpunkt auf der Grundlage der zulässigen URLs zulässig ist.
  18. Computerprogramm nach Anspruch 12, das ferner Folgendes umfasst: Detektieren eines Ablaufens der vorläufigen Sicherheitszugangsdaten vor dem Empfangen der Antwort vom Internet-API-Managementsystem und Aktualisieren der vorläufigen Sicherheitszugangsdaten in Reaktion auf ein Detektieren des Ablaufens der vorläufigen Sicherheitszugangsdaten.
  19. Computerprogramm nach Anspruch 12, das ferner ein Parsen der Antwort umfasst, um die Ergebnisdaten zu extrahieren.
  20. Computerspeichermedium, das Befehle umfasst, die, wenn sie durch eine Verarbeitungseinrichtung ausgeführt werden, die Verarbeitungseinrichtung konfigurieren, Operationen durchzuführen, die Folgendes umfassen: Empfangen von einer Recheneinrichtung einer Abfrage, die auf eine Funktion, die einer entfernten Software-Komponente zugeordnet ist, Bezug nimmt; Erhalten von einer Cloud-Computing-Dienstplattform vorläufiger Sicherheitszugangsdaten, die einer Rolle mit zugeordneten Privilegien zum Senden von Aufrufen zu einem Internetendpunkt, der der entfernten Software-Komponente entspricht, entsprechen; Senden zu einem Internet-Anwendungsprogrammierschnittstellen-Managementsystem (Internet-API-Managementsystem) der Cloud-Computing-Dienstplattform einer Anforderung, die, wenn sie durch das Internet-API-Managementsystem empfangen wird, das Internet-API-Managementsystem veranlasst, eine externe Funktionalität, die durch die entfernte Software-Komponente beim Internetendpunkt bereitgestellt wird, in Bezug auf Eingangsdaten, die in der Anforderung enthalten sind, aufzurufen, wobei die Anforderung unter Verwendung der vorläufigen Sicherheitszugangsdaten elektronisch unterzeichnet ist; Empfangen vom Internet-API-Managementsystem einer Antwort auf die Anforderung, wobei die Antwort Ergebnisdaten umfasst, die ein Ergebnis des Aufrufens der externen Funktionalität umfassen; und Verarbeiten der Ergebnisdaten gemäß der Abfrage.
DE202020005700.2U 2019-10-29 2020-07-31 Aufrufen externer Funktionen aus einem Datenlager Active DE202020005700U1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/666,911 2019-10-29
US16/666,911 US10628244B1 (en) 2019-10-29 2019-10-29 Calling external functions from a data warehouse

Publications (1)

Publication Number Publication Date
DE202020005700U1 true DE202020005700U1 (de) 2022-02-03

Family

ID=70285170

Family Applications (1)

Application Number Title Priority Date Filing Date
DE202020005700.2U Active DE202020005700U1 (de) 2019-10-29 2020-07-31 Aufrufen externer Funktionen aus einem Datenlager

Country Status (6)

Country Link
US (8) US10628244B1 (de)
EP (1) EP3942414A4 (de)
KR (2) KR20220130255A (de)
CN (1) CN113490918B (de)
DE (1) DE202020005700U1 (de)
WO (1) WO2021086465A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11675784B2 (en) 2021-04-30 2023-06-13 Snowflake Inc. Configuring parallelism parameters for invocation of external table functions

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11444953B2 (en) * 2018-12-06 2022-09-13 Dharmesh Naik Methods, systems, apparatuses and devices for facilitating security of a resource using a plurality of credentials
US10628244B1 (en) 2019-10-29 2020-04-21 Snowflake Inc. Calling external functions from a data warehouse
US11689530B2 (en) * 2019-11-13 2023-06-27 Palantir Technologies Inc. Systems and methods for managing custom code in a data computing platform
US10715524B1 (en) 2019-11-14 2020-07-14 Snowflake Inc. External credential-less stages for data warehouse integrations
CA3177385A1 (en) * 2020-06-29 2022-01-06 Prabhu PALANISAMY Policy-based genomic data sharing for software-as-a-service tenants
JP2023532297A (ja) * 2020-06-29 2023-07-27 イルミナ インコーポレイテッド セキュアな発見フレームワークを介した一時的なクラウドプロバイダクレデンシャル
CN114064303A (zh) * 2020-07-31 2022-02-18 华为技术有限公司 远程服务调用方法、设备、系统、存储介质
US11429569B2 (en) * 2020-08-19 2022-08-30 Intuit Inc. Method and system for processing read queries in an application programming interface based on declarative schemas for individual services
WO2022040588A1 (en) * 2020-08-20 2022-02-24 Simetric, Inc. Device management systems and methods
WO2022051695A1 (en) * 2020-09-06 2022-03-10 Blackswan Technologies Inc. Securing computer source code
CN112100287B (zh) * 2020-09-15 2023-12-29 北京通付盾人工智能技术有限公司 一种基于动态规划技术的集成式云端kyc方法
US20220100758A1 (en) 2020-09-30 2022-03-31 Snowflake Inc. Autoscaling external function requests
US11381564B2 (en) 2020-10-09 2022-07-05 Sap Se Resource security integration platform
US11615095B2 (en) 2020-10-30 2023-03-28 Snowflake Inc. Automatic pruning cutoff in a database system
CN112486705B (zh) * 2020-11-30 2024-08-27 中科美络科技股份有限公司 一种新能源汽车管理软件的组件调度方法及系统
WO2022141338A1 (en) * 2020-12-31 2022-07-07 Huawei Cloud Computing Technologies Co., Ltd. Systems and methods for dynamic metadata generation for cloud service integration
CN112732811A (zh) * 2020-12-31 2021-04-30 广西中科曙光云计算有限公司 一种数据开放平台
US11487870B1 (en) * 2021-04-30 2022-11-01 Snowflake Inc. Logging from user-defined functions
CN113254529A (zh) * 2021-05-12 2021-08-13 兰州兰石集团有限公司 一种基于边缘计算和HiTSDB存储的工业物联网平台
US11347485B1 (en) * 2021-06-07 2022-05-31 Snowflake Inc. Secure, scalable, table-valued functions in a cloud database
US11216322B1 (en) * 2021-06-07 2022-01-04 Snowflake Inc. Stored procedures in a network based database system
US11269913B1 (en) * 2021-06-24 2022-03-08 Snowflake Inc. Reverse extract, transform, load (ETL) tool
CN113626467A (zh) * 2021-08-11 2021-11-09 中国工商银行股份有限公司 一种数据库对象导出方法、系统、电子设备及存储介质
US11403298B1 (en) 2021-10-29 2022-08-02 Snowflake Inc. Extending database external functions with user-defined functions

Family Cites Families (71)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7769825B2 (en) 2002-02-22 2010-08-03 Bea Systems, Inc. System and method for web services Java API-based invocation
US7092942B2 (en) 2002-05-31 2006-08-15 Bea Systems, Inc. Managing secure resources in web resources that are accessed by multiple portals
US20050108206A1 (en) 2003-11-14 2005-05-19 Microsoft Corporation System and method for object-oriented interaction with heterogeneous data stores
US8028329B2 (en) 2005-06-13 2011-09-27 Iamsecureonline, Inc. Proxy authentication network
JP5441303B2 (ja) 2006-01-20 2014-03-12 キヤノン株式会社 情報処理装置及び情報処理方法
US8185916B2 (en) * 2007-06-28 2012-05-22 Oracle International Corporation System and method for integrating a business process management system with an enterprise service bus
US9614924B2 (en) 2008-12-22 2017-04-04 Ctera Networks Ltd. Storage device and method thereof for integrating network attached storage with cloud storage services
US9473419B2 (en) 2008-12-22 2016-10-18 Ctera Networks, Ltd. Multi-tenant cloud storage system
US8713038B2 (en) 2009-04-02 2014-04-29 Pivotal Software, Inc. Integrating map-reduce into a distributed relational database
US20100333116A1 (en) 2009-06-30 2010-12-30 Anand Prahlad Cloud gateway system for managing data storage to cloud storage sites
US20110184813A1 (en) * 2009-09-14 2011-07-28 Cbs Interactive, Inc. Targeting offers to users of a web site
WO2011071850A2 (en) 2009-12-07 2011-06-16 Coach Wei System and method for website performance optimization and internet traffic processing
US8234372B2 (en) 2010-05-05 2012-07-31 Go Daddy Operating Company, LLC Writing a file to a cloud storage solution
WO2011159842A2 (en) 2010-06-15 2011-12-22 Nimbula, Inc. Virtual computing infrastructure
US9560036B2 (en) 2010-07-08 2017-01-31 International Business Machines Corporation Cross-protocol federated single sign-on (F-SSO) for cloud enablement
US10671628B2 (en) * 2010-07-09 2020-06-02 State Street Bank And Trust Company Systems and methods for data warehousing
CA2804864C (en) 2010-07-09 2018-11-20 State Street Corporation Systems and methods for private cloud computing
US20120136960A1 (en) 2010-11-29 2012-05-31 Beijing Z & W Technology Consulting Co., Ltd Cloud Storage Data Access Method, Apparatus and System
US8656454B2 (en) 2010-12-01 2014-02-18 Microsoft Corporation Data store including a file location attribute
US8538954B2 (en) 2011-01-25 2013-09-17 Hewlett-Packard Development Company, L.P. Aggregate function partitions for distributed processing
US20130205028A1 (en) * 2012-02-07 2013-08-08 Rackspace Us, Inc. Elastic, Massively Parallel Processing Data Warehouse
US9483627B1 (en) 2011-05-03 2016-11-01 Symantec Corporation Abstracting credentials for mobile client authentication
US8533231B2 (en) 2011-08-12 2013-09-10 Nexenta Systems, Inc. Cloud storage system with distributed metadata
US8176283B1 (en) 2011-09-26 2012-05-08 Google Inc. Permissions of objects in hosted storage
US20140013409A1 (en) 2012-07-06 2014-01-09 Milind I. Halageri Single sign on for cloud
US10007698B2 (en) 2011-11-28 2018-06-26 Sybase, Inc. Table parameterized functions in database
US9483491B2 (en) 2011-11-29 2016-11-01 Egnyte, Inc. Flexible permission management framework for cloud attached file systems
US8713633B2 (en) 2012-07-13 2014-04-29 Sophos Limited Security access protection for user data stored in a cloud computing facility
US9430640B2 (en) * 2012-09-28 2016-08-30 Intel Corporation Cloud-assisted method and service for application security verification
US8613070B1 (en) 2012-10-12 2013-12-17 Citrix Systems, Inc. Single sign-on access in an orchestration framework for connected devices
US20140115182A1 (en) 2012-10-24 2014-04-24 Brocade Communications Systems, Inc. Fibre Channel Storage Area Network to Cloud Storage Gateway
US9137222B2 (en) 2012-10-31 2015-09-15 Vmware, Inc. Crypto proxy for cloud storage services
US9209973B2 (en) 2012-11-20 2015-12-08 Google Inc. Delegate authorization in cloud-based storage system
US9342557B2 (en) 2013-03-13 2016-05-17 Cloudera, Inc. Low latency query engine for Apache Hadoop
KR102218995B1 (ko) * 2013-06-18 2021-02-25 시암벨라 리미티드 코드 가상화 및 원격 프로세스 호출 생성을 위한 방법 및 장치
US10122714B2 (en) 2013-08-01 2018-11-06 Bitglass, Inc. Secure user credential access system
US9426219B1 (en) 2013-12-06 2016-08-23 Amazon Technologies, Inc. Efficient multi-part upload for a data warehouse
CN104754001A (zh) 2013-12-30 2015-07-01 方正宽带网络服务股份有限公司 云存储系统和数据存储方法
US11386085B2 (en) 2014-01-27 2022-07-12 Microstrategy Incorporated Deriving metrics from queries
US9614796B2 (en) 2014-03-13 2017-04-04 Sap Se Replacing email file attachment with download link
US9246912B2 (en) * 2014-04-01 2016-01-26 Bank Of America Corporation Password generator
US20170046353A1 (en) 2014-07-29 2017-02-16 Hitachi, Ltd. Database management system and database management method
WO2016026537A1 (en) 2014-08-22 2016-02-25 Nec Europe Ltd. A method for storing of data within a cloud storage and a cloud storage system
US10963459B2 (en) 2014-08-29 2021-03-30 Sap Se Generic utilization of on-premise query frameworks by new on-demand applications
US10180973B2 (en) * 2014-09-26 2019-01-15 Oracle International Corporation System and method for efficient connection management in a massively parallel or distributed database environment
US9588977B1 (en) 2014-09-30 2017-03-07 EMC IP Holding Company LLC Data and metadata structures for use in tiering data to cloud storage
US10003600B2 (en) 2015-01-26 2018-06-19 Mobile Iron, Inc. Identity proxy to provide access control and single sign on
US9934202B1 (en) 2015-03-30 2018-04-03 EMC IP Holding Company LLC Managing paginated data
CN111367187B (zh) * 2015-08-27 2023-10-24 江森自控泰科知识产权控股有限责任公司 用于改进对分布式网络中的传感器流数据的处理的方法
US10375054B2 (en) * 2015-10-06 2019-08-06 Netflix, Inc. Securing user-accessed applications in a distributed computing environment
US9665628B1 (en) * 2015-12-06 2017-05-30 Xeeva, Inc. Systems and/or methods for automatically classifying and enriching data records imported from big data and/or other sources to help ensure data integrity and consistency
US10171295B2 (en) 2016-04-07 2019-01-01 Red Hat, Inc. Distributed remote execution
US9503452B1 (en) * 2016-04-07 2016-11-22 Automiti Llc System and method for identity recognition and affiliation of a user in a service transaction
JP6491796B2 (ja) * 2016-05-11 2019-03-27 オラクル・インターナショナル・コーポレイション マルチテナントアイデンティティおよびデータセキュリティ管理クラウドサービス
US10341410B2 (en) 2016-05-11 2019-07-02 Oracle International Corporation Security tokens for a multi-tenant identity and data security management cloud service
US10438013B2 (en) * 2016-06-19 2019-10-08 Data.World, Inc. Platform management of integrated access of public and privately-accessible datasets utilizing federated query generation and query schema rewriting optimization
US11157498B1 (en) 2016-09-26 2021-10-26 Splunk Inc. Query generation using a dataset association record of a metadata catalog
US11093564B1 (en) 2016-09-26 2021-08-17 Splunk Inc. Identifying configuration parameters for a query using a metadata catalog
US10642879B2 (en) 2017-01-06 2020-05-05 Oracle International Corporation Guaranteed file system hierarchy data integrity in cloud object stores
US10878031B2 (en) * 2017-05-16 2020-12-29 Walmart Apollo, Llc Web services-based data transfers for item management
CN107368523B (zh) * 2017-06-07 2020-05-12 武汉斗鱼网络科技有限公司 一种数据处理方法及系统
WO2019104338A1 (en) 2017-11-27 2019-05-31 Snowflake Computing Inc Batch data ingestion in database systems
US10802747B2 (en) 2017-11-30 2020-10-13 Veritas Technologies Llc Performing backup operations using replicas
US11157497B1 (en) 2018-04-30 2021-10-26 Splunk Inc. Dynamically assigning a search head and search nodes for a query
US20190347680A1 (en) * 2018-05-11 2019-11-14 Price Brain LLC Computer-implemented methods of gathering real-time product price data from a plurality of disparate sources
US10412118B1 (en) * 2019-03-04 2019-09-10 FullArmor Corporation Group policy object management of external network resources
US11269886B2 (en) 2019-03-05 2022-03-08 Sap Se Approximate analytics with query-time sampling for exploratory data analysis
US10628244B1 (en) 2019-10-29 2020-04-21 Snowflake Inc. Calling external functions from a data warehouse
US10715524B1 (en) 2019-11-14 2020-07-14 Snowflake Inc. External credential-less stages for data warehouse integrations
US10867063B1 (en) 2019-11-27 2020-12-15 Snowflake Inc. Dynamic shared data object masking
US11138192B1 (en) 2021-04-30 2021-10-05 Snowflake Inc. Invoking external table functions from a database system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11675784B2 (en) 2021-04-30 2023-06-13 Snowflake Inc. Configuring parallelism parameters for invocation of external table functions

Also Published As

Publication number Publication date
US20210390007A1 (en) 2021-12-16
WO2021086465A1 (en) 2021-05-06
US11126484B2 (en) 2021-09-21
US11249829B2 (en) 2022-02-15
CN113490918B (zh) 2024-07-02
US20210216385A1 (en) 2021-07-15
US20210124633A1 (en) 2021-04-29
US10810067B1 (en) 2020-10-20
EP3942414A4 (de) 2022-11-23
US11132243B2 (en) 2021-09-28
KR20220130255A (ko) 2022-09-26
US10997005B1 (en) 2021-05-04
US10846157B1 (en) 2020-11-24
US20220129335A1 (en) 2022-04-28
US10628244B1 (en) 2020-04-21
US20210240557A1 (en) 2021-08-05
KR20210138615A (ko) 2021-11-19
EP3942414A1 (de) 2022-01-26
US11675640B2 (en) 2023-06-13
CN113490918A (zh) 2021-10-08
KR102444106B1 (ko) 2022-09-19

Similar Documents

Publication Publication Date Title
DE202020005700U1 (de) Aufrufen externer Funktionen aus einem Datenlager
DE202020005715U1 (de) Dynamische Maskierung geteilter Datenobjekte
DE202020005693U1 (de) Externe berechtigungsnachweisfreie Stufen für Datenbankintegrationen
DE202020005734U1 (de) Beschneiden von Indizes zur Verbesserung einer Verarbeitung von Datenbankabfragen
US11675784B2 (en) Configuring parallelism parameters for invocation of external table functions
DE202021004036U1 (de) Data Clean Room
DE202020005703U1 (de) Auf verteilten Metadaten basierendes Cluster-Computing
DE202021004340U1 (de) Beschränkte Sichten zum Steuern des Zugriffs auf Informationen in einem Datenbanksystem
DE202023101653U1 (de) Organisations- und cloudübergreifende automatisierte Datenpipelines
DE202021004328U1 (de) Mit Daten-Cloud verbundene Anwendungen
DE202023103214U1 (de) Web-Anwendung als Datenbankobjekt erster Klasse
DE202023103216U1 (de) Datenplattform mit vereinheitlichten Privilegien
DE202021004327U1 (de) Autoskalierung externer Funktionsanforderungen
DE202021102315U1 (de) Flexibles Computing

Legal Events

Date Code Title Description
R207 Utility model specification
R150 Utility model maintained after payment of first maintenance fee after three years