DE102008040009A1 - Lastverteiltes Zuweisen von medizinischen Taskflows auf Server einer Serverfarm - Google Patents

Lastverteiltes Zuweisen von medizinischen Taskflows auf Server einer Serverfarm Download PDF

Info

Publication number
DE102008040009A1
DE102008040009A1 DE102008040009A DE102008040009A DE102008040009A1 DE 102008040009 A1 DE102008040009 A1 DE 102008040009A1 DE 102008040009 A DE102008040009 A DE 102008040009A DE 102008040009 A DE102008040009 A DE 102008040009A DE 102008040009 A1 DE102008040009 A1 DE 102008040009A1
Authority
DE
Germany
Prior art keywords
load
application server
server
conditions
request
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
DE102008040009A
Other languages
English (en)
Inventor
Ralf Hofmann
Andreas Schülke
Andreas Siwick
Hans-Martin Dr. Von Stockhausen
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
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 filed Critical Siemens AG
Priority to DE102008040009A priority Critical patent/DE102008040009A1/de
Priority to US12/461,848 priority patent/US8782206B2/en
Publication of DE102008040009A1 publication Critical patent/DE102008040009A1/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16HHEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
    • G16H40/00ICT specially adapted for the management or administration of healthcare resources or facilities; ICT specially adapted for the management or operation of medical equipment or devices
    • G16H40/20ICT specially adapted for the management or administration of healthcare resources or facilities; ICT specially adapted for the management or operation of medical equipment or devices for the management or administration of healthcare resources or facilities, e.g. managing hospital staff or surgery rooms
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16ZINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS, NOT OTHERWISE PROVIDED FOR
    • G16Z99/00Subject matter not provided for in other main groups of this subclass

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Biomedical Technology (AREA)
  • Epidemiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Primary Health Care (AREA)
  • Public Health (AREA)
  • Debugging And Monitoring (AREA)
  • Multi Processors (AREA)

Abstract

Die Erfindung betrifft ein Verfahren, ein System und ein Computerprogramm zum lastverteilten Zuweisen von computergestützten medizinischen Taskflows auf zumindest einem Anwendungsserver (100) einer Serverfarm (10). Dazu werden Anforderungsbedingungen und Lastinformationen in einer Konfigurationsphase konfiguriert. In einer Lastverteilungsphase werden dann die Anforderungsbedingungen erfasst. Darüber hinaus wird die Lastinformation über Lastberechnungsagenten (102) erfasst. Daraufhin kann ein Lastverteilungsdienst (104) einen Ziel-Anwendungsserver berechnen, der gemäß den ermittelten Lastinformationen alle erfassten Anforderungsbedingungen erfüllt.

Description

  • Die Erfindung liegt auf dem Gebiet der Medizintechnik und betrifft insbesondere eine Lastverteilung für komplexe medizinische Taskflows innerhalb einer Serverfarm.
  • Der klinische Alltag basiert heutzutage in der Regel auf einer Gruppe von Servern, auf die eine Gruppe von Clients zugreift. Das Client-Server-System dient zur Verarbeitung von komplexen medizinischen Taskflows. Dabei handelt es sich beispielsweise um modular aufgebaute und/oder verschachtelte Arbeitsabläufe, die beispielsweise eine Kernspinuntersuchung, eine Laboruntersuchung und ein anschließendes Post-Processing der Daten umfassen. Dabei kann die Untersuchung auf dem Magnetresonanzscanner verschiedene Sub-Tasks umfassen, wie beispielsweise das Erzeugen einer geeigneten Messsequenz für die auszuführende Untersuchung und das Anpassen der jeweiligen Messsequenz auf den MR-Scanner. Um den klinischen Betrieb möglichst effizient ausführen zu können, ist es wichtig die auszuführenden Tasks auf die jeweils dafür geeigneten Server zuzuweisen. Insbesondere müssen die Server über die geeigneten technischen Vorraussetzungen verfügen, um den Task überhaupt ausführen zu können.
  • Aus der Informatik sind eine Vielzahl von Verfahren auf dem Gebiet der Lastberechnung beziehungsweise des Loadbalancing bekannt. Dabei sind grundsätzlich zwei unterschiedliche Ansätze zu unterscheiden: Zum einen gibt es software-basierte und hardware-basierte Lastverteilungssysteme. Als Beispiel für einen software-basierten Ansatz sei auf das Lastverteilungssystem der Firma Microsoft verwiesen, das sogenannte Microsoft Network Loadbalancing (NLB). Eingehende zu verarbeitende Datenpakete werden dabei an alle grundsätzlich verfügbaren Servermaschinen weitergeleitet. Dann wird geprüft, welche Servermaschine für den jeweiligen Dienst bzw. für das jeweilige Paket am Besten geeignet ist. Diese Servermaschine wird dann identifiziert und zum Verarbeiten des jeweiligen Datenpaketes vorbereitet. Auf allen anderen Servermaschinen wird das empfangene Datenpaket gelöscht. Dieses Vorgehen führt zu einem relativ hohen Datenverkehr.
  • Ein Beispiel einer hardware-basierten Lastverteilung ist das System „NitroSwitch” der Firma NENTEC Netzwerktechnologie GmbH. Im Unterschied zu dem eben vorgestellten System der Firma Microsoft wird hier das zu verarbeitende Datenpaket nur an die Servermaschine weitergeleitet, auf der letztendlich die Verarbeitung stattfinden soll.
  • In der Informatik sind darüber hinaus eine Vielzahl von Algorithmen bekannt, nach denen eine Lastverteilung gesteuert werden kann. Hierzu zählen beispielsweise das sogenannte Weighted-Round-Robin-Verfahren, das Weighted-Least-Connections-Verfahren, das Weighted-Least-Traffic-Verfahren etc. Bei der Lastverteilung nach dem NitroSwitch kann bestimmt werden, welcher der vordefinierten Algorithmen in dem speziellen Fall zur Anwendung kommen soll.
  • Neben den beiden vorstehend erwähnten Vorschlägen aus dem Stand der Technik zur Lastverteilung aus der Informatik ist noch eine Vielzahl von weiteren Vorschlägen bekannt. Bei den bekannten Verfahren sind die Kriterien, aufgrund deren eine Lastverteilung erfolgt jedoch meistens hardware-basiert und vorgegeben und passen nicht auf die spezifischen Charakteristika eines medizintechnischen Taskflows.
  • Ein weiteres bekanntes System aus den Stand der Technik ist in der US 7,127,716 der Firma Hewlett-Packard Development offenbart. Dieses Verfahren basiert auf einer latenzzeitbasierten Lastverteilung und setzt ein komplexes Verwaltungssystem für Arbeitsabläufe voraus. Vor der Ausführung eines bestimmten Auftrages wird das Serversystem erst im Hinblick auf den jeweils auszuführenden Auftrag kalibriert. Dabei wird im Vorfeld die anfallende Arbeitslast berechnet und im Hinblick auf die verfügbaren Server so verteilt, dass insgesamt die Latenzzeit minimiert werden kann. Das hier vorgeschlagene Verfahren ist aus mehreren Gründen für die Anwendung in einem klinischen bzw. medizintechnischen Kontext nicht erfolgversprechend, da hier medizin-spezifische und klinische Kriterien berücksichtigt werden müssen, um eine optimale Lastverteilung erreichen zu können.
  • Aufgabe der folgenden Erfindung ist es daher, einen Weg aufzuzeigen, mit dem ein komplexer medizinischer Taskflow auf mehrere Server einer Serverfarm verbessert aufgeteilt werden kann. Darüber hinaus soll es möglich sein, unterschiedlichem Versionen von Applikationen unter Berücksichtigung von serverspezifischen Merkmalen und taskflow-spezifischen Anforderungen auf dem Gebiet der Medizintechnik in die Lastverteilung einzubinden.
  • Diese Aufgabe wird durch die beiliegenden Hauptansprüche gelöst.
  • Nachstehend wird die Lösung der Aufgabe in Bezug auf das Verfahren beschrieben. Hierbei erwähnte Merkmale, Vorteile oder alternative Ausführungsformen sind ebenso auch auf die anderen beanspruchten Gegenstände zu übertragen und umgekehrt. Mit anderen Worten können auch die gegenständlichen Ansprüche (die beispielsweise auf ein System oder ein Produkt gerichtet sind) mit den Merkmalen, die in Zusammenhang mit dem Verfahren beschrieben oder beansprucht sind, weitergebildet und umgekehrt sein. Die entsprechenden funktionalen Merkmale des Verfahrens werden dabei durch entsprechende gegenständliche Module, insbesondere durch Hardware-Module, des Systems bzw. der Vorrichtung ausgebildet.
  • Die Aufgabe wird insbesondere gelöst durch ein Verfahren zum lastverteilten Zuweisen von computer-gestützten medizinischen Taskflows auf zumindest einen Anwendungsserver einer Serverfarm, wobei das Verfahren folgende Schritte umfasst:
    • – Erfassen eines medizinischen Taskflows mit konfigurierbaren Anforderungsbedingungen
    • – Erfassen von Lastinformationen von verfügbaren Anwendungsservern der Serverfarm, wobei es – in der Regel im Vorfeld – konfigurierbar ist, welche Lastinformationen erfasst werden sollen, in dem auf ausgewählten oder auf allen Anwendungsservern zumindest eine Programmerweiterung installiert ist.
    • – Ermitteln zumindest eines Ziel-Anwendungsservers, wobei zumindest ein solcher Anwendungsserver aus der Serverfarm als Ziel-Anwendungsserver bestimmt wird, der gemäß den erfassten Lastinformationen die erfassten Anforderungsbedingungen erfüllt.
  • Im Folgenden werden die im Rahmen dieser Anmeldung verwendeten Begrifflichkeiten näher erläutert.
  • Unter dem Begriff „lastverteiltes Zuweisen” ist ein Zuordnen von Taskflows auf einzelne oder eine Gruppe von Servern einer Serverfarm zu verstehen, wobei die aktuelle Auslastung der Server innerhalb des Netzwerkes berücksichtigt werden soll. Dabei sollen konfigurierbare Kriterien zur Anwendung kommen, die insbesondere auf dem Gebiet der Medizintechnik von Relevanz sind.
  • Bei dem Taskflow handelt es sich üblicherweise um einen medizinischen Taskflow, der aus einer Abfolge von mehreren zeitlich versetzt ablaufenden und/oder ineinander verschachtelten Tasks besteht. Die Tasks basieren auf unterschiedlichen Applikationen, die ihrerseits in unterschiedlichen Versionen in das Netzwerk eingebunden sein können.
  • Die Server der Serverfarm sind über ein Computernetzwerk miteinander verbunden und können für spezifische medizintechnische Probleme ausgelegt sein. Dabei kann es sich beispielsweise um einen Postprocessing-Server, um spezielle 3D-Volumen-Berechnungskarten oder um MR-Scanner handeln.
  • Die Anforderungsbedingungen beziehen sich auf den Taskflow und sind im Hinblick auf die medizinische Fragestellung konfigurierbar. Die Anforderungsbedingungen umfassen in der Regel eine Reihe von Sub-Bedingungen, die über mehrere logische Operatoren miteinander verknüpfbar sind. Damit können sehr komplexe Merkmalsbedingungen formuliert werden, die im Bezug auf einen Taskflow grundsätzlich erfüllt sein müssen. Vorzugsweise können sowohl die Anforderungsbedingungen als auch die Taskflows gruppiert werden, sodass z. B. eine Anforderungsbedingung für eine bestimmte Gruppe von Taskflows konfigurierbar wird.
  • Bei den Lastinformationen handelt es sich um Daten in Bezug auf die jeweilige Last der Anwendungsserver der Serverfarm. Die Lastinformationen können sich auf einen vergangenen Zeitraum, auf den aktuellen Zeitraum und auf einen zukünftigen Zeitraum beziehen. Das Erfassen der Lastinformation wird über sogenannte Lastberechnungsagenten ausgeführt. Die Lastberechnungsagenten sind jeweils auf einem Anwendungsserver installiert und dienen dazu, last-bezogene Informationen in Bezug auf den jeweiligen Server und/oder in Bezug auf das Netzwerk (z. B. Netzwerkverbindungen) zusammen zu tragen und zu erfassen. Gemäß einer bevorzugten Ausführungsform der Erfindung ist es vorgesehen, dass es einstellbar ist, welche Lastinformationen erfasst werden sollen. Damit ist es möglich, das Verfahren zum lastverteiltem Zuweisen ganz detailliert und dezidiert auf die Anwendungssituation hin zuschneiden zu können.
  • Ein wesentlicher Vorteil der erfindungsgemäßen Lösung ist in der Konfigurierbarkeit der unterschiedlichen Bedingungen zu sehen. Zum einen ist es möglich, die Anforderungsbedingungen dezidiert zu konfigurieren. Durch eine Vielzahl von logischen Operatoren, die bereitgestellt werden, um bestimmte Sub-Bedingungen miteinander zu verknüpfen, sind sehr komplexe Merkmalsbedingungen als Anforderungsbedingungen formulierbar. Beispielsweise kann formuliert werden, dass eine Hochleistungsgraphikkarte mit mindestens zwei Gigabyte freiem Ar beitsspeicher erforderlich ist, um ein 3D-Rendering für den spezifischen medizinischen Taskflow durchzuführen. Zum anderen sind die Lastinformationen konfigurierbar. Mit anderen Worten ist es möglich, in jedem Anwendungsfall zu bestimmen, welche Lastinformationen erfasst werden sollen und als relevant gelten. In einem Fall kann es beispielsweise relevant sein, wie viel Arbeitsspeicher zur Speicherung von komplexen Bilddatensätzen auf einen Anwendungsserver vorhanden ist, während in einem zweiten Fall dieses Merkmal unerheblich ist und es vielmehr auf die jeweilige Rechenleistung des Anwendungsservers ankommt, um beispielsweise ein kompliziertes Post-Processing durchzuführen.
  • Gemäß einem Aspekt der vorliegenden Erfindung ist es vorgesehen, dass alle oder einzelne der vorstehend erwähnten Verfahrensschritte automatisch ausgeführt werden. So ist es in dieser Ausführungsform insbesondere vorgesehen, dass das Ermitteln eines Ziel-Anwendungsservers ohne jegliche Benutzerinteraktion bestimmt wird. Damit wird es möglich, das Lastverteilen wesentlich effizienter und gezielter ausführen zu können und Fehler zu vermeiden, die dadurch entstehen, dass ein nicht geeigneter Anwendungsserver für einen bestimmten Taskflow manuell bestimmt worden ist.
  • Das erfindungsgemäße Verfahren kann in zwei Zeitphasen gegliedert sein: Zum einen gibt es eine Konfigurationsphase, in der die Anforderungsbedingungen konfiguriert werden können und/oder in der die Lastinformation konfiguriert werden kann. Zum anderen gibt es eine Lastverteilungsphase, in der tatsächlich zumindest ein Ziel-Anwendungsserver ermittelt wird. Dabei wird auf die in der Konfigurationsphase definierten Bedingungen und Lastinformationen zurückgegriffen. Grundsätzlich sind die beiden Zeitphasen voneinander unabhängig, wobei die Lastverteilungsphase nach der Konfigurationsphase stattfinden muss.
  • Gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung ist es vorgesehen, dass der Taskflow automatisch an den im Vorfeld ermittelten Ziel-Anwendungsserver zum Zwecke der Ausführung weitergeleitet wird. Damit wird sicher gestellt, dass keine Wartezeit überbrückt werden muss, nachdem der bestgeeignete Ziel-Anwendungsserver ermittelt worden ist und bevor der Task auf dem ermittelten Ziel-Anwendungsserver ausgeführt werden kann. Damit kann also die Effizienz des gesamten medizinischen Taskflows gesteigert werden.
  • Wie vorstehend bereits erwähnt, kann die Anforderungsbedingung nach komplexen Kriterien konfiguriert werden. Diese umfasst in der Regel eine Vielzahl von Sub-Bedingungen, die über mehrere logische Operatoren (UND, ODER, Negation etc.) verknüpft werden können. Darüber hinaus sind auch Verschachtelungen bzw. Kaskaden von Anforderungsbedingungen formulierbar. In einer bevorzugten Ausführungsform ist es vorgesehen, dass bestimmte Minimalanforderungen formuliert werden können, die beispielsweise in einer XML-Datei spezifiziert sein können. Darüber hinaus können Präferenzen formuliert werden, indem eine Sub-Bedingung ihrerseits gewichtet wird. Damit kann beispielsweise folgende Anforderungsbedingung formuliert werden: „Volumen-Renderingkarte oder Hochleistungsgrafikkarten, wenn möglich Volumen-Renderingkarte”. Aufgrund der definierbaren Präferenz wird in dem vorstehend erwähnten Beispiel ein Anwendungsserver, der lediglich eine Hochleistungsgrafikkarte besitzt also nur als Ausweichlösung (sozusagen als Fallback) und nur in dem Fall verwendet, wenn kein anderer Anwendungsserver mit einer Volumen-Renderingkarte verfügbar ist. Darüber hinaus können optionale Merkmale als Anforderungsbedingung formuliert werden. Beispielsweise ist es möglich folgende Bedingung zu formulieren: „64-Bit-Prozessor wenn möglich: mit zwei Kernen”. In diesem Beispiel wird für einen bestimmten Taskflow ein 64-Bit-Prozessor benötigt. Für eine optimale Parallelisierung der in dem Taskflow enthaltenen Tasks ist jedoch ein Zweikern-Prozessor von Vorteil. Dieses Merkmal kann mit der vorstehend formulierten Anforderungsbedingung spezifiziert werden. Die Flexibilität der Lastverteilung kann damit deutlich gesteigert werden.
  • Gemäß einem Aspekt der vorliegenden Erfindung umfasst eine Anforderungsbedingung grundsätzlich neben physikalischen Systemparametern auch logische Merkmale. Eine Anforderungsbedingung kann von daher ausschließlich physikalische Systemparameter betreffen, ausschließlich logische Merkmale betreffen oder eine Kombination von beidem. Als Systemparameter sind hier beispielweise eine CPU-Auslastung, eine Speicherbelegung, eine Netzwerkauslastung etc. zu nennen. Die Systemparameter beziehen sich auf physikalisch messbare Größen. Ein logisches Merkmal ist zum Beispiel „Notfallserver”. Dieses Merkmal richtet eine Suche ausschließlich auf solche Anwendungsserver, die für Notfälle reserviert bleiben sollen.
  • Durch das logische Verknüpfen der Vielzahl von Sub-Bedingungen können komplette Anforderungsbedingungen formuliert werden und auch Fallback-Strategien für das lastverteilte Zuweisen von Taskflows, falls der als optimal bestimmte Ziel-Anwendungsserver nicht verfügbar ist. Die Möglichkeiten zur Formulierung von Alternativstrategien sind sehr weitreichend. Damit kann vorteilhafterweise das erfindungsgemäße Verfahren sehr flexibel auf den jeweiligen Anwendungsfall angepasst werden.
  • Üblicherweise ist es vorgesehen, dass jeweils ein Lastberechnungsagent auf jeweils einem Anwendungsserver der Serverfarm installiert ist.
  • Gemäß einem weiteren Aspekt der Erfindung ist es vorgesehen, dass jeweils ein Lastberechnungsagent die Last des jeweiligen Anwendungsservers berechnet, auf dem er installiert ist. Damit ist eine 1:1-Zuordnung zwischen einem Lastberechnungsagenten und einem Anwendungsserver vorgesehen.
  • Grundsätzlich sollte das erfindungsgemäße Verfahren damit enden, dass zumindest ein Ziel-Anwendungsserver ermittelt wird, auf dem der jeweilige Taskflow ausgeführt werden kann. Es ist jedoch auch möglich, dass kein Ziel-Anwendungsserver verfügbar ist. In diesem Fall muss das Verfahren zu einem späteren Zeitpunkt wiederholt werden, bei dem eine andere Lastinformation gegeben ist. Ebenso ist es möglich, dass nicht nur ein Ziel-Anwendungsserver ermittelt wird, sondern eine Gruppe von grundsätzlich möglichen und verfügbaren Ziel-Anwendungsservern. In diesem Fall ist es sehr hilfsreich, dass zusätzlich ein Lastergebnis ausgegeben wird. Das Lastergebnis wird üblicherweise in Form einer Liste dargestellt und quantifiziert eine Menge von ermittelten Ziel-Anwendungsservern dahingehend, inwieweit sie die erfassten Anforderungsbedingungen erfüllen. So kann es beispielsweise möglich sein, dass ein erster Ziel-Anwendungsserver und ein zweiter Ziel-Anwendungsserver die ermittelten Anforderungsbedingungen zu 100% erfüllen, während weitere Anwendungsserver die ermittelten Anwendungsbedingungen nur zu 80% erfüllen. Weitere Ziel-Anwendungsserver werden dann nach ihrem Erfüllungsgrad quantifiziert. Damit wird eine weitere Information bereitgestellt, die das Ergebnis eines Matchings zwischen erfassten, konfigurierten Anforderungsbedingungen und erfassten, konfigurierten Lastinformationen kennzeichnet. Dies kann beispielsweise in Form einer Art Hitliste erfolgen.
  • Falls eine Gruppe von Ziel-Anwendungsservern ermittelt werden kann, ist es in einer vorteilhaften Weiterbildung der Erfindung vorgesehen, dass die ermittelten Ziel-Anwendungsserver hinsichtlich im Vorfeld konfigurierbarer Kriterien priorisiert werden. Damit ist es möglich, den optimal passenden Ziel-Anwendungsserver aus der Menge der grundsätzlich verfügbaren und passenden Anwendungsserver zu bestimmen.
  • Ein weiterer Flexibilitätsgrad kann dadurch erreicht werden, dass die beiden Erfassungsvorgänge grundsätzlich unabhängig voneinander ausgeführt werden können. Insgesamt kann das Erfassen der Anforderungsbedingungen im Hinblick auf den Taskflow unabhängig von dem Erfassen der Lastinformation über die Lastberechnungsagenten erfolgen. Damit können die beiden Erfassungsvorgänge voneinander entkoppelt werden. Dies ist jedoch nur ein optionales Merkmal.
  • Gemäß einem Aspekt der vorliegenden Erfindung ist das Verfahren computerimplementiert und kann von Software und/oder Hardwaremodulen gesteuert werden. Insbesondere ist es vorgesehen, dass in der Konfigurationsphase Benutzerinteraktionen notwenig sind, um die jeweiligen Benutzereingaben tätigen zu können. Im Unterschied dazu kann das Verfahren in der Lastverteilungsphase vollautomatisch ohne weitere Benutzerinteraktion ausgeführt werden.
  • Eine weitere Aufgabenlösung besteht in einem Computerprogramm, einem Computerprogrammprodukt und in einem System zum lastverteilten Zuweisen von computergestützten medizinischen Taskflows auf zumindest einen Anwendungsserver einer Serverfarm.
  • Das System umfasst eine Vielzahl von Anwendungsservern einer Serverfarm, die über ein Computernetzwerk miteinander in Datenaustausch stehen. Das System umfasst ein Anforderungsmodul zum Erfassen von Anforderungsbedingungen der Taskflows. Das System umfasst darüber hinaus Lastberechnungsagenten, die dazu bestimmt sind, Lastinformationen der jeweiligen Anwendungsserver zu erfassen. Des Weitern umfasst das System einen Lastverteilungsdienst, der dazu ausgebildet ist, einen Ziel-Anwendungsserver zu ermitteln, wobei der Lastverteilungsdienst zumindest einen Anwendungsserver aus der Serverfarm als Ziel-Anwendungsserver bestimmt, der gemäß den von den jeweiligen Lastberechnungsagenten erfassten Lastinformationen, die von dem Anforderungsmodul erfassten Anforderungsbedingungen erfüllt.
  • Die Lastberechnungsagenten dienen zum Berechnen der Last in Bezug auf den ihnen zugeordneten Anwendungsserver (inklusive der Netzwerkverbindungen und der Schnittstellen etc.) und sind nicht nach außen sichtbar, sondern fungieren als „Außenposten” des Lastverteilungsdienstes. Sie hosten sämtliche Programmerweiterungen.
  • Der Lastverteilungsdienst ist vorzugsweise zentral ausgebildet und dient zum Entgegennehmen des erfassten Taskflows, zum Beauftragen der jeweiligen Lastberechnungsagenten, zum Einholen bzw. Sammeln und gegebenenfalls zum Verarbeiten der berechneten Lastinformationen der Lastberechnungsagenten und zum Ermitteln eines Ziel-Anwendungsservers und gegebenenfalls zum Darstellen eines Ergebnisses. Der Lastverteilungsdienst fungiert sozusagen als Mittler, um den ermittelten Taskflow mit seinen Anforderungsbedingungen entgegenzunehmen und die Lastinformationen von den verfügbaren Anwendungsservern zu erfragen. Der Mittler beauftragt alle beteiligten Lastberechnungsagenten und sammelt deren Ergebnisse ein. Diese Ergebnisse werden dann mit den verfassten Anforderungsbedingungen für den jeweiligen Taskflow abgeglichen bzw. gematched. Der Lastverteilungsdienst ist als Schnittstelle nach außen sichtbar.
  • Das Anforderungsmodul ist gemäß einem Aspekt der Erfindung als XML-Datei ausgebildet, die eine entsprechende Konfiguration umfasst. Die Konfiguration kann neu erzeugt oder modifiziert werden, so dass unterschiedliche Anforderungsbedingungen konfiguriert werden können.
  • Das System umfasst des Weiteren eine Oberfläche, auf der ein Ergebnis des erfindungsgemäßen Verfahrens darstellbar ist. Diese Oberfläche ist vorzugsweise auf dem Lastverteilungsdienst ausgebildet und kann darüber hinaus auch entweder auf einem Lastberechnungsagenten, auf mehreren ausgewählten oder auf allen Lastberechnungsagenten ausgebildet sein. Sie dient dazu, den ermittelten Ziel-Anwendungsserver oder die Gruppe der ermittelten Ziel-Anwendungsserver anzugeben und auf einer Oberfläche darzustellen.
  • Gemäß einer bevorzugten Ausführungsform sind die jeweiligen Anwendungsserver mit zumindest einer Programmerweiterung ausgebildet. Die Programmerweiterung kann in Form eines Plug-Ins ausgebildet sein, das auf dem Anwendungsserver installiert ist. Je nach Anwendungsfall ist es möglich, auf einem Anwen dungsserver keine Programmerweiterung, lediglich eine Programmerweiterung oder mehrere unterschiedliche Programmerweiterungen vorzusehen. Die Programmerweiterungen dienen dazu, die Lastberechnung auf den jeweiligen Anwendungsfall hin konfigurieren bzw. auslegen zu können. Damit wird es möglich, die Lastverteilung situationsspezifisch zu konfigurieren.
  • Darüber hinaus ist es möglich, den Lastverteilungsdienst mit einer weiteren Funktionalität auszubilden, sodass der Mittler automatisch den Taskflow an den ermittelten Ziel-Anwendungsserver zum Zwecke der Ausführung zuweist. In diesem Fall erfolgt keine weitere Benutzerinteraktion.
  • In einer bevorzugten Ausführungsform der vorliegenden Erfindung umfasst das System also zwei lastberechnungs-bezogenen Instanzen: Zum einen zumindest einen Lastverteilungsdienst und zum anderen eine Vielzahl von Lastberechnungsagenten. Vorzugsweise ist auf jedem Anwendungsserver ein Lastberechnungsagent installiert. Gemäß einer ersten Variante der Erfindung ist es vorgesehen, dass nur ein Lastverteilungsdienst ausgebildet ist. Der kann auf einem Anwendungsserver installiert sein. Um die Ausfallsicherheit des gesamten Systems zu erhöhen, kann es in einer zweiten Variante der Erfindung auch vorgesehen sein, mehrere Lastverteilungsdienste vorzusehen. Sie können auf unterschiedlichen Anwendungsservern installiert sein und sind über ein Netzwerk miteinander verbunden. Ebenso kann der Lastverteilungsdienst auf einem Taskflowverwaltungssystem oder auf einer über das Netzwerk angeschlossenen Instanz ausgebildet sein.
  • Der Lastverteilungsdienst arbeitet nach einem abhängigen Modus. Bei dem abhängigen Modus ist es vorgesehen, dass der Lastverteilungsdienst die Auslastung des jeweiligen Anwendungsservers bzw. die Lastinformationen in Abhängigkeit von den Anforderungsbedingungen berechnet, die er von dem Taskflowverwaltungssystem erhalten hat. Sobald eine Anforderungsbedingung an einen Taskflow geknüpft ist, wird diese auch unbedingt berücksichtigt. Im anderen Fall, also wenn dem Taskflow keine Anforderungsbedingung zugeordnet ist, greifen vorkonfigurierbaren Regeln des Lastverteilungsdienstes.
  • Mit anderen Worten ist es also vorgesehen, dass der Lastverteilungsdienst auf vorkonfigurierbare Regeln zugreift, die es ihm ermöglichen, die jeweiligen Anfragen an die Lastberechnungsagenten spezifisch zu gestalten. Mit anderen Worten kann es aufgrund der Anforderungsbedingungen sinnvoll sein, die Lastberechnungsagenten unterschiedlich anzusprechen. Abhängig von den erfassten Anforderungsbedingungen kann es beispielsweise Sinn machen, einen bestimmten Lastberechnungsagenten eines bestimmten Anwendungsservers gar nicht erst anzusprechen, weil auf ihm die angeforderte Konfiguration nicht bereit steht (beispielsweise zu wenig CPU-Ressourcen), während andere Anwendungsserver jedoch grundsätzlich die erfassten Anforderungsbedingungen erfüllen können und somit über deren Lastberechnungsagenten angesprochen werden sollen.
  • Ein Lastberechnungsagent kann mit Gewichtungen belegt werden, wobei die Gewichtungen jeweils auf die Relevanz des jeweiligen Lastberechnungsagenten hinweisen soll.
  • Nach dem Erfassen der Lastinformationen über die Vielzahl der Lastberechnungsagenten können diese je nach Anwendungsfall hin in einer Weiterbildung der Erfindung mit Gewichtungsfaktoren belegt sein und werden anschließend vom Lastverteilungsdienst erfasst. Der Lastverteilungsdienst kann dann den Ziel-Anwendungsserver ermitteln. Dies erfolgt durch ein Abgleichen der erfassten Lastinformationen mit den erfassten Anforderungsbedingungen. Bei einem erfolgreichen Matching (also die geforderten Anforderungsbedingungen könne von einem bestimmten Anwendungsserver gemäß Lastberechnungsagent erfüllt werden) wird der Taskflow auf dem jeweiligen Ziel-Anwendungsserver zum Zwecke der Ausführung weitergeleitet.
  • Die vorstehend beschriebenen, erfindungsgemäßen Ausführungsformen des Verfahrens können auch als Computerprogrammprodukt ausgebildet sein, wobei der Computer zur Durchführung des oben beschriebenen, erfindungsgemäßen Verfahrens veranlasst wird, wenn das Programm auf dem Computer bzw. einem Prozessor des Computers ausgeführt wird.
  • Eine alternative Aufgabenlösung sieht ein Speichermedium vor, das zur Speicherung des vorstehend beschriebenen, computerimplementierten Verfahrens bestimmt ist und von einem Computer lesbar ist.
  • Darüber hinaus ist es möglich, dass einzelne Komponenten des vorstehend beschriebenen Verfahrens oder Systems (die Lastberechnungsagenten, den Lastverteilungsdienst, das Anforderungsmodul) in einer verkaufsfähigen Einheit und die restlichen Komponenten in einer anderen verkaufsfähigen Einheit – sozusagen als verteiltes System – ausgeführt werden können.
  • In der folgenden detaillierten Figurenbeschreibung werden nicht einschränkend zu verstehende Ausführungsbeispiele mit deren Merkmalen und weiteren Vorteilen anhand der Zeichnung besprochen. In dieser zeigen:
  • 1 eine übersichtsartige Darstellung eines erfindungsgemäßen Systems gemäß einer bevorzugten Ausführungsform, und
  • 2 ein Ablaufdiagramm gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung.
  • Im Zusammenhang mit 1 soll der grundlegende Aufbau eines erfindungsgemäßen Systems zum lastverteilten Zuweisen von computergestützten medizinischen Taskflows auf zumindest einen Anwendungsserver 100 einer Serverfarm 10 erläutert werden.
  • Im klinischen Alltag umfassen medizinische Taskflows in der Regel eine Vielzahl von komplexen Tasks, die in einer bestimmten zeitlichen Abfolge ausgeführt werden müssen. Dabei können die Tasks wiederum Sub-Tasks umfassen und sie können ineinander verschachtelt oder verschränkt sein. Beispielsweise kann der Task „Untersuchungsplanung für den Patienten X” den Task „MR-Aufnahme des Schädels” umfassen. Dieser Task kann beispielweise die Sub-Tasks umfassen „Generiere Messsequenz für den MR-Scanner”, „Erfasse Bilddaten”, „Postprocessing der erfassten Bilddaten” etc.
  • Jeder Taskflow hat spezifischen Anforderungsbedingungen. So setzt beispielsweise der Taskflow „Generiere MR Gehirnscan” andere technische Vorraussetzungen voraus, als der Taskflow „Untersuchung des Blutes auf bestimmte Laborwerte”. Im ersten Fall müssen andere technische Parameter erfüllt sein, um den Taskflow überhaupt zur Ausführung bringen zu können. Von daher ist es in der Praxis sehr wichtig, die Anforderungsbedingungen auch für medizintechnische Taskflows definieren und formulieren zu können. Erfindungsgemäß können deshalb die Anforderungsbedingungen im Vorfeld in einer Konfigurationsphase konfiguriert werden. Dies erfolgt üblicherweise über eine Benutzerschnittstelle, etwa in Form einer Maske auf dem Bildschirm.
  • Wie in 1 dargestellt, erfolgt das Verwalten der klinischen Taskflows in einem Taskflowverwaltungssystem 300. Das Taskflowverwaltungssystem 300 ist über ein Netzwerk 200 an die jeweiligen Anwendungsserver 100 angeschlossen und ebenfalls Bestandteil der Serverfarm 10.
  • Erfindungsgemäß sind die Server 100 (in diesem Dokument auch Anwendungsserver genannt) mit weiteren Modulen ausgestattet, sodass einen erweiterte Funktionalität auf den Servern 100 ausgeführt werden kann.
  • In einer bevorzugten Ausführungsform ist jeder Server 100 mit einem Lastberechnungsagenten 102 ausgestattet, der dazu bestimmt ist, die Last des jeweiligen Servers 100 zu ermitteln bzw. zu errechnen. Grundsätzlich können auch mehrere Lastberechnungsagenten auf einem Server 100 ausgebildet sein. Dies macht beispielsweise dann Sinn, wenn die Lastberechnung eine eher komplexe Aufgabe darstellt und dafür mehr Rechenleistung notwendig ist, die dann auf mehrere Lastberechnungsagenten verteilt werden kann. Alternativ ist es auch möglich, einen Lastberechnungsagenten 102 für eine Gruppe von Servern 100 vorzusehen, wobei der jeweilige Lastberechnungsagent 102 die Lasten der ihm zugeordneten Server 100 berechnen soll.
  • Gemäß einem weiteren Aspekt der vorliegenden Erfindung kann (aber muss nicht) ein Server 100 zumindest eine Programmerweiterung 101 umfassen. Es kann also – wie auch in 1 dargestellt – der Fall sein, dass einzelne Server 100 keine Programmerweiterung 101, lediglich eine Programmerweiterung 101 oder auch mehrere unterschiedliche Programmerweiterungen 101 umfassen.
  • Des Weiteren ist es vorgesehen, dass auf zumindest einem Server 100 der Serverfarm 10 ein Lastverteilungsdienst 104 installiert ist (in 1 auf zwei Anwendungsservern 100). Er dient dazu, den entsprechenden Taskflow von den Taskflowverwaltungssystem 300 entgegenzunehmen und mit oder ohne weitere Verarbeitung an die jeweiligen Lastberechnungsagenten 102 der Server 100 der Serverfarm 10 weiterzuleiten, damit die Lastberechnungsagenten 102 dann ihre jeweilige Last berechnen und an ihn (an dem Lastverteilungsdienst 104) zurücksenden können. Entsprechend empfängt der Lastverteilungsdienst 104 die Ergebnisse der Lastberechnungsagenten 102 und verarbeitet sie weiter, um den Ziel-Anwendungsserver zu bestimmen. Je nach Ergebnis des Verfahrens können, ein oder mehrere Ziel-Anwendungsserver ermittelt werden. Ein Ziel-Anwendungsserver kennzeichnet sich dadurch, dass er die erfassten Anforderungsbedingungen des Taskflows gemäß den aktuellen ermittelten Lastinformationen des ermittelten Servers 100 erfüllen kann.
  • Im Zusammenhang mit 2 soll ein grundsätzlicher Ablauf gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung vorgestellt werden. Wie in 2 angedeutet, kann das Verfahren grundsätzlich in zwei aufeinanderfolgende Zeitphasen eingeteilt werden. In einer ersten Konfigurationsphase werden alle zu konfigurierenden Parameter konfiguriert. In einer zweiten Lastverteilungsphase wird dann die tatsächliche Last ermittelt, die der jeweilige Taskflow benötigt. Die zweite Lastverteilungsphase weist zwei weitere Sub-Phasen auf, die unabhängig voneinander zur Ausführung gebracht werden können: Eine zum Erfassen von Parametern dienende Erfassungsphase S10, S15, S20 und eine der eigentliche Lastberechnung dienende Lastberechnungsphase S25.
  • In einem ersten Schritt S1 werden die Anforderungsbedingungen konfiguriert. Hier kann festgelegt werden, welche Anforderungsbedingungen überhaupt zu erfassen sind.
  • In einem zweiten Schritt S5 werden die zu erfassenden Lastinformationen konfiguriert.
  • In einem Schritt S10 wird der aktuelle Taskflow erfasst, indem der Taskflow auf dem Taskflowverwaltungssystem 300 gestartet werden soll.
  • In einem Schritt S15 werden die Anforderungsbedingungen des Taskflows erfasst werden. Vorzugsweise werden die Anforderungsbedingungen zunächst vom Taskflowverwaltungssystem 300 an den Lastverteilungsdienst 104 gesendet.
  • Daraufhin können in einem Schritt S20 die Lastinformationen ermittelt werden. Dies erfolgt über die jeweiligen Lastberechnungsagenten 102. Dazu reicht jeder der Lastberechnungsagenten 102 die jeweils erfassten Anforderungsbedingungen an alle Lastberechnungsagenten 102 weiter. Jeder der Lastberechnungsagenten 102 seinerseits leitet diese weiter an alle gehosteten Programmerweiterungen 101, die dann jeweils ein (Teil-)Ergebnis berechnen. Die Teilergebnisse der Programmerweiterungen 101 werden anschließend vom zugehörigen Lastberechnungsagenten 102 konsolidiert und an den Lastverteilungsdienst 104 gesendet.
  • In einem letzten Schritt S25 wird dann der zumindest eine Ziel-Anwendungsserver aufgrund der erfassten Anforderungsbedingungen und aufgrund der erfassten Lastinformationen berechnet. Der Lastverteilungsdienst 104 konsolidiert dazu ebenfalls die Ergebnisse der Lastberechnungsagenten 102 und ermittelt den optimalen Anwendungsserver 100. Danach gibt der Lastverteilungsdienst 104 das konkrete Ergebnis an das Taskflowverwaltungssystem 300 zurück, damit dieses den Taskflow auf dem ermittelten Ziel-Anwendungsserver starten kann.
  • Für den Fachmann liegt es auf der Hand, dass es sinnvoll ist, das Ergebnis des Lastverteilungsverfahrens anzuzeigen und bereitzustellen. Üblicherweise erfolgt dies beispielsweise auf dem Lastverteilungsdienst 104, der eine entsprechende Benutzerschnittstelle aufweist. Ebenso und alternativ ist es möglich, das Ergebnis des Verfahrens auch an das Taskflow-Managementsystem 300 weiterzuleiten.
  • Die Anforderungsbedingungen basieren sowohl auf physikalischen Systemparametern, als auch auf logischen Merkmalen und können in anderen Weiterbildungen noch weitere Parameter des Systems betreffen. Sie können durch logische Operatoren auf vielfältige Weise als boole'sche Konfiguration formuliert werden.
  • Ebenso können die Lastinformationen, die es zu erfassen gilt, konfiguriert werden. Vorzugsweise geschieht dies über eine entsprechend konfigurierte Maske. Dazu wird auf einem Server 100 die Programmerweiterung 101 bereitgestellt. Dies erfolgt vorzugsweise in Form eines Plug-In's. Das Plug-In dient dazu, Berechnungsanfragen vom Lastberechnungsagenten 102 entgegenzunehmen. Vorzugsweise wird für diesen Zweck eine Methode „DetectFreeCapacity()” aufgerufen. Eine Berechnungsanfrage enthält eine komplexe Merkmalsbedingung (Server Query) mit in der Regel einer Vielzahl von Anforderungsbedingungen. Die Programmerweiterung 101 bewertet nun abhängig von der Konfiguration – alle, einige oder keine der Sub-Bedingungen der Anforderungsbedingung. Die Bewertung erfolgt auf einer normierten Skala von 0–100. Dabei bedeutet der Wert 0, dass das entsprechende Merkmal der Anforderungsbedingung vollständig ausgelastet ist und für die aktuelle Lastanfrage nicht mehr zur Verfügung steht, während der Wert 100 die vollständige Verfügbarkeit signalisieren soll. Am Beispiel der Volumenrenderingkarte mit 8 GB Speicher, bedeutet also ein Wert von 25, dass von den verfügbaren 8 GB noch 2 frei sind. Nachdem alle für die Programmerweiterung 101 relevanten Anforderungsbedingungen mit ihren Sub-Bedingungen entsprechend bewertet worden sind, gibt die Programmerweiterung 101 eine bewertete komplexe Antwort an den Lastberechnungsagenten 102 zurück.
  • In bevorzugten Weiterbildungen der Erfindung ist es möglich, diese Antwort noch weiter zu verarbeiten. Insbesondere ist es möglich, die Antwort im Hinblick auf die einzelnen Anforderungsbedingungen und/oder auf die einzelnen Sub-Bedingungen einer Anforderungsbedingung auszuwerten. Mit der Methode „GetUtilisationInfo()” wird der aktuelle Belastungszustand aller Sub-Bedingungen auf der normierten Skala von 0–100 zurückgegeben, während die Methode „GetStateInfo()” eine beliebige XML-basierte Zeichenkette enthält, die den inneren Zustand der Programmerweiterung 101 beschreibt. Die Zeichenkette kann ein sogenanntes XML-Stylesheet enthalten, das zur geeigneten Visualisierung der enthaltenen Informationen dient.
  • Darüber hinaus sind noch weitere Methoden vorgesehen, um den inneren Zustand der Programmerweiterungen 101 zu verwalten. Dazu zählen folgenden Methoden: „HandleRequestAssigned()”, „HandleRequestNotAssigned()”, „HandleServiceStarted()” und „HandleServiceFinished()”.
  • Nachdem ein Lastberechnungsagent 102 eine Methode „DetectFreeCapacity()” an einer Programmerweiterung 101 aufgerufen hat, erfolgen zwei weitere Protokollschritte. In einem ersten Schritt wird die Methode „HandleRequestAssigned()” oder „HandleRequestNotAssigned()” aufgerufen. Dies erfolgt in Abhängigkeit davon, ob der Server 100, auf dem die jeweilige Programmerweiterung 101 läuft, durch den Lastverteilungsdienst 104 als am Besten geeigneter Server und damit als Zielserver für den zu startenden Taskflow identifiziert worden ist oder nicht.
  • Demnach haben Programmerweiterungen 101 auf einem Server 100 die Möglichkeit, bestimmte Einstellungen und Konfigurationen im Vorfeld zu treffen. So ist es beispielweise möglich, dass die Programmerweiterung 101 reservierte Kontingente für bestimmte Anforderungsbedingungen als belegt markiert oder entsprechend wieder frei gibt. Als zweiter Schritt wird an allen Programmerweiterungen 101, die auf den ausgewählten Ziel-Anwendungsserver laufen, eine Methode „HandleServiceStarted()” aufgerufen. Analog dazu erfolgt der Aufruf der Methode der „HandleServiceFinished()” nachdem der Taskflow beendet worden ist. Auch diese Methoden dienen der Akquirierung bzw. der Freigabe von Kontingenten von bestimmten geforderten Anforderungsbedingungen.
  • Eine Klasse „Clustermanagement” (die dem Lastverteilungsdienst 104 zugeordnet ist) bietet die Methode „GetServer()” um den Ziel-Anwendungsserver für eine spezifische Anforderungsbedingung (ServerQuery) zu ermitteln.
  • Eine Klasse „ApplicationServer” (die dem Lastberechnungsagenten 102 zugeordnet ist) bietet die Methode „DetectFreeCapacity()” an, um die Belastung des dedizierten Servers 100 im Hinblick auf die Anforderungsbedingungen zu berechnen.
  • Ein besonderer Vorteil der erfindungsgemäßen Lösung ist darin zu sehen, dass der erfindungsgemäße Dienst zum lastverteilten Zuweisen von Taskflows auf eine Serverfarm 10 das bestehende Taskflow-Managementsystem 300 integriert werden kann.
  • Darüber hinaus ist es möglich, eine Lastverteilung nicht nur nach den im Stand der Technik bekannten Algorithmen (RoundRobin/LeastConnection) durchzuführen, sondern es können auch spezifische medizinische und taskflow-spezifische Kriterien konfiguriert werden. Dadurch kann zum Beispiel der Zielserver 100 ermittelt werden, der für den jeweiligen Anwendungsfall beispielsweise mit einer Volumenrenderingkarte oder mit einer Hochleistungsgrafikkarte ausgestattet ist. Es können auch heterogene Serverfarmen 100 unterstützt werden.
  • Durch die erfindungsgemäßen Konfigurationsmöglichkeiten der Anforderungsbedingungen ist es möglich, nicht nur die Bedingungen bzw. Sub-Bedingungen an sich zu definieren, sondern zusätzlich auch noch festzulegen, wie häufig die jeweilige Bedingung bzw. Sub-Bedingung erfüllt sein muss. Somit kann auch die Quantität einer Anforderungsbedingung bzw. einer Sub-Bedingung erfasst werden. Auch ist es möglich, die jeweiligen Sub-Bedingungen einer Anforderungsbedingung über das Zuweisen von Gewichtungen untereinander geeignet zu priorisieren.
  • Für das Installieren der Programmerweiterung 101 auf den Servern 100 steht vorzugsweise eine Programmerweiterungsschnittstelle auf den jeweiligen Lastberechnungsagenten 102 zur Verfügung. Die Programmerweiterungsschnittstelle ist insbesondere so ausgebildet, das Programmcode eingebunden werden kann, der beispielsweise auf .NET basiert.
  • Wie vorstehend bereits erläutert zielt eine weiterbildende Ausführungsform der Erfindung darauf ab, das Ergebnis des Lastverteilungsverfahrens zu quantifizieren. Dabei wird eine Information bereitgestellt, welcher Teil des Taskflows auf welchem Zielserver 100 zur Ausführung gebracht werden soll. Ein Ergebnis kann beispielsweise lauten, das der Taskflow XY zu 10% auf Servermaschine A kommt, zu 20% auf Servermaschine B und zu 70% auf Servermaschine C auszuführen ist.
  • Abschließend sei darauf hingewiesen, dass die Beschreibung der Erfindung und die Ausführungsbeispiele grundsätzlich nicht einschränkend in Hinblick auf eine bestimmte physikalische Realisierung der Erfindung zu verstehen sind. Für einen einschlägigen Fachmann ist es insbesondere offensichtlich, dass die Erfindung teilweise oder vollständig in Soft- und/oder Hardware und/oder auf mehrere physikalische Produkte – dabei insbesondere auch Computerprogrammprodukte – verteilt realisiert werden kann.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • - US 7127716 [0007]

Claims (17)

  1. Verfahren zum lastverteiltem Zuweisen von computergestützten medizinischen Taskflows auf zumindest einen Anwendungsserver (100) einer Serverfarm (10), mit folgenden Verfahrensschritten: – Erfassen eines Taskflows mit konfigurierbaren Anforderungsbedingungen; – Erfassen von Lastinformationen von verfügbaren Anwendungsservern (100) der Serverfarm (10), wobei es konfigurierbar ist, welche Lastinformationen erfasst werden sollen, indem auf ausgewählten oder auf allen Anwendungsservern (100) zumindest eine Programmerweiterung (101) installiert ist; – Ermitteln zumindest eines Ziel-Anwendungsservers, wobei zumindest ein solcher Anwendungsserver (100) aus der Serverfarm (10) als Ziel-Anwendungsserver bestimmt wird, der gemäß den erfassten Lastinformationen die erfassten Anforderungsbedingungen erfüllt.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass das Verfahren, alle oder ausgewählte Verfahrenschritte des Verfahrens, insbesondere das Ermitteln des Ziel-Anwendungsservers, automatisch ausführt.
  3. Verfahren nach zumindest einem der vorstehenden Ansprüche dadurch gekennzeichnet, dass das Verfahren zusätzlich folgenden Verfahrensschritt umfasst: – Automatisches Weiterleiten des Taskflows an den Ziel-Anwendungsserver zum Zwecke der Ausführung.
  4. Verfahren nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass die Anforderungsbedingung mehrere Sub-Bedingungen umfassen kann, wobei die Sub-Bedingungen mit logischen Operatoren verknüpfbar sind.
  5. Verfahren nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass das Verfahren computer-implementiert ist und insbesondere software-basiert gesteuert wird.
  6. Verfahren nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass die Lastinformationen über jeweils einen Lastberechnungsagenten (102) erfasst werden, der jeweils auf einem der Anwendungsserver (100) der Serverfarm (10) installiert ist.
  7. Verfahren nach zumindest einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass jeweils ein Lastberechnungsagent (102) als Lastinformation eine Last des jeweiligen Servers (100) berechnet, auf dem er installiert ist.
  8. Verfahren nach zumindest einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass das Verfahren zusätzlich folgenden Verfahrensschritt umfasst: – Ausgeben eines Lastergebnisses, das eine Menge von ermittelten Ziel-Anwendungsservern dahingehend quantifiziert, zu welchem Prozentsatz sie die erfasste Anforderungsbedingung erfüllen.
  9. Verfahren nach zumindest einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass die Anforderungsbedingung physikalische Systemparameter und/oder logische Merkmale umfasst.
  10. Verfahren nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass ein Ziel-Anwendungsserver oder eine Gruppe von Ziel-Anwendungsservern ermittelt wird, wobei die Gruppe von ermittelten Ziel-Anwendungsservern hinsichtlich konfigurierbarer Kriterien priorisiert wird.
  11. Verfahren nach zumindest einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass bei dem Ermitteln des zumindest einen Ziel-Anwendungsservers die aktuelle Lastverteilung der Serverfarm (10) nach konfigurierbaren Lastverteilungskriterien berücksichtigt wird.
  12. Verfahren nach zumindest einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass das Erfassen des Taskflows mit konfigurierbaren Anforderungsbedingungen und das Erfassen der Lastinformationen in einer Konfigurationsphase ausgeführt werden, die einer Lastverteilungsphase zeitlich vorangestellt ist, in der das Ermitteln des Ziel-Anwendungsservers ausgeführt wird.
  13. Verfahren nach zumindest einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass das Erfassen der Lastinformationen unabhängig von dem Erfassen des Taskflows ist.
  14. Verfahren nach zumindest einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass zumindest ein Lastverteilungsdienst (104) auf zumindest einem Anwendungsserver (100) der Serverfarm (10) installiert ist, der mit einem Taskflowverwaltungssystem (300) kommuniziert und von ihm den Taskflow entgegennimmt und der mit den Lastberechnungsagenten (102) der Anwendungsserver (100) kommuniziert und sie beauftragt, die Last gemäß den aktuell konfigurierten Kriterien zu berechnen und der deren Ergebnis einsammelt und gegebenenfalls weiterverarbeitet.
  15. Computerprogrammprodukt mit Computerprogrammcode zur Durchführung aller Verfahrensschritte des Verfahrens nach einem der Patentansprüche 1 bis 14, wenn der Computerprogrammcode auf dem Computer ausgeführt wird.
  16. Computerprogrammprodukt nach Anspruch 15, wobei der Computerprogrammcode auf einem von einem Computer lesbaren Medium gespeichert ist.
  17. System zum lastverteiltem Zuweisen von computergestützten medizinischen Taskflows auf zumindest einen Anwendungsserver einer Serverfarm, umfassend: – zumindest ein Taskflowverwaltungssystem (300), das die Taskflows verwaltet; – eine Vielzahl von Lastberechnungsagenten (102), wobei auf jedem Anwendungsserver (100) zumindest ein Lastberechnungsagent (102) installiert ist, der zum Berechnen einer Last des jeweiligen Anwendungsservers (100) bestimmt ist; – zumindest einen zentralen Lastverteilungsdienst (104), der auf zumindest einem Anwendungsserver (100) installiert ist und in Datenaustausch mit dem Taskflowverwaltungssystem (300) und mit den Lastberechnungsagenten (102) steht, wobei der Lastverteilungsdienst (104) zumindest ein Anforderungsmodul umfasst, das zum Erfassen von Anforderungsbedingungen für den zuzuweisenden Taskflow bestimmt ist und wobei der Lastverteilungsdienst (104) die Anforderungsbedingungen des Anforderungsmoduls zum Erfassen der Last an die jeweiligen Lastberechnungsagenten (102) weitergibt.
DE102008040009A 2008-08-27 2008-08-27 Lastverteiltes Zuweisen von medizinischen Taskflows auf Server einer Serverfarm Ceased DE102008040009A1 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102008040009A DE102008040009A1 (de) 2008-08-27 2008-08-27 Lastverteiltes Zuweisen von medizinischen Taskflows auf Server einer Serverfarm
US12/461,848 US8782206B2 (en) 2008-08-27 2009-08-26 Load-balanced allocation of medical task flows to servers of a server farm

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102008040009A DE102008040009A1 (de) 2008-08-27 2008-08-27 Lastverteiltes Zuweisen von medizinischen Taskflows auf Server einer Serverfarm

Publications (1)

Publication Number Publication Date
DE102008040009A1 true DE102008040009A1 (de) 2010-03-04

Family

ID=41605802

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102008040009A Ceased DE102008040009A1 (de) 2008-08-27 2008-08-27 Lastverteiltes Zuweisen von medizinischen Taskflows auf Server einer Serverfarm

Country Status (2)

Country Link
US (1) US8782206B2 (de)
DE (1) DE102008040009A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102009005455A1 (de) 2009-01-21 2010-07-22 Siemens Aktiengesellschaft Computersystem zum Verwalten, Speichern und Austausch von computergestützten medizinischen Taskflows

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102009010889A1 (de) * 2009-02-27 2010-09-09 Siemens Aktiengesellschaft Verfahren und Computersystem zur Entwicklung bzw. Bereitstellung von computergestützten Tasks für medizinische Taskflows
US20120102226A1 (en) * 2010-10-20 2012-04-26 Microsoft Corporation Application specific web request routing
US8645545B2 (en) 2010-11-24 2014-02-04 International Business Machines Corporation Balancing the loads of servers in a server farm based on an angle between two vectors
US8959222B2 (en) * 2011-05-19 2015-02-17 International Business Machines Corporation Load balancing system for workload groups
US8924547B1 (en) * 2012-06-22 2014-12-30 Adtran, Inc. Systems and methods for managing network devices based on server capacity
US8930416B2 (en) 2012-08-13 2015-01-06 Hulu, LLC Job dispatcher of transcoding jobs for media programs
US20150236974A1 (en) * 2013-04-26 2015-08-20 Hitachi, Ltd. Computer system and load balancing method
EP3556078B1 (de) * 2016-12-13 2021-10-13 FIMER S.p.A. Verfahren und system zur verwaltung von multi-client/multi-server mit einer routine der ablehnung von bereits verbundenen clients zum ausgleich des systems
US10834176B2 (en) 2017-03-10 2020-11-10 The Directv Group, Inc. Automated end-to-end application deployment in a data center
WO2019149990A1 (en) * 2018-02-03 2019-08-08 Nokia Technologies Oy Application based routing of data packets in multi-access communication networks
CN115174583B (zh) * 2022-06-28 2024-03-29 福州大学 基于可编程数据平面的服务器负载均衡方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7127716B2 (en) 2002-02-13 2006-10-24 Hewlett-Packard Development Company, L.P. Method of load balancing a distributed workflow management system

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6327622B1 (en) * 1998-09-03 2001-12-04 Sun Microsystems, Inc. Load balancing in a network environment
US7882501B1 (en) * 1999-08-13 2011-02-01 Oracle America, Inc. System and method for enabling dynamic modifed class reloading in an application server environment
US20030046396A1 (en) * 2000-03-03 2003-03-06 Richter Roger K. Systems and methods for managing resource utilization in information management environments
US6963917B1 (en) * 2000-10-20 2005-11-08 International Business Machines Corporation Methods, systems and computer program products for policy based distribution of workload to subsets of potential servers
US6829378B2 (en) * 2001-05-04 2004-12-07 Biomec, Inc. Remote medical image analysis
US20030014524A1 (en) * 2001-07-11 2003-01-16 Alexander Tormasov Balancing shared servers in virtual environments
US20040158637A1 (en) * 2003-02-12 2004-08-12 Lee Timothy Charles Gated-pull load balancer
US20050033809A1 (en) * 2003-08-08 2005-02-10 Teamon Systems, Inc. Communications system providing server load balancing based upon weighted health metrics and related methods
JP2005135130A (ja) * 2003-10-30 2005-05-26 Fujitsu Ltd 負荷監視条件決定プログラム,負荷監視条件決定システム,負荷監視条件決定方法および負荷監視プログラム
US7493380B2 (en) * 2003-12-02 2009-02-17 International Business Machines Corporation Method for determining load balancing weights using application instance topology information
US7698416B2 (en) * 2005-01-25 2010-04-13 Cisco Technology, Inc. Application layer message-based server failover management by a network element
US20070143460A1 (en) * 2005-12-19 2007-06-21 International Business Machines Corporation Load-balancing metrics for adaptive dispatching of long asynchronous network requests
WO2007138429A2 (en) * 2006-05-25 2007-12-06 Shuki Binyamin Method and system for efficient remote application provision
US7975047B2 (en) * 2008-12-19 2011-07-05 Oracle International Corporation Reliable processing of HTTP requests

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7127716B2 (en) 2002-02-13 2006-10-24 Hewlett-Packard Development Company, L.P. Method of load balancing a distributed workflow management system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102009005455A1 (de) 2009-01-21 2010-07-22 Siemens Aktiengesellschaft Computersystem zum Verwalten, Speichern und Austausch von computergestützten medizinischen Taskflows

Also Published As

Publication number Publication date
US8782206B2 (en) 2014-07-15
US20100057828A1 (en) 2010-03-04

Similar Documents

Publication Publication Date Title
DE102008040009A1 (de) Lastverteiltes Zuweisen von medizinischen Taskflows auf Server einer Serverfarm
EP2648122B1 (de) Verfahren zum Laden von medizinischen Bilddaten sowie Vorrichtung zur Durchführung des Verfahrens
DE102005031245B4 (de) Verfahren zum Test eines klinischen und/oder medizintechischen Systems und Verfahren zur Steuerung medizintechnischer Untersuchungsabläufe in einem klinischen und/oder medizintechnischen System sowie entsprechende Computerprogrammprodukte
DE102006004618A1 (de) Arbeitsablauf-basiertes Management von medizinischen Bilddaten
DE102016104478A1 (de) Kryptographische Verfahren, die Arbeitsnachweise in Systemen untereinander verbundener Knoten realisieren
DE202012013462U1 (de) Datenverarbeitung in einem Mapreduce-Framework
DE10197152T5 (de) Verfahren und Vorrichtung zum Planen von Terminen
DE102010034430A1 (de) Verfahren zur Konfiguration einer Bildgebungsvorrichtung
DE112012004247T5 (de) Passives Überwachen virtueller Systeme unter Verwendung einer erweiterbaren Indexierung
DE10300545A1 (de) Vorrichtung, Verfahren, Speichermedium und Datenstruktur zur Kennzeichnung und Speicherung von Daten
DE102006058941A1 (de) Verfahren und Vorrichtung zum Auswählen computergestützter Algorithmen, basierend auf dem Protokoll und/oder Parametern eines Akquisitionssystems
DE10119876A1 (de) Verfahren, System und Computerprorammprodukt zur Bereitstellung einer Jobüberwachung
DE102005034160A1 (de) Verfahren zur Optimierung der Durchführung von Messungen
DE102012218699A1 (de) Passives überwachen virtueller systeme mittels agentenlosem offline-indexieren
DE202022103612U1 (de) System zur Verwaltung der Personalressourcen und zur Bewertung der Arbeitnehmerproduktivität in einem multinationalen Unternehmen
EP2648094B1 (de) Verfahren und system zum erzeugen eines quellcodes für ein computerprogramm zur ausführung und simulation eines prozesses
DE102010016541A1 (de) Computergestütztes Verfahren zum Erzeugen eines softwarebasierten Analysemoduls
DE102008004658B4 (de) Verfahren zur zentralen Steuerung von Prozessen in erweiterbaren medizinischen Plattformen
WO2014170039A1 (de) Verfahren zum bearbeiten von daten und zugehörige datenverarbeitungsanlage oder datenverarbeitungsanlagenverbund
DE102012218268A1 (de) Verwalten digitaler Signaturen
EP3401816A1 (de) Dynamische erstellung von übersichtsnachrichten im gesundheitswesen
EP3705993B1 (de) System und verfahren zum auffinden und identifizieren von rechenknoten in einem netzwerk
DE10333797A1 (de) Einrichtung für den Import eines maschinenlesbaren Datenmodells, insbesondere medizinischer Leitlinien, in ein Workflow-Management-System
EP3796161A1 (de) Verfahren zur bestimmung einer container-konfiguration eines systems, system, computerprogramm und computerlesbares medium
DE102010035540B4 (de) Verfahren und System zur Übermittlung und Verteilung von DICOM-Daten

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R016 Response to examination communication
R016 Response to examination communication
R081 Change of applicant/patentee

Owner name: SIEMENS HEALTHCARE GMBH, DE

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

R002 Refusal decision in examination/registration proceedings
R006 Appeal filed
R008 Case pending at federal patent court
R003 Refusal decision now final
R011 All appeals rejected, refused or otherwise settled