-
HINTERGRUND
-
Stand der Technik
-
Die vorliegenden Ausführungsformen betreffen Techniken zum Verwalten von Software-Angeboten. Insbesondere betreffen die vorliegenden Ausführungsformen eine Abhängigkeiten-basierte Auswirkungsanalyse der Software-Angebote unter Verwendung eines mehrdimensionalen Modells der Software-Angebote.
-
Aktuelle Trends im Bereich des computergestützten Rechnens haben gezeigt, dass sich die Prozessierung und der Verbrauch von Daten und Dienstleistungen hin zu Cloud-Rechensystemen verschiebt. Solche Cloud-Rechensysteme ermöglichen es Software-Anbietern, Software-Angebote auf geteilten Infrastruktur-Ressourcen wie z. B. Servern, Netzwerkanlagen, Plattform-Virtualisierungs-Software und/oder Datenzentren zu verteilen, auszuführen und zu verwalten. Ferner können solche Ressourcen dynamisch zugeteilt und/oder dimensioniert werden, was es erlaubt, die Ressourcen als Dienstleistungen zu verbrauchen.
-
Zum Beispiel kann ein Cloud-Rechenanbieter virtuellen Speicher, Netzwerke und/oder Rechenressourcen mehreren Cloud-Rechenkunden zur Verfügung stellen. Die Cloud-Rechenkunden können Software-Angebote auf den virtuellen Ressourcen verteilen und bezahlen den Cloud-Rechenanbieter nur für die Ressourcen, die von den Software-Angeboten konsumiert werden. Daher können die Cloud-Rechenkunden Kapitalausgaben bezüglich Beschaffung, Aufstellen und/oder Verwalten der entsprechenden Hardware und Software vermeiden. Ferner können durch die Zentralisierung und gemeinsame Verwendung von Infrastruktur-Ressourcen die Auslastungsraten der Ressourcen und der Verwaltungsaufwand verbessert werden.
-
Damit kann die Verteilung, Ausführung und Verwaltung von Software-Angeboten durch Mechanismen zum dynamischen Allokieren, Konfigurieren und Überwachen von den im Software-Angebot verwendeten Infrastruktur-Ressourcen vereinfacht werden.
-
ZUSAMMENFASSUNG
-
Die offenbarten Ausführungsformen stellen ein System bereit, dass die Wartung und Ausführung eines Software-Angebotes vereinfacht. Im Betrieb bezieht das System Modelldaten, welche mit einem mehrdimensionalen Modell des Software-Angebots assoziiert sind. Als nächstes verwendet das System die Modelldaten zum Berechnen eines Satzes von Abhängigkeitsgewichten, welche Maße der Abhängigkeit unter einem Satz von Dienstleistungs-Komponenten und einem Satz von Ressourcen, welche von dem Software-Angebot verwendet werden, darstellen. Schließlich verwendet das System die Abhängigkeitsgewichte zum Vereinfachen einer Verwaltung des Software-Angebots.
-
In einigen Ausführungsformen bezieht das System auch eine Aktualisierung für das mehrdimensionale Modell und berechnet die Abhängigkeitsgewichte basierend auf der Aktualisierung erneut.
-
In einigen Ausführungsformen umfassen die Modelldaten zum Berechnen des Satzes von Abhängigkeitsgewichten ein Berechnen eines Satzes von Zentralitätsgewichten für einen Satz von Knoten in dem mehrdimensionalen Modell und ein Verwenden des Satzes von Zentralitätsgewichten als den Satz von Abhängigkeitsgewichten.
-
In einigen Ausführungsformen umfasst ein Berechnen des Satzes von Zentralitätsgewichten für den Satz von Knoten in dem mehrdimensionalen Modell:
- I Bestimmen einer Umgebungsmatrix für den Satz von Knoten;
- II Berechnen eines Eigenvektors, welcher mit einem größten Eigenwert der Umgebungsmatrix assoziiert ist; und
- III Bestimmen der Zentralitätsgewichte aus einem Satz von Komponenten des Eigenvektors.
-
In einigen Ausführungsformen wird der Eigenvektor mit einer iterativen Methode und/oder einer algebraischen Methode berechnet.
-
In einigen Ausführungsformen umfasst das Verwenden der Abhängigkeitsgewichte zum Vereinfachen einer Verwaltung des Software-Angebots ein Verwenden der Abhängigkeitsgewichte zum Bestimmen eines Satzes von Wiederherstellungskosten, welche mit den Dienstleistungs-Komponenten und den Ressourcen assoziiert sind, und/oder ein Verwenden der Abhängigkeitsgewichte zum Bestimmen einer Wiederherstellungssequenz für das Software-Angebot.
-
In einigen Ausführungsformen entspricht die Wiederherstellungssequenz einer absteigenden Sequenz von Abhängigkeitsgewichten.
-
KURZBESCHREIBUNG DER FIGUREN
-
1 zeigt ein Schema eines Systems in Übereinstimmung mit einer Ausführungsform.
-
2 zeigt ein System zum Durchführen einer Abhängigkeiten-basierten Auswirkungsanalyse eines Software-Angebots in Übereinstimmung mit einer Ausführungsform.
-
3 zeigt einen beispielhaften Satz von Knoten in einem mehrdimensionalen Modell eines Software-Angebots in Übereinstimmung mit einer Ausführungsform.
-
4 zeigt ein Ablaufdiagramm, welches den Prozess des Vereinfachens der Wartung und Ausführung eines Software-Angebotes in Übereinstimmung mit einer Ausführungsform darstellt.
-
5 zeigt ein Computersystem in Übereinstimmung mit einer Ausführungsform.
-
In den Figuren beziehen sich dieselben Bezugszeichen auf gleiche Figurenelemente
-
AUSFÜHRLICHE BESCHREIBUNG
-
Die folgende Beschreibung soll es einem Fachmann ermöglichen, die Ausführungsformen herzustellen und zu verwenden und ist im Kontext einer bestimmten Anwendung und deren Anforderungen dargestellt. Diverse Abwandlungen zu den offenbarten Ausführungsformen sind einem Fachmann unmittelbar ersichtlich, und die hierin festgelegten, allgemeinen Prinzipien können auf andere Ausführungsformen und Anwendungen angewendet werden, ohne von dem Geist und der Ausrichtung der vorliegenden Erfindung abzuweichen. Daher ist die vorliegende Erfindung nicht auf die gezeigten Ausführungsformen beschränkt, sondern ist mit der breitesten Ausrichtung zu verstehen, die mit den hierin offenbarten Prinzipien und Merkmalen konsistent ist.
-
Die Datenstrukturen und der Code, welche in dieser ausführlichen Beschreibung beschrieben sind, sind üblicherweise auf einem computer-lesbaren Speichermedium gespeichert, welches ein beliebiges Gerät oder Medium sein kann, das Code und/oder Daten zur Verwendung durch ein Computersystem speichern kann. Das computer-lesbare Speichermedium umfasst, ist jedoch darauf nicht beschränkt, flüchtigen Arbeitsspeicher, nicht-flüchtigen Arbeitsspeicher, magnetische und optische Speichergeräte, wie z. B. Diskettenlaufwerke, magnetische Bänder, CDs (compact disks), DVDs (digital versatile discs oder digital video discs) oder andere derzeit bekannte oder später entwickelte Medien, die in der Lage sind, Code und/oder Daten zu speichern.
-
Die in dieser ausführlichen Beschreibung beschriebenen Verfahren und Prozesse können als Code und/oder Daten ausgeführt sein, welcher bzw. welche auf einem, wie oben beschriebenen computer-lesbaren Speichermedium gespeichert werden können. Wenn ein Computersystem den Code und/oder die Daten, welche auf einem computer-lesbaren Speichermedium gespeichert sind, liest und ausführt, führt das Computersystem die Verfahren und Prozesse aus, welche als Datenstrukturen und Code ausgebildet und auf dem computer-lesbaren Speichermedium gespeichert sind.
-
Ferner können hierin beschriebene Verfahren und Prozesse in Hardwaremodulen oder Vorrichtungen enthalten sein. Diese Module oder Vorrichtungen können umfassen, sind darauf aber nicht beschränkt, ein anwendungsspezifischer integrierter Schaltungschip (ASIC), ein field-programmable gate array (FPGA), ein dedicated oder shared processor, der ein bestimmtes Softwaremodul oder ein Codestück zu einer bestimmten Zeit ausführt und/oder andere Geräte programmierbarer Logik, die bekannt sind oder noch entwickelt werden. Wenn die Hardwaremodule oder Vorrichtungen aktiviert sind, führen diese die Verfahren und Prozesse aus, die in ihnen enthalten sind.
-
Die offenbarten Ausführungsformen stellen ein Verfahren und System zum Vereinfachen der Wartung und Ausführung eines Software-Angebots bereit. Das Software-Angebot kann einer Anwendung entsprechen, die auf einem oder mehreren Servern verteilt ist und auf die über eine Netzwerkverbindung zugegriffen wird. Z. B. kann das Software-Angebot eine Web-Anwendung, eine verteilte Anwendung und/oder eine Web-Dienstleistung für Nutzer des Software-Angebots bereitstellen.
-
Insbesondere stellen die offenbarten Ausführungsformen ein Verfahren und System zur Abhängigkeiten-basierten Auswirkungsanalyse des Software-Angebots unter Verwendung eines mehrdimensionalen Modells des Software-Angebots bereit. Das mehrdimensionale Modell kann einen Satz von Dienstleistungs-Komponenten in dem Software-Angebot, einen Satz von dem im Software-Angebot verwendeten Ressourcen und einen Satz von Abhängigkeiten unter den Dienstleistungs-Komponenten und/oder Ressourcen umfassen. Das mehrdimensionale Modell kann daher die Verteilung, Ausführung und Wartung des Software-Angebots vereinfachen.
-
Um die Abhängigkeiten-basierte Auswirkungsanalyse durchzuführen, können mit dem mehrdimensionalen Modell assoziierte Modelldaten bezogen werden und dazu verwendet werden, einen Satz von Abhängigkeitsgewichten zu berechnen, welche Maße der Abhängigkeit unter einem Satz von Dienstleistungs-Komponenten und einem Satz von darstellen, welche von dem Software-Angebot verwendet werden. Die Abhängigkeitsgewichte können als ein Satz von Zentralitätsgewichten für einen Satz von Knoten in dem mehrdimensionalen Modell berechnet werden. Beispielsweise können die Zentralitätsgewichte durch Bestimmen einer Umgebungsmatrix für den Satz von Knoten, Berechnen eines Eigenvektors, welcher mit einem größten Eigenwert der Umgebungsmatrix assoziiert ist, und Bestimmen der Zentralitätsgewichte aus einem Satz von Komponenten des Eigenvektors berechnet werden. Die Abhängigkeitsgewichte können daher die Gewichtigkeit der Knoten bezüglich der Verbindungen zwischen den Knoten in dem mehrdimensionalen Modell darstellen.
-
Die Abhängigkeitsgewichte können dann zum Vereinfachen einer Verwaltung des Software-Angebots verwendet werden. Zuerst können die Abhängigkeitsgewichte zum Bestimmen eines Satzes von mit den Dienstleistungs-Komponenten und den Ressourcen assoziierten Wiederherstellungskosten verwendet werden. Beispielsweise können die Wiederherstellungskosten einer Dienstleistungs-Komponente und/oder Ressource proportional zu dem Abhängigkeitsgewicht sein, welches mit der Dienstleistungs-Komponente und/oder Ressource assoziiert ist. Die Abhängigkeitsgewichte können ebenfalls zum Bestimmen einer Wiederherstellungssequenz für das Software-Angebot verwendet werden. Beispielsweise kann die Wiederherstellungssequenz einer absteigenden Sequenz der Abhängigkeitsgewichte entsprechen, um die Wiederherstellung von Dienstleistungs-Komponenten und/oder Ressourcen zu priorisieren, welche mit höheren Maßen der Abhängigkeit assoziiert sind.
-
1 zeigt ein Schema eines Systems in Übereinstimmung mit einer Ausführungsform. Wie in 1 gezeigt, umfasst das System eine Verwaltungsvorrichtung 102, eine Modellierungsvorrichtung 104 und eine Zuteilungsvorrichtung 116. Jede dieser Komponenten wird nachfolgend im Detail beschrieben.
-
In einer oder mehreren Ausführungsformen wird das System der 1 zum Verwalten der Verteilung und Ausführung eines Software-Angebots auf einem Satz von Ressourcen (z. B. Ressource 1 122, Ressource M 124, Ressource 1 126, Ressource N 128) verwendet. Das Software-Angebot kann einem Softwareprogramm entsprechen, welches Aufgaben für einen Satz von Nutzern durchführt. Z. B. kann das Software-Angebot den Nutzern ermöglichen, bei Projekten zu kollaborieren, Einkommenssteuern einzureichen, Personal oder Finanzen eines Kleinunternehmens zu verwalten und/oder Datenverarbeitung auf einem Zieldatensatz durchzuführen.
-
Ferner kann das Software-Angebot in einer Client-Server-Architektur implementiert sein. Komponenten des Software-Angebots können auf einem oder mehreren Servern (z. B. in einem Datenzentrum) verteilt und ausgeführt werden und auf die Komponenten kann durch andere Maschinen mit einer lokal installierten, ausführbaren Datei, mit einer Kommandozeile und/oder mit einem Web-Browser und einer Netzwerkverbindung zugegriffen werden. Mit anderen Worten kann das Software-Angebot durch ein Cloud-Rechensystem implementiert sein, auf das über das Internet zugegriffen wird.
-
Um die Ausführung des Software-Angebots zu ermöglichen, können mit der Erzeugung, Verteilung und/oder Ausführung des Software-Angebots assoziierte Nutzer einen Satz von mit dem Software-Angebot assoziierten Anforderungen bestimmen. Die Nutzer können dann Ressourcen (z. B. Ressource 1 122, Ressource M 124, Ressource 1 126, Ressource N 128) in dem Cloud-Rechensystem für Komponenten in dem Software-Angebot allokieren und die allokierten Ressourcen in einer Weise konfigurieren, welche die Ausführung des Software-Angebots derart erlaubt, dass die Anforderungen erfüllt sind. Beispielsweise kann ein Entwicklerteam des Software-Angebots eine Richtlinie bereitstellen, die ein Maß der Verfügbarkeit, Verlässlichkeit, Skalierbarkeit, Sicherheit und/oder Antwortdauer in dem Software-Angebot spezifiziert. Administratoren des Cloud-Rechensystems können die Einhaltung der Richtlinien durch Allokation ausreichender Infrastrukturressourcen für das Software-Angebot und/oder derartiger Konfigurierung der Ressourcen sicherstellen, dass notwendige Maße von Redundanz, Sicherheit und/oder Lastausgleich in dem Software-Angebot bereitgestellt werden.
-
Der Fachmann schätzt es, dass das Cloud-Rechensystem Virtualisierung verwendet, um das Software-Angebot auf einem Satz von geteilten Ressourcen zu verteilen und auszuführen. Insbesondere kann eine Anzahl von Organisationswerkzeugen (z. B. Organisationswerkzeug 1 118, Organisationswerkzeug Z 120) zur Virtualisierung und/oder Zuteilung unterschiedlicher Typen von Ressourcen in dem Cloud-Rechensystem verwendet werden. Beispielsweise kann ein Hypervisor Rechenressourcen durch Erzeugen und Ausführen von virtuellen Maschinen als Abstraktion physischer Server allokieren und/oder verwalten. In ähnlicher Weise kann ein virtueller Filer Speicherressourcen aus einer Vielzahl von Speichergeräten in einem Ressourcenpool kombinieren und logische Speichervolumen aus dem Ressourcenpool allokieren. Schließlich können Netzwerkrouter und/oder Switche Netzwerkressourcen in virtuelle lokale Netzwerke (VLANs) aufteilen, welche physische und/oder virtuelle Rechen- und/oder Speicherressourcen in dem Cloud-Rechensystem miteinander verbinden.
-
Darüber hinaus kann jedes Organisationswerkzeug eine Funktionalität aufweisen, um Ressourcen in Abhängigkeit von Veränderung in dem Software-Angebot und/oder bei Bedarf der Ressourcen erneut zuzuteilen. Beispielsweise kann ein Hypervisor eine neue virtuelle Maschine instanziieren, um das Hinzufügen eines neuen Web-Servers zu dem Software-Angebot zu ermöglichen. Der Hypervisor kann zudem einen Satz von physischen Rechenressourcen (z. B. Prozessor, Arbeitsspeicher, etc.) für die virtuelle Maschine allokieren, um die Ausführung des Web-Servers auf den Ressourcen zu ermöglichen. Schließlich kann der Hypervisor die virtuelle Maschine zu einem anderen Satz physischer Ressourcen verschieben, wenn sich die Ressourcenanforderungen des Web-Servers verändern und/oder die physischen Ressourcen (z. B. Server), welche zum Ausführen des Web-Servers verwendet werden, überlastet sind.
-
Mit anderen Worten kann die Verwendung von Ressourcen durch das Software-Angebot durch eine Anzahl von unterschiedlichen, unabhängigen Organisationswerkzeugen verwaltet werden. Daher kann dem Cloud-Rechensystem eine verständliche Ansicht der Abhängigkeiten zwischen Software-Komponenten in dem Software-Angebot und den Hardware-Ressourcen, welche zum Ausführen der Software-Komponenten verwendet werden, fehlen. Beispielsweise kann das Cloud-Rechensystem den Überblick über für das Software-Angebot allokierte Ressourcen verlieren, wenn die Organisationswerkzeuge damit beginnen, Ressourcen neu zu allokieren und/oder neu zuzuteilen.
-
Ein solches Fehlen von Abhängigkeitsinformation kann Probleme mit dem Verfolgen und Verwalten von Ereignissen und/oder Fehlern in dem Cloud-Rechensystem verursachen. Beispielsweise kann ein Serverausfall in dem Cloud-Rechensystem ein manuelles Eingreifen durch Administratoren erfordern, um den von dem Ausfall betroffenen Satz von Hardware- und Software-Komponenten zu bestimmen und/oder korrigierende Maßnahmen durchzuführen, die eine Erholung von dem Serverausfall ermöglichen.
-
In einer oder mehreren Ausführungsformen reduziert das System aus 1 eine Komplexität, welche mit dem Verwalten von Anforderungen und Abhängigkeiten in dem Software-Angebot assoziiert sind, indem ein mehrdimensionales Modell 108 des Software-Angebots erzeugt und das mehrdimensionale Modell 108 zum Verwalten der Verteilung und Ausführung des Software-Angebots verwendet wird. Wie in 1 gezeigt, kann das mehrdimensionale Modell 108 aus einer Dienstleistungs-Definition 110 des Software-Angebots und einer Ressourcen-Definition 130 von in dem Software-Angebot zur Verwendung verfügbaren Ressourcen erzeugt werden.
-
Die Dienstleistung-Definition 110 kann von einem Nutzer (z. B. Entwickler, Architekt, etc.) bestimmt werden, welcher mit der Erzeugung und/oder Entwicklung des Software-Angebot assoziiert ist. Insbesondere kann die Dienstleistungs-Definition 110 einer logischen Darstellung des Software-Angebots in Form einer Konfiguration, einer Topologie, von Richtlinien und/oder von QoS-Attributen des Software-Angebots entsprechen. Daher können Elemente (z. B. Element 1 112, Element X 114) der Dienstleistungs-Definition eine oder mehrere Stufen, einen Satz von Dienstleistungs-Komponenten und/oder einen Satz von Verbindungen aufweisen. Beispielsweise kann ein Architekt des Software-Angebots die Dienstleistungs-Definition 110 durch Eingabe der Anzahl von Stufen, eines Maßes von Sicherheit, einer Softwareentwicklungs-Lebenszyklusphase und/oder eines Software-Stapels, welche mit dem Software-Angebot assoziiert sind, in eine von der Verwaltungsvorrichtung 102 bereitgestellten Nutzerschnittstelle bereitstellen.
-
Andererseits kann die Ressourcen-Definition 130 von Administratoren und/oder Organisationswerkzeugen des Cloud-Rechensystems bezogen werden und einer logischen Darstellung und/oder Aufteilung verfügbarer Infrastrukturressourcen in dem Cloud-Rechensystem in Form von Positionen, Zuständen und/oder einer Verwendung der Ressourcen entsprechen. Elemente (z. B. Element 1 132, Element Y 134) der Ressourcen-Definition 130 können daher physische und/oder virtuelle Ressourcen, Ressourcen-Cluster, Sicherheitsbereiche, Hosting-Segmente und/oder Positionen in dem Cloud-Rechensystem darstellen. Beispielsweise kann ein Administrator die Ressourcen-Definition 130 mit einem Inventar physischer und/oder virtueller Ressourcen in dem Cloud-Rechensystem manuell populieren, oder die Zuteilungsvorrichtung 116 kann Benachrichtigungen über Änderungen der Ressourcen (z. B. Hinzufügung neuer Ressourcen, Entfernung bestehender Ressourcen) in dem Cloud-Rechensystem von den Organisationswerkzeugen (z. B. Hypervisor, virtuelle Filer) erhalten und die Ressourcen-Definition 130 entsprechend aktualisieren.
-
Um das mehrdimensionale Modell 108 zu erzeugen, kann die Modellierungsvorrichtung 104 einem ersten Satz von Elementen der Dienstleistungs-Definition 110 (z. B. Element 1 112, Element X 114), einen zweiten Satz von Elementen der Ressourcen-Definition 130 (z. B. Element 1 132, Element Y 134) zuordnen. Die Zuordnungen können Abhängigkeiten des ersten Satzes von Elementen von dem zweiten Satz von Elementen darstellen. Beispielsweise kann eine Zuordnung einer Dienstleistungs-Komponente der Dienstleistungs-Definition 110 zu einer Ressource der Ressourcen-Definition 130 die Allokation der Ressource zu der Dienstleistungs-Komponente durch ein Organisationswerkzeug darstellen. Die Erzeugung mehrdimensionaler Modelle für Software-Angebote wird in einer anhängigen Patentanmeldung der Autoren Jerome Labat, Ramachandran Veradharajan, Wilson Lau und Thomas Bishop mit dem Titel „Multidimensional Modeling of Software Offerings”, der NOCH ZUZUORDNENDEN Anmeldenummer und dem NOCH ZUZUORDNENDEN Anmeldetag (Anwaltsaktenzeichennummer INTU-115591) behandelt, welche hierin durch Referenz einbezogen ist.
-
In einer oder mehreren Ausführungsformen umfasst die Erzeugung eines mehrdimensionalen Modells 108 die Identifikation eines Satzes von Anforderungen, welche mit dem Software-Angebot assoziiert sind, aus der Dienstleistungs-Definition 110, sowie die anschließende Allokation einer Untermenge der Ressourcen aus der Ressourcen-Definition 130 für Dienstleistung-Komponenten der Dienstleistungs-Definition 110 basierend auf den Anforderungen. Insbesondere kann die Verwaltungsvorrichtung 102 die Anforderung des Software-Angebots aus einem Satz von Richtlinien der Dienstleistungs-Definition 110 bestimmen und die Anforderungen in einem Strukturplan 106 speichern. Die Richtlinien können eine Softwareentwicklungs-Lebenszyklus-Richtlinie, eine Sicherheits-Richtlinie, eine Software-Vorlage-Richtlinie, eine QoS-Richtlinie und/oder eine strukturelle Richtlinie umfassen. Die Anforderungen können daher die Menge und/oder Konfiguration von Ressourcen spezifizieren, welche zum Erfüllen der Richtlinien benötigt werden.
-
Daraufhin kann die Zuteilungsvorrichtung 116 den Strukturplan 106 verwenden, um einen Satz von Ressourcen zur Verwendung durch das Software-Angebot automatisch zuzuteilen, ohne eine manuelle Konfiguration der Ressourcen durch einen Nutzer (z. B. einen Administrator) zu erfordern. Beispielsweise kann die Zuteilungsvorrichtung 116 den Strukturplan 106 verwenden, um einen Satz von Dienstleistungs-Containern zum Hosten des Software-Angebots zu erzeugen. Die Zuteilungsvorrichtung 116 kann Ressourcen für die Dienstleistungs-Container allokieren, indem die benötigten Mengen und/oder Konfigurationen von Ressourcen aus den entsprechenden Organisationswerkzeugen angefordert werden. Die automatische Zuteilung von Ressourcen an Software-Angebote wird in einer anhängigen Patentanmeldung der Autoren Jerome Labat, Ramachandran Veradharajan, Wilson Lau und Thomas Bishop mit dem Titel „Automatic Provisioning of Resources to Software Offering”, der NOCH ZUZUORDNENDEN Anmeldenummer und dem NOCH ZUZUORDNENDEN Anmeldetag (Anwaltsaktenzeichennummer INTU-115592) behandelt, welche hierin durch Referenz einbezogen ist.
-
Wie zuvor erwähnt, kann das mehrdimensionale Modell 108 Abhängigkeiten zwischen Dienstleistungs-Komponenten der Dienstleistungs-Definition 110 und Ressourcen der Ressourcen-Definition 130 umfassen. Daher kann die Modellierungsvorrichtung 104 das mehrdimensionale Modell 108. erzeugen, in dem von der Zuteilungsvorrichtung 116 allokierte Ressourcen den Dienstleistungs-Komponenten, für die die Ressourcen allokiert wurden, zugeordnet werden.
-
Die Modellierungsvorrichtung 104 kann zudem die Zuordnungen, basierend auf Veränderungen der zugeteilten Ressourcen, aktualisieren. Beispielsweise können sich Dienstleistungs-Komponenten zugeteilte Ressourcen ändern, wenn die Organisationswerkzeuge neue Ressourcen allokieren, gegenwärtig allokierte Ressourcen freigeben und/oder andere Sätze physischer Ressourcen zum Ausführen virtueller Ressourcen (z. B. virtuelle Maschinen, logische Volumen, VLANs, etc.) verwenden. Solche Änderungen können von der Zuteilungsvorrichtung 116 durch Abfragen und/oder Beobachten der Organisationswerkzeuge bezogen werden. Die Änderungen können von der Zuteilungsvorrichtung 116 ebenfalls zur Aktualisierung der Ressourcen-Definition 130 verwendet werden. Die Aktualisierungen können dann durch die Modellierungsvorrichtung 104 auf das mehrdimensionale Modell 108 übertragen werden.
-
Da das mehrdimensionale Modell 108 eine aktuelle Darstellung der Dienstleistungs-Komponenten, Ressourcen und Abhängigkeiten in dem Software-Angebot enthält, kann das System aus 1 die Verwaltung des Software-Angebot innerhalb des Cloud-Rechensystems vereinfachen. Beispielsweise kann das mehrdimensionale Modell 108 die automatische Verteilung des Software-Angebot auf die allokierten Ressourcen, die Identifikation von für das Software-Angebot allokierten Ressourcen, die Identifikation von Fehlern während der Ausführung des Software-Angebots und/oder die Verwaltung von Veränderungen, welche mit dem Software-Angebot oder den Ressourcen assoziiert sind, vereinfachen. Mit anderen Worten kann die Erzeugung und Aktualisierung des mehrdimensionalen Modells 108 eine Komplexität und/oder einen mit einer Konfigurationsverwaltung assoziierten Overhead, Fehlerdiagnosen und -beseitigung, einer Verteilung und/oder Ressourcenzuteilung in dem Software-Angebot reduzieren.
-
In einer oder mehreren Ausführungsformen umfasst das System aus 1 eine Funktionalität zum Durchführen einer Abhängigkeiten-basierten Auswirkungsanalyse des Software-Angebots unter Verwendung eines mehrdimensionalen Modells 108. Während der Abhängigkeiten-basierten Auswirkungsanalyse werden mit dem mehrdimensionalen Modell 108 assoziierte Modelldaten bezogen und zum Berechnen eines Satzes von Abhängigkeitsgewichten verwendet, welche Maße der Abhängigkeit unter den Dienstleistungs-Komponenten und/oder Ressourcen darstellen, welche von dem Software-Angebot verwendet werden. Wie nachfolgend mit Bezug auf die 2 und 3 beschrieben, können die Abhängigkeitsgewichte Zentralitätsgewichten für einen Satz von Knoten in dem mehrdimensionalen Modell 108 entsprechen. Beispielsweise können die Zentralitätsgewichte durch Bestimmen einer Umgebungsmatrix für den Satz von Knoten, Berechnen eines mit einem größten Eigenwert der Umgebungsmatrix assoziierten Eigenvektor und Bestimmen der Zentralitätsgewichte aus einem Satz von Komponenten des Eigenvektors berechnet werden.
-
Zusätzlich können Aktualisierungen für das mehrdimensionale Modell 108 zum erneuten Berechnen der Abhängigkeitsgewichte verwendet werden, so dass die Abhängigkeitsgewichte die aktuellen Maße der Abhängigkeit unter den Dienstleistungs-Komponenten und/oder Ressourcen darstellen. Insbesondere kann die Zuteilungsvorrichtung 116 Ausführungsdaten für das Software-Angebot aus einem oder mehreren Organisationswerkzeugen beziehen und das mehrdimensionale Modell 108 basierend auf den Ausführungsdaten (z. B. unter Verwendung der Modellierungsvorrichtung 104) aktualisieren. Beispielsweise kann die Zuteilungsvorrichtung 116 die Ausführungsdaten verwenden, welche mit einer Änderung in einer Anzahl von für das Software-Angebot allokierten Dienstleistungs-Containern, einer Redimensionierung eines für das Software-Angebot allokierten Dienstleistungs-Containers und/oder einer Repositionierung der Dienstleistungs-Container assoziiert sind, um die Ressourcen-Definition 130 zu aktualisieren. Die Aktualisierungen können von der Modellierungsvorrichtung 104 zum Ändern der Zuordnungen zwischen Elementen des mehrdimensionalen Modells 108 verwendet werden. Die Änderungen können dann aus dem mehrdimensionalen Modell 108 bezogen zum erneuten Berechnen der Abhängigkeitsgewichte verwendet werden.
-
Die Abhängigkeitsgewichte können ebenfalls zum Vereinfachen einer Verwaltung des Software-Angebots verwendet werden. Insbesondere können die Abhängigkeitsgewichte zum Bestimmen eines Satzes von Wiederherstellungskosten und/oder einer Wiederherstellungssequenz für das Software-Angebot verwendet werden. Beispielsweise kann die Wiederherstellungssequenz einer absteigenden Sequenz der Abhängigkeitsgewichte entsprechen, um die Wiederherstellung von Dienstleistungs-Komponenten und/oder Ressourcen zu priorisieren, welche mit hohen Maßen der Abhängigkeit assoziiert sind. Daher können die offenbarten Ausführungsformen den Nutzen aus dem mehrdimensionalen Modell 108 zum Verwalten des Software-Angebots während des Softwareentwicklungs-Lebenszyklus des Software-Angebots erhöhen.
-
2 zeigt ein System zum Durchführen einer Abhängigkeiten-basierten Auswirkungsanalyse eines Software-Angebots in Übereinstimmung mit einer Ausführungsform. Wie in 2 gezeigt, werden mit einem mehrdimensionalen Modell (z. B. mehrdimensionales Modell 108 aus 1) assoziierte Modelldaten 202 eines Software-Angebots durch eine Modellierungsvorrichtung 104 bereitgestellt. Die Modelldaten 202 können ebenfalls durch einen Datenverwaltungs-Mechanismus für das mehrdimensionale Modell (wie beispielsweise eine relationale Datenbank) bereitgestellt werden.
-
Die Modelldaten 202 können dann von einem Abhängigkeitenanalyse-Mechanismus 204 zum Berechnen eines Satzes von Abhängigkeitsgewichten 206–208 verwendet werden, welche die Maße der Abhängigkeiten unter einem Satz von Dienstleistungs-Komponenten und/oder Ressourcen darstellen, welche von dem Software-Angebot verwendetet werden. Der Abhängigkeitenanalyse-Mechanismus 204 kann von der Modellierungsvorrichtung 104, der Verwaltungsvorrichtung 102 und/oder einer anderen Komponente, welche Zugriff auf die Modelldaten 202 hat, bereitgestellt werden.
-
In einer oder mehreren Ausführungsformen werden Abhängigkeitsgewichte 206–208 als ein Satz von Zentralitätsgewichten für einen Satz von Knoten in dem mehrdimensionalen Modell berechnet. Jedes Zentralitätsgewicht kann proportional zu der Anzahl von Verbindungen sein, welche mit dem entsprechenden Knoten in dem mehrdimensionalen Modell assoziiert sind. Da jede eingehende Verbindung zu einem Knoten eine Abhängigkeit von der Dienstleistungs-Komponente und/oder Ressource darstellt, welche durch den Knoten dargestellt ist, kann ein hohes Zentralitätsgewicht für den Knoten ein hohes Maß der Abhängigkeit von der Dienstleistungs-Komponenten und/oder Ressource von anderen Dienstleistungs-Komponenten und/oder Ressourcen darstellen. Beispielsweise können Knoten mit einer hohen Anzahl von eingehenden Verbindungen mit höheren Zentralitätsgewichten assoziiert werden, als Knoten mit einer kleinen Anzahl von eingehenden Verbindungen. Zudem können Knoten mit einem hohen Zentralitätsgewicht stärker zu dem Zentralitätsgewicht eines Knotens mit eingehenden Verbindungen von diesem Knoten beitragen, als Knoten mit niedrigen Zentralitätsgewichten.
-
In einer oder mehreren Ausführungsformen werden die Zentralitätsgewichte durch Bestimmen einer Umgebungsmatrix für den Satz von Knoten, Berechnen eines mit einem größten Eigenwert der Umgebungsmatrix assoziierten Eigenvektor und Bestimmen der Zentralitätsgewichte aus einem Satz von Komponenten des Eigenvektors berechnet. Mit anderen Worten kann jedes Zentralitätsgewicht einer Eigenvektor-Zentralität des entsprechenden Knotens entsprechen, wie dies nachfolgend unter Bezug auf 3 detailliert beschrieben wird. Alternativ können die Zentralitätsgewichte unter Verwendung anderer Arten von Zentralitätsmaßen, wie beispielsweise einem Zentralitätsgrad und/oder Zwischenlage-Zentralität berechnet werden.
-
Wenn die Abhängigkeitsgewichte 206–208 berechnet sind (z. B. als Zentralitätsgewichte), können die Abhängigkeitsgewichte 206–208 von der Verwaltungsvorrichtung 102 zum Vereinfachen einer Verwaltung des Software-Angebots verwendet werden. Insbesondere kann ein Wiederherstellungsverwaltungs-Mechanismus 210 der Verwaltungsvorrichtung 102 die Abhängigkeitsgewichte 206–208 zum Bestimmen eines Satzes von Wiederherstellungskosten verwenden, welche mit den Dienstleistungs-Komponenten und/oder Ressourcen assoziiert sind. Jede der Wiederherstellungskosten kann die Zeit und/oder den mit der Wiederherstellung der entsprechenden Dienstleistungs-Komponente und/oder Ressource assoziierten Overhead darstellen. Da die Wiederherstellungszeit und/oder der Overhead mit der Anzahl von Abhängigkeiten steigen, können die Wiederherstellungskosten proportional zu Abhängigkeitsgewichten 206–208 sein. Z. B. Kann der Wiederherstellungsverwaltungs-Mechanismus 210 Wiederherstellungskosten einer Dienstleistungs-Komponente und/oder Ressourcen in dem Software-Angebot berechnen, wobei das Abhängigkeitsgewicht (z. B. Abhängigkeitsgewichte 206–208) der Dienstleistungs-Komponente und/oder Ressource als Eingabe an eine Exponential-Funktion verwendet wird. Daher können die berechneten Wiederherstellungskosten (z. B. Wiederherstellungszeit und/oder Overhead) für eine Software-Komponente und/oder Ressource exponentiell mit dem Maß der Abhängigkeit anwachsen, welches mit der Software-Komponente und/oder Ressource assoziiert ist.
-
Der Wiederherstellungsverwaltungs-Mechanismus 210 kann ebenfalls die Abhängigkeitsgewichte 206–208 zum Bestimmen einer Wiederherstellungssequenz für das Software-Angebot verwenden. Die Wiederherstellungssequenz kann die Reihenfolge der Wiederherstellung der Dienstleistungs-Komponenten und/oder Ressourcen in dem Fall eines Ausfalls und/oder Desasters spezifizieren. Zudem kann die Wiederherstellungssequenz einer absteigenden Sequenz der Wiederherstellungskosten und/oder Abhängigkeitsgewichten 206–208 entsprechen, um die Wiederherstellung von Dienstleistungs-Komponenten und/oder Ressourcen mit hohem Maß der Abhängigkeit zu priorisieren. Die Wiederherstellungssequenz kann daher die mit weitläufig verwendeten Dienstleistungs-Komponenten und/oder ressourcen-assoziierte Ausfallzeit reduzieren und damit die Anzahl von fehlerhaften Transaktionen reduzieren, welche aus einem Ausfall und/oder Desaster, welche das Software-Angebot betreffen, resultieren.
-
3 zeigt einen exemplarischen Satz von Knoten 302–342 in einem mehrdimensionalen Modell eines Software-Angebots in Übereinstimmung mit einer Ausführungsform. Die Knoten 302–342 können Dienstleistungs-Komponenten und/oder von dem Software-Angebot verwendete Ressourcen darstellen. Z. B. kann der Knoten 302 einen Ressourcen-Cluster darstellen, die Knoten 304–322 können physische Hosts in dem Ressourcen-Cluster darstellen, der Knoten 324 kann eine virtuelle Maschine darstellen, welche auf einem der physischen Hosts ausgeführt wird, und der Knoten 326 kann ein hostendes Segment darstellen, welches den Ressourcen-Cluster enthält. Zudem kann Knoten 328 einen durch die virtuelle Maschine verwendeten Netzwerk-Speicherplatz darstellen, die Knoten 330–334 können Dienstleistungs-Komponenten (z. B. Web-Server, Anwendungs-Server, Datenbanken) in einem Software-Stapel darstellen und der Knoten 336 kann eine Stufe in dem Software-Angebot darstellen. Schließlich kann Knoten 338 eine Ausführungsumgebung für das Software-Angebot darstellen, Knoten 340 kann ein Projekt darstellen, zu dem das Software-Angebot gehört, und Knoten 342 kann eine mit dem Projekt assoziierte Businesseinheit darstellen.
-
Ferner können Verbindungen zwischen den Knoten 302–342 Abhängigkeiten unter den Dienstleistungs-Komponenten und/oder Ressourcen darstellen, welche durch die Knoten 302–342 dargestellt werden. Z. B. kann eine Verbindung zwischen dem Knoten 324 und dem Knoten 320 eine Abhängigkeit der durch den Knoten 324 dargestellten, virtuellen Maschine von dem durch den Knoten 320 dargestellten, physischen Host darstellen. In ähnlicher Weise können die Verbindungen zwischen den Knoten 304–322 und dem Knoten 302 Abhängigkeiten zwischen den durch die Knoten 304–322 dargestellten, physischen Hosts und dem durch den Knoten 302 dargestellten Ressourcen-Cluster darstellen.
-
Somit können die Verbindungen zum Berechnen eines Satzes von Zentralitätsgewichten für die Knoten 302–342 verwendet werden. Wie zuvor erwähnt, können die Zentralitätsgewichte Eigenvektor-Zentralitäten entsprechen, welche die relative Gewichtigkeit der Knoten 302–342 in Relation zueinander darstellen. Insbesondere können die Eigenvektor-Zentralitäten, die „Weite” der Knoten 302–342 bemessen, wobei Verbindungen zu mit hohen Zentralitätsgewichten assoziierten Knoten stärker zu dem Zentralitätsgewicht eines bestimmten Knotens beitragen, als diejenigen Verbindungen zu mit niedrigen Zentralitätsgewichten assoziierte Knoten.
-
Um die Zentralitätsgewichte zu berechnen, kann eine Umgebungsmatrix für die Knoten 302–342 bestimmt werden. Z. B. kann die Umgebungsmatrix eine 21×21 Matrix entsprechen, in welcher ein Element Aij der Matrix auf 1 gesetzt ist, wenn eine Verbindung von dem i-ten Knoten zu dem j-ten Knoten in dem mehrdimensionalen Modell existiert. Andererseits kann die Umgebungsmatrix einer stochastischen Matrix entsprechen, in der die Summe der Werte der Elemente in jeder Spalte der Umgebungsmatrix gleich 1 ist. Darüber hinaus kann die Größe der Umgebungsmatrix angepasst werden, wenn Knoten hinzugefügt und/oder aus dem mehrdimensionalen Modell entfernt werden.
-
Als nächstes kann ein Eigenvektor berechnet werden, welcher mit dem größten Eigenwert der Umgebungsmatrix assoziiert ist. Der Eigenvektor und/oder Eigenwert kann unter Verwendung einer iterativen Methode, wie beispielsweise einer Potenzmethode oder unter Verwendung einer algebraischen Methode berechnet werden.
-
Schließlich können die Zentralitätsgewichte aus einem Satz von Komponenten des Eigenvektors bestimmt werden. Insbesondere kann der mit dem größten Eigenwert assoziierte Eigenvektor positive, reale Zahlen und die gleiche Anzahl von Komponenten wie die Anzahl der Knoten 302–342 in dem mehrdimensionalen Modell enthalten. Die i-te Komponente des Eigenvektors kann daher dem Zentralitätsgewicht für den i-ten Knoten in dem mehrdimensionalen Modell entsprechen.
-
Wie in 3 gezeigt, ist jeder Knoten 302–342 mit einem Zentralitätsgewicht assoziiert, welches die relative Gewichtigkeit des Knotens in dem mehrdimensionalen Modell darstellt. Z. B. kann der Knoten 302 ein hohes Zentralitätsgewicht von „150” aufweisen, da eine große Anzahl von durch die Knoten 304–322 dargestellten, physischen Hosts Abhängigkeiten von (z. B. gehören zu) dem durch den Knoten 302 dargestellten Ressourcen-Cluster aufweisen. Die Verbindung des Knotens 302 und/oder anderer Knoten mit hohen Zentralitätsgewichten zu den Knoten 326 kann dann verursachen, dass der Knoten 326 das höchste Zentralitätsgewicht (z. B. „6000”) in dem mehrdimensionalen Modell aufweist. Andererseits können andere Knoten (z. B. Knoten 304–324, Knoten 328, Knoten 336–340) , verglichen mit dem Knoten 302 oder dem Knoten 326, relativ niedrige Zentralitätsgewichte aufweisen, da die anderen Knoten mit relativ wenigen Verbindungen und/oder Verbindungen geringer Gewichtigkeit zu anderen Knoten assoziiert sind.
-
Nachdem die Zentralitätsgewichte berechnet sind, können die Zentralitätsgewichte als ein Satz von Abhängigkeitsgewichten verwendet werden, welche Maße der Abhängigkeit unter den Dienstleistungs-Komponenten und/oder Ressourcen, welche durch die Knoten 302–342 dargestellt sind, darstellen. Die Abhängigkeitsgewichte können dann zum Vereinfachen einer Verwaltung des Software-Angebots verwendet werden.
-
Zuerst können die Zentralitäts- und/oder Abhängigkeitsgewichte zum Bestimmen eines Satzes von Wiederherstellungskosten verwendet werden, welche mit den Dienstleistungs-Komponenten und/oder Ressourcen assoziiert sind. Jede der Wiederherstellungskosten kann die Menge der Zeit und/oder des Overheads darstellen, welche mit einer Wiederherstellung der entsprechenden Dienstleistungs-Komponente und/oder Ressource von einem Versagen assoziiert sind. Daher kann eine Dienstleistungs-Komponente und/oder Ressource mit einem hohen Abhängigkeitsgewicht ebenfalls mit hohen Wiederherstellungskosten assoziiert werden. Z. B. kann ein Versagen in einer ersten Ressource mit einem hohen Abhängigkeitsgewicht ein Versagen in mehreren Dienstleistungs-Komponenten und/oder Ressourcen verursachen, welche von der ersten Ressource abhängen. Daher kann eine Erholung von dem Versagen die Wiederherstellung der ersten Ressource sowie die Wiederherstellung der Dienstleistungs-Komponenten und/oder Ressourcen mit Abhängigkeiten von dieser Ressource erfordern. Im Gegensatz dazu kann ein Versagen in einer zweiten Ressource mit einem niedrigen Abhängigkeitsgewicht wenig bis kein Versagen anderer Dienstleistungs-Komponenten und/oder Ressourcen verursachen und damit weniger Wiederherstellungszeit und/oder Aufwand erfordern als das Versagen der ersten Ressource.
-
Als nächstes können die Zentralitäts- und/oder Abhängigkeitsgewichte zum Bestimmen einer Wiederherstellungssequenz für das Software-Angebot verwendet werden. Die Wiederherstellungssequenz kann einer absteigen Sequenz der Zentralitäts- und/oder Abhängigkeitsgewichte entsprechen. Z. B. kann die Wiederherstellungssequenz die Wiederherstellung des durch den Knoten 312 dargestellten, physischen Hosts vor der Wiederherstellung des durch den Knoten 310 dargestellten, physischen Hosts spezifizieren, da die Wiederherstellung des physischen Hosts 312 die Wiederherstellung von sieben virtuellen Maschinen ermöglicht, wohingegen die Wiederherstellung des physischen Hosts 310 die Wiederherstellung von lediglich 5 virtuellen Maschinen ermöglicht. Mit anderen Worten kann die Wiederherstellungssequenz die Anzahl der mit einem Ausfall und/oder Desaster assoziierten, fehlerhaften Transaktionen reduzieren, welche das Software-Angebot durch Reduktion der Ausfallzeit solcher Dienstleistungs-Komponenten und/oder Ressourcen betrifft, von denen eine große Anzahl von anderen Dienstleistungs-Komponenten, Ressourcen und/oder Software-Angeboten abhängen.
-
4 zeigt ein Ablaufdiagramm, welches den Prozess des Vereinfachens der Wartung und Ausführung eines Software-Angebotes in Übereinstimmung mit einer Ausführungsform darstellt. In einer oder mehreren Ausführungsformen können ein oder mehrere der Schritte ausgelassen, wiederholt und/oder in einer anderen Reihenfolge durchgeführt werden. Entsprechend sollte die spezielle Anordnung der Schritte, wie sie in 4 gezeigt ist, nicht erachtet werden die Erfindung darauf zu beschränken.
-
Zuerst werden mit einem mehrdimensionalen Modell des Software-Angebots assoziierte Modelldaten bezogen (Schritt 402). Die Modelldaten können durch eine Modellierungsvorrichtung (z. B. Modellierungsvorrichtung 104 aus 1) und/oder durch einen Datenverwaltungs-Mechanismus, wie beispielsweise eine relationale Datenbank bereitgestellt werden. Als nächstes werden die Modelldaten zum Berechnen eines Satzes von Abhängigkeitsgewichten verwendet, welche Maße der Abhängigkeit unter einem Satz von Dienstleistungs-Komponenten und einem Satz von Ressourcen darstellen, welche von dem Software-Angebot verwendetet werden (Schritt 404).
-
Die Abhängigkeitsgewichte können durch Berechnen eines Satzes von Zentralitätsgewichten für einen Satz von Knoten in dem mehrdimensionalen Modell und unter Verwendung des Satzes von Zentralitätsgewichten als den Satz von Abhängigkeitsgewichten berechnet werden. Z. B. können die Abhängigkeitsgewichte einer Eigenvektor-Zentralität entsprechen, welche durch Bestimmen einer Umgebungsmatrix für den Satz von Knoten, Berechnen eines mit dem größten Eigenwert der Umgebungsmatrix assoziierten Eigenvektor und Bestimmen der Eigenwertzentralität von Komponenten des Eigenvektors berechnet werden. Zudem kann der Eigenvektor unter Verwendung einer iterativen Methode und/oder einer algebraischen Methode berechnet werden.
-
Die Abhängigkeitsgewichte können dann zum Vereinfachen einer Verwaltung des Software-Angebots verwendet werden (Schritt 406). Z. B. können die Abhängigkeitsgewichte zum Bestimmen eines Satzes von Wiederherstellungskosten verwendet werden, welche mit den Dienstleistungs-Komponenten und/oder Ressourcen assoziiert sind. Die Abhängigkeitsgewichte können ebenfalls zum Bestimmen einer Wiederherstellungssequenz für das Software-Angebot verwendet werden.
-
Änderungen an dem Software-Angebot können ebenfalls während einer Verwendung der Abhängigkeitsgewichte zu einer Verwaltung des Software-Angebots vorgenommen werden (Schritt 408). Z. B. können Dienstleistungs-Container in dem Software-Angebot in ihrer Anzahl, Größe und/oder Position in Abhängigkeit von Änderungen in den Richtlinien des Software-Angebots und/oder der Verfügbarkeit der Ressourcen vorgenommen werden. Wenn Änderungen an dem Software-Angebot vorgenommen wurden, wird eine Aktualisierung für das mehrdimensionale Modell bezogen (Schritt 410) und die Abhängigkeitsgewichte werden basierend auf der Aktualisierung erneut berechnet (Schritt 412). Wenn keine Änderungen an dem Software-Angebot vorgenommen wurden, werden die Abhängigkeitsgewichte nicht erneut berechnet.
-
Die Abhängigkeitsgewichte können weiterhin verwendet werden (Schritt 414). Z. B. können die Abhängigkeitsgewichte weiterhin zum Vereinfachen einer Verwaltung des Software-Angebots während des Softwareentwicklungs-Lebenszyklus des Software-Angebotes verwendet werden. Wenn die Abhängigkeitsgewichte verwendet werden sollen, werden die Abhängigkeitsgewichte zum Vereinfachen einer Verwaltung des Software-Angebotes verwendet (Schritt 406), und Änderungen an dem Software-Angebot (Schritt 408) werden durch die Abhängigkeitsgewichte ausgedrückt (Schritte 410–412). Die Abhängigkeitsgewichte können daher eine Verwaltung des Software-Angebotes unter Verwendung einer aktuellen Darstellung der Maße der Abhängigkeit unter Dienstleistungs-Komponenten und/oder Ressourcen in dem Software-Angebot ermöglichen.
-
5 zeigt ein Computersystem 500 in Übereinstimmung mit einer Ausführungsform. Computersystem 500 kann einer Vorrichtung entsprechen, welche einen Prozessor 502, einen Arbeitsspeicher 504, einen Speicher 506 und/oder andere in einem elektronischen Rechengerät befindliche Komponenten umfasst. Prozessor 502 kann eine parallele Prozessierung und/oder eine multi-threaded Operation mit anderen Prozessoren in dem Computersystem 500 unterstützen. Computersystem 500 kann ebenfalls Eingabe/Ausgabe (I/O) Geräte, wie beispielsweise eine Tastatur 508, eine Maus 510 und eine Anzeige 512 aufweisen.
-
Computersystem 500 kann eine Funktionalität zum Ausführen unterschiedlicher Komponenten der vorliegenden Ausführungsformen aufweisen. Insbesondere kann Computersystem 500 ein Betriebssystem (nicht gezeigt) aufweisen, welches die Verwendung von Hardware- und Software-Ressourcen in dem Computersystem 500 sowie eine oder mehrere Anwendungen koordiniert, die spezielle Aufgaben für den Nutzer durchführen. Um Aufgaben für den Nutzer durchzuführen, können Anwendungen die Verwendung von Hardware-Ressourcen im Computersystem 500 von dem Betriebssystem erlangen sowie mit dem Nutzer über ein Hardware- und/oder Software-Framework interagieren, welches von dem Betriebssystem bereitgestellt wird.
-
In einer oder mehreren Ausführungsformen stellt das Computersystem 500 ein System zur Vereinfachung der Wartung und Ausführung eines Software-Angebots bereit. Das System kann einen Abhängigkeitenanalyse-Mechanismus umfassen, welcher mit einem mehrdimensionalen Modell des Software-Angebots assoziierte Modelldaten bezieht und die Modelldaten zum Berechnen eines Satzes von Abhängigkeitsgewichten verwendet, welche Maße von Abhängigkeiten unter einem Satz von Dienstleistungs-Komponenten und einem Satz von Ressourcen darstellen, welche von dem Software-Angebot verwendetet werden. Das System kann zudem eine Verwaltungsvorrichtung umfassen, welche die Abhängigkeitsgewichte verwendet, um eine Verwaltung des Software-Angebots zu vereinfachen.
-
Zusätzlich kann eine oder können mehrere Komponenten des Computersystems 500 voneinander entfernt positioniert und mit anderen Komponenten über ein Netzwerk verbunden sein. Teile der vorliegenden Ausführungsformen (z. B. Abhängigkeitenanalyse-Mechanismus, Verwaltungsvorrichtung, etc.) können ebenso an unterschiedlichen Knoten eines verteilten Systems, welches die Ausführungsformen implementiert, positioniert sein. Beispielsweise können die vorliegenden Ausführungsformen mittels eines Cloud-Rechensystems implementiert sein, welches die Verteilung, Ausführung und Wartung eines Software-Angebots verwaltet.
-
Die vorangegangenen Beschreibungen der unterschiedlichen Ausführungsformen wurden lediglich zum Zwecke der Illustration und Beschreibung dargestellt. Diese erheben nicht den Anspruch, erschöpfend zu sein oder die vorliegende Erfindung auf die offenbarten Formen zu begrenzen. Dementsprechend sind dem Fachmann Modifikationen und Varianten offensichtlich. Zudem ist die obige Offenbarung nicht dazu gedacht, die vorliegende Erfindung einzuschränken.