[go: up one dir, main page]

DE102009057401B3 - Betriebsverfahren für einen Rechner mit performance-Optimierung durch Gruppieren von Applikationen - Google Patents

Betriebsverfahren für einen Rechner mit performance-Optimierung durch Gruppieren von Applikationen Download PDF

Info

Publication number
DE102009057401B3
DE102009057401B3 DE102009057401A DE102009057401A DE102009057401B3 DE 102009057401 B3 DE102009057401 B3 DE 102009057401B3 DE 102009057401 A DE102009057401 A DE 102009057401A DE 102009057401 A DE102009057401 A DE 102009057401A DE 102009057401 B3 DE102009057401 B3 DE 102009057401B3
Authority
DE
Germany
Prior art keywords
application
computer
container
applications
group
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.)
Expired - Fee Related
Application number
DE102009057401A
Other languages
English (en)
Inventor
Antonius Ax
Detlef Becker
Karlheinz Dorn
Subrata Sinha
Vladyslav Dr. Ukis
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Siemens Healthcare GmbH
Original Assignee
Siemens AG
Siemens Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Siemens AG, Siemens Corp filed Critical Siemens AG
Priority to DE102009057401A priority Critical patent/DE102009057401B3/de
Priority to US12/958,666 priority patent/US8776068B2/en
Application granted granted Critical
Publication of DE102009057401B3 publication Critical patent/DE102009057401B3/de
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Economics (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • Educational Administration (AREA)
  • Development Economics (AREA)
  • Game Theory and Decision Science (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

Betriebsverfahren für einen Rechner, der auf Anforderung einer Anzahl von Benutzern (10) im Rahmen seines Betriebssystems (11) eine Anzahl von komplexen Aufgaben (12) abarbeitet, wobei jede komplexe Aufgabe (12) von mindestens einem der Benutzer (10) anforderbar ist,
– wobei der Rechner im Rahmen der Ausführung jeder komplexen Aufgabe (12) eine Anzahl von als Container (16) ausgebildeten Prozessen (16) kreiert,
– wobei der Rechner in jeden der im Rahmen der Ausführung der jeweiligen komplexen Aufgabe (12) kreierten Container (16) mindestens eine Applikation (14) lädt,
– wobei der Rechner die im Rahmen der Ausführung der jeweiligen komplexen Aufgabe (12) in die Container (16) geladenen Applikationen (14) zu mindestens einer Applikationsgruppe (13) verknüpft,
– wobei der Rechner in dem Fall, dass er im Rahmen der Ausführung der jeweiligen komplexen Aufgabe (12) mehrere Applikationsgruppen (13) bildet, diese Applikationsgruppen (13) zu einer Sequenz (15) von Applikationsgruppen (13) verkettet,
– wobei...

Description

  • Die vorliegende Erfindung betrifft ein Betriebsverfahren für einen Rechner, der auf Anforderung einer Anzahl von Benutzern im Rahmen seines Betriebssystems eine Anzahl von komplexen Aufgaben abarbeitet, wobei jede komplexe Aufgabe von mindestens einem der Benutzer anforderbar ist,
    • – wobei der Rechner im Rahmen der Ausführung jeder komplexen Aufgabe eine Anzahl von als Container ausgebildeten Prozessen kreiert,
    • – wobei der Rechner in jeden der im Rahmen der Ausführung der jeweiligen komplexen Aufgabe kreierten Container mindestens eine Applikation lädt,
    • – wobei der Rechner die im Rahmen der Ausführung der jeweiligen komplexen Aufgabe in die Container geladenen Applikationen zu mindestens einer Applikationsgruppe verknüpft,
    • – wobei der Rechner in dem Fall, dass er im Rahmen der Ausführung der jeweiligen komplexen Aufgabe mehrere Applikationsgruppen bildet, diese Applikationsgruppen zu einer Sequenz von Applikationsgruppen verkettet,
    • – wobei innerhalb der Sequenz unmittelbar aufeinander folgende Applikationsgruppen sich durch mindestens eine Applikation unterscheiden,
    • – wobei im Falle einer einzigen Applikationsgruppe die Applikationsgruppe die jeweilige komplexe Aufgabe darstellt und im Falle einer Sequenz von Applikationsgruppen die Sequenz von Applikationsgruppen die jeweilige komplexe Aufgabe darstellt.
  • Die vorliegende Erfindung betrifft weiterhin ein Computerprogramm, das Maschinencode umfasst, der von einem Rechner unmittelbar abarbeitbar ist und dessen Abarbeitung durch den Rechner bewirkt, dass der Rechner ein derartiges Betriebsverfahren ausführt.
  • Container sind speziell ausgestaltete Prozesse, in die eine Anzahl von Applikationen geladen und dort abgearbeitet werden können. Container sind Fachleuten als solche bekannt.
  • Mittels der Verknüpfung der Applikationen zu Applikationsgruppen wird festgelegt, welche Applikation mit welcher anderen Applikation auf welche Art und Weise zusammenwirkt. Dies betrifft insbesondere den Datenaustausch und den gegenseitigen Aufruf. Das Verknüpfen von Applikationen zu Applikationsgruppen ist Fachleuten ebenfalls bekannt.
  • Eine Sequenz von Applikationsgruppen ist eine Abfolge von Applikationsgruppen. Das Terminieren einer jeweiligen Applikationsgruppe erfolgt in der Regel auf Grund einer entsprechenden Eingabe des Benutzers. In diesem Fall wird automatisch zur nächsten Applikationsgruppe übergegangen bzw. im Falle der letzten Applikationsgruppe die Sequenz beendet. Auch Sequenzen von Applikationsgruppen sind Fachleuten bekannt.
  • Die oben genannten Gegenstände sind allgemein bekannt. Sie werden in vielen Arbeitsgebieten eingesetzt, unter anderem auch bei der Erfassung, Aufbereitung und Auswertung der Daten bildgebender medizintechnischer Systeme (sogenannter medizinischer Modalitäten).
  • Medizinische Modalitäten generieren bei Patientenuntersuchungen immer größer werdende Datenmengen. Diese Datenmengen werden von Ärzten analysiert, um Patientenbefunde zu erstellen. Für die Analyse werden hochspezielle medizinische Softwareapplikationen (= komplexe Aufgaben im Sinne der vorliegenden Erfindung) eingesetzt, welche die Datenmengen in einer für den Arzt geeigneten Form darstellen können.
  • Die Softwareapplikationen sind für die Ärzte nur dann von Vorteil, wenn sie eine ausgezeichnete performance aufweisen. Insbesondere müssen die Funktionalitäten der Datenladung und Datenverarbeitung ohne nennenswerte Verzögerungen ablaufen.
  • Nur dann wird von den Ärzten ein Vorteil bei der Befundung unter Verwendung der Softwareapplikationen erkannt.
  • Die von den Applikationen zu verarbeitenden Datenmengen werden immer größer. Ihre Verarbeitung und auch ihr Laden erfordern deswegen immer größere Zeiten. Daher stellt sich das Problem der performance-Optimierung.
  • Die komplexen Aufgaben werden im Stand der Technik in der Regel auf Servern abgearbeitet. Für medizinische Anwendungen existieren Server, welche insbesondere die rechenintensive Businesslogik der komplexen Aufgaben umfassen.
  • Im Stand der Technik beschränken sich performance-Optimierungen bei derartigen Servern in der Regel auf das sogenannte farming. Beim farming werden mehrere physikalische Server verwendet, auf denen stets die gleiche Software abläuft. Eine spezielle Einrichtung – der sogenannte load balancer – fragt bei jedem zugehörigen Server dessen momentane Last ab. Alle Anfragen an die Gemeinschaft der Server werden zunächst vom load balancer entgegen genommen, der sie dann jeweils zu demjenigen Server weiterleitet, der zu diesem Zeitpunkt die geringste Auslastung aufweist. Durch farming kann daher eine performance-Verbesserung dadurch erreicht werden, dass mehrere Server parallel unter optimaler Lastverteilung die komplexen Aufgaben der Benutzer bearbeiten.
  • Performance-Optimierungen innerhalb eines Servers bzw. allgemein innerhalb eines Rechners sind weniger bekannt. Sie sind in vielen Fällen nicht ganzheitlich, sondern decken nur einen bestimmten Bereich im Server/Rechner ab. So ist beispielsweise in der älteren deutschen Patentanmeldung „Verfahren zur Verringerung der Wartezeit bei erstmaliger Durchführung von Arbeitsschritten” der Siemens AG, amtliches Aktenzeichen beim Deutschen Patent- und Markenamt 10 2009 043 253.1 , Anmeldetag 28.09.2009, ein Betriebsverfahren für einen Rechner erläutert, bei dem der Rechner als Container ausgebildete Prozesse startet, obwohl der Prozess noch nicht von einem Benutzer angefordert ist, und in den Container Applikationen lädt, die von dem Benutzer voraussichtlich benötigt werden.
  • Die genannte deutsche Patentanmeldung ist am Anmeldetag der vorliegenden Erfindung noch nicht veröffentlicht und stellt daher keinen allgemein bekannten Stand der Technik dar.
  • Aus der US 2005/246678 A1 ist ein Betriebsverfahren für einen Rechner bekannt, der auf Anforderung einer Anzahl von Benutzern im Rahmen seines Betriebssystems eine Anzahl von komplexen Aufgaben abarbeitet, wobei jede komplexe Aufgabe von mindestens einem Benutzer anforderbar ist. Der Rechner kreiert im Rahmen der Ausführung jeder komplexen Aufgabe bereits vor deren Anforderung durch einen Benutzer eine Anzahl von als Container ausgebildeten Prozessen und lädt in jeden Container mindestens eine Applikation. Im Rahmen der Abarbeitung der komplexen Aufgaben terminiert der Rechner nach Zuordnung zu einem der Benutzer beim Wechsel von einer Applikation zu einer anderen Applikation die noch ausgeführte Applikation nur dann, wenn diese nicht suspendierbar ist. Anderenfalls suspendiert der Rechner die entsprechende Applikation.
  • Jedem Prozess, der vom Betriebssystem des Rechners kreiert und verwaltet wird, werden vom Betriebssystem Ressourcen des Rechners zugewiesen. Dies gilt unabhängig davon, ob der Prozess als Container ausgebildet ist oder nicht. Es ist daher von Vorteil, die Anzahl an Prozessen so gering wie möglich zu halten. Unter dem Gesichtspunkt der Ressourcenoptimierung wäre es daher optimal, möglichst viele Applikationen in einen einzigen Container zu laden.
  • Je mehr Applikationen in einen einzigen Container geladen werden, desto aufwändiger gestaltet sich die containerinterne Verwaltung der Applikationen. Auch wird das Arbeitsverhalten des Containers instabiler. Unter dem Gesichtspunkt der containerinternen Komplexität und Stabilität wäre es daher optimal, in jeden Container so wenige Applikationen wie möglich zu laden, im Extremfall nur eine einzige Applikation.
  • Wenn eine Applikation in einen Container geladen wird, benötigt das Laden (= Starten) der Applikation gewisse Zeit. Ebenso benötigt das Beenden (= Terminieren) der Applikation gewisse Zeit. Das erstmalige Starten der Applikation kann (selbstverständlich) nicht vermieden werden. Es ist jedoch effizienter, wenn die Applikation später nicht terminiert wird, sondern nur suspendiert wird, so dass sie später wieder aufgegriffen (= resume) werden kann. Die Begriffe „suspend” und „resume” haben für einen Computerfachmann eine fest definierte Bedeutung.
  • Es gibt Applikationen, bei denen das Suspendieren und Wiederaufgreifen (englisch: suspend and resume) nicht möglich ist. Derartige Applikationen müssen stets terminiert und später gegebenenfalls neu gestartet werden. In vielen Fällen ist ein suspend-resume-Zyklus jedoch prinzipiell möglich. Ob ein suspend-resume-Zyklus konkret möglich ist, kann jedoch von weiteren Faktoren abhängen. Insbesondere kann die Frage davon abhängen, ob und gegebenenfalls welche andere Applikationen in den gleichen Container geladen sind und wie die Applikationen miteinander zusammenwirken.
  • Die Aufgabe der vorliegenden Erfindung besteht darin, Möglichkeiten zu schaffen, bei denen eine von einem Benutzer angeforderte komplexe Aufgabe unter Berücksichtigung der oben genannten Umstände in zeitoptimierter Weise abgearbeitet werden kann.
  • Die Aufgabe wird durch ein Betriebsverfahren mit den Merkmalen des Anspruchs 1 gelöst. Vorteilhafte Ausgestaltungen des erfindungsgemäßen Betriebsverfahrens sind Gegenstand der abhängigen Ansprüche 2 bis 6.
  • Erfindungsgemäß ist vorgesehen, ein Betriebsverfahren der eingangs genannten Art dadurch auszugestalten,
    • – dass dem Rechner ein Vorstartniveau vorgegeben ist,
    • – dass das Vorstartniveau den Wert leerer Container, den Wert Applikation und mindestens einen höheren Wert aufweisen kann und der höhere Wert einem der Werte Applikationsgruppe, Sequenz, Einzelbenutzer oder Benutzermehrzahl entspricht,
    • – dass jeder Applikation ein jeweiliges Reifeniveau zugeordnet ist, das einen der Werte nicht suspendierbar, suspendierbar, aber nur allein im Container ablauffähig, suspendierbar und mit anderen Applikationen im selben Container ablauffähig oder suspendierbar und in mehreren Konfigurationen mit anderen Applikationen im selben Container ablauffähig aufweist,
    • – dass der Rechner bereits vor der Anforderung der Abarbeitung der komplexen Aufgaben iterativ jeweils einen Vorstart einer dem Vorstartniveau entsprechenden Einheit vornimmt,
    • – dass der Rechner in dem Fall, dass das Vorstartniveau den Wert leerer Container aufweist, im Rahmen des Vorstarts zwar einen Container kreiert, in den Container aber noch keine Applikation lädt,
    • – dass der Rechner in dem Fall, dass das Vorstartniveau den Wert Applikation aufweist, im Rahmen des Vorstarts für jede Applikation mit Ausnahme der nicht suspendierbaren Applikationen jeweils einen Container kreiert und die jeweilige Applikation in den für die jeweilige Applikation kreierten Container lädt,
    • – dass der Rechner in dem Fall, dass das Vorstartniveau den höheren Wert aufweist, im Rahmen des Vorstarts für die der jeweiligen vorgestarteten Einheit zugeordneten Applikationen mit Ausnahme der nicht suspendierbaren Applikationen unter Verwendung von deren Reifeniveaus einen Gruppierungsgrad ermittelt, die Applikationen entsprechend dem ermittelten Gruppierungsgrad zu mindestens einer Containergruppe zusammenfasst, für jede Containergruppe jeweils einen Container kreiert und jede Containergruppe in den für die jeweilige Containergruppe kreierten Container lädt,
    • – dass der Rechner den Gruppierungsgrad derart ermittelt, dass die zu der jeweiligen Containergruppe zusammengefassten Applikationen innerhalb der jeweiligen Containergruppe konfliktfrei suspendierbar bleiben, und
    • – dass der Rechner im Rahmen der Abarbeitung der komplexen Aufgaben nach Zuordnung zu einem der Benutzer beim Wechsel von einer Applikation zu einer anderen Applikation die noch ausgeführte Applikation nur dann terminiert, wenn es sich um eine nicht suspendierbare Applikation handelt, und anderenfalls die noch ausgeführte Applikation suspendiert.
  • Die Vorstartniveaus sind wie folgt definiert:
    • – Leerer Container: Es soll nur ein leerer Container kreiert werden, in den jedoch keine Applikationen geladen werden.
    • – Applikation: Es soll zunächst ein leerer Container kreiert werden, in den sodann eine einzige Applikation geladen wird.
    • – Applikationsgruppe: Es soll eine Applikationsgruppe gestartet werden. Die Applikationen der Applikationsgruppe können alternativ in einen einzigen Container oder in mehrere Container geladen werden.
    • – Sequenz: Es soll eine Sequenz von Applikationsgruppen gestartet werden. Die Applikationsgruppen der Sequenz sollen in mindestens einen Container geladen werden.
    • – Einzelbenutzer: Es sollen alle komplexen Aufgaben, die von einem einzelnen der Benutzer anforderbar sind, vorgestartet werden.
    • – Benutzermehrzahl: Es sollen alle komplexen Aufgaben, die von mehreren Benutzern anforderbar sind, vorgestartet werden.
  • Die Vorstartniveaus bilden eine Abstufung. Die Abstufung entspricht der Reihenfolge, in der die Vorstartniveaus obenstehend aufgelistet sind. Die Auflistung beginnt mit dem niedrigsten Vorstartniveau und endet mit dem höchsten Vorstartniveau.
  • Die Reifeniveaus sind wie folgt definiert:
    • – Nicht suspendierbar: Die entsprechende Applikation kann nicht suspendiert werden. Sie muss terminiert werden.
    • – Suspendierbar, aber nur allein im Container ablauffähig: Die entsprechende Applikation kann zwar suspendiert werden. Ein Suspendieren ist aber nur möglich, wenn die entsprechende Applikation die einzige Applikation des entsprechenden Containers ist. Anderenfalls muss die Applikation terminiert werden.
    • – Suspendierbar und mit anderen Applikationen im selben Container ablauffähig: Die entsprechende Applikation ist unabhängig davon suspendierbar, ob sich im selben Container weitere Applikationen befinden. Das Suspendieren ist aber nur möglich, wenn die Applikation entweder alleine im Container ist oder Bestandteil der einzigen Arbeitsgruppe ist, die in den Container geladen ist. Anderenfalls muss die Applikation terminiert werden.
    • – Suspendierbar und in mehreren Konfigurationen mit anderen Applikationen im selben Container ablauffähig: Die entsprechende Applikation ist auch dann suspendierbar, wenn sich im entsprechenden Container mehrere Applikationsgruppen befinden und die entsprechende Applikation Bestandteil dieser mehreren Applikationsgruppen ist.
  • Die Reifeniveaus bilden ebenfalls eine Abstufung, wobei das zuerst aufgeführte Reifeniveau die niedrigste Stufe darstellt, das zuletzt aufgeführte Reifeniveau die höchste Stufe.
  • Der Gruppierungsgrad entspricht den obenstehend erläuterten Vorstartniveaus „Applikation” und höher. Der Begriff „unter Verwendung von deren Reifeniveaus” soll bedeuten, dass der Gruppierungsgrad von den Reifeniveaus der Applikationen abhängt. Der Gruppierungsgrad kann jedoch zusätzlich von weiteren Größen abhängen. Wenn der Gruppierungsgrad ausschließlich von den Reifeniveaus abhängen soll, wird der Begriff „anhand der Reifeniveaus” verwendet.
  • Der Begriff „konfliktfrei suspendierbar” soll folgenden Sachverhalt darstellen:
    Wenn eine Applikationsgruppe eine Applikation enthält, welcher das Reifeniveau „suspendierbar, aber nur allein im Container ablauffähig” zugeordnet ist, muss diese Applikation in einen eigenen Container geladen werden. Die Applikationen dieser Applikationsgruppe, denen ein höheres Reifeniveau zugeordnet ist, können zu der Applikationsgruppe zusammengefasst werden bzw. den Rest der Applikationsgruppe bilden. Wenn die zusammenzufassenden Applikationen alle der höchsten Kategorie „suspendierbar und in mehreren Konfigurationen mit anderen Applikation im selben Container ablauffähig” angehören, können in ein und denselben Container auch die Applikationen einer Sequenz von Applikationsgruppen, eines Einzelbenutzers oder einer Benutzermehrzahl geladen werden. Diese Applikationen bilden in diesem Fall die jeweilige Containergruppe.
  • Es ist möglich, dass der Rechner den Gruppierungsgrad für jede im Rahmen der jeweiligen vorgestarteten Einheit gebildete Containergruppe individuell ermittelt. Diese Vorgehensweise ist besonders effizient, erfordert aber eine größere Komplexität, um für jede Containergruppe den jeweiligen Gruppierungsgrad zu ermitteln.
  • Alternativ ist es möglich, dass der Rechner den Gruppierungsgrad für alle im Rahmen der jeweiligen vorgestarteten Einheit gebildeten Containergruppen einheitlich ermittelt. Diese Vorgehensweise ist einfacher, zuverlässiger und leichter zu implementieren. Sie ist aber nicht so effizient wie die oben genannte Alternative.
  • Es ist möglich, dass der Rechner den Gruppierungsgrad ausschließlich anhand der Reifeniveaus der Applikationen ermittelt und hierbei den Gruppierungsgrad derart ermittelt, dass die Anzahl an Containergruppen minimiert wird.
  • Alternativ ist es möglich,
    • – dass dem Rechner ein Containerniveau vorgegeben ist, das einen der Werte Applikation, Applikationsgruppe, Sequenz, Einzelbenutzer oder Benutzermehrzahl aufweist, und
    • – dass der Rechner den Gruppierungsgrad dadurch ermittelt, dass er den Gruppierungsgrad auf das vorgegebene Containerniveau begrenzt und im Übrigen den Gruppierungsgrad ausschließlich anhand der Reifeniveaus der Applikationen derart ermittelt, dass die Anzahl an Containergruppen minimiert wird.
  • Für das Containerniveau sind in der Regel mindestens zwei der Werte „Applikation”, „Applikationsgruppe”, „Sequenz”, „Einzelbenutzer” und „Benutzermehrzahl” zulässig.
  • Die Aufgabe wird weiterhin durch ein Computerprogramm gelöst, dessen Abarbeitung durch einen Rechner bewirkt, dass der Rechner ein erfindungsgemäßes Betriebsverfahren ausführt. Das Computerprogramm kann in maschinenlesbarer Form auf einem Datenträger gespeichert sein. Der Datenträger kann insbesondere als mobiler Datenträger ausgebildet sein. Alternativ kann der Datenträger als Massenspeicher in einem Rechner eingebaut sein, von dem das Computerprogramm ausführbar ist. Der Rechner kann insbesondere als Server ausgebildet sein.
  • Weitere Vorteile und Einzelheiten ergeben sich aus der nachfolgenden Beschreibung von Ausführungsbeispielen in Verbindung mit den Zeichnungen. Es zeigen in Prinzipdarstellung:
  • 1 schematisch einen Rechner und dessen Ankopplung an ein Rechnernetz,
  • 2 eine Zuordnung von komplexen Aufgaben zu Benutzern,
  • 3 eine Applikationsgruppe,
  • 4 ein Ablaufdiagramm,
  • 5 mehrere Container,
  • 6 ein Ablaufdiagramm,
  • 7 eine Applikation und deren mögliche Reifeniveaus,
  • 8 ein Ablaufdiagramm,
  • 9 ein Benutzerprofil,
  • 10 ein Ablaufdiagramm und
  • 11 ein weiteres Ablaufdiagramm.
  • Gemäß 1 weist ein Rechner übliche Komponenten auf, insbesondere (mindestens) einen Mikroprozessor 1, einen Arbeitsspeicher 2 und einen Massenspeicher 3, beispielsweise eine Festplatte. Die genannten Komponenten 1, 2 und 3 sind in den Rechner eingebaut.
  • Der Rechner ist im Rahmen der vorliegenden Erfindung vorzugsweise als Server ausgebildet, das heißt er ist über eine Schnittstelle 4 und ein Rechnernetz 5 mit einem oder mehreren Clients 6 verbunden. Prinzipiell könnte der Rechner jedoch auch als stand-alone-Maschine ausgebildet sein.
  • Der Rechner arbeitet im Betrieb ein Computerprogramm 7 ab. Das Computerprogramm 7 umfasst Maschinencode 8, der von dem Rechner unmittelbar abarbeitbar ist. Das Abarbeiten des Maschinencodes 8 durch den Rechner bewirkt, dass der Rechner ein Betriebsverfahren ausführt, das nachfolgend näher erläutert werden wird.
  • Das Computerprogramm 7 ist in der Regel in maschinenlesbarer Form auf einem Datenträger 3, 9 gespeichert, beispielsweise auf dem Massenspeicher 3 oder auf einem mobilen Datenträger 9. Als Beispiel eines mobilen Datenträgers 9 ist in 1 ein USB-Memorystick dargestellt. Alternativ könnte der mobile Datenträger 9 beispielsweise als CD-ROM oder als SD-Speicherkarte ausgebildet sein.
  • Das Computerprogramm 7 kann beispielsweise erstellt werden, sodann auf dem mobilen Datenträger 9 gespeichert werden und von dort in den Massenspeicher 3 des Rechners kopiert werden, so dass es nachfolgend vom Rechner aufgerufen und ausgeführt werden kann.
  • Im laufenden Betrieb kommuniziert der Rechner mit einer Anzahl von Benutzern 10, beispielsweise pro Client 6 mit je einem Benutzer 10. Auf Anforderung der Benutzer 10 arbeitet der Rechner gemäß 2 im Rahmen eines Betriebssystems 11 eine Anzahl von komplexen Aufgaben 12 ab. Die komplexen Aufgaben 12 sind gemäß 2 vordefiniert. Jede komplexe Aufgabe 12 ist von mindestens einem der Benutzer 10 anforderbar.
  • Bei jeder komplexen Aufgabe 12 kann es sich gemäß 2 um eine einzelne Applikationsgruppe 13 handeln. Jede Applikationsgruppe 13 umfasst gemäß 3 eine Mehrzahl von Applikationen 14, die der Rechner im Rahmen der Ausführung der jeweiligen komplexen Aufgabe 12 miteinander verknüpft und abarbeitet.
  • Jede Applikation 14 benötigt bestimmte Eingangsgrößen von anderen Applikationen 14 der jeweiligen Applikationsgruppe 13 und liefert bestimmte Ausgangsgrößen an andere Applikationen 14 der jeweiligen Applikationsgruppe 13. Die Verknüpfung der Applikationen 14 zu der entsprechenden Applikationsgruppe 13 geschieht dadurch, dass für jede Applikation 14 der Applikationsgruppe 13 festgelegt wird, von welchen anderen Applikationen 14 der Applikationsgruppe 13 die jeweilige Applikation 14 ihre Eingangsgrößen erhält und an welche anderen Applikationen 14 der Applikationsgruppe 13 die jeweilige Applikation 14 ihre Ausgangsgrößen übergibt.
  • Oftmals bilden gemäß der Darstellung von 2 mehrere Applikationsgruppen 13 eine Sequenz 15. Unmittelbar aufeinander folgende Applikationsgruppen 13 der Sequenz 15 unterscheiden sich hierbei durch mindestens eine Applikation 14. Die einzelnen Applikationsgruppen 13 der jeweiligen Sequenz 15 werden im Zusammenwirken mit den anfordernden Benutzern 10 nacheinander abgearbeitet. Insbesondere existiert üblicherweise ein Eingabebefehl „Bearbeitung der Applikationsgruppe beendet”. Bei Eingabe eines derartigen Befehls durch den Benutzer 10, dem die Sequenz 15 von Applikationsgruppen 13 momentan zugeordnet ist, beendet der Rechner die Abarbeitung der momentan ausgeführten Applikationsgruppe 13 und geht zur nächsten Applikationsgruppe 13 der Sequenz 15 über. Im Falle der letzten Applikationsgruppe 13 der Sequenz 15 wird selbstverständlich die komplexe Aufgabe 12 insgesamt beendet.
  • Aus den obigen Ausführungen geht hervor, dass der Rechner im Rahmen der Ausführung der jeweiligen komplexen Aufgabe 12 eine Mehrzahl von Applikationen 14 abarbeitet. Zum Abarbeiten der Applikationen 14 kreiert der Rechner im Rahmen der Ausführung der jeweiligen komplexen Aufgabe 12 gemäß 4 eine Anzahl von Prozessen 16. Die Prozesse 16 sind im vorliegenden Fall als Container ausgebildet. Container als solche sind Fachleuten bekannt. Es handelt sich um Leerprozesse, die dazu bestimmt sind, eine im Rahmen des Betriebssystems 11 des Rechners ablauffähige Umgebung für mindestens eine Applikation 14 zu bilden. Minimal kreiert der Rechner einen einzigen Container 16. In vielen Fällen kreiert der Rechner jedoch pro komplexer Aufgabe 12 mindestens einen Container 16, oftmals pro komplexer Aufgabe 12 mehrere Container 16.
  • In jeden Container 16 lädt der Rechner im Rahmen der Ausführung der jeweiligen komplexen Aufgabe 12 gemäß 4 mindestens eine Applikation 14 der jeweiligen komplexen Aufgabe 12. Gegebenenfalls – siehe ergänzend 5 – kann der Rechner in die Container 16 auch mehrere Applikationen 14 laden. Die in die Container 16 geladenen Applikationen 14 arbeitet der Rechner im Rahmen der Abarbeitung der entsprechenden komplexen Aufgabe 12 ab. Das Abarbeiten erfolgt erst nach dem Zuordnen der entsprechenden komplexen Aufgabe 12 zu einem der Benutzer 10.
  • Soweit bisher erläutert, entspricht die obenstehend beschriebene Vorgehensweise derjenigen des Standes der Technik. Sie wird auch im Rahmen der vorliegenden Erfindung angewendet. Zusätzlich wird so vorgegangen, wie dies nachfolgend in Verbindung mit den 6 bis 11 näher erläutert wird. Weiterhin kann das Laden der Applikationen 14 in die Container 16 und eventuell auch das Bilden der Applikationsgruppen 13 oder der Sequenz 15 von Applikationsgruppen 13 gegebenenfalls bereits vor dem Zuordnen der entsprechenden komplexen Aufgabe 12 zu einem der Benutzer 10 erfolgen. Aus diesem Grund ist in 4 der Schritt des Zuordnens der entsprechenden komplexen Aufgabe zu einem der Benutzer 10 einerseits mehrfach und andererseits nur gestrichelt eingezeichnet. Denn nur ein einziger der in 4 gestrichelt eingezeichneten Schritte des Zuordnens ist vorhanden. Welcher dieser Schritte vorhanden ist, kann jedoch von Fall zu Fall variieren.
  • Dem Rechner ist ein Vorstartniveau V vorgegeben. Das Vorstartniveau V kann beispielsweise von einem Systemoperator des Rechners bei der Inbetriebnahme des Rechners oder bei Wartungs- und Servicearbeiten eingestellt werden. Das Vorstartniveau V kann den Wert Eins, den Wert Zwei und mindestens einen der Werte Drei bis Sechs aufweisen. Insbesondere ist es möglich, dass die Werte Eins, Zwei, Drei, Vier, Fünf und Sechs alle zulässig sind.
  • Das Vorstartniveau V gibt an, welche Einheit der Rechner bereits vor Anforderung der Abarbeitung einer der komplexen Aufgaben 12 durch einen der Benutzer 10 jeweils vorstarten soll. Dies wird nachfolgend in Verbindung mit 6 näher erläutert.
  • Gemäß 6 prüft der Rechner in einem Schritt S1, ob das Vorstartniveau V den Wert Eins hat. Wenn dies der Fall ist, kreiert der Rechner in einem Schritt S2 einen Container 16. Er lädt jedoch keine Applikation 14 in den Container 16. Dem Wert Eins kommt im Rahmen des Vorstartniveaus V somit die Bedeutung „leerer Container” zu. Vom Schritt S2 geht der Rechner zum Schritt S1 zurück.
  • Wenn das Vorstartniveau V nicht den Wert Eins hat, prüft der Rechner in einem Schritt S3, ob das Vorstartniveau V den Wert Zwei hat. Wenn dies der Fall ist, geht der Rechner zu einem Schritt S4 über.
  • Im Schritt S4 selektiert der Rechner eine Applikation 14. In einem Schritt S5 überprüft der Rechner ein Reifeniveau R, das der selektierten Applikation 14 zugeordnet ist.
  • Das Reifeniveau R weist gemäß 7 einen der Werte 1 bis 4 auf. Der Wert Eins hat die Bedeutung „nicht suspendierbar”. Der Wert Zwei hat die Bedeutung „suspendierbar, aber nur allein im Container ablauffähig”. Der Wert Drei hat die Bedeutung „suspendierbar und mit anderen Applikationen im selben Container ablauffähig”. Der Wert Vier hat die Bedeutung „suspendierbar und in mehreren Konfigurationen mit anderen Applikationen im selben Container ablauffähig”.
  • Wenn das der selektierten Applikation 14 zugeordnete Reifeniveau R größer als Eins ist, kreiert der Rechner in einem Schritt S6 einen Container 16.
  • In einem Schritt S7 lädt der Rechner die selektierte Applikation 14 in den soeben kreierten Container 16. Weiterhin suspendiert der Rechner im Rahmen eines Schrittes S8 die in den Container 16 geladene Applikation 14. Vom Schritt S8 geht der Rechner zu einem der Schritte S1, S3 oder S4 zurück, gemäß 6 zum Schritt S1.
  • Beim erneuten Ausführen des Schrittes S4 wird sodann eine andere Applikation 14 selektiert als zuvor, so dass nacheinander alle suspendierbaren Applikationen 14 vorgestartet werden. Dem Wert Zwei kommt im Rahmen des Vorstartniveaus V daher der Wert „Applikation” zu.
  • Wenn das Vorstartniveau V einen höheren Wert als Zwei aufweist, also zwischen Drei und Sechs liegt, geht der Rechner zu einem Schritt S9 über. Im Schritt S9 ermittelt der Rechner alle Applikationen 14, die zusammen eine dem Vorstartniveau V entsprechende Einheit bilden.
  • In einem Schritt S10 ermittelt der Rechner aus diesen Applikationen 14 diejenigen, deren Reifeniveau R größer als Eins ist. In einem Schritt S11 ermittelt der Rechner für die Applikationen des Schrittes S10 unter Verwendung von deren Reifeniveaus R einen Gruppierungsgrad G. Die Ermittlung des Gruppierungsgrades G erfolgt im Rahmen des Schrittes S11 derart, dass die zu jeweils einer Containergruppe 17 entsprechend dem Gruppierungsgrad G zusammengefassten Applikationen 14 innerhalb der jeweiligen Containergruppe 17 konfliktfrei suspendierbar bleiben.
  • In einem Schritt S12 fasst der Rechner die Applikationen 14 des Schrittes S10 entsprechend dem im Schritt S11 ermittelten Gruppierungsgrad G zu den Containergruppen 17 zusammen.
  • In einem Schritt S13 kreiert der Rechner für jede Containergruppe 17 jeweils einen Container 16. In einem Schritt S14 lädt der Rechner in jeden der im Schritt S13 kreierten Container 15 jeweils eine Containergruppe 17. In einem Schritt S15 suspendiert der Rechner die Applikationen 14 der jeweiligen Containergruppe 17.
  • Aus den obigen Ausführungen ist ersichtlich, dass die Containergruppen 17 nicht Gruppen von Containern 16 sind, sondern Gruppen von Applikationen 14. Der Begriff „Containergruppen” wurde gewählt, weil die Applikationen 14 jeder Containergruppe 17 in einen einzigen, den Applikationen 14 der jeweiligen Containergruppe 17 gemeinsamen Container 16 geladen werden und der Begriff „Applikationsgruppe” bereits anderweitig verwendet wird.
  • Eine Containergruppe 17 kann einer Applikationsgruppe 13 entsprechen, also einem der Bestandteile einer Sequenz 15 von Applikationsgruppen 13. Dies ist jedoch nicht zwingend. Eine Containergruppe 17 kann alternativ eine einzelne Applikation 14 sein, nur Teile einer Applikationsgruppe 13 umfassen oder mehrere Applikationsgruppen 13 umfassen, insbesondere eine gesamte Sequenz 15 von Applikationsgruppen 14 oder mehrere Applikationsgruppen 13 einer Sequenz 15.
  • Die Schritte S11 und S12 von 6 werden nachfolgend in Verbindung mit 8 detaillierter erläutert.
  • Gemäß 8 setzt der Rechner den Gruppierungsgrad G in einem Schritt S21 zunächst auf das Vorstartniveau V. In einem Schritt S22 prüft der Rechner sodann, ob der Gruppierungsgrad G den Wert Drei aufweist.
  • Der Wert Drei entspricht – sowohl im Rahmen des Vorstartniveaus V als auch im Rahmen des Gruppierungsgrades G – einer Applikationsgruppe 13. Der Wert Drei bedeutet also im Rahmen des Vorstartniveaus V, dass eine Applikationsgruppe 13 vorgestartet wird. Im Rahmen des Gruppierungsgrades G bedeutet der Wert Drei, dass eine Applikationsgruppe 13 – mit Ausnahme der nicht suspendierbaren Applikationen 14 der jeweiligen Applikationsgruppe 13 – als Einheit in einen einzigen Container 16 geladen wird.
  • Eine einzelne Applikationsgruppe 13 entspricht einer einzigen Konfiguration im Sinne des Reifeniveaus R. Die Applikationsgruppe 13 darf daher dann und nur dann in einen einzigen Container 16 geladen werden, wenn alle Applikationen 14 der jeweiligen Applikationsgruppe 13 das Reifeniveau R = 3 oder das Reifeniveau R = 4 aufweisen. In einem Schritt S23 ermittelt der Rechner daher den Minimalwert MR der Reifeniveaus R der Applikationen 14 der entsprechenden Applikationsgruppe 13. In einem Schritt S24 prüft der Rechner, ob der Minimalwert MR größer als zwei ist.
  • Wenn der Minimalwert MR größer als Zwei ist, also Drei oder Vier beträgt, fasst der Rechner die Applikationsgruppe 13 in einem Schritt S25 zu einer (einzigen) Containergruppe 17 zusammen. Anderenfalls weist der Rechner in einem Schritt S26 allen Applikationen 14 der jeweiligen Applikationsgruppe 13, denen das Reifeniveau R = 2 zugeordnet ist, den Gruppierungsgrad G = 2 = Applikation zu. Diese Applikationen 14 werden daher im Rahmen des Vorstarts einzeln in jeweils einen eigenen Container 16 geladen.
  • In einem Schritt S27 wird den verbleibenden Applikationen 14 der jeweiligen Applikationsgruppe 13 ein Gruppierungsgrad G zugeordnet. Hierfür sind zwei alternative Vorgehensweisen möglich. Zum einen ist es möglich, auch diesen Applikationen 14 den Gruppierungsgrad G = 2 zuzuordnen. In diesem Fall werden auch diese Applikationen 14, obwohl ihnen das Reifeniveau R = 3 bzw. R = 4 zugeordnet ist, einzeln in jeweils einen eigenen Container 16 geladen. Diese Vorgehensweise entspricht – verallgemeinert gesprochen – einer Ermittlung des Gruppierungsgrades G einheitlich für alle Containergruppen 17. Alternativ kann der Rechner die Applikationen 14 der jeweiligen Applikationsgruppe 13, denen das Reifeniveau R = 3 oder R = 4 zugeordnet ist, zu einer einzigen Containergruppe 17 zusammenfassen. Diese Vorgehensweise entspricht – verallgemeinert gesprochen – einer Ermittlung des Gruppierungsgrades G individuell für jede Containergruppe 17.
  • In den Schritten S22 bis S27 wird der Fall abgehandelt, dass Applikationsgruppen 13 als Vorstarteinheit vorgegeben sind (Vorstartniveau V = 3). Es ist jedoch möglich, als Vorstarteinheit auch größere Einheiten vorzugeben. Insbesondere kann als Vorstarteinheit eine ganze Sequenz 15 von Applikationsgruppen vorgegeben werden (Vorstartniveau V = 4). Ferner kann für jeden Benutzer – siehe 9 – ein jeweiliges Profil vordefiniert sein, welche komplexen Aufgaben 12 von dem entsprechenden Benutzer 10 angefordert werden dürfen. In diesem Fall kann als Vorstartniveau V alternativ oder zusätzlich der Wert Fünf (= Einzelbenutzer, das heißt alle komplexen Aufgaben 12 für diesen Benutzer 10 bilden die Vorstarteinheit) vorgegeben sein. In Einzelfällen kann es sogar möglich sein, die komplexen Aufgaben 12 mehrerer Benutzer 10 (im Extremfall sogar aller Benutzer 10) als Vorstarteinheit vorzugeben. Dies entspricht dem Wert Sechs des Vorstartniveaus V.
  • Falls der Wert des Vorstartniveaus V größer als Drei ist, geht der Rechner vom Schritt S22 zu einem Schritt S28 über. Im Schritt S28 ermittelt der Rechner, ob die Applikationen 14 konfliktfrei suspendierbar bleiben, wenn sie alle zusammen in einen einzigen Container 16 geladen werden. Der Begriff „konfliktfrei suspendierbar” bedeutet hierbei,
    • – dass jede in den jeweiligen Container 16 geladene Applikation 14 suspendierbar und wieder aufgreifbar ist und
    • – dass jede in den jeweiligen Container 16 geladene Applikation 14 in jeder entsprechenden in der komplexen Aufgabe 12 vorgesehenen Applikationsgruppe 13 arbeiten kann.
  • Die konfliktfreie Suspendierbarkeit setzt bei den Vorstartniveaus V von Vier und höher unter anderem voraus, dass allen zugehörigen Applikationen 14 das Reifeniveau R = 4 zugeordnet ist.
  • In einem Schritt S29 prüft der Rechner, ob die konfliktfreie Suspendierbarkeit gegeben ist. Ist sie gegeben, fasst der Rechner die Applikationen 14 in einem Schritt S30 zu einer einzigen Containergruppe 17 zusammen. Er weist also allen entsprechenden Applikationen 14 den momentanen Gruppierungsgrad G zu. Ist die konfliktfreie Suspendierbarkeit nicht gegeben, bildet der Rechner in einem Schritt S31 vorläufige Containergruppen 17 des nächstniedrigeren Gruppierungsgrades G. Im Falle eines Gruppierungsgrades G von Sechs (= Benutzermehrzahl) bildet der Rechner also entsprechende Containergruppen 17 für die einzelnen Benutzer 10. Im Falle eines Gruppierungsgrades G von Fünf (= Einzelbenutzer) bildet der Rechner die entsprechenden Containergruppen 17 für die Sequenzen 15 von Applikationsgruppen 13 usw.. Im Falle eines Gruppierungsgrades G von Vier (= Sequenz) bildet der Rechner die entsprechenden Containergruppen 17 für die einzelnen Applikationsgruppen 13 der entsprechenden Sequenz 15.
  • In einem Schritt S32 prüft der Rechner für jede im Schritt S31 neu gebildete Containergruppe 17, ob sie mit den anderen, im Schritt S31 neu gebildeten Containergruppen 17 kooperieren kann.
  • Jede vorläufige Containergruppe, die mit den anderen vorläufigen Containergruppen 17 nicht konfliktfrei kooperieren kann, bildet eine neue Containergruppe 17 für die nächste Iteration der Vorgehensweise von 8. Diesen Containergruppen 17 weist der Rechner einen um Eins reduzierten Gruppierungsgrad G zu, beispielsweise den Wert Vier, wenn der Wert zuvor Fünf betrug.
  • Bezüglich der anderen vorläufigen Containergruppen 17, die konfliktfrei miteinander kooperieren können, ist gemäß einem Schritt S33 alternativ ein Zusammenfassen zu einer einzigen Containergruppe 17 oder ein Zuordnen eines um Eins reduzierten Gruppierungsgrades G möglich. Die erstgenannte Vorgehensweise entspricht – verallgemeinert gesprochen einer Ermittlung des Gruppierungsgrades G individuell für jede Containergruppe 17, die letztgenannte einer Ermittlung einheitlich für alle Containergruppen 17.
  • Sofern der Schritt S33 durchlaufen wird und von dort aus zum Schritt S22 zurückgegangen wird, erfolgt das erneute Ausführen der Vorgehensweise von 8 selbstverständlich für jede der im Rahmen des Schrittes S32 neu gebildeten vorläufigen Containergruppen 17 aus. Falls im Rahmen des Schrittes S33 den entsprechenden Containergruppen 17 jeweils der um Eins reduzierte Gruppierungsgrad G zugeordnet wurde, können diese Containergruppen 17 im Rahmen des Schrittes S33 direkt in einen einzigen Container 16 geladen (und nachfolgend suspendiert) werden.
  • Die obenstehend in Verbindung mit den 6 und 8 erläuterte Vorgehensweise wird iterativ ausgeführt. Es erfolgt also immer wieder ein Vorstart einer entsprechenden Einheit. Der Vorstart erfolgt, bis ein Abbruchkriterium erfüllt ist. Das Abbruchkriterium kann beispielsweise von der Anzahl der vorgestarteten Einheiten, von der Prozessorbelastung, von der Anzahl angemeldeter Benutzer 10 und anderen Kriterien abhängen. Seine genaue Ausgestaltung ist im Rahmen der vorliegenden Erfindung von untergeordneter Bedeutung.
  • Auf Grund des Vorstarts kann – aus Sicht der Benutzer 10 – das tatsächliche Arbeiten mit den Applikationen 14 erheblich einfacher und schneller erfolgen als im Stand der Technik. Dies wird nachfolgend in Verbindung mit 10 näher erläutert. Die Vorgehensweise von 10 wird vom Rechner parallel zu der Vorgehensweise der 6 und 8 ausgeführt. In der Regel wird die Vorgehensweise von 10 ausgeführt, nachdem vom Rechner bereits einige Vorstarts ausgeführt wurden.
  • Gemäß 10 nimmt der Rechner in einem Schritt S41 von einem der Benutzer 10 eine Anforderung für eine der komplexen Aufgaben 12 entgegen. In einem Schritt S42 ordnet der Rechner die angeforderte komplexe Aufgabe 12 dem anfordernden Benutzer 10 zu. In einem Schritt S43 lädt der Rechner eine oder mehrere Applikationen 14 der entsprechenden komplexen Aufgabe 12 in einen oder mehrere Container 16.
  • Der Schritt S43 ist in 10 nur der Vollständigkeit halber dargestellt. Denn das Ladender Applikationen 14 ist im Rahmen des Schrittes S43 nur dann erforderlich, wenn das Vorstartniveau V = 1 vorgegeben ist, so dass im Rahmen des Vorstarts keine Applikationen 14 in die vorgestarteten Container 16 geladen werden (siehe den Schritt S2 von 6) oder wenn die im Rahmen der angeforderten komplexen Aufgabe 12 zuerst auszuführende Applikation 14 das Reifeniveau R = 1 (= nicht suspendierbar) zugeordnet ist, so dass sie nicht vorgestartet werden kann.
  • In einem Schritt S44 erfolgt das Abarbeiten der komplexen Aufgabe 12. In einem Schritt S45 prüft der Rechner, ob von der momentan ausgeführten Applikation 14 zu einer anderen Applikation 14 gewechselt werden soll. Wenn dies der Fall ist, überprüft der Rechner in einem Schritt S46 das Reifeniveau R der momentan abgearbeiteten Applikation 14. Wenn das Reifeniveau R der momentan abgearbeiteten Applikation 14 den Wert Eins aufweist, die Applikation 14 also nicht suspendierbar ist, terminiert der Rechner in einem Schritt S47 die momentan abgearbeitete Applikation 14. Anderenfalls suspendiert der Rechner in einem Schritt S48 die momentan abgearbeitete Applikation 14.
  • In analoger Weise prüft der Rechner in einem Schritt S49, ob der Applikation 14, deren Abarbeitung aufgenommen werden soll, das Reifeniveau R = 1 zugeordnet ist. Wenn dies der Fall ist, lädt der Rechner in einem Schritt S50 die neu abzuarbeitende Applikation 14. Anderenfalls nimmt der Rechner in einem Schritt S51 lediglich die Abarbeitung der suspendierten Applikation 14 wieder auf.
  • In einem Schritt S52 prüft der Rechner, ob die komplexe Aufgabe 12 terminiert werden soll. Wenn dies nicht der Fall ist, geht der Rechner zum Schritt S44 zurück. Anderenfalls gibt der Rechner in einem Schritt S53 die komplexe Aufgabe 12 frei. Falls erforderlich, kann im Rahmen des Schrittes S53 ein Suspendieren und/oder Terminieren von Applikationen 14 erfolgen.
  • Aus den obigen Ausführungen ist ersichtlich, dass Applikationen 14 im Rahmen der normalen Abarbeitung dann und nur dann terminiert werden, wenn dies erforderlich ist. Anderenfalls werden sie lediglich suspendiert, so dass ihre Abarbeitung wieder aufgegriffen werden kann. Diese Vorgehensweise ist erheblich schneller als ein völliger Neustart einer Applikation 14. Weiterhin kann im Rahmen der vorliegenden Erfindung die Anzahl an verwendeten Containern 16 und die damit verbundene Belegung von Ressourcen des Rechners so klein wie möglich gehalten werden.
  • Im Rahmen der obenstehend in Verbindung mit den 6 und 8 erläuterten Vorgehensweise wurde angenommen, dass der Rechner den Gruppierungsgrad G der Containergruppen 17 ausschließlich anhand der Reifeniveaus R der Applikationen 14 ermittelt und der Rechner den Gruppierungsgrad G derart ermittelt, dass die Anzahl an Containergruppen 17 minimiert wird. Diese Vorgehensweise ist möglich. In vielen Fällen führt es jedoch zu besseren Ergebnissen, die Vorgehensweise von 8 entsprechend 11 zu modifizieren.
  • 11 entspricht im Wesentlichen 8. Der einzige Unterschied besteht darin, dass der Schritt S21 von 8 in 11 durch einen Schritt S61 ersetzt ist. Im Schritt S61 setzt der Rechner den anfänglichen (= maximalen) Gruppierungsgrad G auf den kleineren von zwei Werten. Der eine Wert ist das bereits erläuterte Vorstartniveau V. Der andere Wert ist ein vorgegebener maximaler Gruppierungsgrad, nachstehend Containerniveau C genannt. Das Containerniveau C weist einen der Werte Zwei bis Sechs auf, wobei die Werte die gleiche Bedeutung wie beim Vorstartniveau V aufweisen.
  • Vorzugsweise ist das Containerniveau C nach Bedarf vorgebbar, kann also mindestens zwei der genannten Werte aufweisen, insbesondere alle Werte. Die Vorgabe des Containerniveaus C kann analog zur Vorgabe des Vorstartniveaus V durch einen Systemtechniker erfolgen.
  • Auf Grund der Ersetzung des Schrittes S21 von 8 durch den Schritt S61 von 11 ist bei der Vorgehensweise von 11 der Gruppierungsgrad G auf das Containerniveau C begrenzt. Im Übrigen aber ermittelt der Rechner den Gruppierungsgrad G weiterhin ausschließlich anhand der Reifeniveaus R der Applikationen 14 derart, dass die Anzahl an Containergruppen 17 minimiert wird.
  • Die vorliegende Erfindung weist viele Vorteile auf. Insbesondere ist sie einfach zu implementieren, arbeitet zuverlässig und ist effektiv. Weiterhin ist die vorliegende Erfindung sehr flexibel. Insbesondere können das Vorstartniveau V und gegebenenfalls das Containerniveau C jederzeit angepasst werden. Bei Änderungen des Reifeniveaus R ermittelt der Rechner gegebenenfalls von selbst neue Gruppierungsgrade G. Bei Ersetzen „alter” Applikationen 14 durch „neue” Applikationen 14, denen ein anderes Reifeniveau R zugeordnet ist, muss das Verfahren der 6, 8 und 11 daher nicht angepasst werden. Weiterhin ist, falls erforderlich, jederzeit eine Limitierung des Gruppierungsgrades G durch entsprechende Vorgabe des Containerniveaus C möglich.
  • Bezugszeichenliste
  • 1
    Mikroprozessor
    2
    Arbeitsspeicher
    3
    Massenspeicher
    4
    Schnittstelle
    5
    Rechnernetz
    6
    Clients
    7
    Computerprogramm
    8
    Maschinencode
    9
    mobiler Datenträger
    10
    Benutzer
    11
    Betriebssystem
    12
    komplexe Aufgaben
    13
    Applikationsgruppen
    14
    Applikationen
    15
    Sequenz
    16
    Container
    17
    Containergruppe
    C
    Containerniveau
    G
    Gruppierungsgrad
    MR
    Minimalwert
    R
    Reifeniveau
    S1–S61
    Schritte
    V
    Vorstartniveau

Claims (10)

  1. Betriebsverfahren für einen Rechner, der auf Anforderung einer Anzahl von Benutzern (10) im Rahmen seines Betriebssystems (11) eine Anzahl von komplexen Aufgaben (12) abarbeitet, wobei jede komplexe Aufgabe (12) von mindestens einem der Benutzer (10) anforderbar ist, – wobei der Rechner im Rahmen der Ausführung jeder komplexen Aufgabe (12) eine Anzahl von als Container (16) ausgebildeten Prozessen (16) kreiert, – wobei der Rechner in jeden der im Rahmen der Ausführung der jeweiligen komplexen Aufgabe (12) kreierten Container (16) mindestens eine Applikation (14) lädt, – wobei der Rechner die im Rahmen der Ausführung der jeweiligen komplexen Aufgabe (12) in die Container (16) geladenen Applikationen (14) zu mindestens einer Applikationsgruppe (13) verknüpft, – wobei der Rechner in dem Fall, dass er im Rahmen der Ausführung der jeweiligen komplexen Aufgabe (12) mehrere Applikationsgruppen (13) bildet, diese Applikationsgruppen (13) zu einer Sequenz (15) von Applikationsgruppen (13) verkettet, – wobei innerhalb der Sequenz (15) unmittelbar aufeinander folgende Applikationsgruppen (13) sich durch mindestens eine Applikation (14) unterscheiden, – wobei im Falle einer einzigen Applikationsgruppe (13) die Applikationsgruppe (13) die jeweilige komplexe Aufgabe (12) darstellt und im Falle einer Sequenz (15) von Applikationsgruppen (13) die Sequenz (15) von Applikationsgruppen (13) die jeweilige komplexe Aufgabe (12) darstellt, – wobei dem Rechner ein Vorstartniveau (V) vorgegeben ist, – wobei das Vorstartniveau (V) den Wert leerer Container, den Wert Applikation und mindestens einen höheren Wert aufweisen kann und der höhere Wert einem der Werte Applikationsgruppe, Sequenz, Einzelbenutzer oder Benutzermehrzahl entspricht, – wobei jeder Applikation (14) ein jeweiliges Reifeniveau (R) zugeordnet ist, das einen der Werte nicht suspendierbar, suspendierbar, aber nur allein im Container ablauffähig, suspendierbar und mit anderen Applikationen im selben Container ablauffähig oder suspendierbar und in mehreren Konfigurationen mit anderen Applikationen im selben Container ablauffähig aufweist, – wobei der Rechner bereits vor der Anforderung der Abarbeitung der komplexen Aufgaben (12) iterativ jeweils einen Vorstart einer dem Vorstartniveau (V) entsprechenden Einheit vornimmt, – wobei der Rechner in dem Fall, dass das Vorstartniveau (V) den Wert leerer Container aufweist, im Rahmen des Vorstarts zwar einen Container (16) kreiert, in den Container (16) aber noch keine Applikation (14) lädt, – wobei der Rechner in dem Fall, dass das Vorstartniveau (V) den Wert Applikation aufweist, im Rahmen des Vorstarts für jede Applikation (14) mit Ausnahme der nicht suspendierbaren Applikationen (14) jeweils einen Container (16) kreiert und die jeweilige Applikation (14) in den für die jeweilige Applikation (14) kreierten Container (16) lädt, – wobei der Rechner in dem Fall, dass das Vorstartniveau (V) den höheren Wert aufweist, im Rahmen des Vorstarts für die der jeweiligen vorgestarteten Einheit zugeordneten Applikationen (14) mit Ausnahme der nicht suspendierbaren Applikationen (14) unter Verwendung von deren Reifeniveaus (R) einen Gruppierungsgrad (G) ermittelt, die Applikationen (14) entsprechend dem ermittelten Gruppierungsgrad (G) zu mindestens einer Containergruppe (17) zusammenfasst, für jede Containergruppe (17) jeweils einen Container (16) kreiert und jede Containergruppe (17) in den für die jeweilige Containergruppe (17) kreierten Container (16) lädt, – wobei der Rechner den Gruppierungsgrad (G) derart ermittelt, dass die zu der jeweiligen Containergruppe (17) zusammengefassten Applikationen (14) innerhalb der jeweiligen Containergruppe (17) konfliktfrei suspendierbar bleiben, und – wobei der Rechner im Rahmen der Abarbeitung der komplexen Aufgaben (12) nach Zuordnung zu einem der Benutzer (10) beim Wechsel von einer Applikation (14) zu einer anderen Applikation (14) die noch ausgeführte Applikation (14) nur dann terminiert, wenn es sich um eine nicht suspendierbare Applikation (14) handelt, und anderenfalls die noch ausgeführte Applikation (14) suspendiert.
  2. Betriebsverfahren nach Anspruch 1, dadurch gekennzeichnet, dass der Rechner den Gruppierungsgrad (G) für jede im Rahmen der jeweiligen vorgestarteten Einheit gebildete Containergruppe (17) individuell ermittelt.
  3. Betriebsverfahren nach Anspruch 1, dadurch gekennzeichnet, dass der Rechner den Gruppierungsgrad (G) für alle im Rahmen der jeweiligen vorgestarteten Einheit gebildeten Containergruppen (17) einheitlich ermittelt.
  4. Betriebsverfahren nach Anspruch 1, 2 oder 3, dadurch gekennzeichnet, dass der Rechner den Gruppierungsgrad (G) ausschließlich anhand der Reifeniveaus (R) der Applikationen (14) ermittelt und dass der Rechner den Gruppierungsgrad (G) derart ermittelt, dass die Anzahl an Containergruppen (17) minimiert wird.
  5. Betriebsverfahren nach Anspruch 1, 2 oder 3, dadurch gekennzeichnet, – dass dem Rechner ein Containerniveau (C) vorgegeben ist, das einen der Werte Applikation, Applikationsgruppe, Sequenz, Einzelbenutzer oder Benutzermehrzahl aufweist, und – dass der Rechner den Gruppierungsgrad (G) dadurch ermittelt, dass er den Gruppierungsgrad (G) auf das vorgegebene Containerniveau (C) begrenzt und im Übrigen den Gruppierungsgrad (G) ausschließlich anhand der Reifeniveaus (R) der Applikationen (14) derart ermittelt, dass die Anzahl an Containergruppen (17) minimiert wird.
  6. Betriebsverfahren nach Anspruch 5, dadurch gekennzeichnet, dass für das Containerniveau (C) mindestens zwei der Werte Applikation, Applikationsgruppe, Sequenz, Einzelbenutzer und Benutzermehrzahl zulässig sind.
  7. Computerprogramm, das Maschinencode (8) umfasst, der von einem Rechner unmittelbar abarbeitbar ist und dessen Abarbeitung durch den Rechner bewirkt, dass der Rechner ein Betriebsverfahren nach einem der obigen Ansprüche ausführt.
  8. Computerprogramm nach Anspruch 7, dadurch gekennzeichnet, dass es auf einem Datenträger (3, 9) in maschinenlesbarer Form gespeichert ist.
  9. Computerprogramm nach Anspruch 8, dadurch gekennzeichnet, dass der Datenträger (9) als mobiler Datenträger (9) ausgebildet ist.
  10. Computerprogramm nach Anspruch 8, dadurch gekennzeichnet, dass der Datenträger (3) als Massenspeicher (3) in einen Rechner eingebaut ist, von dem das Computerprogramm (7) ausführbar ist.
DE102009057401A 2009-12-08 2009-12-08 Betriebsverfahren für einen Rechner mit performance-Optimierung durch Gruppieren von Applikationen Expired - Fee Related DE102009057401B3 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102009057401A DE102009057401B3 (de) 2009-12-08 2009-12-08 Betriebsverfahren für einen Rechner mit performance-Optimierung durch Gruppieren von Applikationen
US12/958,666 US8776068B2 (en) 2009-12-08 2010-12-02 Operating method for a computer with performance optimization by grouping applications

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102009057401A DE102009057401B3 (de) 2009-12-08 2009-12-08 Betriebsverfahren für einen Rechner mit performance-Optimierung durch Gruppieren von Applikationen

Publications (1)

Publication Number Publication Date
DE102009057401B3 true DE102009057401B3 (de) 2011-05-19

Family

ID=43877888

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102009057401A Expired - Fee Related DE102009057401B3 (de) 2009-12-08 2009-12-08 Betriebsverfahren für einen Rechner mit performance-Optimierung durch Gruppieren von Applikationen

Country Status (2)

Country Link
US (1) US8776068B2 (de)
DE (1) DE102009057401B3 (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5825887B2 (ja) * 2011-07-05 2015-12-02 キヤノン株式会社 画像形成装置、画像形成装置の制御方法、及びプログラム
US9959107B2 (en) * 2013-06-28 2018-05-01 Samsung Electronics Co., Ltd. Method and apparatus for updating application
US10210024B2 (en) * 2016-08-23 2019-02-19 Samsung Electronics Co., Ltd. Intelligent controller for containerized applications

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050246678A1 (en) * 2004-04-28 2005-11-03 International Business Machines Corporation Stateful session Enterprise Java Bean initialization method

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060236308A1 (en) * 2005-04-18 2006-10-19 Lamb James A Configurable functionality chaining
US9843650B2 (en) * 2009-09-03 2017-12-12 Avaya Inc. Intelligent module sequencing
DE102009043253A1 (de) 2009-09-28 2011-03-31 Siemens Aktiengesellschaft Verfahren zur Verminderung der Wartezeit bei erstmaliger Durchführung von Arbeitsschritten

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050246678A1 (en) * 2004-04-28 2005-11-03 International Business Machines Corporation Stateful session Enterprise Java Bean initialization method

Also Published As

Publication number Publication date
US8776068B2 (en) 2014-07-08
US20110138392A1 (en) 2011-06-09

Similar Documents

Publication Publication Date Title
DE3911465C2 (de) Verfahren zur automatischen Konfiguration technischer Systeme aus Komponenten
DE102020113347A1 (de) Ausführung von containerisierten prozessen innerhalb der beschränkungen der verfügbaren host-knoten
DE102020203716B4 (de) Computerimplementiertes Verfahren für eine Produktionsplanung und/oder -steuerung eines Produktionssystems und Produktionsplanung und/oder-steuerungssystem
DE112010005096T5 (de) Verfahren und Vorrichtungen zum Bewerten der Ressourcen-Kapazität in einem System von virtuellen Containern
DE112012004099T5 (de) Transaktionsverarbeitungssystem, Verfahren und Programm
DE10119876A1 (de) Verfahren, System und Computerprorammprodukt zur Bereitstellung einer Jobüberwachung
EP0849666A2 (de) Verfahren zum Instantiieren einer versionsbehafteten Klasse
DE102010011658A1 (de) Applikationsplattform und Verfahren zum Betrieb einer Datenverarbeitungseinrichtung mit einer solchen
EP2500823A1 (de) Betrieb eines Datenverarbeitungsnetzes mit mehreren geografisch beabstandeten Datenzentren
DE10059796A1 (de) Steuerung der Lebensdauer von Aktivitäten für die Datenverarbeitung
DE112010003675T5 (de) Adress-Server
DE102012102883A1 (de) Verfahren und System zum Erzeugen eines Quellcodes für ein Computerprogramm zur Ausführung und Simulation eines Prozesses
DE102009057401B3 (de) Betriebsverfahren für einen Rechner mit performance-Optimierung durch Gruppieren von Applikationen
DE102010011652A1 (de) Applikationsplattform und Verfahren zum Betrieb einer Datenverarbeitungseinrichtung mit einer solchen
DE102015114244B4 (de) Bilderzeugungsvorrichtung und ressourcenverwaltungsverfahren
DE102020100215B4 (de) Gleichzeitige Profilbereitstellungen
EP3705993B1 (de) System und verfahren zum auffinden und identifizieren von rechenknoten in einem netzwerk
DE60037972T2 (de) Verfahren und Gerät zum Anbieten von Betriebsmitteln in einem Internet-Gerät
WO2002067151A1 (de) Konfigurator
DE102004011201A1 (de) Verfahren zum Management und zur Überwachung des Betriebs mehrerer in wenigstens ein Kommunikationsnetz eingebundener verteilter Hard- und/oder Softwaresysteme sowie System zur Durchführung des Verfahrens
DE602004011757T2 (de) Datenverarbeitungssystem zur Zuweisung von Objekten an Verarbeitungseinheiten
DE112020003597B4 (de) Verfahren zum gleichzeitigen ausführen von datenbankoperationen
EP1054528B1 (de) Verfahren zum Ausführen einer Anforderung einer Netzwerkverwaltungseinrichtung
EP3163444B1 (de) Rechnerverbund mit automatisierter anforderung und zuordnung von cloud-ressourcen
EP1380908A2 (de) System zur automatischen Konfiguration von Steuerungssoftware

Legal Events

Date Code Title Description
R020 Patent grant now final

Effective date: 20110820

R081 Change of applicant/patentee

Owner name: SIEMENS HEALTHCARE GMBH, DE

Free format text: FORMER OWNER: SIEMENS AKTIENGESELLSCHAFT, 80333 MUENCHEN, DE

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee