DE112021002246T5 - Symphonisierung der serverlosen funktionen von hybriden diensten - Google Patents

Symphonisierung der serverlosen funktionen von hybriden diensten Download PDF

Info

Publication number
DE112021002246T5
DE112021002246T5 DE112021002246.6T DE112021002246T DE112021002246T5 DE 112021002246 T5 DE112021002246 T5 DE 112021002246T5 DE 112021002246 T DE112021002246 T DE 112021002246T DE 112021002246 T5 DE112021002246 T5 DE 112021002246T5
Authority
DE
Germany
Prior art keywords
computer
service providers
application
serverless
serverless functions
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112021002246.6T
Other languages
English (en)
Inventor
Kuricheti Venkata Lakshmi Saisampath
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kyndryl Inc
Original Assignee
Kyndryl Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Kyndryl Inc filed Critical Kyndryl Inc
Publication of DE112021002246T5 publication Critical patent/DE112021002246T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/61Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources taking into account QoS or priority requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0272Virtual private networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • 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/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • 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/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • H04L67/125Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network
    • 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/51Discovery or management thereof, e.g. service location protocol [SLP] or web services

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Medical Informatics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Stored Programmes (AREA)
  • Computer And Data Communications (AREA)
  • Multi Processors (AREA)

Abstract

Ein beispielhaftes Verfahren schließt Binden eines Halbleiterchips an ein organisches Laminatsubstrat unter Verwendung von Lötmittel bei einer Bindetemperatur; ohne Abkühlen von der Bindetemperatur auf Raumtemperatur Ausgeben von Unterfüllung zwischen den Halbleiterchip und das organische Laminatsubstrat bei einer Unterfüllung-Ausgabetemperatur; und Härten der Unterfüllung in einem Temperaturbereich über der Unterfüllung-Ausgabetemperatur ein. Ein weiteres beispielhaftes Verfahren schließt Aufbringen eines ersten Lötmittels auf Kontaktfelder eines organischen Laminatsubstrats; Inkontaktbringen eines zweiten Lötmittels auf Säulen eines Halbleiterchips mit dem ersten Lötmittel auf den Kontaktfeldern des organischen Laminatsubstrats; und Lötbinden des Halbleiterchips an das organische Laminatsubstrat ein.

Description

  • HINTERGRUND
  • Die vorliegende Erfindung bezieht sich allgemein auf den Bereich der netzwerkbasierten Anwendungen und insbesondere auf die Definition und Symphonisierung (symphonizing) von serverlosen Funktionen von hybriden Multi-Cloud-Diensten.
  • Bei der hybriden Cloud handelt es sich um eine Cloud-Umgebung, die private Cloud-Dienste eines Unternehmens vor Ort mit öffentlichen Cloud-Diensten von Drittanbietern zu einer einzigen, flexiblen Infrastruktur für die Ausführung von Anwendungen und Arbeitslasten verknüpft. Das Prinzip der hybriden Cloud ist, dass die Mischung aus öffentlichen und privaten Cloud-Ressourcen einem Unternehmen die Flexibilität gibt, die optimale Cloud für jede Anwendung oder Arbeitslast zu wählen. Außerdem kann das Unternehmen Arbeitslasten frei zwischen den beiden Clouds verschieben, wenn sich die Umstände ändern. Dies ermöglicht es dem Unternehmen, seine technischen und geschäftlichen Ziele effizienter und kostengünstiger zu erreichen, als dies mit einer öffentlichen oder privaten Cloud allein möglich wäre.
  • Serverloses Computing ist ein Cloud-Computing-Ausführungsmodell, bei dem der Cloud-Anbieter den Server betreibt und die Zuweisung von Maschinenressourcen dynamisch verwaltet. Das Modell ist also nicht wirklich serverlos; der Name gibt an, dass die Server vom Cloud-Anbieter verwaltet werden. Insbesondere betreibt ein Cloud-Anbieter physische Server und weist deren Ressourcen im Auftrag eines Benutzers dynamisch zu. Serverloses Computing kann den Prozess der Bereitstellung von Code in der Produktion vereinfachen, da Skalierungs-, Kapazitätsplanungs- und Wartungsoperationen vor dem Entwickler verborgen werden können. Serverloser Code kann auch in Verbindung mit Code verwendet werden, der auf herkömmliche Weise bereitgestellt wird, oder alternativ können Anwendungen so geschrieben werden, dass sie rein serverlos sind und überhaupt keine bereitgestellten Server verwenden.
  • Function-as-a-Service (FaaS) ist eine Option für die Bereitstellung von Anwendungen in der Cloud. Bei FaaS schreiben die Entwickler benutzerdefinierte Serveranwendungen, die jedoch in Containern ausgeführt werden, die vollständig von einem Cloud-Anbieter verwaltet werden. Mit diesem Verfahren kann entweder eine vollständig serverlose Anwendung oder eine Anwendung aus teilweise serverlosen und teilweise traditionellen Mikrodienst-Komponenten konstruiert werden. Sobald sie geschrieben ist, wird sie in Containern bereitgestellt, die von einem Cloud-Anbieter verwaltet werden, was der Hauptvorteil von Serverless ist.
  • KURZDARSTELLUNG
  • Ausführungsformen der vorliegenden Erfindung offenbaren ein Verfahren, ein Computerprogrammprodukt und ein System zur Symphonisierung von serverlosen Funktionen von hybriden Multi-Cloud-Diensten. In einer Ausführungsform wird eine Zuordnungstabelle erstellt, die Quality of Service (QoS)-Attribute für Anwendungen und Dienstanbieter enthält. Als Reaktion auf das Empfangen einer Anforderung von einer Laufzeitanwendung zum Zugriff auf bestimmte serverlose Funktionen werden spezifische QoS-Attribute für die Laufzeitanwendung ermittelt. Es werden unterstützende Dienstanbieter ermittelt, die die spezifischen serverlosen Funktionen und die spezifischen QoS-Attribute für die Laufzeitanwendung bereitstellen. Aus den unterstützenden Dienstanbietern wird ein unterstützender Dienstanbieter ausgewählt. Die spezifischen Serverless-Funktionen für die Laufzeitanwendung werden an den unterstützenden Service Provider gebunden.
  • Figurenliste
    • 1 stellt eine Cloud-Computing-Umgebung gemäß einer Ausführungsform der vorliegenden Erfindung dar.
    • 2 stellt Abstraktionsmodellschichten gemäß einer Ausführungsform der vorliegenden Erfindung dar.
    • 3 ist ein funktionales Blockschaltbild, das eine verteilte Datenverarbeitungsumgebung gemäß einer vorliegenden Erfindung veranschaulicht.
    • 4 ist eine Veranschaulichung der Operation der vorliegenden Erfindung gemäß einer Ausführungsform der vorliegenden Erfindung.
    • 5 veranschaulicht die Auswahl des geeigneten Dienstanbieters innerhalb der verteilten Datenverarbeitungsumgebung von 3 gemäß einer vorliegenden Erfindung.
    • 6 ist eine Veranschaulichung der Zuordnung der hybriden Cloud-Anwendungen zu den Cloud-Diensten gemäß einer Ausführungsform der vorliegenden Erfindung.
    • 7 ist ein Ablaufplan, der die Operationsschritte für die vom Symphonize-Programm (symphonize program) durchgeführten Schritte zur Einrichtung der serverlosen Funktionen und QoS-Attribute gemäß einer Ausführungsform der vorliegenden Erfindung darstellt.
    • 8 ist ein Ablaufplan, der die Operationsschritte für die vom Symphonize-Programm durchgeführten Schritte zum Verbinden der Anwendungen mit den entsprechenden Dienstanbietern gemäß einer Ausführungsform der vorliegenden Erfindung darstellt.
    • 9 zeigt ein Blockschaltbild von Komponenten der Datenverarbeitungseinheiten, die das Symphonize-Programm innerhalb der verteilten Datenverarbeitungsumgebung von 3 gemäß einer Ausführungsform der vorliegenden Erfindung ausführen.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Gegenwärtig ist kein Mechanismus zur Abstraktion und Symphonisierung von serverlosen Funktionen, die über mehrere Clouds verteilt sind, vorhanden. Eine Multi-Cloud-Lösung ist eine Lösung, bei der ein Unternehmen mehrere verschiedene öffentliche Cloud-Dienste verwendet, häufig von mehreren verschiedenen Anbietern. Hybride Multi-Cloud-Dienste sind an bestimmte serverlose Funktionen des Cloud-Anbieters gebunden. Daher benötigen sie einen Automatisierungsstandard, um serverlose Funktionen während der Laufzeit über mehrere Clouds zu wechseln und eine Definition für hybride Cloud-Dienste zu erhalten, die über verschiedene Cloud-Anbieter ausgeführt werden können. Die vorliegende Erfindung vermeidet die Bindung an eine serverlose Funktion eines Multi-Cloud-Systems. Stattdessen werden die Cloud-Service-Optimierungsattribute der vorliegenden Erfindung verwendet, um spezifische serverlose Funktionen während der Laufzeit zu klassifizieren, zu qualifizieren und zu ermitteln.
  • Das Problem im gegenwärtigen Stand der Technik ist die Zunahme von serverlosen Multi-Cloud-Komponenten, die den vom Client definierten Legacy-Funktionen ähneln. Clients möchten diese Dienste während der Laufzeit symphonisieren, wodurch die Gesamtbetriebskosten verringert werden und spezifische Integrationsstandards von Cloud-Anbietern entfallen. Bei der vorliegenden Erfindung definieren die Anwendungen die benötigten Funktionen, indem sie die Eingabe und die Quality-Attribute für diese Funktionen bereitstellen. Ein serverloser Kontext wird während der Laufzeit gemäß den erforderlichen Quality-Attributen und unterstützten serverlosen Funktionen erstellt. Die Anwendung nutzt hybride Cloud-Dienste, die unter Verwendung von serverlosen Funktionen definiert wurden.
  • Wird dieselbe Funktion mit unterschiedlichen Quality-Attributen genutzt, erzeugt derselbe hybride Cloud-Dienst einen anderen serverlosen Kontext für den entsprechenden Dienstanbieter, der die erforderlichen Quality-Attribute unterstützt. Quality-Attribute definieren die Definition des hybriden Cloud-Dienstes während der Laufzeit. Diese Herangehensweise erzeugt eine hybride Multi-Cloud-Laufzeit für serverlose Funktionen. Diese Quality-Kennungen für serverlose Dienste basieren auf Grundlage offener Standards, damit hybride Cloud-Dienste diese Standards während der Laufzeit nutzen können.
  • Die vorliegende Erfindung verfügt über eine einzige Schnittstelle für serverlose Multi-Cloud-Funktionen auf Grundlage von Quality-Attributen, die dem Dienst zugeordnet sind, und nicht wie bei der gegenwärtigen Herangehensweise über eine Bindung an serverlose Komponenten. Die vorliegende Erfindung vermeidet den Aufwand, eine manuelle Bewertung der Merkmale und Qualities des serverlosen Computings von bestimmten Multi-Clouds durchzuführen, die mit einer bestimmten Dienst- oder Funktionsimplementierung verknüpft sind, oder eine spezielle Bibliothek für jede Implementierung zu erstellen. Stattdessen stellt die vorliegende Erfindung ein Verfahren, ein Computerprogrammprodukt und ein System zur Umwandlung von Serverless Computing für Silos in vollständig interoperables Multi-Cloud Serverless Computing dar.
  • Die vorliegende Erfindung basiert auf einem symphonisierten und interoperablen hybriden Multi-Cloud-Serverless-Mechanismus. Diese Herangehensweise verwendet ein hybrides Multi-Cloud-Serverless-Cloud-Dienstmodul, in dem QoS-Attribute in einer Tabelle zugeordnet werden, um die geeignete Laufzeit für die Verbraucher zu ermitteln. Die Zuordnungstabelle wird verwendet, um die Auswahl des geeigneten Cloud-Dienstanbieters für jeden Laufzeitdienst zu automatisieren.
  • Es versteht sich, dass diese Offenlegung zwar eine ausführliche Beschreibung des Cloud-Computing enthält, die Implementierung der hier aufgezeigten Lehren jedoch nicht auf eine Cloud-Computing-Umgebung beschränkt ist. Vielmehr können Ausführungsformen der vorliegenden Erfindung in Verbindung mit einer beliebigen anderen Art einer Datenverarbeitungsumgebung, die zum gegenwärtigen Zeitpunkt bereits bekannt ist oder zu einem späteren Zeitpunkt entwickelt werden wird, implementiert werden.
  • Cloud-Computing ist ein Modell zur Bereitstellung von Diensten, um einen mühelosen, bedarfsweisen Zugriff über das Netzwerk auf einen gemeinsam genutzten Bestand an konfigurierbaren Datenverarbeitungsressourcen (z. B. Netzwerken, Netzwerkbandbreite, Servern, Rechenleistung, Hauptspeicher, Plattenspeicher, Anwendungen, virtuellen Maschinen und Diensten) zu ermöglichen, die schnell bereitgestellt und mit äußerst geringem Verwaltungsaufwand oder Dialogverkehr mit einem Anbieter des Dienstes freigegeben werden können. Dieses Cloud-Modell kann mindestens fünf Merkmale, mindestens drei Dienst-Modelle und mindestens vier Einsatzmodelle beinhalten.
  • Die Merkmale sind wie folgt:
  • Selbstbedienung nach Bedarf: Ein Cloud-Nutzer kann einseitig Datenverarbeitungsfunktionen wie zum Beispiel Serverzeit und Netzwerkspeicher nach Bedarf automatisch bereitstellen, ohne dass eine Person mit dem Anbieter des Dienstes in Dialogverkehr treten muss.
  • Umfassender Netzwerkzugriff: Funktionen stehen über ein Netzwerk zur Verfügung und der Zugriff auf die Funktionen erfolgt über standardmäßige Mechanismen, welche die Nutzung durch heterogene Thin-Client- oder Thick-Client-Plattformen (z. B. Mobiltelefone, Laptops und persönliche digitale Assistenten (PDAs) unterstützen.
  • Gemeinsame Nutzung physischer Ressourcen: Die Datenverarbeitungsressourcen des Anbieters werden unter Verwendung eines Modells mit mehreren Mandanten (Multi-Tenant-Modell) zusammengeführt, um mehrere Nutzer zu bedienen, wobei verschiedene physische und virtuelle Ressourcen entsprechend dem Bedarf dynamisch zugewiesen und neu zugewiesen werden. Man hat ein Gefühl der Standort-Unabhängigkeit, da der Nutzer im Allgemeinen keine Kontrolle über den genauen Standort der bereitgestellten Ressourcen hat oder den genauen Standort nicht kennt, diesen gegebenenfalls aber auf einer höheren Abstraktionsebene (z. B. Land, Staat/Bundesland oder Rechenzentrum) angeben kann.
  • Unverzügliche Anpassbarkeit an den Ressourcenbedarf: Funktionen können schnell und elastisch bereitgestellt werden, in manchen Fällen automatisch, um eine schnelle horizontale Skalierbarkeit zu ermöglichen, und sie können schnell freigegeben werden, um eine schnelle vertikale Skalierbarkeit zu ermöglichen. Dem Nutzer erscheinen die zur Versorgung vorhandenen Funktionen oftmals unerschöpflich und sie können jederzeit in jeder beliebigen Menge erworben werden.
  • Messung der Service-Nutzung: Cloud-Systeme steuern und optimieren die Nutzung der Ressourcen automatisch, indem sie auf einer bestimmten Abstraktionsebene, die für die Art des Dienstes (z. B. Speicherkapazität, Rechenleistung, Bandbreite und aktive Benutzerkonten) geeignet ist, eine Zählerfunktion vorteilhaft einsetzen. Die Nutzung der Ressourcen kann überwacht, gesteuert und gemeldet werden, was Transparenz sowohl für den Anbieter als auch den Nutzer des in Anspruch genommenen Dienstes schafft.
  • Die Dienst-Modelle sind wie folgt:
  • Software as a Service (SaaS): Die dem Nutzer zur Verfügung gestellte Funktion besteht in der Nutzung der Anwendungen des Anbieters, die in einer Cloud-Infrastruktur ausgeführt werden. Auf die Anwendungen kann von verschiedenen Client-Einheiten über eine Thin-Client-Schnittstelle wie zum Beispiel einen Webbrowser (z. B. webbasierte eMail) zugegriffen werden. Der Nutzer verwaltet oder steuert die zugrunde liegende Cloud-Infrastruktur einschließlich des Netzwerks, der Server, der Betriebssysteme, des Speichers oder selbst einzelner Anwendungsfunktionen nicht, wobei es die mögliche Ausnahme in Form von eingeschränkten benutzerspezifischen Einstellungen bei der Konfiguration der Anwendung gibt.
  • Platform as a Service (PaaS): Die dem Nutzer zur Verfügung gestellte Funktion besteht darin, auf der Cloud-Infrastruktur vom Nutzer erzeugte oder erworbene Anwendungen aufzusetzen, die mittels Programmiersprachen und Werkzeugen, die von dem Anbieter unterstützt werden, erzeugt wurden. Der Nutzer verwaltet oder steuert die zugrunde liegende Cloud-Infrastruktur einschließlich der Netzwerke, der Server, der Betriebssysteme oder des Speichers nicht, hat aber die Kontrolle über die eingesetzten Anwendungen und möglicherweise über Konfigurationen der Umgebung, in der Anwendungen gehostet werden (Application Hosting Environment).
  • Infrastructure as a Service (laaS): Die dem Nutzer zur Verfügung gestellte Funktion besteht in der Bereitstellung von Rechenleistung, Speicherkapazität, Netzwerken und anderen grundlegenden Datenverarbeitungsressourcen, auf denen der Kunde beliebige Software, die Betriebssysteme und Anwendungen einschließen kann, installieren und ausführen kann. Der Nutzer verwaltet oder steuert die zugrunde liegende Cloud-Infrastruktur nicht, hat aber die Kontrolle über Betriebssysteme, Speicher, eingesetzte Anwendungen und möglicherweise die eingeschränkte Kontrolle über ausgewählte Komponenten für den Netzwerkbetrieb (z. B. Zugangsschutzsysteme für den Hostrechner).
  • Die Einsatzmodelle sind wie folgt:
  • Private Cloud: Die Cloud-Infrastruktur wird ausschließlich für eine Organisation betrieben. Sie kann von der Organisation oder einem Dritten verwaltet werden und kann sich auf dem Betriebsgelände oder außerhalb des Betriebsgeländes befinden.
  • Gemeinschafts-Cloud: Die Cloud-Infrastruktur wird von mehreren Organisationen gemeinsam genutzt und unterstützt eine bestimmte Gemeinschaft, die gemeinsame Interessen (z. B. Aufgaben, Sicherheitsanforderungen, Richtlinien und Anforderungen an die Einhaltung der Richtlinien (Compliance-Anforderungen)) hat. Sie kann von den Organisationen oder einem Dritten verwaltet werden und kann sich auf dem Betriebsgelände oder außerhalb des Betriebsgeländes befinden.
  • Öffentliche Cloud: Die Cloud-Infrastruktur wird der allgemeinen Öffentlichkeit oder einer großen Industriegruppe zur Verfügung gestellt und gehört einer Organisation, die Cloud-Dienste verkauft.
  • Hybride Cloud: Die Cloud-Infrastruktur setzt sich aus zwei oder mehr Clouds (privaten, Gemeinschafts- oder öffentlichen Clouds) zusammen, die individuelle Entitäten bleiben, welche jedoch durch eine standardisierte oder firmeneigene Technologie miteinander verbunden sind, die die Portierbarkeit von Daten und Anwendungen ermöglicht (z. B. den kombinierten Einsatz von privaten und öffentlichen Clouds (Cloud-Bursting) für einen Lastausgleich zwischen den Clouds).
  • Eine Cloud-Computing-Umgebung ist dienstorientiert, wobei der Schwerpunkt auf Zustandslosigkeit, loser Kopplung, Modularität und semantischer Interoperabilität liegt. Das Kernstück des Cloud-Computing bildet eine Infrastruktur, die ein Netzwerk aus untereinander verbundenen Knoten umfasst.
  • Unter Bezugnahme auf 1 ist eine veranschaulichende Cloud-Computing-Umgebung 50 dargestellt. Wie gezeigt ist, weist die Cloud-Computing-Umgebung 50 einen oder mehrere Cloud-Computing-Knoten 10 auf, mit denen von Cloud-Nutzern verwendete lokale Datenverarbeitungseinheiten wie der elektronische Assistent (PDA, Personal Digital Assistant) oder das Mobiltelefon 54A, der Desktop Computer 54B, der Laptop Computer 54C und/oder das Automobil-Computer-System 54N Daten austauschen können. Die Knoten 10 können miteinander Daten austauschen. Sie können physisch oder virtuell in ein oder mehrere Netzwerke wie private, Benutzergemeinschafts-, öffentliche oder hybride Clouds gruppiert werden (nicht gezeigt), wie vorstehend beschrieben wurde, oder in eine Kombination daraus. Dies ermöglicht es der Cloud-Computing-Umgebung 50, Infrastruktur, Plattformen und/oder Software als Dienst anzubieten, für die ein Cloud-Nutzer keine Ressourcen auf einer lokalen Datenverarbeitungseinheit vorhalten muss. Es sei darauf hingewiesen, dass die Arten von in 1 gezeigten Datenverarbeitungseinheiten 54A bis N lediglich veranschaulichend sein sollen und dass die Datenverarbeitungsknoten 10 und die Cloud-Computing-Umgebung 50 über eine beliebige Art Netzwerk und/oder über eine beliebige Art von über ein Netzwerk aufrufbarer Verbindung (z.B. unter Verwendung eines Web-Browsers) mit einer beliebigen Art von computergestützter Einheit Daten austauschen können.
  • Unter Bezugnahme auf 2 wird ein Satz von funktionalen Abstraktionsschichten gezeigt, die durch die Cloud-Computing-Umgebung 50 (1) bereitgestellt werden. Es sollte von vornherein klar sein, dass die in 2 gezeigten Komponenten, Schichten und Funktionen lediglich veranschaulichend sein sollen und Ausführungsformen der Erfindung nicht darauf beschränkt sind. Wie abgebildet ist, werden die folgenden Schichten und entsprechenden Funktionen bereitgestellt.
  • Eine Hardware- und Software-Schicht 60 enthält Hardware- und Software-Komponenten. Zu Beispielen für Hardware-Komponenten gehören: Mainframe Computer 61; auf der RISC- (Reduced Instruction Set Computer) Architektur beruhende Server 62; Server 63; Blade-Server 64; Speichereinheiten 65; und Netzwerke sowie Netzwerkkomponenten 66. In einigen Ausführungsformen beinhalten Software-Komponenten eine Netzwerk-Anwendungsserver-Software 67 und eine Datenbank-Software 68.
  • Eine Virtualisierungsschicht 70 stellt eine Abstraktionsschicht bereit, aus der die folgenden Beispiele für virtuelle Einheiten bereitgestellt werden können: virtuelle Server 71, virtueller Speicher 72, virtuelle Netzwerke 73, darunter virtuelle private Netzwerke, virtuelle Anwendungen und Betriebssysteme 74; und virtuelle Clients 75.
  • In einem Beispiel kann eine Verwaltungsschicht 80 die nachfolgend beschriebenen Funktionen bereitstellen. Eine Ressourcen-Bereitstellung 81 stellt die dynamische Beschaffung von Datenverarbeitungsressourcen sowie anderen Ressourcen bereit, die zum Durchführen von Aufgaben innerhalb der Cloud-Computing-Umgebung verwendet werden. Ein Messen und eine Preisfindung 82 stellen die Kostenverfolgung beim Verwenden von Ressourcen innerhalb der Cloud-Computing-Umgebung sowie die Abrechnung oder Rechnungsstellung für den Verbrauch dieser Ressourcen bereit. In einem Beispiel können diese Ressourcen Anwendungs-Software-Lizenzen aufweisen. Die Sicherheit stellt die Identitätsüberprüfung für Cloud-Nutzer und Aufgaben sowie Schutz für Daten und andere Ressourcen bereit. Ein Benutzerportal 83 stellt Nutzern und Systemadministratoren den Zugang zu der Cloud-Computing-Umgebung bereit. Eine Verwaltung des Dienstumfangs 84 stellt die Zuordnung und Verwaltung von Cloud-Computing-Ressourcen bereit, so dass die benötigten Dienstziele erreicht werden. Ein Planen und Erfüllen von Vereinbarungen zum Dienstumfang (SLA, Service Level Agreement) 85 stellt die Anordnung vorab und die Beschaffung von Cloud-Computing-Ressourcen, für die eine zukünftige Anforderung vorausgesehen wird, gemäß einem SLA bereit.
  • Eine Arbeitslastschicht 90 stellt Beispiele für die Funktionalität bereit, für welche die Cloud-Computing-Umgebung verwendet werden kann. Zu Beispielen für Arbeitslasten und Funktionen, die von dieser Schicht bereitgestellt werden können, gehören: Abbildung und Navigation 91; Software-Entwicklung und Lebenszyklusverwaltung 92; Bereitstellung von Ausbildung in virtuellen Klassenzimmern 93; Datenanalytikverarbeitung 94; Transaktionsverarbeitung 95; und mobiler Desktop 96.
  • 3 ist ein funktionelles Blockschaltbild, das eine verteilte Datenverarbeitungs-Umgebung veranschaulicht, die allgemein als 100 bezeichnet wird und für die Operation des Symphonisierungsprogramms 112 gemäß mindestens einer Ausführungsform der vorliegenden Erfindung geeignet ist. Der Begriff „verteilt“, wie er hier verwendet wird, beschreibt ein Computersystem, das mehrere physisch getrennte Einheiten beinhaltet, die zusammen als ein einziges Computersystem arbeiten. In 3 wird lediglich eine Veranschaulichung einer Implementierung veranschaulicht, ohne dass damit irgendwelche Einschränkungen bezüglich der Umgebungen, in denen verschiedene Ausführungsformen implementiert werden können, verbunden sind. Der Fachmann kann zahlreiche Änderungen an der dargestellten Umgebung vornehmen, ohne vom Umfang der Erfindung, wie er in den Ansprüchen angegeben ist, abzuweichen.
  • Die verteilte Datenverarbeitungs-Umgebung 100 beinhaltet eine Datenverarbeitungseinheit 110 und Cloud-Diensten 130, 132, 134 und 136, die alle mit dem Netzwerk 120 verbunden sind. Bei dem Netzwerk 120 kann es sich beispielsweise um ein Telekommunikationsnetzwerk, ein lokales Netzwerk (LAN), ein Weitverkehrsnetzwerk (WAN), wie das Internet, oder eine Kombination aus diesen drei Netzwerken handeln, und es kann drahtgebundene, drahtlose oder faseroptische Verbindungen beinhalten. Das Netzwerk 120 kann ein oder mehrere verdrahtete und/oder drahtlose Netzwerke beinhalten, die in der Lage sind, Daten-, Sprach- und/oder Videosignale zu empfangen und zu übertragen, einschließlich Multimediasignale, die Sprach-, Daten- und Videoinformationen beinhalten. Im Allgemeinen kann das Netzwerk 120 eine beliebige Kombination von Verbindungen und Protokollen sein, die die Kommunikation zwischen der Computereinheit 110, den Cloud-Diensten 130, 132, 134 und 136 und anderen Datenverarbeitungseinheiten (nicht dargestellt) innerhalb der verteilten Datenverarbeitungs-Umgebung 100 unterstützen.
  • Die Computereinheit 110 kann eine eigenständige Computereinheit, ein Verwaltungsserver, ein Webserver, eine mobile Computereinheit oder ein anderes elektronisches Einheit oder Computersystem sein, das in der Lage ist, Daten zu empfangen, zu senden und zu verarbeiten. In einer Ausführungsform kann die Computereinheit 110 ein Laptop-Computer, ein Tablet-Computer, ein Netbook-Computer, ein Personal Computer (PC), ein Desktop-Computer, ein Personal Digital Assistant (PDA), ein Smart Phone oder eine beliebige programmierbare elektronische Einheit sein, die in der Lage ist, innerhalb von Datenverarbeitungs-Umgebung 100 über das Netzwerk 120 mit anderen Computereinheiten (nicht dargestellt) zu kommunizieren. In einer anderen Ausführungsform kann die Computereinheit 110 ein Computersystem darstellen, das mehrere Computer als ein Serversystem verwendet, wie z.B. in einer Cloud-Computing-Umgebung. In noch einer anderen Ausführungsform stellt die Computereinheit 110 ein Computersystem dar, das geclusterte Computer und Komponenten (z. B. Datenbankservercomputer, Anwendungsservercomputer) verwendet, die beim Zugriff innerhalb der verteilten Datenverarbeitungs-Umgebung 100 als ein einziger nahtloser Ressourcen-Pool fungieren.
  • In einer Ausführungsform beinhaltet die Computereinheit 110 das Symphonize-Programm 112. In einer Ausführungsform ist das Symphonize-Programm 112 ein Programm, eine Anwendung oder ein Subprogramm eines größeren Programms zur Definition und Symphonisierung serverloser Funktionen von hybriden Multi-Cloud-Diensten. In einer alternativen Ausführungsform kann sich das Symphonize-Programm 112 auf einem beliebigen anderen Gerät befinden, auf das die Computereinheit 110 über das Netzwerk 120 zugreifen kann.
  • In einer Ausführungsform beinhaltet die Computereinheit 110 ein Informations-Repository 114. In einer Ausführungsform kann das Informations-Repository 114 vom Symphonize-Programm 112 verwaltet werden. In einer alternativen Ausführungsform kann das Informations-Repository 114 vom Betriebssystem der Einheit allein oder zusammen mit dem Symphonize-Programm 112 verwaltet werden. Informations-Repository 114 ist ein Daten-Repository, das Informationen speichern, sammeln, vergleichen und/oder kombinieren kann. In einigen Ausführungsformen befindet sich das Informations-Repository 114 außerhalb der Computereinheit 110 und der Zugriff erfolgt über ein Kommunikationsnetzwerk, z. B. das Netzwerk 120. In einigen Ausführungsformen ist das Informations-Repository 114 auf der Computereinheit 110 gespeichert. In einigen Ausführungsformen kann sich das Informations-Repository 114 auf einer anderen Computereinheit (nicht dargestellt) befinden, vorausgesetzt, das Informations-Repository 114 ist für die Computereinheit 110 zugänglich. Das Informations-Repository 114 beinhaltet unter anderem Anwendungsdaten, Cloud-Konfigurationsdaten, Benutzerdaten, Systemkonfigurationsdaten und andere Daten, die vom Symphonize-Programm 112 aus einer oder mehreren Quellen empfangen werden, sowie Daten, die vom Symphonize-Programm 112 erstellt werden.
  • Das Informations-Repository 114 kann unter Verwendung beliebiger flüchtiger oder nichtflüchtiger Speichermedien zur Speicherung von Informationen implementiert werden, wie sie in der Technik bekannt sind. Beispielsweise kann das Informations-Repository 114 mit einer Bandbibliothek, einer optischen Bibliothek, einem oder mehreren unabhängigen Festplattenlaufwerken, mehreren Festplattenlaufwerken in einem redundanten Array unabhängiger Festplatten (RAID), Festkörperlaufwerken (SSD) oder Direktzugriffspeichern (RAM) implementiert werden. Ebenso kann das Informations-Repository 114 mit jeder geeigneten Speicherarchitektur implementiert werden, die auf dem Gebiet der Technik bekannt ist, wie z. B. eine relationale Datenbank, eine objektorientierte Datenbank oder eine oder mehrere Tabellen.
  • In einer Ausführungsform beinhaltet die Computereinheit 110 die Cloud-Dienste 130, 132, 134 und 136. In einer Ausführungsform sind die Cloud-Dienste 130, 132, 134 und 136 Bereitsteller von hybriden Cloud-Diensten.
  • 4 ist eine Veranschaulichung der Funktion der vorliegenden Erfindung, gemäß einer Ausführungsform der Erfindung. Die vorliegende Erfindung befindet sich in der Verwaltungsschicht 80 in den funktionalen Abstraktionsschichten der 2. In einer Ausführungsform sind die Cloud-Apps 202, 204 und 206 Anwendungen, die die Dienste von den verschiedenen Cloud-Dienstanbietern anfordern, zum Beispiel die Cloud-Dienste 130, 132, 134 und 136 aus 3. Die Zuordnungstabelle 208 ist ein Beispiel für die Zuordnung der serverlosen Dienste (Spalte SL-Dienst) zu den QoS-Attributen (Spalte QoS-Attribut). Die Vorgehensweise 210 veranschaulicht ein verteiltes, vorintegriertes System, das die Dienst-QoS und die Richtlinienauswahl während der Laufzeit dynamisch ermittelt. Diese Vorgehensweise ermittelt die QoS-Attribute und füllt die Zuordnungstabelle 208 auf. In diesem Beispiel führt das Symphonize-Programm 112, wenn es die Anforderungen der Cloud-Anwendungen 202, 204 und 206 für Cloud-Dienste empfängt, eine Suche in der Zuordnungstabelle 208 durch, um zu ermitteln, welcher Cloud-Dienstanbieter die entsprechenden QoS-Attribute für jede der Cloud-Anwendungen bereitstellt. Das Symphonize-Programm 112 ordnet dann auf Grundlage dieser Ermittlung jede der Cloud-Anwendungen dem entsprechenden Cloud-Service zu.
  • 5 veranschaulicht die Auswahl des geeigneten Dienstanbieters gemäß einer Ausführungsform der Erfindung. In diesem Beispiel registrieren sich verschiedene Anwendungen, wie die Service-App 302 (z. B. Container as a Service (CaaS) oder PaaS-Anwendungen), die Internet of Things (loT)-App 304, die Artificial Intelligence (Al)-App 306 oder die Block Chain (BC)-App 308, beim Symphonize-Programm 112 für bestimmte serverlose Funktionen mit bestimmten QoS-Attributen und Richtlinien. In einer Ausführungsform validiert das Symphonize-Programm 112 diese Attribute bei verschiedenen Cloud-Dienstanbietern für jede der Anwendungen, führt eine Suche in der Zuordnungstabelle durch und ermittelt den besten Dienstanbieter 312 oder privaten Anbieter 314, um jede Anwendung zu bedienen. Das Symphonize-Programm 112 verbindet dann jede Anwendung mit dem ausgewählten Dienstanbieter oder privaten Anbieter. Mit der Verfeinerung der Quality-Attribute geht das Symphonize-Programm 112 nahtlos von einem Anbieter zum anderen über, gemäß den verfeinerten Quality-Attributen.
  • 6 ist eine veranschaulichende Darstellung der Zuordnungstabelle gemäß einer Ausführungsform der Erfindung. In diesem Beispiel haben sich die loT-App 402, die Container-App 404 und die mobile App 406 beim Symphonize-Programm 112 registriert, um auf bestimmte serverlose Funktionen zuzugreifen, indem sie die definierte QoS bereitstellen, die von jeder Anwendung benötigt wird. Die Zuordnungstabelle 408 wurde zuvor mit QoS-Attributen und Richtlinien für mehrere Dienstanbieter in der Dienstanbieterspalte 416 aufgefüllt, z. B. für die Cloud-Dienste 130, 132, 134 und 136 aus 3 sowie für mehrere Anwendungen 410, loT App1420, CaaS App 422, loT App2 424 und BC App 426. Das Symphonize-Programm 112 ermittelt den geeigneten Dienstanbieter auf Grundlage der unterstützten Quality of Services, die in der Zuordnungstabelle 408 aufgezeichnet sind.
  • Anwendungen, die dieselben Funktionen, aber unterschiedliche QoS-Attribute anfordern, werden über mehrere Cloud-Dienstanbieter zugeordnet. Zum Beispiel fordern mehrere Anwendungen in 6 denselben Dienst „CreatSrv“ an, wie in der serverlosen Spalte 412 zu sehen ist. Jede dieser Anwendungen hat jedoch unterschiedliche QoS-Attribute, wie in der QoS-Spalte 414 zu sehen ist. Beispielsweise lautet das QoS-Attribut 414 von loT App1420 HCLMLSLR, was in diesem Beispiel bedeutet, dass es sich bei dieser Anwendung um einen Dienst mit hohen Kosten (HC), geringer Verwaltung (LM), geringer Sicherheit (LS) und geringer Ausfallsicherheit (LR) handelt. In ähnlicher Weise lauten die QoS-Attribute 414 der BC-Anwendung 426 HCHMHSHR, was in diesem Beispiel bedeutet, dass es sich um einen Dienst mit hohen Kosten, hoher Verwaltung, hoher Sicherheit und hoher Ausfallsicherheit handelt. Das Symphonize-Programm 112 ordnet daher jede dieser Anwendungen verschiedenen Dienstanbietern zu, wie aus der Spalte 416 für den Dienstanbieter hervorgeht. Daher wird jede dieser Anwendungen gemäß den Daten in der Zuordnungstabelle 408 verschiedenen Cloud-Diensten zugeordnet. In diesem Beispiel wird die IoT-App1 420 dem Cloud-Dienst 130, die CaaS-App 422 dem Cloud-Dienst 132, die IoT-App2 424 dem Cloud-Dienst 134 und die BC-App 426 dem Cloud-Dienst 136 zugeordnet, obwohl jede Anwendung dieselbe Anforderung an den Dienst „CreateSrv“ stellt.
  • Anwendungen können nahtlos zu anderen Dienstanbietern wechseln, wenn diese Dienstanbieter die entsprechenden QoS- und Richtlinienauswahlen bereitstellen.
  • 7 ist ein Ablaufdiagramm des Workflows 500, das die Operationsschritte zur Einrichtung der serverlosen Funktionen und QoS-Attribute des Symphonize-Programms 112 darstellt. In einer alternativen Ausführungsform können die Schritte des Workflows 500 von jedem anderen Programm durchgeführt werden, während es mit dem Symphonize-Programm 112 arbeitet. In einer Ausführungsform registriert das Symphonize-Programm 112 die Anwendung für bestimmte serverlose Funktionen. In einer Ausführungsform ermittelt das Symphonize-Programm 112 die spezifischen QoS-Attribute für die neu zu registrierende Anwendung. In einer Ausführungsform vergleicht das Symphonize-Programm 112 die von der neuen Anwendung benötigten spezifischen QoS-Attribute mit den QoS-Attributen, die für jeden Cloud-Dienstanbieter verfügbar sind. In einer Ausführungsform verbindet das Symphonize-Programm 112 die Anwendung mit den ausgewählten Dienstanbietern auf Grundlage des Vergleichs der von der Anwendung benötigten QoS-Attribute mit den von den Dienstanbietern bereitgestellten QoS-Attributen.
  • Es sollte gewürdigt werden, dass Ausführungsformen der vorliegenden Erfindung zumindest die Einrichtung der serverlosen Funktionen und QoS-Attribute des Symphonize-Programms 112 für die Definition und Symphonisierung von serverlosen Funktionen von hybriden Multi-Cloud-Diensten bereitstellen. 7 veranschaulicht jedoch lediglich eine Implementierung und stellt keine Einschränkungen bezüglich der Umgebungen dar, in denen verschiedene Ausführungsformen implementiert werden können. Der Fachmann kann zahlreiche Änderungen an der dargestellten Umgebung vornehmen, ohne vom Umfang der Erfindung, wie er in den Ansprüchen angegeben ist, abzuweichen.
  • Es sollte gewürdigt werden, dass der in 7 dargestellte Prozess eine mögliche Iteration des Einrichtens der serverlosen Funktionen und QoS-Attribute des Symphonize-Programms 112 veranschaulicht, die sich jedes Mal wiederholt, wenn sich eine neue Anwendung beim Symphonize-Programm 112 registriert.
  • Das Symphonize-Programm 112 registriert eine Anwendung (Schritt 502). In einer Ausführungsform registriert das Symphonize-Programm 112 die Anwendung mit bestimmten Quality of Service-Attributen. In einer Ausführungsform, wenn ein Client Legacy-Funktionen unter Verwendung von Multi-Cloud-Serverless-Komponenten symphonisieren möchte, registriert das Symphonize-Programm 112 die Anwendung, indem es einen Serverless-Kontext gemäß den erforderlichen Eingaben, Quality-Attributen und unterstützten Serverless-Funktionen erstellt. In einer Ausführungsform zeichnet das Symphonize-Programm 112 die von der zu registrierenden Anwendung empfangenen Eingaben und Quality-Attribute auf und trägt die Quality-Attribute in die Zuordnungstabelle ein, z. B. die Zuordnungstabelle 408 aus 6.
  • In einer Ausführungsform aktualisiert das Symphonize-Programm 112 die Zuordnungstabelle, z. B. die Zuordnungstabelle 408 aus 6, wenn sich neue Anwendungen registrieren, wenn sich neue Dienstanbieter registrieren oder wenn bestehende Dienstanbieter ihre QoS-Attribute aktualisieren. Auf diese Weise kann das Symphonize-Programm 112 die Funktionen je nach Bedarf oder Wunsch auf Grundlage der aktuellen QoS-Attribute, die von den Dienstanbietern unterstützt werden, zwischen den Dienstanbietern umschalten.
  • Symphonize-Programm 112 ermittelt die QoS-Attribute (Schritt 504). In einer Ausführungsform ermittelt das Symphonize-Programm 112 die spezifischen QoS-Attribute für die neu zu registrierende Anwendung. Das Symphonize-Programm 112 aktualisiert dann die Zuordnungstabelle, z. B. die Zuordnungstabelle 408 aus 6, mit den QoS-Attributen für die Anwendung, die empfangen wurden, wenn sich die Anwendung in Schritt 502 für die Multi-Cloud-Serverless-Komponenten registriert hat.
  • Das Symphonize-Programm 112 validiert die Attribute über verschiedene Cloud-Dienstanbieter (Schritt 506). In einer Ausführungsform vergleicht das Symphonize-Programm 112 die spezifischen QoS-Attribute, die von der neuen Anwendung benötigt werden, mit den QoS-Attributen, die für jeden Cloud-Dienstanbieter verfügbar sind, beispielsweise die Cloud-Dienste 130 - 136 aus 3.
  • Das Symphonize-Programm 112 schaltet Funktionen anbieterübergreifend um (Schritt 508). In einer Ausführungsform schaltet das Symphonize-Programm 112 die Funktionen anbieterübergreifend um auf Grundlage des Vergleichs der von der Anwendung benötigten QoS-Attribute mit den von den Dienstanbietern bereitgestellten QoS-Attributen in Schritt 506. In einer Ausführungsform schaltet das Symphonize-Programm 112 serverlose Funktionen anbieterübergreifend um, wenn sich die von den serverlosen Diensten benötigten Attribute ändern. Wenn beispielsweise eine erste Version der serverlosen Funktion einen Satz von serverlosen Diensten erfordert (z. B. keine Ausfallsicherheit, geringe Sicherheit, begrenzte verwaltete Dienste), die nächste Version dieser serverlosen Funktion jedoch einen anderen Satz von serverlosen Diensten erfordert (z. B. etwas Ausfallsicherheit, hohe Sicherheit, keine verwalteten Dienste), dann schaltet das Symphonize-Programm 112 die serverlose Funktion auf einen Dienstanbieter um, der den neuen Satz von serverlosen Diensten erfüllt, die von der serverlosen Funktion benötigt werden.
  • 8 ist ein Ablaufdiagramm des Workflows 600, das die Operationsschritte zur Verbindung der Anwendungen mit den entsprechenden Dienstanbietern darstellt, die vom Symphonize-Programm 112 durchgeführt werden. In einer alternativen Ausführungsform können die Schritte des Workflows 600 von jedem anderen Programm durchgeführt werden, während es mit dem Symphonize-Programm 112 arbeitet. In einer Ausführungsform empfängt das Symphonize-Programm 112 eine Anforderung von einer Anwendung, auf bestimmte serverlose Funktionen zuzugreifen, die die definierte QoS bereitstellen. In einer Ausführungsform ermittelt das Symphonize-Programm 112 die spezifischen QoS-Attribute, die von der zu bedienenden Anwendung angefordert werden. In einer Ausführungsform ermittelt das Symphonize-Programm 112 die Dienstanbieter, die die von der zu bedienenden Anwendung geforderten QoS-Attribute bereitstellen können. In einer Ausführungsform wählt das Symphonize-Programm 112 einen Dienstanbieter aus, der die von der zu bedienenden Anwendung geforderten QoS-Attribute bereitstellen kann. In einer Ausführungsform stellt das Symphonize-Programm 112 die Verbindung zwischen der Anwendung und dem ausgewählten Dienstanbieter her.
  • Es sollte gewürdigt werden, dass Ausführungsformen der vorliegenden Erfindung zumindest die Verbindung der Anwendungen mit den entsprechenden Dienstanbietern bereitstellen, die vom Symphonize-Programm 112 durchgeführt wird, um serverlose Funktionen von hybriden Multi-Cloud-Diensten zu definieren und zu symphonisieren. 8 veranschaulicht jedoch lediglich eine Implementierung und stellt keine Einschränkungen bezüglich der Umgebungen dar, in denen verschiedene Ausführungsformen implementiert werden können. Der Fachmann kann zahlreiche Änderungen an der dargestellten Umgebung vornehmen, ohne vom Umfang der Erfindung, wie er in den Ansprüchen angegeben ist, abzuweichen.
  • Es sollte gewürdigt werden, dass der in 8 veranschaulichte Prozess eine mögliche Iteration der operativen Schritte zur Einrichtung der serverlosen Funktionen und QoS-Attribute des Symphonize-Programms 112 darstellt, die sich jedes Mal wiederholt, wenn das Symphonize-Programm 112 eine Anforderung von einer Anwendung zum Zugriff auf bestimmte serverlose Funktionen erhält.
  • Das Symphonize-Programm 112 empfängt eine Anforderung von einer Anwendung zum Zugriff auf bestimmte serverlose Funktionen (Schritt 602). In einer Ausführungsform empfängt das Symphonize-Programm 112 eine Anforderung von einer Anwendung, auf bestimmte serverlose Funktionen zuzugreifen, die die definierte QoS bereitstellen.
  • Symphonize-Programm 112 ermittelt die angeforderte QoS (Schritt 604). In einer Ausführungsform ermittelt das Symphonize-Programm 112 die spezifischen QoS-Attribute, die von der zu bedienenden Anwendung angefordert werden.
  • Das Symphonize-Programm 112 ermittelt die Dienstanbieter, die die geforderte QoS unterstützen (Schritt 606). In einer Ausführungsform ermittelt das Symphonize-Programm 112 die Dienstanbieter, die die von der zu bedienenden Anwendung ermittelten QoS-Attribute bereitstellen können, indem es die in Schritt 604 ermittelten QoS-Attribute mit den QoS-Attributen für die serverlosen Dienste in der Zuordnungstabelle vergleicht, z. B. der Zuordnungstabelle 408 aus 6. In einer Ausführungsform durchsucht das Symphonize-Programm 112 die Zuordnungstabelle, um alle Dienstanbieter zu ermitteln, die die spezifischen serverlosen Dienste bereitstellen und die von der zu bedienenden Anwendung geforderten QoS-Attribute erfüllen können.
  • Das Symphonize-Programm 112 wählt den Dienstanbieter aus, der die geforderte QoS unterstützt (Schritt 608). In einer Ausführungsform wählt das Symphonize-Programm 112 einen Dienstanbieter aus, der die serverlosen Funktionen bereitstellen kann, die die von der zu bedienenden Anwendung angeforderten QoS-Attribute erfüllen. In einer Ausführungsform wählt das Symphonize-Programm 112 einen Dienstanbieter auf Grundlage einer vom Client empfangenen Prioritätsliste von Dienstanbietern aus. In einer anderen Ausführungsform wählt das Symphonize-Programm 112 einen Dienstanbieter auf Grundlage eines am längsten nicht verwendeten Algorithmus aus, um die Auswahl gleichmäßig auf alle Dienstanbieter zu verteilen, die die serverlosen Funktionen bereitstellen können, die den von der Anwendung angeforderten QoS-Attributen entsprechen. In einer anderen Ausführungsform wählt das Symphonize-Programm 112 einen Dienstanbieter zufällig aus der Liste der Dienstanbieter aus, die die serverlosen Funktionen bereitstellen können, die den von der Anwendung angeforderten QoS-Attributen entsprechen.
  • Symphonize-Programm 112 ordnet die Anwendung dem ausgewählten Dienstanbieter zu (Schritt 610). In einer Ausführungsform bindet das Symphonize-Programm 112 die Anwendung an die serverlosen Dienste, die von dem in Schritt 608 ausgewählten Dienstanbieter bereitgestellt werden.
  • 9 ist ein Blockschaltbild, das die Komponenten der Datenverarbeitungseinheit 110 darstellt, die für das Symphonize-Programm 112 gemäß mindestens einer Ausführungsform der Erfindung geeignet sind. 9 zeigt den Computer 700, einen oder mehrere Computer-Prozessor(en) 704 (beinhaltend einen oder mehrere Computer-Prozessoren), eine Kommunikationsstruktur 702, einen Arbeitsspeicher 706, beinhaltend einen Direktzugriffsspeicher (RAM) 716 und einen Cache 718, einen permanenten Speicher 708, eine Datenübertragungseinheit 712, E/A-Schnittstellen 714, eine Anzeige 722, und externe Geräte 720. Es sollte gewürdigt werden, dass 9 lediglich eine Veranschaulichung einer Ausführungsform veranschaulicht und keine Einschränkungen bezüglich der Umgebungen, in denen verschiedene Ausführungsformen implementiert werden können, impliziert. Es können viele Änderungen an der dargestellten Umgebung vorgenommen werden.
  • Wie dargestellt, arbeitet der Computer 700 über die Kommunikationsstruktur 702, die die Kommunikation zwischen dem/den Computer-Prozessor(en) 704, dem Arbeitsspeicher 706, dem permanenten Speicher 708, der Datenübertragungseinheit 712 und der/den Eingabe/Ausgabe (E/A)-Schnittstelle(n) 714 bereitstellt. Die Kommunikationsstruktur 702 kann mit einer Architektur implementiert werden, die geeignet ist, Datenübertragungen oder Steuerinformationen zwischen den Prozessoren 704 (z. B. Mikroprozessoren, Kommunikationsprozessoren und Netzwerkprozessoren), dem Arbeitsspeicher 706, den externen Einheiten 720 und allen anderen Hardwarekomponenten innerhalb eines Systems zu ermöglichen. Die Kommunikationsstruktur 702 kann zum Beispiel mit einem oder mehreren Bussen implementiert werden.
  • Bei dem Arbeitsspeicher 706 und dem permanenten Speicher 708 handelt es sich um computerlesbare Speichermedien. In der dargestellten Ausführungsform umfasst der Arbeitsspeicher 706 einen RAM 716 und einen Cache 718. Im Allgemeinen kann der Arbeitsspeicher 706 jedes geeignete flüchtige oder nichtflüchtige, computerlesbare Speichermedium beinhalten. Der Cache 718 ist ein schneller Arbeitsspeicher, der die Leistung des/der Prozessors/Prozessoren 704 erhöht, indem er Daten aus dem RAM 716, auf die kürzlich zugegriffen wurde, und Daten, auf die beinahe kürzlich zugegriffen wurde, enthält.
  • Programmanweisungen für das Symphonize-Programm 112 können in dem permanenten Speicher 708 oder allgemeiner in einem beliebigen computerlesbaren Speichermedium zur Ausführung durch einen oder mehrere der jeweiligen Computer-Prozessoren 704 über einen oder mehrere Arbeitsspeicher des Arbeitsspeichers 706 gespeichert werden. Der permanente Speicher 708 kann ein magnetisches Festplattenlaufwerk, ein Festkörperlaufwerk, ein Halbleiterspeichergerät, ein Nur-Lese-Speicher (ROM), ein elektronisch löschbarer programmierbarer Nur-Lese-Speicher (EEPROM), ein Flash-Speicher oder ein beliebiges anderes computerlesbares Speichermedium sein, das Programmanweisungen oder digitale Informationen speichern kann.
  • Die vom permanenten Speicher 708 verwendeten Medien können auch entfernbar sein. Zum Beispiel kann eine entfernbare Festplatte für den permanenten Speicher 708 verwendet werden. Andere Beispiele beinhalten optische und magnetische Platten, USB-Sticks und Smart Cards, die für einen Datentransfer auf ein anderes durch einen Computer lesbares Speichermedium, das ebenfalls Teil des permanenten Speichers 708 ist, in ein Laufwerk eingesetzt werden.
  • Die Datenübertragungseinheit 712 stellt in diesen Beispielen Datenübertragungen mit anderen Datenverarbeitungssystemen oder-einheiten bereit. In diesen Beispielen beinhaltet die Datenübertragungseinheit 712 eine oder mehrere Netzwerk-Schnittstellenkarten. Die Datenübertragungseinheit 712 kann Datenübertragungen unter Verwendung von physischen oder drahtlosen Datenübertragungen bereitstellen. Im Rahmen einiger Ausführungsformen der vorliegenden Erfindung kann die Quelle der verschiedenen Eingabedaten physisch von dem Computer 700 entfernt sein, so dass die Eingabedaten empfangen und die Ausgaben in ähnlicher Weise über die Datenübertragungseinheit 712 übertragen werden können.
  • Die E/A-Schnittstelle(n) 714 ermöglicht bzw. ermöglichen die Eingabe und Ausgabe von Daten mit anderen Einheiten, die mit dem Computer 700 verbunden sein können. Beispielsweise kann bzw. können die E/A-Schnittstelle(n) 714 eine Verbindung zu externen Einheiten 720 wie einer Tastatur, einem Tastenfeld, einem Berührungsbildschirm, einem Mikrofon, einer Digitalkamera und/oder einer anderen geeigneten Eingabevorrichtung bereitstellen. Die externe(n) Einheit(en) 720 kann bzw. können auch tragbare, computerlesbare Speichermedien beinhalten, wie zum Beispiel USB-Sticks, tragbare optische oder magnetische Platten und Speicherkarten. Software und Daten, die zur Ausführung von Ausführungsformen der vorliegenden Erfindung verwendet werden, z. B. das Symphonize-Programm 112, können auf solchen tragbaren, computerlesbaren Speichermedien gespeichert werden und über die E/A-Schnittstelle(n) 714 auf den permanenten Speicher 708 geladen werden. Die E/A-Schnittstelle(n) 714 ist bzw. sind auch mit einer Anzeige 722 verbunden.
  • Die Anzeige 722 stellt einen Mechanismus zur Anzeige von Daten für einen Benutzer bereit und kann zum Beispiel ein Computer-Monitor sein. Die Anzeige 722 kann auch als Touchscreen fungieren, beispielsweise als Anzeige eines Tablet-Computers.
  • Die hierin beschriebenen Programme werden auf Grundlage der Anwendung identifiziert, für die sie in einer bestimmten Ausführungsform der Erfindung umgesetzt werden. Es sollte jedoch klar sein, dass jede bestimmte Programm-Nomenklatur hierin aus rein praktischen Gründen verwendet wird, und die Erfindung somit nicht allein auf die Verwendung in einer bestimmten identifizierten Anwendung und/oder durch eine derartige Nomenklatur umgesetzt eingeschränkt sein soll.
  • Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt handeln. Das Computerprogrammprodukt kann ein durch einen Computer lesbares Speichermedium (oder -medien) enthalten, auf dem durch einen Computer lesbare Programmanweisungen gespeichert sind, um einen Prozessor dazu zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
  • Bei dem durch einen Computer lesbaren Speichermedium kann es sich um jede physische Einheit handeln, die Anweisungen zur Verwendung durch eine Einheit zum Ausführen von Anweisungen beibehalten und speichern kann. Das durch einen Computer lesbare Speichermedium kann zum Beispiel eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiter-Speichereinheit oder jede geeignete Kombination aus dem Vorgenannten sein, es ist aber nicht darauf beschränkt. Zu einer nicht erschöpfenden Liste von spezifischeren Beispielen des durch einen Computer lesbaren Speichermediums gehören die Folgenden: eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM bzw. Flash-Speicher), ein statischer Direktzugriffsspeicher (SRAM), ein tragbarer CD-ROM, eine DVD, ein Speicher-Stick, eine Diskette, eine mechanisch codierte Einheit wie zum Beispiel Lochkarten oder erhabene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und jede geeignete Kombination des Vorgenannten. Ein durch einen Computer lesbares Speichermedium soll, wie hierin verwendet, nicht als flüchtige Signale an sich aufgefasst werden, wie zum Beispiel Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder andere Übertragungsmedien ausbreiten (z.B. durch ein Lichtwellenleiterkabel geleitete Lichtimpulse) oder durch einen Draht übertragene elektrische Signale.
  • Hierin beschriebene, durch einen Computer lesbare Programmanweisungen können von einem durch einen Computer lesbaren Speichermedium auf jeweilige Datenverarbeitungs-/Verarbeitungseinheiten oder über ein Netzwerk wie zum Beispiel das Internet, ein lokales Netzwerk, ein Weitverkehrsnetzwerk und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Leitwegrechner, Firewalls, Vermittlungseinheiten, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jeder Datenverarbeitungs-/Verarbeitungseinheit empfängt durch einen Computer lesbare Programmanweisungen aus dem Netzwerk und leitet die durch einen Computer lesbaren Programmanweisungen zur Speicherung in einem durch einen Computer lesbaren Speichermedium innerhalb der entsprechenden Datenverarbeitungs-/Verarbeitungseinheit weiter.
  • Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Arbeitsschritten der vorliegenden Erfindung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben sind, darunter objektorientierte Programmiersprachen wie Smalltalk, C++ o.ä. sowie herkömmliche prozedurale Programmiersprachen wie die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die durch einen Computer lesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. In dem letzteren Szenario kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch jeden Typ von Netzwerk verbunden werden, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetzwerk (WAN), oder die Verbindung kann zu einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters). In einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, im Feld programmierbare Gatter-Anordnungen (FPGA, field programmable gate arrays) oder programmierbare Logikanordnungen (PLA, programmable logic arrays) die computerlesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der computerlesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Erfindung durchzuführen.
  • Aspekte der vorliegenden Erfindung werden hierin unter Bezugnahme auf Veranschaulichungen von Ablaufplänen und/oder Blockschaubildern von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es sollte klar sein, dass jeder Block der Ablaufplanveranschaulichungen und/oder der Blockschaubilder und Kombinationen von Blöcken in den Ablaufplanveranschaulichungen und/oder den Blockschaubildern mittels durch einen Computer lesbare Programmanweisungen umgesetzt werden können.
  • Diese durch einen Computer lesbaren Programmanweisungen können für einen Prozessor eines Allzweck-Computers, eines Spezial-Computers oder eine andere programmierbare Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, sodass die über den Prozessor des Computers bzw. eine andere programmierbare Datenverarbeitungsvorrichtung ausgeführten Anweisungen Mittel zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaubilder angegebenen Funktionen/Schritte erstellen. Diese durch einen Computer lesbaren Programmanweisungen können auch auf einem durch einen Computer lesbaren Speichermedium gespeichert sein, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Art funktionieren, sodass das durch einen Computer lesbare Speichermedium, auf dem Anweisungen gespeichert sind, ein Herstellungsprodukt aufweist, darunter Anweisungen, die Aspekte der/des in dem Block bzw. den Blöcken des Ablaufplans und/oder der Blockschaubilder angegebenen Funktion/Schritts umsetzen.
  • Die durch einen Computer lesbaren Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um das Ausführen einer Reihe von Arbeitsschritten auf dem Computer bzw. der anderen programmierbaren Vorrichtung oder anderen Einheit zu verursachen, um einen durch einen Computer umgesetzten Prozess zu erzeugen, sodass die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführten Anweisungen die in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaubilder angegebenen Funktionen/Schritte umsetzen.
  • Die Ablaufpläne und Blockschaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder den Blockschaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zum Umsetzen der bestimmten logischen Funktion(en) aufweisen. In einigen alternativen Umsetzungen können die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt auftreten. Zum Beispiel können zwei nacheinander gezeigte Blöcke tatsächlich im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal in der umgekehrten Reihenfolge ausgeführt werden, was von der beteiligten Funktionalität abhängt. Es ist ferner anzumerken, dass jeder Block der Blockschaubilder und/oder der Ablaufplandarstellungen sowie Kombinationen von Blöcken in den Blockschaubildern und/oder der Ablaufplandarstellung durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die angegebenen Funktionen oder Handlungen durchführen oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.
  • Die Beschreibungen der verschiedenen Ausführungsformen der vorliegenden Erfindung wurden zum Zweck der Veranschaulichung erstellt, sie sollen aber keineswegs erschöpfend oder auf die offenbarten Ausführungsformen eingeschränkt sein. Für Fachleute sind viele Modifizierungen und Variationen offenkundig, die nicht von dem Schutzumfang und Erfindungsgedanken der Erfindung abweichen. Die hierin verwendete Terminologie wurde gewählt, um die Grundgedanken der Ausführungsform, die praktische Anwendung oder technische Verbesserung gegenüber auf dem Markt gefundenen Technologien bestmöglich zu erklären oder anderen Fachleuten das Verständnis der hierin offenbarten Ausführungsformen zu ermöglichen.

Claims (20)

  1. Computerimplementiertes Verfahren zur Symphonisierung von serverlosen Funktionen, wobei das computerimplementierte Verfahren umfasst: Erstellen, durch einen oder mehrere Computer-Prozessoren, einer Zuordnungstabelle, wobei die Zuordnungstabelle Quality of Service (QoS) Attribute für eine oder mehrere Anwendungen und einen oder mehrere Dienstanbieter enthält; als Reaktion auf das Empfangen einer Anforderung von einer Laufzeitanwendung, auf eine oder mehrere spezifische serverlose Funktionen zuzugreifen, Ermitteln, durch den einen oder mehrere Computer-Prozessoren, eines spezifischen QoS-Attributs für die Laufzeitanwendung; Ermitteln, durch den einen oder die mehreren Computer-Prozessoren, eines oder mehrerer unterstützender Dienstanbieter, die die eine oder die mehreren spezifischen serverlosen Funktionen und die spezifischen QoS-Attribute für die Laufzeitanwendung bereitstellen; Auswählen, durch den einen oder die mehreren Computer-Prozessoren, eines unterstützenden Dienstanbieters des einen oder der mehreren unterstützenden Dienstanbieter; und Binden, durch den einen oder die mehreren Computer-Prozessoren, der einen oder der mehreren spezifischen serverlosen Funktionen für die Laufzeitanwendung an den unterstützenden Dienstanbieter des einen oder der mehreren unterstützenden Dienstanbieter.
  2. Computerimplementiertes Verfahren nach Anspruch 1, wobei das Erstellen, durch den einen oder die mehreren Computer-Prozessoren, der Zuordnungstabelle ferner umfasst: als Reaktion auf das Empfangen der Anforderung, einen neuen Dienstanbieter für die eine oder die mehreren serverlosen Funktionen zu registrieren, Ermitteln, durch den einen oder die mehreren Computer-Prozessoren, der QoS-Attribute für den neuen Dienstanbieter; Aufzeichnen, durch den einen oder die mehreren Computer-Prozessoren, der QoS-Attribute für den neuen Dienstanbieter in die Zuordnungstabelle; als Reaktion auf das Empfangen der Anforderung, eine neue Anwendung für eine oder mehrere serverlose Funktionen zu registrieren, Ermitteln, durch den einen oder die mehreren Computer-Prozessoren, der QoS-Attribute für die neue Anwendung; und Auffüllen, durch den einen oder die mehreren Computer-Prozessoren, der Zuordnungstabelle mit den QoS-Attributen für die neue Anwendung.
  3. Computerimplementiertes Verfahren nach Anspruch 1, ferner umfassend das Umschalten, durch den einen oder die mehreren Computer-Prozessoren, der einen oder der mehreren serverlosen Funktionen zwischen dem einen oder den mehreren unterstützenden Dienstanbietern auf Grundlage der spezifischen QoS-Attribute der einen oder der mehreren serverlosen Funktionen.
  4. Computerimplementiertes Verfahren nach Anspruch 1, wobei die spezifischen QoS-Attribute für die Laufzeitanwendung ferner eine oder mehrere Laufzeitrichtlinien für die Laufzeitanwendung umfassen.
  5. Computerimplementiertes Verfahren nach Anspruch 1, wobei der eine oder die mehreren Dienstanbieter einen oder mehrere öffentliche Dienstanbieter umfassen.
  6. Computerimplementiertes Verfahren nach Anspruch 1, wobei der eine oder die mehreren Dienstanbieter einen oder mehrere private Dienstanbieter umfassen.
  7. Computerimplementiertes Verfahren nach Anspruch 1, wobei der eine oder die mehreren Diensteanbieter einen oder mehrere öffentliche Diensteanbieter und einen oder mehrere private Diensteanbieter umfassen.
  8. Computerprogrammprodukt zur Symphonisierung von serverlosen Funktionen, wobei das Computerprogrammprodukt ein oder mehrere computerlesbare Speichermedien und Programmanweisungen umfasst, die auf dem einen oder den mehreren computerlesbaren Speichermedien gespeichert sind, wobei die Programmanweisungen Anweisungen beinhalten zum: Erstellen einer Zuordnungstabelle, wobei die Zuordnungstabelle Quality of Service (QoS)-Attribute für eine oder mehrere Anwendungen und einen oder mehrere Dienstanbieter enthält; als Reaktion auf das Empfangen einer Anforderung von einer Laufzeitanwendung, auf eine oder mehrere spezifische serverlose Funktionen zuzugreifen, Ermitteln eines spezifischen QoS-Attributs für die Laufzeitanwendung; Ermitteln eines oder mehrerer unterstützender Dienstanbieter, die die eine oder die mehreren spezifischen serverlosen Funktionen und die spezifischen QoS-Attribute für die Laufzeitanwendung bereitstellen; Auswählen eines unterstützenden Dienstanbieters des einen oder der mehreren unterstützenden Dienstanbieter; und Binden der einen oder der mehreren spezifischen serverlosen Funktionen für die Laufzeitanwendung an den unterstützenden Dienstanbieter des einen oder der mehreren unterstützenden Dienstanbieter.
  9. Computerprogrammprodukt nach Anspruch 8, wobei das Erstellen der Zuordnungstabelle ferner eine oder mehrere der folgenden Programmanweisungen umfasst, die auf dem einen oder den mehreren computerlesbaren Speichermedien gespeichert sind, zum: als Reaktion auf das Empfangen der Anforderung, einen neuen Dienstanbieter für die eine oder mehrere serverlose Funktionen zu registrieren, Ermitteln der QoS-Attribute für den neuen Dienstanbieter; Eintragen der QoS-Attribute für den neuen Dienstanbieter in die Zuordnungstabelle; als Reaktion auf das Empfangen der Anforderung, eine neue Anwendung für eine oder mehrere serverlose Funktionen zu registrieren, Ermitteln der QoS-Attribute für die neue Anwendung; und Auffüllen der QoS-Attribute für die neue Anwendung in die Zuordnungstabelle.
  10. Computerprogrammprodukt nach Anspruch 8, ferner umfassend das Umschalten der einen oder der mehreren serverlosen Funktionen zwischen dem einen oder den mehreren unterstützenden Dienstanbietern auf Grundlage der spezifischen QoS-Attribute der einen oder der mehreren serverlosen Funktionen.
  11. Computerprogrammprodukt nach Anspruch 9, wobei die spezifischen QoS-Attribute für die Laufzeitanwendung ferner eine oder mehrere Laufzeitrichtlinien für die Laufzeitanwendung umfassen.
  12. Computerprogrammprodukt nach Anspruch 9, wobei der eine oder die mehreren Dienstanbieter einen oder mehrere öffentliche Dienstanbieter umfassen.
  13. Computerprogrammprodukt nach Anspruch 9, wobei der eine oder die mehreren Dienstanbieter einen oder mehrere private Dienstanbieter umfassen.
  14. Computerprogrammprodukt nach Anspruch 9, wobei der eine oder die mehreren Dienstanbieter einen oder mehrere öffentliche Dienstanbieter und einen oder mehrere private Dienstanbieter umfassen.
  15. Computersystem zur Symphonisierung serverloser Funktionen, wobei das Computersystem umfasst: einen oder mehrere Computer-Prozessoren; ein oder mehrere computerlesbare Speichermedien; und Programmanweisungen, die auf dem einen oder den mehreren computerlesbaren Speichermedien zur Ausführung durch mindestens einen des einen oder der mehreren Computer-Prozessoren gespeichert sind, wobei die gespeicherten Programmanweisungen Anweisungen beinhalten zum: Erstellen einer Zuordnungstabelle, wobei die Zuordnungstabelle Quality of Service (QoS)-Attribute für eine oder mehrere Anwendungen und einen oder mehrere Dienstanbieter enthält; als Reaktion auf das Empfangen einer Anforderung von einer Laufzeitanwendung, auf eine oder mehrere spezifische serverlose Funktionen zuzugreifen, Ermitteln eines spezifischen QoS-Attributs für die Laufzeitanwendung; Ermitteln eines oder mehrerer unterstützender Dienstanbieter, die die eine oder die mehreren spezifischen serverlosen Funktionen und die spezifischen QoS-Attribute für die Laufzeitanwendung bereitstellen; Auswählen eines unterstützenden Dienstanbieters des einen oder der mehreren unterstützenden Dienstanbieter; und Binden der einen oder mehreren spezifischen serverlosen Funktionen für die Laufzeitanwendung an den unterstützenden Dienstanbieter des einen oder der mehreren unterstützenden Dienstanbieter.
  16. Computersystem nach Anspruch 15, wobei das Erstellen der Zuordnungstabelle ferner eine oder mehrere der folgenden Programmanweisungen umfasst, die auf dem einen oder den mehreren computerlesbaren Speichermedien gespeichert sind, zum: als Reaktion auf das Empfangen der Anforderung, einen neuen Dienstanbieter für die eine oder mehrere serverlose Funktionen zu registrieren, Ermitteln der QoS-Attribute für den neuen Dienstanbieter; Eintragen der QoS-Attribute für den neuen Dienstanbieter in die Zuordnungstabelle; als Reaktion auf das Empfangen der Anforderung, eine neue Anwendung für eine oder mehrere serverlose Funktionen zu registrieren, Ermitteln der QoS-Attribute für die neue Anwendung; und Auffüllen der QoS-Attribute für die neue Anwendung in die Zuordnungstabelle.
  17. Computersystem nach Anspruch 15, ferner umfassend das Umschalten der einen oder der mehreren serverlosen Funktionen zwischen dem einen oder den mehreren unterstützenden Dienstanbietern auf Grundlage der spezifischen QoS-Attribute der einen oder der mehreren serverlosen Funktionen.
  18. Computersystem nach Anspruch 15, wobei die spezifischen QoS-Attribute für die Laufzeitanwendung ferner eine oder mehrere Laufzeitrichtlinien für die Laufzeitanwendung umfassen.
  19. Computersystem nach Anspruch 15, wobei der eine oder die mehreren Dienstanbieter einen oder mehrere öffentliche Dienstanbieter umfassen.
  20. Computersystem nach Anspruch 15, wobei der eine oder die mehreren Dienstanbieter einen oder mehrere private Dienstanbieter umfassen.
DE112021002246.6T 2020-07-10 2021-06-10 Symphonisierung der serverlosen funktionen von hybriden diensten Pending DE112021002246T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/925,660 US11375042B2 (en) 2020-07-10 2020-07-10 Symphonizing serverless functions of hybrid services
US16/925,660 2020-07-10
PCT/CN2021/099264 WO2022007580A1 (en) 2020-07-10 2021-06-10 Symphonizing serverless functions of hybrid services

Publications (1)

Publication Number Publication Date
DE112021002246T5 true DE112021002246T5 (de) 2023-03-02

Family

ID=79173194

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112021002246.6T Pending DE112021002246T5 (de) 2020-07-10 2021-06-10 Symphonisierung der serverlosen funktionen von hybriden diensten

Country Status (4)

Country Link
US (1) US11375042B2 (de)
DE (1) DE112021002246T5 (de)
GB (1) GB2608542A (de)
WO (1) WO2022007580A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023245537A1 (en) * 2022-06-23 2023-12-28 Intel Corporation Low latency mechanism for cloud to computing system hybrid cloud

Family Cites Families (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001093121A1 (en) 2000-06-02 2001-12-06 River Dynamics Pty Ltd System and method for selecting a service provider
EP2122997B1 (de) * 2007-03-14 2017-05-10 Telefonaktiebolaget LM Ericsson (publ) Verfahren und anordnung zum aushandeln von web-diensten unter verwendung von uddi
US10779177B2 (en) * 2009-01-28 2020-09-15 Headwater Research Llc Device group partitions and settlement platform
US8990369B2 (en) * 2010-10-22 2015-03-24 At&T Intellectual Property I, L.P. Collaborative QoS for service oriented architectures
KR101981229B1 (ko) 2011-04-15 2019-05-22 삼성전자주식회사 머신-대-머신 노드 소거 절차
US8868709B2 (en) 2011-05-03 2014-10-21 International Business Machines Corporation Programmatically selecting a service provider based on assured quality of service attributes
US11327805B1 (en) * 2018-03-07 2022-05-10 Amdocs Development Limited System, method, and computer program for implementing a marketplace for artificial intelligence (AI) based managed network services
EP3257195B1 (de) * 2015-02-09 2023-05-31 Telefonaktiebolaget LM Ericsson (publ) System zur verbesserten verkehrssteuerung in einem netzwerk
CN108353262B (zh) * 2015-08-04 2021-01-01 康维达无线有限责任公司 物联网端对端服务层服务质量管理
US9607058B1 (en) * 2016-05-20 2017-03-28 BlackBox IP Corporation Systems and methods for managing documents associated with one or more patent applications
US20180115551A1 (en) * 2016-10-20 2018-04-26 Brian Cole Proxy system for securely provisioning computing resources in cloud computing environment
US10303582B2 (en) * 2016-10-25 2019-05-28 International Business Machines Corporation Facilitating debugging serverless applications via graph rewriting
US10841366B2 (en) * 2017-03-20 2020-11-17 Futurewei Technologies, Inc. Service graph based serverless cloud platform
WO2018185531A1 (en) * 2017-04-07 2018-10-11 Telefonaktiebolaget Lm Ericsson (Publ) Enabling intelligent auction-as-a-service for autonomous and self-migrating micro-services
US10742750B2 (en) * 2017-07-20 2020-08-11 Cisco Technology, Inc. Managing a distributed network of function execution environments
US11088926B2 (en) * 2017-09-01 2021-08-10 Futurewei Technologies, Inc. Instantiation of cloud-hosted functions based on call to function graph
US11190458B2 (en) * 2017-11-15 2021-11-30 Vmware, Inc. Network functions support for serverless and granular computing environments
EP3718021A4 (de) * 2017-11-27 2021-08-18 Snowflake Inc. Chargendatenaufnahme in datenbanksystemen
US10565034B2 (en) * 2017-12-29 2020-02-18 Futurewei Technologies, Inc. Event-driven serverless function orchestration
US10782934B1 (en) * 2018-01-03 2020-09-22 Amazon Technologies, Inc. Migrating computer programs to virtual compute services using annotations
US20190251279A1 (en) * 2018-02-13 2019-08-15 Pure Storage, Inc. Storage layer data security
EP3750061A1 (de) * 2018-03-01 2020-12-16 Huawei Technologies Co., Ltd. Mechanismus zur zuordnung von ereignissen zu workflow-instanzen einer serverlosen funktion
US11301951B2 (en) * 2018-03-15 2022-04-12 The Calany Holding S. À R.L. Game engine and artificial intelligence engine on a chip
US10990369B2 (en) * 2018-04-30 2021-04-27 EMC IP Holding Company LLC Repurposing serverless application copies
US11256548B2 (en) 2018-05-03 2022-02-22 LGS Innovations LLC Systems and methods for cloud computing data processing
US11669914B2 (en) * 2018-05-06 2023-06-06 Strong Force TX Portfolio 2018, LLC Adaptive intelligence and shared infrastructure lending transaction enablement platform responsive to crowd sourced information
US10996972B2 (en) * 2018-09-25 2021-05-04 Microsoft Technology Licensing, Llc Multi-tenant support on virtual machines in cloud computing networks
US10979327B2 (en) * 2018-10-17 2021-04-13 Epsagon Ltd. Monitoring cloud computing
CN112955869A (zh) * 2018-11-08 2021-06-11 英特尔公司 功能即服务(faas)系统增强
US10986184B1 (en) * 2019-03-05 2021-04-20 Edjx, Inc. Systems and methods for it management of distributed computing resources on a peer-to-peer network
US11494273B2 (en) * 2019-04-30 2022-11-08 Commvault Systems, Inc. Holistically protecting serverless applications across one or more cloud computing environments
US10764244B1 (en) * 2019-06-12 2020-09-01 Cisco Technology, Inc. Systems and methods providing a multi-cloud microservices gateway using a sidecar proxy
US10833961B1 (en) * 2019-06-27 2020-11-10 Verizon Patent And Licensing Inc. Configuration and/or deployment of a service based on location information and network performance indicators of network devices that are to be used to support the service
US11924060B2 (en) * 2019-09-13 2024-03-05 Intel Corporation Multi-access edge computing (MEC) service contract formation and workload execution
US20210089358A1 (en) * 2019-09-20 2021-03-25 University Of Washington Techniques for improving processing of bioinformatics information to decrease processing time
US20210092062A1 (en) * 2019-09-20 2021-03-25 Citrix Systems, Inc. Quality of experience (qoe) enhancement device and related techniques
US11106477B2 (en) * 2019-09-27 2021-08-31 Amazon Technologies, Inc. Execution of owner-specified code during input/output path to object storage service
US11533317B2 (en) * 2019-09-30 2022-12-20 EMC IP Holding Company LLC Serverless application center for multi-cloud deployment of serverless applications
US10951779B1 (en) * 2019-10-03 2021-03-16 Starfish Technologies LLC Cloud-based scanning systems and remote image processing methods
CA3160192A1 (en) * 2019-11-05 2021-05-14 Strong Force Vcn Portfolio 2019, Llc Control tower and enterprise management platform for value chain networks
US20210133669A1 (en) * 2019-11-05 2021-05-06 Strong Force Vcn Portfolio 2019, Llc Control tower and enterprise management platform with robotic process automation layer to automate actions for subset of applications benefitting value chain network entities
US11822947B2 (en) * 2019-11-27 2023-11-21 Amazon Technologies, Inc. Automated management of machine images
US11140194B2 (en) * 2019-12-18 2021-10-05 Cyberark Software Ltd. Measuring and comparing security efficiency and importance in virtualized environments
US11018965B1 (en) * 2020-01-24 2021-05-25 Red Hat, Inc. Serverless function scaling
US11902985B2 (en) * 2020-02-14 2024-02-13 Intel Corporation Default PDSCH beam setting and PDCCH prioritization for multi panel reception
US11184433B2 (en) * 2020-03-31 2021-11-23 Microsoft Technology Licensing, Llc Container mobility based on border gateway protocol prefixes
US11350276B2 (en) * 2020-06-02 2022-05-31 Canadian Internet Registration Authority Secure mobile internet-of-things (IOT) device registry management

Also Published As

Publication number Publication date
US20220014602A1 (en) 2022-01-13
WO2022007580A1 (en) 2022-01-13
GB2608542A8 (en) 2023-02-01
GB202214222D0 (en) 2022-11-09
US11375042B2 (en) 2022-06-28
GB2608542A (en) 2023-01-04

Similar Documents

Publication Publication Date Title
DE112016003355B4 (de) Sicherer Einsatz einer Anwendung über Einsatzorte hinweg
DE112013001889B4 (de) Dynamische Zuweisung einer Arbeitslast über eine Vielzahl von Clouds hinweg
DE112011103522T5 (de) Erstellung eines Multidimensionalen Modells von Software-Angeboten
DE112020000912T5 (de) Verwalten von software-programmen
DE112018005898T5 (de) Dynamische bereitstellung von software-funktionen
DE112019001433T5 (de) Datenanonymisierung
DE112020005323T5 (de) Elastische ausführung von machine-learning-arbeitslasten unter verwendung einer anwendungsbasierten profilierung
DE102021125182A1 (de) Gemeinsam genutzte unternehmenscloud
DE112021003401T5 (de) Schattenexperimente für serverlose multi-tenant-cloud-dienste
DE102021123135A1 (de) Leistungs- und upgrade-verwaltung für anlagegüter mit hilfe von digitalen zwillingen
DE112021004290T5 (de) Gemeinsames nutzen von zwischengespeicherten klassendaten in einer containerisierten umgebung
DE112022002615T5 (de) Kontinuierliche funktionsfähigkeit und integrität von anwendungen während eines migrationsvorgangs
DE112021002487T5 (de) Teilen einer geografisch konzentrierten arbeitslast zwischen benachbarten mec-hosts mehrerer netzbetreiber
DE112019003130T5 (de) Hsm-selbstzerstörung in einer hybriden cloud-kms-lösung
DE112021005636T5 (de) Migrieren von komplexen legacy-anwendungen
DE112021004119T5 (de) Speicherabstufung innerhalb einer vereinheitlichten speicherumgebung
DE112021003402T5 (de) Blockchain-verwaltung von bereitstellungsfehlern
DE112021004577T5 (de) Verwalten eines aufgabenablaufs in einer edge-datenverarbeitungsumgebung
DE112019002052T5 (de) Datenschutzsensibilisierung bei der bereitstellung von arbeitslasten
DE112021005927T5 (de) Patchen von arbeitsabläufen
DE102021125847A1 (de) Auf blockchain beruhende reservierung und delegierung von diensten
DE102021122508A1 (de) Ausgleichen von grossrechner- und verteilten arbeitslasten auf der grundlage von leistung und kosten
DE102021131913A1 (de) Optimieren eines planens einer einheitenaktualisierung
DE112021004663T5 (de) Verteiltes, ressourcen berücksichtigendes training von pipelines desmaschinellen lernens
DE102021124335A1 (de) Verwalten von ausfällen in edge-computing-umgebungen

Legal Events

Date Code Title Description
R012 Request for examination validly filed