DE102015214253A1 - Method for introducing multi-client capability into existing applications - Google Patents

Method for introducing multi-client capability into existing applications Download PDF

Info

Publication number
DE102015214253A1
DE102015214253A1 DE102015214253.1A DE102015214253A DE102015214253A1 DE 102015214253 A1 DE102015214253 A1 DE 102015214253A1 DE 102015214253 A DE102015214253 A DE 102015214253A DE 102015214253 A1 DE102015214253 A1 DE 102015214253A1
Authority
DE
Germany
Prior art keywords
client
application
specific
app
clients
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.)
Withdrawn
Application number
DE102015214253.1A
Other languages
German (de)
Inventor
Uwe Hohenstein
Sebastian Ries
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Siemens AG
Original Assignee
Siemens AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Siemens AG filed Critical Siemens AG
Priority to DE102015214253.1A priority Critical patent/DE102015214253A1/en
Publication of DE102015214253A1 publication Critical patent/DE102015214253A1/en
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2117User registration

Abstract

Die Erfindung betrifft im Wesentlichen ein Verfahren zur Einbringung einer Multimandantenfähigkeit in bestehende Applikationen, bei dem vorab beim Anbieter eine Registrierung von Mandanten und eine Bewilligung der Nutzung der Applikation durch einen jeweiligen Mandanten erfolgen kann, und bei dem eine Registrierung und Überprüfung der Zugriffserlaubnis, eine Datenisolation, eine Individualisierung der Applikation, eine Erfassung der Nutzungsdaten des neuen Benutzers und eine Überwachung von vereinbarten Begrenzungen mandantenspezifisch erfolgt, wobei zumindest diese mandantenspezifisch ausgeführten Merkmale Aspekte darstellen, die unter Einsatz der Aspektorientierten Programmierung, insbesondere zur Laufzeit, in den Programmcode der betreffenden Applikation eingewoben werden. Hierdurch können einfach und kostengünstig bestehende Applikationen als Software-as-a-Service (SaaS) in einer Cloud offeriert werden und es müssen hierzu keine Quellcodeänderungen an den Applikationen vorgenommen werden. Entsprechende wiederverwendbare Komponenten können eingesetzt werden.The invention relates essentially to a method for introducing a multi-client capability into existing applications, in which a registration of clients and authorization of the use of the application by a respective client can take place beforehand with the provider, and in which a registration and verification of the access permission, a data isolation , an individualization of the application, acquisition of the user data of the new user and monitoring of agreed limits made client-specific, at least these client-specific features represented aspects that are woven using the aspect-oriented programming, especially at runtime, in the program code of the application , As a result, existing applications can be offered simply and cost-effectively as Software-as-a-Service (SaaS) in a cloud and no source code changes have to be made to the applications for this purpose. Corresponding reusable components can be used.

Description

Die Erfindung betrifft ein Verfahren zur Einbringung einer Multimandantenfähigkeit in bestehende Applikationen. The invention relates to a method for introducing a multi-client capability into existing applications.

Die Spannweite der im Rahmen von Cloud Computing angebotenen Dienstleistungen umfasst das gesamte Spektrum der Informationstechnik und beinhaltet unter anderem Infrastruktur, z. B. Rechenleistung oder Speicherplatz, Plattformen und Software. Der Zugriff auf die entfernten Systeme erfolgt über ein Netzwerk, beispielsweise das des Internets. The range of services offered in cloud computing covers the entire spectrum of information technology and includes infrastructure such as: Eg computing power or storage space, platforms and software. Access to the remote systems is via a network, such as the Internet.

Cloud Computing bietet insbesondere einen Nutzungszugang von Software-Sammlungen und Anwendungsprogrammen. Software-as-a-Service-Dienstanbieter bzw. SaaS-Dienstanbieter offerieren spezielle Auswahlen von Software. Das Grundprinzip von SaaS besteht darin, Softwareapplikationen in der so genannten Cloud mit einer Miete anzubieten, statt im Rahmen eines herkömmlichen Lizenzgeschäfts zu verkaufen. Der Betrieb der SaaS-Applikation erfolgt in der Regel nicht mehr beim Konsumenten auf der eigenen Hardware, sondern in der Cloud. In particular, cloud computing provides access to software collections and application programs. Software as a Service providers or SaaS service providers offer specific selections of software. The basic principle of SaaS is to offer software applications in the so-called Cloud with a rent instead of selling them as part of a conventional license business. The operation of the SaaS application is usually no longer on the consumer's own hardware, but in the cloud.

Ökonomische Aspekte für SaaS-Dienstanbieter erfordern eine sogenannte Multimandantenfähigkeit, die oft als ein Kernelement von SaaS angesehen wird, wobei eine Multimandantenfähigkeit für eine gemeinsam genutzte Infrastruktur steht, die mehreren Mandanten zur Verfügung gestellt wird. Mehrere Mandanten werden durch eine Instanz einer Applikation bedient, wobei jeder Mandant das Gefühl hat, seine eigene Applikation zu benutzen. Insofern erhält er eine eigene virtuelle Applikation, die er aber physikalisch mit Anderen teilt. Es ist folglich eine physische Instanz der Applikation von vielen "virtuellen" mandantenspezifischen Instanzen, welche die Mandanten sehen, zu unterscheiden. Natürlich lassen sich mehrere Instanzen bei steigender Last einsetzen, wobei weiterhin jede einzelne physikalische Instanz wiederum multimandantenfähig ist. Economic aspects for SaaS service providers require a so-called multi-client capability, which is often considered a core element of SaaS, where a multi-client capability is a shared infrastructure that is made available to multiple clients. Several clients are served by an instance of an application, with each client feeling that they are using their own application. In this respect he receives his own virtual application, which he shares physically with others. It is therefore a physical instance of the application to be distinguished from many "virtual" client-specific instances that the clients see. Of course, multiple instances can be used as the load increases, with each physical entity in turn being multi-client capable.

Durch eine Multimandantenfähigkeit lassen sich für einen SaaS-Anbieter die benötigten Ressourcen zur Ausführung der Applikation, also bspw. die Hardware, lizensierte Software wie Applikationsserver oder Datenbanksysteme, erheblich reduzieren. Ziel ist es, eine Applikation mit möglichst wenig zu bezahlenden Ressourcen vielen Mandanten zur Verfügung zu stellen, wobei jeder Mandant eine eigene virtuelle Umgebung erhält, im selben Zuge aber eine strikte Trennung der Mandanten erfolgt, d.h. kein Mandant darf die Daten anderer Mandanten zufällig oder durch gezielte Manipulation sehen. Multi-client capability significantly reduces the resources required to run the application, such as hardware, licensed software such as application servers or database systems, for a SaaS provider. The goal is to provide an application with as few resources as possible to many clients, whereby each client receives its own virtual environment, but at the same time a strict separation of the clients takes place, i. no client may see the data of other clients at random or through targeted manipulation.

Durch eine Multimandantenfähigkeit lassen sich somit durch eine Reduktion der Ressourcen hohe Kosten im operativen Betrieb sowohl auf privater Infrastruktur wie auch in Public Clouds mit einem Pay-as-you-go-Bezahlmodell vermeiden, die sich negativ auf angebotene Preise auswirken würden bzw. die Gefahr bergen, mit einem SaaS-Angebot in die Verlustzone zu geraten. Auch hat eine Einsparung der Ressourcen positive Auswirkungen auf den Energieverbrauch, sowohl auf privater Infrastruktur wie auch in Public Clouds. Through a multi-client capability, a reduction of resources can avoid high operational costs both on private infrastructure as well as in public clouds with a pay-as-you-go payment model, which would have negative effects on offered prices or the risk to fall into the red with a SaaS offer. Also, saving resources has a positive impact on energy consumption, both on private infrastructure and in public clouds.

Ein nicht zu vernachlässigender Kostenfaktor neben der operativen Kosten sind auch die Entwicklungskosten multimandantenfähiger SaaS-Applikationen bzw. für die Migration von bestehenden Applikation in SaaS-Angebote. Auch sollte trotz gemeinsam benutzter Instanzen der Applikation durch mehrere Mandanten dennoch eine Anpassbarkeit der Applikation an einzelne Mandanten möglich sein. A not inconsiderable cost factor besides the operative costs are also the development costs of multi-client capable SaaS applications or for the migration of existing applications to SaaS offerings. Also, despite shared instances of the application by multiple clients should still be an adaptability of the application to individual clients possible.

Ein bisheriger Lösungsansatz besteht darin, die bestehende Applikation mehr oder weniger vollständig zu refaktorisieren, um die Multimandantenfähigkeit im Sinne der o. g. Anforderungen an verschiedenen Stellen in die bestehende Software einzubringen. Damit verbunden ist ein entsprechend hoher Entwicklungsaufwand, der für jede Applikation individuell erneut zu tätigen ist. A previous solution is to refactor the existing application more or less completely in order to achieve the multi-client capability in the sense of the above-mentioned. To introduce requirements in different places in the existing software. This is associated with a correspondingly high development effort, which is to be made individually for each application again.

Ein weiterer bekannter Lösungsansatz stellt die gesamte Applikation für jeden Mandanten in derselben Form bereit, z.B. in einer Virtuellen Maschine (VM) in einer Cloud, wodurch allerdings bspw. keine wirkliche Multimandantenfähigkeit zugunsten einer Ressourceneinsparung erzielt wird. Another known approach provides the entire application for each client in the same form, e.g. in a virtual machine (VM) in a cloud, however, which, for example, does not achieve any real multi-client capability in favor of saving resources.

Ein anderer bekannter Lösungsansatz besteht aus einer manuellen Neuimplementierung der Applikation, was für jede Applikation erneut durchgeführt werden muss und was höhere Entwicklungskosten, insbesondere durch den höheren Testaufwand, erfordert. Another known approach consists of a manual re-implementation of the application, which must be performed again for each application and what higher development costs, in particular by the higher test cost, requires.

Die der Erfindung zu Grunde liegende Aufgabe besteht nun darin, ein Verfahren zur Einbringung einer Multimandantenfähigkeit in bestehende Applikationen anzugeben, bei dem eine bestehende Applikation mit möglichst wenig Aufwand zu einer multimandantenfähigen SaaS-Applikation migrierbar ist und bei dem die oben genannten Nachteile möglichst vermieden werden. The problem underlying the invention is now to specify a method for introducing multi-client capability into existing applications, in which an existing application can be migrated with as little effort as possible to a multi-client capable SaaS application and in which the abovementioned disadvantages are avoided as far as possible.

Diese Aufgabe wird durch die Merkmale des Patentanspruchs 1 erfindungsgemäß gelöst. Die weiteren Ansprüche betreffen bevorzugte Ausgestaltungen der Erfindung. This object is achieved by the features of claim 1 according to the invention. The further claims relate to preferred embodiments of the invention.

Die Erfindung betrifft im Wesentlichen ein Verfahren zur Einbringung einer Multimandantenfähigkeit in bestehende Applikationen, um diese in eine SaaS-Applikation umzuwandeln, bei dem vorab beim Anbieter eine Registrierung von Mandanten, die die Applikation nutzen möchten, erfolgt, durch den Anbieter eine Bewilligung der Nutzung der Applikation durch einen jeweiligen Mandanten erfolgt, sofern eine entsprechende Nutzungsberechtigung vorliegt, und durch jeweiligen Mandanten eine mandantenspezifische Registrierung von künftigen Benutzern des jeweiligen Mandanten erfolgt, und bei dem nachher eine Zugriffserlaubnis für einen neuen Benutzer erteilt wird, sofern eine entsprechende Berechtigung des neuen Benutzers des jeweiligen neuen Mandanten vorliegt, aus den Daten des neuen Benutzers der jeweilige neue Mandant ermittelt wird, eine mandantenspezifische Datenisolation bezüglich des jeweiligen neuen Mandanten gegenüber anderen Mandanten erfolgt, eine mandantenspezifische Individualisierung der Applikation für die jeweiligen neuen Benutzer in Abhängigkeit des jeweiligen neuen Mandanten erfolgt, eine mandantenspezifische Erfassung der Nutzungsdaten des neuen Benutzers und eine mandantenspezifische Überwachung von vereinbarten Begrenzungen erfolgt, wobei mindestens die Schritte nachher Aspekte darstellen, die unter Einsatz der Aspektorientierten Programmierung, insbesondere zur Laufzeit, in den Programmcode der betreffenden Applikation eingewoben werden. The invention relates generally to a method for introducing a multi-client capability into existing applications in order to convert these into a SaaS application, in which in advance Provider a registration of clients, who would like to use the application, takes place, by the offerer a permission of the use of the application by a respective client takes place, if an appropriate use authorization exists, and by respective client a mandanten-specific registration of future users of the respective client takes place, and in which an access permission is subsequently granted for a new user, provided that a corresponding authorization of the new user of the respective new client exists, from the data of the new user the respective new client is determined, a client-specific data isolation with respect to the respective new client with respect to other clients takes place, a client-specific customization of the application for the respective new user depending on the respective new client is done, a client-specific capture of the user data of the new user and a m Andantenspezifische monitoring of agreed limits is carried out, wherein at least the steps subsequently represent aspects that are woven using the aspect-oriented programming, especially at runtime, in the program code of the application concerned.

Hierdurch können einfach und kostengünstig bestehende Applikationen als Software-as-a-Service (SaaS) in einer Cloud offeriert werden, wobei hierzu keine Quellcode-Änderungen an den Applikationen vorgenommen werden müssen, sondern wiederverwendbaren Komponenten eingesetzt werden können. As a result, existing applications can be offered in a cloud simply and cost-effectively as software-as-a-service (SaaS), in which case no source code changes have to be made to the applications, but reusable components can be used.

Nachfolgend wird die Erfindung anhand von in der Zeichnung dargestellten Ausführungsbeispielen näher erläutert. The invention will be explained in more detail with reference to embodiments shown in the drawing.

Die Zeichnung zeigt im linken Teil eine bestehende Applikation APP mit ihrer Datenbank. Diese Applikation weist auch bereits eine irgendwie geartete Benutzerverwaltung BV auf, mit der sich Benutzer B1 und B2 zur Applikation APP, bspw. in einer Tabelle zusammen mit einem jeweiligen Passwort, eintragen lassen; B3 ist vom Zugriff ausgeschlossen. The drawing shows in the left part of an existing application APP with its database. This application also already has some kind of user management BV, with which users B1 and B2 can register to the application APP, for example in a table together with a respective password; B3 is excluded from access.

Die rechte Teil der Zeichnung zeigt die Erweiterung zu einer mandantenfähige Applikation APP mit mandantenspezifischen Datenbanken und mit einer Mandanten/Benutzer-Verwaltungseinheit MBV. Darüber hinaus ist ein Aspekt MTE zur Multimandanten-Befähigung („MultitenancyEnabler“) angedeutet. Über weitere Aspekte ASP können mandantenspezifische Funktionalitätsänderungen bzw. mandantenspezifische Funktionalitäten F1 u. F2 der Applikation APP zugeführt werden. Ferner sind beispielhaft zwei Benutzer B11 und B12 eines ersten Mandanten M1 und ein Benutzer B21 eines zweiten Mandanten M2 dargestellt, die mit der Mandanten/Benutzer-Verwaltungseinheit MBV in Verbindung stehen. The right part of the drawing shows the extension to a multi-tenant application APP with client-specific databases and with a client / user management unit MBV. In addition, one aspect MTE is indicated for multi-client enabler capability ("Multitenancy Enabler"). Further aspects of ASP allow client-specific functionality changes or client-specific functionalities F1 u. F2 of the application APP are supplied. Furthermore, two users B11 and B12 of a first client M1 and a user B21 of a second client M2 are shown by way of example, which are in communication with the client / user management unit MBV.

Die Mandanten/Benutzer-Verwaltungseinheit MBV dient dem Zweck, dass sich Mandanten für die bestehende Applikation APP registrieren können; die bestehende Benutzerverwaltung BV ist hingegen nicht mandantenfähig. Bewilligt der Anbieter der Applikation die Registrierung, kann der Mandant wiederum seine Benutzer für die Nutzung anmelden. The client / user management unit MBV serves the purpose that clients can register for the existing application APP; the existing user management BV, however, is not multi-client capable. If the provider of the application authorizes the registration, the client can in turn register its users for use.

Der Aspekt MTE zur Multimandantenbefähigung erzeugt mandantenspezifisch für die beiden Mandanten getrennte virtuelle Applikationen mit entsprechend getrennten Datenbanken oder Datenbankbereichen DB(M1) und DB(M2). The aspect MTE for multi-client authorization generates client-specific separate virtual applications for the two clients with correspondingly separate databases or database areas DB (M1) and DB (M2).

Die Registrierung von Mandanten über die MBV umfasst diverse Daten und Kenngrößen wie bspw. Kreditkartennummer, Anzahl Benutzer etc. Die Registrierung sowie die Bewilligung der Nutzung der Applikation durch Mandanten durch den SaaS-Anbieter sind ohne den Einsatz von Aspektorientierten Programmierung (AOP) realisierbar. The registration of clients via the MBV includes various data and parameters such as credit card number, number of users, etc. The registration and approval of the use of the application by clients by the SaaS provider can be realized without the use of aspect-oriented programming (AOP).

Die restlichen Merkmale der hier geschilderten Erfindung nutzen zu ihrer Realsierung den Einsatz der AOP. The remaining features of the invention described here make use of the AOP for their realization.

Hierzu werden die Funktionalitätserweiterungen/modifikationen separat in einem sogenannten Aspekt definiert. Das grundsätzliche Schema ist hierbei, dass die ursprüngliche Applikation als bereits übersetzte Bibliothek, zum Beispiel im Umfeld der Programmiersprache Java als Web- oder Java-Archiv ".war/.jar" vorliegt, unverändert bleibt und mit separat vorliegenden Aspektdefinitionen modifiziert wird. For this purpose, the functionality extensions / modifications are defined separately in a so-called aspect. The basic scheme here is that the original application remains as an already translated library, for example in the environment of the Java programming language as a Web or Java archive ".war / .jar", remains unchanged and is modified with separately present aspect definitions.

Das Verfahren zur Anwendung eines Aspekts und die Syntax der Aspektdefinition hängen von der verwendeten Implementierung ab. Zurzeit existieren für nahezu alle gängigen Programmiersprachen Umsetzungen für die Anwendung von AOP. The method of applying an aspect and the syntax of the aspect definition depend on the implementation used. Currently there are implementations for the application of AOP for almost all common programming languages.

Diese Erfindung schlägt zentrale und wiederverwendbare wie auch flexibel anpassbare Komponenten vor, die für verschiedene Applikationen einsetzbar sind, wodurch Implementierungskosten eingespart werden können. This invention proposes central and reusable as well as flexibly adaptable components that can be used for various applications, which can save on implementation costs.

Technisch besteht das Verfahren aus einem einfachen Hinzufügen von neuen Komponenten, welche die Applikation entsprechend beeinflussen. Der große Vorteil dieses Verfahrens besteht darin, dass nicht direkt auf den Quellcode der Applikation eingegriffen wird und keine Compilierung der bestehenden Applikation erfolgen muss. Technically, the process consists of simply adding new components that affect the application accordingly. The big advantage of this method is that it does not intervene directly on the source code of the application and there is no need to compile the existing application.

Intern werden Mittel der Aspektorientierten Programmierung benutzt, um nachträgliche Code-Änderungen in der Applikation zur Erzielung einer Multimandantenfähigkeit mit den obigen Eigenschaften zu vermeiden; statt dessen wird dies implizit, d.h. nicht direkt im Code durchgeführt. Internally, Aspect-oriented programming means are used to avoid subsequent code changes in the multi-client capability application having the above characteristics; instead, this is done implicitly, ie not directly in the code.

Die grundlegenden Konzepte der Aspektorientierung sind:

  • – Pointcuts definieren Stellen im Programmcode, an denen die bestehende Logik geändert, entfernt bzw. neue Logik eingebracht werden sollen. Der zu beeinflussende Programmcode kann sich in Bibliotheken, z.B. JAR/WAR-Dateien, befinden und muss nicht notwendigerweise als Quellcode vorliegen.
  • – Advices definieren die Logik, die hinzugefügt wird bzw. auch bestehende Logik ersetzt.
  • – Ein Aspekt bündelt die Pointcuts und Advices zu einer Einheit in der Form, dass der Advice an den durch den Pointcut spezifizierten Stellen "hinzugewoben" wird, ohne dass der ursprüngliche Quellcode explizit modifiziert und/oder compiliert werden muss.
  • – Das Einweben kann insbesondere zur Ladezeit erfolgen, in dem der Aspekt die zu ladenden Klassen der Applikation modifiziert.
The basic concepts of aspect orientation are:
  • - Pointcuts define places in the program code where the existing logic is to be changed, removed or new logic introduced. The program code to be influenced may be in libraries, eg JAR / WAR files, and does not necessarily have to be present as source code.
  • - Advices define the logic being added or replacing existing logic.
  • - One aspect bundles the pointcuts and advices into a single entity in such a way that the advice is "added" to the points specified by the pointcut, without the original source code having to be explicitly modified and / or compiled.
  • The weaving in can take place, in particular, at the time of loading, in which the aspect modifies the classes of the application to be loaded.

In der Java-Programmierung kann ein Aspekt als normale Java-Klasse implementiert werden. Die Klasse beschreibt die erweiterte oder geänderte Funktionalität. Annotationen geben an, welche Codeteile der Applikation ausgetauscht oder erweitert werden sollen. Ein spezielles Verfahren legt fest, wie eine erweiterte Ersatzkomponente erstellt werden kann. In Java programming, one aspect can be implemented as a normal Java class. The class describes the extended or changed functionality. Annotations indicate which code parts of the application are to be exchanged or extended. A special procedure determines how an extended replacement component can be created.

Hier erfolgt eine detaillierte Ausgestaltung für Java-Applikationen, die in einem Applikationsserver wie z.B. Tomcat laufen. Der Ansatz ist aber auch auf andere Umgebungen wie auch auf andere Implementierungssprachen, z.B. C#, übertragbar. Here is a detailed design for Java applications that in an application server such. Tomcat run. The approach is also applicable to other environments as well as to other implementation languages, e.g. C #, transferable.

Schritt 1: Step 1:

Zunächst wird ein SQL-Skript für die funktionalen Erweiterungen zur Mehrmandantenfähigkeit an der bestehenden Datenbank benötigt. Dieses lässt sich im laufenden Betrieb der Applikation ausführen. First, a SQL script is needed for the multi-client capability enhancements to the existing database. This can be done while the application is running.

Schritt 2: Step 2:

Die Komponente zur Mandanten/Benutzer-Verwaltung MBV wird bereitgestellt:

  • a) Interessierten Mandanten können sich über die MBV für die Applikation APP anmelden.
  • b) Bewilligung eines Mandanten für die Nutzung der Applikation APP durch den SaaS-Anbieter: Nach Vereinbarung der Zahlungsmodalitäten etc. kann der SaaS-Anbieter den Mandanten zur Nutzung der Applikation freischalten. Jeder Mandant erhält einen isolierten Bereich zur persistenten Speicherung seiner Applikationsdaten, z.B. je Mandant eine eigene Datenbank DB(M1) und DB(M2) in einem zentralen Datenbankserver, der nicht durch andere Mandanten einsehbar ist.
  • c) Mandantenspezifische Benutzerverwaltung: ein Mandant kann seine Benutzer für eine Nutzung der Applikation registrieren.
  • d) Absicherung der Services: Nur dem entsprechenden Personenkreis wird die Nutzung über Authentifizierung und Rollenkonzept (SaaS-Administrator, Mandanten-Administrator, Benutzer) ermöglicht. Die Mandanten/Benutzer-Verwaltung MBV wird dem Applikationsserver hinzugefügt. Mit dieser Erweiterung wird zunächst einmal den neuen Benutzern aller registrierten und bewilligten Mandanten ermöglicht, die Applikation so zu nutzen, als seien sie Benutzer der ursprünglichen Applikation APP. Somit benutzen alle dieselbe Applikation APP mit derselben ursprünglich zugrunde liegenden Datenbank. Dieser Sachverhalt ist nicht ausreichend, da bisher keine Datenisolation auf Mandantenebene erfolgt.
The Client / User Management component MBV is provided:
  • a) Interested clients can log in via the MBV for the application APP.
  • b) Authorization of a client for the use of the APP application by the SaaS provider: After agreeing the payment modalities, etc., the SaaS provider can enable the client to use the application. Each client receives an isolated area for the persistent storage of its application data, for example a separate database DB (M1) and DB (M2) per client in a central database server that can not be viewed by other clients.
  • c) Client-specific user management: a client can register its users to use the application.
  • d) Securing the Services: Only the appropriate group of persons can be used via authentication and role concept (SaaS administrator, client administrator, user). The client / user management MBV is added to the application server. With this extension, the new users of all registered and approved clients are first of all enabled to use the application as if they were users of the original application APP. Thus, all the same application uses APP with the same original underlying database. This is not enough, as there is no data isolation at the client level.

Schritt 3: Step 3:

Nach einem Login eines Benutzers irgendeines Mandanten wird jeder Zugriff auf die Applikation APP abgefangen und durch den Aspekt MTE wie folgt modifiziert: Der angemeldete Benutzer wird extrahiert und sein zugehöriger Mandant ermittelt. Das funktioniert unabhängig vom genutzten Authentifizierungsverfahren, d.h. es können sowohl vom Applikationsservern angebotene Lösungen wie Basic Authentication oder Form-based Authentication genutzt werden. Sollen komplexere Anforderungen für die Authentifizierung der Nutzer umgesetzt werden z.B. Identity Federation, Multi-Factor-Authentication, kann der Loginvorgang in eine eigene Komponente ausgelagert werden. Nachdem Login wird die Information über den authentifizierten Nutzer bzw. dessen Mandatenzugehörigkeit der Applikation APP in geeigneterweise zugänglich gemacht. Hierfür kann diese Information beispielsweise in der Session des Nutzers gespeichert werden oder in einem Security Token, welches bei jedem Zugriff auf die Applikation APP mitgeschickt wird. After a login of a user of any client, any access to the application APP is intercepted and modified by the aspect MTE as follows: The logged-in user is extracted and its associated client determined. This works regardless of the authentication method used, i. Both solutions offered by the application server, such as Basic Authentication or Form-based Authentication, can be used. If more complex user authentication requirements are to be implemented, e.g. Identity Federation, Multi-Factor Authentication, the login process can be outsourced to a separate component. After login, the information about the authenticated user or his / her mandate membership of the application APP is made accessible in a suitable manner. For this purpose, this information can be stored for example in the session of the user or in a security token, which is sent with each access to the application APP.

Jeder Zugriff auf die bestehende Datenbank wird ebenfalls durch den Aspekt MTE abgefangen und auf die entsprechende Datenbank des Mandanten für lesende- und schreibende Zugriffe umgeleitet. Somit wird verhindert, dass die Benutzer eines Mandanten auf die Daten anderer Mandanten zugreifen können. Aber auch andere Verfahren zur Mandantenisolation sind einsetzbar, wie z.B. ein separates Schema je Mandant oder zusätzliche Tabellenspalten, die den Mandanten spezifizieren. Each access to the existing database is also intercepted by the MTE aspect and redirected to the corresponding database of the client for read and write accesses. This prevents the users of one client from accessing the data of other clients. But other methods of client isolation can be used, such as e.g. a separate schema per tenant or additional table columns that specify the tenant.

Zugleich werden über einen Aspekt MTE alle Zugriffe auf die Services der Applikation APP protokolliert, z.B. mit aufrufendem Benutzer, benötigter Ausführungszeit. Daraus ergibt sich die Möglichkeit, die Nutzung und Zugriffe hinsichtlich ihres Zeitpunkts, ihrer Art, Anzahl, Ausführungszeit etc. auszuwerten und zu aggregieren, mit anderen Mandanten zu vergleichen bzw. in Beziehung zu setzen, und auf dieser Basis je Mandant eine Kostenrechnung zu erstellen. At the same time, all accesses to the services of the application APP are logged via an aspect MTE, e.g. with calling user, required execution time. This results in the possibility of evaluating and aggregating the usage and access with regard to their time, their type, number, execution time, etc., comparing them with other clients, and then creating a cost accounting per client on this basis.

In ähnlicher Form sind auch weitere zugreifbare Metriken nutzbar, protokollierbar und überwachbar, z.B. eine Beschränkung auf eine maximale Anzahl gleichzeitiger Nutzer. Similarly, other accessible metrics are also usable, logged and monitored, e.g. a limit to a maximum number of concurrent users.

Technisch erfolgt die Realisierung durch einen Aspekt MTE (MultitenancyEnabler), der für das Abfangen des Benutzers, das Ermitteln des Mandanten, das Protokollieren des Zugriffs sowie das Umleiten auf die Mandantendatenbank im Sinne einer Mandantenisolation Sorge trägt, ohne Quellcodeänderung an der Applikation und ohne neue Neucompilierung. Technically, the implementation is carried out by an aspect MTE (MultitenancyEnabler), which ensures the interception of the user, determining the client, logging access and redirecting to the client database in terms of client isolation, without source code change to the application and without recompiling ,

Des Weiteren können optional mandantenspezifische Aspekte ASP definiert werden, welche die bestehende Applikation um weitere Funktionalitäten erweitern, bestehende Funktionalitäten herausnehmen, beispielsweise durch ein 403 (FORBIDDEN) für REST-Services, bzw. bestehende Abläufe mandantenspezifisch abwandeln. Furthermore, client-specific aspects ASP can be defined optionally, which extend the existing application with additional functionalities, remove existing functionalities, for example, by a 403 (FORBIDDEN) for REST services, or modify existing processes client-specific.

Insbesondere sind keine speziellen Eigenschaften der Applikation als Vorbereitung der Multimandantenfähigkeit gefordert bzw. werden solche nicht genutzt. Je Mandant <M> lässt sich ein spezifischer Aspekt <M>Modifier hinzuschalten, der die Funktionalität aus der ursprünglichen Applikation entfernt oder modifiziert bzw. auch neue Funktionalität hinzu fügt. In particular, no special properties of the application as preparation of the multi-client capability are required or are not used. For each client <M>, a specific aspect <M> modifier can be added, which removes or modifies the functionality from the original application or adds new functionality.

Die Wirkung dieser Aspekte ist nur auf den entsprechenden Mandanten <M> beschränkt. Alle diese Punkte erfordern vorteilhafter Weise keine Änderungen am Programmcode der bestehenden Applikation! The effect of these aspects is limited only to the respective client <M>. All these points advantageously require no changes to the program code of the existing application!

Auch diese Aspekte werden einfach in Java dem WAR/JAR der Applikation APP hinzugefügt. These aspects too are simply added in Java to the app's WAR / JAR.

Die Komponenten sind für viele Applikationen wiederverwendbar, da sie nur vom jeweiligen Applikationsserver und Datenbanksystem abhängig sind. Eine Anpassung und Weiterentwicklung der Komponente an zukünftige Anforderungen kann an zentraler Stelle erfolgen und vereinfacht eine flexible Konfiguration. Entwicklungskosten für SaaS-Angebote, die aus bestehenden Applikationen entstehen, lassen sich durch wiederverwendbare und anpassbare Komponenten reduzieren. Des Weiteren wird eine Kostenersparnis durch Reduktion der Ressourcen und eine schnelle Migration bestehender Applikationen erreicht. The components are reusable for many applications because they depend only on the particular application server and database system. An adaptation and further development of the component to future requirements can take place centrally and simplifies a flexible configuration. Development costs for SaaS offerings that arise from existing applications can be reduced by using reusable and customizable components. Furthermore, a cost saving through reduction of resources and a fast migration of existing applications is achieved.

Claims (8)

Verfahren zur Einbringung einer Multimandantenfähigkeit in bestehende Applikationen, um diese in eine SaaS-Applikation umzuwandeln, bei dem a) vorab beim Anbieter eine Registrierung (MBV) von Mandanten, die die Applikation (APP) nutzen möchten, erfolgt, b) durch den Anbieter eine Bewilligung (MBV) der Nutzung der Applikation durch einen jeweiligen Mandanten erfolgt, sofern eine entsprechende Nutzungsberechtigung vorliegt, c) durch jeweiligen Mandanten eine mandantenspezifische Registrierung (MBV) von künftigen Benutzern des jeweiligen Mandanten erfolgt, d) eine Authentifizierung der neuen Benutzer seitens der Applikation erfolgt, e) aus den Daten des neuen Benutzers der jeweilige neue Mandant ermittelt wird, f) eine mandantenspezifische Datenisolation (DB(M1), DB(M2)) bezüglich des jeweiligen neuen Mandanten gegenüber anderen Mandanten erfolgt, g) eine mandantenspezifische Individualisierung der Applikation (APP) für die jeweiligen neuen Benutzer in Abhängigkeit des jeweiligen neuen Mandanten erfolgt, h) eine mandantenspezifische Erfassung der Nutzungsdaten des neuen Benutzers und i) eine mandantenspezifische Überwachung von vereinbarten Begrenzungen erfolgt, wobei mindestens die Merkmale c) bis i) Aspekte (MTE, ASP) darstellen, die unter Einsatz der Aspektorientierten Programmierung, insbesondere zur Laufzeit, in den Programmcode der betreffenden Applikation (APP) eingewoben werden.  Method for introducing a multi-client capability into existing applications in order to convert them into a SaaS application, in which a) prior to the provider registration (MBV) of clients who want to use the application (APP) takes place, b) by the provider an authorization (MBV) of the use of the application by a respective client takes place, if a corresponding use authorization exists, c) a client-specific registration (MBV) of future users of the respective client is carried out by the respective client, d) the new user is authenticated by the application, e) the respective new client is determined from the data of the new user, f) client-specific data isolation (DB (M1), DB (M2)) with respect to the respective new client with respect to other clients, g) a client-specific individualization of the application (APP) for the respective new user depending on the respective new client, h) a client-specific registration of the user data of the new user and i) client-specific monitoring of agreed limits, wherein at least the features c) to i) represent aspects (MTE, ASP) which are woven into the program code of the relevant application (APP) using aspect-oriented programming, in particular at runtime. Verfahren nach Anspruch 1, bei dem die mandantenspezifische Individualisierung der Applikation für einzelne Mandanten durch Hinzufügen, Entfernen oder Anpassen mindestens einer mandantenspezifischen Funktionalität (F1, F2) erfolgt. Method according to Claim 1, in which the client-specific individualization of the application for individual clients is effected by adding, removing or adapting at least one client-specific functionality (F1, F2). Verfahren nach Anspruch 1 oder 2, bei dem eine mandantenspezifische Erfassung (P) der vom neuen Benutzer verwendeten mandantenspezifische Individualisierung der Applikation (APP) erfolgt.  Method according to Claim 1 or 2, in which client-specific detection (P) of the client-specific individualization of the application (APP) used by the new user takes place. Verfahren nach einem der vorhergehenden Ansprüche, bei dem die mandantenspezifische Datenisolation dadurch erfolgt, z.B. dass jeder Mandant eine eigene Datenbank (DB(M1), DB(M2)) in einem zentralen Datenbankserver erhält, die nicht durch andere Mandanten einsehbar ist, oder dass eine Datenbank mit gemeinsamen Tabellen mit einer Mandantendiskriminatorspalte vorhanden ist. Method according to one of the preceding claims, in which the client-specific data isolation ensues thereby, for example that each client receives its own database (DB (M1), DB (M2)) in a central database server that can not be viewed by other clients, or that one Database with common tables with a client discriminator column exists. Verfahren nach einem der vorhergehenden Ansprüche, bei dem eine mandantenspezifische Überwachung der vereinbarten Begrenzungen mindestens eine Überwachung der Anzahl der aktiven neuen Benutzer und/oder eine Überwachung des maximalen Ressourcenverbrauchs umfasst. Method according to one of the preceding claims, in which a client-specific monitoring of the agreed limits comprises at least monitoring the number of active new users and / or monitoring the maximum resource consumption. Verfahren nach einem der vorhergehenden Ansprüche, bei dem Modifikations-Aspekte (ASP) und ein SQL-Skript derart bereitgestellt wird, dass es im laufenden Betrieb einer Applikation (APP) ausführbar ist. Method according to one of the preceding claims, in which modification aspects (ASP) and an SQL script are provided such that they can be executed during the operation of an application (APP). Verfahren nach einem der vorhergehenden Ansprüche, bei dem nach einem Login eines neuen Benutzers irgendeines Mandanten jeder Zugriff auf die Applikation abgefangen und durch einen Aspekt (MTE) zur Multimandantenbefähigung derart modifiziert wird, dass der angemeldeter Benutzer extrahiert und sein zugehöriger Mandant ermittelt wird und dass jeder Zugriff auf die bestehende Datenbank ebenfalls durch den Aspekt abgefangen und auf die entsprechende Datenbank des Mandanten für lesende- und schreibende Zugriffe umgeleitet wird. Method according to one of the preceding claims, in which, after a new user's login, any access to the application is intercepted and modified by an aspect (MTE) for multi-client authorization such that the logged-in user is extracted and its associated client is determined and that each Access to the existing database is also intercepted by the aspect and redirected to the appropriate database of the client for read and write accesses. Verfahren nach einem der vorhergehenden Ansprüche, bei dem die mandantenspezifische Erfassung der Nutzungsdaten dadurch bewirkt wird, dass über den Aspekt (MTE) zur Multimandantenbefähigung alle Zugriffe auf die Services der Applikation protokolliert werden, wobei mindestens der aufrufende Benutzer, die Zugriffszeitpunkte, die Zugriffsart, die Zugriffsanzahl und die jeweilige Ausführungsdauer erfasst werden. Method according to one of the preceding claims, in which the client-specific registration of the usage data is effected by logging all accesses to the services of the application via the aspect (MTE) for multi-client authorization, whereby at least the calling user, the access times, the access type Access count and the duration of the execution.
DE102015214253.1A 2015-07-28 2015-07-28 Method for introducing multi-client capability into existing applications Withdrawn DE102015214253A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102015214253.1A DE102015214253A1 (en) 2015-07-28 2015-07-28 Method for introducing multi-client capability into existing applications

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102015214253.1A DE102015214253A1 (en) 2015-07-28 2015-07-28 Method for introducing multi-client capability into existing applications

Publications (1)

Publication Number Publication Date
DE102015214253A1 true DE102015214253A1 (en) 2017-02-02

Family

ID=57795983

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102015214253.1A Withdrawn DE102015214253A1 (en) 2015-07-28 2015-07-28 Method for introducing multi-client capability into existing applications

Country Status (1)

Country Link
DE (1) DE102015214253A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070061266A1 (en) * 2005-02-01 2007-03-15 Moore James F Security systems and methods for use with structured and unstructured data
US20130297673A1 (en) * 2012-05-01 2013-11-07 Red Hat, Inc. Mechanism for node selection for a new application in a multi-tenant cloud hosting environment
US20140181306A1 (en) * 2012-12-21 2014-06-26 Software Ag Usa, Inc. SYSTEMS AND/OR METHODS FOR SUPPORTING A GENERIC FRAMEWORK FOR INTEGRATION OF ON-PREMISES AND SaaS APPLICATIONS WITH SECURITY, SERVICE MEDIATION, ADMINISTRATIVE, AND/OR MONITORING CAPABILITIES
DE112013001308T5 (en) * 2012-03-08 2014-12-11 International Business Machines Corporation Managing tenant-specific records in a multi-tenant environment
US8938472B2 (en) * 2013-01-29 2015-01-20 Tesora, Inc. Advancements in data distribution methods and referential integrity

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070061266A1 (en) * 2005-02-01 2007-03-15 Moore James F Security systems and methods for use with structured and unstructured data
US8347088B2 (en) * 2005-02-01 2013-01-01 Newsilike Media Group, Inc Security systems and methods for use with structured and unstructured data
DE112013001308T5 (en) * 2012-03-08 2014-12-11 International Business Machines Corporation Managing tenant-specific records in a multi-tenant environment
US20130297673A1 (en) * 2012-05-01 2013-11-07 Red Hat, Inc. Mechanism for node selection for a new application in a multi-tenant cloud hosting environment
US20140181306A1 (en) * 2012-12-21 2014-06-26 Software Ag Usa, Inc. SYSTEMS AND/OR METHODS FOR SUPPORTING A GENERIC FRAMEWORK FOR INTEGRATION OF ON-PREMISES AND SaaS APPLICATIONS WITH SECURITY, SERVICE MEDIATION, ADMINISTRATIVE, AND/OR MONITORING CAPABILITIES
US8938472B2 (en) * 2013-01-29 2015-01-20 Tesora, Inc. Advancements in data distribution methods and referential integrity

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
AULBACH, S. [et al.]: Anforderungen an Datenbanksysteme für Multi-Tenancy- und Software-as-a-Service-Applikationen *
PUNDT, A: Anwendungsübergreifende Individualisierungsframeworks. Diplomarbeit, Hochschule für angewandte Wissenschaften, Hamburg, Februar 2006
PUNDT, A: Anwendungsübergreifende Individualisierungsframeworks. Diplomarbeit, Hochschule für angewandte Wissenschaften, Hamburg, Februar 2006 *

Similar Documents

Publication Publication Date Title
DE112010003454B4 (en) Threat detection in a data processing system
DE102006051186A1 (en) Infrastructure service architecture for applications
DE102014206325A1 (en) Distributed authentication system
DE102016105062A1 (en) Sew-based authorization check for cross-unit distributed data
DE102004038566A1 (en) License control for web applications
DE112020002343T5 (en) Distribution of Security Credentials
DE112018002954T5 (en) PROVIDING A CONFIGURATION-RELATED WORKFLOW
DE112021005364T5 (en) DEFENSE TARGETED DATABASE ATTACKS THROUGH DYNAMIC HONEYPOT DATABASE RESPONSE GENERATION
DE102011080467A1 (en) Access control for data or applications of a network
EP3576001A1 (en) Computer-implemented method for transferring a data string from an application to a data protection device
DE112018008066T5 (en) Virtualized network functions
DE102018009949A1 (en) Transmission method for the flexible transmission of specifically divisible electronic coin data sets
WO2019096491A1 (en) Method and device for enabling the authentication of products, particularly industrially produced appliances, and computer program product
EP3286683A1 (en) System and method for monitoring the integrity of a component delivered by a server system to a client 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
DE102015214253A1 (en) Method for introducing multi-client capability into existing applications
EP3062255A1 (en) Licensing of software products
WO2018130426A1 (en) Anonymization of a block chain
DE102014019090A1 (en) Method for providing a safety-critical software application on a computer unit
DE102021130811A1 (en) BLOCKCHAIN SELECTIVE WORLD-STATE DATABASE
DE112020003555B4 (en) MANAGE SECURITY CREDITS FOR CLIENT APPLICATIONS
DE112021004613T5 (en) EDITABLE BLOCKCHAIN
DE112021005862T5 (en) SELF-CHECKING BLOCKCHAIN
DE112021000619T5 (en) ADAPTIVE STATE MANAGEMENT FOR STATE-INDEPENDENT SERVICES
DE112021005837T5 (en) DECENTRALIZED TRANSMISSION ENCRYPTION AND KEY GENERATION DEVICE

Legal Events

Date Code Title Description
R163 Identified publications notified
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee