EP1535445B1

Remote dynamic configuration of a web server to provide capacity on demand

Abstract

The present invention relates to a method and system for the remote and dynamic configuration of a webserver to facilitate capacity on demand. The present invention provides a solution to the problem of the management and administration of one or more servers within an environment such as a server farm with regards to the rigid infrastructure and architecture of the servers due to the definition of roles the servers play in relation to the data the servers are publishing. A solution is provided in the form of autonomic modular computing components to allow a server to process a URL and the server to associate it with a remote data source without the need for a restart or manual intervention of the server and to allow the introduction of new services and or hardware resources by collating and analyzing performance data collected from the server to determine if the server is over or under utilized.

EP1535445B1, drawing sheet 1
Sheet 1 of 7

Term

Term ended

Expired 29 August 2023, 3.1 years ago.

  1. Priority
  2. Filed
  3. Granted
  4. Expired
  5. Today

21 claims: 21 independent, 0 dependent

  1. 1
    A method for the remote and dynamic configuration of a server (145, 150,155) to provide server capacity on demand, the method comprising the steps of:a. receiving a request for a resource by a first server (145) from a client device (100);characterised by the steps ofb. routing the client request for the resource to a dynamic content module (215), the dynamic content module (215) identifying an available third server (150) from which the requested resource can be served and routing the requested resource to the client device (100);c. collating performance data from the first (145) and third server (150) and the first server reporting the performance data to a second server (140) ;d. analysing by the second server (140) the received performance data collated in step c to determine the performance capabilities of the first (145) and the third server (150) and identifying if the first (145) or the third server (150) has reached a predetermined threshold;ande. adjusting by the second server (140) the allocation of the resources of the first server (145) or the third server (150) in response to step (d) and issuing a configuration update instruction for the first server (145) or the third server (150) to a dynamic configuration module (216) of the first server (145) and determining if a resource update is successful. Un procédé pour la configuration à distance et dynamique d'un serveur (145, 150, 155), pour fournir une capacité de serveur à la demande, le procédé comprenant les étapes consistant à : a. recevoir une requête pour une ressource, par un premier serveur (145), depuis un dispositif client (100) ;caractérisé par les étapes consistant à :b. acheminer la requête client concernant la ressource à un module de contenu dynamique (215), le module de contenu dynamique (215) identifiant un troisième serveur (150) disponible, à partir duquel la ressource requise peut être fournie, et acheminer la ressource requise au dispositif client (100) ;c. collationner des données de performance depuis le premier (145) et le troisième serveur (150), et le premier serveur rapportant les données de performance à un deuxième serveur (140) ;d. analyser par le deuxième serveur (140), les données de performance reçues, collationnées à l'étape c, pour déterminer les capacités en performance du premier serveur (145) et du troisième serveur (150), et identifier si le premier serveur (145) ou le troisième serveur (150) a atteint un seuil prédéterminé ;ete. ajuster, par 1e deuxième serveur (140), l'allocation des ressources du premier serveur (145) ou du troisième serveur (150), en réponse à l'étape (d) et envoyer une instruction de mise à jour de configuration, pour le premier serveur (145) ou le troisième serveur (150), à un module de configuration (216) dynamique du premier serveur (145) et déterminer si une mise à jour de ressources a réussi. Verfahren zur dynamischen Fernkonfiguration eines Servers (145, 150, 155), um nach Bedarf Serverkapazität bereitzustellen, wobei das Verfahren die folgenden Schritte umfasst: a. Empfangen einer Anforderung für eine Ressource von einer Client-Einheit (100) durch einen ersten Server (145);gekennzeichnet durch die folgenden Schritte:b. Leiten der Client-Anforderung für die Ressource an ein dynamisches Inhaltmodul (215), wobei das dynamische Inhaltmodul (215) einen verfügbaren dritten Server (150) ermittelt, von dem die angeforderte Ressource geliefert werden kann, und Leiten der angeforderten Ressource an die Client-Einheit (100);c. Zusammentragen von Leistungsdaten von dem ersten Server (145) und dem dritten Server (150), wobei der erste Server die Leistungsdaten an einen zweiten Server (140) meldet;d. Auswerten der im Schritt (c) zusammengetragenen Leistungsdaten durch den zweiten Server (140), um das Leistungsvermögen des ersten Servers (145) und des dritten Servers (150) zu ermitteln, und Feststellen, ob der erste Server (145) oder der dritte Server (150) einen vorher festgelegten Schwellenwert erreicht hat;unde. Anpassen der Zuteilung der Ressourcen des ersten Servers (145) oder des dritten Servers (150) durch den zweiten Server (140) als Reaktion auf den Schritt (d) und Ausgeben eines Befehls zur Aktualisierung der Konfiguration für den ersten Server (145) oder den dritten Server (150) an ein dynamisches Konfigurationsmodul (216) des ersten Servers (145) und Feststellen, ob die Aktualisierung einer Ressource erfolgreich ist.
  2. 2
    A method as claimed in claim 1 wherein the dynamic content module (215) further requests a connection configuration file for the third server from the dynamic configuration module (216). Un procédé tel que revendiqué à la revendication 1, dans lequel le module de contenu dynamique (215) demande en outre un fichier de configuration de connexion pour le troisième serveur, auprès du module à configuration dynamique (216). Verfahren nach Anspruch 1, wobei das dynamische Inhaltmodul (215) vom dem dynamischen Konfigurationsmodul (216) des Weiteren eine Verbindungskonfigurationsdatei für den dritten Server anfordert.
  3. 3
    A method as claimed in claim 1 wherein the dynamic configuration module (216) stores configuration settings for one or both the first server (145) and the third server (150). Un procédé tel que revendiqué à la revendication 1, dans lequel le module de contenu dynamique (216) stocke des réglages de configuration pour un ou les deux, parmi le premier serveur (145) et le troisième serveur (150). Verfahren nach Anspruch 1, wobei das dynamische Konfigurationsmodul (216) Konfigurationseinstellungen für den ersten Server (145) oder den dritten Server (150) oder für beide Server speichert.
  4. 4
    A method as claimed in claim 1, wherein the step of adjusting the allocation of one or both the first server (145) and the third server (150) further comprises allocating an additional server from a free server resource pool. Un procédé tel que revendiqué à 1a revendication 1, dans lequel l'étape d'ajustement de l'allocation d'un ou des deux, concernant le premier serveur (145) et le troisième serveur (150), comprend en outre l'allocation d'un serveur additionnel à partir d'un groupe de ressources de serveurs libres. Verfahren nach Anspruch 1, wobei der Schritt der Anpassung der Zuteilung von dem ersten Server (145) oder dem dritten Server (150) oder von beiden Servern des Weiteren die Zuteilung eines zusätzlichen Servers aus einer Gruppe von freien Server-Ressourcen umfasst.
  5. 5
    A method as claimed in claim 1, wherein the step of adjusting the allocation of one or both the first server (145) and the third server (150) further comprises de-allocating the first server (145) or the third server (150) from an allocated resource pool to a free server resource pool. Un procédé tel que revendiqué à la revendication 1, dans lequel l'étape d'ajustement de l'allocation d'un ou des deux, parmi le premier serveur (145) et le troisième serveur (150), comprend en outre une désallocation du premier serveur (145), ou du troisième serveur (150), d'un groupe de ressources alloué à un groupe de ressources de serveurs libres. Verfahren nach Anspruch 1, wobei der Schritt der Anpassung der Zuteilung von dem ersten Server (145) oder dem dritten Server (150) oder von beiden Servern des Weiteren die Aufhebung der Zuteilung des ersten Servers (145) oder des dritten Servers (150) zu einer Gruppe zugeteilter Ressourcen und deren Zuteilung zu einer Gruppe von freien Server-Ressourcen umfasst.
  6. 6
    A method as claimed in claim 1 or 2 wherein the first server (145) and the second server (140) communicate with each other through XML data streams. Un procédé tel que revendiqué à la revendication 1 ou 2, dans lequel le premier serveur (145) et le deuxième serveur (140) communiquent l'une avec l'autre par les flux de données XML. Verfahren nach Anspruch 1 oder 2, wobei der erste Server (145) und der zweite Server (140) über XML-Datenströme miteinander kommunizieren.
  7. 7
    A method as claimed in claim 1 wherein the second server (140) is a management server providing a central control point for one or more first servers (145) and one or more third servers (150). Un procédé tel que revendiqué à la revendication 1, dans lequel le deuxième serveur (140) est un serveur de gestion, fournissant un point de contrôle central pour un ou plusieurs premiers serveurs (145) et un ou plusieurs troisièmes serveurs (150). Verfahren nach Anspruch 1, wobei der zweite Server (140) ein Verwaltungsserver ist, der einen zentralen Steuerungspunkt für einen oder mehrere erste Server (145) und für einen oder mehrere dritte Server (150) bereitstellt.
  8. 8
    A method as claimed in claim 1 wherein the requested resource is decoupled from the first server (140) allowing the introduction of a new service or the removal of a redundant service. Un procédé tel que revendiqué à la revendication 1, dans lequel la ressource requise est désaccouplée du premier serveur (140), permettant l'introduction d'un nouveau service ou la suppression d'un service redondant. Verfahren nach Anspruch 1, wobei die angeforderte Ressource von dem ersten Server (140) getrennt wird, was die Einführung eines neuen Dienstes oder die Streichung eines redundanten Dienstes ermöglicht.
  9. 9
    A method as claimed in claim 1 wherein the first server (145) is a plurality of servers. Un procédé tel que revendiqué à la revendication 1, dans lequel le premier serveur (145) est une pluralité de serveurs. Verfahren nach Anspruch 1, wobei es sich bei dem ersten Server (145) um eine Vielzahl von Servern handelt.
  10. 10
    A method as claimed in claim 1 wherein the third server (150) is a plurality of servers. Un procédé tel que revendiqué à la revendication 1, dans lequel le troisième serveur (150) est une pluralité de serveurs. Verfahren nach Anspruch 1, wobei es sich bei dem dritten Server (150) um eine Vielzahl von Servern handelt.
  11. 11
    A system for the remote and dynamic configuration of a server to provide server capacity on demand, the system being for use with a client device which requests and receives a resource in a communications network, the system comprising:a first server (145), characterised by: the first server (145) comprising a dynamic content module (215), a dynamic configuration module (216) and a reporting module (205);the first server (145) further comprising: means for routing the client request for the resource to the dynamic content module (215);means for the dynamic content module (215) identifying a third server (150) from which the requested resource can be served and means for retrieving a configuration file associated with the third server (150) stored in the dynamic configuration module;andmeans for the reporting module (205) collating performance data from the first server (145) and the third server (150) and means for routing the performance data to a second server (140);a second server comprising an analyser module (230), a resource allocation module (235) and a resource update module (240), the second server (140) sending the performance data to the analyser module (230);the second server (140) further comprising: means for the analyser module (230) determining the performance capabilities of the first server (145) and the third (150) server and means for identifying if the first server (145) and the third server (150) has reached a predetermined threshold;means for the resource allocation module (235) adjusting the allocation of one or both the first server (145) and the third server (150) in response to the identifying means;andmeans for the resource update module (240) issuing a configuration update instruction for one or both the first server (145) and the third server (150) to the dynamic configuration module (216) of the first server (145) and means for determining if the allocation or de-allocation of one or both the first server (145) and the third server (150) has been successful;anda third server (150) comprising one or more resources and means for the third server (150) to serve a requested resource to the first server (145). System zur dynamischen Fernkonfiguration eines Servers, um nach Bedarf Serverkapazität bereitzustellen, wobei das System zur Verwendung mit einer Client-Einheit ausgelegt ist, die eine Ressource in einem Datenübertragungsnetzwerk anfordert und empfängt, wobei das System Folgendes umfasst: einen ersten Server (145), dadurch gekennzeichnet, dass: der erste Server (145) ein dynamisches Inhaltmodul (215), ein dynamisches Konfigurationsmodul (216) und ein Meldemodul (205) umfasst;wobei der erste Server (145) des Weiteren Folgendes umfasst:ein Mittel, um die Client-Anforderung für die Ressource an das dynamische Inhaltmodul (215) zu leiten;ein Mittel für das dynamische Inhaltmodul (215), welches einen dritten Server (150) ermittelt, von dem die angeforderte Ressource geliefert werden kann, und ein Mittel, um eine zu dem dritten Server (150) gehörende Konfigurationsdatei abzurufen, die in dem dynamischen Konfigurationsmodul gespeichert ist;undein Mittel für das Meldemodul (205), welches Leistungsdaten von dem ersten Server (145) und dem dritten Server (150) zusammenträgt, und ein Mittel, um die Leistungsdaten an einen zweiten Server (140) zu leiten;einen zweiten Server, der ein Auswertemodul (230), ein Ressourcenzuteilungsmodul (235) und ein Ressourcenaktualisierungsmodul (240) umfasst, wobei der zweite Server (140) die Leistungsdaten an das Auswertemodul (230) sendet;wobei der zweite Server (140) des Weiteren Folgendes umfasst: ein Mittel für das Auswertemodul (230), welches das Leistungsvermögen des ersten Servers (145) und des dritten Servers (150) ermittelt, und ein Mittel, das zu der Feststellung dient, ob der erste Server (145) und der dritte Server (150) einen vorher festgelegten Schwellenwert erreicht haben;ein Mittel für das Ressourcenzuteilungsmodul (235), welches die Zuteilung von dem ersten Server (145) oder dem dritten Server (150) oder von beiden Servern als Reaktion auf das Feststellungsmittel anpasst;undein Mittel für das Ressourcenaktualisierungsmodul (240), welches einen Befehl zur Aktualisierung der Konfiguration für den ersten Server (145) oder den dritten Server (150) oder für beide Server an das dynamische Konfigurationsmodul (216) des ersten Servers (145) ausgibt, und ein Mittel zur Feststellung, ob die Zuteilung von dem ersten Server (145) oder dem dritten Server (150) oder von beiden Servern beziehungsweise die Aufhebung dieser Zuteilung erfolgreich war;undeinen dritten Server (150), der eine oder mehrere Ressourcen und ein Mittel für den dritten Server (150) umfasst, damit dieser eine angeforderte Ressource an den ersten Server (145) liefern kann. Un système pour la configuration distante et dynamique d'un serveur pour fournir une capacité de serveur à la demande, le système étant prévu pour utilisation avec un dispositif client, demandant et recevant une ressource dans un réseau de communication, le système comprenant : un premier serveur (145), caractérisé par le fait que : le premier serveur (145) comprend un module à contenu dynamique (215), un module à configuration dynamique (216) et un module de signalisation d'état (205) ;le premier serveur (145) comprenant en outredes moyens pour acheminer la requête client pour la ressource au module à contenu dynamique (215) ;des moyens pour que le module à contenu dynamique (215) identifie un troisième serveur (150), d'où la ressource requise peut être desservie, et des moyens pour récupérer un fichier de configuration associé au troisième serveur (150), stocké dans le module de configuration dynamique ;etdes moyens pour que le module de signalisation d'état (205) collationne des données de performance à partir du premier serveur (145) et du troisième serveur (150), et des moyens pour acheminer les données de performance à un deuxième serveur (140) ;un deuxième serveur comprenant un module d'analyseur (230), un module d'allocation de ressources (235) et un module de mise à jour de ressources (240), le deuxième serveur (140) envoyant les données de performance au module d'analyseur (230) ;le deuxième serveur (140) comprenant en outre : des moyens pour que le module analyseur (230) détermine les capacités de performance du premier serveur (145) et du troisième serveur (150), et des moyens pour identifier si le premier serveur (145) et le troisième serveur (150) a atteint un seuil prédéterminé ;des moyens pour que le module d'allocation de ressources (235) ajuste l'allocation d'un ou des deux parmi le premier serveur (145) et le troisième serveur (150), en réponse aux moyens d'identification ;etdes moyens pour que le module de mise à jour de ressources (240) envoie une instruction de mise à jour de configuration, pour un ou les deux parmi le premier serveur (145) et le troisième serveur (150), au module de configuration dynamique (216) du premier serveur (145), et des moyens pour déterminer si l'allocation ou la désallocation d'un ou des deux parmi 1e premier serveur (145) et le troisième serveur (150) a réussi ;etun troisième serveur (150), comprenant une ou plusieurs ressources et des moyens, pour que le troisième serveur (150) desserve une ressource de requête au premier serveur (145).
  12. 12
    A system as claimed in claim 11 wherein means for adjusting the allocation of one or both the first server (145) and the third server (150) further comprises means for allocating an additional server from a free server resource pool. System nach Anspruch 11, wobei das Mittel zur Anpassung der Zuteilung von dem ersten Server (145) oder dem dritten Server (150) oder von beiden Servern des Weiteren ein Mittel umfasst, um einen zusätzlichen Server aus einer Gruppe von freien Server-Ressourcen zuzuteilen. Un système tel que revendiqué à la revendication 11, dans lequel des moyens, pour ajuster l'allocation d'un ou des deux, parmi le premier serveur (145) et le troisième serveur (150), comprennent en outre des moyens pour allouer un serveur additionnel parmi un groupe de ressources de serveurs libres.
  13. 13
    A system as claimed in claim 11 wherein means for adjusting the resource allocation of the first server (145) or the third server (150) further comprises means for de-allocating one or both the first server (145) and the third server (150) from an allocated resource pool to a free server resource pool. System nach Anspruch 11, wobei das Mittel zur Anpassung der Ressourcenzuteilung des ersten Servers (145) oder des dritten Servers (150) des Weiteren ein Mittel umfasst, um die Zuteilung des ersten Servers (145) oder des dritten Servers (150) oder von beiden Servern zu einer Gruppe zugeteilter Ressourcen aufzuheben und den ersten Server (145) oder den dritten Server (150) oder beide Server einer Gruppe von freien Server-Ressourcen zuzuteilen. Un système tel que revendiqué à la revendication 11, dans lequel des moyens pour ajuster l'allocation de ressources du premier serveur (145) ou du troisième serveur (150) comprennent en outre des moyens pour désallouer un ou les deux parmi le premier serveur (145) et le troisième serveur (150), parmi un groupe de ressources allouées, à un groupe de ressources de serveurs libres.
  14. 14
    A system as claimed in claim 11 wherein means for communication between the first server (145) and the second server (140) is through XML data streams. System nach Anspruch 11, wobei der Austausch von Daten zwischen dem ersten Server (145) und dem zweiten Server (140) über XML-Datenströme erfolgt. Un système tel que revendiqué à la revendication 11, dans lequel des moyens pour établir la communication, entre le premier serveur (145) et le deuxième serveur (140), agissent par des flux de données XML.
  15. 15
    A system as claimed in claim 11 wherein means for the connection configuration file comprises connection settings for the first (145) and the third server (150). System nach Anspruch 11, wobei das Mittel für die Verbindungskonfigurationsdatei Verbindungseinstellungen für den ersten Server (145) und für den dritten Server (150) umfasst. Un système tel que revendiqué à la revendication 11, dans lequel des moyens pour le fichier de configuration de connexion comprennent des réglages de connexion pour le premier (145) et le troisième serveur (150).
  16. 16
    A system as claimed in claim 11 wherein the dynamic configuration module (216) provides means for storing configuration settings for a first server (145) and a third server (150). System nach Anspruch 11, wobei das dynamische Konfigurationsmodul (216) ein Mittel zur Speicherung von Konfigurationseinstellungen für einen ersten Server (145) und einen dritten Server (150) bereitstellt. Un système tel que revendiqué à la revendication 11, dans lequel le module de configuration dynamique (216) fourni des moyens pour stocker des réglages de configuration pour un premier serveur (145) et un troisième serveur (150).
  17. 17
    A system as claimed in claim 11 wherein the second server (140) is a management server providing means for a central control point for the first and the third server (150). System nach Anspruch 11, wobei der zweite Server (140) ein Verwaltungsserver ist, der ein Mittel für einen zentralen Steuerungspunkt für den ersten Server (145) und den dritten Server (150) bereitstellt. Un système tel que revendiqué à la revendication 11, dans lequel le deuxième serveur (140) est un serveur de gestion, fournissant des moyens pour un point de contrôle central pour le premier et 1e troisième serveur (150).
  18. 18
    A system as claimed in claim 11 wherein means for the requested resource is decoupled from the first server (145) allowing means for the introduction of a new service or the removal of a redundant service. System nach Anspruch 11, wobei das Mittel für die angeforderte Ressource von dem ersten Server (145) getrennt wird, wodurch ein Mittel zur Einführung eines neuen Dienstes oder zur Streichung eines redundanten Dienstes bereitgestellt werden kann. Un système tel que revendiqué à la revendication 11, dans lequel des moyens pour la ressource requise sont découplés du premier serveur (145), permettant de fournir des moyens pour l'introduction d'un nouveau service ou la suppression d'un service redondant.
  19. 19
    A system as claimed in claim 11 wherein the first server (145) is a plurality of servers. System nach Anspruch 11, wobei es sich bei dem ersten Server (145) um eine Vielzahl von Servern handelt. Un système tel que revendiqué à la revendication 11, dans lequel le premier serveur (145) est une pluralité de serveurs.
  20. 20
    A system as claimed in claim 11 wherein the third server (150) is a plurality of servers. Un système tel que revendiqué à la revendication 11, dans lequel le troisième serveur (150) est une pluralité de serveurs. Verfahren nach Anspruch 1, wobei es sich bei dem dritten Server (150) um eine Vielzahl von Servern handelt.
  21. 21
    A computer program product comprising computer program code stored on a computer readable storage medium, which when executed on a data processing system, instructs the data processing system to carry out the method as claimed in claim 1. Rechnerprogrammprodukt, das Rechnerprogrammcode umfasst, der auf einem rechnerlesbaren Speichermedium gespeichert wird, das, wenn es auf einem Datenverarbeitungssystem ausgeführt wird, das Datenverarbeitungssystem anweist, das Verfahren nach Anspruch 1 durchzuführen. Un produit de programme pour ordinateur, comprenant un code de programme pour ordinateur, stocké sur un support de stockage lisible par ordinateur, qui, lorsqu'il est exécuté sur un système de traitement de données, dicte au système de traitement de données d'effectuer le procédé tel que revendiqué à la revendication 1.
Independent claims21