EP2478436A1 - Verfahren und system zur verwendung von temporären exklusiven sperren für parallele betriebsmittelzugriffe - Google Patents
Verfahren und system zur verwendung von temporären exklusiven sperren für parallele betriebsmittelzugriffeInfo
- Publication number
- EP2478436A1 EP2478436A1 EP10763142A EP10763142A EP2478436A1 EP 2478436 A1 EP2478436 A1 EP 2478436A1 EP 10763142 A EP10763142 A EP 10763142A EP 10763142 A EP10763142 A EP 10763142A EP 2478436 A1 EP2478436 A1 EP 2478436A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- client
- resource
- access
- server
- exclusive lock
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 28
- 238000004590 computer program Methods 0.000 claims abstract description 6
- 238000004891 communication Methods 0.000 claims description 9
- 230000006854 communication Effects 0.000 claims description 9
- 230000004044 response Effects 0.000 claims description 9
- 238000001514 detection method Methods 0.000 claims description 2
- 230000008901 benefit Effects 0.000 description 13
- 230000008859 change Effects 0.000 description 8
- 230000001419 dependent effect Effects 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 6
- 238000013459 approach Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000013500 data storage Methods 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000004888 barrier function Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000013439 planning Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 210000003608 fece Anatomy 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012913 prioritisation Methods 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/526—Mutual exclusion algorithms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/52—Indexing scheme relating to G06F9/52
- G06F2209/522—Manager
Definitions
- the present invention is in the field of computer science and more particularly relates to the control of accesses to divisible resources in a distributed computer-based system.
- a main field of application may be the
- the invention thus lies at the operating system level and relates to the control of accesses
- the access can be like this
- said concurrent accesses act, so that when a corresponding access control fails, a so-called deadlock occurs, which altogether runs on an error and should therefore be excluded.
- the resources can be hardware components and / or software components that can basically be used simultaneously by different computer-based units or clients.
- exclusive locks In the prior art, it is known to set so-called exclusive locks or exclusive locks in order to ensure a consistent hal ⁇ tion in concurrent access to resources.
- the exclusive locks are managed by a central server, which usually also controls storage and access to resources. If a client wants to access a resource, it is imperative that it receives an exclusive lock, to access the resource (eg write). Assigning the exclusive lock ensures that only the requesting client can access the resource so that inconsistent records can not occur if, at the same time or in a temporal overlap area, another client wants to access the same resource.
- a typical example of access to a resource is a write access to data records of a memory resource. Usually, it is ensured that only one exclusive lock can be assigned to one client per resource at a given time.
- a read access does not fundamentally change the data
- several concurrent read accesses can be permitted without the need for an exclusive lock.
- a read access is also assigned a lock, but not an exclusive lock, but a non-exclusive lock.
- the system of assigning locks to ensure consistent data storage is done so that concurrent accesses are serialized according to a strict sequencing scheme.
- Operating system means for accessing records (such as text documents or the like), countable resources (such as disk space, input / output channels, etc.) or other computer-based managed resources (such as disk space). For example, booking hotels, rental cars, aircraft Seats or production facilities of logistic units, etc.).
- This strategy is an approach to set an exclusive lock at a very early stage and in all those situations where there is a general possibility of data sets being modified.
- an exclusive lock is usually set to the data records independently of an access type (eg read access, write access, execute access, etc.).
- the disadvantage of this approach is that a client may have to wait a very long time before having uncritical read access to the content of requested ones
- This strategy tries to set exclusive locks as little as possible and as late as possible.
- an exclusive lock on a record being edited by a client is not set until the client actually wishes to change the contents of the record.
- Disadvantage of this approach is that another client, who only wants to perform a read access to the data, may be outdated
- a condition is a time aspect such that an assigned exclusive lock automatically expires after a predetermined time interval.
- Alternative embodiments of the invention provide for other outage conditions that are, for example, event-dependent, access-dependent, or access-style-dependent or client-dependent.
- a particular advantage of the invention lies in the fact that it is specific to asynchronous protocols supplied ⁇ cut, which is provided as part of the protocol is no "END" or "CANCEL", but where absolutely paral ⁇ lel enabled multiple asynchronous connections or in use. No close coupling of communica tion partner ⁇ provided - at the asynchronous protocols is - in contrast to the synchronous.
- the above-mentioned object is achieved by a computer-implemented method for
- Locks assigning an exclusive locks for the resource for the accessing client, said exclusive lock to ⁇ handles of other clients to this (the same) Resource ⁇ ce, the exclusive lock is allocated for a predeterminable time interval and thereafter expire automatically -.
- the exclusive lock is allocated only for a certain time interval. After expiration the predeterminable time interval is released the resource automatic ⁇ table again so that it is available for other interested clients. This can prevent once assigned locks in the system from being “lost” due to other errors.
- accesses by a client to a resource are recorded.
- concrete accesses such. B. a read, read, EXE access detected.
- not only the direct accesses are detected, but access attempts are already detected. These refer to Anfra ⁇ gen or jobs of applications
- Resources of a computer-based system typically, this is data storage and access is data processing access (for example, WRITE, EXE, LIST, QUERY).
- data processing access for example, WRITE, EXE, LIST, QUERY
- other computer-based Res ⁇ resources may be included, such as electronic objects and / or Kom ⁇ munikationsstoff (such as ports, communication channels, network ⁇ additions etc.) as well as electronic representations of logical and / or physical resources.
- Electronic representations are native of the last alter- example ex ⁇ ternal logical or physical resources such as hotel rooms, track sections, seats in an airplane, etc. to understand.
- the corresponding access then usually takes place within the framework of a booking (eg a hotel room or an aircraft seat, etc.).
- the resources can basically be hardware and / or software components that are exclusive and can be used at the same time.
- the resources can basically be be pullable (preemptive) or non-preemptive.
- distributed client-server system is to be understood in the context of this invention, a computer-based system in which independent computer-based Instan ⁇ zen are joined together via a network.
- the computer-based instances can be stand-alone computers and processes and / or processors of a computer.
- the system is basically based on the
- the solution according to the invention can also be applied to systems other than classic client-server systems in which a central instance plays the role
- a client may therefore be any information technology system that wishes to access resources of the client-server system.
- a client can have a shared functionality.
- a client may also assume the role of the server for other functions and / or data, while another part may represent the client functionality.
- hostedli ⁇ chhat is a central authority is provided which is connected as a sepa ⁇ rate control entity to the client-server system or implemented in the server, and serves as the administrative body to ensure a safe and consistent access to the divisible resources.
- the concept according to the invention is fundamentally not restricted to a specific type of access or resources, so that the concept can be applied to various types of client-server systems, such as, for example, mail servers, web servers, application servers, database servers with the respective applications, Programs, services and / or services.
- client-server systems such as, for example, mail servers, web servers, application servers, database servers with the respective applications, Programs, services and / or services.
- inventive concept basically independent of the content of the respective functions or functionalities and can be applied to any client server systems (such as medical ⁇ technical systems, systems in production and / or manufacturing control, booking systems, planning systems, traffic ⁇ safety systems, etc.).
- the type of access is not limited.
- the access may be a READ, WRITE, EXE, LIST, and / or QUERY access.
- the READ access and the WRITE access are read accesses and correspondingly write accesses to data records stored in the system.
- the EXE access should execute a executable file, and the LIST and QUERY accesses are used to list and search records in a file structure or in a database.
- the communication between the client and the server is based on an asynchronous protocol.
- This has the advantage that, in principle, a data transmission does not have to be aligned with a predetermined clock signal or with a predetermined clock.
- Clients are running at any time. It is thus advantageously not a condition for the implementation of the invention that the same clock frequencies must be negotiated between the client and the server for communication.
- the exclusive lock is basically at a first access or at a first Access attempt to the resource assigned. This has the advantage that any access or any access attempt of a client also served as quickly as possible and executed who can ⁇ . In addition, the number of access attempts to unavailable resources can be minimized.
- the server sends a NOTIFICATION message to the client to which the exclusive lock has been assigned to inform the client and / or a user of the client that the assigned exclusive lock is after a time interval that is predeterminable expires.
- This feature serves to Be ⁇ riding position of supplementary information for the client. The client is thus able to use his processes in it
- the server sends an ALERT message to the client to inform the client if an exclusive lock on the respective resource has been assigned to another client.
- the ALERT message is sent to the client, which the ex ⁇ klusive lock had been assigned once at a previous time, this exclusive lock is now but already expired.
- the server enables a REGAIN for an exclusive lock of a resource for a client. This should be the case in particular if the client in question was assigned an exclusive lock for the respective resource at an earlier point in time, and the client would now like to access this resource again.
- This has the advantage that repeated requests from a client can be processed to the respective Resource ⁇ ce with higher priority. Subordinate priority then has access attempts that are to be executed for the first time.
- the server sends an UPDATE to the client with respect to the resource.
- the UPDATE is sent in response to a REGAIN or REGAIN request from the client for the same resource, with the UPDATE including all changes made in a period between the expiration of the previous exclusive lock and the assignment of the subsequent exclusive lock for the client to the client Resource have been executed.
- a mechanism is thus created with which all changes between two consecutive accesses of one client each to one resource can be easily detected.
- the client sends a RELEASE for the resource to the server if no change is made to the resource by the client or not
- the predeterminable time interval is automatically predeterminable depending on a type of resource, on a type of access and / or on other parameters, and optionally on the Client is included as additional information. This ent ⁇ the advantage that the client is supported with other meta ⁇ information in terms of its access, which are automatically provided to him.
- type of resource here means the under defenceli ⁇ chen, above-mentioned resource types, such as data storage, software and / or hardware components or all types of different resources of a computer-based system, and electronic representations of physical entities (eg. In a booking system).
- Type of access in this context means the different categories of access, such. As write, read access or the like.
- other parameters can not be used here. With these parameters, for example, time aspects can be taken into account, so that certain resources should be accessible at predetermined time intervals or that certain selection criteria are provided, so that client classes and resource classes are defined, predefined assignments between a client class and a Resource class is determined. This has the advantage that certain resources can be allocated, for example, with increased priority to certain groups of clients (this is, for example, when booking systems beneficial ⁇ way in which certain classes are defined, for.
- Example, First Class, Business Class, etc. Other task solutions are a system for controlling access to divisible resources in a distributed client-server system in parallel operation according to the independent independent claim.
- a detection module and an assignment module can be formed in the same superordinate computer-aided unit. It is also possible to integrate the two modules in one module, which then performs both functions.
- the acquisition module and the assignment module also belong to different computer-based instances.
- Another task solution is to be seen in the computer program product, wherein the computer is caused to carry out the method according to the invention described above and whose program code is executed by a processor.
- An alternative object solution provides a storage medium, which is intended for storage of the computer-implemented method described above, and is readable by a Compu ter ⁇ .
- individual sections of the above-described method or system eg, the acquisition module and the access module
- Figure 2 is a schematic representation according to a
- FIG. 1 shows a schematic representation of a NOTIFICATION message from the server to the client according to a preferred embodiment of the invention
- Figure 4 is a schematic representation according to a
- Figure 5 is a schematic representation according to a
- Figure 6 is a schematic representation according to a
- a server S communicates with a plurality of clients C, the communication being performed via an asynchronous protocol P.
- the data records to be managed are shown in the figures (and in particular also in FIG. 1) as rectangular areas.
- Reference symbol C is marked. If a distinction is to be made between the respective clients, the respective clients are indicated by the reference symbols Ci, C 2 , C 3 ... C n .
- the clients C may be hardware or software components that have the same or different structure. For example, clients C may be through individual workstations, through multiple mobile devices, through individual components of information technology devices, etc.
- the server S serves the requests of Clients and may, if necessary, a result of the request back to the client C.
- the server S can again act as a client by placing orders to another server S.
- the clients C compete for system resources,
- deadlock a deadlock that can be safely excluded.
- the clients C can also be individual jobs or tasks that want to access resources or a resource.
- the jobs or tasks can also access the same resource (concurrent).
- the server S is a computer-based instance that
- the resources are records or files that can be accessed by multiple clients C.
- different types of access are possible (write access, read access, execute access, etc.). Since a read access does not fundamentally change the data, several clients C can simultaneously access the same file or the same file
- the resources are electronic representations of logical and / or physical resources.
- Physical resources can also be booked in addition to the usual physical resources of a computer (storage space, I / O ports, external devices such as printers, etc.)
- Traffic planning tool or seats in a booking system (theater tickets, aircraft seats, bus seats, etc.) to understand.
- the electronic representation refers to an object of the computer system, which is unambiguous with the
- the communication protocol is an asynchronous protocol, so that the requests of the clients C to the server S are not fitted in a fixed time scheme, but occur at arbitrary times.
- the response of the server is to a request from a client at any time.
- the response is forwarded to the requesting client C as soon as possible.
- one or more seats appear as bookable (eg green). If the client Ci waits a certain period of time, it is theoretically possible for another client C2 to also book one of these seats marked as green and bookable. If, however, the first client Ci would like to book exactly this seat, which has just been occupied by C2, then of course this is no longer available and the booking (or the access) can not be executed, since the first client Ci by a surprising booking of another client C2 has been "overhauled". The lock little-lock late strategy therefore shows fewer locks for the clients than they actually do
- the invention solves the two aforementioned drawbacks by also setting Locks, which, however, are automatically assigned a "deadline” or life span. This creates deadlocks that are automatically fixed. This will be explained in more detail in connection with FIG. 2
- the client C accesses a record with a READ access (in FIG. 2 with X (C, t0)).
- Client C also assigns a temporary exclusive lock to client C for the resource to obtain a copy of the data he can read, with the exclusive lock automatically expiring after a predetermined time.
- the respective client can manage and control the resource alone, and thus also change the respective data records.
- a lock basically at a first access or at a first
- Access attempt is granted or assigned. It does not matter which type of access it is. The lock is thus assigned for both READ access and other types of access, such as WRITE access and EXE access, etc.
- the lock is an exclusive lock, so a lock can only be assigned in principle if there is no other lock on it
- the lock is according to the invention automatically only one
- Embodiment of the invention provided that the server S sends a NOTIFICATION message to the owner of the lock (in this case, client C) on the expiry of its exclusive lock after the expiration of the predetermined time interval.
- the client application may then inform the respective user of the expiration of his lock and / or may modify or abort the presentation and / or processing of the data. This may depend on the data respectively.
- the data are always displayed with a green background, as long as the exclusive lock is allocated, the background then changes to a different color, if the lock has expired.
- Indicators are set, such as B. mark the identification of an existing lock in the form of a separate rising window on the screen. Likewise others are
- the NOTIFICATION message of the server S to the client C additionally contains further meta information.
- This meta-information includes information about the lifetime (time-time, time-out) of the assigned exclusive lock. At this time it is
- the client may perform exclusive write access to the data of the particular file.
- the meta information comprises further information.
- Locks which are assigned to other clients, include or information about the already elapsed time of the
- This ALERT message informs the client C of assigning an exclusive lock to another client (labeled C2 in FIG. 4) for a record D to which the client Ci had earlier been assigned an exclusive lock, in the meantime has expired.
- the client application Ci is informed that there is the possibility or risk that the read or processed by him record is now processed by another client C 2 and possibly changed or has been.
- the first client Ci who has ever been assigned an exclusive lock for the respective data on the server S will always receive a message if there is a possibility that this record will be overwritten by another client (in this case client C 2 ) can be.
- the server S receives a REGAIN message from the client Ci, with which the client Ci indicates that he again an exclusive lock on the
- a REGAIN is possible only if there is no exclusive lock active at this time assigned for another client C ⁇ .
- the client Ci sends a REGAIN request to the server S. Assigning the REGAIN, however, is only allowed if no exclusive lock is currently assigned.
- the server S a REGAIN request and / or allows a REGAIN assignment only if a predeterminable time interval has expired. This is useful, for example, to ensure a certain server load and a certain amount of
- the assignment of the REGAIN for client Ci is possible only after the exclusive lock of client C2 has already expired, as should be indicated in FIG.
- the client C2 can then be informed about the REGAIN of the client Ci by means of an ALERT message.
- REGAIN option or assigning a REGAIN does not require that a NOTIFICATION or ALERT be sent.
- notifying the clients is only optional. This is therefore not a security risk, since the server S will automatically detect anyway, if the client C wants to perform a change of the corresponding records or a write access to the records and this is not justified because his exclusive lock has already expired , In this case, the server S automatically prohibits a change of the records from being executed. This blocking also takes place without a NOTIFICATION or without an ALERT message.
- the server S sends an UPDATE or an UPDATE message for the data D to the client C in response to a REGAIN request from the client C to the respective records.
- the UPDATE message includes all changes to the records made between the expiration of the first lock for the client and the reassignment of the second lock for the same client (by the REGAIN).
- the client C receives all modifications (a delta) with respect to the records.
- the respective client application can then use this
- Synchronize modifications locally For example, a MERGE or merge or highlight the changed records are executed locally on client C.
- server S it is possible for the server S to send only the currently valid records to the client C in response to a client C REGAIN request. Client C can then do this locally
- the subsequent lock (which has been assigned to a REGAIN request) additionally comprises meta-information, for example about the lifetime of the lock.
- the meta ⁇ information may be included in the UPDATE message that is sent from the server S to the client C.
- the embodiments described so far are directed to the server monitoring and controlling all access attempts and accesses by the clients. In addition, he takes over the task of serving the respective clients with further messages and meta-information, which are available in
- Notification is triggered by the client C and is actively sent from the client C to the server S.
- a RELEASE for a record of a client C may be sent to the server S if the client C can ensure that it has no modifications or
- lifetime may generally be dependent on the type of resource (records that are requested very frequently, for example, typically have a shorter lifetime than records that are infrequently requested.) Also, resources that are used very frequently, such as For example, a printer or a scanner, etc. also rather shorter lifetimes than resources that are used very rarely, for example, a certain
- time intervals or lifetimes can also vary depending on the
- Access attempt of the client C are executed. For example, it may be preset that READ access has longer allocation time intervals than a (critical) one.
- meta-information can be provided, for example, in response to an access of the client C, as well as additional information in an UPDATE message.
- One particular embodiment relates to so-called countable resources.
- These are resources that can be described by a countable number, such as: For example, the number of hotel rooms that can be booked, the number of seats in an aircraft, etc.
- the resources can also be classified into certain classes (for booking systems: eg First
- Locks according to the invention can also be executed in this embodiment as a function of the resource class.
- an access attempt may, for example, only be performed on a selected category of resources (eg only for seats of the first class). If these are countable resources, a counter can be used
- the finely-granular resources are those resources in which each element of the resource (eg, a single seat) is uniquely identifiable. As an example, here are seats in the train, so that when booking a seat, the respective booked seat is uniquely assigned to a particular traveler. In contrast, only classes can be formed in the countable resources. Within the classes, the elements are not one-to-one
- each individual element of a resource with an exclusive lock.
- the time interval is predeterminable and then automatically at Assigning the exclusive lock to the client is considered.
- the client C has no
- the client C may send an additional request to the server S or to a separate control module already during a first access or upon a first access attempt to the resource, in which he / she requests a "desired time interval " certainly.
- the desired time interval identifies the minimum time frame that the client C will spend executing its scheduled access action on the client
- the inventive concept can basically any one of the inventive concept.
- the lifetime settings for the lock are provided so that no additional mechanisms need to be called even if the internet connection is interrupted.
- Access control can be used for any protocol and any system.
- the description of the invention and the embodiments are generally not intended to be limiting in regards to a certain physi ⁇ cal implementation of the invention.
- the inventions dung partially or completely in software and / or hardware and / or across multiple physical products - this insbeson ⁇ wider and computer program products - distributed realized who can ⁇ .
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Die Erfindung betrifft ein computer-implementiertes Verfahren, ein computer-implementiertes System und ein Computerprogrammprodukt zur Zugriffssteuerung in Bezug auf teilbare Ressourcen in einem verteilten Client-Serversystem im Parallelbetrieb. Die Ressourcensteuerung wird für eine Vielzahl von Clients (C), die an das System angeschlossenen sind, ausgeführt und dient zur Konsistenzhaltung der Daten. Bei einem ersten Zugriffsversuch eines Clients (C) auf eine Ressource des Servers (S) wird ein exklusiver Lock für die angefragte Ressource für den zugreifenden Client (C) zugewiesen, der die Ressource für andere Clients (C) sperrt, wobei der exklusive Lock nur für ein vorbestimmbares Zeitintervall zugewiesen wird und danach automatisch ausläuft.
Description
Beschreibung
Verfahren und System zur Verwendung von temporären exklusiven Sperren für parallele Betriebsmittelzugriffe
Die vorliegende Erfindung liegt auf dem Gebiet der Informatik und betrifft insbesondere die Steuerung von Zugriffen auf teilbare Ressourcen in einem verteilten computer-basierten System. Ein hauptsächliches Anwendungsgebiet kann die
Medizintechnik sein, z. B. die Steuerung von Magnetresonanz- Tomographen, Computer-Tomographen oder sonstigen
medizintechnischen Anlagen oder Peripheriegeräten, wie
Drucker, Speicher, spezielle Hardware-Einheiten oder
dergleichen. Die Erfindung liegt somit auf Betriebssystem- Ebene und betrifft die Steuerung von Zugriffen auf
Ressourcen. Bei den Zugriffen kann es sich auch um so
genannte konkurrierende Zugriffe handeln, so dass bei einem Fehlschlagen einer entsprechenden Zugriffssteuerung eine so genannte Verklemmung (Deadlock) eintritt, was insgesamt auf einen Fehler läuft und von daher ausgeschlossen werden soll.
Bei den Betriebsmitteln kann es sich um Hardware-Komponenten und/oder um Software-Komponenten handeln, die grundsätzlich auch gleichzeitig von unterschiedlichen computer-basierten Einheiten oder Clients genützt werden können.
Werden beispielsweise bei dem Zugriff Daten verändert (z. B. durch einen WRITE-Zugriff) ist es wichtig, sicherzustellen, dass die Daten konsistent gehalten werden.
Im Stand der Technik ist es bekannt, so genannte exklusive Locks oder exklusive Sperren zu setzen, um bei konkurrierenden Zugriffen auf Betriebsmittel eine konsistente Datenhal¬ tung sicherzustellen. Die exklusiven Sperren werden über ei- nen zentralen Server verwaltet, der üblicherweise ebenfalls ein Speichern und Zugreifen auf die Ressourcen steuert. Möchte ein Client dabei auf eine Ressource zugreifen, so ist es zwingend erforderlich, dass er einen exklusiven Lock erhält,
um daraufhin auf die Ressource (z. B. schreibend) zugreifen zu können. Durch das Zuweisen des exklusiven Locks wird sichergestellt, dass ausschließlich der anfragende Client auf das Betriebsmittel zugreifen kann, so dass es nicht zu inkon- sistenten Datensätzen kommen kann, falls gleichzeitig oder in einem zeitlichen Überschneidungsbereich ein anderer Client auf dieselbe Ressource zugreifen möchte. Als typisches Bei¬ spiel für einen Zugriff auf eine Ressource dient ein Schreib- Zugriff auf Datensätze einer Speicherressource. Üblicherweise ist es sichergestellt, dass pro Ressource zu einem gegebenen Zeitpunkt nur ein exklusiver Lock an ausschließlich einen Client zugewiesen werden kann. Da ein Lese-Zugriff die Daten grundsätzlich nicht verändert, können mehrere gleichläufige Lese-Zugriffe zugelassen werden, ohne dass jeweils ein exklu- siver Lock zugewiesen werden muss. Je nach Betriebssystem oder Implementierung kann es jedoch sein, dass einem Lese- Zugriff ebenfalls ein Lock zugewiesen wird, allerdings kein exklusiver Lock, sondern ein nicht-exklusiver Lock. Das System der Zuweisung von Locks für das Sicherstellen einer kon- sistenten Datenhaltung erfolgt, damit gleichläufige Zugriffe nach einem strengen Sequenzialisierungsschema serialisiert werden .
Ein grundsätzlicher Nachteil von Systemen aus dem Stand der Technik, die mit dem Zuweisen von exklusiven Sperren
arbeiten, ist jedoch darin zu sehen, dass damit deutliche Performance-Einbußen hingenommen werden müssen, da die anfragenden Clients grundsätzlich auf das Zuweisen bzw.
Freiwerden der exklusiven Sperren warten müssen. Darüber hinaus kann es passieren, dass exklusive Locks "verloren" gehen, indem aufgrund anderweitiger Fehler die Freigabe einer exklusiven Sperre nicht erfolgt. Das Konzept der exklusiven Sperren ist aber ein weitläufig eingesetztes
Betriebssystemmittel, um Zugriffe auf Datensätze (wie z. B. Textdokumente oder dergleichen), zählbare Ressourcen (wie z. B. Speicherplatz, Input-/Output-Kanäle etc.) oder andere Ressourcen, die computer-basiert verwaltet werden (wie z. B. das Buchen von Hotels, von Mietwagen, von Flugzeug-
Sitzplätzen oder von Herstellungseinrichtungen von logistischen Einheiten etc.) zu steuern.
Im Stand der Technik greift man dabei insbesondere auf zwei Strategien zurück:
1. - "Many early locks":
Bei dieser Strategie handelt es sich um einen Ansatz, eine exklusive Sperre bereits sehr früh zu setzen und in all jenen Situationen, bei denen grundsätzlich die Möglichkeit besteht, dass Datensätze modifiziert werden. Dabei wird üblicherweise eine exklusive Sperre unabhängig von einem Zugriffstyp (z. B. Lese- Zugriff, Schreib-Zugriff, Ausführzugriff etc.) auf die Datensätze gesetzt. Der Nachteil dieses Ansatzes ist darin zu sehen, dass ein Client möglicherweise sehr lange warten muss, bevor er einen unkritischen Lese-Zugriff auf den Inhalt von angefragten
Datensätzen erhält. Demnach wird bei diesem Ansatz mehr Wert auf die Konsistenzhaltung der Daten gelegt, als auf eine Verarbeitungsgeschwindigkeit.
2. - "Lock little, lock late":
Bei dieser Strategie wird versucht, exklusive Sperren möglichst wenig und möglichst spät zu setzen. Üblicherweise wird eine exklusive Sperre auf einen Datensatz, der von einem Client bearbeitet wird, erst dann gesetzt, wenn der Client auch tatsächlich den Inhalt des Datensatzes verändern möchte. Nachteil dieses Ansatzes ist, dass ein anderer Client, der lediglich einen Lese-Zugriff auf die Daten ausführen möchte, möglicherweise einen veralteten
(inkonsistenten) Datensatz sieht, für den nämlich ein anderer Client parallel eine exklusive Sperre zum Ändern der jeweiligen Daten besitzt. Dieser Ansatz favorisiert den Geschwindigkeitsaspekt vor dem Konsistenzaspekt .
In kritischen Systemen (z. B. Verkehrssteuerungssystemen, bei denen die Konsistenzhaltung der Daten eine besonders wichtige Rolle spielt) wird die erstere der beiden vorstehend
erwähnten Strategien ("Many early Locks") allein aus
Sicherheitsgründen häufiger gewählt. Bei nicht-kritischen Anwendungen und der Verwendung von asynchronen Protokollen, wie z. B. dem Internet, wird häufiger die zweite "Lock little - lock late"-Strategie eingesetzt, um ein möglichst
hochperformantes System bereitstellen zu können.
Ausgehend von dem vorstehend erwähnten Stand der Technik hat sich die vorliegende Erfindung zur Aufgabe gestellt, eine Möglichkeit aufzuzeigen, mit der eine Zugriffssteuerung auf teilbare Ressourcen in einem computer-basierten System zur Konsistenzhaltung der Daten speziell bei dem Einsatz von asynchronen Protokollen verbessert werden kann.
Die Aufgabe wird durch die beiliegenden unabhängigen
Patentansprüche gelöst, insbesondere durch ein computer- implementiertes Verfahren, durch ein Zugriffssteuerungssystem und durch ein Computerprogrammprodukt.
Nachstehend wird die Lösung der Aufgabe in Bezug auf das be¬ anspruchte Verfahren beschrieben. Hierbei erwähnte Merkmale, Vorteile oder alternative Ausführungsformen sind ebenso auch auf die anderen beanspruchten Gegenstände zu übertragen und umgekehrt. Mit anderen Worten können die gegenständlichen Ansprüche (das System und das Computerprogrammprodukt) auch mit den Merkmalen, die in Zusammenhang mit dem Verfahren be- schrieben oder beansprucht sind, weitergebildet sein. Dabei werden die funktionalen Merkmale des Verfahrens durch ent¬ sprechende gegenständliche Module, insbesondere durch Hard¬ ware-Module, ausgebildet. Ein wesentlicher Grundgedanke der vorliegenden Erfindung ist darin zu sehen, die vorstehend erwähnten Strategien zur Konsistenzhaltung von Daten, wie sie im Stand der Technik bekannt sind, für den Einsatz von asynchronen Protokollen wei-
ter zu entwickeln und zu verbessern. Dabei soll eine exklusi¬ ve Sperre unter bestimmten Bedingungen zugewiesen werden. Gemäß einem Aspekt handelt es sich bei einer Bedingung um einen Zeitaspekt, so dass eine zugewiesene exklusive Sperre automa- tisch nach einem vorbestimmten Zeitintervall wieder ausläuft. Alternative Ausführungsformen der Erfindung sehen hier andere Auslaufbedingungen vor, die z.B. ereignisabhängig, zugriffsabhängig oder zugriffsartanhängig oder client-abhängig sind. Ein besonderer Vorteil der erfindungsgemäßen Lösung ist darin zu sehen, dass sie spezifisch für asynchrone Protokolle zuge¬ schnitten ist, bei denen kein „ENDE" oder „ABBRUCH" als Teil des Protokolls vorgesehen ist, bei denen aber durchaus paral¬ lel mehrere asynchrone Verbindungen aktiviert bzw. im Einsatz sein können. Bei den asynchronen Protokollen ist - im Unterschied zu den synchronen - keine enge Kopplung der Kommunika¬ tionspartner vorgesehen.
Gemäß einem Aspekt der Erfindung wird die vorstehend erwähnte Aufgabe durch ein computer-implementiertes Verfahren zur
Steuerung von Zugriffen oder Zugriffsversuchen auf teilbare Ressourcen in einem verteilten Client-Serversystem im Parallelbetrieb gelöst, wobei die Steuerung zentral für eine Viel¬ zahl von an das System angeschlossenen Clients ausgeführt wird und zur Konsistenzhaltung der Daten folgende Verfahrens¬ schritte umfasst:
Erfassen eines Zugriffes oder eines Zugriffsversuches eines zugreifenden Clients auf eine Ressource;
- Zuweisen eines exklusiven Locks für die Ressource für den zugreifenden Client, wobei der exklusive Lock Zu¬ griffe von anderen Clients auf diese (dieselbe) Ressour¬ ce sperrt, wobei der exklusive Lock für ein vorbestimmbares Zeitintervall zugewiesen wird und danach automa- tisch ausläuft.
Gemäß einem Aspekt der Erfindung wird der exklusive Lock also nur für ein bestimmtes Zeitintervall zugewiesen. Nach Ablauf
des vorbestimmbaren Zeitintervalls wird die Ressource automa¬ tisch wieder freigegeben, so dass sie auch für andere anfragende Clients verfügbar wird. Damit kann verhindert werden, dass einmal zugewiesene Locks im System durch anderweitige Fehler "verloren gehen".
Erfindungsgemäß werden Zugriffe eines Clients auf eine Res¬ source erfasst. Gemäß einem Aspekt der Erfindung werden konkrete Zugriffe, wie z. B. ein Schreib-, Lese-, EXE-Zugriff erfasst. Gemäß einem anderen Aspekt der Erfindung werden zusätzlich nicht nur die direkten Zugriffe erfasst, sondern es werden bereits Zugriffsversuche erfasst. Darunter sind Anfra¬ gen oder Aufträge zu verstehen, die von Applikationen
und/oder Clients abgesetzt werden und in der Regel über das Betriebssystem an die angefragte Ressource zur Ausführung weitergegeben werden. Bei einem Zugriffsversuch ist der Zugriff noch nicht direkt oder unmittelbar erfolgt, sondern in Planung . Bei den Ressourcen handelt es sich um externe oder interne
Betriebsmittel eines computer-basierten Systems. In der Regel handelt es sich um Datenspeicher und der Zugriff ist ein Daten verarbeitender Zugriff (z. B. WRITE, EXE, LIST, QUERY). Alternativ können jedoch auch andere computer-basierte Res¬ sourcen umfasst sein, wie elektronische Objekte und/oder Kom¬ munikationsmittel (wie Ports, Kommunikationskanäle, Netzwerk¬ zugänge etc.) sowie elektronische Repräsentationen logischer und/oder physikalischer Ressourcen. Unter der letzten Alter- native sind beispielsweise elektronische Repräsentationen ex¬ terner logischer oder physikalischer Ressourcen, wie etwa Hotelzimmer, Gleisabschnitte, Sitze in einem Flugzeug, etc. zu verstehen. Der entsprechende Zugriff erfolgt dann üblicherweise im Rahmen einer Buchung (z. B. eines Hotelzimmers oder eines Flugzeugsitzplatzes etc.) . Bei den Ressourcen kann es sich grundsätzlich um Hardware- und/oder um Software- Komponenten handeln, die exklusiv und gleichzeitig nutzbar sind. Darüber hinaus können die Ressourcen grundsätzlich ent-
ziehbar (preemptive/unterbrechbar) oder nicht-entziehbar (non-preemptive) sein.
Unter dem Begriff "verteiltes Client-Serversystem" soll im Rahmen dieser Erfindung ein computer-basiertes System verstanden werden, bei dem unabhängige computer-basierte Instan¬ zen über ein Netzwerk zusammengeschlossen werden. Bei den computer-basierten Instanzen kann es sich um eigenständige Computer und um Prozesse und/oder um Prozessoren eines Compu- ters handeln. Das System basiert grundsätzlich auf dem
Client-Serverkonzept, bei dem ein computer-basierter Client die Erledigung einer Aufgabe vom computer-basierten Server anfordern kann. Die erfindungsgemäße Lösung kann jedoch auch auf andere Systeme, als klassische Client-Server Systeme an- gewendet werden, bei denen eine zentrale Instanz die Rolle
/Funktionalität des Servers einnimmt. Ein Client kann demnach ein beliebiges informationstechnologisches System sein, das auf Ressourcen des Client-Serversystems zugreifen möchte. Ein Client kann dabei eine geteilte Funktionalität haben. Ein Client kann auch für andere Funktionen und/oder Daten die Rolle des Servers einnehmen, während ein anderer Teil die Client-Funktionalität abbildet. Entsprechendes gilt für den Server, so dass ein Server gemäß einem Hauptaspekt die Anfra¬ gen der Clients abarbeitet und gemäß einem weiteren Aspekt seinerseits ebenfalls wieder als Client agieren kann. Übli¬ cherweise ist eine zentrale Instanz vorgesehen, die als sepa¬ rate Steuerungsinstanz an das Client-Serversystem angeschlossen ist oder die in dem Server implementiert ist, und als Verwaltungsinstanz dient, um einen sicheren und konsistenten Zugriff auf die teilbaren Ressourcen sicherzustellen.
Das erfindungsgemäße Konzept ist grundsätzlich nicht auf eine bestimmte Art von Zugriffen oder Ressourcen beschränkt, so dass das Konzept auf unterschiedlichste Arten von Client- Serversystemen angewendet werden kann, wie beispielsweise auf Mail-Server, Web-Server, Anwendungsserver, Datenbankserver mit den jeweiligen Applikationen, Programmen, Services und/oder Diensten. Ebenfalls ist das erfindungsgemäße Konzept
grundsätzlich unabhängig vom Inhalt der jeweiligen Funktionen bzw. Funktionalitäten und kann auf beliebige Client- Serversysteme angewendet werden (wie beispielsweise medizin¬ technische Systeme, Systeme in der Produktions- und/oder Fer- tigungssteuerung, Buchungssysteme, Planungssysteme, Verkehrs¬ sicherheitssysteme etc.).
Vorteilhafterweise ist die Art des jeweiligen Zugriffes nicht beschränkt. Gemäß einem Aspekt der Erfindung kann es sich bei dem Zugriff somit um einen READ-, WRITE-, EXE-, LIST- und/oder QUERY-Zugriff handeln. Dabei handelt es sich bei dem READ-Zugriff und bei dem WRITE-Zugriff um einen Lese-Zugriff und entsprechend um einen Schreib-Zugriff auf Datensätze, die im System abgelegt sind. Der EXE-Zugriff soll eine ausführba- re Datei ausführen und die LIST- und QUERY-Zugriffe dienen zur Auflistung und zur Suche von Datensätzen in einer Dateistruktur oder in einer Datenbank. Ein wichtiger Vorteil in diesem Zusammenhang ist auch darin zu sehen, dass das erfindungsgemäße Konzept grundsätzlich unabhängig von der Imple- mentierung des Betriebssystems ist und insbesondere davon, ob ein wahlfreier oder ein sequenzieller Zugriff auf die Speicher oder Laufwerke des Computersystems vorgesehen ist.
Gemäß einer vorteilhaften Weiterbildung der Erfindung basiert die Kommunikation zwischen dem Client und dem Server auf einem asynchronen Protokoll. Dies hat den Vorteil, dass eine Datenübertragung grundsätzlich nicht an ein vorgegebenes Taktsignal oder an einen vorgegebenen Takt ausgerichtet sein muss. Mit anderen Worten können die Anfragen der Clients an den Server und die jeweiligen Antworten der Server an die
Clients zu beliebigen Zeitpunkten ausgeführt werden. Es ist für die Ausführung der Erfindung somit vorteilhafterweise keine Bedingung, dass zwischen dem Client und dem Server gleiche Taktfrequenzen zur Kommunikation ausgehandelt werden müssen.
Gemäß einem Aspekt der Erfindung wird der exklusive Lock grundsätzlich bei einem ersten Zugriff oder bei einem ersten
Zugriffsversuch auf die Ressource zugewiesen. Dies hat den Vorteil, dass jeder Zugriff bzw. jeder Zugriffsversuch eines Clients auch möglichst schnell bedient und abgearbeitet wer¬ den kann. Darüber hinaus kann die Anzahl von Zugriffsversu- chen auf nicht verfügbare Ressourcen minimiert werden.
Im Folgenden werden eine Reihe von Benachrichtigungen oder Messages beschrieben, die gemäß einem Aspekt der Erfindung automatisch generiert werden. Damit können zusätzliche Steue- rungsmöglichkeiten für den Client und für den Server bereitgestellt werden.
Gemäß einem weiteren Aspekt der Erfindung ist es vorgesehen, dass der Server eine NOTIFICATION-Nachricht an den Client sendet, dem der exklusive Lock zugewiesen worden ist, um den Client und/oder um einen User des Clients zu informieren, dass der zugewiesene exklusive Lock nach einem Zeitintervall, das vorbestimmbar ist, ausläuft. Dieses Merkmal dient zur Be¬ reitstellung von Zusatzinformationen für den Client. Der Client ist somit in der Lage, seine Prozesse in der ihm zur
Verfügung stehenden Zeit (Zeit des exklusiven Locks) zu steuern .
Gemäß einem weiteren Aspekt der vorliegenden Erfindung sendet der Server eine ALERT-Nachricht an den Client, um den Client zu informieren, falls einem anderen Client ein exklusiver Lock auf die jeweilige Ressource zugewiesen worden ist. Dabei wird die ALERT-Nachricht an den Client gesendet, dem der ex¬ klusive Lock zu einem vorherigen Zeitpunkt einmal zugewiesen worden war, wobei dieser exklusive Lock inzwischen aber bereits ausgelaufen ist. Dieses Merkmal birgt den Vorteil, dass ein Client dem einmal aufgrund eines Zugriffs auf eine Res¬ source ein exklusiver Lock zugewiesen worden war, stets darüber informiert wird, dass nun ein anderer Client auf diese Daten zugreifen möchte. Er wird damit automatisch über die Gefahr oder Möglichkeit der Datenveränderung informiert.
Gemäß einem weiteren Aspekt der Erfindung ist es vorgesehen,
dass der Server ein REGAIN für einen exklusiven Lock einer Ressource für einen Client ermöglicht. Dies soll insbesondere dann der Fall sein, wenn dem jeweiligen Client zu einem früheren Zeitpunkt ein exklusiver Lock für die jeweilige Res- source zugewiesen worden war, und der Client nun erneut auf diese Ressource zugreifen möchte. Dies hat den Vorteil, dass wiederholte Zugriffe eines Clients auf die jeweilige Ressour¬ ce mit erhöhter Priorität abgearbeitet werden können. Untergeordnete Priorität haben dann solche Zugriffsversuche, die grundsätzlich zum ersten Mal ausgeführt werden sollen.
Gemäß einem weiteren Aspekt der Erfindung ist es vorgesehen, dass der Server ein UPDATE an den Client in Bezug auf die Ressource sendet. Das UPDATE wird als Antwort auf ein REGAIN oder eine REGAIN-Anfrage des Clients für dieselbe Ressource gesendet, wobei das UPDATE alle Änderungen umfasst, die in einem Zeitraum zwischen dem Auslaufen des vorhergehenden exklusiven Locks und dem Zuweisen des nachfolgenden exklusiven Locks für den Client an der Ressource ausgeführt worden sind.
Vorteilhafterweise wird damit ein Mechanismus geschaffen, mit dem alle Änderungen zwischen zwei aufeinanderfolgende Zugriffe jeweils eines Clients auf jeweils eine Ressource leicht erfasst werden können.
Gemäß einem weiteren Aspekt der Erfindung sendet der Client ein RELEASE für die Ressource an den Server, falls seitens des Clients keine Änderung an der Ressource oder kein
Schreib-Zugriff auf die Ressource ausgeführt werden soll, so dass der Server daraufhin den exklusiven Lock für den Client in Bezug auf die Ressource auflöst. Damit kann vorteilhafter¬ weise sichergestellt werden, dass unnötige exklusive Locks möglichst frühzeitig aufgelöst bzw. beendet werden. Gemäß einem weiteren Aspekt ist es vorgesehen, dass das vorbestimmbare Zeitintervall in Abhängigkeit von einem Typ der Ressource, von einem Typ des Zugriffs und/oder von anderen Parametern automatisch vorbestimmbar ist und optional dem
Client als Zusatzinformation mitgeliefert wird. Damit ent¬ steht der Vorteil, dass der Client mit weiteren Meta¬ Informationen in Bezug auf seinen Zugriff unterstützt wird, die ihm automatisch bereitgestellt werden.
Der Begriff "Typ der Ressource" meint hier die unterschiedli¬ chen, vorstehend erwähnten Ressourcenarten, wie Datenspeicher, Software- und/oder Hardware-Komponenten oder alle Arten von unterschiedlichen Betriebsmitteln eines computer- basierten Systems, sowie elektronische Repräsentationen von physikalischen Instanzen (z. B. in einem Buchungssystem).
"Typ des Zugriffs" meint in diesem Zusammenhang die unterschiedlichen Zugriffskategorien, wie z. B. Schreib-, Lese- Zugriff oder dergleichen. Je nach Anwendungsgebiet und Imple¬ mentierung können hier noch weitere Parameter herangezogen werden. Bei diesen Parametern können beispielsweise Zeitaspekte mit berücksichtigt werden, so dass bestimmte Ressourcen in vorbestimmten Zeitintervallen zugreifbar sein sollen oder dass hier bestimmte Auswahlkriterien vorgesehen sind, so dass Client-Klassen und Ressourcen-Klassen definiert werden, wobei vordefinierbare Zuordnungen zwischen einer Client-Klasse und einer Ressourcen-Klasse bestimmt wird. Dies hat den Vorteil, dass bestimmte Ressourcen beispielsweise mit einer erhöhten Priorität an bestimmte Gruppen von Clients vergeben werden können (dies ist beispielsweise bei Buchungssystemen vorteil¬ haft, bei denen bestimmte Klassen definiert werden, z. B. First Class, Business Class etc.). Weitere Aufgabenlösungen bestehen in einem System zur Steuerung von Zugriffen auf teilbare Ressourcen in einem verteilten Client-Serversystem im Parallelbetrieb nach dem beliebenden unabhängigen Anspruch. Dabei können ein Erfassungsmodul und ein Zuweisungsmodul in derselben übergeordneten computer- gestützten Einheit ausgebildet sein. Auch ist es möglich, die beiden Module in ein Modul zu integrieren, das dann beide Funktionalitäten ausführt. In einer alternativen Ausführungsform der Erfindung können das Erfassungsmodul und das Zuwei-
sungsmodul auch unterschiedlichen Computer-basierten Instanzen angehören.
Eine weitere Aufgabenlösung ist in dem Computerprogrammpro- dukt zu sehen, wobei der Computer zur Durchführung des oben beschriebenen, erfindungsgemäßen Verfahrens veranlasst wird und dessen Programmcode durch einen Prozessor ausgeführt wird . Eine alternative Aufgabenlösung sieht ein Speichermedium vor, das zur Speicherung des vorstehend beschriebenen, computerimplementierten Verfahrens bestimmt ist und von einem Compu¬ ter lesbar ist. Darüber hinaus ist es möglich, dass einzelne Abschnitte des vorstehend beschriebenen Verfahrens bzw. des zugehörigen Systems (z.B. das Erfassungsmodul und das Zugriffsmodul) jeweils in einer separaten, verkaufsfähigen Einheit und die restlichen Komponenten in einer anderen verkaufsfähigen
Einheit - sozusagen als verteiltes System - ausgeführt werden können. Mit dem erfindungsgemäßen Verfahren und insbesondere mit dem Zugriffsmodul können eine systemnahe Steuerung von Betriebsmittelzugriffen erzielt werden. In der folgenden detaillierten Figurenbeschreibung werden nicht einschränkend zu verstehende Ausführungsbeispiele mit deren Merkmalen und weiteren Vorteilen anhand der Zeichnung besprochen. In dieser zeigen: Figur 1 einen grundsätzlichen Aufbau eines verteilten
Client-Serversystems, bei dem ein Client über ein asynchrones Protokoll mit einem Server
kommuniziert; Figur 2 eine schematische Darstellung gemäß einer
bevorzugten Ausführungsform der Erfindung, wobei ein Client auf Datensätze eines Servers zugreift;
Figur 3 eine schematische Darstellung einer NOTIFICATION- Nachricht von dem Server an den Client gemäß einer bevorzugten Ausführungsform der Erfindung,
Figur 4 eine schematische Darstellung gemäß einer
bevorzugten Ausführungsform der Erfindung, wobei der Client über eine ALERT-Nachricht informiert wird; Figur 5 eine schematische Darstellung gemäß einer
bevorzugten Ausführungsform der Erfindung, wobei der Client ein REGAIN erhält, nachdem er mit einer ALERT-Nachricht informiert worden ist und Figur 6 eine schematische Darstellung gemäß einer
bevorzugten Ausführungsform der Erfindung, wobei der Server ein Update an den Client als Antwort auf ein REGAIN sendet. Im Folgenden wird in Zusammenhang mit Fig. 1 das Grundprinzip der vorliegenden Erfindung näher erläutert.
Wie in Fig. 1 dargestellt, kommuniziert ein Server S mit einer Vielzahl von Clients C, wobei die Kommunikation über ein asynchrones Protokoll P ausgeführt wird. Die dabei zu verwaltenden Datensätze sind in den Figuren (und insbesondere auch in Fig. 1) als Rechteckbereiche dargestellt.
In den Figuren sind die Clients grundsätzlich mit den
Bezugszeichen C gekennzeichnet. Falls zwischen den jeweiligen Clients unterschieden werden soll, so sind die jeweiligen Clients indiziert mit den Bezugszeichen Ci, C2, C3... Cn. Bei den Clients C kann es sich um Hardware- oder Software- Komponenten handeln, die denselben oder einen anderen Aufbau aufweisen. Zum Beispiel können die Clients C durch einzelne Workstations, durch mehrere mobile Geräte, durch einzelne Komponenten von informationstechnischen Geräten etc.
ausgebildet sein. Der Server S bedient die Anfragen der
Clients und kann bedarfsweise ein Ergebnis der Anfrage an den Client C zurücksenden. Der Server S kann selbst wieder als Client fungieren, indem er Aufträge an einen weiteren Server S absetzt.
Die Clients C konkurrieren um Systemressourcen,
Betriebsmittel oder um Zugriffsmöglichkeiten auf Datensätze. Sobald zugelassen wird, dass mehrere Clients C auf eine
Systemressource (im Folgenden einfach "Ressource" genannt) zugreifen, muss sichergestellt werden, dass innerhalb des informationstechnologischen Systems stets mit konsistenten Daten gerechnet wird. Darüber hinaus muss insbesondere bei wechselseitiger Abhängigkeit der einzelnen Ressourcen
voneinander ein Deadlock (Verklemmung) sicher ausgeschlossen werden.
Bei den Clients C kann es sich auch um einzelne Jobs bzw. Tasks handeln, die auf Betriebsmittel bzw. auf eine Ressource zugreifen wollen. Die Jobs bzw. Tasks können dabei auch auf dieselbe Ressource (konkurrierend) zugreifen wollen. Der Server S ist eine computer-basierte Instanz, die
grundsätzlich die Anfragen der Clients C beantwortet. In der Regel umfasst er eine Vielzahl von Ressourcen bzw.
Betriebsmitteln, die von den Clients C zugreifbar sind. Im Stand der Technik ist für die Zuteilung der Ressourcen eine Vielzahl von Konzepten bekannt. Insbesondere sind bestimmte Scheduling-Regeln und Zuteilungsregeln bekannt, damit eine konsistente Datenverarbeitung zu jedem Zeitpunkt auch bei konkurrierenden Zugriffen sichergestellt werden kann.
In einer bevorzugten Ausführungsform handelt es sich bei den Ressourcen um Datensätze oder Dateien, auf die von mehreren Clients C zugegriffen werden kann. Dabei sind grundsätzlich unterschiedliche Zugriffsarten möglich ( Schreib-Zugriff, Lese-Zugriff, Ausführ-Zugriff etc.). Da ein Lese-Zugriff die Daten grundsätzlich nicht verändert, können mehrere Clients C auch gleichzeitig auf dieselbe Datei bzw. auf dieselben
Datensätze zugreifen, ohne dass es zu Konsistenzproblemen
kommt. Handelt es sich jedoch bei einem Zugriff um einen solchen, der die Datensätze bzw. die Datei verändert (z.B. Schreibzugriff) , so muss sichergestellt werden, dass
ebenfalls zugreifende andere Clients C mit den "richtigen" Datensätzen arbeiten.
In einer weiteren, bevorzugten Ausführungsform handelt es sich bei den Ressourcen um elektronische Repräsentationen von logischen und/oder physikalischen Ressourcen. Unter
physikalischen Ressourcen sind neben den physikalischen üblichen Betriebsmitteln eines Computers (Speicherplatz, I/O- Ports, externe Geräte wie Drucker etc.) auch buchbare
Instanzen, wie Hotelzimmer, Gleisabschnitte bei einem
Verkehrsplanungstool oder Sitzplätze in einem Buchungssystem (Theaterkarten, Flugzeugsitze, Busplätze etc.) zu verstehen. Die elektronische Repräsentation bezieht sich dabei auf ein Objekt des Computersystems, das eineindeutig mit der
physikalischen Ressource assoziiert ist. Gemäß einer bevorzugten Ausführungsform der vorliegenden
Erfindung handelt es sich bei dem Kommunikationsprotokoll um ein asynchrones Protokoll, so dass die Anfragen der Clients C an den Server S in kein festes Zeitschema eingepasst sind, sondern zu beliebigen Zeitpunkten erfolgen. Ebenso erfolgt die Antwort des Servers auf eine Anfrage eines Clients zu beliebigen Zeitpunkten. In der Regel wird die Antwort sobald wie möglich an den anfragenden Client C weitergeleitet. Ein besonderer Vorteil der Erfindung ist deshalb darin zu sehen, dass das erfindungsgemäße Konzept insbesondere für web- basierte Anwendungen und Internetanwendungen einsetzbar sind, die grundsätzlich auf einem asynchronen Kommunikationsschema aufsetzen .
Der im Stand der Technik bekannte "Many early locks- Mechanismus" zielt darauf ab, Sperren möglichst früh zu setzen. Ein Nachteil dabei ist darin zu sehen, dass teilweise unnötig Locks gesetzt werden. Dies wird beispielsweise dann der Fall sein, falls ein Client C vor der Ausführung eines
WRITE-Zugriffs oder eines EXE-Zugriffs zunächst eine
Übersicht über alle Datensätze anfordert (beispielsweise durch einen LIST-Zugriff, eine Suchanfrage oder mittels eines Directory-Befehls) , so wird dies als READ interpretiert und bereits eine Sperre gesetzt.
Bei dem zweiten im Stand der Technik bekannten "Lock little- Lock late-Mechanismus " kann es nachteiligerweise dazu kommen, dass ein Client C seine Anfrage nicht ausführen kann. Dies ist beispielsweise dann der Fall, wenn der "Lock little-Lock late-Mechanismus" für ein Flugsitzplatz-Belegungssystem verwendet wird. Falls sich ein erster Client Ci einen
Überblick über eine Sitzplatzbelegung für den von ihm
spezifizierten Flug verschaffen möchte, so erscheinen ein oder mehrere Sitzplätze als buchbar (z. B. grün) . Wartet der Client Ci eine bestimmte Zeitspanne, so ist es theoretisch möglich, dass ein weiterer Client C2 einen dieser als grün gekennzeichneten und buchbaren Sitzplätze ebenfalls buchen möchte. Möchte dann jedoch der erste Client Ci genau diesen, gerade von C2 belegten Sitzplatz buchen, ist dieser natürlich nicht mehr zu haben und die Buchung (bzw. der Zugriff) kann nicht ausgeführt werden, da der erste Client Ci durch eine überraschende Buchung eines weiteren Clients C2 "überholt" worden ist. Die Lock little-Lock late-Strategie zeigt demnach für die Clients weniger Locks an, als sie tatsächlich
vorhanden sind. Diese Zuweisungsstrategie ist deshalb
insbesondere dann sinnvoll, falls unbedingt alle Ressourcen (wie in diesem Fall die Sitzplätze) gebucht werden sollen. Die Erfindung löst die beiden vorstehend erwähnten Nachteile, indem ebenfalls Locks gesetzt werden, die jedoch automatisch eine "Frist" bzw. Lebensspanne zugeordnet bekommen. Damit entstehen Deadlocks, die jedoch automatisch behoben werden. Dies wird detaillierter in Zusammenhang mit Fig. 2
dargestellt. In Fig. 2 greift der Client C mit einem READ- Zugriff auf einen Datensatz (in Fig. 2 mit X(C,t0)
dargestellt) des Servers S zu. Auch bei diesem READ-Zugriff
des Clients C wird dem Client C auch für die Ressource ein temporärer exklusiver Lock zugewiesen, so dass er eine Kopie der Daten erhält, die er lesen kann, wobei die exklusive Sperre nach einer vorbestimmten Zeit automatisch wieder ausläuft. Während der zugewiesenen Sperre kann der jeweilige Client die Ressource alleine verwalten und steuern, und somit auch die jeweiligen Datensätze verändern.
Üblicherweise ist es vorgesehen, dass ein Lock grundsätzlich bei einem ersten Zugriff oder bei einem ersten
Zugriffsversuch erteilt bzw. zugewiesen wird. Dabei ist es unerheblich, um welche Zugriffsart es sich handelt. Der Lock wird somit sowohl für einen READ-Zugriff als auch für die anderen Zugriffsarten, wie WRITE-Zugriff und EXE-Zugriff etc. zugewiesen.
Bei dem Lock handelt es sich insbesondere um einen exklusiven Lock, so dass ein Lock grundsätzlich nur dann zugewiesen werden kann, falls es keinen anderen Lock zum selben
Zeitpunkt gibt.
Der Lock wird erfindungsgemäß automatisch nur eine
vorbestimmbare Zeitspanne zugewiesen. Das heißt, er läuft also nach der vorbestimmbaren Zeitspanne automatisch wieder aus. Alternativ können hier auch - wie vorstehend bereits erwähnt - andere Auslaufbedingungen vorgesehen sein, die zusätzlich oder alternativ zu dem zeitlichen Auslaufen angewendet werden (z.B. ereignis-gesteuert) . Wie in Fig. 3 dargestellt, ist es in einer bevorzugten
Ausführungsform der Erfindung vorgesehen, dass der Server S eine NOTIFICATION-Nachricht an den Eigentümer des Locks (in diesem Fall Client C) über das Auslaufen seiner exklusiven Sperre nach Ablauf des vorbestimmten Zeitintervalls sendet. Die Client-Anwendung kann daraufhin den jeweiligen User über das Auslaufen seines Locks informieren und/oder kann die Präsentation und/oder die Verarbeitung der Daten verändern oder abbrechen. Dies kann in Abhängigkeit von den Daten
erfolgen. In einer vorteilhaften Ausführungsform ist es vorgesehen, dass die Daten grundsätzlich mit einem grünen Hintergrund dargestellt werden, solange die exklusive Sperre zugeteilt ist, wobei der Hintergrund dann auf eine andere Farbe wechselt, falls der Lock ausgelaufen ist. Alternative Möglichkeiten sehen hier andere Kennzeichnungen für das
Bestehen einer Sperre vor. Alternativ zur farblichen
Hervorhebung können hier entsprechend andere Flags oder
Indikatoren gesetzt werden, wie z. B. die Kennzeichnung eines bestehenden Locks in Form eines separat aufgehenden Fensters auf dem Bildschirm kennzeichnen. Ebenso sind andere
alternative Ausführungsformen denkbar, die den Benutzer darüber informieren, dass der Datensatz zurzeit gerade für die aktuelle Benutzung des Users gesperrt ist.
In einer anderen Ausführungsform enthält die NOTIFICATION- Nachricht des Servers S an den Client C zusätzlich noch eine weitere Meta-Information . Diese Meta-Information umfasst Informationen über die Lebenszeit (Life-Time, Time-Out) der zugewiesenen exklusiven Sperre. In dieser Zeit ist es
beispielsweise möglich, dass der Client einen exklusiven Schreib-Zugriff auf die Daten der jeweiligen Datei ausführt. In weiteren vorteilhaften Ausführungsformen umfasst die MetaInformation noch weitere Informationen. Hier können
beispielsweise noch Informationen über andere exklusive
Locks, die an andere Clients vergeben sind, umfasst sein oder Informationen über die bereits abgelaufene Zeit der
zugewiesenen Sperre etc. Im Folgenden wir in Zusammenhang mit Fig. 4 eine weitere vorteilhafte Ausführungsform der Erfindung beschrieben, die vorsieht, dass der Server S eine ALERT-Nachricht an den
Client C sendet, der Inhaber des exklusiven Locks ist. Diese ALERT-Nachricht informiert den Client C über das Zuweisen einer exklusiven Sperre an einen anderen Client (der in Fig. 4 mit C2 gekennzeichnet ist) für einen Datensatz D, an dem der Client Ci zu einem früheren Zeitpunkt einen exklusiven Lock zugewiesen bekommen hatte, der in der Zwischenzeit
ausgelaufen ist. Damit wird die Client-Applikation Ci darüber informiert, dass die Möglichkeit bzw. Gefahr besteht, dass der von ihm gelesene bzw. verarbeitete Datensatz nun von einem anderen Client C2 verarbeitet und möglicherweise verändert wird oder worden ist. Eine Möglichkeit, um dies unmittelbar für den User erkennbar auf dem Gerät Ci
darzustellen, besteht darin, den gesperrten Datensatz
gekennzeichnet darzustellen (wie oben bereits beschrieben, z. B. mit einem anderen Hintergrund, z.B. farblich gestaltet). Alternativ oder kumulativ besteht auch die Möglichkeit darin, den Datensatz wiederum besonders hervorgehoben darzustellen, falls der exklusive Lock für den jeweiligen Datensatz des anderen Clients C2 nicht mehr besteht bzw. ausgelaufen ist. Dann könnte der Datensatz beispielsweise in einer anderen Farbe gekennzeichnet werden, um dem ersten Client Ci
anzuzeigen bzw. zu informieren, dass der exklusive Lock für den weiteren Client C2 nun ausgelaufen ist. Somit erhält der erste Client Ci, dem einmal ein exklusiver Lock für die jeweiligen Daten auf dem Server S zugewiesen worden war, immer eine Nachricht, falls die Möglichkeit besteht, dass dieser Datensatz von einem anderen Client (in diesem Fall von Client C2) überschrieben werden kann.
In Zusammenhang mit Fig. 5 wird eine Ausführungsform der Erfindung beschrieben, in der der Server S eine REGAIN- Nachricht von dem Client Ci erhält, mit der der Client Ci anzeigt, dass er wieder einen exklusiven Lock auf dem
jeweiligen Datensatz erhalten möchte. Dies ist insbesondere dann der Fall, wenn der Client Ci einen Zugriff oder einen Zugriffsversuch auf den jeweiligen Datensatz ausführen möchte. Üblicherweise ist ein REGAIN nur dann möglich, falls es keinen zu diesem Zeitpunkt aktiven exklusiven Lock gibt, der für einen anderen Client C± zugewiesen ist. Gemäß einer Ausführungsform ist es zwar durchaus möglich, dass der Client Ci eine REGAIN-Anfrage an den Server S sendet. Ein Zuweisen des REGAIN wird jedoch nur dann erlaubt, falls aktuell kein exklusiver Lock zugewiesen ist. Je nach Ausführungsform ist es möglich, dass der Server S eine REGAIN-Anfrage und/oder
eine REGAIN-Zuweisung nur dann erlaubt, falls ein vorbestimmbares Zeitintervall abgelaufen ist. Dies ist beispielsweise dann sinnvoll, um eine bestimmte Server- Auslastung sicherzustellen und ein bestimmtes Maß an
Gleichläufigkeit zu gewährleisten. Gemäß einer bevorzugten Ausführungsform ist das Zuweisen des REGAINs für Client Ci nur dann möglich, nachdem der exklusive Lock von Client C2 bereits ausgelaufen ist, wie dies in Fig. 5 angedeutet sein soll. Fakultativ kann dann der Client C2 über das REGAIN des Clients Ci mittels einer ALERT-Nachricht informiert werden. In diesem Zusammenhang sei darauf hingewiesen, dass die
Option des REGAIN bzw. des Zuweisens eines REGAINs es nicht erfordert, dass ein NOTIFICATION oder ein ALERT gesendet werden. Mit anderen Worten wird eine Benachrichtigung der Clients (mittels NOTIFICATION und ALERT) nur optional ausgeführt. Dies stellt deshalb kein Sicherheitsrisiko dar, da der Server S ohnehin automatisch erfassen wird, falls der Client C eine Änderung der entsprechenden Datensätze oder einen Schreib-Zugriff auf die Datensätze ausführen möchte und dazu aber gar nicht berechtigt ist, da sein exklusiver Lock bereits ausgelaufen ist. In diesem Fall unterbindet der Server S automatisch, dass eine Veränderung der Datensätze ausgeführt werden kann. Dieses Unterbinden erfolgt auch ohne eine NOTIFICATION- bzw. ohne eine ALERT-Nachricht.
Eine weitere Ausführungsform sei in Zusammenhang mit Fig. 6 beschrieben. Hier sendet der Server S ein UPDATE bzw. eine UPDATE-Nachricht für die Daten D an den Client C als Antwort auf eine REGAIN-Anfrage des Clients C auf die jeweiligen Datensätze. Die UPDATE-Nachricht umfasst alle Veränderungen an den Datensätzen, die zwischen dem Auslaufen des ersten Locks für den Client und dem Wieder-Zuweisen des zweiten Locks für denselben Client (durch das REGAIN) ausgeführt worden sind. Mit anderen Worten erhält der Client C alle Modifikationen (ein Delta) in Bezug auf die Datensätze. Die jeweilige Client-Applikation kann daraufhin diese
Modifikationen lokal abgleichen. Beispielsweise kann ein MERGE oder ein Zusammenführen oder eine Hervorhebung der
geänderten Datensätze lokal am Client C ausgeführt werden. In einer alternativen, einfacheren Implementierung ist es möglich, dass der Server S lediglich die aktuell gültigen Datensätze als Antwort auf eine REGAIN-Anfrage des Clients C an den Client C sendet. Der Client C kann dann lokal das
Delta bzw. die Modifikationen zwischen den lokal vorhandenen Datensätzen und der zentralen Version der Datensätze
abgleichen. In einer weiteren Ausführungsform ist es möglich, dass der nachfolgende Lock (der auf eine REGAIN-Anfrage zugewiesen wurde) zusätzlich Meta-Informationen umfasst, beispielsweise über die Lebenszeit des Locks . Die Meta¬ Informationen können in der UPDATE-Nachricht , die von dem Server S an den Client C gesendet wird, inkludiert sein.
Die bisher beschriebenen Ausführungsformen sind darauf gerichtet, dass der Server alle Zugriffsversuche und Zugriffe seitens der Clients überwacht und steuert. Darüber hinaus übernimmt er die Aufgabe, die jeweiligen Clients mit weiteren Nachrichten und Meta-Informationen zu bedienen, die in
Zusammenhang mit der Zugriffssteuerung anfallen (UPDATE, NOTIFICATION, ALERT etc.). In alternativen Ausführungsformen ist es jedoch möglich, dass die vorstehend erwähnten
Funktionalitäten (Überwachen, Senden von Nachrichten) auch von separaten Instanzen oder Modulen übernommen werden und nicht direkt und unmittelbar vom Server S übernommen werden müssen. Damit kann das System insgesamt flexibler gestaltet werden .
Gemäß einer weiteren Ausführungsform, die in den Figuren nicht dargestellt ist, ist es möglich, dass eine
Benachrichtigung von dem Client C ausgelöst wird und aktiv von dem Client C an den Server S gesendet wird.
Beispielsweise kann ein RELEASE für einen Datensatz eines Clients C an den Server S gesendet werden, falls der Client C sicherstellen kann, dass er keine Modifikationen oder
Schreib-Zugriffe an den jeweiligen Datensätzen ausführen wird. Der Server S kann dann daraufhin den exklusiven Lock in Bezug auf den jeweiligen Client C von dem Datensatz
(vorzeitig) entfernen. Dies hat den Vorteil, dass der
exklusive Lock nur so lange wie unbedingt notwendig
zugewiesen wird. Es sei darauf hingewiesen, dass es grundsätzlich möglich ist, unterschiedliche Zeitintervalle bzw. Lebenszeiten für die Zuweisung der exklusiven Locks vorzusehen. Darüber hinaus kann die Lebenszeit grundsätzlich abhängig von der Art der Ressource sein (Datensätze, die beispielsweise sehr häufig angefragt werden, haben in der Regel eine kürzere Lebenszeit als Datensätze, die sehr selten angefragt werden. Ebenso haben Betriebsmittel, die sehr häufig eingesetzt werden, wie beispielsweise ein Drucker oder ein Scanner etc. auch eher kürzere Lebenszeiten als Betriebsmittel, die sehr selten eingesetzt werden, beispielsweise eine bestimmte
Sonderapplikation) . Darüber hinaus können die Zeitintervalle bzw. Lebenszeiten auch in Abhängigkeit von dem
Zugriffsversuch des Clients C ausgeführt werden. So kann es beispielsweise voreingestellt sein, dass ein READ-Zugriff längere Zuweisungszeitintervalle hat, als ein (kritischer)
WRITE-Zugriff . Darüber hinaus ist es möglich, die zusätzliche Information in Bezug auf die zugewiesene zeitliche Länge des exklusiven Locks (die Lebenszeit des Locks) als Meta¬ Information dem Client bereitzustellen. Die Meta-Information kann beispielsweise als Antwort auf einen Zugriff des Clients C, als auch als Zusatzinformation bei einer UPDATE-Nachricht zur Verfügung gestellt werden.
Eine besondere Ausführungsform bezieht sich auf so genannte zählbare Ressourcen. Darunter sind Ressourcen zu verstehen, die mit einer abzählbaren Anzahl beschrieben werden können, wie z. B. die Anzahl von Hotelzimmern, die gebucht werden können, die Anzahl von Sitzplätzen in einem Flugzeug etc. Grundsätzlich können die Ressourcen auch in bestimmte Klassen klassifiziert werden (bei Buchungssystemen: z. B. First
Class, Business Class etc.). Das Zuweisen des
erfindungsgemäßen Locks kann in dieser Ausführungsform auch in Abhängigkeit von der Ressourcen-Klasse ausgeführt werden.
Mit anderen Worten kann ein Zugriffsversuch beispielsweise nur auf eine ausgewählte Kategorie von Ressourcen ausgeführt werden (z. B. nur für Sitzplätze der ersten Klasse) . Falls es sich um zählbare Ressourcen handelt, kann ein Zähler
implementiert werden, der zugewiesene Locks an den Ressourcen kennzeichnen soll. Sobald ein weiterer exklusiver Lock an der Ressource zugewiesen worden ist, wird der Zähler inkre- mentiert. Falls der exklusive Lock ausgelaufen ist (z. B. aufgrund eines Time-out nach Ablauf des Zeitintervalls oder aufgrund eines ROLL-BACKS oder aufgrund eines RELEASE) wird der Zähler dekrementiert . In dieser Ausführungsform wird bei einem ALERT oder einem UPDATE lediglich der aktuelle Zähler an den Client C gesendet. Ein REGAIN kann dann leicht durch Dekrementierung des Zählers implementiert werden. In dieser Ausführungsform kann zusätzlich ein COMMIT vorgesehen sein. Dieser Befehl kennzeichnet, dass der exklusive Lock von dem jeweiligen Datensatz in Bezug auf den Client C entfernt und dass der Zähler unverändert verbleiben soll. Eine weitere Ausführungsform betrifft fein-klassifizierte oder fein-granulierte Ressourcen. Bei den fein-granulierten Ressourcen handelt es sich um solche Ressourcen, bei denen jedes Element der Ressource (z. B. ein einzelner Sitzplatz) eineindeutig identifizierbar ist. Als Beispiel dienen hier Sitzplätze im Zug, so dass bei Buchung eines Sitzplatzes der jeweilige gebuchte Sitzplatz eineindeutig einem bestimmten Reisenden zugewiesen wird. Im Gegensatz dazu, können bei den abzählbaren Ressourcen nur Klassen gebildet werden. Innerhalb der Klassen sind die Elemente nicht eineindeutig
identifizierbar und austauschbar. Bei den fein-granulierten Ressourcen ist es gemäß einer Ausführungsform der Erfindung möglich, jedes einzelne Element einer Ressource mit einem exklusiven Lock zu versehen. Alternativ dazu ist es möglich, einzelne oder alle Elemente derselben Klasse von Ressourcen mit einem exklusiven Lock zu versehen.
In der bevorzugten Ausführungsform ist es vorgesehen, dass das Zeitintervall vorbestimmbar ist und dann automatisch beim
Zuweisen des exklusiven Locks an den Client berücksichtigt wird. In dieser Ausführungsform hat der Client C keinen
Einfluss auf die Zeitdauer, für die der exklusive Lock zugewiesen wird. Alternativ dazu ist es in einer anderen Ausführungsform möglich, dass der Client C bereits bei einem ersten Zugriff bzw. bei einem ersten Zugriffsversuch auf die Ressource eine zusätzliche Anfrage an den Server S oder an ein separates Steuerungsmodul sendet, in der er ein "Wunsch- Zeitintervall" bestimmt. Das gewünschte Zeitintervall kennzeichnet den minimalen Zeitrahmen, den der Client C für die Ausführung seiner geplanten Zugriffsaktion auf die
Ressource plant. Bei Zuweisung des exklusiven Locks an den jeweiligen Client C berücksichtigt dann der Server S oder die separate Steuerungsinstanz, falls möglich, diesen Wunsch- Zeitraum. Dies soll sicherstellen, dass eine Mindest-
Effizienz für den Client C sichergestellt werden kann und er nicht unnötig beim Ausführen seines Zugriffs unterbrochen wird . Grundsätzlich ist es vorgesehen, dass für alle Sitzungen insgesamt pro Ressource nur ein exklusiver Lock zugewiesen wird. Sobald dem Server S einen ersten Zugriff bzw. eine erste Zugriffsanfrage eines Clients C erhält, wird
automatisch diesem Client C ein exklusiver Lock zugewiesen, falls noch kein exklusiver Lock für die Ressource besteht. Dasselbe gilt für ein REGAIN bzw. für eine REGAIN-Anfrage . Ein zweiter Zugriffsversuch eines anderen Clients oder eine REGAIN-Anfrage eines anderen Clients würde automatisch scheitern, falls bereits ein exklusiver Lock in Bezug auf die Ressource zugewiesen worden ist. Damit wird automatisch eine Priorisierung von Zugriffen erreicht. Die Priorisierung wird nach Zeitpunkt des Eintreffens des Zugriffs ausgeführt. Mit anderen Worten gilt hier die Strategie "First Come - First Serve" .
Das erfindungsgemäße Konzept kann grundsätzlich auf
unterschiedliche Betriebssysteme und in unterschiedlichen Bereichen der Technik eingesetzt werden. Eine hauptsächliche
Anwendung betrifft jedoch die Steuerung von Zugriffen auf technische Betriebsmittel, sowie die Steuerung von Zugriffen auf medizintechnische Geräte und auf andere physikalische Module. Ebenso können Zugriffe von Clients C über das
Internet ausgeführt werden. In diesem Zusammenhang erweist es sich als sehr vorteilhaft, dass die Clients grundsätzlich über das Internet angebunden werden können und für die
Zugriffssteuerung keine Zusatzmaßnahmen notwendig sind.
Erfindungsgemäß sind nämlich die Lebensdauer-Einstellungen für den Lock vorgesehen, so dass auch bei einem Abbruch der Internetverbindung keine zusätzlichen Mechanismen aufgerufen werden müssen.
Ein weiterer Vorteil ist auch darin zu sehen, dass der
Mechanismus grundsätzlich nicht abhängig von einem bestimmten Kommunikationsprotokoll ist. Die erfindungsgemäße
Zugriffssteuerung kann für beliebige Protokolle und für beliebige Systeme eingesetzt werden. Abschließend sei darauf hingewiesen, dass die Beschreibung der Erfindung und die Ausführungsbeispiele grundsätzlich nicht einschränkend in Hinblick auf eine bestimmte physikali¬ sche Realisierung der Erfindung zu verstehen sind. Für einen Fachmann ist es insbesondere offensichtlich, dass die Erfin- dung teilweise oder vollständig in Soft- und/oder Hardware und/oder auf mehrere physikalische Produkte - dabei insbeson¬ dere auch Computerprogrammprodukte - verteilt realisiert wer¬ den kann.
Claims
Computer-implementiertes Verfahren zur Steuerung von Zu¬ griffen auf teilbare Ressourcen in einem verteilten Client-Serversystem im Parallelbetrieb, wobei die Steue¬ rung zentral für eine Vielzahl von an das System angeschlossenen Clients (C) ausgeführt wird und zur Konsis¬ tenzhaltung der Daten folgende Verfahrensschritte um- fasst :
Erfassen eines Zugriffes eines zugreifenden Client (C) auf eine der Ressourcen;
Zuweisen eines exklusiven Locks für die Ressource für den zugreifenden Client (C) , wobei der exklusive Lock Zugriffe von anderen Clients (C) auf die Ressource sperrt, wobei der exklusive Lock für ein vorbestimmbares Zeitintervall zugewiesen wird und danach auto¬ matisch ausläuft.
Verfahren nach Anspruch 1, d a du r c h g e k e n n z e i ch n e t , da s s der Zugriff ein READ, WRITE, EXE, LIST und/oder QUERY Zugriff ist.
Verfahren nach zumindest einem der vorstehenden Ansprüche, d a du r ch g e k e n n z e i ch n e t , d a s s die Ressource externe oder interne Betriebsmittel, Da¬ tenspeicher, elektronische Objekte und/oder Kommunikati¬ onsmittel, sowie elektronische Repräsentationen logi¬ scher und/oder physikalischer Ressourcen umfasst.
Verfahren nach zumindest einem der vorstehenden Ansprüche, d a du r ch g e k e n n z e i ch n e t , d a s s eine Kommunikation zwischen dem Client (C) und dem Server (S) auf einem asynchronen Protokoll (P) basiert.
Verfahren nach zumindest einem der vorstehenden Ansprüche, d a du r ch g e k e n n z e i ch n e t , d a s s der exklusive Lock bei einem ersten Zugriff oder bei ei-
nem ersten Zugriffsversuch auf die Ressource zugewiesen wird .
Verfahren nach zumindest einem der vorstehenden Ansprüche, d a du r ch g e k e n n z e i ch n e t , d a s s der Server (S) eine NOTIFICATION Nachricht an den Client (C) sendet, dem der exklusive Lock zugewiesen worden ist, um den Client (C) zu informieren, dass der exklusi¬ ve Lock nach einem vorbestimmbaren Zeitintervall ausläuft .
Verfahren nach zumindest einem der vorstehenden Ansprüche, d a du r ch g e k e n n z e i ch n e t , d a s s der Server (S) eine ALERT Nachricht an den Client (C) sendet, um den Client (C) , dem der exklusive Lock zu ei¬ nem vorherigen Zeitpunkt einmal zugewiesen worden war, der aber inzwischen bereits ausgelaufen ist, zu informieren, falls einem anderen Client (C) ein exklusiver Lock auf die bestimmte Ressource zugewiesen worden ist.
Verfahren nach zumindest einem der vorstehenden Ansprüche, d a du r ch g e k e n n z e i ch n e t , d a s s der Server (S) ein REGAIN für einen exklusiven Lock einer Ressource für einen Client (C) ermöglicht, falls die angefragte Ressource früher für den Client (C) mit einem exklusiven Lock gesperrt worden war und falls der Client (C) auf diese Ressource zugreifen möchte.
Verfahren nach zumindest einem der vorstehenden Ansprüche, d a du r ch g e k e n n z e i ch n e t , d a s s der Server (S) ein UPDATE an den Client in Bezug auf die Ressource sendet als Antwort auf ein REGAIN oder eine REGAIN Anfrage des Clients (C) für dieselbe Ressource, wobei das UPDATE alle Änderungen umfasst, die in einem Zeitraum zwischen Auslaufen des vorhergehenden exklusiven Locks und dem Zuweisen des nachfolgenden exklusiven Locks für den Client (C) an der Ressource ausgeführt worden sind.
10. Verfahren nach zumindest einem der vorstehenden Ansprüche, d a du r ch g e k e n n z e i ch n e t , d a s s der Client (C) ein RELEASE für die Ressource an den Server (S) sendet, falls seitens des Clients (C) keine Än¬ derungen an der Ressource oder kein Schreib-Zugriff auf die Ressource ausgeführt werden soll, so dass der Server (S) daraufhin den exklusiven Lock für den Client (C) in Bezug auf die Ressource aufhebt.
11. Verfahren nach zumindest einem der vorstehenden Ansprüche, d a du r ch g e k e n n z e i ch n e t , d a s s das vorbestimmbare Zeitintervall in Abhängigkeit von ei¬ nem Typ der Ressource, von einem Typ des Zugriffs und/oder von anderen Parametern automatisch vorbestimmbar ist und optional dem Client (C) als Zusatzinformati¬ on mitgeliefert wird.
12. System zur Steuerung von Zugriffen auf teilbare Ressourcen in einem verteilten Client-Serversystem im Parallelbetrieb, wobei die Steuerung zentral für eine Vielzahl von an das System angeschlossenen Clients (C) ausgeführt wird und zur Konsistenzhaltung der Daten folgendes um- fasst :
Ein Erfassungsmodul, das zum Erfassen eines Zugriffes zumindest eines zugreifenden Client (C) auf eine der Ressourcen bestimmt ist;
Ein Zuweisungsmodul, das zum Zuweisen eines exklusi¬ ven Locks für die Ressource für den zugreifenden Client (C) bestimmt ist, wobei der exklusive Lock Zu¬ griffe von anderen Clients (C) auf die Ressource sperrt und wobei der exklusive Lock für ein vorbe¬ stimmbares Zeitintervall zugewiesen wird und danach automatisch ausläuft.
13. Computerprogrammprodukt ladbar oder geladen in einen
Speicher eines Computers mit von dem Computer lesbaren Befehlen zur Ausführung des Verfahrens nach den Patent-
ansprüchen 1 bis 11, wenn die Befehle auf dem Computer ausgeführt werden.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102009042128A DE102009042128A1 (de) | 2009-09-18 | 2009-09-18 | Verfahren und System zur Verwendung von temporären exklusiven Sperren für parallele Betriebsmittelzugrife |
PCT/EP2010/063324 WO2011032895A1 (de) | 2009-09-18 | 2010-09-10 | Verfahren und system zur verwendung von temporären exklusiven sperren für parallele betriebsmittelzugriffe |
Publications (1)
Publication Number | Publication Date |
---|---|
EP2478436A1 true EP2478436A1 (de) | 2012-07-25 |
Family
ID=43402169
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP10763142A Withdrawn EP2478436A1 (de) | 2009-09-18 | 2010-09-10 | Verfahren und system zur verwendung von temporären exklusiven sperren für parallele betriebsmittelzugriffe |
Country Status (6)
Country | Link |
---|---|
US (1) | US8909788B2 (de) |
EP (1) | EP2478436A1 (de) |
KR (1) | KR101388829B1 (de) |
CN (1) | CN104205053A (de) |
DE (1) | DE102009042128A1 (de) |
WO (1) | WO2011032895A1 (de) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7987210B1 (en) | 2007-09-28 | 2011-07-26 | Emc Corporation | System for lightweight objects |
US9253219B2 (en) * | 2012-03-30 | 2016-02-02 | Avaya Inc. | System and method to influence SIP routing by sequenced applications |
CN103458036B (zh) * | 2013-09-03 | 2017-02-15 | 杭州华三通信技术有限公司 | 一种集群文件系统的访问装置和方法 |
US9686206B2 (en) * | 2014-04-29 | 2017-06-20 | Silicon Graphics International Corp. | Temporal based collaborative mutual exclusion control of a shared resource |
CN105471881A (zh) * | 2015-12-07 | 2016-04-06 | 北京奇虎科技有限公司 | 对请求进行加解锁方法、装置及系统 |
KR102016417B1 (ko) * | 2016-01-29 | 2019-09-02 | 한국전자통신연구원 | 분산 파일 시스템을 채용한 스토리지 시스템에서 클라이언트 장치와 함께 파일의 분산 잠금을 관리하도록 구성되는 데이터 서버 장치 |
WO2019202888A1 (ja) * | 2018-04-19 | 2019-10-24 | 村田機械株式会社 | 排他制御システム及び排他制御方法 |
US11068303B2 (en) | 2019-02-19 | 2021-07-20 | International Business Machines Corporation | Adjusting thread balancing in response to disruptive complex instruction |
US10942775B2 (en) | 2019-03-01 | 2021-03-09 | International Business Machines Corporation | Modified central serialization of requests in multiprocessor systems |
US10929200B1 (en) * | 2019-09-16 | 2021-02-23 | International Business Machines Corporation | Live runtime infrastructure orchestration |
CN110888858B (zh) * | 2019-10-29 | 2023-06-30 | 北京奇艺世纪科技有限公司 | 数据库的操作方法和装置、存储介质、电子装置 |
Family Cites Families (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5226143A (en) * | 1990-03-14 | 1993-07-06 | International Business Machines Corporation | Multiprocessor system includes operating system for notifying only those cache managers who are holders of shared locks on a designated page by global lock manager |
US5892954A (en) * | 1995-07-07 | 1999-04-06 | Sun Microsystems, Inc. | Method and apparatus for refreshing file locks to minimize conflicting accesses to data files |
US6301616B1 (en) * | 1997-04-11 | 2001-10-09 | Microsoft Corporation | Pledge-based resource allocation system |
US5937199A (en) * | 1997-06-03 | 1999-08-10 | International Business Machines Corporation | User programmable interrupt mask with timeout for enhanced resource locking efficiency |
KR100281684B1 (ko) * | 1998-12-11 | 2001-02-15 | 정선종 | 공동 작업에서의 분산 동시성 제어 방법 |
US6226717B1 (en) * | 1999-02-04 | 2001-05-01 | Compaq Computer Corporation | System and method for exclusive access to shared storage |
US6775703B1 (en) * | 2000-05-01 | 2004-08-10 | International Business Machines Corporation | Lease based safety protocol for distributed system with multiple networks |
US7620954B2 (en) * | 2001-08-08 | 2009-11-17 | Hewlett-Packard Development Company, L.P. | Mechanism for handling load lock/store conditional primitives in directory-based distributed shared memory multiprocessors |
US6748470B2 (en) * | 2001-11-13 | 2004-06-08 | Microsoft Corporation | Method and system for locking multiple resources in a distributed environment |
US7028300B2 (en) * | 2001-11-13 | 2006-04-11 | Microsoft Corporation | Method and system for managing resources in a distributed environment that has an associated object |
US7529844B2 (en) * | 2002-04-26 | 2009-05-05 | Sun Microsystems, Inc. | Multiprocessing systems employing hierarchical spin locks |
US6862666B2 (en) | 2002-05-16 | 2005-03-01 | Sun Microsystems, Inc. | Hardware assisted lease-based access to memory |
US8140622B2 (en) * | 2002-05-23 | 2012-03-20 | International Business Machines Corporation | Parallel metadata service in storage area network environment |
US7831974B2 (en) * | 2002-11-12 | 2010-11-09 | Intel Corporation | Method and apparatus for serialized mutual exclusion |
WO2005043279A2 (en) * | 2003-10-31 | 2005-05-12 | Disksites Research And Development Ltd. | Device, system and method for storage and access of computer files |
US7849098B1 (en) * | 2004-02-06 | 2010-12-07 | Vmware, Inc. | Providing multiple concurrent access to a file system |
US7810098B2 (en) * | 2004-03-31 | 2010-10-05 | International Business Machines Corporation | Allocating resources across multiple nodes in a hierarchical data processing system according to a decentralized policy |
US8126843B2 (en) * | 2004-11-30 | 2012-02-28 | International Business Machines Corporation | Cluster-wide read-copy update system and method |
US8332485B1 (en) * | 2005-03-04 | 2012-12-11 | Cisco Technology, Inc. | Lock optimization and lock prediction approaches for reducing client-server messages |
CN100504791C (zh) * | 2007-05-16 | 2009-06-24 | 杭州华三通信技术有限公司 | 多cpu对临界资源进行互斥访问的方法和装置 |
US7930401B2 (en) * | 2007-06-26 | 2011-04-19 | International Business Machines Corporation | Accessing shared resources with improved request peak management |
US7856536B2 (en) * | 2007-10-05 | 2010-12-21 | International Business Machines Corporation | Providing a process exclusive access to a page including a memory address to which a lock is granted to the process |
US8370318B2 (en) * | 2008-12-19 | 2013-02-05 | Oracle International Corporation | Time limited lock ownership |
US8495311B2 (en) * | 2009-06-25 | 2013-07-23 | International Business Machines Corporation | Updating shared variables atomically |
US8528066B2 (en) * | 2009-08-25 | 2013-09-03 | Microsoft Corporation | Methods and apparatus for enabling context sharing |
US8452743B2 (en) * | 2009-09-18 | 2013-05-28 | Oracle International Corporation | Method and system for efficient enforcement of derived locks in a hierarchical structure |
US8260913B2 (en) * | 2010-05-06 | 2012-09-04 | Go Daddy Operating Company, LLC | Reading a file from a cloud storage solution |
US8352658B2 (en) * | 2010-05-27 | 2013-01-08 | Microsoft Corporation | Fabric based lock manager service |
-
2009
- 2009-09-18 DE DE102009042128A patent/DE102009042128A1/de not_active Withdrawn
-
2010
- 2010-09-10 CN CN201080041677.XA patent/CN104205053A/zh active Pending
- 2010-09-10 EP EP10763142A patent/EP2478436A1/de not_active Withdrawn
- 2010-09-10 WO PCT/EP2010/063324 patent/WO2011032895A1/de active Application Filing
- 2010-09-10 US US13/496,782 patent/US8909788B2/en not_active Expired - Fee Related
- 2010-09-10 KR KR1020127007054A patent/KR101388829B1/ko not_active IP Right Cessation
Non-Patent Citations (1)
Title |
---|
See references of WO2011032895A1 * |
Also Published As
Publication number | Publication date |
---|---|
DE102009042128A1 (de) | 2011-03-24 |
CN104205053A (zh) | 2014-12-10 |
US20120179821A1 (en) | 2012-07-12 |
WO2011032895A1 (de) | 2011-03-24 |
US8909788B2 (en) | 2014-12-09 |
KR101388829B1 (ko) | 2014-04-23 |
KR20120058553A (ko) | 2012-06-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2011032895A1 (de) | Verfahren und system zur verwendung von temporären exklusiven sperren für parallele betriebsmittelzugriffe | |
DE69806914T2 (de) | Agentimplementierte verriegelungsvorrichtung | |
EP0762274B1 (de) | Einrichtung und Verfahren zur Echtzeit-Verarbeitung einer Mehrzahl von Tasks | |
DE69403192T2 (de) | Vorrichtung und verfahren zur datensicherung von speichereinheiten in einem rechnernetzwerk | |
DE69029759T2 (de) | Flexible Schnittstelle für Beglaubigungsdienste in einem verteilten Datenverarbeitungssystem | |
DE112012004099T5 (de) | Transaktionsverarbeitungssystem, Verfahren und Programm | |
DE4033336A1 (de) | Verfahren zum erzeugen einer ausfallmeldung und mechanismus fuer ausfallmeldung | |
DE602005004334T2 (de) | Nms zur Verarbeitung von Multi-Server Ereignissen | |
WO2013087610A1 (de) | Vorrichtung und verfahren zum dynamischen lastmanagement von cloud services | |
EP1298515A2 (de) | Verfahren zur Steuerung des Zugriffs auf Ressourcen eines Datenverarbeitungssystems | |
DE102006051188A1 (de) | Flexibles Verschaltungssystem | |
DE102008004658B4 (de) | Verfahren zur zentralen Steuerung von Prozessen in erweiterbaren medizinischen Plattformen | |
DE112012004554T5 (de) | Serielle Verarbeitung des Zugriffs auf Daten bei Datenverarbeitungsumgebungen mitmehreren Grossrechnern | |
DE202023105123U1 (de) | Ein adaptives Gleichzeitigkeitskontrollsystem für das Transaktionsmanagement in einer Cloud-Edge-Computerumgebung | |
EP0239827B1 (de) | Verfahren zum Ansteuern eines gemeinsamen Speichers eines aus einzelnen Mikroprozessorsystemen bestehenden Mehrprozessorsystems | |
AT504141B1 (de) | Verfahren zur vergabe von zugriffsrechten auf daten | |
DE19911699A1 (de) | Verfahren zur Überwachung, Steuerung und/oder Optimierung von Prozeß- und/oder Arbeitsprojektplänen | |
EP1658704B1 (de) | Aktualisierung einer einem benutzer eines kommunikationsdienstes zugeordneten anwesenheitsinformation | |
WO2015014955A1 (de) | Verfahren und system zur synchronisation von daten | |
DE102012110164A1 (de) | Rechneranordnung | |
EP2706474B1 (de) | Verfahren zur Synchronisation von Daten in einem Computernetzwerk | |
EP0849652A1 (de) | Verfahren zur Verwaltung von Weckzeiten und Vorrichtung zur Ausführung dieses Verfahrens | |
DE60211703T2 (de) | Verfahren und system zur zeitverwaltung in einem echtzeitsystem | |
DE102011006490A1 (de) | Ressourcenmanagement mit einer dynamischen Warteschlange | |
EP1697846A2 (de) | Einrichtung und verfahren zur steuerung und kontrolle von überwachungsdetektoren in einem knoten eines clustersystems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
17P | Request for examination filed |
Effective date: 20120305 |
|
AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO SE SI SK SM TR |
|
DAX | Request for extension of the european patent (deleted) | ||
RAP1 | Party data changed (applicant data changed or rights of an application transferred) |
Owner name: SIEMENS AKTIENGESELLSCHAFT |
|
17Q | First examination report despatched |
Effective date: 20141021 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN |
|
18D | Application deemed to be withdrawn |
Effective date: 20151215 |