Credential updates in an offline system

A method according to one embodiment includes receiving, by an access control device, access control data from a server, storing the received access control data to a no tour database stored in a memory of the access control device, determining a credential device has been presented to a credential reader associated with the access control device, and transmitting the stored access control data to the credential device in response to determining the credential device has been presented to the credential reader and prior to communication with the server.

BACKGROUND

Access control systems typically involve the use of credentials to manage the operation of an access control device (e.g., a lock device). Such credentials may be assigned to a particular user or device and are often physical in nature, forming at least a portion of, for example, a smartcard, proximity card, key fob, token device, or mobile device. Thus, credential systems generally require an interaction between the credential and a reader device (e.g., on or secured to the access control device) such that the reader device may read the credential and determine whether access should be granted. In particular, a user may be required to swipe, tap, or otherwise present the credential to the reader device.

Credential management systems are often communicatively coupled to an access control device to manage various configuration data including, for example, user access permissions associated with various credentials. In order to update a credential itself, however, the credential is often physically returned to the office of the facility's access control manager in order to reprogram the credential. In other circumstances, the access control system may include “hotspot readers” that have direct connections to a back-end server such as the credential management system. As such, the hotspot reader is able to update the information on the credential while it is being presented to the reader by acting as a “pull” by which the reader notifies the credential management system that the credential is currently being presented to the reader and “pulls” the relevant credential information from the system in real-time to update the credential. Further, the management system may act as a “decision at host” system by which the access control device transmits credential information to the management system for authentication and the management system makes the access control decision.

“No tour” functionality allows access control managers use a credential enrollment reader, for example, to store configuration data (e.g., new access credentials) for an access control device onto a credential, which are provided to the target access control device(s) upon presentation of the credential to that device for configuration. As such, “no tour” functionality allows authorized credentials to be added to, or revoked from, an access control database of an access control device without requiring the access control manager or technician to visit the access control device herself (e.g., with a mobile device).

SUMMARY

According to an embodiment, a method may include receiving, by an access control device, access control data from a server, storing, by the access control device, the received access control data to a no tour database stored in a memory of the access control device, determining, by the access control device, a credential device has been presented to a credential reader associated with the access control device, and transmitting, by the access control device, the stored access control data to the credential device in response to determining the credential device has been presented to the credential reader and prior to communication with the server.

In some embodiments, the access control device may communicate with only the credential device from presentation of the credential device until transmission of the stored access control data. In some embodiments, receiving the access control data from the server may include receiving an identifier of the credential device to which the access control data is to be stored, and storing the received access control data may include storing the received access control data to the no tour database in association with the identifier. In some embodiments, determining the credential device has been presented to the credential reader may include determining the identifier of the credential device presented to the credential reader, and the method may further include determining whether the no tour database includes access control data in association with the identifier of the credential device presented to the credential reader. In some embodiments, the method may further include retrieving the access control data stored in association with the identifier of the credential presented to the credential reader, and transmitting the stored access control data may include transmitting the retrieved access control data. In some embodiments, the method may include determining whether the credential device presented to the credential reader is permitted access to a passageway controlled by the access control device based on the identifier. Further, determining whether the credential device presented to the credential reader is permitted access to the passageway may include performing a binary search for the identifier in an access control database different from the no tour database.

In some embodiments, the access control device is a first access control device, and the access control data identifies access permissions of one or more credential devices to a passageway controlled by an offline access control device different from the first access control device. In some embodiments, the access control data may be received from the server without transmission of a request for the access control data by the access control device. In some embodiments, the access control device may include the credential reader, and transmitting the stored access control data to the credential device may include transmitting the stored access control data via the credential reader of the access control device. In some embodiments, transmitting the stored access control data to the credential device may include transmitting the stored access control data via a credential reader communicatively coupled to the access control device. In some embodiments, the access control device may include one of an electronic lock or a peripheral controller of a door.

According to another embodiment, a system may include a credential reader, a passive credential device having a first credential identifier and configured to be powered by radio frequency signals received from the credential reader, a first access control device comprising a memory having a no tour database stored thereon, wherein the no tour database stores access control data in association with a corresponding credential identifier, and a management server configured to transmit access control data to the first access control device. Further, the first access control device may be configured to store the received access control data to the no tour database in association with the first credential identifier, receive the first credential identifier of the passive credential device from the credential reader in response to a user's presentation of the passive credential device to the credential reader, search the no tour database for the stored access control data based on the received first credential identifier, and transmit the access control data stored in the no tour database and identified in the search to the passive credential device.

In some embodiments, the system may further include an offline access control device having no communication connection with the management server, and the offline access control device may be configured to receive the access control data stored on passive credential device in response to a user's presentation of the passive credential device to another credential reader associated with the offline access control device and perform an update on the offline access control device based on the received access control data. In some embodiments, the update to the offline access control device may include an update to an access control database of the offline access control device. In some embodiments, the management server may be further configured to transmit an instruction to the first access control device to remove the access control data from the no tour database of the first access control device in response to transmittal of the access control data to the passive credential device. In some embodiments, the passive credential device may include one of a proximity card configured to communicate over a low frequency carrier frequency of nominally 125 kHz, or a smartcard configured to communicate over a high frequency carrier frequency of nominally 13.56 MHz. In some embodiments, the first access control device may include the credential reader. In some embodiments, the first access control device may include a peripheral controller communicatively coupled to the credential reader.

According to yet another embodiment, an access control device may include at least one processor and at least one memory comprising a no tour database and a plurality of instructions stored thereon that, in response to execution by the at least one processor, causes the access control device to receive a credential identifier from a server, store the received credential identifier to the no tour database, determine a credential device corresponding with the credential identifier has been presented to a credential reader associated with the access control device, and retrieve access control data associated with another access control device from the server and transmit the retrieved access control data to the credential device before loss of a communication connection between the credential device and the credential reader and in response to a determination that the credential device has been presented to the credential reader.

Further embodiments, forms, features, and aspects of the present application shall become apparent from the description and figures provided herewith.

DETAILED DESCRIPTION

References in the specification to “one embodiment,” “an embodiment,” “an illustrative embodiment,” etc., indicate that the embodiment described may include a particular feature, structure, or characteristic, but every embodiment may or may not necessarily include that particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same embodiment. It should further be appreciated that although reference to a “preferred” component or feature may indicate the desirability of a particular component or feature with respect to an embodiment, the disclosure is not so limiting with respect to other embodiments, which may omit such a component or feature. Further, when a particular feature, structure, or characteristic is described in connection with an embodiment, it is submitted that it is within the knowledge of one skilled in the art to implement such feature, structure, or characteristic in connection with other embodiments whether or not explicitly described. Additionally, it should be appreciated that items included in a list in the form of “at least one of A, B, and C” can mean (A); (B); (C); (A and B); (B and C); (A and C); or (A, B, and C). Similarly, items listed in the form of “at least one of A, B, or C” can mean (A); (B); (C); (A and B); (B and C); (A and C); or (A, B, and C). Further, with respect to the claims, the use of words and phrases such as “a,” “an,” “at least one,” and/or “at least one portion” should not be interpreted so as to be limiting to only one such element unless specifically stated to the contrary, and the use of phrases such as “at least a portion” and/or “a portion” should be interpreted as encompassing both embodiments including only a portion of such element and embodiments including the entirety of such element unless specifically stated to the contrary.

Referring now toFIG. 1, in the illustrative embodiment, an access control system100for credential updates includes an access control device102, a management system104, and a credential106. Additionally, in some embodiments, the access control system100may include an enrollment reader device108. Further, the management system104may include a management server110, a gateway device,112, an access control panel114, and/or a mobile device116.

As described in detail below, in the illustrative embodiment, the access control system100may utilize a real-time “push” architecture with a “decision at door” access control decision. Accordingly, in some embodiments, the management system104may always have access to update a database (e.g., an access control database120) stored in the memory of the access control device102, but the access control device102does not inform the management system104when the credential106has been presented to a reader of the access control device102. When a credential is subsequently presented to the access control device102that received the update, the access control device102may store the update information on the access control device102(e.g., for subsequent transmittal to another access control device102in a “no tour” capacity). In other words, in some embodiments, the management system104can push an update to the access control device102so that if a credential106that requires an update is presented, the updated data can be quickly programmed to the credential106without the management system104requiring any direct or indirect real-time interaction with the credential106. Further, in the illustrative embodiment, while the management system104may query the access control device102to determine which users/credentials were granted access and/or retrieve other audit data, the access control decisions are performed by the access control device102.

It should be appreciated that an access control manager/technician may utilize an enrollment reader device108, which communicates with the management system104, to enroll a user and/or credential106into the access control system100. In doing so, the management system104may establish various access permissions for that particular user/credential. For example, the credential106may have access to some access control devices102but not others. Further, in an offline system, for example, the management system104may leverage “no tour” functionality by storing credential information and/or other configuration data to the credential106such that the user may present the credential106to an access control device102, which retrieves the data from the credential106and configured the access control device102accordingly (e.g., authorizing the credential106to access the access control device102and/or revoking access of previous credentials106to the access control device102). Similarly, in an offline “push” access control system100, the management system104may transmit access control data (e.g., credential information, configuration data, access control schedules, etc.) to an access control device102, which may transfer the access control data to a corresponding credential106upon presentation of the credential106to a reader of the access control device102(e.g., for subsequent “no tour” presentation to yet another access control device102).

By way of example, a building complex may have numerous access control devices102to manage access into various aspects of the building including the main entrance, gym, conference rooms, individual apartments, and/or other access-controlled areas. Some of those access control devices102may be online (e.g., the main entrance), whereas others may be offline (e.g., the gym). Suppose a user with access to the building complex purchased access to the gym, which has an offline access control device102with no communication connection with the management system104. Based on the techniques described herein, the management system104may transmit the relevant access control data to one or more access control devices102with which the user is known to interact such as the main entrance. When the user subsequently presents her credential106to enter the main entrance of the building, that access control device102stores the access control data received from the management system104to the credential106during the brief interaction during which the communication connection is established between the credential106and the access control device102. As such, the user is immediately able to go to the gym and, when presenting the credential106to the access control device102associated with the gym, that access control device102retrieves the access control data from the user's credential106and appropriately configures itself (e.g., to permit the user's access and/or otherwise modify the data stored thereon).

It should be appreciated that the access control device102, the management system104, the credential106, the enrollment reader device108, the management server110, the gateway device112, the access control panel114, and/or the mobile device116may be embodied as any type of device or collection of devices suitable for performing the functions described herein. More specifically, in the illustrative embodiment, the access control device102may be embodied as any type of device capable of controlling access through a passageway. For example, in various embodiments, the access control device102may be embodied as an electronic lock (e.g., a mortise lock, a cylindrical lock, or a tubular lock) or a peripheral controller of a passageway. Depending on the particular embodiment, the access control device102may include a credential reader or be electrically/communicatively coupled to a credential reader configured to communicative with credentials106. As shown inFIG. 1and described in further detail below, the access control device102includes an access control database120, a scratch pad database122, and a no tour database124. Although the databases120,122,124are described herein as separate databases, it should be appreciated that the associated content of those databases may form partitions of the same database in other embodiments. It should be further appreciated that each of the databases120,122,124, or the singular database as the case may be, may be embodied as any type of data structure(s) consistent with the functions described herein.

In the illustrative embodiment, one or more of the credentials106is embodied as a passive credential device having a credential identifier (e.g., a unique ID) stored therein and is “passive” in the sense that the credential device is configured to be powered by radio frequency (RF) signals received from a credential reader. In other words, such passive credentials do not have an independent power source but, instead, rely on power that is induced from RF signals transmitted from other devices in the vicinity of the credential. In particular, in some embodiments, one or more of the passive credentials may be embodied as a proximity card, which is configured to communicate over a low frequency carrier of nominally 125 kHz, and/or a smartcard, which is configured to communicate over a high frequency carrier frequency of nominally 13.56 MHz. However, it should be appreciated that, in other embodiments, each of the credentials106may be embodied as any type of passive or active credential device capable of performing the functions described herein.

As described herein, the management system104may be configured to manage credentials of the access control system100. For example, the management system104may be responsible for ensuring that the access control devices102have updated authorized credentials, whitelists, blacklists, device parameters, and/or other suitable data. Additionally, in some embodiments, the management system104may receive security data, audit data, raw sensor data, and/or other suitable data from the access control devices102for management of the access control system100. In some embodiments, one or more of the devices of the management system104may be embodied as an online server or a cloud-based server. Further, in some embodiments, the management system104may communicate with multiple access control devices102at a single site (e.g., a particular building) and/or across multiple sites. That is, in such embodiments, the management system104may be configured to receive data from access control devices102distributed across a single building, multiple buildings on a single campus, or across multiple locations.

It should be appreciated that the management system104may include one or more devices depending on the particular embodiment of the access control system100. For example, as shown inFIG. 1, the management system104may include a management server110, a gateway device112, an access control panel114, and/or a mobile device116depending on the particular embodiment. The functions of the management system104described herein may be performed by one or more of those devices in various embodiments. For example, in some embodiments, the management server110may perform all of the functions of the management system104described herein. Further, in some embodiments, the gateway device112may be communicatively coupled to the access control device102such that the other devices of the management system104(e.g., the management server110, the access control panel114, and/or the mobile device116) may communicate with the access control device102via the gateway device112.

In some embodiments, the access control device102may communicate with the management server110over a Wi-Fi connection and/or with the mobile device116over a Bluetooth connection. Additionally, the access control device102may communicate with the management server110and/or the access control panel114via the gateway device112. As such, in the illustrative embodiment, the access control device102may communicate with the gateway device112over a Wi-Fi connection and/or a Bluetooth connection, and the gateway device112may, in turn, forward the communicated data to the relevant management server110and/or access control panel114. In particular, in some embodiments, the gateway device112may communicate with the access control panel114over a serial communication link (e.g., using RS-485 standard communication), and the gateway device112may communicate with the management server110over a Wi-Fi connection, an Ethernet connection, or another wired/wireless communication connection. As such, it should be appreciated that the access control device102may communicate with the management server110via an online mode with a persistent real-time communication connection or via an offline mode (e.g., periodically or in response to an appropriate condition) depending on the particular embodiment (e.g., depending on whether the access control device102is offline). As indicated above, in other embodiments, it should be appreciated that the access control device102may communicate with the devices of the management system104via one or more other suitable communication protocols.

It should be appreciated that each of the access control device102, the management system104, the enrollment reader device108, the management server110, the gateway device112, the access control panel114, and/or the mobile device116may be embodied as one or more computing devices similar to the computing device200described below in reference toFIG. 2. For example, in the illustrative embodiment, each of the access control device102, the management system104, the enrollment reader device108, the management server110, the gateway device112, the access control panel114, and the mobile device116includes a processing device202and a memory206having stored thereon operating logic208for execution by the processing device202for operation of the corresponding device.

It should be further appreciated that, although the management system104and the management server110are described herein as one or more computing devices outside of a cloud computing environment, in other embodiments, the system104and/or server110may be embodied as a cloud-based device or collection of devices. Further, in cloud-based embodiments, the system104and/or server110may be embodied as a “serverless” or server-ambiguous computing solution, for example, that executes a plurality of instructions on-demand, contains logic to execute instructions only when prompted by a particular activity/trigger, and does not consume computing resources when not in use. That is, the system104and/or server110may be embodied as a virtual computing environment residing “on” a computing system (e.g., a distributed network of devices) in which various virtual functions (e.g., Lamba functions, Azure functions, Google cloud functions, and/or other suitable virtual functions) may be executed corresponding with the functions of the system104and/or server110described herein. For example, when an event occurs (e.g., data is transferred to the system104and/or server110for handling), the virtual computing environment may be communicated with (e.g., via a request to an API of the virtual computing environment), whereby the API may route the request to the correct virtual function (e.g., a particular server-ambiguous computing resource) based on a set of rules. As such, when a request for the transmission of updated access control data is made by a user (e.g., via an appropriate user interface to the system104or server110), the appropriate virtual function(s) may be executed to perform the actions before eliminating the instance of the virtual function(s).

Although only one access control device102, one management system104, one credential106, one enrollment reader device108, one management server110, one gateway device112, one access control panel114, and one mobile device116are shown in the illustrative embodiment ofFIG. 1, the system100may include multiple access control devices102, management systems104, credentials106, enrollment reader devices108, management servers110, gateway devices112, access control panels114, and/or mobile devices116in other embodiments. For example, as indicated above, the server110may be embodied as multiple servers in a cloud computing environment in some embodiments. Further, each user may be associated with one or more separate credentials106in some embodiments.

Referring now toFIG. 2, a simplified block diagram of at least one embodiment of a computing device200is shown. The illustrative computing device200depicts at least one embodiment of an access control device102, management system104, enrollment reader device108, management server110, gateway device112, access control panel114, and/or mobile device116illustrated inFIG. 1. Depending on the particular embodiment, computing device200may be embodied as a reader device, access control device, server, desktop computer, laptop computer, tablet computer, notebook, netbook, Ultrabook™, mobile computing device, cellular phone, smartphone, wearable computing device, personal digital assistant, Internet of Things (IoT) device, camera device, control panel, processing system, router, gateway, and/or any other computing, processing, and/or communication device capable of performing the functions described herein.

The computing device200includes a processing device202that executes algorithms and/or processes data in accordance with operating logic208, an input/output device204that enables communication between the computing device200and one or more external devices210, and memory206which stores, for example, data received from the external device210via the input/output device204.

The input/output device204allows the computing device200to communicate with the external device210. For example, the input/output device204may include a transceiver, a network adapter, a network card, an interface, one or more communication ports (e.g., a USB port, serial port, parallel port, an analog port, a digital port, VGA, DVI, HDMI, FireWire, CAT 5, or any other type of communication port or interface), and/or other communication circuitry. Communication circuitry of the computing device200may be configured to use any one or more communication technologies (e.g., wireless or wired communications) and associated protocols (e.g., Ethernet, Bluetooth®, Wi-Fi®, WiMAX, etc.) to effect such communication depending on the particular computing device200. The input/output device204may include hardware, software, and/or firmware suitable for performing the techniques described herein.

The external device210may be any type of device that allows data to be inputted or outputted from the computing device200. For example, in various embodiments, the external device210may be embodied as the access control device102, the management system104, the credential106, the enrollment reader device108, the management server110, the gateway device112, the access control panel114, and/or the mobile device116. Further, in some embodiments, the external device210may be embodied as another computing device, switch, diagnostic tool, controller, printer, display, alarm, peripheral device (e.g., keyboard, mouse, touch screen display, etc.), and/or any other computing, processing, and/or communication device capable of performing the functions described herein. Furthermore, in some embodiments, it should be appreciated that the external device210may be integrated into the computing device200.

The processing device202may be embodied as any type of processor(s) capable of performing the functions described herein. In particular, the processing device202may be embodied as one or more single or multi-core processors, microcontrollers, or other processor or processing/controlling circuits. For example, in some embodiments, the processing device202may include or be embodied as an arithmetic logic unit (ALU), central processing unit (CPU), digital signal processor (DSP), and/or another suitable processor(s). The processing device202may be a programmable type, a dedicated hardwired state machine, or a combination thereof. Processing devices202with multiple processing units may utilize distributed, pipelined, and/or parallel processing in various embodiments. Further, the processing device202may be dedicated to performance of just the operations described herein, or may be utilized in one or more additional applications. In the illustrative embodiment, the processing device202is programmable and executes algorithms and/or processes data in accordance with operating logic208as defined by programming instructions (such as software or firmware) stored in memory206. Additionally or alternatively, the operating logic208for processing device202may be at least partially defined by hardwired logic or other hardware. Further, the processing device202may include one or more components of any type suitable to process the signals received from input/output device204or from other components or devices and to provide desired output signals. Such components may include digital circuitry, analog circuitry, or a combination thereof.

The memory206may be of one or more types of non-transitory computer-readable media, such as a solid-state memory, electromagnetic memory, optical memory, or a combination thereof. Furthermore, the memory206may be volatile and/or nonvolatile and, in some embodiments, some or all of the memory206may be of a portable type, such as a disk, tape, memory stick, cartridge, and/or other suitable portable memory. In operation, the memory206may store various data and software used during operation of the computing device200such as operating systems, applications, programs, libraries, and drivers. It should be appreciated that the memory206may store data that is manipulated by the operating logic208of processing device202, such as, for example, data representative of signals received from and/or sent to the input/output device204in addition to or in lieu of storing programming instructions defining operating logic208. As shown inFIG. 2, the memory206may be included with the processing device202and/or coupled to the processing device202depending on the particular embodiment. For example, in some embodiments, the processing device202, the memory206, and/or other components of the computing device200may form a portion of a system-on-a-chip (SoC) and be incorporated on a single integrated circuit chip.

In some embodiments, various components of the computing device200(e.g., the processing device202and the memory206) may be communicatively coupled via an input/output subsystem, which may be embodied as circuitry and/or components to facilitate input/output operations with the processing device202, the memory206, and other components of the computing device200. For example, the input/output subsystem may be embodied as, or otherwise include, memory controller hubs, input/output control hubs, firmware devices, communication links (i.e., point-to-point links, bus links, wires, cables, light guides, printed circuit board traces, etc.) and/or other components and subsystems to facilitate the input/output operations.

The computing device200may include other or additional components, such as those commonly found in a typical computing device (e.g., various input/output devices and/or other components), in other embodiments. It should be further appreciated that one or more of the components of the computing device200described herein may be distributed across multiple computing devices. In other words, the techniques described herein may be employed by a computing system that includes one or more computing devices. Additionally, although only a single processing device202, I/O device204, and memory206are illustratively shown inFIG. 2, it should be appreciated that a particular computing device200may include multiple processing devices202, I/O devices204, and/or memories206in other embodiments. Further, in some embodiments, more than one external device210may be in communication with the computing device200.

Referring now toFIGS. 3-4, in use, the system100or, more specifically, the access control device102may execute a method300for performing credential updates. It should be appreciated that the particular blocks of the method300are illustrated by way of example, and such blocks may be combined or divided, added or removed, and/or reordered in whole or in part depending on the particular embodiment, unless stated to the contrary. The illustrative method300begins with block302ofFIG. 3in which the access control device102receives access control data from the management system104. It should be appreciated that the access control data may include credential information, configuration data, updated authorized credentials106for one or more access control devices102, access control schedules, whitelists, blacklists, device parameters, and/or other suitable access control data. As described herein, in some embodiments, the access control data is data intended to be transmitted to an offline access control device102having no communication connection with the management system104for configuration thereof. As such, in some embodiments, the access control data may be transmitted to one or more credentials106for a subsequent “no tour” transmission to an access control device102(e.g., an offline access control device102). In some embodiments, the access control data may include an identifier of the credential(s)106to which the access control data is to be stored. Additionally, the access control data may identify the access permissions of one or more users/credentials to a passageway controlled by the offline access control device102for which the access control data is intended.

In block304, the access control device102determines the database destination for the access control data and, in block306, stores the access control data in the determined database. In particular, in the illustrative embodiment, the access control device102determines whether to store the access control data in the access control database120, the scratch pad database122, or the no tour database124. It should be appreciated that the access control device102may determine where to store the access control data based on the data itself, an indication of the appropriate database, and/or other factors. For example, if the access control data includes a full database update, the access control device102may overwrite the access control database120. In some embodiments, it should be appreciated that the access control database120is sorted to permit a fast and efficient binary search of the database. However, if the access control data indicates that a particular user/credential is to be added or removed (or its access permissions modified), the access control device102may store the access control data to the scratch pad database122, which may be unsorted and searched using, for example, a linear search. In yet another embodiment, if the access control data indicates that it is “no tour” data destined for a credential and/or other access control device102, the access control device102may store the access control data to the no tour database124. In particular, the access control data stored to the no tour database124may be stored in association with one or more credential identifiers of the credential(s)106to which the access control data is to be subsequently transferred.

In block308, the access control device102determines whether a credential106has been presented to and detected by a credential reader associated with the access control device102. As discussed above, in some embodiments, the access control device102may include the credential reader (e.g., in various embodiments in which the access control device102is an electronic lock), whereas in other embodiments, the access control device102may be separate from but electrically and/or communicatively coupled to the credential reader (e.g., in embodiments in which the access control device102is a peripheral controller of a door and/or the credential reader is a standalone reader). If the credential106has been detected, the method300advances to block310in which the access control device102identifies the credential106that has been detected. In particular, in some embodiments, the access control device102may determine one or more identifiers (e.g., unique identifiers) of the credential106, for example, based on data retrieved from the credential106via the credential reader.

In block312, the access control device102searches the no tour database124based on the identified credential106for any access control data to be transmitted to that credential106(e.g., based on the credential identifier). In other words, the access control device102determines whether any access control data is stored in association with the credential identifier in the no tour database124. In some embodiments, it should be appreciated that the no tour database124is sorted (e.g., by the credential identifiers) such that a binary search and/or other similarly efficient search (e.g., a search that runs at worst in logarithmic time) may be performed on the no tour database124during the query.

If the access control device102determines, in block314ofFIG. 4, that access control data associated with the credential106is stored in the no tour database124, the method300advances to block316in which the access control device102stores the corresponding access control data from the no tour database124to the credential106. More specifically, the access control device102retrieves the access control data stored in association with the identifier of the credential106presented to the credential reader and transmits/stores that access control data to the credential106(e.g., for subsequent transmittal to another access control device102in a “no tour” capacity). In the illustrative embodiment, it should be appreciated that the access control system100is embodied as a “push” system such that the access control device102does not prompt the management system104when the credential106is detected. Instead, in the illustrative embodiment, the access control device102functions in a “decision at door” capacity. Accordingly, it should be appreciated that the access control data may be retrieved from the memory of the access control device102and stored to the credential106without any interaction between the access control device102and the management system104. In some embodiments, the access control device102communicates with only the credential106from the time the credential106is presented to the credential reader until the time the access control data is transmitted to the credential106.

Regardless of whether the access control device102identified any access control data in the no tour database124for transmittal to the credential106presented to the credential reader associated with the access control device102, the access control device102proceeds to determine whether the user associated with the credential106is authorized to access the passageway controlled by the access control device102. Accordingly, the method300advances to block318in which the access control device120searches the access control database120based on the identified credential106(e.g., based on the credential identifier) to determine whether the credential106or, more specifically, the credential identifier is included in the access control database120. As described above, in some embodiments, the access control database120is sorted (e.g., by the credential identifiers) such that a binary search or similarly efficient search may be performed on the access control database120during the query.

If the access control device102determines, in block320, that the credential106(or the credential identifier) is included in the access control database120, the method300advances to block322in which the access control device102determines whether the access control data for the credential106has been modified relative to the access control database120(e.g., subsequent to the last full update of the access control database120). For example, in some embodiments, the access control database120indicates whether such a modification has occurred. More specifically, the access control database120may include a modification field (e.g., a bit, byte, flag, or other suitable identifier) for each credential entry that indicates whether a modification has occurred. Accordingly, in such embodiments, in block324, the access control device102may process the data stored in the modification field. However, it should be appreciated that the access control database120may otherwise identify a modification in other embodiments. It should be appreciated that the access control database120may identify access control permissions for each of the credentials106authorized to access the passageway. Further, in some embodiments, the access control database120may include one or more blacklists or other data associated with access control.

If the access control device102determines, in block326, that the access control data for the presented credential106has been modified or the access control device102determines, in block320, that the credential106(or credential identifier) is not included in the access control database120at all, the method300advances to block328in which the access control device102retrieves any access control data associated with the credential106from the scratch pad database122. In some embodiments, the scratch pad database122may be unsorted and/or the access control device102may search the scratch pad database122using a linear search or other similarly efficient search algorithm (e.g., a search that runs in at worst linear time). As described above, the scratch pad database122may be modified, for example, when a user/credential is granted access permissions to the access control device102(i.e., “added” to the access control device102), revoked access permissions to the access control device102(i.e., “removed” from the access control device102), and/or modified access permissions (e.g., changing the conditions under which access is permitted).

In some embodiments, when access control data associated with a credential106already identified in the access control database120is modified in the scratch pad database122, the access control database120(e.g., the modification field) may be updated to provide notice of the modification. Accordingly, the scratch pad database122permits changes to the access control data associated with the access control device102without requiring a full database update of the access control database120. As such, the access control device102searches the scratch pad database122to determine whether the credential106is newly added (e.g., if the credential106was not identified in the access control database120) or whether the access permissions associated with the credential106have been revoked or otherwise modified (e.g., if the credential106was identified in the access control database120as having modified access control data). In some embodiments, it should be appreciated that the scratch pad database122may be omitted such that the access control device102relies exclusively on the access control database120with respect to access control decisions.

In block330, the access control device102makes an access control decision based on the credential106and the access control data retrieved from the access control database120and/or the scratch pad database122. In particular, the access control device102determines whether the user/bearer of the credential106presented to the credential reader associated with the access control device102is permitted access to the passageway controlled by the access control device102based on the credential identifier. If so, the access control device102may transmit one or more signals to control an electronic lock and/or other suitable access control mechanism(s). Otherwise, the access control device102may deny the user access to the passageway.

Although the blocks302-330are described in a relatively serial manner, it should be appreciated that various blocks of the method300may be performed in parallel in some embodiments.

Referring now toFIGS. 5-7, in use, the access control system100may execute the methods500,600,700, which depict various example data flows of the access control system100. It should be appreciated that, in some embodiments, execution of the methods500,600,700may include execution of the method300ofFIGS. 3-4. However, one or more the specific actions described above in reference toFIGS. 3-4may be omitted from the description of the methods500,600,700for clarity of the description. Similarly, the description of the methods500,600,700themselves may omit one or more features not previously described in order to emphasize various aspects of the data flows of the access control system100. As such, it should be appreciated that the particular data flows of the methods500,600,700are illustrated by way of example, and such data flows may be combined or divided, added or removed, and/or reordered in whole or in part depending on the particular embodiment, unless stated to the contrary.

Referring toFIG. 5, the illustrative method500begins with data flow502in which the management system104transmits a full database update to the access control device102a. In data flow504, the access control device102aprocesses the database update request/instruction and determines that the full database update should be written to the access control database120of the access control device102a(e.g., overwriting the entirety or a portion of the previous access control database stored thereon, if any). Subsequently, in data flow506, a credential106is presented by a user to a credential reader associated with the access control device102a. In response to the presentation of the credential106, in data flow508, the access control device102asearches the access control database120for access control data associated with the credential106(e.g., based on a credential identifier) and, in data flow510, the access control device102adetermines whether to grant or deny the user bearing the credential106access to a passageway controlled by the access control device102abased on the retrieved access control data. In data flow512, the access control device102amay transmit audit data (e.g., credential granted/denied access and/or other suitable data) to the management system104. In some embodiments, the access control device102amay transmit the audit data, for example, when the access control device120asubsequently establishes a communication connection with the management system104at a predefined time, or when the management system104establishes a communication connection with the access control device102ato “push” additional data to the access control device102a.

As described above, in some embodiments, the access control device102amay also search the scratch pad database122and/or the no tour database124. However, those features have not been described in reference toFIG. 5for clarity of the description. Further, although the data flows502-512are described in a relatively serial manner, it should be appreciated that various data flows of the method500may be performed in parallel in some embodiments.

Referring toFIG. 6, the illustrative method600begins with data flow602in which the management system104transmits a modification to the access control data stored by the access control device102a. For example, as described above, the modification may include authorizing a new user/credential to access the access control device102a, revoking existing access permissions of a user/credential, and/or modifying existing access permissions. In data flow604, the access control device102aprocesses the modification update request/instruction and determines that it should be written to the scratch pad database122. Subsequently, in data flow606, a credential106is presented by a user to a credential reader associated with the access control device102a. In response to the presentation of the credential106, in data flow608, the access control device102asearches the scratch pad database122for access control data associated with the credential106(e.g., based on a credential identifier) and, in data flow610, the access control device102adetermines whether to grant or deny the user bearing the credential106access to a passageway controlled by the access control device102abased on the retrieved access control data. As described above, in some embodiments, the access control device102amay first search the access control database120to determine whether access control data for the credential106is identified and, if not, or if the access control database120indicates that a modification to the access control data has occurred, the access control device102amay search the scratch pad database122as described herein. In data flow612, the access control device102amay transmit audit data to the management system104. As described above, in some embodiments, the access control device102amay transmit the audit data, for example, when the access control device102asubsequently establishes a communication connection with the management system104at a predefined time, or when the management system104establishes a communication connection with the access control device102ato “push” additional data to the access control device102a.

As described above, in some embodiments, the access control database102amay also search the no tour database124. However, those features have not been described in reference toFIG. 6for clarity of the description. Although the data flows602-612are described in a relatively serial manner, it should be appreciated that various data flows of the method600may be performed in parallel in some embodiments.

Referring toFIG. 7, the illustrative method700begins with data flow702in which the management system104transmits “no tour” data to be added to the no tour database124of the access control device102a. As described above, in the illustrative embodiment, the “no tour” data is access control data that is intended to be transmitted to a credential106for subsequent transmission to another access control device102b, such as an offline access control device. In data flow704, the access control device102aprocesses the “no tour” data update request/instruction and determines that it should be written to the no tour database124. Subsequently, in data flow706, a credential106is presented by a user to a credential reader associated with the access control device102a. In response to the presentation of the credential106, in data flow608, the access control device102asearches the no tour database124to determine whether any “no tour” access control data is stored therein for transmission to the credential106. If so, in data flow510, the access control device102aretrieves the “no tour” data and stores it to the credential106. In other embodiments, it should be appreciated that the no tour database124may include a list of credential identifiers such that, when a credential106corresponding with one of those credential identifiers is presented to a credential reader associated with the access control device102a, the access control device102aestablishes a communication connection with the management system104to receive data for transmission to the credential106. In yet other embodiments, the access control device102may be configured (e.g., via a configuration flag) to establish such a communication connection regardless of the credential106presented.

In data flow512, the access control device102asearches the access control database120for access control data associated with the credential106(e.g., based on a credential identifier) and, in data flow714, the access control device102adetermines whether to grant or deny the user bearing the credential106access to a passageway controlled by the access control device102abased on the retrieved access control data. In data flow716, the access control device102amay transmit audit data (e.g., credential granted/denied access and/or other suitable data) to the management system104as described above. Further, in data flow718, the management system104may transmit an instruction to the access control device102afor the access control device102ato remove the retrieved “no tour” data from the no tour database124, which the access control device102aexecutes. Additionally, in some embodiments, it should be appreciated that the management system104may have transmitted the same “no tour” data to multiple access control devices102; accordingly, in such embodiments, the management system104may transmit the instructions to remove the “no tour” data from each of the corresponding access control devices102. In data flow720, the credential106may be subsequently presented to the access control device102bfor which the “no tour” data is intended and, in data flow722, the access control device102bmay update one or more of its databases and/or other configuration data based on the “no tour” data. For example, in some embodiments, the “no tour” data may include an update to an access control database of the access control device102bthat defines various access control permissions of users/credentials to a passageway controlled by the access control device102b. In data flow724, the access control device102bdetermines whether to grant or deny the user bearing the credential106access to the passageway controlled by the access control device102b(e.g., based on access control data previously stored in an access control database of the access control device102band/or the “no tour” data transmitted to the access control device102b).

As described above, in some embodiments, the access control device102aand/or the access control device102bmay also search corresponding scratch pad databases122. However, those features have not been described in reference toFIG. 7for clarity of the description. Although the data flows702-724are described in a relatively serial manner, it should be appreciated that various data flows of the method700may be performed in parallel in some embodiments.