DE202016008047U1 - High-level language for specifying configurations of cloud-based deployments - Google Patents
High-level language for specifying configurations of cloud-based deployments Download PDFInfo
- Publication number
- DE202016008047U1 DE202016008047U1 DE202016008047.5U DE202016008047U DE202016008047U1 DE 202016008047 U1 DE202016008047 U1 DE 202016008047U1 DE 202016008047 U DE202016008047 U DE 202016008047U DE 202016008047 U1 DE202016008047 U1 DE 202016008047U1
- Authority
- DE
- Germany
- Prior art keywords
- class
- cloud
- definition
- definitions
- deployment
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/02—Standardisation; Integration
- H04L41/0233—Object-oriented techniques, for representation of network management data, e.g. common object request broker architecture [CORBA]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/50—Network service management, e.g. ensuring proper service fulfilment according to agreements
- H04L41/5041—Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
- H04L41/5048—Automatic or semi-automatic definitions, e.g. definition templates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/50—Network service management, e.g. ensuring proper service fulfilment according to agreements
- H04L41/508—Network service management, e.g. ensuring proper service fulfilment according to agreements based on type of value added network service under agreement
- H04L41/5096—Network service management, e.g. ensuring proper service fulfilment according to agreements based on type of value added network service under agreement wherein the managed service relates to distributed or central networked applications
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Stored Programmes (AREA)
Abstract
Nicht-transitorisches computerlesbares Medium mit darauf gespeicherten Befehlen, wobei die Anweisungen, wenn sie von einem oder mehreren Prozessoren ausgeführt werden, die Prozessoren dazu veranlasst, Operationen durchzuführen, die Folgendes umfassen: Empfangen einer Konfigurationsspezifikation zum Konfigurieren einer Cloud-basierten Bereitstellung, wobei die Konfigurationsspezifikation in einer Spezifikationssprache geschrieben ist und eine Instanziierung der jeweiligen Klassendefinitionen einer oder mehrerer Klassen erfordert, wobei jede Klasse eine entsprechende Daten- oder Funktionskomponente der Cloud-basierten Implementierung unter Verwendung einer Gruppe konfigurierbarer Klassenparameter modelliert und die jeweilige Klassendefinition jeder Klasse einen angeforderten Zustand der Daten- oder Funktionskomponenten, die von der Klasse modelliert werden, darstellt; Ableiten einer Vielzahl von Anwendungsprogrammierungsschnittstellen-(API)Aufrufen zum Konfigurieren der Cloud-basierten Bereitstellung basierend auf den Klassendefinitionen der einen oder mehreren Klassen; Veranlassen, dass die Vielzahl von API-Aufrufen ausgeführt wird, um die Cloud-basierte Bereitstellung zu konfigurieren; Speichern jeweiliger Klassendefinitionen einer Vielzahl von Kernklassen der Spezifikationssprache, wobei jede Kernklasse einer modularen Komponente einer Cloud-basierten Umgebung entspricht, wobei jede Kernklasse mit zusätzlichen Klassenparametern erweitert werden kann, um die jeweilige modulare Komponente zu konfigurieren; Speichern einer Abbildung zwischen jeder der Kernklassen und einer jeweiligen Gruppe von API-Aufrufen, wobei die jeweilige Gruppe von API-Aufrufen zum Konfigurieren der modularen Komponente dient, die der Kernklasse zugeordnet ist, gemäß den Klassenparametern der Kernklasse; und Speichern einer Vielzahl von Protokollen zum Modifizieren der jeweiligen Gruppen von API-Aufrufen, die jeder Kernklasse zugeordnet sind, um eine neue Gruppe von API-Aufrufen für eine neue Klassendefinition zu erhalten, die von der Kernklasse abgeleitet ist.A non-transitory computer-readable medium having instructions stored thereon, the instructions, when executed by one or more processors, causing the processors to perform operations comprising: receiving a configuration specification to configure a cloud-based deployment, wherein the configuration specification is written in a specification language and requires instantiation of the respective class definitions of one or more classes, each class modeling a corresponding data or function component of the cloud-based implementation using a group of configurable class parameters and the respective class definition of each class representing a requested state of the data or functional components modeled by the class; Deriving a plurality of application programming interface (API) calls to configure the cloud-based deployment based on the class definitions of the one or more classes; Causing the plurality of API calls to be executed to configure the cloud-based deployment; Storing respective class definitions of a plurality of specification-language core classes, each core class corresponding to a modular component of a cloud-based environment, wherein each core class may be augmented with additional class parameters to configure the respective modular component; Storing a mapping between each of the core classes and a respective set of API calls, the respective set of API calls for configuring the modular component associated with the core class according to the class parameters of the core class; and storing a plurality of protocols for modifying the respective groups of API calls associated with each core class to obtain a new set of API calls for a new class definition derived from the core class.
Description
HINTERGRUNDBACKGROUND
Diese Spezifikation bezieht sich generell auf Cloud-Computing.This specification generally refers to cloud computing.
Cloud-Computing ist ein Rechenmodell, das entwickelt wurde, um einen bequemen, bedarfsabhängigen Netzzugang zu einem geteilten Pool von Rechenressourcen zu ermöglichen (z. B. Netzwerke, Server, Speicherung, Anwendungen und Dienste), der schnell, dynamisch und mit minimalem manuellem Verwaltungsaufwand und menschlichen Interaktionen mit den Dienstanbietern bereitgestellt und ausgegeben werden kann.Cloud computing is a computing model designed to provide convenient on-demand network access to a shared pool of computing resources (eg, networks, servers, storage, applications, and services) that is fast, dynamic, and with minimal manual overhead and human interactions with the service providers and can be issued.
Ein paar übliche cloudbasierte Dienstmodelle enthalten Software (z. B. kommerziell verfügbare Software-Anwendungen) als einen Service (SaaS), eine Plattform (z. B. Hosting-Umgebung von Software-Anwendungen, wie z. B. virtuelle Maschinen oder Anwendungsframeworks) als einen Service (PaaS) und Infrastruktur (z. B. Rechenleistung, Speicherung, Datenbank, Vernetzungsdienste usw.) als einen Service (IaaS). Bevor ein cloudbasierter Dienst einem Clouddienst-Kunden verfügbar gemacht wird, werden mehrere Aspekte des Dienstes gemäß einer Konfigurationsspezifikation konfiguriert, sodass wenn der Dienst bereitgestellt wird, dieser die Bedürfnisse und Nutzungsanforderungen des Kunden erfüllt.A few common cloud-based service models include software (eg, commercially available software applications) as a service (SaaS), a platform (eg, hosting environment of software applications, such as virtual machines or application frameworks). as a service (PaaS) and infrastructure (eg computing power, storage, database, networking services, etc.) as a service (IaaS). Before a cloud-based service is made available to a cloud service customer, several aspects of the service are configured according to a configuration specification so that when the service is provided, it meets the customer's needs and usage requirements.
Unter Schutz gestellt werden und Gegenstand des Gebrauchsmusters sind, entsprechend den Vorschriften des Gebrauchsmustergesetzes, lediglich Vorrichtungen wie in den beigefügten Schutzansprüchen definiert, jedoch keine Verfahren. Soweit nachfolgend in der Beschreibung gegebenenfalls auf Verfahren Bezug genommen wird, dienen diese Bezugnahmen lediglich der beispielhaften Erläuterung der in den beigefügten Schutzansprüchen unter Schutz gestellten Vorrichtung oder Vorrichtungen.Under protection and subject to the utility model are, according to the provisions of the utility model law, only devices as defined in the appended claims, but no method. Wherever in the description, if appropriate, reference is made to methods, these references are merely illustrative of the device or devices set forth in the appended claims.
ZUSAMMENFASSUNGSUMMARY
Diese Spezifikation beschreibt Technologien in Bezug auf die Verwendung und Verwaltung von Cloud-Computing-Umgebungen.This specification describes technologies related to the use and management of cloud computing environments.
Generell kann ein anderer innovativer Aspekt des beschriebenen Gegenstands in dieser Spezifikation in Verfahren ausgeführt werden, die die folgenden Aktionen enthalten: Erhalten einer Konfigurationsspezifikation zum Konfigurieren einer cloudbasierten Bereitstellung, wobei die Konfigurationsspezifikation in einer Spezifikationssprache geschrieben ist und eine Instanziierung von jeweiligen Klassendefinitionen von einer oder mehreren Klassen erfordert, jede Klasse eine jeweilige Daten- oder Funktionskomponente der cloudbasierten Bereitstellung unter Verwendung einer Gruppe von konfigurierbaren Klassenparametern modelliert und die jeweilige Klassendefinition von jeder Klasse einen angeforderten Zustand der modellierten Daten- oder Funktionskomponente durch die Klasse darstellt; Ableiten einer Vielzahl von Anwendungsprogrammschnittstellen-Aufrufen (Application Program Interface, API) zum Konfigurieren der cloudbasierten Bereitstellung beruhend auf der Klassendefinitionen der einen oder mehreren Klassen; und Veranlassen, dass die Vielzahl von API-Aufrufen ausgeführt werden, um die cloudbasierte Bereitstellung zu konfigurieren.In general, another innovative aspect of the described subject matter in this specification may be performed in methods that include the following actions: Obtaining a configuration specification to configure a cloud-based deployment, wherein the configuration specification is written in a specification language and an instantiation of respective class definitions of one or more Classes, each class models a respective cloud-based deployment data or functional component using a set of configurable class parameters, and the respective class definition of each class represents a requested state of the modeled data or functional component by the class; Deriving a plurality of application program interface (API) calls to configure the cloud-based deployment based on the class definitions of the one or more classes; and causing the plurality of API calls to be executed to configure the cloud-based deployment.
Diese und andere Ausführungsformen können jeweils eines oder mehrere der folgenden zusätzlichen Merkmale enthalten. Die eine oder mehreren Klassen enthalten mindestens eine vorhandene Basisklasse und mindestens eine angepasste Klasse, die sich aus der vorhandenen Basisklasse erstreckt, wobei die angepasste Klasse jeweilige Klassenparameter von der vorhandenen Basisklasse übernimmt, und die angepasste Klasse einen Wert von mindestens einem der Klassenparameter ändert, die von der vorhandenen Basisklasse übernommen wurde, oder sie enthält mindestens einen neuen Klassenparameter, der in der vorhandenen Basisklasse nicht vorhanden ist. Die modellierte Daten- oder Funktionskomponente durch jede Klasse ist eine von einer virtuellen Vorrichtung, die eine cloudbasierte Umgebung unterstützt, ein verwendeter Dienst in der cloudbasierten Umgebung, eine ausgeführte Software-Rolle durch eine installierte Anwendung in der cloudbasierten Umgebung, ein Datenpaket, das Daten enthält, die während der Bereitstellung oder des Betriebs der cloudbasierten Umgebung verwendet werden sollen, oder eine Kombination von einem oder mehreren davon. Die Spezifikationssprache unterstützt eine Abhängigkeit zwischen Klassendefinitionen, und eine Definitionsabhängigkeit zwischen einer ersten Klasse und einer zweiten Klasse stellt eine Bereitstellungabhängigkeit zwischen jeweiligen Komponenten dar, die von der ersten und der zweiten Klasse modelliert sind. Die Spezifikationssprache unterstützt eine Konnektivität zwischen Klassendefinitionen, und eine Wertezuordnung, die eine Instanz einer zweiten Klasse mit einem Klassenparameter einer ersten Klasse verknüpft, stellt eine Konnektivität zwischen jeweiligen Komponenten dar, die von der ersten und der zweiten Klasse modelliert sind. Identifizieren beruhend auf den jeweiligen Klassendefinitionen der einen oder mehreren Klassen, einer Vielzahl von Daten- und Funktionskomponenten modelliert durch die eine oder mehrere Klassen, und eine oder mehrere Abhängigkeits- und Konnektivitätsverhältnisse, die zwischen der Vielzahl von Daten- oder Funktionskomponenten vorhanden sind; Ableiten eines Blockdiagramms einer cloudbasierten Umgebung beruhend auf der identifizierten Vielzahl von Daten- und Funktionskomponenten und der identifizierten Abhängigkeits- und Konnektivitätsverhältnisse; und Darstellen von Auslöseereignissen zur dynamischen Neukonfiguration der cloudbasierten Umgebung in dem Blockdiagramm. Identifizieren einer Vielzahl von cloudbasierten Bereitstellungen, die jeweils gemäß einer jeweiligen Konfigurationsspezifikation, die in der Spezifikationssprache geschrieben ist, durchgeführt wurden; Identifizieren von mindestens einer Basisklasse, deren Klassendefinition in vielfachen der Vielzahl von cloudbasierten Bereitstellungen verwendet wird; Überwachen einer jeweiligen Leistung von jeder der vielfachen auf der Vielzahl von cloudbasierten Bereitstellungen; und Berechnen einer Qualitätsmessgröße der mindestens einen Basisklasse beruhend auf der aggregierten Leistung der vielfachen der Vielzahl von cloudbasierten Bereitstellungen. Speichern jeweiliger Klassendefinitionen von einer Vielzahl von Kernklassen der Spezifikationssprache, wobei jede Kernklasse einer modularen Komponente einer cloudbasierten Umgebung entspricht, jede Kernklasse mit zusätzlichen Klassenparametern erweiterbar ist, um die jeweilige modulare Komponente zu konfigurieren; Speichern eines Mapping zwischen jeder der Kernklassen und einer jeweiligen Gruppe von API-Aufrufen, der jeweiligen Gruppe von API-Aufrufen zum Konfigurieren der modularen Komponente in Verbindung mit der Kernklasse gemäß dem Klassenparameter der Kernklasse; und Speichern einer Vielzahl von Protokollen zum Ändern der jeweiligen Gruppen von API-Aufrufen in Verbindung mit jeder Kernklasse, um eine neue Gruppe von API-Aufrufen für eine neue Klassendefinition zu erlangen, die von der Kernklasse abgeleitet ist. Ein Ableiten der Vielzahl von API-Aufrufen zum Konfigurieren der cloudbasierten Bereitstellung umfasst ferner: Ableiten der Vielzahl von API-Aufrufen beruhend auf den jeweiligen Gruppen von API-Aufrufen in Verbindung mit einer oder mehreren auf der Vielzahl von Kernklassen, wovon die eine oder mehreren Klassen der Konfigurationsspezifikation abgeleitet sind, und beruhend auf der Vielzahl von Protokollen zum Ändern der jeweiligen Gruppen von API-Aufrufen. Die Vielzahl von Protokollen enthält ferner Regeln zum Vorgeben einer Ordnung der Gruppen von API-Aufrufen gemäß Abhängigkeits- und Konnektivitätsverhältnissen, die in Klassendefinitionen spezifiziert sind, die gemäß der Spezifikationssprache geschrieben sind.These and other embodiments may each include one or more of the following additional features. The one or more classes contain at least one existing base class and at least one custom class extending from the existing base class, wherein the customized class inherits respective class parameters from the existing base class, and the custom class changes a value of at least one of the class parameters has been inherited from the existing base class, or it contains at least one new class parameter that does not exist in the existing base class. The modeled data or functional component through each class is one of a virtual device supporting a cloud-based environment, a service used in the cloud-based environment, a running software role by an installed application in the cloud-based environment, a data packet containing data to be used during deployment or operation of the cloud-based environment, or a combination of one or more of them. The specification language supports a dependency between class definitions, and a definition dependency between a first class and a second class represents a deployment dependency between respective components modeled by the first and second classes. The specification language supports connectivity between class definitions, and a value map that associates an instance of a second class with a class parameter of a first class represents connectivity between respective components modeled by the first and second classes. Identifying, based on the respective class definitions of the one or more classes, a plurality of data and functional components modeled by the one or more classes, and one or more dependency and connectivity relationships existing between the plurality of data or functional components; Deriving a block diagram of a cloud-based environment based on the identified plurality of Data and functional components and the identified dependency and connectivity relationships; and presenting trigger events for dynamically reconfiguring the cloud-based environment in the block diagram. Identifying a plurality of cloud-based deployments, each performed according to a respective configuration specification written in the specification language; Identify at least one base class whose class definition is used in multiple of the plurality of cloud-based deployments; Monitoring a respective performance of each of the multiple ones on the plurality of cloud-based deployments; and calculating a quality measure of the at least one base class based on the aggregate performance of the multiple of the plurality of cloud-based deployments. Storing respective class definitions of a plurality of specification-language core classes, each core class of a modular component corresponding to a cloud-based environment, each core class being expandable with additional class parameters to configure the respective modular component; Storing a mapping between each of the core classes and a respective set of API calls, the respective set of API calls for configuring the modular component in conjunction with the core class according to the class parameter of the core class; and storing a plurality of protocols for changing the respective groups of API calls associated with each core class to obtain a new set of API calls for a new class definition derived from the core class. Deriving the plurality of API calls for configuring the cloud-based deployment further comprises: deriving the plurality of API calls based on the respective groups of API calls associated with one or more of the plurality of core classes, one or more of the classes derived from the configuration specification, and based on the plurality of protocols for changing the respective groups of API calls. The plurality of protocols further include rules for specifying an order of the groups of API calls according to dependency and connectivity ratios specified in class definitions written according to the specification language.
Generell kann ein anderer innovativer Aspekt des beschriebenen Gegenstands in dieser Spezifikation in Verfahren ausgeführt werden, die die folgenden Aktionen enthalten: Erhalten einer jeweiligen Definitionsvorlage von jeder von einer Vielzahl von Definitionsversorgern, wobei die jeweilige Definitionsvorlage eine oder mehrere Klassendefinitionen enthält, die in einer Spezifikationssprache geschrieben ist, und jede Klassendefinition eine Daten- oder Funktionskomponente einer cloudbasierten Bereitstellung unter Verwendung einer Gruppe von konfigurierbaren Klassenparameter modelliert und erweiterbar ist, um mindestens eine neue Klassendefinition durch eine Modifikation an einer oder mehreren der Gruppe von konfigurierbaren Klassenparametern oder eine Addition von einem oder mehreren neuen Klassenparameter zu schaffen; und Bereitstellen einer Benutzeroberfläche, die die erhaltenen Klassendefinitionen von der Vielzahl von Definitionsversorger zur Überprüfung und Auswahl von einer Vielzahl von Definitionsnutzern darstellt.In general, another innovative aspect of the described subject matter in this specification may be embodied in methods including the following actions: obtaining a respective definition template from each of a plurality of definition providers, the respective definition template including one or more class definitions written in a specification language and each class definition is modeled and extendable a data or function component of a cloud-based deployment using a set of configurable class parameters, at least one new class definition by a modification to one or more of the group of configurable class parameters, or an addition of one or more new ones To create class parameters; and providing a user interface representing the obtained class definitions of the plurality of definition providers for reviewing and selecting a plurality of definition users.
Diese und andere Ausführungsformen können jeweils eines oder mehrere der folgenden zusätzlichen Merkmale enthalten. Erhalten einer Vielzahl von unterschiedlichen Konfigurationsspezifikationen, die in der Spezifikationssprache geschrieben sind, der Vielzahl von unterschiedlichen Konfigurationsspezifikationen jeweils zum Konfigurieren einer unterschiedlichen cloudbasierten Bereitstellung und enthaltend eine unterschiedliche Klassendefinition, die sich von einer gleichen der erhaltenen Klassendefinitionen von der Vielzahl von Definitionsversorgern erstreckt; und Konfigurieren jeder der unterschiedlichen cloudbasierten Bereitstellungen beruhend mindestens auf der gleichen der erhaltenen Klassendefinitionen und der unterschiedlichen Klassendefinition, die sich davon erstreckt, in der unterschiedlichen Konfigurationsspezifikation der unterschiedlichen cloudbasierten Bereitstellung. Für jede der erhaltenen Klassendefinitionen: Überwachen einer Verwendung der Klassendefinition in einer Vielzahl von Konfigurationsspezifikationen, die verwendet wurden, um eine Vielzahl von cloudbasierten Bereitstellungen zu konfigurieren; und Aufzeichnen für jede Verwendung der Klassendefinition in der Vielzahl von Konfigurationsspezifikationen, um einem Definitionsversorger der Klassendefinition gutzuschreiben und einen Definitionsnutzer in Verbindung mit der Verwendung zu belasten. Die Verwendung der Klassendefinition enthält eine Instanziierung der Klassendefinition in einer jeweiligen Konfigurationsspezifikation, die verwendet wurde, um eine jeweilige cloudbasierte Bereitstellung durchzuführen. Die Verwendung der Klassendefinition enthält eine Erweiterung der Klassendefinition, um eine neue Klassendefinition zu schaffen, die in einer jeweiligen Konfigurationsspezifikation, die verwendet wird, um eine jeweilige cloudbasierte Bereitstellung durchzuführen, instanziiert wird. Erhalten einer Software-Vorlage von einem Software-Lieferanten, die Software-Vorlage enthaltend eine Software-Anwendung, die in einer cloudbasierten Umgebung bereitgestellt werden soll und eine Vielzahl von unterschiedlichen Konfigurationsspezifikationen jeweils zum Bereitstellen der Software-Anwendung in der cloudbasierten Umgebung auf eine unterschiedliche Weise; und Bereitstellen der Vielzahl von unterschiedlichen Konfigurationsspezifikationen zur Überprüfung und Auswahl von einem Software-Nutzer. Erhalten einer Auswahl von einer der Vielzahl von unterschiedlichen Konfigurationsspezifikation von dem Software-Nutzer; Bereitstellen der Software-Anwendung in der cloudbasierten Umgebung gemäß der ausgewählten unterschiedlichen Konfigurationsspezifikation; und Aufzeichnen einer Belastung an den Software-Nutzer und einer Gutschrift an den Software-Lieferanten beruhend auf einem jeweiligen Preis in Verbindung mit der ausgewählten unterschiedlichen Konfigurationsspezifikation.These and other embodiments may each include one or more of the following additional features. Obtaining a plurality of different configuration specifications written in the specification language, the plurality of different configuration specifications each for configuring a different cloud-based provision, and including a different class definition extending from an equal one of the obtained class definitions of the plurality of definition providers; and configuring each of the different cloud-based deployments based on at least the same of the obtained class definitions and the different class definition that extends therefrom in the different configuration specification of the different cloud-based deployment. For each of the obtained class definitions: monitoring use of the class definition in a plurality of configuration specifications that have been used to configure a plurality of cloud-based deployments; and recording, for each use of the class definition in the plurality of configuration specifications, to credit a definition provider of the class definition and debiting a definition user in connection with the usage. The use of the class definition includes an instantiation of the class definition in each configuration specification that was used to perform each cloud-based deployment. The use of the class definition includes an extension of the class definition to create a new class definition that is instantiated in a particular configuration specification used to perform each cloud-based deployment. Obtaining a software template from a software vendor, the software template including a software application to be deployed in a cloud-based environment, and a plurality of different configuration specifications each for providing the software application in the cloud-based environment in a different manner ; and providing the plurality of different configuration specifications for review and selection by a software user. Getting a selection one of the plurality of different configuration specifications from the software user; Providing the software application in the cloud-based environment according to the selected different configuration specification; and recording a charge to the software user and a credit to the software vendor based on a respective price associated with the selected different configuration specification.
Generell kann ein anderer innovativer Aspekt des beschriebenen Gegenstands in dieser Spezifikation in Verfahren ausgeführt werden, die die folgenden Aktionen enthalten: Bereitstellen einer Vielzahl von Klassendefinitionen zur Auswahl, wobei jede Klassendefinition eine jeweilige Daten- oder Funktionskomponente einer cloudbasierten Umgebung unter Verwendung einer Gruppe von konfigurierbaren Klassenparameter modelliert, jede Klassendefinition eine Instanziierung und Übernahme der Klassendefinition in eine Konfigurationsspezifikation für eine cloudbasierte Bereitstellung unterstützt; Ableiten jeweiliger Leistungsmesswerte in Verbindung mit jeder der Vielzahl von Klassendefinitionen beruhend auf einer aggregierten Leistung von vielfachen cloudbasierten Bereitstellungen, wobei die vielfachen cloudbasierten Bereitstellungen gemäß jeweiliger Konfigurationsspezifikationen durchgeführt wurden, die eine Instanziierung der Klassendefinition oder eine neue Klassendefinition abgeleitet von der Klassendefinition erfordern; und Verwenden der jeweiligen Leistungsmesswerte in Verbindung mit jeder der Vielzahl von Klassendefinitionen beim Ordnen der Vielzahl von Klassendefinitionen.In general, another innovative aspect of the described subject matter in this specification may be embodied in methods including the following actions: providing a plurality of class definitions for selection, each class definition defining a respective data or functional component of a cloud-based environment using a set of configurable class parameters modeling, each class definition supports instantiation and adoption of the class definition in a cloud-based deployment configuration specification; Deriving respective performance metrics in association with each of the plurality of class definitions based on aggregate performance of multiple cloud-based deployments, the multiple cloud-based deployments performed according to respective configuration specifications that require instantiation of the class definition or new class definition derived from the class definition; and using the respective performance metrics in conjunction with each of the plurality of class definitions in ordering the plurality of class definitions.
Diese und andere Ausführungsformen können jeweils eines oder mehrere der folgenden zusätzlichen Merkmale enthalten. Kategorisieren der Vielzahl von Klassendefinitionen beruhend auf den jeweiligen Daten- oder Funktionskomponenten der cloudbasierten Umgebung, modelliert durch die Vielzahl von Klassendefinitionen; und Ordnen der Vielzahl von Klassendefinitionen in den jeweiligen Kategorien der Klassendefinitionen. Ein Bereitstellen der Vielzahl von Klassendefinitionen zur Auswahl umfasst ferner: Bereitstellen der jeweiligen Leistungsmesswerte mit jeder der Vielzahl von Klassendefinitionen zur Überprüfung durch den Nutzer in einer Auswahl-Benutzeroberfläche. Für jede der Vielzahl von Klassendefinitionen: Identifizieren einer Vielzahl von cloudbasierten Bereitstellungen, die gemäß jeweiliger Konfigurationsspezifikationen durchgeführt wurden, die eine Instanziierung der Klassendefinition oder mindestens eine neue Klassendefinition abgeleitet von der Klassendefinition erforderten; Überwachen jeweiliger Leistungen von der Vielzahl von cloudbasierten Bereitstellungen; und Verbinden der jeweiligen Leistungen von der Vielzahl von Bereitstellungen mit der Klassendefinition. Ein Ableiten jeweiliger Leistungsmesswerte in Verbindung mit jeder der Vielzahl von Klassendefinitionen beruhend auf einer aggregierten Leistung von vielfachen cloudbasierten Bereitstellungen umfasst ferner: für jede der Vielzahl von Klassendefinitionen: Identifizieren einer oder mehrerer Daten- oder Funktionskomponenten in der Vielzahl von cloudbasierten Bereitstellungen, die gemäß der Klassendefinition definiert wurden oder einer neuen Klassendefinition, die von der Klassendefinition abgeleitet ist; Identifizieren eines oder mehrerer Leistungsmesswerte in Verbindung mit der identifizierten eine oder den mehreren Daten- oder Funktionskomponenten; und Ableiten der jeweiligen Leistungsmesswerte in Verbindung mit der Klassendefinition durch Aggregieren des einen oder der mehreren Leistungsmesswerte. Die Leistungsmesswerte enthalten eine oder mehrere Messungen von Latenz, Zuverlässigkeit, Skalierbarkeit Verfügbarkeit oder Sicherheit. Für jede der Vielzahl von Klassendefinitionen: Verfolgen einer jeweiligen Zählung von cloudbasierten Bereitstellungen, die mindestens teilweise gemäß der Klassendefinition konfiguriert wurden; und Verwenden der jeweiligen Zählungen in Verbindung mit der Vielzahl von Klassendefinitionen beim Ordnen der Vielzahl von Klassendefinitionen. Für jede der Vielzahl von Klassendefinitionen: Verfolgen einer jeweiligen Zählungen von festgestellten Problemen in cloudbasierten Bereitstellungen, die mindestens teilweise gemäß der Klassendefinition konfiguriert wurden; und Verfolgen einer Anzahl von erforderlichen Änderungen zum Lösen der festgestellten Probleme in den cloudbasierten Bereitstellungen, die mindestens teilweise gemäß der Klassendefinition konfiguriert wurden; und Verwenden der jeweiligen Zählungen der Probleme und der Anzahl von erforderlichen Änderungen in Verbindung mit der Vielzahl von Klassendefinitionen beim Ordnen der Vielzahl von Klassendefinitionen. Die jeweiligen Anzahlen von erforderlichen Änderungen in Verbindung mit der Vielzahl von Klassendefinitionen werden dazu verwendet, jeweilige Gewichtungen zu berechnen, die den jeweiligen Leistungsmesswerten in Verbindung mit der Vielzahl von Klassendefinitionen beim Ordnen der Vielzahl von Klassendefinitionen gegeben werden.These and other embodiments may each include one or more of the following additional features. Categorizing the plurality of class definitions based on the respective data or functional components of the cloud-based environment modeled by the plurality of class definitions; and ordering the plurality of class definitions in the respective categories of the class definitions. Providing the plurality of class definitions for selection further comprises: providing the respective performance metrics with each of the plurality of class definitions for review by the user in a selection user interface. For each of the plurality of class definitions: identifying a plurality of cloud-based deployments performed in accordance with respective configuration specifications that required instantiation of the class definition or at least one new class definition derived from the class definition; Monitoring respective services from the plurality of cloud-based deployments; and connecting the respective services from the plurality of deployments with the class definition. Deriving respective performance metrics associated with each of the plurality of class definitions based on aggregate performance of multiple cloud based deployments further comprises: for each of the plurality of class definitions: identifying one or more data or functional components in the plurality of cloud based deployments according to the class definition defined or a new class definition derived from the class definition; Identifying one or more performance metrics in association with the identified one or more data or functional components; and deriving the respective performance metrics in association with the class definition by aggregating the one or more performance metrics. The performance measurements include one or more measurements of latency, reliability, scalability availability, or security. For each of the plurality of class definitions: tracking a respective count of cloud-based deployments configured at least in part according to the class definition; and using the respective counts in conjunction with the plurality of class definitions in ordering the plurality of class definitions. For each of the plurality of class definitions: tracking a respective count of detected issues in cloud-based deployments configured at least in part according to the class definition; and tracking a number of changes required to resolve the identified issues in the cloud-based deployments configured at least in part according to the class definition; and using the respective counts of the problems and the number of changes required in connection with the plurality of class definitions in ordering the plurality of class definitions. The respective numbers of required changes associated with the plurality of class definitions are used to calculate respective weights given to the respective performance measurements in association with the plurality of class definitions in ordering the plurality of class definitions.
Besondere Ausführungsformen des beschriebenen Gegenstands in dieser Spezifikation können implementiert werden, um einen oder mehrere der folgenden Vorteile auszuführen.Particular embodiments of the described subject matter in this specification may be implemented to carry out one or more of the following advantages.
Eine übergeordnete objektorientierte Spezifikationssprache ermöglicht, dass konfigurierbare Komponenten einer cloudbasierten Bereitstellung durch eine Klassendefinition modelliert werden, die eine Gruppe von konfigurierbaren Klassenparametern enthält. Die objektorientierte Spezifikationssprache unterstützt eine Erweiterung einer vorhandenen Basisklassendefinition, um neue Klassendefinitionen zu schaffen, und unterstützt eine Übernahme von Klassenparametern von der vorhandenen Basisklassendefinition durch die neuen Klassendefinitionen. Ein Verwaltungsnutzer eines cloudbasierten Dienstes kann eine cloudbasierte Bereitstellung beruhend auf verwendeten Klassendefinitionen beim Konfigurieren einer oder mehrerer generischer Bereitstellungen anpassen, wie z. B. durch Ändern von Klassenparameterwerten der Klassendefinitionen, variieren von Beziehungen zwischen den Klassen und Ergänzen vorhandener Klassenparameter mit neuen Klassenparametern.A parent object-oriented specification language allows configurable components of a cloud-based deployment to be modeled by a class definition that contains a set of configurable class parameters. The object-oriented specification language supports extending an existing base class definition to create new class definitions, and supports inheriting class parameters from the existing one Base class definition by the new class definitions. An administrative user of a cloud-based service may customize a cloud-based deployment based on used class definitions when configuring one or more generic deployments, such as: By modifying class parameter values of the class definitions, varying relationships between the classes and supplementing existing class parameters with new class parameters.
Die objektorientierte Spezifikationssprache das Herstellen von vielfachen Abstraktionsschichten auf die verschiedenen Typen von Clouddienst-Komponenten, die konfigurierbar sind. Beispielsweise unterstützt die übergeordnete objektorientierte Spezifikationssprache nicht nur Klassendefinitionen, die Hardware und virtuelle Ressourcen modellieren, sondern auch Software-Rollen und Dienst-Rollen, die von Software-Anwendungen und Diensten in einer cloudbasierten Bereitstellung bedient werden. Zusätzlich stellt die objektorientierte Spezifikationssprache eine Syntax zum Spezifizieren einer Abhängigkeit und Konnektivität zwischen Klassen bereit. Cloud-Komponenten, die vielfache Unterkomponenten und komplexe Strukturen involvieren, können durch Klassendefinitionen modelliert werden, die sich auf vielfache Typen von Basisklassen beziehen und jeweilige Beziehungen zwischen den Basisklassen spezifizieren.The object-oriented specification language makes multiple abstraction layers possible on the different types of cloud service components that are configurable. For example, the parent object-oriented specification language supports not only class definitions that model hardware and virtual resources, but also software roles and service roles that are served by software applications and services in a cloud-based deployment. In addition, the object-oriented specification language provides a syntax for specifying a dependency and connectivity between classes. Cloud components involving multiple subcomponents and complex structures may be modeled by class definitions that refer to multiple types of base classes and specify respective relationships between the base classes.
Eine Konfigurationsspezifikation kann auf vorhandenen Klassendefinitionen beruhen, um einige Aspekte einer Cloud-Bereitstellung auf einer hohen Abstraktionsebene zu konfigurieren, während andere Aspekte auf einer detaillierteren Ebene unter Verwendung neu abgeleiteter Klassendefinitionen angepasst werden. Ein Verwaltungsnutzer eines cloudbasierten Dienstes ist in der Lage, den Anpassungsgrad für eine cloudbasierte Bereitstellung durch Wählen eines geeigneten Satzes von Klassendefinitionen zu kontrollieren, um sie in die Konfigurationsspezifikation für die cloudbasierte Bereitstellung aufzunehmen und zu instanziieren.A configuration specification can be based on existing class definitions to configure some aspects of cloud provisioning at a high level of abstraction, while other aspects are customized on a more granular level using newly derived class definitions. An administrative user of a cloud-based service is able to control the level of customization for a cloud-based deployment by choosing an appropriate set of class definitions to include and instantiate in the cloud-based deployment configuration specification.
Zusätzlich ermöglicht die objektorientierte Spezifikationssprache viele Klassendefinitionen, die übliche oder spezielle Clouddienst-Komponenten modellieren, die geschaffen und gespeichert werden sollen. Diese gespeicherten Klassendefinitionen können in Konfigurationsspezifikationen zukünftiger Bereitstellungen durch verschiedene Clouddienst-Kunden erweitert oder wiederverwendet werden. Diese Wiederverwendung von Klassendefinitionen in Spezifikationskonfigurationen kann die Geschwindigkeit und Effizienz des Bereitstellungsprozesses verbessern.In addition, the object-oriented specification language allows many class definitions to model common or specialized cloud service components to be created and stored. These stored class definitions can be augmented or reused in configuration specifications of future deployments by different Cloud Service customers. This reuse of class definitions in specification configurations can improve the speed and efficiency of the deployment process.
Da Klassendefinitionen wiederverwendet und unter vielen Clouddienst-Kunden geteilt werden können, müssen die Anstrengungen zum Entwickeln geeigneter Konfigurationsspezifikationen für die gleichen oder ähnlichen Zwecke von den Clouddienst-Kunden nicht dupliziert werden. Ein Marktplatz zum Teilen wiederverwendbarer Klassendefinitionen kann entwickelt werden, sodass ein Clouddienst-Kunde wählen kann, die Verwendung von vorhandenen Klassendefinitionen, die von anderen Clouddienst-Kunden entwickelt und bereitgestellt werden, gegen eine Gebühr zu kaufen oder zu lizenzieren. Zusätzlich können Software-Anwendungen mit verschiedenen Typen von Konfigurationsspezifikationen bereitgestellt werden (d. h. als „konfig-umhüllte” Software-Lösungen), die für verschiedene Nutzungsanforderungen und organisatorische Infrastrukturen der Cloud-Kunden geeignet sind.Because class definitions can be reused and shared among many cloud service customers, efforts to develop appropriate configuration specifications for the same or similar purposes need not be duplicated by cloud service customers. A marketplace for sharing reusable class definitions may be developed so that a cloud service customer may choose to buy or license the use of existing class definitions developed and provided by other cloud service customers for a fee. In addition, software applications may be provided with different types of configuration specifications (i.e., "config-wrapped" software solutions) that are appropriate for different usage requirements and organizational infrastructures of cloud customers.
Wenn eine Konfigurationsspezifikation einer cloudbasierten Bereitstellung in der objektorientierten Spezifikationssprache geschrieben ist, kann der Clouddienst-Anbieter die Konfigurationsspezifikation parsen, um die Klassendefinitionen zu identifizieren, die beim Konfigurieren jeder Daten- oder Funktionskomponente der cloudbasierten Bereitstellung involviert sind. Wenn die Bereitstellung ferner gemäß der Konfigurationsspezifikation durchgeführt wird, kann der Clouddienst-Anbieter auch die zugrundeliegenden Software- oder virtuellen Ressourcen in Verbindung mit jeder der Daten- oder Funktionskomponenten der Bereitstellung zu identifizieren. Daher ermöglicht es die objektorientierte Spezifikationssprache dem Clouddienst-Anbieter, die Leistung der Daten- und Funktionskomponenten der cloudbasierten Bereitstellung zu überwachen, und die Leistung mit den Klassendefinitionen zu verbinden, die verwendet werden, um jede der Daten- und Funktionskomponenten zu konfigurieren. Somit kann der Clouddienst-Anbieter dem Clouddienst-Kunden eine Anleitung bereitstellen, welche Teile der Konfigurationsspezifikation geändert werden müssen, um die Leistung der Bereitstellung zu verbessern.When a configuration specification of a cloud-based deployment is written in the object-oriented specification language, the cloud service provider can parse the configuration specification to identify the class definitions involved in configuring each data or function component of the cloud-based deployment. Further, if the deployment is performed according to the configuration specification, the cloud service provider may also identify the underlying software or virtual resources associated with each of the data or functional components of the deployment. Therefore, the object-oriented specification language allows the cloud service provider to monitor the performance of the cloud-based deployment data and function components, and to connect the performance to the class definitions used to configure each of the data and function components. Thus, the cloud service provider may provide guidance to the cloud service customer as to which portions of the configuration specification need to be changed to improve the performance of the deployment.
In einigen Implementierungen kann der Clouddienst-Anbieter ein Blockdiagramm für die cloudbasierte Bereitstellung beruhend auf der Konfigurationsspezifikation erzeugen. Die Leistung der verschiedenen Komponenten der Bereitstellung kann visuell im Blockdiagramm dargestellt werden. Mehrere Neukonfigurationsauslöser, die in der Konfigurationsspezifikation spezifiziert sind, können auch im Blockdiagramm dargestellt werden. Diese visuelle Darstellung ermöglicht einem Administrator der cloudbasierten Bereitstellung, die Konfigurationsparameter der Bereitstellung schnell und in geeigneter Form einzustellen.In some implementations, the cloud service provider may generate a block diagram for cloud-based deployment based on the configuration specification. The performance of the various components of the deployment can be visually illustrated in the block diagram. Several reconfiguration triggers specified in the configuration specification can also be shown in the block diagram. This visual representation allows a cloud-based deployment administrator to quickly and appropriately set the configuration parameters of the deployment.
Die objektorientierte Spezifikationssprache ermöglicht es, dass Klassendefinitionen in vielfachen Konfigurationsspezifikationen und potenziell durch vielfache Clouddienst-Kunden wiederverwendet werden können. Der Clouddienst-Anbieter kann die Leistungen von vielfachen cloudbasierten Bereitstellungen verfolgen, die unter Verwendung von Konfigurationsspezifikationen konfiguriert wurden, die wiederverwendete Klassendefinitionen involvieren. Für jede wiederverwendete Klassendefinition kann der Clouddienst-Anbieter die Qualität der Klassendefinition beruhend auf der aggregierten Leistung der vielfachen Bereitstellungen bewerten, die unter Verwendung der Klassendefinition konfiguriert wurden. Auf einem Marktplatz zum Teilen wiederverwendbarer Klassendefinitionen kann ein Ordnen oder können Qualitätspunktzahlen der Klassendefinitionen beruhend auf der Qualität der Klassendefinitionen bereitgestellt werden. Dieses Ordnen oder diese Qualitätspunktzahlen helfen Clouddienst-Kunden dabei, die Klassendefinitionen zur Wiederverwendung in ihren eigenen cloudbasierten Bereitstellungen besser auszuwählen. Das Ordnen oder die Qualitätspunktzahlen können auch Bereitstellern von wiederverwendbaren Klassendefinitionen dabei helfen, ihre Klassendefinitionen zu verbessern.The object-oriented specification language allows class definitions to be reused in multiple configuration specifications and potentially by multiple cloud service customers can be. The cloud service provider may track the performance of multiple cloud-based deployments configured using configuration specifications involving reused class definitions. For each reused class definition, the cloud service provider can rate the quality of the class definition based on the aggregate performance of the multiple deployments configured using the class definition. In a marketplace for sharing reusable class definitions, ordering or quality scores of the class definitions may be provided based on the quality of the class definitions. These ordering or quality scores help cloud service customers better choose the class definitions for reuse in their own cloud-based deployments. Ranking or quality scores can also help reusable class definitions providers improve their class definitions.
Die Details von einer oder mehreren Ausführungsformen des beschriebenen Gegenstands in dieser Spezifikation werden in den begleitenden Zeichnungen und der Beschreibung unten dargelegt. Andere Merkmale, Aspekte und Vorteile des Gegenstands werden aus der Beschreibung, den Zeichnungen und den Ansprüchen offensichtlich.The details of one or more embodiments of the described subject matter in this specification are set forth in the accompanying drawings and the description below. Other features, aspects and advantages of the subject matter will become apparent from the description, drawings and claims.
KURZBESCHREIBUNG DER ZEICHNUNGENBRIEF DESCRIPTION OF THE DRAWINGS
Ähnliche Referenznummern und Kennzeichnungen in den verschiedenen Zeichnungen zeigen ähnliche Elemente an.Similar reference numbers and labels in the various drawings indicate similar elements.
DETAILLIERTE BESCHREIBUNGDETAILED DESCRIPTION
In einer Cloud-Computing-Umgebung erlangen Clouddienst-Kunden (z. B. Endbenutzer oder Unternehmen) Zugang zu Software-, Plattform- und/oder Infrastruktur-Diensten über ein oder mehrere Netzwerke (z. B. das Internet). Die Clouddienst-Kunden sind in der Lage, die Dienstebene (z. B. in Bezug auf Diensttyp, Qualität und Menge) je nach Bedarf auf- und abwärts zu skalieren, z. B. durch Konfiguration von Benutzeroberflächen, die von den Clouddienst-Anbietern bereitgestellt werden, und/oder durch programmdefinierte Konfigurationsspezifikationen, die bei den Clouddienst-Anbietern gespeichert sind. Dementsprechend vereinigen Clouddienst-Anbieter Ressourcen und bedienen ihre Kunden über ein mandantenfähiges Modell, wo physische und virtuelle Ressourcen gemäß den Kundenbedürfnissen zugeordnet und neu zugeordnet, konfiguriert und neu konfiguriert werden. Die Standorte der physischen Ressourcen, die der Cloud-Infrastruktur zugrunde liegen, sind nicht an die Clouddienst-Kunden ausgesetzt und können sich dynamisch ändern.In a cloud computing environment, cloud service customers (e.g., end users or enterprises) gain access to software, platform, and / or infrastructure services over one or more networks (eg, the Internet). The cloud service customers are able to scale up and down the service level (eg, in terms of service type, quality and quantity) as needed, e.g. By configuring user interfaces provided by the cloud service providers and / or by program-defined configuration specifications stored at the cloud service providers. Accordingly, cloud service providers pool resources and serve their customers through a multi-tenant model where physical and virtual resources are allocated and reassigned, configured, and reconfigured according to customer needs. The locations of the physical resources underlying the cloud infrastructure are not exposed to the cloud service customers and can change dynamically.
In einem Beispiel ist der Clouddienst-Anbieter
Über der Firmware- und Hardware-Schicht
Die bereitgestellten Infrastruktur-Dienste von dem Clouddienst-Anbieter
Die Skala und mehrere Aspekte (z. B. Daten, Konnektivität und Abhängigkeitsverhältnisse innerhalb und zwischen Dienst Komponenten) von einer Infrastruktur-Dienstbereitstellung sind konfigurierbar von einem Administrator-Benutzer des Clouddienst-Kunden. In einem Beispiel sendet der Administrator-Benutzer eine Konfigurationsspezifikation zu dem Clouddienst-Anbieter
Zusätzlich zu den Infrastruktur-Diensten stellt der beispielhafte Clouddienst-Anbieter
In diesem Beispiel stellt der Clouddienst-Anbieter
Zum Verwalten der Bereitstellung und Betrieb der bereitgestellten cloudbasierten Dienste an den Clouddienst-Kunden (z. B.
Obwohl der beispielhafte Clouddienst-Anbieter
In diesem Beispiel können die Clouddienst-Kunden cloudbasierte Dienste verwenden, die in jeder der Dienst-Schichten
In der Cloud-Computing-Umgebung
Wenn beispielsweise ein Software-Anwendungsdienst verwendet wird, kann ein Nutzer über einen Webbrowser auf die Software-Anwendung zugreifen und diese verwenden. Wenn Plattform- oder Infrastruktur-Dienste verwendet werden, kann ein Nutzer des Dienstes (z. B. ein Administrator-Benutzer eines Clouddienst-Kunden) auf eine Konfiguration-Benutzerschnittstelle zugreifen, die Verwaltungsfunktionen enthält, um die Dienste zu kontrollieren und zu konfigurieren. Die Verwaltungsfunktionen enthalten z. B. Ein- und Ausschalten von virtuelle Maschinen, Verwalten von Cloud-Speicher, Installieren und Bereitstellen von Software auf virtuelle Maschinen oder Einrichten von Webservern usw. Zusätzlich kann ein Clouddienst-Anbieter
Beim Konfigurieren eines cloudbasierten Dienstes zur Bereitstellung stellt ein Dienstnutzer oder Dienstentwickler eine oder mehrere Konfigurationsdateien an den Clouddienst-Anbieter
Wie in den
Wie in dieser Spezifikation offenbart, kann ein Clouddienst-Kunde oder Dienstentwickler anstelle eines Bereitstellens einer geschriebenen Konfigurationsspezifikation in einer Markup-Sprache oder durch eine grafische Benutzeroberfläche, eine geschriebene Konfigurationsspezifikation in einer übergeordneten objektorientierten Spezifikationssprache bereitstellen. Die übergeordnete objektorientierte Spezifikationssprache ermöglicht die Spezifikation von Komponenten (z. B. Infrastrukturen, Speichervorrichtungen, Dienste, zu installierendes Software-Paket, und „Software-Rollen”, die von installierten Software-Anwendungen gespielt werden) einer cloudbasierten Bereitstellung als Instanzen einer oder mehreren wiederverwendbaren und änderbaren Klassen, wobei jede Klasse eine Komponente der Bereitstellung unter Verwendung von einer Gruppe von konfigurierbaren Klassenparametern modelliert. Der Wert von jedem Klassenparameter kann für besondere Bereitstellungen unter Verwendung von der Syntax und den Funktionen, die durch die objektorientierte Spezifikationssprache bereitgestellt werden, spezifiziert, wiederverwendet, oder geändert werden. Die Instanz von jeder wiederverwendbaren und änderbaren Klasse erklärt den gewünschten Status der Komponente, die durch die Klasse modelliert wird.As disclosed in this specification, instead of providing a written configuration specification in a markup language or through a graphical user interface, a cloud service customer or service developer may provide a written configuration specification in a higher-level object-oriented specification language. The parent object-oriented specification language allows the specification of components (eg, infrastructures, storage devices, services, software package to be installed, and "software roles" played by installed software applications) of a cloud-based deployment as instances of one or more reusable and modifiable classes, each class modeling a component of the deployment using a set of configurable class parameters. The value of each class parameter may be specified, reused, or changed for particular deployments using the syntax and functions provided by the object-oriented specification language. The instance of each reusable and modifiable class explains the desired state of the component modeled by the class.
Wie in dieser Spezifikation beschrieben, wird eine Übernahme von Klassendefinitionen durch die übergeordnete objektorientierte Spezifikationssprache unterstützt. Neue Klassendefinitionen können beruhend auf Anweisungen, die eine oder mehrere vorhandene Klassendefinitionen unter Verwendung der übergeordneten Spezifikationssprache in Bezug setzen oder ändern, bereitgestellt werden. Anweisungen, die verschiedene Klassen in Bezug setzen, erfassen die Verhältnisse zwischen vielfachen Aspekten (z. B. Daten- oder Funktionskomponenten) einer Bereitstellung. Beispiele solcher Verhältnisse enthalten die Abhängigkeiten zwischen Software-Installationen und Dienstaktivierungen in einer Bereitstellung, die Konnektivität zwischen vielfachen Software-Rollen in einer Bereitstellung, und die Konnektivität zwischen einer Software-Rolle und einem Dienst oder einer virtuellen Vorrichtung in einer Bereitstellung. Neue Klassendefinitionen können auch durch Erweitern einer vorhandenen Klassendefinition mit der Addition neuer Klassenparameter und/oder Verfahren geschaffen werden. Ein Nutzer kann eine Bereitstellung durch Spezifizieren einer neuen Klasse abgeleitet von einer oder mehreren vorhandenen Basisklassen und Instanziieren der neuen Klasse anpassen.As described in this specification, the adoption of class definitions is supported by the parent object-oriented specification language. New class definitions may be provided based on instructions relating or changing one or more existing class definitions using the parent specification language. Statements that relate to different classes capture the relationships between multiple aspects (eg, data or functional components) of a deployment. Examples of such relationships include the dependencies between software installations and service activations in a deployment, the connectivity between multiple software roles in a deployment, and the connectivity between a software role and a service or virtual device in a deployment. New class definitions can also be created by extending an existing class definition with the addition of new class parameters and / or methods. A user can customize a deployment by specifying a new class derived from one or more existing base classes and instantiating the new class.
Gemäß dieser Spezifikation ist ein Clouddienst-Anbieter in der Lage, geschriebene Konfigurationsspezifikation in der übergeordneten objektorientierten Spezifikationssprache in einen Satz von API-Aufrufen beruhend auf den spezifizierten Anforderungen durch die enthaltenen Klassendefinitionen in der Konfigurationsspezifikation zu kompilieren. Die Aufnahme einer Klassendefinition in eine Konfigurationsspezifikation bezieht sich auf eine Anforderung in einer Konfigurationsspezifikation, die Klassendefinition zu instanziieren oder eine neue Klassendefinition abgeleitet von der Klassendefinition zu instanziieren.According to this specification, a cloud service provider is able to compile written configuration specification in the parent object-oriented specification language into a set of API calls based on the specified requirements through the included class definitions in the configuration specification. Including a class definition in a configuration specification refers to a request in a configuration specification to instantiate the class definition or to instantiate a new class definition derived from the class definition.
In einigen Implementierungen haben verschiedene Dienst-Schichten des Clouddienst-Anbieters und verschiedene Dienste innerhalb derselben Schicht verschiedene APIs. Zum Kompilieren der geschriebenen Konfigurationsspezifikation in der objektorientierten Spezifikationssprache speichert der Clouddienst-Anbieter einen Satz von Regeln und Protokollen zum Übersetzen jeweils eines Satzes der grundlegendsten Klassendefinitionen (oder Kernklassendefinitionen) der Spezifikationssprache zu einer jeweiligen Gruppe von API-Aufrufen. Die Gruppe von API-Aufrufen von jeder Kernklassendefinition entspricht der API des modellierten Komponententyps durch die Kernklassendefinition. Der Compiler ist dann in der Lage, den Satz von Regeln und Protokollen dazu zu verwenden, alle abgeleiteten Klassendefinitionen von den Kernklassendefinitionen in eine geeignete Kombination von API-Aufrufen zu übersetzen, um alle Komponenten einer spezifischen Bereitstellung zu konfigurieren. In einigen Implementierungen werden die API-Aufrufe zu einem oder mehreren Servern des Clouddienst-Anbieters gesendet und dort ausgeführt. Alternativ können einige der API-Aufrufe zu einer Zwischenkomponente des Clouddienst-Anbieters oder einem dritten Dienstanbieter weitergeleitet werden, wo die API-Aufrufe weiter in untergeordnete API-Aufrufe verarbeitet und durch die Unterkomponenten der Zwischenkomponente oder den dritten Dienstanbieter durchgeführt werden.In some implementations, different service layers of the cloud service provider and different services within the same layer have different APIs. To compile the written configuration specification in the object-oriented specification language, the cloud service provider stores a set of rules and protocols for translating a set of the most basic class definitions (or core class definitions) of the specification language into a respective set of API calls. The group of API calls from each core class definition corresponds to the model component type API through the core class definition. The compiler is then able to change the set of rules and Use protocols to translate all derived class definitions from the core class definitions into an appropriate combination of API calls to configure all components of a specific deployment. In some implementations, the API calls are sent to and executed on one or more servers of the cloud service provider. Alternatively, some of the API calls may be routed to an intermediary component of the cloud service provider or a third service provider, where the API calls are further processed into child API calls and performed by the subcomponents of the intermediate component or the third service provider.
In einigen Implementierungen enthält die übergeordnete objektorientierte Spezifikationssprache auch eine Syntax zum Spezifizieren von Auslösern für ein Skalieren oder dynamisches Neukonfigurieren mehrerer Aspekte der Bereitstellung. Beispielsweise kann eine Klassendefinition, die eine virtuelle Maschine modelliert, eine oder mehrere Klassenparameter für die Skalierungsrichtlinie enthalten, sodass der Compiler API-Aufrufe ableiten kann, um die Anzahl von bereitgestellten virtuelle Maschinen beruhend auf mehreren Leistungsmesswerte, die durch den Clouddienst-Manager überwacht werden (z. B. der gezeigte Clouddienst-Manager
Die folgenden Beispiele (gezeigt in den
Im ersten Beispiel wird eine beispielhafte Konfigurationsspezifikation
Dieses Beispiel setzt ein Vorhandensein einer Anzahl von Basisklassendefinitionen voraus, die der Compiler parsen und in API-Aufrufe übersetzen kann. Die vorhandenen Basisklassendefinitionen enthalten einen Satz von Kernklassendefinitionen, die durch den Compiler bereitgestellt werden, und möglicherweise andere Klassendefinitionen, die sich von einer oder mehreren der Kernklassendefinitionen entweder direkt oder über eine oder mehrere Zwischenklassendefinitionen erstreckt.This example assumes that there are a number of base class definitions that the compiler can parse and translate into API calls. The existing base class definitions contain a set of core class definitions provided by the compiler, and possibly other class definitions that extend from one or more of the core class definitions, either directly or through one or more intermediate class definitions.
In einigen Implementierungen sind die vorhandenen Basisklassendefinitionen in Modulen gruppiert (z. B. die gezeigten Module „utils”, „std” in
Wie in
In diesem Beispiel passt die Klassendefinition
Gemäß der Klassendefinition
In einem Beispiel kann zusätzlich zu einem Identifikator oder Namen der Rolle, die die Software-Installation in einer Bereitstellung spielt, ein Modell „software role” Modellparameter zum Konfigurieren mehrerer Aspekte der Software-Installation enthalten, einschließlich der die virtuellen Maschinen, auf denen die Software installiert werden soll, der Lage der Software-Binärdaten, Anweisungen dazu, welches Installationsprogramm verwendet werden soll, um die Software zu installieren usw. Wenn die Software-Installation erfordert, dass zuerst andere Dienste oder Software-Installationen ausgeführt werden müssen, ist diese Abhängigkeit optional auch im Modell „software role” enthalten. Ein Beispiel für Abhängigkeitsverhältnisse sind „start after” oder „stop before”. Andere Abhängigkeitstypen (z. B. auf derselben virtuellen Maschine installieren usw.) können auch unterstützt werden.In one example, in addition to an identifier or name of the role that the software installation plays in a deployment, a model "software role" may include model parameters for configuring several aspects of the software installation, including the virtual machines on which the software resides installation, the location of the software binary data, instructions on which installer to use to install the software, and so on. If the software installation requires that other services or software installations be run first, this dependency is optional also included in the model "software role". An example of dependency relationships are "start after" or "stop before". Other dependency types (for example, installing on the same virtual machine, etc.) can also be supported.
In diesem Beispiel in
Die Klassendefinition
In diesem Beispiel sind jedes von „roleName”, „moduleName”, „dataPackages” und „vms” Parameter der Klasse „std.Role” und sind in der Klassendefinition
In Bezug auf die Firewall-Komponente der Bereitstellung beruht die Klassendefinition
In diesem Beispiel beruhen die Klassendefinitionen der Klassen „SimpleHostingFirewall” und „utils.PublicTCPFirewall” beide auf einem Firewall-Dienstmodell. Im Gegensatz zu einem Modell „software role” muss ein Dienstmodell keine Parameters für die zugrundeliegenden virtuellen Maschinen, Festplatten oder Software-Pakete enthalten. Stattdessen werden diese Aspekte vom Clouddienst-Anbieter kontrolliert und unterliegen nicht der Konfiguration durch die Nutzer des Dienstes. Wie bei einem Modell „software role” enthält ein Dienstmodell optional auch Parameter, die Abhängigkeiten zwischen Diensten und zwischen Dienst- und Software-Rollen spezifizieren. In diesem Beispiel ist die Firewall-Komponente mit der Webserver-Komponente verbunden, es werden aber keine Abhängigkeiten des Firewall-Dienstes für diese einfache Hosting-Bereitstellung spezifiziert. Wie vorstehend dargelegt und gezeigt in
Wie in
Optional ist eine spezielle Klasse „Params” in der Konfigurationsspezifikation einer Bereitstellung enthalten, wie z. B. die gezeigte in der beispielhaften Konfigurationsspezifikation
Wie in der beispielhaften Konfigurationsspezifikation
Ein Compiler der übergeordneten objektorientierten Spezifikationssprache wird geschaffen, um die geschaffenen Klassendefinitionen beruhend auf diesen Komponentenmodellen zu parsen, die ausgedrückten Konfigurationsanforderungen durch die Werte der Klassenparameter zu extrahieren und die Anforderungen in einen geeigneten Satz von API-Aufrufen zum Konfigurieren der Arten von Komponenten zu übersetzen, die durch diese Komponentenmodelle dargestellt wird. In einigen Implementierungen wird ein Compiler als ein Software-Programm oder Script implementiert, das eine Konfigurationsdatei liest und einen Satz von API-Aufrufen ausgibt. In einigen Implementierungen richtet der Compiler die API-Aufrufe auch zu geeigneten Komponenten des Clouddienst-Anbieters oder von dritten Anbietern zur Ausführung.A superordinate object-oriented specification language compiler is provided to parse the created class definitions based on these component models, extract the expressed configuration requirements by the values of the class parameters, and translate the requirements into an appropriate set of API calls to configure the types of components. which is represented by these component models. In some implementations, a compiler is implemented as a software program or script that reads a configuration file and issues a set of API calls. In In some implementations, the compiler also directs API calls to appropriate components of the cloud service provider or third party vendors.
Das Beispiel in
Wie gezeigt durch das Beispiel von
Zusätzlich können Klassendefinitionen von hoch komplexen Komponenten (z. B. Komponenten, die vielfache Dienste, vielfache Datenquellen und vielfache Bereitstellungsebenen involvieren) beruhend auf vielfachen vorhandenen Klassendefinitionen mit oder ohne Änderung am Klassenparameter der vorhandenen Klassendefinitionen entwickelt werden. Diese hoch komplexen Klassendefinitionen können von einem Nutzer in einer neuen Bereitstellung ohne tiefgreifendes Verständnis dieser komplexen Klassendefinitionen auf allen Ebenen wiederverwendet werden.In addition, class definitions of highly complex components (e.g., components involving multiple services, multiple data sources, and multiple deployment levels) can be developed based on multiple existing class definitions, with or without change to the class parameter of the existing class definitions. These highly complex class definitions can be reused by a user in a new deployment without deep understanding of these complex class definitions at all levels.
Durch Auswahl der geeigneten Basisklassen, um sie in einer neuen Konfigurationsspezifikation anzupassen und zu ändern, gewinnt der Nutzer auch eine feinere Kontrolle über spezifische Aspekte der Bereitstellung, während er andere Aspekte der Bereitstellung generisch auf den Definitionen der Basisklassen belässt.By choosing the appropriate base classes to customize and change in a new configuration specification, the user also gains finer control over specific aspects of the deployment, while leaving other aspects of the deployment generic to the definitions of the base classes.
Eine LAMP-basierte Anwendungsbereitstellung enthält normalerweise die folgenden Komponenten: ein Frontend (d. h. die Software-Rolle einer Frontend-Software-Anwendung), virtuelle Maschinen, auf denen die Frontend-Software-Anwendung (z. B. eine Apache-Webserver-Anwendung) installiert ist, eine Datenbank (d. h. die Software-Rolle einer Datenbank-Software-Anwendung), virtuelle Maschinen, auf denen die Datenbank-Software-Anwendung (z. B. eine MySQL-Software-Anwendung) installiert ist, eine dauerhafte Festplatte zum Speichern der Datenbank und eine Firewall. Jede der obigen Komponenten wird durch einen jeweiligen Satz von Klassenparametern modelliert, die für eine spezifische LAMP-basierte Anwendungsbereitstellung konfigurierbar sind.A LAMP-based application deployment typically includes the following components: a front-end (that is, the software role of a front-end software application), virtual machines that support the front-end software application (for example, an Apache Web server application) a database (that is, the software role of a database software application), virtual machines on which the database software application (for example, a MySQL software application) is installed, a persistent disk for storage the database and a firewall. Each of the above components is modeled by a respective set of class parameters that are configurable for a specific LAMP-based application deployment.
Wie in
Im Modul
Die Klassendefinition
Zuletzt wird im Modul
Die Konfigurationsspezifikation
Wie spezifiziert in der Klassendefinition
In diesem Beispiel erstreckt sich die Klassendefinition
Ähnlich erstreckt sich die Klassendefinition
Weitere Parameter und Werte, die für die Mantis-Implementierung spezifisch sind, sind in der speziellen Klassendefinition
Im obigen Beispiel wird die Konfigurationsspezifikation für die Mantis-Softwarebereitstellung von den Basisklassendefinitionen abgeleitet (beispielsweise Klassendefinitionen im Modul
In dem Beispiel, das in
Nachdem das Frontend
Beispielsweise kann der API-Übersetzer
Beispielsweise können die Übersetzungsprotokolle eine Abbildung zwischen einer Kernklassendefinition enthalten, die einen jeweiligen modularen Aspekt der Cloud-basierten Umgebung auf eine Gruppe von API-Aufrufen modelliert, die zur Konfiguration dieses Aspekts der Cloud-basierten Umgebung verwendet werden. Die Übersetzungsprotokolle können ferner Protokolle zum Modifizieren des Satzes von API-Aufrufen (zum Beispiel zum Ändern von Standardparametern, die in den API-Aufrufen verwendet werden) mit Parameterwerten, die für diesen modularen Aspekt der Cloud-basierten Umgebung spezifiziert werden, in Klassen, die von der Kernklassendefinition abgeleitet sind, umfassen.For example, the translation protocols may include mapping between a core class definition that models a respective modular aspect of the cloud-based environment to a set of API calls used to configure that aspect of the cloud-based environment. The translation protocols may also include protocols for modifying the set of API calls (for example, to change default parameters used in the API calls) with parameter values specified for this modular aspect of the cloud-based environment into classes that are derived from the core class definition.
Als ein spezifischeres Beispiel wird angenommen, dass eine klassische virtuelle Maschinenklassendefinition (beispielsweise eine „std.VM”-Klasse) eine Kernklassendefinition ist, die dem Compiler bekannt ist. Der Compiler hat Zugriff auf eine Übersetzungsregel, die die Kernklassendefinition zu einem Satz von Provisionierungs-API-Aufrufen abbildet, die an den VM-Manager in der Kernelschicht des Cloud-Dienstanbieters
In einigen Implementierungen werden die Protokolle zum Übersetzen von Klassendefinitionen in API-Aufrufe als Programm-Scripts geschrieben. Wenn neue Klassendefinitionen zu der Klassendefinitionsdatenbank
In einigen Implementierungen werden die API-Aufrufe
Da Klassendefinitionen, die in einer objektorientierten Spezifizierungssprache geschrieben sind, wie in dieser Spezifikation offenbart, in mehreren Konfigurationsspezifikationen wiederverwendet werden können, kann ein Administratorbenutzer eines Cloud-Dienstes Klassendefinitionen verwenden, die von einem Dritten (z. B. ein anderer Benutzer, ein Dienstentwickler des Cloud-Dienstanbieters oder ein Entwickler von Drittanbietern) mit seinen eigenen Konfigurationsspezifikationen bereitgestellt werden, anstatt diese Klassendefinitionen selbst zu entwickeln. In einigen Implementierungen kann ein Marktplatz zum Teilen/Verkaufen und Auswählen von bestehenden Konfigurationsvorgaben und wiederverwendbaren Klassendefinitionen beispielsweise durch den Cloud-Dienstanbieter oder einen Drittanbieter bereitgestellt werden.Because class definitions written in an object-oriented specification language, as disclosed in this specification, can be reused in multiple configuration specifications, an administrator user of a cloud service can use class definitions provided by a third party (e.g., another user, a service developer of the Cloud service provider or a third-party developer) with its own configuration specifications instead of developing these class definitions themselves. In some implementations, a marketplace may be provided for sharing / selling and selecting existing configuration defaults and reusable class definitions, for example, by the cloud service provider or a third party vendor.
In diesem Beispiel stellt der Cloud-Dienstanbieter
Wie in
Wenn ein Definitionslieferant eine wiederverwendbare Klassendefinition oder ein Modul von wiederverwendbaren Klassendefinitionen einreicht, kann der Cloud-Dienst-Manager
In einigen Implementierungen können die Definitionslieferanten
In einigen Implementierungen stellt der Cloud-Dienst-Manager
In einigen Implementierungen erlaubt die Definitionsauswahl-Benutzerschnittstelle dem Benutzer der Klassendefinitionen, eine wiederzuverwendende Klassendefinition, die zur Auswahl verfügbar ist, herunterzuladen oder zu kopieren. In einigen Implementierungen muss der Benutzer die Klassendefinition nicht kopieren oder herunterladen und kann die Klassendefinitionen verwenden, indem er einfach den Modul- und Klassennamen in einer Konfigurationsspezifikation identifiziert, die dem Cloud-Dienstanbieter zur Bereitstellung übergeben wird. Der Cloud-Dienst-Manager
In einigen Implementierungen umfasst die Wiederverwendung ein ganzes Modul (beispielsweise das in
In einigen Implementierungen bietet der Cloud-Dienstanbieter
In einigen Implementierungen kann der Dienstverwalter
Der Cloud-Dienstanbieter
In einigen Implementierungen erleichtert der Cloud-Dienstanbieter
In einigen Implementierungen umfasst der Cloud-Dienst-Manager
Wie in dieser Beschreibung offenbart, können cloudbasierte Implementierungen gemäß Konfigurationsspezifikationen ausgeführt werden, die in einer objektorientierten Spezifikationssprache geschrieben sind, wobei die Konfigurationsspezifikationen Klassendefinitionen enthalten, die unterschiedliche Aspekte der Cloud-basierten Bereitstellungen auf unterschiedlichen Abstraktionsebenen modellieren. Wenn der Cloud-Dienst-Manager
Daher ermöglicht die objektorientierte Spezifikationssprache, dass Leistungsmetriken für jeden dieser unterschiedlichen Aspekte basierend auf dem Status und der Leistung der virtuellen Ressourcen und Dienste abgeleitet werden, die zur Leistung des Aspekts der Cloud-basierten Bereitstellung beitragen. Insbesondere ist die Leistung, die mit jedem Aspekt der Cloud-basierten Bereitstellung verbunden ist, mit den Klassendefinitionen verknüpft, die bei der Konfiguration dieses Aspekts der Cloud-basierten Bereitstellung beteiligt sind. Daraufhin kann die Leistung, die mit einer Klassendefinition verbunden ist, als ein Faktor zur Bestimmung eines Qualitätsmaßes für die Klassendefinition verwendet werden. Wenn eine Klassendefinition für die Konfiguration mehrerer Cloud-basierter Bereitstellungen verwendet wird, kann die aggregierte Leistung, die mit der Klassendefinition verknüpft ist, verwendet werden, um die Qualität der Klassendefinition zu beurteilen.Therefore, the object-oriented specification language allows performance metrics for each of these different aspects to be derived based on the status and performance of the virtual resources and services that contribute to the performance of the cloud-based deployment aspect. In particular, the performance associated with every aspect of cloud-based deployment is associated with the class definitions involved in the configuration of this aspect of cloud-based deployment. Thereafter, the performance associated with a class definition may be used as a factor for determining a quality measure for the class definition. If a class definition is used to configure multiple cloud-based deployments, the aggregate performance associated with the class definition can be used to assess the quality of the class definition.
Unter Verwendung der wiederverwendbaren Klassendefinitionen und Konfigurationsspezifikationen, die in den
In einigen Implementierungen kann der Cloud-Dienst-Manager
Als nächstes bestimmt der Cloud-Dienst-Manager
Ferner sind gemäß den Klassendefinitionen
Darüber hinaus bestimmt der Cloud-Dienst-Manager
Bei einigen Implementierungen kann der Dienstverwalter
In einigen Implementierungen können die Visualisierung der Leistungen und die Verwendung dieser verschiedenen Komponenten der Implementierung und ihre Änderungen über die Zeit auf dem Blockdiagramm
Wie in dieser Spezifikation dargelegt, ermöglicht die objektorientierte Spezifikationssprache, dass die Konfiguration jeder Komponente in einer Cloud-basierten Implementierung durch einen entsprechenden Satz von Klassendefinitionen spezifiziert wird. Beim Analysieren einer Konfigurationsspezifikation ist der Dienstverwalter in der Lage, die Komponenten der Bereitstellung zu identifizieren und alle Basisklassen zu identifizieren, deren Klassenparameter zu dem Konfigurationszustand der Komponente beigetragen haben oder diesen beeinflusst haben. In einigen Implementierungen ist die Leistung jeder Komponente den Klassendefinitionen zugeordnet, die zu der Konfiguration dieser Komponente beigetragen haben. Wenn eine Klassendefinition zu der Konfiguration mehrerer Komponenten in mehreren Bereitstellungen beigetragen hat, kann die Leistung dieser mehreren Komponenten in den mehreren Bereitstellungen mit dieser Klassendefinition verknüpft werden. Die Qualität der Klassendefinition kann mindestens teilweise auf der aggregierten Leistung aller der mehreren Komponenten in den mehreren Bereitstellungen beurteilt werden.As stated in this specification, the object-oriented specification language allows the configuration of each component in a cloud-based implementation to be specified by a corresponding set of class definitions. In analyzing a configuration specification, the service manager is able to identify the components of the deployment and identify any base classes whose class parameters have contributed or influenced the configuration state of the component. In some implementations, the performance of each component is associated with the class definitions that contributed to the configuration of that component. If a class definition has contributed to the configuration of multiple components in multiple deployments, the performance of these multiple components in the multiple deployments can be linked to this class definition. The quality of the class definition may be judged, at least in part, on the aggregate performance of all of the multiple components in the multiple deployments.
In einigen Implementierungen verfolgt der Cloud-Dienst-Manager die Verwendung jeder Klassendefinition in der Cloud-basierten Umgebung und erhebt Gebühren von Cloud-Dienstbenutzern, die die Klassendefinition in ihren Bereitstellungen verwendet haben. Wahlweise basiert der Betrag der Gebühren, die den Benutzern berechnet werden, auf der Nutzungsmenge, die der Benutzer für die Klassendefinition in allen von dem Benutzer angeforderten Bereitstellungen verursacht hat. In einigen Implementierungen, bei denen die Klassendefinitionen von Drittanbieter-Definitionsanbietern bereitgestellt werden, kann der Cloud-Dienst-Manager
Wenn beispielsweise die Konfigurationsspezifikation für die in
Der Cloud-Dienst-Manager
Wenn die Implementierung durchgeführt wird, kann der Cloud-Dienst-Manager
In einigen Implementierungen kann in einem Marktplatz für wiederverwendbare Klassendefinitionen jede neu verwendete Klassendefinition gemäß der Aggregatleistung der Klassendefinition in allen Bereitstellungen, die die Klassendefinition verwendet haben, gegen andere wiederverwendete Klassendefinitionen klassifiziert werden. In einigen Implementierungen kann die Leistung einer Bereitstellung mit jeder Klassendefinition verknüpft werden, die zur Konfiguration der Implementierung beigetragen hat, und bei der Bewertung der Qualität der Klassendefinition verwendet werden. In einigen Implementierungen werden nur die Leistungen der Komponenten, deren Konfigurationen durch eine Klassendefinition beeinflusst werden, mit der Klassendefinition assoziiert und bei der Bewertung der Qualität der Klassendefinition verwendet.In some implementations, in a reusable class definition marketplace, each newly used class definition may be classified against other reused class definitions according to the aggregate performance of the class definition in all deployments that used the class definition. In some Implementations can associate the performance of a deployment with any class definition that has contributed to the configuration of the deployment, and can be used in evaluating the quality of the class definition. In some implementations, only the performance of the components whose configurations are affected by a class definition are associated with the class definition and used in evaluating the quality of the class definition.
Wenn der Cloud-Dienst-Manager beispielsweise mehrere Komponenten in mehreren Bereitstellungen identifiziert hat, die durch eine Definition einer virtuellen Maschine beeinflusst werden, wird die aggregierte Leistung der mehreren Komponenten zur Bewertung der Qualität der Definition der virtuellen Maschine verwendet. Wenn darüber hinaus der Cloud-Dienst-Manager alle Klassendefinitionen identifiziert, die der Konfiguration einer Frontend-Rollenkomponente einer Bereitstellung zugeordnet sind, wird die mit der Frontend-Rollenkomponente in der Bereitstellung assoziierte Leistung mit jeder dieser identifizierten Klassendefinitionen assoziiert.For example, if the cloud service manager identified multiple components in multiple deployments that are affected by a definition of a virtual machine, the aggregate performance of the multiple components is used to assess the quality of the virtual machine's definition. Additionally, if the cloud service manager identifies any class definitions associated with the configuration of a front-end role component of a deployment, the performance associated with the front-end role component in the deployment is associated with each of those identified class definitions.
In einigen Implementierungen wird ein Qualitätsfaktor für jede Klassendefinition basierend auf der aggregierten Leistung berechnet, die mit allen oder mehreren Komponenten oder Bereitstellungen verbunden ist, die mindestens teilweise basierend auf der Klassendefinition konfiguriert sind. Der Qualitätsfaktor kann mit der Klassendefinition in der von dem Cloud-Dienstanbieter zur Verfügung gestellten Definitionsauswahlschnittstelle dargestellt werden. In einigen Implementierungen können für jede Klassendefinition mehrere Qualitätsmetriken berechnet werden, die beispielsweise auf Folgendem basieren: den Skalierungen der Implementierungen, die die Klassendefinition verwendet haben, dem Gewicht oder dem Einfluss der Klassendefinition in jeder Implementierung, die die Klassendefinition verwendet hat, der Verfügbarkeit, der Fehlertoleranz, der Skalierbarkeit und der Ausfallrate der Komponenten, die gemäß der Klassendefinition konfiguriert sind, den Arten der aufgetretenen Probleme, den erforderlichen Modifikationen, um die angetroffenen Probleme zu lösen, explizitem Benutzer-Feedback und so weiter. Basierend auf den verschiedenen Qualitätsmetriken können für jede gemeinsame Klassendefinition eine oder mehrere Arten von Qualitätswerten bereitgestellt werden und ein potentieller Definitionsbenutzer kann die Liste verfügbarer freigegebener Klassendefinitionen basierend auf den Qualitätswerten durchsuchen.In some implementations, a quality factor is calculated for each class definition based on aggregate performance associated with all or multiple components or deployments configured at least in part based on the class definition. The Quality Score may be presented with the class definition in the definition selection interface provided by the cloud service provider. In some implementations, for each class definition, multiple quality metrics may be computed based, for example, on the scales of the implementations that used the class definition, the weight or impact of the class definition in each implementation that used the class definition, the availability, the Fault tolerance, scalability and failure rate of the components configured according to the class definition, the types of problems encountered, the modifications required to solve the problems encountered, explicit user feedback and so on. Based on the various quality metrics, one or more types of quality values may be provided for each common class definition, and a potential definition user may search the list of available shared class definitions based on the quality values.
Obwohl das obige Beispiel die Qualitätsbewertung in Bezug auf wiederverwendbare Klassendefinitionen beschreibt, können ähnliche Qualitätswerte für wiederverwendbare Klassenmodule, wiederverwendbare Konfigurationsspezifikationen oder konfigurationsgepackte Softwarelösungen berechnet werden.Although the example above describes the quality rating for reusable class definitions, similar quality values can be calculated for reusable class modules, reusable configuration specifications, or configuration packaged software solutions.
In dem Beispielprozess
In einigen Implementierungen enthalten die eine oder die mehreren Klassen mindestens eine existierende Basisklasse und mindestens eine von der vorhandenen Basisklasse erweitere benutzerdefinierte Klasse. In einigen Implementierungen erbt die benutzerdefinierte Klasse entsprechende Klassenparameter der vorhandenen Basisklasse und modifiziert einen Wert von mindestens einem der Klassenparameter, die von der vorhandenen Basisklasse geerbt wurden. In einigen Implementierungen erbt die benutzerdefinierte Klasse entsprechende Klassenparameter der vorhandenen Basisklasse und modifiziert einen Wert von mindestens einem der Klassenparameter, die von der vorhandenen Basisklasse geerbt wurden.In some implementations, the one or more classes include at least one existing base class and at least one custom class extended from the existing base class. In some implementations, the custom class inherits corresponding class parameters of the existing base class and modifies a value of at least one of the class parameters inherited from the existing base class. In some implementations, the custom class inherits corresponding class parameters of the existing base class and modifies a value of at least one of the class parameters inherited from the existing base class.
In einigen Implementierungen ist die von jeder Klasse modellierte Daten- oder Funktionskomponente eine virtuelle Einheit, die eine Cloud-basierte Umgebung unterstützt, ein Dienst, der in der Cloud-basierten Umgebung verwendet wird, eine Softwarerolle, die von einer installierten Anwendung in der Cloud-basierten Umgebung ausgeführt wird, ein Datenpaket, das Daten umfasst, die während der Bereitstellung oder des Betriebs der Cloud-basierten Umgebung verwendet werden sollen, oder eine Kombination von einem oder mehreren davon. In some implementations, the data or functional component modeled by each class is a virtual appliance that supports a cloud-based environment, a service that is used in the cloud-based environment is a software role that is dependent on an installed application in the cloud. a data packet comprising data to be used during the provisioning or operation of the cloud-based environment, or a combination of one or more thereof.
In einigen Implementierungen unterstützt die objektorientierte Spezifikationssprache die Abhängigkeit zwischen Klassendefinitionen und eine Definitionsabhängigkeit zwischen einer ersten Klasse und einer zweiten Klasse repräsentiert eine Bereitstellungsabhängigkeit zwischen jeweiligen Komponenten, die durch die erste und die zweite Klasse modelliert sind. In einigen Implementierungen wird die Definitionsabhängigkeit zwischen der ersten Klasse und der zweiten Klasse durch einen Klassenparameter der ersten Klasse ausgedrückt, wobei sich der Klassenparameter der ersten Klasse auf eine Instanz der zweiten Klasse bezieht.In some implementations, the object-oriented specification language supports the dependency between class definitions, and a definition dependency between a first class and a second class represents a deployment dependency between respective components modeled by the first and second classes. In some implementations, the definition dependency between the first class and the second class is expressed by a class parameter of the first class, wherein the class parameter of the first class refers to an instance of the second class.
In einigen Implementierungen unterstützt die objektorientierte Spezifikationssprache die Konnektivität zwischen Klassendefinitionen und eine Wertzuweisung, die eine Instanz einer zweiten Klasse mit einem Klassenparameter einer ersten Klasse verknüpft, stellt eine Konnektivität zwischen jeweiligen Komponenten dar, die von der ersten Klasse und der zweiten Klasse modelliert werden.In some implementations, the object-oriented specification language supports the connectivity between class definitions, and a value assignment that associates an instance of a second class with a class parameter of a first class represents connectivity between respective components modeled by the first class and the second class.
In dem Beispielprozess
In dem Beispielprozess
Im Beispielprozess
Um die Vielzahl von API-Aufrufen zur Konfiguration der Cloud-basierten Bereitstellung abzuleiten, leitet der Cloud-Dienstanbieter in einigen Implementierungen die Vielzahl von API-Aufrufen basierend auf Folgendem ab: den jeweiligen Gruppen von API-Aufrufen, die mit einer oder mehreren der Vielzahl von Kernklassen verknüpft sind, von die eine oder die mehreren Klassen der Konfigurationsspezifikation abgeleitet werden, und basierend auf der Vielzahl von Protokollen zum Modifizieren der jeweiligen Gruppen von API-Aufrufen.To derive the plurality of API calls for configuring the cloud-based deployment, in some implementations, the cloud service provider derives the plurality of API calls based on: the respective groups of API calls associated with one or more of the plurality of core classes from which one or more classes of the configuration specification are derived, and based on the plurality of protocols for modifying the respective groups of API calls.
In einigen Implementierungen enthält die Vielzahl von Protokollen ferner Regeln zum Auferlegen einer Anordnung der Gruppen von API-Aufrufen gemäß Abhängigkeits- und Konnektivitätsbeziehungen, die in Klassendefinitionen spezifiziert sind, die entsprechend der objektorientierten Spezifizierungssprache geschrieben sind.In some implementations, the plurality of protocols further include rules for imposing an array of the groups of API calls according to dependency and connectivity relationships specified in class definitions written according to the object-oriented specification language.
In dem Beispielverfahren
In dem Beispielverfahren
In dem Beispielverfahren
In einigen Implementierungen umfasst die Verwendung der Klassendefinition eine Instanziierung der Klassendefinition in einer jeweiligen Konfigurationsspezifikation, die verwendet wurde, um eine jeweilige Cloud-basierte Implementierung auszuführen. In einigen Implementierungen umfasst die Verwendung der Klassendefinition eine Instanziierung der Klassendefinition in einer jeweiligen Konfigurationsspezifikation, die verwendet wurde, um eine jeweilige Cloud-basierte Implementierung auszuführen.In some implementations, the use of the class definition includes instantiating the class definition in a respective configuration specification that has been used to execute a respective cloud-based implementation. In some implementations, the use of the class definition includes instantiating the class definition in a respective configuration specification that has been used to execute a respective cloud-based implementation.
Im Beispielverfahren
In dem Beispielverfahren
In dem Beispielprozess
In dem Beispielprozess
In dem Beispielverfahren
In einigen Implementierungen wird die jeweilige Anzahl von erforderlichen Änderungen, die mit der Vielzahl von Klassendefinitionen assoziiert ist, verwendet, um jeweilige Gewichte zu berechnen, die den jeweiligen Leistungsmetriken zugeordnet sind, die mit der Vielzahl von Klassendefinitionen assoziiert sind, um die Vielzahl von Klassendefinitionen zu bewerten.In some implementations, the respective number of required changes associated with the plurality of class definitions is used to calculate respective weights associated with the respective performance metrics associated with the plurality of class definitions to accommodate the plurality of class definitions rate.
Ausführungsformen des Gegenstands und die in dieser Spezifikation beschriebenen Tätigkeiten können in digitalen elektronischen Schaltungen oder in Computer-Software, Firmware oder Hardware implementiert werden, einschließlich der in dieser Spezifikation offengelegten Strukturen und ihrer strukturellen Entsprechungen oder in Kombinationen von einer oder mehrerer von ihnen. Ausführungsformen des in dieser Spezifikation beschriebenen Gegenstands können als ein oder mehrere Computerprogramme, d. h. als ein oder mehrere Module von Computerprogrammanweisungen implementiert werden, die auf einem Computer-Speichermedium für die Durchführung durch oder die Kontrolle des Betriebs des datenverarbeitenden Apparats kodiert werden. Alternativ oder zusätzlich können die Programmanweisungen auf einem erzeugten propagierten Signal, z. B. einem maschinell erzeugten elektrischen, optischen oder elektromagnetischen Signal künstlich kodiert werden, das erzeugt wird, um Informationen für die Übertragung auf einen geeigneten Empfängerapparat für die Durchführung durch einen datenverarbeitenden Apparat zu kodieren. Bei einem Computer-Speichermedium kann es sich um ein maschinell lesbares Speichergerät, einen maschinell lesbaren Speicherträger, ein zufälliges oder serielles Speicher-Array oder Speichergerät oder um eine Kombination aus einem oder mehreren dieser Geräte handeln.Embodiments of the subject matter and the activities described in this specification may be implemented in digital electronic circuits or in computer software, firmware, or hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them. Embodiments of the subject matter described in this specification may be embodied as one or more computer programs, i. H. are implemented as one or more modules of computer program instructions encoded on a computer storage medium for performing or controlling the operation of the data processing apparatus. Alternatively or additionally, the program instructions may be based on a generated propagated signal, e.g. A machine-generated electrical, optical or electromagnetic signal which is generated to encode information for transmission to a suitable receiver apparatus for execution by a data processing apparatus. A computer storage medium may be a machine-readable storage device, a machine-readable storage medium, a random or serial storage array or storage device, or a combination of one or more of these devices.
Der Begriff „Datenverarbeitungsvorrichtung” umfasst alle Arten von Vorrichtungen, Geräten und Maschinen zum Verarbeiten von Daten, einschließlich beispielsweise eines programmierbaren Prozessors, eines Rechners oder mehrerer Prozessoren oder Rechner. Die Vorrichtung kann spezielle Logikschaltungen umfassen, z. B. ein FPGA (Field Programmable Gate Array-programmierbare Hardware-Logik) oder ein ASIC (anwendungsspezifische integrierte Schaltung). Der Apparat kann neben der Hardware auch einen Code einschließen, der eine Durchführungsumgebung für das betreffende Computerprogramm in der Frage erstellt, z. B. einen Code, der Prozessor-Firmware, einen Protokollstapel, ein Datenbankverwaltungssystem, ein Betriebssystem, oder eine Kombination einer oder mehrerer der genannten.The term "data processing device" encompasses all types of devices, devices and machines for processing data including, for example, a programmable processor, a computer or multiple processors or calculator. The device may include special logic circuits, e.g. As an FPGA (Field Programmable Gate Array programmable hardware logic) or an ASIC (application-specific integrated circuit). The apparatus may include, in addition to the hardware, a code that provides an execution environment for the particular computer program in question, e.g. A code, the processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of the cited.
Ein Computerprogramm (auch bezeichnet als Programm, Software, Softwareanwendung, Script oder Code) kann in einer beliebigen Form von Programmiersprache geschrieben sein, einschließlich kompilierter oder interpretierter Sprachen, deklarativer oder verfahrensorientierter Sprachen, und das Programm kann in jeder beliebigen Form eingesetzt sein, darunter als unabhängiges Programm oder als ein Modul, eine Komponente, eine Subroutine oder eine andere Einheit, die zur Benutzung in einer Rechenumgebung geeignet ist. Ein Computerprogramm kann, muss aber nicht, einer Datei in einem Dateisystem entsprechen. Ein Programm kann in einem Teil einer Datei gespeichert sein, die andere Programme oder Daten enthält (z. B. ein oder mehrere Scripts, die in einem Dokument in Markup-Sprache gespeichert sind), in einer einzelnen Datei speziell für das betreffende Programm oder in mehreren koordinierten Dateien (z. B. Dateien, die ein oder mehrere Module, Unterprogramme oder Teile von Code speichern). Ein Computerprogramm kann auf einem Computer oder mehreren Computer eingerichtet sein oder ausgeführt werden, die an einem Standort angeordnet sind oder über mehrere Standorte verteilt sind und über ein Kommunikationsnetz verbunden sind.A computer program (also referred to as program, software, software application, script or code) may be written in any form of programming language, including compiled or interpreted languages, declarative or procedural languages, and the program may be in any form, including as independent program or as a module, component, subroutine or other entity suitable for use in a computing environment. A computer program may or may not be equivalent to a file in a file system. A program may be stored in a portion of a file containing other programs or data (eg, one or more scripts stored in a document in markup language), in a single file specific to that program, or in multiple coordinated files (for example, files that store one or more modules, subprograms, or pieces of code). A computer program may be set up or executed on one or more computers located at a site or distributed over multiple sites and connected via a communications network.
Die in dieser Beschreibung dargestellten Prozesse und Logik-Abläufe können durch einen oder mehrere programmierbare Prozessoren durchgeführt werden, die ein oder mehrere Computerprogramme ausführen, um Funktionen durch das Arbeiten mit Eingabedaten und das Erzeugen von Ausgaben auszuführen. Die Prozesse und die logischen Abläufe können auch durch logische Sonderzweckschaltungen durchgeführt werden, und der Apparat kann als Sonderzweckschaltungen implementiert werden, z. B. ein FPGA (Field Programmable Gate Array) oder eine ASIC (anwendungsspezifische integrierte Schaltung).The processes and logic operations depicted in this specification may be performed by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and generating outputs. The processes and logical operations may also be performed by special purpose logic circuits, and the apparatus may be implemented as special purpose circuits, e.g. As an FPGA (Field Programmable Gate Array) or an ASIC (application-specific integrated circuit).
Prozessoren, die für die Ausführung eines Computerprogramms geeignet sind, beinhalten beispielsweise sowohl allgemeine und als auch Spezial-Mikroprozessoren sowie alle Arten eines oder mehrerer Prozessoren jeglicher Art Computer ein. Ganz allgemein nimmt ein Prozessor Befehle und Daten von einem Festwertspeicher oder einem Arbeitsspeicher oder von beiden entgegen. Die wesentlichen Elemente eines Computers sind eine CPU für das Ausführen von Anweisungen und ein oder mehrere Speichergeräte für das Speichern von Anweisungen und Daten. Ganz allgemein gehören zu einem Computer auch ein oder mehrere Massenspeichergeräte für das Speichern von Daten, z. B. Magnet-, magnetooptische oder optische Disketten, um Daten entgegenzunehmen und/oder zu übertragen, bzw. ist ein Computer operativ an ein solches Speichergerät gekoppelt. Jedoch muss ein Computer solche Geräte nicht haben. Außerdem kann ein Computer in einem anderen Gerät eingebettet sein, z. B. in einem Mobiltelefon, einem Organizer (PDA), einem mobilen Audio- oder Videoplayer, einer Spielkonsole, einem Funknavigationsempfänger oder einem tragbaren Speichergerät (z. B. in einem USB-Stick), um nur einige zu nennen.Processors suitable for executing a computer program include, for example, both general and special purpose microprocessors, as well as all types of one or more processors of any type. In general, a processor accepts instructions and data from read-only memory or memory, or both. The essential elements of a computer are a CPU for executing instructions and one or more storage devices for storing instructions and data. Generally, a computer also includes one or more mass storage devices for storing data, e.g. As magnetic, magneto-optical or optical disks to receive and / or transmit data, or a computer is operatively coupled to such a storage device. However, a computer does not have to have such devices. In addition, a computer may be embedded in another device, e.g. In a mobile phone, an organizer (PDA), a mobile audio or video player, a game console, a radio navigation receiver, or a portable storage device (eg, a USB stick), to name but a few.
Computerlesbare Medien, die für das Speichern von Computerprogrammanweisungen und -daten geeignet sind, schließen alle Formen von Permanentspeichern, Medien- und Speichergeräten ein, einschließlich beispielsweise Halbleiter-Speichergeräte, z. B. EPROM, EEPROM und USB-Flash-Speicher; Magnetdisketten, z. B. interne Festplatten oder herausnehmbare Disketten; magnetooptische Disketten; und CD-ROMs und DVD-ROMs. Der Prozessor und der Speicher können durch logische Sonderzweckschaltungen ergänzt werden oder darin eingebaut sein.Computer readable media suitable for storing computer program instructions and data includes all forms of non-volatile memory, media and storage devices including, for example, semiconductor memory devices, e.g. EPROM, EEPROM and USB flash memory; Magnetic disks, z. Internal hard drives or removable floppy disks; magneto-optical diskettes; and CD-ROMs and DVD-ROMs. The processor and memory may be supplemented or incorporated by special purpose logic circuits.
Um die Interaktion mit einem Benutzer zu ermöglichen, können in dieser Spezifikation beschriebene Ausführungsformen des Gegenstands auf einem Computer mit einem Anzeigegerät implementiert werden, z. B. einem CRT-(Kathodenstrahlröhre) oder LCD-(Flüssigkristallanzeige)Monitor, mit welchem dem Benutzer Informationen angezeigt werden, sowie einer Tastatur und einem Anzeigegerät, z. B. einer Maus oder einem Trackball, mit denen der Benutzer Eingaben in den Computer vornehmen kann. Es können auch andere Arten von Einrichtungen verwendet werden, um für eine Interaktion mit einem Nutzer zu sorgen; beispielsweise kann eine dem Benutzer gelieferte Rückkopplung beliebiger Form von sensorischer Rückkopplung vorliegen, z. B. eine visuelle Rückkopplung, auditive Rückkopplung oder taktile Rückkopplung; und die Eingabe von dem Nutzer kann in beliebiger Form empfangen werden, einschließlich akustischer, Sprach- oder taktiler Eingabe. Zusätzlich kann ein Computer mit einem Benutzer durch das Senden und das Erhalten von Dokumenten von einem Gerät, das von einem Benutzer benutzt wird, Wechselwirken; beispielsweise durch das Senden von Webseiten an einen Webbrowser durch ein Benutzergerät des Benutzers als Antwort auf Anforderungen des Webbrowsers.To facilitate interaction with a user, embodiments of the subject matter described in this specification may be implemented on a computer with a display device, e.g. As a CRT (cathode ray tube) or LCD (liquid crystal display) monitor, with which the user information is displayed, and a keyboard and a display device, eg. As a mouse or a trackball, with which the user can make inputs to the computer. Other types of devices may be used to provide for interaction with a user; For example, a user-supplied feedback of any form of sensory feedback may be present, e.g. A visual feedback, auditory feedback or tactile feedback; and the input from the user may be received in any form, including acoustic, voice or tactile input. In addition, a computer may interact with a user by sending and receiving documents from a device used by a user; for example, by sending web pages to a web browser by a user device of the user in response to requests from the web browser.
Ausführungsformen der in dieser Spezifikation betrachteten Gegenstands können in ein Computersystem implementiert werden, das eine Backend-Komponente (z. B. einen Datenserver), oder eine Middleware-Komponente (z. B. einen Anwendungsserver), oder eine Frontend-Komponente (z. B. einen Client-Computer mit graphischem Benutzerinterface oder Webbrowser) umfasst, worüber der Benutzer mit einer Implementierung der in dieser Spezifikation betrachteten Gegenstands interagieren kann, oder eine beliebige Kombination aus solchen Backend, Middleware- oder Frontend-Komponenten. Die Komponenten des Systems können durch eine beliebige Form oder ein beliebiges Medium digitaler Datenkommunikation miteinander verbunden sein, z. B. ein Kommunikationsnetz. So beinhalten beispielsweise Kommunikationsnetzwerke ein lokales Netzwerk („LAN”), ein Fernnetz („WAN”), z. B. das Internet. Embodiments of the subject matter contemplated in this specification may be implemented in a computer system that includes a back-end component (eg, a data server), or a middleware component (eg, an application server), or a front-end component (e.g. A client computer with graphical user interface or web browser), which allows the user to interact with an implementation of the subject matter considered in this specification, or any combination of such backend, middleware or frontend components. The components of the system may be interconnected by any form or medium of digital data communication, e.g. B. a communication network. For example, communication networks include a local area network ("LAN"), a long distance network ("WAN"), e.g. For example, the Internet.
Das Rechensystem kann Client und Server beinhalten. Ein Client und Server befinden sich im Allgemeinen ortsfern voneinander und interagieren typischerweise über ein Kommunikationsnetz. Die Beziehung zwischen Client und Server entsteht aufgrund von Computerprogrammen, die auf den jeweiligen Computern laufen und die eine Client-Server-Beziehung zueinander haben.The computing system may include client and server. A client and server are generally remote from each other and typically interact over a communications network. The relationship between client and server arises because of computer programs that run on the respective computers and that have a client-server relationship with each other.
Zwar enthält diese Spezifikation viele spezifische Implementierungsdetails, jedoch sollten diese nicht als Beschränkungen des Umfangs oder des Anspruchs ausgelegt werden, sondern vielmehr als Beschreibungen spezifischer Merkmale bestimmter Ausführungsformen bestimmter Erfindungen. Bestimmte Merkmale, die in dieser Spezifikation im Kontext der unterschiedlichen Ausführungsformen beschrieben werden, können auch in Kombination in einer einzelnen Ausführungsform implementiert werden. Andererseits können verschiedene Merkmale, die im Kontext einer einzelnen Ausführungsform beschrieben werden, in mehreren Ausführungsformen oder in jeder geeigneten Unterkombination implementiert werden. Außerdem können ein oder mehrere Merkmale einer beanspruchten Kombination in einigen Fällen aus der Kombination herausgelöst werden, auch wenn die Merkmale vorstehend als in gewissen Kombinationen funktionierend beschrieben oder gar als eine Kombination beansprucht werden, und die beanspruchte Kombination kann an eine Unterkombination oder eine Variation einer Unterkombination verwiesen werden.While this specification contains many specific implementation details, these should not be construed as limitations on the scope or on the claims, but rather as descriptions of specific features of particular embodiments of particular inventions. Certain features described in this specification in the context of the various embodiments may also be implemented in combination in a single embodiment. On the other hand, various features described in the context of a single embodiment may be implemented in multiple embodiments or in any suitable subcombination. In addition, one or more features of a claimed combination may in some instances be released from the combination, even if the features are described above as functioning in some combinations or even claimed as a combination, and the claimed combination may be attached to a subcombination or variation of a subcombination to get expelled.
Ebenso werden Tätigkeiten in den Zeichnungen zwar in einer bestimmten Reihenfolge dargestellt, aber dies sollte nicht als Anforderns verstanden werden, dass solche Tätigkeiten in der bestimmten gezeigten Reihenfolge oder in einer aufeinanderfolgenden Reihenfolge ausgeführt werden müssen oder dass alle dargestellten Tätigkeiten ausgeführt werden müssen, um erwünschte Ergebnisse zu erzielen. Unter bestimmten Umständen können Multitasking und eine Parallelbearbeitung vorteilhaft sein. Darüber hinaus sollte die Trennung verschiedener Systemkomponenten in den oben beschriebenen Ausführungsformen nicht in allen Ausführungsformen erforderlich aufgefasst werden, und es versteht sich, dass die beschriebenen Programmkomponenten und Systeme im Allgemeinen zusammen in ein einziges Softwareprodukt integriert oder zu mehreren Softwareprodukten verkapselt werden können.Also, while activities in the drawings are presented in a particular order, this should not be construed as requesting that such activities be performed in the particular order shown or in a sequential order, or that all activities depicted must be performed to achieve desired results to achieve. Under certain circumstances, multitasking and parallel processing can be beneficial. Moreover, the separation of various system components in the embodiments described above should not be construed as required in all embodiments, and it should be understood that the described program components and systems generally can be integrated together into a single software product or encapsulated into multiple software products.
Folglich wurden bestimmte Ausführungsformen des Gegenstands beschrieben. Weitere Ausführungsformen gehören zum Umfang der folgenden Ansprüche. Die in den Ansprüchen ausgeführten Vorgänge können beispielsweise in einer anderen Reihenfolge ausgeführt werden und erzielen dennoch gewünschte Ergebnisse. Die in den beigefügten Abbildungen dargestellten Verfahren erfordern beispielsweise nicht notwendigerweise die gezeigte Reihenfolge oder sequentielle Reihenfolge, um erwünschte Ergebnisse zu erzielen. Bei bestimmten Implementierungen können Multitasking und eine Parallelbearbeitung vorteilhaft sein.Thus, certain embodiments of the subject matter have been described. Other embodiments are within the scope of the following claims. For example, the operations set forth in the claims may be performed in a different order and still achieve desired results. For example, the methods illustrated in the accompanying drawings do not necessarily require the order shown or sequential order to achieve desired results. In certain implementations, multitasking and parallel processing may be beneficial.
Weitere Implementierungen sind in den folgenden Beispielen zusammengefasst:
Beispiel 1: Computerimplementiertes Verfahren, das Folgendes umfasst: Empfangen einer Konfigurationsspezifikation zum Konfigurieren einer Cloud-basierten Bereitstellung, wobei die Konfigurationsspezifikation in einer Spezifikationssprache geschrieben ist und eine Instanziierung der jeweiligen Klassendefinitionen einer oder mehrerer Klassen erfordert, wobei jede Klasse eine jeweilige Daten- oder Funktionskomponente der Cloud-basierten Bereitstellung unter Verwendung einer Gruppe konfigurierbarer Klassenparameter modelliert und die jeweilige Klassendefinition jeder Klasse einen angeforderten Zustand der Daten- oder Funktionskomponenten darstellt, die von der Klasse modelliert werden; Ableiten einer Vielzahl von API-Aufrufen (Application Programming Interface) zur Konfiguration der Cloud-basierten Bereitstellung basierend auf den Klassendefinitionen der einen oder mehreren Klassen; Veranlassen, dass die Vielzahl von API-Aufrufen ausgeführt wird, um die Cloud-basierte Bereitstellung zu konfigurieren; Identifizieren, basierend auf den jeweiligen Klassendefinitionen der einen oder mehreren Klassen einer Vielzahl von Daten- und Funktionskomponenten, die durch die eine oder mehrere Klassen modelliert sind, und eine oder mehrere Abhängigkeits- und Konnektivitätsbeziehungen, die unter der Vielzahl von Daten- oder Funktionskomponenten bestehen; Ableiten eines Blockdiagramms einer Cloud-basierten Umgebung basierend auf der identifizierten Vielzahl von Daten- und Funktionskomponenten und der identifizierten Abhängigkeits- und Konnektivitätsbeziehungen; und Darstellen der Auslöserereignisse für die dynamische Rekonfiguration der Cloud-basierten Umgebung in dem Blockdiagramm.Other implementations are summarized in the following examples:
Example 1: A computer-implemented method, comprising: receiving a configuration specification to configure a cloud-based deployment, wherein the configuration specification is written in a specification language and requires instantiation of the respective class definitions of one or more classes, each class having a respective data or functional component model the cloud-based deployment using a set of configurable class parameters and the respective class definition of each class represents a requested state of the data or functional components modeled by the class; Deriving a plurality of Application Programming Interface (API) calls to configure the cloud-based deployment based on the class definitions of the one or more classes; Causing the plurality of API calls to be executed to configure the cloud-based deployment; Identifying, based on the respective class definitions, the one or more classes of a plurality of data and functional components modeled by the one or more classes and one or more dependency and connectivity relationships existing among the plurality of data or functional components; Deriving a block diagram of a cloud-based environment based on the identified plurality of data and functional components and the identified dependency and connectivity relationships; and presenting the trigger events for the dynamic reconfiguration of the cloud-based environment in the block diagram.
Beispiel 2: Das computerimplementierte Verfahren von Beispiel 1, wobei die eine oder die mehreren Klassen mindestens eine vorhandene Basisklasse und mindestens eine von der vorhandenen Basisklasse erweitere benutzerdefinierte Klasse umfassen, wobei die benutzerdefinierte Klasse entsprechende Klassenparameter der vorhandenen Basisklasse erbt und die benutzerdefinierte Klasse einen Wert von mindestens einem der Klassenparameter, die von der vorhandenen Basisklasse geerbt wurden, modifiziert oder mindestens einen neuen Klassenparameter umfasst, der in der vorhandenen Basisklasse nicht vorhanden ist.Example 2: The computer-implemented method of Example 1, wherein the one or more classes include at least one existing base class and at least one custom class extended from the existing base class, wherein the custom class inherits corresponding class parameters of the existing base class and the custom class has a value of modified at least one of the class parameters inherited from the existing base class, or at least one new class parameter that does not exist in the existing base class.
Beispiel 3: Das computerimplementierte Verfahren von Beispiel 1, wobei die von jeder Klasse modellierte Daten- oder Funktionskomponente Folgendes ist: eine virtuelle Vorrichtung, die eine Cloud-basierte Umgebung unterstützt, ein Dienst, der in der Cloud-basierten Umgebung verwendet wird, eine Softwarerolle, die durch eine installierte Anwendung in der Cloud-basierten Umgebung durchgeführt wird, ein Datenpaket, das Daten enthält, die während der Bereitstellung oder dem Betrieb der Cloud-basierten Umgebung verwendet werden sollen, oder eine Kombination von einem oder mehreren davon.Example 3: The computer-implemented method of Example 1, wherein the data or functional component modeled by each class is: a virtual device that supports a cloud-based environment, a service that is used in the cloud-based environment, a software role performed by an installed application in the cloud-based environment, a data packet containing data to be used during the provisioning or operation of the cloud-based environment, or a combination of one or more thereof.
Beispiel 4: Das computerimplementierte Verfahren von Beispiel 1, wobei die Spezifikationssprache mindestens eine Abhängigkeit zwischen Klassendefinitionen oder eine Konnektivität zwischen Klassendefinitionen unterstützt und wobei eine Definitionsabhängigkeit zwischen einer ersten Klasse und einer zweiten Klasse eine Bereitstellungsabhängigkeit zwischen jeweiligen Komponenten darstellt, die durch die erste und die zweite Klasse modelliert werden, und wobei eine Wertzuweisung, die eine Instanz einer zweiten Klasse mit einem Klassenparameter einer ersten Klasse verknüpft, eine Konnektivität zwischen jeweiligen Komponenten darstellt, die von der ersten Klasse und der zweiten Klasse modelliert werden.Example 4: The computer-implemented method of Example 1, wherein the specification language supports at least one of dependency between class definitions or connectivity between class definitions, and wherein dependency dependency between a first class and a second class represents dependency dependency between respective components passing through the first and second Class, and wherein a value assignment associating an instance of a second class with a class parameter of a first class represents connectivity between respective components modeled by the first class and the second class.
Beispiel 5: Ein computerimplementiertes Verfahren, das Folgendes umfasst: Empfangen einer Konfigurationsspezifikation zum Konfigurieren einer Cloud-basierten Bereitstellung, wobei die Konfigurationsspezifikation in einer Spezifikationssprache geschrieben ist und eine Instanziierung der jeweiligen Klassendefinitionen einer oder mehrerer Klassen erfordert, wobei jede Klasse eine jeweilige Daten- oder Funktionskomponente der Cloud-basierten Bereitstellung unter Verwendung einer Gruppe von konfigurierbaren Klassenparametern modelliert und die jeweilige Klassendefinition jeder Klasse einen angeforderten Zustand der Daten- oder Funktionskomponente darstellt, die von der Klasse modelliert wird; Ableiten einer Vielzahl von API-Aufrufen (Application Programming Interface) zur Konfiguration der Cloud-basierten Bereitstellung basierend auf den Klassendefinitionen der einen oder mehreren Klassen; Veranlassen, dass die Vielzahl von API-Aufrufen ausgeführt wird, um die Cloud-basierte Bereitstellung zu konfigurieren; Identifizieren einer Vielzahl von Cloud-basierten Bereitstellungen, die jeweils gemäß einer jeweiligen Konfigurationsspezifikation ausgeführt wurden, die in der Spezifikationssprache geschrieben ist; Identifizieren mindestens einer Basisklasse, deren Klassendefinition in einer großen Vielzahl von Cloud-basierten Bereitstellungen verwendet wird; Überwachen der jeweiligen Leistung jeder der großen Vielzahl von Cloud-basierten Bereitstellungen; und Berechnen einer Qualitätsmetrik der mindestens einen Basisklasse basierend auf der aggregierten Leistung der großen Vielzahl von Cloud-basierten Bereitstellungen.Example 5: A computer-implemented method, comprising: receiving a configuration specification to configure a cloud-based deployment, wherein the configuration specification is written in a specification language and requires instantiation of the respective class definitions of one or more classes, each class having a respective data or data class Modeling the cloud-based deployment functional component using a set of configurable class parameters and the respective class definition of each class representing a requested state of the data or functional component modeled by the class; Deriving a plurality of Application Programming Interface (API) calls to configure the cloud-based deployment based on the class definitions of the one or more classes; Causing the plurality of API calls to be executed to configure the cloud-based deployment; Identifying a plurality of cloud-based deployments, each executed according to a respective configuration specification written in the specification language; Identify at least one base class whose class definition is used in a wide variety of cloud-based deployments; Monitoring the respective performance of each of the large variety of cloud-based deployments; and calculating a quality metric of the at least one base class based on the aggregate performance of the large variety of cloud-based deployments.
Beispiel 6: Das computerimplementierte Verfahren von Beispiel 5, wobei die eine oder die mehreren Klassen mindestens eine vorhandene Basisklasse und mindestens eine von der vorhandenen Basisklasse erweitere benutzerdefinierte Klasse umfassen, wobei die benutzerdefinierte Klasse entsprechende Klassenparameter der vorhandenen Basisklasse erbt und die benutzerdefinierte Klasse einen Wert von mindestens einem der Klassenparameter modifiziert, die von der vorhandenen Basisklasse geerbt wurden, oder mindestens einen neuen Klassenparameter umfasst, der in der vorhandenen Basisklasse nicht vorhanden ist.Example 6: The computer-implemented method of Example 5, wherein the one or more classes include at least one existing base class and at least one custom class extended from the existing base class, wherein the custom class inherits corresponding class parameters of the existing base class and the custom class has a value of modified at least one of the class parameters inherited from the existing base class or at least one new class parameter that does not exist in the existing base class.
Beispiel 7: Das computerimplementierte Verfahren von Beispiel 5, wobei die von jeder Klasse modellierte Daten- oder Funktionskomponente Folgendes ist: eine virtuelle Vorrichtung, die eine Cloud-basierte Umgebung unterstützt, ein Dienst, der in der Cloud-basierten Umgebung verwendet wird, eine Softwarerolle, die von einer installierten Anwendung in der Cloud-basierten Umgebung ausgeführt wird, Paket-Holding-Daten, die während der Bereitstellung oder dem Betrieb der Cloud-basierten Umgebung verwendet werden sollen, oder eine Kombination aus einem oder mehreren davon.Example 7: The computer-implemented method of Example 5, wherein the data or functional component modeled by each class is: a virtual device that supports a cloud-based environment, a service that is used in the cloud-based environment, a software role executed by an installed application in the cloud-based environment, packet-holding data to be used during the provisioning or operation of the cloud-based environment, or a combination of one or more thereof.
Beispiel 8: Das computerimplementierte Verfahren von Beispiel 5, wobei die Spezifikationssprache mindestens eine Abhängigkeit zwischen Klassendefinitionen oder eine Konnektivität zwischen Klassendefinitionen unterstützt und wobei eine Definitionsabhängigkeit zwischen einer ersten Klasse und einer zweiten Klasse eine Bereitstellungsabhängigkeit zwischen jeweiligen Komponenten darstellt, die durch die erste und die zweite Klasse modelliert sind und wobei eine Wertzuweisung, die eine Instanz einer zweiten Klasse mit einem Klassenparameter einer ersten Klasse verbindet, eine Konnektivität zwischen den von der ersten Klasse modellierten Komponenten und der zweiten Klasse darstellt.Example 8: The computer-implemented method of Example 5, wherein the specification language supports at least one of dependency between class definitions or connectivity between class definitions, and wherein dependency dependency between a first class and a second class represents dependency dependency between respective components passing through the first and second Class and wherein a value assignment connecting an instance of a second class to a class parameter of a first class is connectivity between the components modeled from the first class and the second class.
Beispiel 9. Computer-implementiertes Verfahren, das Folgendes umfasst: Empfangen einer Konfigurationsspezifikation zum Konfigurieren einer Cloud-basierten Bereitstellung, wobei die Konfigurationsspezifikation in einer Spezifikationssprache geschrieben ist und eine Instanziierung der jeweiligen Klassendefinitionen einer oder mehrerer Klassen erfordert, wobei jede Klasse eine jeweilige Daten- oder Funktionskomponente der Cloud-basierten Bereitstellung unter Verwendung einer Gruppe von konfigurierbaren Klassenparametern modelliert und die jeweilige Klassendefinition jeder Klasse einen angeforderten Zustand der von der Klasse modellierten Daten oder Funktionskomponenten darstellt; Ableiten einer Vielzahl von API-Aufrufen (Application Programming Interface) zur Konfiguration der Cloud-basierten Bereitstellung basierend auf den Klassendefinitionen der einen oder mehreren Klassen; Veranlassen, dass die Vielzahl von API-Aufrufen ausgeführt wird, um die Cloud-basierte Bereitstellung zu konfigurieren; Speichern jeweiliger Klassendefinitionen mehrerer Kernklassen der Spezifikationssprache, wobei jede Kernklasse einer modularen Komponente einer Cloud-basierten Umgebung entspricht, wobei jede Kernklasse mit zusätzlichen Klassenparametern erweitert werden kann, um die jeweilige modulare Komponente zu konfigurieren; Speichern einer Zuordnung zwischen jeder der Kernklassen und einer entsprechenden Gruppe von API-Aufrufen, wobei die jeweilige Gruppe von API-Aufrufen zum Konfigurieren der modularen Komponente der Kernklasse gemäß den Klassenparametern der Kernklasse zugeordnet ist; und Speichern einer Vielzahl von Protokollen zum Modifizieren der jeweiligen Gruppen von API-Aufrufen, die jeder Kernklasse zugeordnet sind, um eine neue Gruppe von API-Aufrufen für eine neue Klassendefinition zu erhalten, die von der Kernklasse abgeleitet ist.Example 9. A computer-implemented method, comprising: receiving a configuration specification to configure a cloud-based deployment, wherein the configuration specification is written in a specification language and requires instantiation of the respective class definitions of one or more classes, each class having a respective data or function component of the cloud-based deployment using a set of configurable class parameters, and the respective class definition of each class represents a requested state of the class-modeled data or functional components; Deriving a plurality of Application Programming Interface (API) calls to configure the cloud-based deployment based on the class definitions of the one or more classes; Causing the plurality of API calls to be executed to configure the cloud-based deployment; Storing respective class definitions of multiple core classes of the specification language, wherein each core class corresponds to a modular component of a cloud-based environment, wherein each core class can be extended with additional class parameters to configure the respective modular component; Storing an association between each of the core classes and a corresponding set of API calls, the respective set of API calls for configuring the modular component being assigned to the core class according to the class parameters of the core class; and storing a plurality of protocols for modifying the respective groups of API calls associated with each core class to obtain a new set of API calls for a new class definition derived from the core class.
Beispiel 10. Das Verfahren von Beispiel 9, wobei das Ableiten der Vielzahl von API-Aufrufen zum Konfigurieren der Cloud-basierten Bereitstellung ferner Folgendes umfasst: Ableiten der Vielzahl von API-Aufrufen basierend auf den jeweiligen Gruppen von API-Aufrufen, die einer oder mehreren der Vielzahl von Kernklassen zugeordnet sind, von denen die eine oder die mehreren Klassen der Konfigurationsspezifikation abgeleitet sind und basierend auf der Vielzahl von Protokollen zum Modifizieren der jeweiligen Gruppen von API-Aufrufen.Example 10. The method of Example 9, wherein deriving the plurality of API calls to configure the cloud-based deployment further comprises: deriving the plurality of API calls based on the respective groups of API calls that one or more are associated with the plurality of core classes from which the one or more classes of the configuration specification are derived, and based on the plurality of protocols for modifying the respective groups of API calls.
Beispiel 11: Das Verfahren von Beispiel 9, wobei die Vielzahl von Protokollen ferner Regeln zum Auferlegen einer Anordnung der Gruppen von API-Aufrufen gemäß Abhängigkeits- und Konnektivitätsbeziehungen umfasst, die in Klassendefinitionen spezifiziert sind, die gemäß der Spezifikationssprache geschrieben sind.Example 11: The method of Example 9, wherein the plurality of protocols further comprises rules for imposing an array of the groups of API calls according to dependency and connectivity relationships specified in class definitions written according to the specification language.
Beispiel 12: Das Verfahren von Beispiel 9, wobei die eine oder mehreren Klassen mindestens eine vorhandene Basisklasse und mindestens eine von der vorhandenen Basisklasse erweitere benutzerdefinierte Klasse umfassen, wobei die benutzerdefinierte Klasse entsprechende Klassenparameter der vorhandenen Basisklasse erbt und die benutzerdefinierte Klasse einen Wert von mindestens dem Klassenparameter modifiziert, der von der vorhandenen Basisklasse geerbt wurde, oder mindestens einen neuen Klassenparameter umfasst, der in der vorhandenen Basisklasse nicht vorhanden ist.Example 12: The method of Example 9, wherein the one or more classes include at least one existing base class and at least one custom class extended from the existing base class, wherein the custom class inherits corresponding class parameters of the existing base class and the custom class has a value of at least that Modifies class parameters inherited from the existing base class, or at least includes a new class parameter that does not exist in the existing base class.
Beispiel 13: Das Verfahren von Beispiel 9, wobei die von jeder Klasse modellierte Daten- oder Funktionskomponente eines von Folgendem ist: eine virtuelle Vorrichtung ist, die eine Cloud-basierte Umgebung unterstützt, ein Dienst, der in der Cloud-basierten Umgebung verwendet wird, eine Softwarerolle, die von einer installierten Anwendung in der Cloud-basierten Umgebung ausgeführt wird, Paket-Holding-Daten, die während des Einsatzes oder Betriebes der Cloud-basierten Umgebung verwendet werden sollen, oder eine Kombination aus einem oder mehreren davon.Example 13: The method of Example 9, wherein the data or functional component modeled by each class is one of: a virtual device that supports a cloud-based environment, a service that is used in the cloud-based environment, a software role executed by an installed application in the cloud-based environment, package holding data to be used during the deployment or operation of the cloud-based environment, or a combination of one or more thereof.
Beispiel 14. Das Verfahren von Beispiel 9, wobei die Spezifikationssprache die Abhängigkeit zwischen Klassendefinitionen unterstützt und eine Definitionsabhängigkeit zwischen einer ersten Klasse und einer zweiten Klasse eine Bereitstellungsabhängigkeit zwischen jeweiligen Komponenten darstellt, die durch die erste und die zweite Klasse modelliert sind.Example 14. The method of Example 9, wherein the specification language supports the dependency between class definitions and a dependency dependency between a first class and a second class represents a dependency dependency between respective components modeled by the first and second classes.
Beispiel 15: Das Verfahren von Beispiel 9, wobei die Spezifikationssprache die Konnektivität zwischen Klassendefinitionen unterstützt und eine Wertzuweisung, die eine Instanz einer zweiten Klasse mit einem Klassenparameter einer ersten Klasse verknüpft, eine Konnektivität zwischen jeweiligen Komponenten darstellt, die von der ersten Klasse und der zweiten Klasse modelliert sind.Example 15: The method of Example 9, wherein the specification language supports connectivity between class definitions and a value assignment associating an instance of a second class with a class parameter of a first class represents connectivity between respective components of the first class and the second Class are modeled.
Beispiel 16: System, das Folgendes umfasst: einen oder mehrere Prozessoren; und einen Speicher mit darauf gespeicherten Befehlen, wobei die Befehle, wenn sie durch den einen oder die mehreren verfahrenoren ausgeführt werden, die verfahrenoren veranlassen, Operationen durchzuführen, das Folgendes umfasst: Empfangen einer Konfigurationsspezifikationzum Konfigurieren einer Cloud-basierten Bereitstellung, wobei die Konfigurationsspezifikation in eine Spezifikationssprache geschrieben wird und eine Instanziierung der jeweiligen Klassendefinitionen einer oder mehrerer Klassen erfordert, wobei jede Klasse eine jeweilige Daten- oder Funktionskomponente der Cloud-basierten Implementierung unter Verwendung von modelliert Eine Gruppe von konfigurierbaren Klassenparametern und die jeweilige Klassendefinition jeder Klasse, die einen angeforderten Zustand der von der Klasse modellierten Daten oder Funktionskomponenten darstellt; Ableiten einer Vielzahl von API-Aufrufe (Application Programming Interface) zur Konfiguration der Cloud-basierten Bereitstellung basierend auf den Klassendefinitionen der einen oder mehreren Klassen; Ausführen der Vielzahl von API-Aufrufen, um die Cloud-basierte Bereitstellung zu konfigurieren; Identifizieren, basierend auf den jeweiligen Klassendefinitionen der einen oder mehreren Klassen, einer Vielzahl von Daten und Funktionskomponenten, die durch die eine oder mehrere Klassen modelliert sind und eine oder mehrere Abhängigkeits- und Konnektivitätsbeziehungen, die aus der Vielzahl von Daten oder Funktionskomponenten bestehen; Ableiten eines Blockdiagramms einer Cloud-basierten Umgebung basierend auf der identifizierten Vielzahl von Daten- und Funktionskomponenten und der identifizierten Abhängigkeits- und Konnektivitätsbeziehungen; Und Triggerereignisse für die dynamische Rekonfiguration der Cloud-basierten Umgebung im Blockdiagramm darstellen.Example 16: A system comprising: one or more processors; and a memory having instructions stored thereon, the instructions, when executed by the one or more agents, causing the operators to perform operations comprising: receiving a configuration specification for configuring a cloud-based deployment, the configuration specification being included in a Specification language is written and requires an instantiation of the respective class definitions of one or more classes, each class a respective data or Cloud Based Implementation Function Component Using Modeled A set of configurable class parameters and the respective class definition of each class representing a requested state of the data or functional components modeled by the class; Deriving a plurality of Application Programming Interface (API) calls to configure the cloud-based deployment based on the class definitions of the one or more classes; Executing the plurality of API calls to configure the cloud-based deployment; Identifying, based on the respective class definitions of the one or more classes, a plurality of data and functional components modeled by the one or more classes and one or more dependency and connectivity relationships consisting of the plurality of data or functional components; Deriving a block diagram of a cloud-based environment based on the identified plurality of data and functional components and the identified dependency and connectivity relationships; And show trigger events for the dynamic reconfiguration of the cloud-based environment in the block diagram.
Beispiel 17: Das System von Beispiel 16, wobei die eine oder die mehreren Klassen mindestens eine vorhandene Basisklasse und mindestens eine von der vorhandenen Basisklasse erweitere benutzerdefinierte Klasse umfassen, wobei die benutzerdefinierte Klasse die jeweiligen Klassenparameter der vorhandenen Basisklasse erbt und die benutzerdefinierte Klasse einen Wert von mindestens einem der der Klassenparameter modifiziert, die aus vorhandenen Basisklasse geerbt werden, oder mindestens einen neuen Klassenparameter umfasst, der in der vorhandenen Basisklasse nicht vorhanden ist.Example 17: The system of Example 16, wherein the one or more classes comprise at least one existing base class and at least one custom class extended from the existing base class, wherein the custom class inherits the respective class parameters of the existing base class and the custom class has a value of at least one of the class parameters inherited from an existing base class, or at least one new class parameter that does not exist in the existing base class.
Beispiel 18. Das System von Beispiel 16, wobei die von jeder Klasse modellierte Daten- oder Funktionskomponente eines von Folgendem ist: eine virtuelle Vorrichtung, die eine Cloud-basierte Umgebung unterstützt, ein Dienst, der in der Cloud-basierten Umgebung verwendet wird, eine Softwarerolle, die von einer installierten Anwendung in der Cloud-basierten Umgebung ausgeführt wird, ein Datenpaket, das Daten speichert, die während der Bereitstellung oder des Betriebs der Cloud-basierten Umgebung verwendet werden sollen, oder eine Kombination aus einem oder mehreren davon.Example 18. The system of Example 16, wherein the data or functional component modeled by each class is one of: a virtual device that supports a cloud-based environment, a service that is used in the cloud-based environment A software role that is executed by an installed application in the cloud-based environment, a data packet that stores data to be used during the provisioning or operation of the cloud-based environment, or a combination of one or more thereof.
Beispiel 19. Das System von Beispiel 16, wobei die Spezifikationssprache mindestens eine Abhängigkeit zwischen Klassendefinitionen und eine Konnektivität zwischen Klassendefinitionen unterstützt und wobei eine Definitionsabhängigkeit zwischen einer ersten Klasse und einer zweiten Klasse eine Bereitstellungsabhängigkeit zwischen jeweiligen Komponenten darstellt, die durch die erste und die zweite Klasse modelliert werden, und wobei eine Wertzuweisung, die eine Instanz einer zweiten Klasse mit einem Klassenparameter einer ersten Klasse verknüpft, eine Konnektivität zwischen jeweiligen Komponenten darstellt, die von der ersten Klasse und der zweiten Klasse modelliert werden.Example 19. The system of Example 16, wherein the specification language supports at least one of a dependency between class definitions and a connectivity between class definitions, and wherein a dependency dependency between a first class and a second class represents a dependency dependency between respective components represented by the first and second classes and wherein a value assignment associating an instance of a second class with a class parameter of a first class represents connectivity between respective components modeled by the first class and the second class.
Beispiel 20. System, das Folgendes umfasst: einen oder mehrere Prozessoren; und einen Speicher mit darauf gespeicherten Befehlen, wobei die Befehle, wenn sie durch den einen oder die mehreren Prozessoren ausgeführt werden, die Prozessoren veranlassen, Operationen durchzuführen, die Folgendes umfassen: Empfangen einer Konfigurationsspezifikation zum Konfigurieren einer Cloud-basierten Bereitstellung, wobei die Konfigurationsspezifikation in einer Spezifikationssprache geschrieben ist und eine Instanziierung der jeweiligen Klassendefinitionen einer oder mehrerer Klassen erfordert, wobei jede Klasse eine jeweilige Daten- oder Funktionskomponente der Cloud-basierten Implementierung unter Verwendung einer Gruppe von konfigurierbaren Klassenparametern modelliert und die jeweilige Klassendefinition jeder Klasse einen angeforderten Zustand der Daten- oder Funktionskomponenten darstellt, die von der Klasse modelliert werden; Ableiten einer Vielzahl von API-Aufrufen (Application Programming Interface) zur Konfiguration der Cloud-basierten Bereitstellung basierend auf den Klassendefinitionen der einen oder mehreren Klassen; Veranlassen, dass die Vielzahl von API-Aufrufen ausgeführt wird, um die Cloud-basierte Bereitstellung zu konfigurieren; Identifizieren einer Vielzahl von Cloud-basierten Bereitstellungen, die jeweils gemäß einer jeweiligen Konfigurationsspezifikation ausgeführt wurden, die in der Spezifikationssprache geschrieben ist; Identifizieren mindestens einer Basisklasse, deren Klassendefinition in der großen Vielzahl von Cloud-basierten Bereitstellungen verwendet wird; Überwachen der jeweiligen Leistung jeder der großen Vielzahl von Cloud-basierten Bereitstellungen; und Berechnen einer Qualitätsmetrik der mindestens einen Basisklasse basierend auf der aggregierten Leistung der großen Vielzahl von Cloud-basierten Bereitstellungen.Example 20. A system comprising: one or more processors; and a memory having instructions stored thereon, the instructions, when executed by the one or more processors, causing the processors to perform operations comprising: receiving a configuration specification to configure a cloud-based deployment, wherein the configuration specification in a specification language and requires instantiation of the respective class definitions of one or more classes, each class modeling a respective data or function component of the cloud-based implementation using a set of configurable class parameters and the respective class definition of each class representing a requested state of the data or functional components modeled by the class; Deriving a plurality of Application Programming Interface (API) calls to configure the cloud-based deployment based on the class definitions of the one or more classes; Causing the plurality of API calls to be executed to configure the cloud-based deployment; Identifying a plurality of cloud-based deployments, each executed according to a respective configuration specification written in the specification language; Identify at least one base class whose class definition is used in the wide variety of cloud-based deployments; Monitoring the respective performance of each of the large variety of cloud-based deployments; and calculating a quality metric of the at least one base class based on the aggregate performance of the large variety of cloud-based deployments.
Beispiel 21. Das System von Beispiel 20, wobei die eine oder mehreren Klassen mindestens eine vorhandene Basisklasse und mindestens eine von der vorhandenen Basisklasse erweitere benutzerdefinierte Klasse umfassen, wobei die benutzerdefinierte Klasse entsprechende Klassenparameter der vorhandenen Basisklasse erbt und die benutzerdefinierte Klasse einen Wert von mindestens einem der Klassenparameter modifiziert, die von der vorhandenen Basisklasse geerbt wurden, oder mindestens einen neuen Klassenparameter umfasst, der in der vorhandenen Basisklasse nicht vorhanden ist.Example 21. The system of Example 20, wherein the one or more classes include at least one existing base class and at least one custom class extended from the existing base class, wherein the custom class inherits corresponding class parameters of the existing base class and the custom class has a value of at least one modifies the class parameter inherited from the existing base class, or at least includes a new class parameter that does not exist in the existing base class.
Beispiel 22: Das System von Beispiel 20, wobei die von jeder Klasse modellierte Daten- oder Funktionskomponente eines von Folgendem ist: eine virtuelle Vorrichtung, die eine Cloud-basierte Umgebung unterstützt, ein Dienst, der in der Cloud-basierten Umgebung verwendet wird, eine Softwarerolle, die von einer installierten Anwendung in der Cloud-basierten Umgebung ausgeführt wird, ein Datenpaket, das Daten speichert, die während der Bereitstellung oder des Betriebs der Cloud-basierten Umgebung verwendet werden sollen, oder eine Kombination aus einem oder mehreren davon. Example 22: The system of Example 20, wherein the data or functional component modeled by each class is one of: a virtual device that supports a cloud-based environment, a service that is used in the cloud-based environment A software role that is executed by an installed application in the cloud-based environment, a data packet that stores data to be used during the provisioning or operation of the cloud-based environment, or a combination of one or more thereof.
Beispiel 23: Das System von Beispiel 20, wobei die Spezifikationssprache mindestens eine Abhängigkeit zwischen Klassendefinitionen und eine Konnektivität zwischen Klassendefinitionen unterstützt und wobei eine Definitionsabhängigkeit zwischen einer ersten Klasse und einer zweiten Klasse eine Bereitstellungsabhängigkeit zwischen jeweiligen Komponenten darstellt, die durch die erste und die zweite Klasse modelliert werden, und wobei eine Wertzuweisung, die eine Instanz einer zweiten Klasse mit einem Klassenparameter einer ersten Klasse verknüpft, eine Konnektivität zwischen jeweiligen Komponenten darstellt, die von der ersten Klasse und der zweiten Klasse modelliert werden.Example 23: The system of Example 20, wherein the specification language supports at least one of a dependency between class definitions and a connectivity between class definitions, and wherein a dependency dependency between a first class and a second class represents a dependency dependency between respective components represented by the first and second classes and wherein a value assignment associating an instance of a second class with a class parameter of a first class represents connectivity between respective components modeled by the first class and the second class.
Beispiel 24. Ein nicht-transitorisches computerlesbares Medium mit darauf gespeicherten Befehlen, wobei die Befehle, wenn sie von einem oder mehreren Prozessoren ausgeführt werden, die Prozessoren veranlassen, Operationen durchzuführen, die Folgendes umfassen: Empfangen einer Konfigurationsspezifikation zum Konfigurieren einer Cloud-basierten Bereitstellung, wobei die Konfigurationsspezifikation in einer Spezifikationssprache geschrieben ist und eine Instanziierung der jeweiligen Klassendefinitionen einer oder mehrerer Klassen erfordert, wobei jede Klasse eine jeweilige Daten- oder Funktionskomponente der Cloud-basierten Implementierung unter Verwendung einer Gruppe von konfigurierbaren Klassenparametern modelliert und die jeweilige Klassendefinition jeder Klasse einen angeforderten Zustand der von der Klasse modellierten Daten- oder Funktionskomponenten darstellt; Ableiten einer Vielzahl von API-Aufrufen (Application Programming Interface) zur Konfiguration der Cloud-basierten Bereitstellung basierend auf den Klassendefinitionen der einen oder mehreren Klassen; Veranlassen, dass die Vielzahl von API-Aufrufen ausgeführt wird, um die Cloud-basierte Bereitstellung zu konfigurieren; Speichern jeweiliger Klassendefinitionen einer Vielzahl von Kernklassen der Spezifikationssprache, wobei jede Kernklasse einer modularen Komponente einer Cloud-basierten Umgebung entspricht, wobei jede Kernklasse mit zusätzlichen Klassenparametern erweitert werden kann, um die jeweilige modulare Komponente zu konfigurieren; Speichern einer Zuordnung zwischen jeder der Kernklassen und einer entsprechenden Gruppe von API-Aufrufen, wobei die jeweilige Gruppe von API-Aufrufen zum Konfigurieren der modularen Komponente dient, die der Kernklasse zugeordnet ist, gemäß den Klassenparametern der Kernklasse; und Speichern einer Vielzahl von Protokollen zum Modifizieren der jeweiligen Gruppen von API-Aufrufen, die jeder Kernklasse zugeordnet sind, um eine neue Gruppe von API-Aufrufen für eine neue Klassendefinition zu erhalten, die von der Kernklasse abgeleitet ist.Example 24. A non-transitory computer-readable medium having instructions stored thereon, the instructions, when executed by one or more processors, causing the processors to perform operations comprising: receiving a configuration specification to configure a cloud-based deployment, wherein the configuration specification is written in a specification language and requires instantiation of the respective class definitions of one or more classes, each class modeling a respective data or function component of the cloud-based implementation using a set of configurable class parameters, and requesting the respective class definition of each class State the data or function components modeled by the class; Deriving a plurality of Application Programming Interface (API) calls to configure the cloud-based deployment based on the class definitions of the one or more classes; Causing the plurality of API calls to be executed to configure the cloud-based deployment; Storing respective class definitions of a plurality of specification-language core classes, each core class corresponding to a modular component of a cloud-based environment, wherein each core class may be augmented with additional class parameters to configure the respective modular component; Storing an association between each of the core classes and a corresponding set of API calls, the respective set of API calls serving to configure the modular component associated with the core class according to the class parameters of the core class; and storing a plurality of protocols for modifying the respective groups of API calls associated with each core class to obtain a new set of API calls for a new class definition derived from the core class.
Beispiel 25: Das computerlesbare Medium von Beispiel 24, wobei das Ableiten der Vielzahl von API-Aufrufen zum Konfigurieren der Cloud-basierten Bereitstellung ferner Folgendes umfasst: Ableiten der Vielzahl von API-Aufrufen basierend auf den jeweiligen Gruppen von API-Aufrufen, die einer oder mehreren der Vielzahl von Kernklassen zugeordnet sind, von denen die eine oder die mehreren Klassen der Konfigurationsspezifikation abgeleitet sind, und basierend auf der Vielzahl von Protokollen zum Modifizieren der jeweiligen Gruppen von API-Aufrufen.Example 25: The computer-readable medium of Example 24, wherein deriving the plurality of API calls to configure the cloud-based deployment further comprises: deriving the plurality of API calls based on the respective groups of API calls that are one or; associated with a plurality of the plurality of core classes from which the one or more classes of the configuration specification are derived, and based on the plurality of protocols for modifying the respective groups of API calls.
Beispiel 26: Das computerlesbare Medium von Beispiel 24, wobei die Vielzahl von Protokollen des Weiteren Regeln zum Auferlegen einer Anordnung der Gruppen von API-Aufrufen gemäß Abhängigkeits- und Konnektivitätsbeziehungen umfasst, die in Klassendefinitionen spezifiziert sind, die gemäß der Spezifikationssprache geschrieben sind.Example 26: The computer-readable medium of Example 24, wherein the plurality of protocols further comprises rules for imposing an array of the groups of API calls according to dependency and connectivity relationships specified in class definitions written according to the specification language.
Beispiel 27: Das computerlesbare Medium von Beispiel 24, wobei die eine oder mehreren Klassen mindestens eine vorhandene Basisklasse und mindestens eine von der vorhandenen Basisklasse erweitere benutzerdefinierte Klasse umfassen, wobei die benutzerdefinierte Klasse entsprechende Klassenparameter der vorhandenen Basisklasse erbt und die benutzerdefinierte Klasse einen Wert von mindestens einem des Klassenparameter modifiziert, die von der vorhandenen Basisklasse geerbt wurden, oder mindestens einen neuen Klassenparameter umfasst, der in der vorhandenen Basisklasse nicht vorhanden ist.Example 27: The computer-readable medium of Example 24, wherein the one or more classes include at least one existing base class and at least one custom class extended from the existing base class, wherein the custom class inherits corresponding class parameters of the existing base class and the custom class has a value of at least one of the class parameters inherited from the existing base class, or at least one new class parameter that does not exist in the existing base class.
Beispiel 28: Das computerlesbare Medium von Beispiel 24, wobei die von jeder Klasse modellierte Daten- oder Funktionskomponente eines von Folgendem ist: eine virtuelle Vorrichtung, die eine Cloud-basierte Umgebung unterstützt, ein Dienst, der in der Cloud-basierten Umgebung verwendet wird, eine Softwarerolle, die von einer installierten Anwendung in der Cloud-basierten Umgebung ausgeführt wird, ein Datenpaket, das Daten speichert, die während der Bereitstellung oder des Betriebs der Cloud-basierten Umgebung verwendet werden sollen, oder eine Kombination aus einem oder mehreren davon.Example 28: The computer-readable medium of Example 24, wherein the data or functional component modeled by each class is one of: a virtual device that supports a cloud-based environment, a service that is used in the cloud-based environment, a software role executed by an installed application in the cloud-based environment, a data packet storing data to be used during deployment or operation of the cloud-based environment, or a combination of one or more thereof.
Beispiel 29: Das computerlesbare Medium von Beispiel 24, wobei die Spezifikationssprache die Abhängigkeit zwischen Klassendefinitionen unterstützt und eine Definitionsabhängigkeit zwischen einer ersten Klasse und einer zweiten Klasse eine Bereitstellungsabhängigkeit zwischen jeweiligen Komponenten, die durch die erste und die zweite Klasse modelliert werden, darstellt.Example 29: The computer-readable medium of Example 24, wherein the specification language supports dependency between class definitions and a dependency dependency between a first class and a second class depicts deployment dependency between respective components modeled by the first and second classes.
Beispiel 30: Das computerlesbare Medium von Beispiel 24, wobei die Spezifikationssprache die Konnektivität zwischen Klassendefinitionen unterstützt und eine Wertzuweisung, die eine Instanz einer zweiten Klasse mit einem Klassenparameter einer ersten Klasse verknüpft, eine Konnektivität zwischen jeweiligen Komponenten darstellt, die von der ersten Klasse und der zweiten Klasse modelliert werden.Example 30: The computer-readable medium of Example 24, wherein the specification language supports connectivity between class definitions and a value assignment associating an instance of a second class with a class parameter of a first class represents connectivity between respective components selected by the first class and the first class class second class are modeled.
Claims (7)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE202016008047.5U DE202016008047U1 (en) | 2016-10-26 | 2016-10-26 | High-level language for specifying configurations of cloud-based deployments |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE202016008047.5U DE202016008047U1 (en) | 2016-10-26 | 2016-10-26 | High-level language for specifying configurations of cloud-based deployments |
Publications (1)
Publication Number | Publication Date |
---|---|
DE202016008047U1 true DE202016008047U1 (en) | 2017-01-26 |
Family
ID=58054671
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE202016008047.5U Active DE202016008047U1 (en) | 2016-10-26 | 2016-10-26 | High-level language for specifying configurations of cloud-based deployments |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE202016008047U1 (en) |
-
2016
- 2016-10-26 DE DE202016008047.5U patent/DE202016008047U1/en active Active
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10241770B2 (en) | Cloud-based deployment using object-oriented classes | |
US10620944B2 (en) | Cloud-based decision management platform | |
DE112015004562B4 (en) | Context-based cloud system for the assurance of security | |
US8918454B2 (en) | Managing rule sets as web services | |
DE102013207608B4 (en) | Instrument software applications for their configuration | |
DE112012000444B4 (en) | Method, system and computer program product for determining an optimal data processing environment for executing an image and method for implementing a corresponding system | |
US9122841B2 (en) | Providing remote application logs for cloud applications | |
DE112012003316T5 (en) | Dynamically acquiring computing resources in a networked computing environment | |
DE102016103713A1 (en) | Detection of virtual machine units based on a catalog | |
DE102020104871A1 (en) | HIGH PERFORMANCE COMPUTE INFRASTRUCTURE AS A SERVICE | |
DE102021130957A1 (en) | RECOMMENDATIONS FOR THE STABILITY OF SOFTWARE UPDATES | |
CN110546615B (en) | Super dynamic JAVA management extension | |
Rahman et al. | A testbed for collecting QoS data of cloud-based analytic services | |
Dillenseger | Clif, a framework based on fractal for flexible, distributed load testing | |
DE202016008047U1 (en) | High-level language for specifying configurations of cloud-based deployments | |
DE112021005848T5 (en) | COORDINATING REQUESTS TRANSFORMED INTO A SCALABLE APPLICATION | |
Ragusa et al. | Running business applications in the Cloud: a use case perspective | |
DE112021006167T5 (en) | AUTOMATIC ADJUSTMENT OF DATA ACCESS POLICIES IN DATA ANALYTICS | |
Makki et al. | Scalable and manageable customization of workflows in multi-tenant saas offerings | |
Borges et al. | Automatic services instantiation based on a process specification | |
US20230315789A1 (en) | Configuration-driven query composition for graph data structures for an extensibility platform | |
Ribeiro | A Dashboard for Decision Support in Self-Adaptive Cloud Applications | |
Stefanidis et al. | MELODIC: Selection and Integration of Open Source to Build an Autonomic Cross-Cloud Deployment Platform | |
Nikolaidou et al. | Facilitating enterprise information system engineering through a UML 2.0 profile: A case study |