US20040078360A1 - Data locking system and method for medical system architecture - Google Patents
Data locking system and method for medical system architecture Download PDFInfo
- Publication number
- US20040078360A1 US20040078360A1 US10/278,959 US27895902A US2004078360A1 US 20040078360 A1 US20040078360 A1 US 20040078360A1 US 27895902 A US27895902 A US 27895902A US 2004078360 A1 US2004078360 A1 US 2004078360A1
- Authority
- US
- United States
- Prior art keywords
- data lock
- database
- user
- separate
- data
- 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.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2308—Concurrency control
- G06F16/2336—Pessimistic concurrency control approaches, e.g. locking or multiple versions without time stamps
- G06F16/2343—Locking methods, e.g. distributed locking or locking implementation details
Definitions
- This invention relates to shared database access control systems and methods, and more particularly to database access control systems and methods enabling multiple users to access and update records in shared databases.
- the present invention includes apparatus and a method for controlling access to data in a first database for a plurality of users.
- the method includes maintaining a master data lock database separate from the first database.
- the data lock database is evaluated to determine whether the requested data lock is available.
- the data lock database is updated to indicate that requesting user is the current owner of the data lock.
- the method may also search the data lock database to determine whether a data lock records exists for the requested data lock.
- the method may maintain a separate user data lock database separate from the first database and master database for each of the plurality of users. Further, the method may inform the requesting user that the data lock request has been granted when it has been determined that it is available and may also inform the requesting user that the data lock request has been denied when it has been determined that it is not available.
- the method may also search the data lock database to determine whether a data lock records exists for the requested data lock, determine whether the data lock record has expired, and indicate that the data lock is available when the data lock record has been determined to be expired.
- the method may also determine whether the data lock record has existed for a predetermined period of time when the data lock record exists for the requested data lock and indicate that the data lock record is available when the data lock record has existed for at least the predetermined period of time.
- each data lock request may include a requesting user identification and each user may have an associated priority. The method may determine whether the data lock record current owner's associated priority is less than the requesting user's associated priority and indicate that the data lock record is available when the data lock record current owner's associated priority is less than the requesting user's associated priority.
- FIG. 1 is a block diagram of exemplary client service provider related AR architecture in which the present invention may be employed.
- FIG. 2 is a block diagram of an exemplary central AR data processing system shown in FIG. 1.
- FIG. 3A is a block diagram of an exemplary Data Locking processing system shown in FIG. 1.
- FIG. 3B is a block diagram of data locking servlet software processes that may exist in the Data Locking processing system shown in FIG. 3A.
- FIG. 4 is a flowchart of an exemplary client data locking servlet process in accordance with the present invention.
- FIG. 5 is a flowchart of an exemplary master data locking servlet process in accordance with the present invention.
- FIG. 1 is a block diagram of an exemplary client service provider AR architecture 100 in which the present invention may be employed.
- the architecture 100 includes a plurality of client service request/order entry systems (“COE”) 22 , 24 , a plurality of client service request/order entry processing systems (“SOEP”) 12 , 14 , a plurality of third party billable agent systems (“BAS”) 32 , 34 , a plurality of research group systems (“RGS”) 26 , 28 , and a Data Locking System (“DLS”) 50 coupled to a central AR data processing system (“CARS”) 40 via a network of networks or Internet 30 .
- COE client service request/order entry systems
- SOEP client service request/order entry processing systems
- BAS third party billable agent systems
- RGS research group systems
- DLS Data Locking System
- CARS central AR data processing system
- a user of a COE 22 , 24 may generate or modify a service request using an order entry program maintained on the CARS 40 .
- the data is maintained in one or more databases located on a data storage device 42 , 44 in the CARS 40 .
- a SOEP 12 , 14 may also perform order entry/modification and receive service requests from COE 22 , 24 via the CARS 40 .
- a SOEP 12 , 14 may indicate when a service request is completed via the CARS 40 .
- the CARS 40 may then generate and transmit a request for payment for the rendered service to an appropriate BAS 32 , 34 .
- the CARS 40 may direct a RGS 26 , 28 to search for information related to a processed service request.
- FIG. 2 is a block diagram of an exemplary CARS 40 .
- the CARS 40 includes a server 46 and plurality of data storage devices 42 , 44 such as optical, magnetic, or other permanent data storage devices.
- the CARS 40 stores databases on the storage devices 42 , 44 where the databases are used to maintain and process service requests.
- the CARS 40 may also store program files on the storage devices 42 , 44 where the program files include executable instructions for processing service requests and enabling the COE 22 , 24 and SOEP 12 , 14 to process service requests.
- the CARS 40 server 46 includes a memory 41 coupled to a processor 43 where the processor is also coupled to the storage devices 42 , 44 .
- the processor 43 executes program instructions for processing service requests and supporting COE 22 , 24 and SOEP 12 , 14 .
- the memory 41 stores data and program instructions where the data may include service requests and information related to the requests that may be stored in a database on a storage device 42 , 44 .
- FIG. 3A is a block diagram of an exemplary DLS 50 .
- the DLS 50 includes a memory 51 coupled to a processor 53 .
- the DLS 50 may also include storage devices (not shown) coupled to the processor 53 .
- FIG. 3B is a block diagram of data locking servlet software instances that the processor 53 may be executing.
- the data locking servlet instances may includes a plurality of client servlet instances (A to Z) 54 to 56 and a master servlet instance 58 .
- each client servlet executing in the DLS 50 corresponds to a user on a COE 22 , 24 , SOEP 12 , 14 , BAS 32 , 34 , or RGS 26 , 28 .
- An exemplary DLS 50 is explained in detail with reference to an application of the system 100 to a particular client service and client paradigm.
- the client service providers 12 , 14 are a plurality of medical laboratories
- the clients are physicians that order laboratory tests for patients
- the billable agents are patient's medical insurance providers.
- a physician via one of the plurality of COE 22 , 24 may order one or more laboratory tests from a laboratory.
- One or more laboratories may also enter, modify or process orders via a SOEP 12 , 14 .
- other parties may receive data, review data, or update order entry related data including billing data via a BAS 32 , 34 , or RGS 26 , 28 .
- all related data is centrally maintained in one or more databases located in the CARS 40 .
- the present invention employs the DLS 50 to control access to the data within these databases.
- the CARS 40 does not maintain data locks for the databases within storage 42 , 44 to limit the overhead of the CARS 40 to transmitting data and pages as requested by users.
- the DLS 50 generates/executes a client data locking servlet 54 , 56 for each user along with a master data locking servlet.
- Each client data locking servlet 54 , 56 also includes a local data lock database/table that is stored in the memory 53 .
- the master data locking servlet maintains a master data lock database/table that is also stored in the memory 53 . Accordingly, data locks for data located in a database 42 , 44 of the CARS 40 are stored and maintained in a separate data processing system, the DLS 50 . This enables the CARS 40 to efficiently process data requests without data locking overhead.
- requests for data locks and releases of data locks (from users) and data locks grants and denials (from the DLS 50 ) are communicated in system architecture 100 using a low overhead messaging system.
- data locking related messages are communicated in architecture 100 using a JavaTM Messaging Service (“JMS”).
- JMS JavaTM Messaging Service
- JMS is an application program interface (API) from Sun Microsystems (Sun®) of Palo Alto, Calif., that supports formal communication, known as messaging, between computer systems in a network.
- Sun's JMS provides a common interface to standard messaging protocols and also to special messaging services in support of Java programs.
- the use of messaging for data locking control allows the user's various systems COE, SOEP, BAS, and RGS programs to share common message-handling code and facilitate communication even if they employ different programming environments (languages, compilers, and operating systems) given each environment understands the common messaging format and protocol.
- FIG. 4 is a flowchart of the exemplary client data locking servlet process 60 in accordance with the present invention.
- the process 60 determines whether a client is logging out (step 62 ), whether the client has requested a new page (step 72 ), or whether a data lock grant message has been received (step 94 ).
- a client data locking servlet 54 , 56 is generated for the user with a local data locking database/table stored in the memory 51 .
- the page may include data stored in one or more records of a database 42 , 44 .
- step 72 when a client requests a new page (such as when the client logs in), several steps are performed. First the process 60 determines whether the client has any existing/active data locks for their current page (step 74 ), e.g., the client/user may be currently accessing one page and then request a new page where the current page required one or more data locks for the client.
- the client servlet may review the data locks in its local data lock database/table to determine whether there are any active locks associated with the client's current page (step 74 ). When there are active data locks, the client servlet generates a data lock release message to be transmitted to the master servlet for each active lock.
- the data lock release message may include a data lock identifier (“ID”) and client ID.
- ID data lock identifier
- a client servlet may be processed on systems other than the DLS so that a JMS message to the master servlet may be needed to release a data lock or request a data lock.
- the processor 53 transmits the data lock release or request from the client servlet to the master servlet.
- the client servlet 78 then clears all active data locks for the client's current page (step 78 ). Then the client servlet process 60 determines whether the page to be loaded requires one or more data locks, i.e., includes data from one or more records located in the CARS 40 (step 82 ). The client servlet process 60 requests the data locks needed for the request page. In an exemplary the granularity of the data locks may be limited a record, one or more fields of a record, or a plurality of records where the data to be displayed or modified exists in one of the same.
- Step 84 of the client servlet process 60 generates and transmits a data lock request for the data on the requested page based on the granularity of the architecture 100 and the needed data.
- the data lock request (and data lock releases) are processed by the master servlet process 110 .
- the master servlet generates a data lock request denial when a data lock request can not be granted.
- the client servlet process 60 requests the data needed for the page from the CARS 40 , loads the requested page, and updates its local data lock database (step 92 ) unless it receives a data lock request denial (step 86 ).
- a data lock request denial is received, the requested page is not loaded and the client is informed that the requested page is not currently available (step 88 ).
- the client servlet process 60 waits for data lock granted messages for each data lock needed for the requested page. When all the requested data locks are not granted within a predetermined time interval, the requested page is not loaded and the client is informed that the requested page is not currently available.
- a client data lock request may include a data ID (of the data to be locked) and a client ID.
- client's have an associated priority where some clients have higher priority than other clients. Accordingly, a client may be granted data locks needed for a page, receive the data and load the page based on their priority. Subsequently the client may lose a data lock needed for their current page when a client/user having a higher priority requests one of the data locks currently owned by the client.
- the client server process 60 receives a data lock granted message.
- the process 60 determines whether the data lock grant is related to a data lock the client currently owns.
- Step 96 of process 60 may review its local data lock database/table to determine whether it currently owns the data lock in the grant message.
- the data lock granted message may also indicate the client assigned the data lock.
- Step 98 of process determines whether the active data lock has been assigned to another client (such as to a client having higher priority). When this condition is true (active data lock assigned to another user), the client may not have the most current data on its page or be able to update the data.
- the client servlet 60 (at step 102 ), then unloads the page, informs the client the page is no longer available and removes the data lock from its local data lock database/table.
- the client servlet process 60 may also remove any other data locks associated with the unloaded page (if any—step 104 ) from its local data lock database (step 108 ) and send data lock database release messages for these other data locks (step 106 ).
- the exemplary client servlet process 60 performs a series of steps ( 64 , 66 , and 68 ) similar to when the client requests a new page.
- the client servlet process 60 sends a data lock release message for each data lock (step 66 ) to the master servlet and clears its local data lock database (step 68 ). Then client servlet process 60 may then terminate.
- the client servlet process 60 may generate and transmit a client logout message to the master servlet process 110 where the master servlet process then clears all locks associated with the client.
- FIG. 5 is a flowchart of an exemplary master data locking servlet process 110 in accordance with the present invention.
- the master servlet process 110 receives either data lock release or data lock request messages (step 112 , step 118 ) and then processes the messages accordingly.
- the process 110 clear the data lock from the master data lock database (step 114 ).
- the master servlet process 110 may generate a data lock released message to be transmitted to the client servlets.
- the client servlets may include steps to notify an associated client that a page is now available that the client had previously unsuccessfully requested (due to the data lock indicated as now released in the data lock released message from the master servlet process 110 ).
- the process 110 may first determine whether the data is currently locked by reviewing it master data lock database stored in the memory 51 .
- the data lock request message may also include the requesting client's ID.
- the request message may further include the requesting client's ID data locking priority.
- the master servlet process 110 may determine the client's data locking priority by retrieving it from a table/database stored in the CARS 40 .
- the process 110 may then determine whether the requestor's priority is greater than the priority of the current holder of the requested data lock (step 124 ).
- the master servlet process may determine whether the current data lock has expired (step 126 ).
- a data lock expires after a predetermined time interval has elapsed since the data lock was granted.
- each lock is assigned a limited time lease that varies in length (time interval) as a function of the requester.
- time interval For non-administrative requesters, the time lease may be 5 minutes and for administrative requesters, the time lease may be 60 minutes in one exemplary embodiment.
- the master servlet process 110 may update its master data lock database to indicate that the requestor is now the current data lock holder (step 132 ) (and the time lease/interval for the data lock).
- the master servlet process 110 stores the current holder's ID, their priority, and the time of the grant in a record of the data lock database associated with the data lock.
- the client priority is not stored but retrieved from the CARS 40 each time a comparison is needed. Then, the master servlet process sends a data lock granted message to each client servlet (step 134 ).
- the master servlet process 110 may generate and transmit a data lock request denied message to the requesting client servlet (at step 128 ).
- the master servlet process 110 and plurality of client servlets 54 , 56 enable clients to receive and update the latest data in the CARS 40 .
- the computer programming code (whether software or firmware) according to the invention will typically be stored in one or more machine readable storage mediums such as fixed (hard) drives, diskettes, optical disks, magnetic tape, semiconductor memories such as ROMs, PROMs, etc., thereby making an article of manufacture in accordance with the invention.
- the article of manufacture containing the computer programming code is used by either executing the code directly from the storage device, by copying the code from the storage device into another storage device such as a hard disk, RAM, etc. or by transmitting the code on a network for remote execution.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
- 1. Field of the Invention
- This invention relates to shared database access control systems and methods, and more particularly to database access control systems and methods enabling multiple users to access and update records in shared databases.
- 2. Description of Related Art
- In system architecture having one or more databases and multiple users, users may want contemporaneously access to data within the one or more databases. A need exists for a low overhead system and method that enables multiple users to access data within one or more databases.
- The present invention includes apparatus and a method for controlling access to data in a first database for a plurality of users. The method includes maintaining a master data lock database separate from the first database. When a data lock request from one of the plurality of users is received, the data lock database is evaluated to determine whether the requested data lock is available. When the data lock is available the data lock database is updated to indicate that requesting user is the current owner of the data lock.
- The method may also search the data lock database to determine whether a data lock records exists for the requested data lock. In addition, the method may maintain a separate user data lock database separate from the first database and master database for each of the plurality of users. Further, the method may inform the requesting user that the data lock request has been granted when it has been determined that it is available and may also inform the requesting user that the data lock request has been denied when it has been determined that it is not available. The method may also search the data lock database to determine whether a data lock records exists for the requested data lock, determine whether the data lock record has expired, and indicate that the data lock is available when the data lock record has been determined to be expired.
- The method may also determine whether the data lock record has existed for a predetermined period of time when the data lock record exists for the requested data lock and indicate that the data lock record is available when the data lock record has existed for at least the predetermined period of time. In another embodiment, each data lock request may include a requesting user identification and each user may have an associated priority. The method may determine whether the data lock record current owner's associated priority is less than the requesting user's associated priority and indicate that the data lock record is available when the data lock record current owner's associated priority is less than the requesting user's associated priority.
- FIG. 1 is a block diagram of exemplary client service provider related AR architecture in which the present invention may be employed.
- FIG. 2 is a block diagram of an exemplary central AR data processing system shown in FIG. 1.
- FIG. 3A is a block diagram of an exemplary Data Locking processing system shown in FIG. 1.
- FIG. 3B is a block diagram of data locking servlet software processes that may exist in the Data Locking processing system shown in FIG. 3A.
- FIG. 4 is a flowchart of an exemplary client data locking servlet process in accordance with the present invention.
- FIG. 5 is a flowchart of an exemplary master data locking servlet process in accordance with the present invention.
- Like reference numbers and designations in the various drawings indicate like elements.
- Throughout this description, the preferred embodiment and examples shown should be considered as exemplars, rather than as limitations on the present invention.
- FIG. 1 is a block diagram of an exemplary client service provider AR
architecture 100 in which the present invention may be employed. Thearchitecture 100 includes a plurality of client service request/order entry systems (“COE”) 22, 24, a plurality of client service request/order entry processing systems (“SOEP”) 12, 14, a plurality of third party billable agent systems (“BAS”) 32, 34, a plurality of research group systems (“RGS”) 26, 28, and a Data Locking System (“DLS”) 50 coupled to a central AR data processing system (“CARS”) 40 via a network of networks or Internet 30. In one exemplary embodiment a user of aCOE COE data storage device CARS 40. ASOEP COE SOEP appropriate BAS RGS - FIG. 2 is a block diagram of an
exemplary CARS 40. The CARS 40 includes aserver 46 and plurality ofdata storage devices storage devices storage devices COE SOEP server 46 includes amemory 41 coupled to aprocessor 43 where the processor is also coupled to thestorage devices processor 43 executes program instructions for processing service requests and supportingCOE SOEP memory 41 stores data and program instructions where the data may include service requests and information related to the requests that may be stored in a database on astorage device - FIG. 3A is a block diagram of an
exemplary DLS 50. The DLS 50 includes amemory 51 coupled to aprocessor 53. In another exemplary embodiment, theDLS 50 may also include storage devices (not shown) coupled to theprocessor 53. FIG. 3B is a block diagram of data locking servlet software instances that theprocessor 53 may be executing. The data locking servlet instances may includes a plurality of client servlet instances (A to Z) 54 to 56 and amaster servlet instance 58. In one exemplary embodiment, each client servlet executing in theDLS 50 corresponds to a user on aCOE SOEP - An
exemplary DLS 50 is explained in detail with reference to an application of thesystem 100 to a particular client service and client paradigm. In this example, theclient service providers COE SOEP BAS DLS 50 to control access to the data within these databases. The CARS 40 does not maintain data locks for the databases withinstorage CARS 40 to transmitting data and pages as requested by users. - In the present invention, the
DLS 50 generates/executes a clientdata locking servlet 54, 56 for each user along with a master data locking servlet. Each clientdata locking servlet 54, 56 also includes a local data lock database/table that is stored in thememory 53. The master data locking servlet maintains a master data lock database/table that is also stored in thememory 53. Accordingly, data locks for data located in adatabase CARS 40 are stored and maintained in a separate data processing system, theDLS 50. This enables theCARS 40 to efficiently process data requests without data locking overhead. Further, in an exemplary embodiment of the present invention, requests for data locks and releases of data locks (from users) and data locks grants and denials (from the DLS 50) are communicated insystem architecture 100 using a low overhead messaging system. In an exemplary embodiment, data locking related messages are communicated inarchitecture 100 using a Java™ Messaging Service (“JMS”). - JMS is an application program interface (API) from Sun Microsystems (Sun®) of Palo Alto, Calif., that supports formal communication, known as messaging, between computer systems in a network. Sun's JMS provides a common interface to standard messaging protocols and also to special messaging services in support of Java programs. The use of messaging for data locking control allows the user's various systems COE, SOEP, BAS, and RGS programs to share common message-handling code and facilitate communication even if they employ different programming environments (languages, compilers, and operating systems) given each environment understands the common messaging format and protocol.
- An exemplary client data locking servlet process and an exemplary master data locking servlet process are presented to FIGS. 4 and 5. FIG. 4 is a flowchart of the exemplary client data locking
servlet process 60 in accordance with the present invention. In this exemplary embodiment, theprocess 60 determines whether a client is logging out (step 62), whether the client has requested a new page (step 72), or whether a data lock grant message has been received (step 94). In the exemplary embodiment, when a user logs into theCARS 40, a clientdata locking servlet 54, 56 is generated for the user with a local data locking database/table stored in thememory 51. When a user requests a page (step 72) (such as an order entry or review page for a new order or existing order), the page may include data stored in one or more records of adatabase - To ensure the client receives the most current data and to enable the client to update the data, other users/clients are ideally prevented from receiving the data or sending updates to the data when another user is reviewing the data (on a page). At
step 72, when a client requests a new page (such as when the client logs in), several steps are performed. First theprocess 60 determines whether the client has any existing/active data locks for their current page (step 74), e.g., the client/user may be currently accessing one page and then request a new page where the current page required one or more data locks for the client. - The client servlet may review the data locks in its local data lock database/table to determine whether there are any active locks associated with the client's current page (step74). When there are active data locks, the client servlet generates a data lock release message to be transmitted to the master servlet for each active lock. The data lock release message may include a data lock identifier (“ID”) and client ID. It is noted that in other exemplary embodiment, a client servlet may be processed on systems other than the DLS so that a JMS message to the master servlet may be needed to release a data lock or request a data lock. In the exemplary embodiment, the
processor 53 transmits the data lock release or request from the client servlet to the master servlet. - The
client servlet 78 then clears all active data locks for the client's current page (step 78). Then theclient servlet process 60 determines whether the page to be loaded requires one or more data locks, i.e., includes data from one or more records located in the CARS 40 (step 82). Theclient servlet process 60 requests the data locks needed for the request page. In an exemplary the granularity of the data locks may be limited a record, one or more fields of a record, or a plurality of records where the data to be displayed or modified exists in one of the same.Step 84 of theclient servlet process 60 generates and transmits a data lock request for the data on the requested page based on the granularity of thearchitecture 100 and the needed data. The data lock request (and data lock releases) are processed by themaster servlet process 110. In one exemplary embodiment, the master servlet generates a data lock request denial when a data lock request can not be granted. In this embodiment, theclient servlet process 60, requests the data needed for the page from theCARS 40, loads the requested page, and updates its local data lock database (step 92) unless it receives a data lock request denial (step 86). When a data lock request denial is received, the requested page is not loaded and the client is informed that the requested page is not currently available (step 88). - In another preferred embodiment, the
client servlet process 60 waits for data lock granted messages for each data lock needed for the requested page. When all the requested data locks are not granted within a predetermined time interval, the requested page is not loaded and the client is informed that the requested page is not currently available. It is noted that in either embodiment, a client data lock request may include a data ID (of the data to be locked) and a client ID. In an exemplary embodiment, client's have an associated priority where some clients have higher priority than other clients. Accordingly, a client may be granted data locks needed for a page, receive the data and load the page based on their priority. Subsequently the client may lose a data lock needed for their current page when a client/user having a higher priority requests one of the data locks currently owned by the client. - As
step 94, theclient server process 60 receives a data lock granted message. Theprocess 60 determines whether the data lock grant is related to a data lock the client currently owns.Step 96 ofprocess 60 may review its local data lock database/table to determine whether it currently owns the data lock in the grant message. The data lock granted message may also indicate the client assigned the data lock.Step 98 of process determines whether the active data lock has been assigned to another client (such as to a client having higher priority). When this condition is true (active data lock assigned to another user), the client may not have the most current data on its page or be able to update the data. The client servlet 60 (at step 102), then unloads the page, informs the client the page is no longer available and removes the data lock from its local data lock database/table. Theclient servlet process 60 may also remove any other data locks associated with the unloaded page (if any—step 104) from its local data lock database (step 108) and send data lock database release messages for these other data locks (step 106). - When a client logs out (at step62) the exemplary
client servlet process 60 performs a series of steps (64, 66, and 68) similar to when the client requests a new page. When the client has active locks (step 64), theclient servlet process 60 sends a data lock release message for each data lock (step 66) to the master servlet and clears its local data lock database (step 68). Thenclient servlet process 60 may then terminate. In another exemplary embodiment, theclient servlet process 60 may generate and transmit a client logout message to themaster servlet process 110 where the master servlet process then clears all locks associated with the client. - FIG. 5 is a flowchart of an exemplary master data locking
servlet process 110 in accordance with the present invention. In this exemplary embodiment, themaster servlet process 110 receives either data lock release or data lock request messages (step 112, step 118) and then processes the messages accordingly. When themaster servlet process 110 receives a data lock release message (at step 112), theprocess 110 clear the data lock from the master data lock database (step 114). In an exemplary embodiment, themaster servlet process 110 may generate a data lock released message to be transmitted to the client servlets. In this embodiment, the client servlets may include steps to notify an associated client that a page is now available that the client had previously unsuccessfully requested (due to the data lock indicated as now released in the data lock released message from the master servlet process 110). - When the
master servlet process 110 receives a data lock request message (step 118), theprocess 110 may first determine whether the data is currently locked by reviewing it master data lock database stored in thememory 51. The data lock request message may also include the requesting client's ID. In an exemplary embodiment, the request message may further include the requesting client's ID data locking priority. In another embodiment, themaster servlet process 110 may determine the client's data locking priority by retrieving it from a table/database stored in theCARS 40. Theprocess 110, may then determine whether the requestor's priority is greater than the priority of the current holder of the requested data lock (step 124). In addition, the master servlet process may determine whether the current data lock has expired (step 126). In one embodiment, a data lock expires after a predetermined time interval has elapsed since the data lock was granted. In particular, in one embodiment atstep 133, each lock is assigned a limited time lease that varies in length (time interval) as a function of the requester. For non-administrative requesters, the time lease may be 5 minutes and for administrative requesters, the time lease may be 60 minutes in one exemplary embodiment. - When the requested data lock is not present in the master data lock database, the requestor's priority is greater than the current data lock holder's priority, or the data lock has expired, the
master servlet process 110 may update its master data lock database to indicate that the requestor is now the current data lock holder (step 132) (and the time lease/interval for the data lock). In an exemplary embodiment, themaster servlet process 110 stores the current holder's ID, their priority, and the time of the grant in a record of the data lock database associated with the data lock. In another embodiment, the client priority is not stored but retrieved from theCARS 40 each time a comparison is needed. Then, the master servlet process sends a data lock granted message to each client servlet (step 134). - When a lock exists, is not expired, and the current holder's priority is greater than or equal to the requestor's priority, the
master servlet process 110 may generate and transmit a data lock request denied message to the requesting client servlet (at step 128). Thus, themaster servlet process 110 and plurality ofclient servlets 54, 56 enable clients to receive and update the latest data in theCARS 40. - While this invention has been described in terms of a best mode for achieving this invention's objectives, it will be appreciated by those skilled in the art that variations may be accomplished in view of these teachings without deviating from the spirit or scope of the present invention. For example, the present invention may be implemented using any combination of computer programming software, firmware or hardware (e.g., a software language, such as C++ or others may be used to implement the invention). As a preparatory step to practicing the invention or constructing an apparatus according to the invention, the computer programming code (whether software or firmware) according to the invention will typically be stored in one or more machine readable storage mediums such as fixed (hard) drives, diskettes, optical disks, magnetic tape, semiconductor memories such as ROMs, PROMs, etc., thereby making an article of manufacture in accordance with the invention. The article of manufacture containing the computer programming code is used by either executing the code directly from the storage device, by copying the code from the storage device into another storage device such as a hard disk, RAM, etc. or by transmitting the code on a network for remote execution.
Claims (78)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/278,959 US20040078360A1 (en) | 2002-10-22 | 2002-10-22 | Data locking system and method for medical system architecture |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/278,959 US20040078360A1 (en) | 2002-10-22 | 2002-10-22 | Data locking system and method for medical system architecture |
Publications (1)
Publication Number | Publication Date |
---|---|
US20040078360A1 true US20040078360A1 (en) | 2004-04-22 |
Family
ID=32093439
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/278,959 Abandoned US20040078360A1 (en) | 2002-10-22 | 2002-10-22 | Data locking system and method for medical system architecture |
Country Status (1)
Country | Link |
---|---|
US (1) | US20040078360A1 (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080027938A1 (en) * | 2005-01-27 | 2008-01-31 | Hartman Philip T | Customer Statistics Based on Database Lock Use |
US8200774B1 (en) * | 2004-09-30 | 2012-06-12 | Google Inc. | System and method for resource locking |
US10949397B1 (en) * | 2014-12-11 | 2021-03-16 | Amazon Technologies, Inc. | Data locking and state management on distributed storage systems |
US11567925B2 (en) | 2019-11-07 | 2023-01-31 | International Business Machines Corporation | Concurrent update management |
Citations (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5339427A (en) * | 1992-03-30 | 1994-08-16 | International Business Machines Corporation | Method and apparatus for distributed locking of shared data, employing a central coupling facility |
US5459862A (en) * | 1990-06-14 | 1995-10-17 | Sunquest Informaion Systems, Inc. | Network concurrency control for autonomous databases featuring independent lock release and lock ownership transfer |
US5551023A (en) * | 1994-08-05 | 1996-08-27 | Panasonic Technologies, Inc. | System of database concurrency control based on transaction types and prior access to a data set |
US5566319A (en) * | 1992-05-06 | 1996-10-15 | International Business Machines Corporation | System and method for controlling access to data shared by a plurality of processors using lock files |
US5832484A (en) * | 1996-07-02 | 1998-11-03 | Sybase, Inc. | Database system with methods for parallel lock management |
US5890153A (en) * | 1995-11-20 | 1999-03-30 | Hitachi, Ltd. | Database lock control method |
US5940828A (en) * | 1997-11-18 | 1999-08-17 | International Business Machines Corporation | Locking contention resolution for shared resources |
US6009427A (en) * | 1996-08-02 | 1999-12-28 | Hewlett Packard Company | Method and apparatus for distributed control of a database |
US6138118A (en) * | 1998-07-30 | 2000-10-24 | Telcordia Technologies, Inc. | Method and system for reconciling concurrent streams of transactions in a database |
US6253274B1 (en) * | 1998-08-28 | 2001-06-26 | International Business Machines Corporation | Apparatus for a high performance locking facility |
US6338063B1 (en) * | 1998-03-12 | 2002-01-08 | Microsoft Corporation | Method and computer program product for reducing lock contention in a multiple instruction execution stream processing environment |
US20020165929A1 (en) * | 2001-04-23 | 2002-11-07 | Mclaughlin Richard J. | Method and protocol for assuring synchronous access to critical facilitites in a multi-system cluster |
US20030004945A1 (en) * | 2001-06-28 | 2003-01-02 | International Business Machines Corporation | System and method for avoiding deadlock situations due to pseudo-deleted entries |
US6606626B1 (en) * | 1998-10-20 | 2003-08-12 | Sybase, Inc. | Database system with lock manager enhancement for improving concurrency |
US6681225B1 (en) * | 2000-05-31 | 2004-01-20 | International Business Machines Corporation | Method, system and program products for concurrent write access to a global data repository |
US6708195B1 (en) * | 1998-10-02 | 2004-03-16 | International Business Machines Corporation | Composite locking of objects in a database |
US6721747B2 (en) * | 2000-01-14 | 2004-04-13 | Saba Software, Inc. | Method and apparatus for an information server |
US6754656B1 (en) * | 1996-10-22 | 2004-06-22 | International Business Machines Corporation | System and method for selective partition locking |
US6772155B1 (en) * | 2001-04-04 | 2004-08-03 | Ncr Corporation | Looking data in a database system |
-
2002
- 2002-10-22 US US10/278,959 patent/US20040078360A1/en not_active Abandoned
Patent Citations (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5459862A (en) * | 1990-06-14 | 1995-10-17 | Sunquest Informaion Systems, Inc. | Network concurrency control for autonomous databases featuring independent lock release and lock ownership transfer |
US5339427A (en) * | 1992-03-30 | 1994-08-16 | International Business Machines Corporation | Method and apparatus for distributed locking of shared data, employing a central coupling facility |
US5566319A (en) * | 1992-05-06 | 1996-10-15 | International Business Machines Corporation | System and method for controlling access to data shared by a plurality of processors using lock files |
US5551023A (en) * | 1994-08-05 | 1996-08-27 | Panasonic Technologies, Inc. | System of database concurrency control based on transaction types and prior access to a data set |
US5890153A (en) * | 1995-11-20 | 1999-03-30 | Hitachi, Ltd. | Database lock control method |
US5832484A (en) * | 1996-07-02 | 1998-11-03 | Sybase, Inc. | Database system with methods for parallel lock management |
US6009427A (en) * | 1996-08-02 | 1999-12-28 | Hewlett Packard Company | Method and apparatus for distributed control of a database |
US6754656B1 (en) * | 1996-10-22 | 2004-06-22 | International Business Machines Corporation | System and method for selective partition locking |
US5940828A (en) * | 1997-11-18 | 1999-08-17 | International Business Machines Corporation | Locking contention resolution for shared resources |
US6338063B1 (en) * | 1998-03-12 | 2002-01-08 | Microsoft Corporation | Method and computer program product for reducing lock contention in a multiple instruction execution stream processing environment |
US6138118A (en) * | 1998-07-30 | 2000-10-24 | Telcordia Technologies, Inc. | Method and system for reconciling concurrent streams of transactions in a database |
US6253274B1 (en) * | 1998-08-28 | 2001-06-26 | International Business Machines Corporation | Apparatus for a high performance locking facility |
US6708195B1 (en) * | 1998-10-02 | 2004-03-16 | International Business Machines Corporation | Composite locking of objects in a database |
US6606626B1 (en) * | 1998-10-20 | 2003-08-12 | Sybase, Inc. | Database system with lock manager enhancement for improving concurrency |
US6721747B2 (en) * | 2000-01-14 | 2004-04-13 | Saba Software, Inc. | Method and apparatus for an information server |
US6681225B1 (en) * | 2000-05-31 | 2004-01-20 | International Business Machines Corporation | Method, system and program products for concurrent write access to a global data repository |
US6772155B1 (en) * | 2001-04-04 | 2004-08-03 | Ncr Corporation | Looking data in a database system |
US20020165929A1 (en) * | 2001-04-23 | 2002-11-07 | Mclaughlin Richard J. | Method and protocol for assuring synchronous access to critical facilitites in a multi-system cluster |
US20030004945A1 (en) * | 2001-06-28 | 2003-01-02 | International Business Machines Corporation | System and method for avoiding deadlock situations due to pseudo-deleted entries |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8200774B1 (en) * | 2004-09-30 | 2012-06-12 | Google Inc. | System and method for resource locking |
US8549104B2 (en) | 2004-09-30 | 2013-10-01 | Google Inc. | System and method for managing access to a resource |
US20080027938A1 (en) * | 2005-01-27 | 2008-01-31 | Hartman Philip T | Customer Statistics Based on Database Lock Use |
US8386449B2 (en) | 2005-01-27 | 2013-02-26 | International Business Machines Corporation | Customer statistics based on database lock use |
US9020997B2 (en) * | 2005-01-27 | 2015-04-28 | International Business Machines Corporation | Customer statistics based on database lock use |
US10949397B1 (en) * | 2014-12-11 | 2021-03-16 | Amazon Technologies, Inc. | Data locking and state management on distributed storage systems |
US11567925B2 (en) | 2019-11-07 | 2023-01-31 | International Business Machines Corporation | Concurrent update management |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8326865B2 (en) | Optimized method of locating complete aggregation of patient health records in a global domain | |
EP0838056B1 (en) | Method, apparatus and electronic storage medium for managing multiple server requests and collating responses | |
US7331058B1 (en) | Distributed data structures for authorization and access control for computing resources | |
US20060136926A1 (en) | Allocating locks in a distributed environment | |
US6941355B1 (en) | System for selecting and disseminating active policies to peer device and discarding policy that is not being requested | |
US7305454B2 (en) | Apparatus and methods for provisioning services | |
US7036149B2 (en) | Computer system | |
EP0665495A2 (en) | A distributed lock manager using a passive, state-full control-server | |
US8375424B2 (en) | Replicating selected secrets to local domain controllers | |
US20040225922A1 (en) | System and method for request routing | |
US9501513B2 (en) | Advanced concurrency management in enterprise service oriented architecture based integrated business processing of distributed application components | |
US7032067B2 (en) | Security token sharable data and synchronization cache | |
US8458725B2 (en) | Computer implemented method for removing an event registration within an event notification infrastructure | |
US10311248B1 (en) | Managing delegated access permissions | |
US20060136508A1 (en) | Techniques for providing locks for file operations in a database management system | |
US20090158047A1 (en) | High performance secure caching in the mid-tier | |
US6594702B1 (en) | Managing the size and accessibility of a name service | |
US20040078360A1 (en) | Data locking system and method for medical system architecture | |
JP2002324194A (en) | Method for managing access authority | |
US7089565B2 (en) | Software architecture for providing a connection handle association | |
US20050027693A1 (en) | Database query operations using storage networks | |
US7386615B1 (en) | Method and system for reliably de-allocating resources in a networked computing environment | |
US11323396B2 (en) | System and method for secure vehicle communication | |
US20040264241A1 (en) | Returning a data item to a requestor | |
EP1057105B1 (en) | Method and system for leasing storage |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: XIFIN, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:DEFAUW, RANDY;REEL/FRAME:013566/0921 Effective date: 20021015 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |
|
AS | Assignment |
Owner name: GENERAL ELECTRIC CAPITAL CORPORATION, AS AGENT, IL Free format text: SECURITY INTEREST;ASSIGNOR:XIFIN, INC.;REEL/FRAME:033442/0537 Effective date: 20140729 |
|
AS | Assignment |
Owner name: ANTARES CAPITAL LP, AS ADMINISTRATIVE AGENT, ILLIN Free format text: SECURITY INTEREST;ASSIGNOR:XIFIN, INC.;REEL/FRAME:037097/0929 Effective date: 20151120 Owner name: THE NORTHWESTERN MUTUAL LIFE INSURANCE COMPANY, AS Free format text: SECURITY INTEREST;ASSIGNOR:XIFIN, INC.;REEL/FRAME:037106/0136 Effective date: 20151120 |
|
AS | Assignment |
Owner name: XIFIN, INC., CALIFORNIA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:GENERAL ELECTRIC CAPITAL CORPORATION;REEL/FRAME:037934/0265 Effective date: 20151120 |
|
AS | Assignment |
Owner name: XIFIN, INC., CALIFORNIA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:ANTARES CAPITAL LP, AS ADMINISTRATIVE AGENT;REEL/FRAME:051738/0108 Effective date: 20200206 Owner name: XIFIN, INC., CALIFORNIA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:THE NORTHWESTERN MUTUAL LIFE INSURANCE COMPANY, AS AGENT;REEL/FRAME:051743/0032 Effective date: 20200206 |