DE102011056595B4 - Method for supporting request-based server programs - Google Patents

Method for supporting request-based server programs Download PDF

Info

Publication number
DE102011056595B4
DE102011056595B4 DE102011056595.7A DE102011056595A DE102011056595B4 DE 102011056595 B4 DE102011056595 B4 DE 102011056595B4 DE 102011056595 A DE102011056595 A DE 102011056595A DE 102011056595 B4 DE102011056595 B4 DE 102011056595B4
Authority
DE
Germany
Prior art keywords
server
request
client
software
module
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE102011056595.7A
Other languages
German (de)
Other versions
DE102011056595A1 (en
Inventor
Patentinhaber gleich
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.)
Schulz Hofen Jan
Original Assignee
Schulz Hofen Jan
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 Schulz Hofen Jan filed Critical Schulz Hofen Jan
Priority to DE102011056595.7A priority Critical patent/DE102011056595B4/en
Publication of DE102011056595A1 publication Critical patent/DE102011056595A1/en
Application granted granted Critical
Publication of DE102011056595B4 publication Critical patent/DE102011056595B4/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/64Hybrid switching systems
    • H04L12/6418Hybrid transport
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources

Abstract

Verfahren zur Unterstützung von anfragebasierten Server-Programmen in einem Client-Server-Softwaresystem, wobei ein Modul auf einem Server, insbesondere einer Server-Software vorliegt und das Modul bei einer Anfrage eines Benutzers an ein anfragebasiertes Server-Programm aufgerufen wird, und seinerseits aus der Anfrage die Identifikation der Mandantenumgebung extrahiert, an die die Anfrage gerichtet ist, wobei das Modul mit Hilfe einer Zuordnungstabelle der Anfrage auf Basis der Mandanten-Identifikation eine Menge an Konfigurationsparametern zuordnet, wobei es die Konfiguration des anfragebasierten Server-Programms anpasst und neu lädt, so dass für die Anfrage auf die für den Benutzer bereit gestellten Datenbereiche innerhalb der externen Prozesse für Status und Persistenzdaten zugegriffen wird, wobei das Software-Modul nach Herstellen der Verbindung die Kontrolle an das Server-Programm übergibt, welches sodann die Bearbeitung der Anfrage so beginnt als hätte die Neukonfiguration nie statt gefunden.

Figure DE102011056595B4_0000
A method for supporting request-based server programs in a client-server software system, wherein a module is present on a server, in particular a server software and the module is called when requesting a user to a request-based server program, and in turn from the Request extracted the identification of the client environment to which the request is directed, the module using a mapping table the request based on the tenant identification assigns a lot of configuration parameters, where it adjusts the configuration of the request-based server program and reloads, so the request for the data areas provided to the user is accessed within the external processes for status and persistence data, the software module handing over control to the server program after the connection has been established, which then starts processing the request as would have the reconfiguration n never found.
Figure DE102011056595B4_0000

Description

Die Erfindung betrifft ein Verfahren zur Unterstützung von anfragebasierten Server-Programmen in einem Client-Server-Softwaresystem, ein Computerprogrammprodukt und ein Computersystem.The invention relates to a method for supporting request-based server programs in a client-server software system, a computer program product and a computer system.

Im Stand der Technik sind anfragebasierte Server-Programme beschrieben. Die anfragebasierten Server-Programme sind Computerprogramme, die auf Server-Hardware installiert sind und dort andauernd ausgeführt werden. Sie nehmen dabei Anfragen von Benutzern entgegen und bearbeiten diese mit Hilfe der ihnen zur Verfügung stehenden Daten und Ressourcen, die durch die Hardware oder verbundene Systeme bereit stehen. Anfragen werden dabei häufig mit Hilfe des Hypertext-Transfer-Protokolls (HTTP) gestellt. Als Client-Programm verwendet der Benutzer hierbei einen Web-Browser. Anfragen werden durch das direkte Eintippen und Aufrufen einer HTTP-Adresse oder das anklicken eines Verweises zu einer HTTP-Adresse (sog. Link) erzeugt.In the prior art request-based server programs are described. The request-based server programs are computer programs that are installed on server hardware and are constantly running there. They accept requests from users and process them using the data and resources available to them that are available through hardware or connected systems. Inquiries are often made using the Hypertext Transfer Protocol (HTTP). As a client program, the user uses a web browser. Requests are generated by directly typing in and calling an HTTP address or by clicking on a link to an HTTP address (so-called link).

In der Regel verfügen anfragebasierte Server-Programme über Status und Persistenzdaten, mit deren Hilfe sie für den Benutzer den Mehrwert eines vollwertigen Software-Programmes bieten, ohne dass dieses auf dem Client-Rechner des Benutzers installiert sein müsste. Status und Persistenzdaten werden hierbei in externen Systemen wie beispielsweise Datenbankmanagementsystemen oder Schlüssel-Wert-Speichern gehalten. Die Kommunikation mit diesen Systemen erfolgt über wohl definierte Kanäle (beispielsweise über Unix Sockets oder TCP/IP) zwischen letzteren und den anfragebasierten Server-Programmen. Für den Nutzer der anfragebasierten Server-Programme ist die einzige Voraussetzung der installierte Web-Browser, der als Universalwerkzeug ohnehin auf den meisten Rechnern vorinstalliert ist.As a rule, request-based server programs have status and persistence data that provide users with the added value of a full-fledged software program without having to install it on the user's client machine. Status and persistence data are kept in external systems such as database management systems or key-value storage. Communication with these systems takes place via well-defined channels (for example via Unix sockets or TCP / IP) between the latter and the request-based server programs. For the user of the request-based server programs, the only requirement is the installed web browser, which is preinstalled as a universal tool anyway on most computers.

Regelmäßig sind Betreiber von anfragebasierten Server-Programmen Unternehmen, dessen Mitarbeiter die Software gemeinsam beispielsweise zur Kommunikation und Kollaboration verwenden. Für solche Unternehmen ist es aus ökonomischen Gesichtspunkten häufig nicht sinnvoll, Server-Hardware selbst anzuschaffen und an das Internet anzuschließen, da selbst ein einzelner Server-Rechner oft überdimensioniert und die Anschaffung oder Miete in Gänze nicht wirtschaftlich ist, da die Ressourcen des Server-Rechners brach lägen.Regular operators of request-based server programs are companies whose employees use the software jointly for communication and collaboration, for example. For such companies, it is often not useful from an economic point of view, to purchase server hardware and connect to the Internet, since even a single server computer often oversized and the purchase or rent in whole is not economical, since the resources of the server computer lay fallow.

Der Betreiber bedient sich hier der Leistung eines Bereitstellers („Provider“), bei dem die anfragebasierte Software auf einer Server-Hardware installiert wird, die auch von anderen Mandanten des Bereitstellers genutzt wird um somit die Kosten zu senken. Hierbei ist der Mandant im Sinne der Bereitstellung die Einheit, die das betreibende Unternehmen selbst und dessen Mitarbeiter gemeinsam bilden.The operator uses the service of a provider ("provider"), in which the request-based software is installed on a server hardware that is also used by other clients of the provider in order to reduce costs. In this context, the client is the unit that the operating company itself and its employees form together.

Zur parallelen Ausführung der verschiedenen anfragebasierten Server-Programme seiner Mandanten auf einer physischen Server-Hardware kommen für den Bereitsteller nach aktuellem Stand der Technik zwei Ansätze in Frage. Zweck: Unter optimalem Einsatz und Ausnutzung von zur Verfügung stehender Server-Hardware sollen Server-Programme für verschiedene Mandanten so bereit gestellt werden, dass jeder Mandant seine eigene Instanz der Software vollumfänglich nutzen kann und weder (a) durch die Nutzung andere Mandanten beeinträchtigt, noch (b) Zugriff auf vorhandene Daten anderer Mandanten erhält.For parallel execution of the various request-based server programs of its clients on a physical server hardware for the provider according to the current state of the art, two approaches in question. Purpose: By optimally deploying and utilizing available server hardware, server programs for different clients should be provided so that each client can fully utilize its own instance of software and neither (a) interfere with the use of other clients nor (b) gain access to existing data of other clients.

Der erste Ansatz beschreibt eine Virtualisierung auf Betriebssystem-Ebene durch Hypervisor („Virtual Private Server“). Hierbei werden durch Einsatz eines Hypervisors für jeden Mandanten eigene vollwertige Betriebssystemumgebungen geschaffen. Die so entstehenden Gast-Umgebungen laufen innerhalb der Wirt-Umgebung als eigene Prozesse und bilden zum Mandanten hin eine in sich gekapselte Umgebung, die mit der eines vollwertigen physischen Server-Rechners vergleichbar ist.The first approach describes virtualization at the operating system level through hypervisor ("Virtual Private Server"). Through the use of a hypervisor for each client own complete operating system environments are created. The resulting guest environments run within the host environment as their own processes and form the client to a self-contained environment that is comparable to that of a full-fledged physical server computer.

Der Mandant kann innerhalb der Gast-Umgebung ohne Einschränkungen Server-Programme installieren und nutzen und besitzt vollen Administrator-Zugriff auf seine Gast-Umgebung, um Betriebssystem-Dienste zu verwenden, etc. Der Mandant hat keine Möglichkeit, auf die Gast-Umgebungen anderer Mandanten innerhalb der selben Wirtsumgebung zuzugreifen.The client is free to install and use server programs within the guest environment and has full administrator access to their guest environment to use operating system services, etc. The client has no ability to access the guest environments of other tenants within the same host environment.

Diese Art der Bereitstellung ist geeignet für Mandanten mit sehr individuellen Anforderungen. Diese lassen sich jeweils einzeln umsetzen, da die Umgebungen der einzelnen Mandanten keine Ressourcen gemeinsam verwenden.This type of deployment is suitable for clients with very individual requirements. These can be implemented individually, since the environments of the individual clients do not share resources.

Die Wartung dieser Umgebungen - eine Aufgabe, die häufig ebenfalls durch den Bereitsteller übernommen wird - ist für diesen sehr aufwändig, da wenig Gemeinsamkeiten zwischen den Mandanten-Umgebungen existieren und jede Umgebung individuell gewartet werden muss.Maintaining these environments - a task that is often done by the provider - is very time-consuming for this because there is little commonality between tenant environments and each environment needs to be maintained individually.

Der Nachteil des Ansatzes ist, dass der Ressourcenverbrauch (Arbeitsspeicher, persistenter Speicher, Rechenleistung) sehr hoch ist, da neben den Ressourcen für die Server-Programme für jeden Mandanten Ressourcen für die Ausführung des Gast-Betriebsystems und dessen Prozesse bereit gestellt werden müssen.The disadvantage of the approach is that the resource consumption (memory, persistent storage, computing power) is very high, because in addition to the resources for the server programs for each client resources for the execution of the guest operating system and its processes must be provided.

Hieraus resultiert, dass nur eine geringe Anzahl von Mandanten pro physischem Server-Rechner untergebracht werden können. Die Anzahl von Mandanten pro Hardware ist durch verfügbaren Arbeitsspeicher und Rechenleistung beschränkt. Dies führt zu vergleichsweise hohen Kosten pro Mandant auf Seiten des Bereitstellers.As a result, only a small number of clients per physical server machine can be accommodated. The number of tenants per hardware is limited by available memory and computing power. This leads to comparatively high costs per client on the part of the provider.

Ein weiterer Ansatz ist die parallele Installation innerhalb der selben Betriebssystemumgebung („Shared Hosting“). Hierbei werden innerhalb der Umgebung, die durch das eine Betriebssystem, welches auf dem Server-Rechner läuft, die verschiedenen Instanzen des Server-Programmes in unterschiedlichen Verzeichnissen im Dateisystem installiert und von dort aus gestartet, um pro Mandant für zugreifende Clients Dienste bereit zu stellen. Teilweise kommen hier auch Chroot-Umgebungen zum Einsatz, die der Isolierung der einzelnen Mandanten von einander dienen. Chroot-Umgebungen haben allerdings keinerlei positiven Effekt auf den Ressourcenverbrauch.Another approach is the parallel installation within the same operating environment ("shared hosting"). In this case, within the environment which is installed by the one operating system which runs on the server computer, the various instances of the server program are installed in different directories in the file system and are started from there to provide services to each client for accessing clients. In some cases, chroot environments are also used here, which serve to isolate the individual clients from each other. However, chroot environments have no positive effect on resource consumption.

Der Mandant kann innerhalb seines Bereichs im Dateisystem Server-Programme installieren und nutzen, ist dabei jedoch in seiner Freiheit eingeschränkt, da er nicht über volle Administrator-Rechte verfügt. Gewisse Betriebssystem-Dienste, Programmiersprachen und Programme (beispielsweise Compiler) stehen ihm nicht zur Verfügung, da deren Einsatz dazu führen könnte, dass andere Mandanten beeinträchtigt würden oder unerlaubt auf Daten zugegriffen werden könnte. Der Mandant hat unter Umständen die Möglichkeit, auf die Bereiche anderer Mandanten zuzugreifen, beispielsweise wenn diese aufgrund von Unachtsamkeit Zugriffsrechte für Dateien und Verzeichnisse falsch eingestellt haben.The client can install and use server programs within its scope in the file system, but is restricted in its freedom because it does not have full administrator rights. Certain operating system services, programming languages and programs (such as compilers) are not available to him, as their use could lead to other clients being affected or data being accessed without permission. The client may have the ability to access the other tenants' panes, for example if they have improperly set access permissions to files and directories due to carelessness.

Diese Art der Bereitstellung ist geeignet für Mandanten mit individuellen Anforderungen, die innerhalb der Einschränkungen bezüglich Betriebssystem-Dienste, Programmiersprachen, etc. realisierbar sind.This type of deployment is suitable for clients with individual requirements that are feasible within the limitations of operating system services, programming languages, etc.

Wie bei der Virtualisierung (erster Ansatz) ist die Wartung dieser Umgebungen für den Bereitsteller sehr aufwändig, da wenig Gemeinsamkeiten zwischen den Mandanten-Umgebungen existieren und jede Umgebung individuell gewartet werden muss. Zumindest aber muss nicht für jeden Mandanten eine eigene Betriebssystem-Instanz gewartet werden.As with virtualization (first approach), maintaining these environments is very time-consuming for the provider because there is little commonality between tenant environments and each environment needs to be maintained individually. At least, however, you do not have to maintain your own operating system instance for each client.

Auch hier ist nachteilig, dass der Ressourcenverbrauch (Arbeitsspeicher, persistenter Speicher, Rechenleistung) immer noch recht hoch ist, da die verschiedenen Instanzen der Server-Programme, die für jeden Mandanten installiert worden sind, jeweils eigene Ressourcen blockieren.Again, it is disadvantageous that the resource consumption (memory, persistent storage, processing power) is still quite high, since the different instances of the server programs that have been installed for each client, each block their own resources.

Die Anzahl der Mandanten, die pro physischem Server-Rechner untergebracht werden können, ist höher als bei der Virtualisierung, aber dennoch durch verfügbaren Arbeitsspeicher und Rechenleistung beschränkt. Zu beobachten ist, dass diese Variante häufig gewählt wird, wenn die verschiedenen Mandanten sehr ähnliche Anforderungen haben, wie beispielsweise den Einsatz derselben anfragebasierten Programme.The number of tenants that can be accommodated per physical server machine is higher than in virtualization, but still limited by available memory and computing power. It can be observed that this variant is frequently chosen when the various clients have very similar requirements, such as the use of the same request-based programs.

Die US 2002/0120724 A1 offenbart einen Mechanismus für die Rekonfiguration eines Servers. Dabei wird ein auf Pointern basierendes Verfahren verwendet, mithilfe dessen Server-Programme ihre eigene Konfiguration neu laden können, ohne neu gestartet werden zu müssen. Dabei ist es jedoch nicht möglich, mit der Ausführung einer Anfrage so lange zu warten, bis die Neukonfiguration abgeschlossen ist, anschließend nur diese eine Anfrage mit der neuen Konfiguration abzuarbeiten und dann bei der nächsten Anfrage erneut eine Neukonfiguration vorzunehmen.The US 2002/0120724 A1 discloses a mechanism for reconfiguring a server. It uses a pointer-based technique that allows server programs to reload their own configuration without having to reboot. However, it is not possible to wait until execution of a request until the reconfiguration is complete, then to process only this one request with the new configuration and then reconfigure the next request.

Auch die US 2003/0101245 A1 offenbart eine dynamische Rekonfiguration eines Servers ohne diese Möglichkeiten.Also the US 2003/0101245 A1 discloses a dynamic reconfiguration of a server without these capabilities.

US 6,343,360 B1 offenbart ein Verfahren zur Konfiguration von Computersystemen auf Basis von Zuordnungstabellen, bei denen beispielsweise Postleitzahlen als Schlüsselwerte verwendet werden. Dieses Dokument beschreibt nicht, dass die Neukonfiguration der Anbindung ans Persistenzlayer bei jeder Anfrage dazu genutzt werden kann, grundsätzlich nicht unbedingt mandantenfähige Server-Programme für den Mehrmandantenbetrieb einzusetzen. US 6,343,360 B1 discloses a method of configuring computer systems based on mapping tables using, for example, postal codes as key-values. This document does not describe that the reconfiguration of the connection to the persistence layer can be used with every request, in principle not necessarily using multi-tenant server programs for multi-client operation.

US 2006/0123121 A1 offenbart ein Management System für Sitzungsinformationen, wobei die Konsistenz der Sitzungsinformationen zwischen verschiedenen Servern gewährleistet werden soll. Auch dieses Dokument offenbart keine Lehre, um die Nachteile bekannter Verfahren zur Verwendung anfragebasierte Server-Programme mit mehreren Mandaten zu beseitigen. US 2006/0123121 A1 discloses a session information management system to ensure consistency of session information between different servers. Also, this document does not disclose any teaching to eliminate the disadvantages of known methods for using multi-mandate query-based server programs.

Die Erfindung hat demnach die Aufgabe, eine Server-Umgebung zu schaffen, innerhalb derer die vorhandenen Hardware-Ressourcen in dem Fall optimal ausgenutzt werden, dass unterschiedliche Mandanten sehr einheitliche Anforderungen an die jeweiligen anfragebasierten Server-Programme haben. Als Voraussetzung gilt weiterhin wie eingangs beschrieben, dass sich die anfragebasierten Server-Programme zum Halten von Status und Persistenzdaten auf externe Systeme wie beispielsweise Datenbankmanagementsysteme oder Schlüssel-Wert-Speicher stützen. Als Beispiel gereicht hier der Fall, in dem ein und das selbe anfragebasierte Server-Programm für verschiedene Mandanten auf einer Server-Hardware bereitgestellt werden soll. Hierbei sollen dennoch die einzelnen Mandanten im Sinne von (a) und (b) (siehe oben Seite 2) voneinander isoliert sein.The invention therefore has the task of creating a server environment within which the available hardware resources are optimally utilized in the event that different clients have very uniform requirements for the respective request-based server programs. As a precondition, as described above, the request-based server programs for holding status and persistence data are based on external systems such as, for example, database management systems or key-value storage. As an example, here is the case in which one and the same request-based server program for different clients to be provided on a server hardware. Nevertheless, the individual clients in the sense of (a) and (b) (see above page 2 ) be isolated from each other.

Gelöst wird die Aufgabe durch die unabhängigen Ansprüche. Vorteilhafte Ausführungsformen finden sich in den Unteransprüchen.The problem is solved by the independent claims. Advantageous embodiments can be found in the subclaims.

Es war völlig überraschend, dass ein Verfahren zur Unterstützung von anfragebasierten Server-Programmen in einem Client-Server-Softwaresystem bereitgestellt werden kann, das nicht die Nachteile oder Mängel des Standes der Technik aufweist. Bei dem Verfahren ist ein besonderes Software-Modul auf einem Server installiert. Dieses Modul wird bei jeder Anfrage eines Benutzers an ein anfragebasiertes Server-Programm aufgerufen und extrahiert seinerseits aus der Anfrage die Identifikation der Mandantenumgebung, an die die Anfrage gerichtet ist. Diese Identifikation ist insbesondere ein Hostname. Sodann ordnet das Modul mit Hilfe einer Zuordnungstabelle der Anfrage auf Basis der Mandanten-Identifikation eine Menge an Konfigurationsparametern zu, mit Hilfe derer es sodann die Konfiguration des anfragebasierten Server-Programms anpasst und neu lädt, so dass für die Anfrage auf die für den Benutzer bereit gestellten Datenbereiche innerhalb der externen Prozesse für Status und Persistenzdaten zugegriffen wird. Nach dem Herstellen der Verbindung übergibt das Modul die Kontrolle an das anfragebasierte Server-Programm, welches sodann die Bearbeitung der Anfrage so beginnt als hätte die Neukonfiguration nie statt gefunden.It has been quite surprising that a method of supporting request-based server programs in a client-server software system may be provided that does not have the disadvantages or deficiencies of the prior art. In the process, a special software module is installed on a server. This module is invoked every time a user requests a request-based server program and, in turn, extracts from the request the identification of the tenant environment to which the request is directed. This identification is in particular a host name. Then, the module assigns a set of configuration parameters based on the tenant identification with the help of an allocation table of the request, with the help of which it then adjusts the configuration of the request-based server program and reloads, so that for the request to the ready for the user data areas within the external processes for status and persistence data. After establishing the connection, the module passes control to the request-based server program, which then starts processing the request as if the reconfiguration never took place.

Es war völlig überraschend, dass durch das erfindungsgemäße Verfahren der Ressourcenverbrauch des Servers, insbesondere der Server-Hardware pro Mandant verringert werden kann. Dem Fachmann ist ein Server bekannt, der im Sinne der Erfindung auch als „Host“ bezeichnet werden kann. Der Server umfasst bevorzugt einen Computer, der im Wesentlichen permanent läuft. Daher werden bevorzugt Komponenten eingesetzt, die für den Dauerbetrieb ausgelegt sind, zum Beispiel SAS-Festplatten mit einem RAID-System, mehrere Hauptprozessoren und redundante Netzteile. Außerdem muss der Server über hohe Ressourcen (Arbeitsspeicher, persistenter Speicher, Rechenleistung) verfügen, damit parallele Prozesse schnelle ausführbar sind.It was completely surprising that the resource consumption of the server, in particular the server hardware per client can be reduced by the inventive method. A person skilled in the art is aware of a server which, within the meaning of the invention, may also be referred to as a "host". The server preferably includes a computer that runs essentially permanently. Therefore, it is preferred to use components designed for continuous operation, for example SAS hard disks with a RAID system, several main processors and redundant power supplies. In addition, the server must have high resources (memory, persistent storage, processing power), so that parallel processes are fast executable.

Durch das erfindungsgemäße Verfahren können insbesondere die begrenzten Ressourcen wie Arbeitsspeicher, persistenter Speicher und Rechenleistung eingespart werden, so dass für eine Anfrage oder auch für parallele Anfragen weniger Ressourcen aufgewendet werden müssen. Das heißt, das Verfahren hat eine technische Wirkung auf die technischen Elemente des Servers - es führt im Wesentlichen zur Ressourceneinsparung, so dass die Leistung aber auch die Haltbarkeit der Ressourcen und zwangsläufig auch des Servers ernormt gesteigert werden kann. Dies stellt einen technischen Vorteil dar, der durch den Stand der Technik nicht erreicht wurde.In particular, the limited resources such as main memory, persistent memory and computing power can be saved by the method according to the invention, so that fewer resources have to be expended for a request or else for parallel requests. That is, the process has a technical effect on the technical elements of the server - it essentially leads to resource savings, so that the performance but also the durability of the resources and inevitably the server can be increased in an extreme way. This represents a technical advantage that has not been achieved by the prior art.

Im Sinne der Erfindung bezeichnet ein Modul eine abgeschlossene funktionale Einheit einer Software, bestehend aus einer Folge von Verarbeitungsschritten und Datenstrukturen. Inhalt eines Moduls ist bevorzugt eine wiederkehrende Berechnung oder Bearbeitung von Daten, die mehrfach durchgeführt werden muss. Es ist bevorzugt, dass mittels des Moduls eine Trennung von Schnittstelle und Implementierung erreicht wird, wobei die Schnittstelle eines Moduls insbesondere die Datenelemente definiert, die als Eingabe und Ergebnis der Verarbeitung durch das Modul benötigt werden und die Implementierung bevorzugt den tatsächlichen Programmcode enthält. Das bevorzugte Modul kann im Sinne der Erfindung insbesondere als Funktion oder Unterprogramm bezeichnet werden, die durch das Server-Programm aufgerufen werden und eine Reihe von Verarbeitungsschritten durchführt und Daten als Ergebnis an das aufrufende Server-Programm liefert. Es kann auch bevorzugt sein, dass das Modul selbst weitere Module aufruft, so dass eine Hierarchie von Programmaufrufen möglich ist.For the purposes of the invention, a module refers to a closed functional unit of software consisting of a sequence of processing steps and data structures. Content of a module is preferably a recurring calculation or processing of data that must be performed multiple times. It is preferred that isolation of interface and implementation is achieved by means of the module, the interface of a module in particular defining the data elements needed as input and result of the processing by the module and the implementation preferably containing the actual program code. The preferred module in the sense of the invention may be referred to in particular as a function or subroutine which is called by the server program and performs a series of processing steps and supplies data as a result to the calling server program. It may also be preferred that the module calls itself further modules, so that a hierarchy of program calls is possible.

Es war völlig überraschend, dass durch das Modul, welches die Erfindung beschreibt, ein bereits im Arbeitsspeicher befindlicher, also laufender Prozess wieder verwendbar wird, ohne dass der Code redundant im Dateisystem abgelegt und in den Arbeitsspeicher geladen werden muss. Die beim bekannten Stand der Technik ineffiziente Nutzung des verfügbaren persistenten Speichers und Arbeitsspeichers kann somit vermieden werden: während beim Stand der Technik ein und das selbe Server-Programm mindestens einmal pro Mandant im Dateisystem des persistenten Speichers und mindestens einmal pro Mandant in den Arbeitsspeicher geladen werden musste, belegt es bei dem durch die Erfindung beschriebenen System nur ein einziges Mal persistenten Speicher und wird auch nur ein einziges Mal in den Arbeitsspeicher geladen. Das dem Modul zu Grunde liegende Verfahren kann in vielen Programmiersprachen implementiert und kompiliert werden und in Form von Programmbibliotheken bereitgestellt werden, so dass es universell einsetzbar ist und auf unterschiedlichen Systemen installiert werden kann. Somit kann es beispielsweise für Linux-, Mac- oder Windows-basierte Server-Programme und -Umgebungen eingesetzt werden.It was completely surprising that the module which describes the invention makes it possible to reuse a process which is already in the working memory, that is to say a running process, without the code having to be stored redundantly in the file system and loaded into the main memory. The inefficient use of the available persistent memory and main memory in the prior art can thus be avoided: while in the prior art one and the same server program at least once per client in the file system of persistent storage and at least once per client loaded into the main memory had, it occupies only once in the system described by the invention persistent memory and is also loaded only once in the main memory. The underlying method of the module can be implemented and compiled in many programming languages and provided in the form of program libraries, so that it can be used universally and installed on different systems. Thus, it can be used, for example, for Linux, Mac or Windows based server programs and environments.

Außerdem kann das Modul auch noch nachträglich in bereits bestehende Server-Programme integriert werden, ohne die Funktionalität der Server-Programme wesentlich zu beeinflussen.In addition, the module can also be retrofitted into existing server programs without significantly affecting the functionality of the server programs.

Es war ferner überraschend, dass zahlreiche Programmiersprachen das Konzept des durch die Erfindung beschriebenen Moduls durch integrierte Sprachmittel unterstützen, beispielsweise C, C++, C#, Java, Objective C, Object Pascal. Daneben sind Skriptsprachen wie Perl, Python, PHP und Ruby zu nennen.It was further surprising that many programming languages embody the concept of the module described by the invention support integrated language means such as C, C ++, C #, Java, Objective C, Object Pascal. There are also scripting languages like Perl, Python, PHP and Ruby.

Es kann bevorzugt sein, dass das Software-Modul auf der Server-Hardware nur einmal installiert ist und alle Client Anfragen bearbeitet, wobei es nur in einer einzigen Instanz ausgeführt wird, wenn insbesondere alle Mandanten, die auf den Server zugreifen, die gleiche Version einer Server-Software einsetzen. So können vorhandene Ressourcen optimal ausgenutzt werden. Im Sinne der Erfindung bezeichnet der Begriff „Mandant“ insbesondere eine Gruppe von Nutzern, der für einen Zugriff auf den Server, insbesondere die Server-Programme authentifiziert sind. Es kann bevorzugt sein, dass mindestens zwei Mandanten auf den Server zugreifen. Die Anfragen werden bevorzugt mithilfe des Hypertext-Transfer-Protokolls gestellt. Das heißt, die Mandanten, insbesondere die Nutzer stellen die Anfragen in HTTP, vorzugsweise über einen Web-Browser, der auf einem Nutzer-Rechner installiert ist.It may be preferred that the software module is only installed once on the server hardware and processes all client requests, whereby it is executed only in a single instance, in particular if all clients accessing the server have the same version of one Use server software. Thus, existing resources can be optimally utilized. For the purposes of the invention, the term "client" designates in particular a group of users who are authenticated for access to the server, in particular the server programs. It may be preferred that at least two clients access the server. The requests are preferably made using the hypertext transfer protocol. That is, the clients, in particular the users make the requests in HTTP, preferably via a web browser, which is installed on a user's computer.

Um die gegenseitige Beeinträchtigung der Mandanten (das heißt der Nutzer) sowie den Zugriff auf jeweils nur die eigenen Daten sicher zu stellen, muss bei jeder Anfrage an die Server-Software (a) festgestellt werden, welchem Mandanten die Anfrage zuzuordnen ist, (b) durch Rekonfiguration und Neuaufbau der Kanäle zu den externen Systemen, die Status und Persistenzdaten halten, der Datenbereich der Server-Software mit den Daten des Mandanten vorbelegt werden und (c) nach Ausführung der Anfrage die Daten des Mandanten wieder aus dem Datenbereich der Server-Software entfernt werden.In order to ensure the mutual impairment of the clients (ie the user) as well as the access to only their own data, it must be determined with each request to the server software (a) to which client the request is to be assigned, (b) by reconfiguring and rebuilding the channels to the external systems holding status and persistence data, pruning the data area of the server software with the data of the client, and (c) retrieving the client's data from the data area of the server software after execution of the request be removed.

Es kann bevorzugt sein, dass die einmal aufgebauten Kanäle zu den externen Systemen für einen gewissen Zeitraum vorgehalten werden, auch wenn sie während des Zeitraumes nicht aktuell benötigt werden.It may be preferred that the once established channels be maintained to the external systems for a certain period of time, even if they are not currently needed during the period.

Es sind anfragebasierte Server-Programme bevorzugt, bei denen Status und Persistenzdaten in externen Systemen wie beispielsweise Datenbankmanagementsystemen oder Schlüssel-Wert-Speichern gehalten werden.Request-based server programs are preferred in which status and persistence data are kept in external systems such as database management systems or key-value storage.

Es sind weiterhin Server bevorzugt, bei denen der Mandant nicht über einen eigenen Zugriff auf die Betriebssystem-Ebene verfügt und nicht selbst Software installieren oder Änderungen an dieser vornehmen kann, da nur eine Instanz der Software für alle Mandanten vorinstalliert ist.In addition, servers are preferred in which the client does not have their own access to the operating system level and can not install or modify software themselves since only one instance of the software is preinstalled for all clients.

Insbesondere hat der Mandant nicht die Möglichkeit, auf Datenbereiche anderer Mandanten zuzugreifen, da er über keinen Zugriff auf Betriebssystem- oder Dateisystemebene verfügt. Diese Art der Bereitstellung ist geeignet für Mandanten mit einheitlichen Anforderungen. Der Begriff „Anforderungen“ bezeichnet im Sinne der Erfindung insbesondere Prozesse oder Aufgaben, die mithilfe der Server-Programme durchgeführt werden sollen.In particular, the client does not have the ability to access data areas of other tenants because it does not have access to the operating system or file system level. This type of deployment is suitable for clients with uniform requirements. For the purposes of the invention, the term "requirements" refers in particular to processes or tasks that are to be carried out with the aid of the server programs.

Es war völlig überraschend, dass durch das bevorzugte Verfahren die Wartung des Servers, insbesondere der Server-Programme erheblich vereinfacht wird und die Wartungsaufwände reduziert werden können. Im Wesentlichen muss lediglich die Installation des Software-Moduls sowie eine einzelne Installation des anfragebasierten Server-Programmes gewartet werden.. Der Ressourcenverbrauch (Arbeitsspeicher, persistenter Speicher, Rechenleistung) ist sehr gering und geringer als die im Stand der Technik offenbarten Verfahren oder Vorrichtungen, da überraschenderweise keine eigenen Ressourcen pro Mandant blockiert werden. Der Vorteil liegt insbesondere darin, dass der Ressourcenverbrauch von bspw. 100 Nutzern von 100 verschiedenen Mandanten (also je Mandant 1 Nutzer) gleich dem von 100 Nutzern von nur 1 Mandant ist.It was completely surprising that the preferred method considerably simplifies the maintenance of the server, in particular the server programs, and reduces the maintenance effort. Essentially, only the installation of the software module and a single installation of the request-based server program need to be maintained. Resource consumption (memory, persistent storage, computational power) is very low and less than the methods or devices disclosed in the prior art Surprisingly, no own resources are blocked per client. The advantage lies in the fact that the resource consumption of, for example, 100 users of 100 different clients (ie per client 1 User) is equal to that of 100 users of only 1 client.

Es war ferner überraschend, dass die Anzahl der Mandanten, die pro physischem Server-Rechner untergebracht werden können, erhöht werden kann und über dem des Standes der Technik liegt.It was further surprising that the number of clients that can be accommodated per physical server computer can be increased and above that of the prior art.

Es ist bevorzugt, dass für jede Anfrage an die Server-Software die Datenbereiche der Software mit den Daten des betroffenen Mandanten belegt sind.It is preferred that for each request to the server software, the data areas of the software are populated with the data of the affected client.

Anfragebasierte Server-Programme nutzen bevorzugt externe Systeme zum Halten von Status und Persistenzdaten, die bevorzugt relationale Datenbankmanagementsysteme (RDBMS) und Schlüssel-Wert-Speicher (Key-Value-Stores) umfassen. Ein Datenbankmanagementsystem (DBMS) ist bevorzugt die eingesetzte Software, die für ein Datenbanksystem installiert und konfiguriert wird. Das DBMS legt das Datenbankmodell fest, hat einen Großteil der unten angeführten Anforderungen zu sichern und entscheidet maßgeblich über Funktionalität und Geschwindigkeit des Systems. Eine relationale Datenbank dient insbesondere zur elektronischen Datenverwaltung in Computersystemen. Das zugehörige Datenbankmanagementsystem wird im Sinne der Erfindung insbesondere als relationales Datenbankmanagementsystem oder RDBMS (Relational Database Management System) bezeichnet. Zum Abfragen und Manipulieren der Daten wird vorzugsweise die Datenbanksprache SQL (Structured Query Language) eingesetzt. Die Relation stellt eine mathematische Beschreibung einer Tabelle dar. Operationen auf diesen Relationen werden durch die relationale Algebra bestimmt. Die relationale Algebra ist somit die theoretische Grundlage von SQL.Request-based server programs preferably use external systems for holding status and persistence data, which preferably include relational database management systems (RDBMS) and key-value stores. A database management system (DBMS) is preferably the software that is installed and configured for a database system. The DBMS defines the database model, has to secure a large part of the requirements listed below and decisively decides on functionality and speed of the system. A relational database is used in particular for electronic data management in computer systems. In the context of the invention, the associated database management system is referred to in particular as a relational database management system or RDBMS (Relational Database Management System). For querying and manipulating the data, preferably the database language SQL (Structured Query Language) is used. The relation represents a mathematical description of a table. Operations on these relations are determined by relational algebra. Relational algebra is thus the theoretical basis of SQL.

Eine relationale Datenbank ist bevorzugt eine Sammlung von Tabellen (den Relationen), in welchen Datensätze abgespeichert sind. Jede Zeile (Tupel) in einer Tabelle ist ein Datensatz (record). Jedes Tupel besteht aus einer Reihe von Attributwerten (Attribute = Eigenschaften), den Spalten der Tabelle. Das Relationenschema legt dabei die Anzahl und den Typ der Attribute für eine Relation fest. A relational database is preferably a collection of tables (the relations) in which records are stored. Each row (tuple) in a table is a record. Each tuple consists of a set of attribute values (attributes = properties), the columns of the table. The relation schema specifies the number and type of attributes for a relation.

Um diese Systeme zu adressieren und auf diese zuzugreifen, verfügen Server-Programme über Konfigurationsparameter, die angeben über welche Kommunikationskanäle - beispielsweise über Sockets auf der lokalen Hardware oder über TCP/IP und IP-Adressen im Netzwerk - und mit welchen Zugangsdaten gearbeitet werden soll.To address and access these systems, server programs have configuration parameters that indicate which communication channels - such as sockets on the local hardware or TCP / IP and IP addresses in the network - and what access data should be used.

Es ist bevorzugt, dass sämtliche Statusinformationen und sämtliche Persistenzdaten der Clients oder Mandanten eines Servers in diesen externen Prozessen gehalten werden, so dass ein anfragebasiertes Server-Programm als solches mit Hinblick auf eine einzelne Anfrage als nicht statusbehaftet angesehen werden kann, wenn die Konfigurationsparameter zum Zugriff auf die statusbehafteten Systeme mit jeder Anfrage veränderlich sind.It is preferred that all status information and all persistence data of the clients or clients of a server be kept in these external processes, so that a request-based server program as such may be considered non-stateful with respect to a single request if the configuration parameters are for access to the stateful systems with each request are variable.

Das Software-Modul ist vorzugsweise auf die Server-Software abgestimmt ist und bevorzugt zum Zeitpunkt der Installation der Server-Software installiert.The software module is preferably tuned to the server software and preferably installed at the time of installation of the server software.

Die Erfindung betrifft ferner ein Computerprogrammprodukt auf einem computerlesbaren Medium zur Unterstützung von anfragebasierten Server-Programmen in einem Client-Server-Softwaresystem mit einer Vielzahl von Programmelementen und Mitteln zur Durchführung eines bevorzugten Verfahrens.The invention further relates to a computer program product on a computer-readable medium for supporting request-based server programs in a client-server software system having a plurality of program elements and means for carrying out a preferred method.

Außerdem betrifft die Erfindung ein Computersystem zur Unterstützung von anfragebasierten Server-Programmen in einem Client-Server-Softwaresystem, umfassend Mittel zur Durchführung eines bevorzugten Verfahrens und Mittel zur Umsetzung eines Client-Server-Soft- und Hardwaresystems. Die oben aufgeführten Darstellungen zu dem Verfahren sind analog auf das Computerprogrammprodukt sowie das Computersystem anzuwenden.Moreover, the invention relates to a computer system for supporting request-based server programs in a client-server software system comprising means for performing a preferred method and means for implementing a client-server software and hardware system. The above representations of the method are analogous to the computer program product and the computer system to apply.

Im Folgenden soll die Erfindung anhand von einem Beispiel erläutert werden, ohne jedoch hierauf beschränkt zu sein.In the following, the invention will be explained with reference to an example, but without being limited thereto.

Beispiel 1: Ablauf einer AnfrageExample 1: Procedure of a request

Das Software-Modul wird bei jeder Anfrage vor der Ausführung des eigentlichen Server-Programmes aufgerufen, um (a) aus der Anfrage die Information darüber zu extrahieren, von welchem Mandant die Anfrage ist und (b) die Konfigurationsparameter der Server-Software so anzupassen und neu zu laden, dass für die aktuelle Anfrage auf die für den Mandanten bereit gestellten Datenbereiche innerhalb der externen Prozesse für Status und Persistenzdaten zugegriffen wird. Hierzu verfügt das Software-Modul über eine Zuordnungstabelle von Mandanten-Identifikationen zu Konfigurationsparametern. Im letzten Schritt gibt das Software-Modul dann (c) die Kontrolle an das Server-Programm weiter, das die Ausführung so beginnt als hätte der Wechsel der Verbindung zu den externen Systemen nicht stattgefunden. Eine wesentliche Eigenschaft der Erfindung ist die Tatsache, dass das durch das Software-Modul modifizierte Server-Programm das Konzept der Mandantenfähigkeit nicht „kennen“ muss. Im Kontext des Server-Programmes herrscht kein Wissen darüber, dass es für mehrere Mandanten im Wechsel verwendet wird. Dadurch ist es möglich, auch bereits verfügbare Standardsoftware so anzupassen, dass sie für mehrere Mandanten einsetzbar wird.The software module is called on each request before the execution of the actual server program to (a) extract from the request the information about which client the request is and (b) adjust the configuration parameters of the server software and to reload the current request for the data areas provided to the tenant within the external processes for status and persistence data. For this purpose, the software module has an assignment table of client identifications to configuration parameters. In the final step, the software module then passes (c) control to the server program, which starts execution as if the connection to the external systems had not occurred. An essential feature of the invention is the fact that the server program modified by the software module does not have to "know" the concept of multi-client capability. In the context of the server program, there is no knowledge that it is used for several clients in turn. This makes it possible to adapt already available standard software so that it can be used for several clients.

IdentifikationID

Zur Identifikation des Mandanten können am Beispiel von HTTP-Anfragen verschiedene Hostnamen (z.B. Subdomains) verwendet werden. Wenn die Hostnamen
mandant1.bereitsteller.de und
mandant2. bereitsteller.de
beide dem Server-Rechner zugeordnet sind, der das Server-Programm und das Software-Modul installiert hat, kann das Software-Modul beispielsweise aus den HTTP-Anfrage-Adressen
http://mandant1.bereitsteller.de/login.html und
http://mandant2.bereitsteller.de/login.html
die Zugehörigkeit zum entsprechenden Mandanten ableiten und die Konfigurationsparameter entsprechend setzen, beispielsweise um wie im obigen Fall eine Login-Seite anzuzeigen.
To identify the client, different host names (eg subdomains) can be used in the example of HTTP requests. If the hostname
mandant1.provider.de and
mandant2. bereitsteller.de
For example, if both are associated with the server machine that installed the server program and the software module, the software module may use the HTTP request addresses
http://mandant1.bereitsteller.de/login.html and
http://mandant2.bereitsteller.de/login.html
derive the affiliation to the respective client and set the configuration parameters accordingly, for example to display a login page as in the above case.

Die Authentifizierung des entsprechenden Benutzers ist im obigen Beispiel und im Allgemeinen keine Aufgabe, die das Software-Modul ausüben muss. Nach erfolgter Identifikation des Mandanten kann diese Funktion ganz regulär vom Server-Programm selbst ausgeführt werden, da dieses zu diesem Zeitpunkt bereits Zugriff auf Status und Persistenzdaten hat, die in der Regel entsprechende Authentifizierungsmerkmale (Benutzernamen, Passwörter, etc.) für den Benutzerkontext innerhalb des Server-Programmes beinhalten.The authentication of the corresponding user in the example above and in general is not a task that the software module must perform. After the client has been identified, this function can be carried out quite regularly by the server program itself, since at this point in time it already has access to status and persistence data which, as a rule, corresponding authentication features (user names, passwords, etc.) for the user context within the user context Server programs include.

Zuordnungassignment

Um von einer Mandanten-Identifikation auf die Menge von Konfigurationsparametern zu kommen, verfügt das Software-Modul über eine Zuordnungstabelle. Die Zuordnungstabelle beinhaltet pro Mandant jeweils IP-Adressen oder Socket-Pfade sowie ggf. Zugangsdaten.To get from a tenant identification to the set of configuration parameters, the software module has an allocation table. The assignment table contains per IP address or socket paths as well as access data.

Als Beispiel kann dem Software-Modul folgende Zuordnungstabelle zur Verfügung stehen:

  • mandant1:
    • mysql:
      • database: „mandant1“
      • host: „192.168.0.1“
      • username: „mandant1“
      • password: „abc123“
    • memcache:
      • host: „192.168.0.2“
      • key_prefix: „mandant1_“
  • mandant2:
    • mysql:
      • database: „mandant2“
      • host: „192.168.0.1“
      • username: „mandant2“
      • password: „xyz123“
    • memcache:
      • host: „192.168.0.2“
      • key_prefix: „mandant2_“
As an example, the software module can use the following assignment table:
  • mandant1:
    • mysql:
      • database: "client1"
      • host: "192.168.0.1"
      • username: "client1"
      • password: "abc123"
    • memcache:
      • host: "192.168.0.2"
      • key_prefix: "mandant1_"
  • mandant2:
    • mysql:
      • database: "client2"
      • host: "192.168.0.1"
      • username: "client2"
      • password: "xyz123"
    • memcache:
      • host: "192.168.0.2"
      • key_prefix: "mandant2_"

Ist durch Extraktion der Mandanten-Identifikation der entsprechende Mandant bestimmt, kann das Software-Modul nun die Verbindung zu den externen Prozessen MySQL (ein RDBMS in diesem Beispiel) und Memcache (ein Schlüssel-Wert-Speicher in diesem Beispiel) herstellen und Status und Persistenzdaten stehen dem Server-Programm entsprechend zur Verfügung.If the client is determined by extracting the tenant identification, the software module can now establish the connection to the external processes MySQL (an RDBMS in this example) and Memcache (a key-value store in this example) and status and persistence data are available to the server program accordingly.

Übergabe der KontrolleTransfer of control

Nach erfolgreicher Herstellung der Verbindung zu den externen Prozessen übergibt das Software-Modul die Kontrolle an das eigentliche Server-Programm. Dies geschieht je nach technischer Eigenschaft des Server-Programmes mit Mechanismen, die vom Server-Programm bzw. verwendeten Programmierbibliotheken und Frameworks bereitgestellt werden. Das Software-Modul nimmt hier in der Regel den Platz eines Dekorierers ein.After successfully establishing the connection to the external processes, the software module transfers control to the actual server program. Depending on the technical characteristics of the server program, this happens with mechanisms provided by the server program or programming libraries and frameworks used. The software module usually takes the place of a decorator here.

Es ist vorteilhaft, wenn das Server-Programm im Quelltext vorliegt oder über Schnittstellen verfügt, mittels derer die Adressierung von Status- und Persistenzsystemen gesteuert werden kann. Da für anfragebasierte Server-Programme heute zumeist Skriptsprachen zum Einsatz kommen, die nicht kompiliert werden, ist dies im Allgemeinen erfüllt.It is advantageous if the server program is present in the source text or has interfaces by means of which the addressing of status and persistence systems can be controlled. Since request-based server programs today mostly use scripting languages that are not compiled, this is generally true.

Ferner ist bevorzugt, wenn das Server-Programm sämtlichen Status und sämtliche Persistenzdaten in externen Systemen (RDBMS, Key-Value-Stores, etc.) hält (das heißt speichert). Da anfragebasierte Server-Programme heute zumeist darauf ausgelegt sind, in hochverfügbaren und lastverteilenden Umgebungen eingesetzt zu werden, ist dies im Allgemeinen ebenfalls erfüllt.It is further preferred if the server program keeps all status and all persistence data in external systems (RDBMS, key value stores, etc.) (ie stores). Since request-based server programs are nowadays mostly designed to be used in highly available and load-distributing environments, this is generally also fulfilled.

Definiert das Server-Programm prozesslokale flüchtige Datenbereiche (Caches, etc.), kann das Software-Modul diese vor jeder Anfrage entsprechend leeren. Im Allgemeinen lassen sich für Hochverfügbarkeit und Lastverteilung aber auch die Server-Programme so konfigurieren, dass auch für flüchtige Datenbereiche externe Systeme verwendet werden.If the server program defines process-local volatile data areas (caches, etc.), the software module can empty them accordingly before each request. In general, for high availability and load balancing, server programs can also be configured to use external systems for volatile data.

Abgrenzung zum Stand der TechnikDifferentiation to the state of the art

Bei der Virtualisierung auf Anwendungsebene („Application Level Virtualization“) wird wie bei der regulären Virtualisierung ein Hypervisor eingesetzt. Im Gegensatz zur regulären Virtualisierung jedoch wird keine voll funktionsfähige Betriebssystemumgebung für das Server-Programm bereit gestellt, sondern lediglich die Teile der Umgebung, auf die das Programm notwendigerweise zugreifen muss, um zu funktionieren.Application level virtualization uses a hypervisor, just like regular virtualization. However, unlike regular virtualization, there is no full operating system environment available for the server program, only the parts of the environment that the program must necessarily access in order to function.

Die Virtualisierung auf Anwendungsebene ist insofern mit Blick auf den Ressourcenverbrauch günstiger, aber im besten Fall nur so günstig wie die angesprochene parallele Installation („Shared Hosting“), wohingegen der Mechanismus in der dargelegten Erfindung nur den Ressourcenverbrauch einer einzigen Instanz des Programmes aufweist.Application-level virtualization is more cost-effective in terms of resource consumption, but at best only as low as the addressed parallel hosting, whereas the mechanism in the disclosed invention has only the resource consumption of a single instance of the program.

Der Stand der Technik und die Erfindung sollen im Folgenden anhand von Beispielen erläutert werden, ohne jedoch hierauf beschränkt zu sein. Es zeigen:

  • 1 Stand der Technik - Interaktion zwischen Clients und einem anfragebasierten Server-Programm
  • 2 Stand der Technik - Interaktion zwischen Clients und einem anfragebasierten Server-Programm innerhalb einer virtuellen Gast-Umgebung
  • 3 Stand der Technik - Interaktion zwischen Clients und einem anfragebasierten Server-Programm innerhalb einer gemeinsamen Betriebssystem-Umgebung
  • 4 Anfrage an ein Server-Programm mit einem bevorzugten Software-Modul
  • 5 Darstellung eines bevorzugten anfragebasierten Server-Programms
  • 6 Bevorzugte Herstellung eines zu einem Mandanten passenden Kanals zu einem externen System
The state of the art and the invention will be explained below by means of examples, but without being limited thereto. Show it:
  • 1 Background Art Interaction between clients and a request-based server program
  • 2 Background Art Interaction between clients and a request-based server program within a guest virtual environment
  • 3 Background Art Interaction between clients and a request-based server program within a common operating system environment
  • 4 Request to a server program with a preferred software module
  • 5 Representation of a preferred request-based server program
  • 6 Preferred production of a client-matching channel to an external system

1 zeigt den Stand der Technik, insbesondere eine Interaktion zwischen Clients und einem anfragebasierten Server-Programm. Es sind verschiedene Nutzer 1 dargestellt, die mit ihrem Web-Browser 2 über das Internet und HTTP 3 mit dem anfragebasierten Server-Programm 5 interagieren. Das Server-Programm ist installiert auf einem Server-Rechner mit Betriebssystemumgebung 4 und belegt dort Hardware-Ressourcen wie Arbeitspeicher, Persistenzspeicher und Rechenleistung 6. Die zum Betrieb des Server-Rechners notwendigen Betriebssystemdienste und -Programme 7 belegen ebenfalls Ressourcen 8. 1 shows the state of the art, in particular an interaction between clients and a request-based server program. They are different users 1 shown with her web browser 2 over the internet and http 3 with the request-based server program 5 to interact. The server program is installed on a server computer with operating system environment 4 where it occupies hardware resources such as working memory, persistence memory and computing power 6 , The operating system services and programs required to operate the server machine 7 also occupy resources 8th ,

2 stellt exemplarisch den Stand der Technik dar, insbesondere eine Interaktion zwischen Clients und einem anfragebasierten Server-Programm innerhalb einer virtuellen Gast-Umgebung. Die Nutzer von verschiedenen Mandanten 1/1,2, die jeweils mit ihrem Web-Browser 2 über das Internet und HTTP 3 mit dem für den jeweiligen Mandanten installierten Server-Programm innerhalb der für den jeweiligen Mandanten bereit gestellten virtuellen Gast-Umgebung 9 interagieren, die wiederum innerhalb der Wirt-Umgebung 4 ausgeführt wird. Jede virtuelle Gast-Umgebung 9 belegt eigene Ressourcen 6 in der Wirt-Umgebung 9. Die zum Betrieb des Server-Rechners, der die Wirt-Umgebung 9 bereitstellt, notwendigen Betriebssystemdienste und -Programme 7 belegen ebenfalls Ressourcen 6. 2 exemplifies the state of the art, in particular an interaction between clients and a request-based server program within a virtual guest environment. The users of different clients 1 / 1 . 2 , each with their web browser 2 over the internet and http 3 with the server program installed for the respective client within the virtual guest environment provided for the respective client 9 which in turn interact within the host environment 4 is performed. Each virtual guest environment 9 occupies own resources 6 in the host environment 9 , The operation of the server machine, the host environment 9 provides necessary operating system services and programs 7 also occupy resources 6 ,

3 zeigt einen Stand der Technik, insbesondere Interaktion zwischen Clients und einem anfragebasierten Server-Programm innerhalb einer gemeinsamen Betriebssystem-Umgebung. Es sind verschiedene Nutzer von verschiedenen Mandanten 1/1,2 dargestellt, die jeweils mit ihrem Web-Browser 2 über das Internet und HTTP 3 mit dem für den jeweiligen Mandanten installierten Server-Programm 5 interagieren, das innerhalb der gemeinsamen Betriebssystem-Umgebung auf dem Server 4 ausgeführt wird. Jedes installierte Server-Programm belegt eigene Ressourcen 8. Die zum Betrieb des Server-Rechners notwendigen Betriebssystemdienste und -Programme 7 belegen ebenfalls Ressourcen 8. 3 shows a prior art, in particular interaction between clients and a request-based server program within a common operating system environment. There are different users of different clients 1 / 1 . 2 shown, each with their web browser 2 over the internet and http 3 with the server program installed for the respective client 5 interact within the common operating system environment on the server 4 is performed. Each installed server program uses its own resources 8th , The operating system services and programs required to operate the server machine 7 also occupy resources 8th ,

4 zeigt eine Anfrage an ein Server-Programm mit einem bevorzugten Software-Modul. Es sind die Nutzer von verschiedenen Mandanten 1/1,2 dargestellt, die jeweils mit ihrem Web-Browser 2 über das Internet und HTTP 3 mit dem einzelnen für alle Mandanten installierten Server-Programm 5 interagieren, das innerhalb der gemeinsamen Server Betriebssystem-Umgebung 4 ausgeführt wird. Das Server-Programm 5 belegt eigene Ressourcen 6, allerdings nur einfach - nicht wie in den vorhergehenden Beispielen für jeden Mandanten separat. Die zum Betrieb des Server-Rechners 4 notwendigen Betriebssystemdienste und -Programme 7 belegen ebenfalls Ressourcen 8. 4 shows a request to a server program with a preferred software module. They are the users of different clients 1 / 1 . 2 shown, each with their web browser 2 over the internet and http 3 with the single server program installed for all clients 5 interact within the common server operating system environment 4 is performed. The server program 5 occupies own resources 6 but only simple - not separately for each client as in the previous examples. The to the operation of the server computer 4 necessary operating system services and programs 7 also occupy resources 8th ,

5 stellt ein bevorzugte anfragebasierte Server-Programm dar. Es werden die verschiedenen Instanzen eines anfragebasierten Server-Programms 5 dargestellt, wobei von der Eigenschaft, ob diese parallel installiert oder virtualisiert sind, abstrahiert wird. Diese greifen über fest konfigurierte Kommunikationskanäle 10 auf ein externes System 11, das Status und Persistenzdaten 12 hält, zu. Dargestellt ist ebenfalls, dass die Persistenzdaten 12 wie heutzutage bereits im Regelfall üblich, in verschiedene Bereiche für verschiedene Mandanten eingeteilt sind. 5 represents a preferred request-based server program. It becomes the various instances of a request-based server program 5 and abstracting from the property, whether they are installed in parallel or virtualized. These access via permanently configured communication channels 10 on an external system 11 , the status and persistence data 12 holds, too. It is also shown that the persistence data 12 as is customary today, divided into different areas for different clients.

6 illustriert eine bevorzugte Herstellung eines zu einem Mandanten passenden Kanals zu einem externen System. Es ist dargestellt, wie eine bevorzugte Ausführungsform des Moduls 13 dazu genutzt wird, ein und der selben Installation des Server-Programms 5 je nach Anfrage den zum jeweiligen Mandanten passenden Kanal 10 zum externen System 11 bereit zu stellen. Das externe System 11 stellt auch in diesem Fall Status und Persistenzdaten 12 zur Verfügung und zwar nur den für den Mandanten vorgesehenen Bereich, analog zu 5. 6 illustrates a preferred creation of a tenant-matched channel to an external system. It is shown as a preferred embodiment of the module 13 is used to one and the same installation of the server program 5 Depending on the request, the appropriate channel for the respective client 10 to the external system 11 to provide. The external system 11 also provides status and persistence data in this case 12 available only for the client's intended area, analogous to 5 ,

BezugszeichenlisteLIST OF REFERENCE NUMBERS

1/1,21 / 1.2
Nutzeruser
22
Web-BrowserWeb browser
33
Internet und/oder HTTPInternet and / or HTTP
44
Server-RechnerServer computer
55
anfragebasierte Server-Programmrequest-based server program
66
Ressourcenresources
77
Betriebssystemdienste und -ProgrammeOperating system services and programs
88th
Ressourcen der Betriebssystemdienste und -ProgrammeResources of operating system services and programs
99
virtuelle Gastumgebungvirtual guest environment
1010
Kommunikationskanalcommunication channel
1111
externe Systemeexternal systems
1212
Status- und/oder PersistenzdatenStatus and / or persistence data
1313
Modulmodule

Claims (13)

Verfahren zur Unterstützung von anfragebasierten Server-Programmen in einem Client-Server-Softwaresystem, wobei ein Modul auf einem Server, insbesondere einer Server-Software vorliegt und das Modul bei einer Anfrage eines Benutzers an ein anfragebasiertes Server-Programm aufgerufen wird, und seinerseits aus der Anfrage die Identifikation der Mandantenumgebung extrahiert, an die die Anfrage gerichtet ist, wobei das Modul mit Hilfe einer Zuordnungstabelle der Anfrage auf Basis der Mandanten-Identifikation eine Menge an Konfigurationsparametern zuordnet, wobei es die Konfiguration des anfragebasierten Server-Programms anpasst und neu lädt, so dass für die Anfrage auf die für den Benutzer bereit gestellten Datenbereiche innerhalb der externen Prozesse für Status und Persistenzdaten zugegriffen wird, wobei das Software-Modul nach Herstellen der Verbindung die Kontrolle an das Server-Programm übergibt, welches sodann die Bearbeitung der Anfrage so beginnt als hätte die Neukonfiguration nie statt gefunden.Method for supporting request-based server programs in a client-server Software system, wherein a module is present on a server, in particular a server software, and the module is called upon request of a user to a request-based server program, and in turn extracts from the request the identification of the client environment to which the request is directed, wherein the module, by means of a mapping table, assigns a set of configuration parameters to the query based on the tenant identification, and adjusts and reloads the configuration of the request-based server program so that the request for the data areas provided to the user within the external processes for status and persistence data are accessed, whereby the software module after the connection passes the control to the server program, which then the processing of the request begins as if the reconfiguration never took place. Verfahren nach Anspruch 1, wobei das Server-Programm auf einer Server-Hardware installiert ist und dort andauernd ausgeführt wird.Method according to Claim 1 , where the server program is installed on a server hardware and is constantly running there. Verfahren nach Anspruch 1 oder 2, wobei die Anfragen mittels Server-Hardware, insbesondere Arbeitsspeicher, persistenter Speicher und Rechenleistung bearbeitet werden.Method according to Claim 1 or 2 in which the requests are processed by means of server hardware, in particular main memory, persistent memory and computing power. Verfahren nach einem oder mehreren der vorherigen Ansprüche, wobei das Software-Modul auf der Server-Hardware nur einmal installiert wird und alle Client Anfragen bearbeitet.Method according to one or more of the preceding claims, wherein the software module is installed only once on the server hardware and processes all client requests. Verfahren nach einem oder mehreren der vorherigen Ansprüche, wobei das anfragebasierte Server-Programm mit Systemen zum Halten von Status- und Persistenzdaten verbunden wird.Method according to one or more of the preceding claims, wherein the request-based server program is connected to systems for holding status and persistence data. Verfahren nach einem oder mehreren der vorherigen Ansprüche, wobei die Systeme zum Halten von Status- und Persistenzdaten relationale Datenbankmanagementsysteme und/oder Schlüssel-Wert-Speicher umfassen.Method according to one or more of the preceding claims, wherein the systems for holding status and persistence data comprise relational database management systems and / or key-value memories. Verfahren nach einem oder mehreren der vorherigen Ansprüche, wobei die Zuordnungstabelle IP-Adressen, Socket-Pfade und/oder Zugangsdaten, insbesondere Benutzername und Passwort umfasst.Method according to one or more of the preceding claims, wherein the allocation table IP addresses, socket paths and / or access data, in particular user name and password includes. Verfahren nach einem oder mehreren der vorherigen Ansprüche, wobei Anfragen mit Hilfe des Hypertext-Transfer-Protokolls gestellt werden.Method according to one or more of the preceding claims, wherein requests are made using the hypertext transfer protocol. Verfahren nach einem oder mehreren der vorherigen Ansprüche, wobei auf einem Client-Rechner ein Web-Browser installiert ist.Method according to one or more of the preceding claims, wherein a web browser is installed on a client computer. Verfahren nach einem oder mehreren der vorherigen Ansprüche, wobei für jede Anfrage an die Server-Software die Datenbereiche der Server-Software mit den Daten des betroffenen Mandanten belegt sind.Method according to one or more of the preceding claims, wherein for each request to the server software, the data areas of the server software are populated with the data of the affected client. Verfahren nach einem oder mehreren der vorherigen Ansprüche, wobei auch bereits verfügbare Standardsoftware so angepasst werden kann, dass sie für mehrere Mandanten einsetzbar ist.Method according to one or more of the preceding claims, wherein already available standard software can be adapted so that it can be used for several clients. Ein Computerprogrammprodukt auf einem computerlesbaren Medium zur Unterstützung von anfragebasierten Server-Programmen in einem Client-Server-Softwaresystem mit einer Vielzahl von Programmelementen und Mitteln zur Durchführung eines Verfahrens nach den Ansprüchen 1 bis 11.A computer program product on a computer-readable medium for supporting request-based server programs in a client-server software system having a plurality of program elements and means for performing a method according to the Claims 1 to 11 , Ein Computersystem zur Unterstützung von anfragebasierten Server-Programmen in einem Client-Server-Softwaresystem, umfassend Mittel zur Durchführung eines Verfahrens nach den Ansprüchen 1 bis 11, und Mittel zur Umsetzung eines Client-Server-Soft- und Hardwaresystems.A computer system for supporting request-based server programs in a client-server software system comprising means for performing a method according to the Claims 1 to 11 , and means for implementing a client-server software and hardware system.
DE102011056595.7A 2011-12-19 2011-12-19 Method for supporting request-based server programs Active DE102011056595B4 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102011056595.7A DE102011056595B4 (en) 2011-12-19 2011-12-19 Method for supporting request-based server programs

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102011056595.7A DE102011056595B4 (en) 2011-12-19 2011-12-19 Method for supporting request-based server programs

Publications (2)

Publication Number Publication Date
DE102011056595A1 DE102011056595A1 (en) 2013-06-20
DE102011056595B4 true DE102011056595B4 (en) 2019-05-09

Family

ID=48521552

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102011056595.7A Active DE102011056595B4 (en) 2011-12-19 2011-12-19 Method for supporting request-based server programs

Country Status (1)

Country Link
DE (1) DE102011056595B4 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6343360B1 (en) 1999-05-13 2002-01-29 Microsoft Corporation Automated configuration of computing system using zip code data
US20020120724A1 (en) 2001-02-23 2002-08-29 Kaiser Christian M. Mechanism for reconfiguring a server without incurring server down time
US20030101245A1 (en) 2001-11-26 2003-05-29 Arvind Srinivasan Dynamic reconfiguration of applications on a server
US20060123121A1 (en) 2004-11-22 2006-06-08 Akira Maegawa System and method for service session management

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6343360B1 (en) 1999-05-13 2002-01-29 Microsoft Corporation Automated configuration of computing system using zip code data
US20020120724A1 (en) 2001-02-23 2002-08-29 Kaiser Christian M. Mechanism for reconfiguring a server without incurring server down time
US20030101245A1 (en) 2001-11-26 2003-05-29 Arvind Srinivasan Dynamic reconfiguration of applications on a server
US20060123121A1 (en) 2004-11-22 2006-06-08 Akira Maegawa System and method for service session management

Also Published As

Publication number Publication date
DE102011056595A1 (en) 2013-06-20

Similar Documents

Publication Publication Date Title
DE69724877T2 (en) Method and device for operating an aggregation of server computers using a dual-purpose proxy server
DE69735348T2 (en) Scalable and extensible system management architecture with dataless endpoints
DE69532736T2 (en) Operating method for computer network
DE69833929T2 (en) Network access authentication system
DE69733914T2 (en) Method and apparatus for dynamic client authentication in a networked file system
DE69915441T2 (en) System and method for automatic authenticated access to a plurality of network operators by a single login
DE112017000337T5 (en) Specify a disaggregated data processing system
DE60006578T2 (en) METHOD AND DEVICE FOR PROVIDING SEVERAL SIMULTANEOUS DESKTOPS AND WORKPLACES IN A COMMON COMPUTER ENVIRONMENT
DE69935920T2 (en) LOAD COMPENSATION IN A NETWORK ENVIRONMENT
DE60006451T2 (en) Distributed authentication mechanisms for handling different authentication systems in a company computer system
DE69730906T2 (en) Name service for a redundant internet server network
DE112017000629T5 (en) Multi-tenant memory service for architectures with memory pools
DE112011103522T5 (en) Creation of a multidimensional model of software offerings
DE102008011191A1 (en) Client / server system for communication according to the standard protocol OPC UA and with single sign-on mechanisms for authentication as well as methods for performing single sign-on in such a system
DE102009049674A1 (en) Segregate anonymous access to dynamic content on a web server with cached logins
DE112005001995B4 (en) A computer arrangement and method for offering services to users over a network
DE112012003778T5 (en) Computer network management tools
DE69733918T2 (en) Method and device for operating a user computer without vendor software
DE102020114272A1 (en) Use of virtual node clusters in a multi-media environment
DE102011114273A1 (en) Automatic user redundancy determination
DE60130868T2 (en) SYSTEM AND METHOD FOR USE OF DIRECTORY SERVICES TO FACILITATE ACCESS TO APPLICATIONS THIN-CLIENT SERVERN AVAILABLE
DE102011056595B4 (en) Method for supporting request-based server programs
DE69637098T2 (en) SAFETY DEVICE AND METHOD FOR A DATA PROCESSING SYSTEM
DE102012007217A1 (en) Information technology method for safe handling and safe processing of sensitive data for social security number, involves performing translation of sensitive data on placeholder data and vice versa to use services of private cloud
EP3118768A1 (en) Method for forming a virtual environment in an operating system of a computer

Legal Events

Date Code Title Description
R163 Identified publications notified
R012 Request for examination validly filed
R016 Response to examination communication
R082 Change of representative

Representative=s name: HERTIN & PARTNER RECHTS- UND PATENTANWAELTE PA, DE

R018 Grant decision by examination section/examining division
R020 Patent grant now final