Individuals and organizations frequently seek to control how others access services under their control. For example, a parent may wish to enforce parental controls on televisions and smart phones in their household in order to control their child's access to various digital media. Similarly, an organization may wish to limit websites that its employees can access during work hours. In some cases, an individual or organization may use different access-control policies for certain people. For example, a parent can input a passcode to bypass parental controls so that they can watch movies that would otherwise be blocked. As an additional example, a project manager may have access to files and/or servers that other employees may be restricted from accessing.
Traditional access-control techniques suffer from a number of drawbacks. for example, existing access-control solutions may not permit a device to easily join a wireless network without sharing the Wi-Fi credentials of the network with the new device. For example, if a guest of a user wishes to gain access to a home wireless network, the user must provide the Wi-Fi credentials to the guest to enable the guest to add their device to the home wireless network. If the user does not want the user to have subsequent access to the home wireless network, they may need to change the Wi-Fi credentials and update all the devices that utilized the previous credentials.
In another example, the user may utilize a Wi-Fi protected setup (WPS), which is a network security standard, to create a secure wireless network. When the WPS is enabled, a router of the wireless network may allow any device in range to connect to the router within a specific time window. However, during the time window, the wireless network may be available to any device within range and an unknown or hostile device may easily join the wireless network. Accordingly, the instant disclosure identifies and addresses a need for improved systems and methods for managing location-based access control lists.
As will be described in greater detail below, the instant disclosure describes various systems and methods for managing location-based access control lists.
In one example, a method for managing location-based access control lists may include (i) identifying a collection of devices that are located within a physical space and that include monitoring devices that are capable of monitoring user activity within the physical space, (ii) determining, based on user activity data received from the collection of devices, that an authorized user is attempting to modify, on a location-based access control list for a wireless network, the access rights of a target computing device near a location indicated by the authorized user in the physical space, (iii) detecting, based on the user activity data, the target computing device near the location indicated by the authorized user, and (iv) in response to detecting the target computing device indicated by the authorized user, modifying, on the location-based access control list, the access rights of the target computing device.
In some examples, the user activity data may include a photograph or video recording of the authorized user. Detecting the target computing device near the location indicated by the authorized user may include analyzing the photograph or the video recording, identifying the location in the physical space based on the analyzed photograph or video recording, and detecting the target computing device near the location indicated by the authorized user. The analyzed photograph or video recording may include data indicating the authorized user pointing to the target computing device with a hand or a pointing device.
In some examples, the user activity may include an audio recording of the authorized user. Detecting the target computing device near the location indicated by the authorized user based on the user activity data may include analyzing the audio recording, identifying the location in the physical space based on the analyzed audio recording, and detecting the target computing device near the location indicated by the authorized user.
In some examples, modifying the location-based access control list may include at least one of adding the target computing device to the location-based access control list or removing the target computing device from the location-based access control list. In some examples, the location-based access control list may be enforced based on one or more scheduling policies. In some examples, detecting the target computing device near the location in the physical space may include detecting a location associated with signals received from the target computing device using triangulation and detecting the target computing device by comparing the location of the signals to the location indicated by the authorized user in the physical space.
In one embodiment, a system for managing location-based access control lists may include at least one physical processor and physical memory that includes computer-executable instructions that, when executed by the physical processor, cause the physical processor to (i) identify a collection of devices that are located within a physical space and that include monitoring devices that are capable of monitoring user activity within the physical space, (ii) determine, based on user activity data received from the collection of devices, that an authorized user is attempting to modify, on a location-based access control list for a wireless network, the access rights of a target computing device near a location indicated by the authorized user in the physical space, (iii) detect, based on the user activity data, the target computing device near the location indicated by the authorized user, and (iv) in response to detecting the target computing device indicated by the authorized user, modify, on the location-based access control list, the access rights of the target computing device.
In some examples, the above-described method may be encoded as computer-readable instructions on a non-transitory computer-readable medium. For example, a computer-readable medium may include one or more computer-executable instructions that, when executed by at least one processor of a computing device, may cause the computing device to (i) identify a collection of devices that are located within a physical space and that include monitoring devices that are capable of monitoring user activity within the physical space, (ii) determine, based on user activity data received from the collection of devices, that an authorized user is attempting to modify, on a location-based access control list for a wireless network, the access rights of a target computing device near a location indicated by the authorized user in the physical space, (iii) detect, based on the user activity data, the target computing device near the location indicated by the authorized user, and (iv) in response to detecting the target computing device indicated by the authorized user, modify, on the location-based access control list, the access rights of the target computing device.
Features from any of the embodiments described herein may be used in combination with one another in accordance with the general principles described herein. These and other embodiments, features, and advantages will be more fully understood upon reading the following detailed description in conjunction with the accompanying drawings and claims.
The accompanying drawings illustrate a number of example embodiments and are a part of the specification. Together with the following description, these drawings demonstrate and explain various principles of the instant disclosure.
Throughout the drawings, identical reference characters and descriptions indicate similar, but not necessarily identical, elements. While the example embodiments described herein are susceptible to various modifications and alternative forms, specific embodiments have been shown by way of example in the drawings and will be described in detail herein. However, the example embodiments described herein are not intended to be limited to the particular forms disclosed. Rather, the instant disclosure covers all modifications, equivalents, and alternatives falling within the scope of the appended claims.
The present disclosure is generally directed to systems and methods for managing location-based access control lists. As will be described in greater detail below, location-based access control lists may be modified by monitoring a physical space using a constellation of additional devices. These additional devices may perform a variety of monitoring functions, such as identifying and authenticating an authorized user to the system and/or capturing user activity through videos, photographs, or audio recordings. The systems and methods described herein may analyze the user activity to identify a location indicated by the authorized user and detect a device near the location. Upon detecting the device near the location, the location-based access control list may be modified to permit the device to join the wireless network.
In an illustrative example, Alice and Bob may be sitting in the living room of Bob's home. Alice may want her tablet to be connected to the home wireless network in Bob's home so that she can watch a movie. The systems and methods described herein may allow Bob to add Alice's tablet to the home wireless network by indicating the position of the tablet. The living room may have multiple devices, such as a smart television, a laptop, a smartphone, and a smart speaker. Bob may indicate that he wishes to add a device to wireless network by vocalizing a command and/or performing a gesture and then indicating the location of the device. One or more of the devices in the living room may capture the command or gesture and then capture Bob's activity, such as pointing his finger or a laser pointer towards the tablet. The systems and methods described herein may identify a location indicated by Bob, detect tablet near the location indicated by Bob, and then modify the location-based access control list to enable Alice's tablet to join the wireless network without having to share the credentials to join the network and ensuring that the network is secure from unauthorized access by other devices.
The following will provide, with reference to
In certain embodiments, one or more of the modules 102 in
As illustrated in
As illustrated in
As illustrated in
The example system 100 in
The server 202 generally represents any type or form of computing device that is capable of reading computer-executable instructions. In one example, the server 202 may represent a server capable of managing location-based access control lists 122. Additional examples of the server 202 include, without limitation, security servers, application servers, web servers, storage servers, and/or database servers configured to run certain software applications and/or provide various security, web, storage, and/or database services. Although illustrated as a single entity in
The computing device 206 generally represents any type or form of computing device capable of reading computer-executable instructions. For example, the computing device 206 may include an endpoint device (e.g., a mobile computing device) running client-side security software. In some examples, the computing device 206 may include an authentication module 212 to identify and authenticate the authorized user 214. Additional examples of the computing device 206 include, without limitation, laptops, tablets, desktops, servers, cellular phones, Personal Digital Assistants (PDAs), multimedia players, embedded systems, wearable devices (e.g., smart watches, smart glasses, etc.), smart vehicles, smart packaging (e.g., active or intelligent packaging), gaming consoles, so-called Internet-of-Things devices (e.g., smart appliances, etc.), variations or combinations of one or more of the same, and/or any other suitable computing device.
The target computing device 208 generally represents any type or form of computing device capable of reading computer-executable instructions. For example, the target computing device 208 may include an endpoint device (e.g., a mobile computing device) running client-side security software. Additional examples of the target computing device 208 include, without limitation, laptops, tablets, desktops, servers, cellular phones, Personal Digital Assistants (PDAs), multimedia players, embedded systems, wearable devices (e.g., smart watches, smart glasses, etc.), smart vehicles, smart packaging (e.g., active or intelligent packaging), gaming consoles, so-called Internet-of-Things devices (e.g., smart appliances, etc.), variations or combinations of one or more of the same, and/or any other suitable computing device.
The monitoring device 210 generally represents any type or form of computing device capable of reading computer-executable instructions. For example, the monitoring device 210 may include an endpoint device (e.g., a mobile computing device) running client-side security software capable of monitoring a physical space to identify and authenticate an authorized user 214 as well as capture user activity data 216. Additional examples of the monitoring device 210 include, without limitation, laptops, tablets, desktops, servers, cellular phones, Personal Digital Assistants (PDAs), multimedia players, embedded systems, wearable devices (e.g., smart watches, smart glasses, etc.), smart vehicles, smart packaging (e.g., active or intelligent packaging), gaming consoles, so-called Internet-of-Things devices (e.g., smart appliances, etc.), variations or combinations of one or more of the same, and/or any other suitable computing device.
The network 204 generally represents any medium or architecture capable of facilitating communication or data transfer. In one example, the network 204 may facilitate communication between the server 202, the computing device 206, the target computing device 208, and/or the monitoring device 210. In this example, the network 204 may facilitate communication or data transfer using wireless and/or wired connections. Examples of the network 204 include, without limitation, an intranet, a Wide Area Network (WAN), a Local Area Network (LAN), a Personal Area Network (PAN), the Internet, Power Line Communications (PLC), a cellular network (e.g., a Global System for Mobile Communications (GSM) network), portions of one or more of the same, variations or combinations of one or more of the same, and/or any other suitable network.
As illustrated in
The determination module 104 may determine that devices are in physical proximity to each other in a variety of ways, including but not limited to evaluating wireless signal strengths, analyzing information captured through a monitoring function of the monitoring device 210 (e.g., analyzing an image captured by a camera of a smartphone), comparing GPS coordinates, and/or any other suitable method of determining that various devices are in physical proximity of each other. For example, the determination module 104 may direct a game console to scan for wireless signals and capture an image through a peripheral device attached to the game system. The determination module 104 may then determine that various other devices are in proximity to the game system based on the wireless signals detected and/or any objects recognized in the captured image.
The term “monitoring device,” as used herein, generally refers to any device or combination of devices that is capable of capturing information about its surroundings and providing that information to another device. Monitoring devices may include a variety of components capable of capturing information about a user, such as a camera, microphone, infrared sensor, wireless antenna, or any other suitable component capable of capturing information of a physical space. Examples of monitoring devices include, without limitation, laptops, smart phones, smart watches, smart TVs, tablet computers, security cameras, and/or any other device that is capable of capturing information about a physical space.
In some examples, the determination module 104 may triangulate the position of a device based on wireless signals received from the device at a collection of access points. Additionally, or alternatively, the determination module 104 may retrieve location information from a database that associates devices with physical locations. For example, the determination module 104 may retrieve location information from a registry maintained by the server 202 that contains physical-location information associated with each device in the registry. Additionally, or alternatively, the determination module 104 may request physical-location information from the device, such as GPS coordinates, and determine the physical location of the device based on the physical-location information.
At step 304, one or more of the systems described herein may determine that an authorized user, such as the authorized user 214, is attempting to modify the access control rights of the target computing device 208 on the access control list 122 near a location indicated by the authorized user 214. The system may perform this step in any suitable manner. For example, the analysis module 106 may receive and analyze user activity data 216 captured by one or more of the collection of devices, such as the monitoring device 210, to determine that the authorized user 214 is attempting to modify the access control rights of the target computing device 208.
The term “authorized user,” as used herein, generally refers to any individual that has been identified and authenticated by the system. An authorized user may be a user who has permission, or has been granted permission, to modify the access control lists 122 associated with a wireless network. The authorized user may be authenticated by providing credentials, such as a password on a computing device or fingerprint on a fingerprint reader of a computing device. In some examples, one or more of the collection of devices may identify the authorized user through authentication techniques, such as facial recognition, voice recognition, or the like.
The term “user activity data,” as used herein, generally refers to data captured by a computing device, such as monitoring device 210, in the physical space, indicative of activity of the authorized user 214. The user activity data 216 may be captured in the form of audio or video recordings, photographs, or the like. Examples of the user activity that may be captured by the user activity data 216 may include, but are not limited to, voice commands or conversation, hand gestures, pointing to objects with hands or a pointing device, movement around the physical space, or the like.
The term “target computing device,” as used herein, generally refers to any computing device in the physical space for which the authorized user would like to modify the access rights on the access control list. Examples of the target computing device include, without limitation, laptops, smart phones, smart watches, smart TVs, tablet computers, security cameras, and/or any other device that is capable of joining a wireless network.
In some examples, one or more monitoring devices 210 in the physical space may capture user activity data 216 in the form of a photograph or a video recording. The user activity data 216 may include data indicative of the authorized user 214 performing a gesture and/or using a pointing device. The analysis module 106 may determine, by analyzing the user activity data 216, that the authorized user 214 is attempting to modify the access rights of the target computing device 208. In some examples, the authorized user 214 may issue a voice command or perform a gesture indicating their wish to modify the access rights of the target computing device 208. The monitoring device 210 may identify the voice command and, in response to identify the command, capture user activity data 216 and transmit the user activity data to the server 202.
The analysis module 106 may analyze the user activity data 216 to detect a location indicated by the authorized user 214. In some examples, the analysis module 106 may analyze the photograph or video recording to detect a gesture, such as finger pointing, or the presence of a pointing device, such as a laser pointer, that is directed to a location in the physical space. The analysis module 106 may identify the location in the physical space indicated by the authorized user 214 using known techniques for location detection. The analysis module 106 may calculate a region within the physical space based on the location indicated by the authorized user 214. The analysis module 106 may user one or more policies 124 to determine a region of a predetermined distance from the location identified by the authorized user 214. For example, a policy 124 may indicate that the region in the physical space should include the area that is twelve inches in any direction from the location in the physical space. The analysis module 106 may pass the identified location and the determined region in the physical space to the location module 108.
In some examples, one or more monitoring devices 210 in the physical space may capture user activity data 216 in the form of an audio recording. The user activity data 216 may include data indicative of the authorized user 214 speaking while in the physical space. The analysis module 106 may determine, by analyzing the user activity data 216, that the authorized user 214 is attempting to modify the access rights of the target computing device 208. For example, the analysis module 106 may analyze the user activity data 216 using audio analysis techniques to identify words or phrases. The authorized user 214 may say a phrase that indicates their wish to modify the access rights of the target computing device 208. The monitoring device 210 may identify the voice command and, in response to the voice command, capture user activity data 216 in the form of an audio recording and transmit the user activity data 216 to the server 202.
The analysis module 106 may analyze the user activity data 216 to detect a location indicated by the authorized user. In some examples, the analysis module 106 may analyze the audio recording to identify a region in the physical space. The analysis module 106 may identify the location in the physical space indicated by the authorized user 214 in the audio recording. For example, the authorized user 214 may say “the left side of the coffee table” or “the southwest corner of the living room.” The analysis module 106 may retrieve data, such as a map of the physical room previously generated using the data collected by the collection of devices in the physical space. The analysis module 108 may identify a location within the physical space based on the user activity data 216. The analysis module 106 may user one or more policies 124 to determine a region of a predetermined distance from the location identified by the authorized user 214. The analysis module 106 may pass the identified location and the determined region in the physical space to the location module 108.
In some examples, the authorized user 214 may identify a boundary in the physical space, by stating “the kitchen” or “the living room.” The analysis module 106 may retrieve data that indicates the region in the physical space that corresponds to the identified boundary. The analysis module may pass the data identifying the region in the physical space to the location module 108.
In some examples, the analysis module 106 may analyze the audio recording to identify one or more characteristics of the target computing device 208 identified by the authorized user 214. The analysis module 108 may obtain and analyze a photograph or video recording captured by the monitoring device 210 and to detect the location the target computing device 208 in the physical space. For example, the authorized user 214 may say “add the tablet with the red case to the network.” The analysis module 108 may parse the audio recording to determine that the target computing device 208 is a tablet that has a red case. The analysis module 108 may obtain the photograph or video recording of the physical space and analyze the photograph or video recording to identify the target computing device 208. Upon detecting the target computing device 208, the analysis module 108 may determine a location associated with the target computing device 208. The analysis module 106 may calculate a region within the physical space based on the location indicated by the authorized user 214. The analysis module 106 may user one or more policies 124 to determine a region of a predetermined distance from the location identified by the authorized user 214. The analysis module 106 may pass the identified location and the determined region in the physical space to the location module 108.
At step 306 one or more of the systems described herein may detect the target computing device 208 near the location indicated by the authorized user 214 based on the user activity data 216 captured by the monitoring device 210. The system may perform this step in any suitable manner. For example, the location module 108 may, as part of server 202 in
At step 308 one or more of the systems described herein may modify the access rights of the target computing device 208 on the location-based access control list in response to detecting the target computing device 208. The system may perform this step in any suitable manner. The access control module 110 may, as part of server 202 in
In some examples, the access control module 110 may modify the access rights of the target computing device 208 based on an indication from the authorized user 214 and one or more policies 124, such as scheduling policies or boundary policies. The authorized user 214 may have designated a schedule to permit wireless network access. For example, a parent may wish to limit the amount of screen time for a child and their friends after 5:00 PM. If the child's friend wishes to join the wireless network, the parent may identify the device. The systems and methods herein may detect the device identified by the parent but may not enable access for the device to join the wireless network because the scheduling policy indicates that no devices are able to join the wireless network after the designated time.
In another example, a boundary policy may prohibit devices from joining the wireless network if they enter a designated area, such as a bedroom. Accordingly, in the scenario described above, the systems and methods herein may detect the device identified by the parent and enable access for the device to join the wireless network. However, the systems and methods described herein may disable the wireless network access if the device is moved to a prohibited area, such as the child's bedroom. The wireless access may be re-enabled once the device has been moved away from the prohibited area.
The example system 100 in
Existing access-control solutions may not permit a device to easily or securely join a wireless network without sharing the Wi-Fi credentials of the network with the new device. If a user shares the Wi-Fi credentials of a wireless network with a guest device but does not want the guest device to have subsequent access to the network, the user may need to change the Wi-Fi credentials and update all the devices that utilized the previous credentials. In another example, the user may utilize a Wi-Fi protected setup which may enable a router of the wireless network may allow any device in range to connect to the router within a specific time window. However, during the time window, the wireless network may be available to any device within range and a hostile device may easily join the wireless network. The systems and methods described herein are directed to managing location-based access control lists that may be modified by monitoring a physical space using a constellation of additional devices. These additional devices may perform a variety of monitoring functions, such as identifying and authenticating an authorized user to the system and/or capturing user activity through videos, photographs, or audio recordings. The systems and methods described herein may analyze the user activity to identify a location indicated by the authorized user and detect a device near the location. Upon detecting the device near the location, the location-based access control list may be modified to permit the device to join the wireless network.
The computing system 610 broadly represents any single or multi-processor computing device or system capable of executing computer-readable instructions. Examples of the computing system 610 include, without limitation, workstations, laptops, client-side terminals, servers, distributed computing systems, handheld devices, or any other computing system or device. In its most basic configuration, the computing system 610 may include at least one processor 614 and a system memory 616.
The processor 614 generally represents any type or form of physical processing unit (e.g., a hardware-implemented central processing unit) capable of processing data or interpreting and executing instructions. In certain embodiments, the processor 614 may receive instructions from a software application or module. These instructions may cause the processor 614 to perform the functions of one or more of the example embodiments described and/or illustrated herein.
The system memory 616 generally represents any type or form of volatile or non-volatile storage device or medium capable of storing data and/or other computer-readable instructions. Examples of the system memory 616 include, without limitation, Random Access Memory (RAM), Read Only Memory (ROM), flash memory, or any other suitable memory device. Although not required, in certain embodiments, the computing system 610 may include both a volatile memory unit (such as, for example, system memory 616) and a non-volatile storage device (such as, for example, primary storage device 632, as described in detail below). In one example, one or more of the modules 102 from
In some examples, the system memory 616 may store and/or load an operating system 640 for execution by the processor 614. In one example, the operating system 640 may include and/or represent software that manages computer hardware and software resources and/or provides common services to computer programs and/or applications on the computing system 610. Examples of the operating system 640 include, without limitation, LINUX, JUNOS, MICROSOFT WINDOWS, WINDOWS MOBILE, MAC OS, APPLE'S IOS, UNIX, GOOGLE CHROME OS, GOOGLE'S ANDROID, SOLARIS, variations of one or more of the same, and/or any other suitable operating system.
In certain embodiments, the example computing system 610 may also include one or more components or elements in addition to the processor 614 and the system memory 616. For example, as illustrated in
The memory controller 618 generally represents any type or form of device capable of handling memory or data or controlling communication between one or more components of the computing system 610. For example, in certain embodiments, the memory controller 618 may control communication between the processor 614, the system memory 616, and the I/O controller 620 via the communication infrastructure 612.
The I/O controller 620 generally represents any type or form of module capable of coordinating and/or controlling the input and output functions of a computing device. For example, in certain embodiments, the I/O controller 620 may control or facilitate transfer of data between one or more elements of the computing system 610, such as the processor 614, the system memory 616, the communication interface 622, the display adapter 626, the input interface 630, and the storage interface 634.
As illustrated in
As illustrated in
Additionally or alternatively, the example computing system 610 may include additional I/O devices. For example, the example computing system 610 may include the I/O device 636. In this example, the I/O device 636 may include and/or represent a user interface that facilitates human interaction with the computing system 610. Examples of the I/O device 636 include, without limitation, a computer mouse, a keyboard, a monitor, a printer, a modem, a camera, a scanner, a microphone, a touchscreen device, variations or combinations of one or more of the same, and/or any other I/O device.
The communication interface 622 broadly represents any type or form of communication device or adapter capable of facilitating communication between the example computing system 610 and one or more additional devices. For example, in certain embodiments, the communication interface 622 may facilitate communication between the computing system 610 and a private or public network including additional computing systems. Examples of the communication interface 622 include, without limitation, a wired network interface (such as a network interface card), a wireless network interface (such as a wireless network interface card), a modem, and any other suitable interface. In at least one embodiment, the communication interface 622 may provide a direct connection to a remote server via a direct link to a network, such as the Internet. The communication interface 622 may also indirectly provide such a connection through, for example, a local area network (such as an Ethernet network), a personal area network, a telephone or cable network, a cellular telephone connection, a satellite data connection, or any other suitable connection.
In certain embodiments, the communication interface 622 may also represent a host adapter configured to facilitate communication between the computing system 610 and one or more additional network or storage devices via an external bus or communications channel. Examples of host adapters include, without limitation, Small Computer System Interface (SCSI) host adapters, Universal Serial Bus (USB) host adapters, Institute of Electrical and Electronics Engineers (IEEE) 1394 host adapters, Advanced Technology Attachment (ATA), Parallel ATA (PATA), Serial ATA (SATA), and External SATA (eSATA) host adapters, Fibre Channel interface adapters, Ethernet adapters, or the like. The communication interface 622 may also allow the computing system 610 to engage in distributed or remote computing. For example, the communication interface 622 may receive instructions from a remote device or send instructions to a remote device for execution.
In some examples, the system memory 616 may store and/or load a network communication program 638 for execution by the processor 614. In one example, the network communication program 638 may include and/or represent software that enables the computing system 610 to establish a network connection 642 with another computing system (not illustrated in
Although not illustrated in this way in
As illustrated in
In certain embodiments, the storage devices 632 and 633 may be configured to read from and/or write to a removable storage unit configured to store computer software, data, or other computer-readable information. Examples of suitable removable storage units include, without limitation, a floppy disk, a magnetic tape, an optical disk, a flash memory device, or the like. The storage devices 632 and 633 may also include other similar structures or devices for allowing computer software, data, or other computer-readable instructions to be loaded into the computing system 610. For example, the storage devices 632 and 633 may be configured to read and write software, data, or other computer-readable information. The storage devices 632 and 633 may also be a part of the computing system 610 or may be a separate device accessed through other interface systems.
Many other devices or subsystems may be connected to the computing system 610. Conversely, all of the components and devices illustrated in
The computer-readable medium containing the computer program may be loaded into the computing system 610. All or a portion of the computer program stored on the computer-readable medium may then be stored in the system memory 616 and/or various portions of the storage devices 632 and 633. When executed by the processor 614, a computer program loaded into the computing system 610 may cause the processor 614 to perform and/or be a means for performing the functions of one or more of the example embodiments described and/or illustrated herein. Additionally, or alternatively, one or more of the example embodiments described and/or illustrated herein may be implemented in firmware and/or hardware. For example, the computing system 610 may be configured as an Application Specific Integrated Circuit (ASIC) adapted to implement one or more of the example embodiments disclosed herein.
The client systems 710, 720, and 730 generally represent any type or form of computing device or system, such as example the computing system 610 in
As illustrated in
The servers 740 and 745 may also be connected to a Storage Area Network (SAN) fabric 780. The SAN fabric 780 generally represents any type or form of computer network or architecture capable of facilitating communication between a plurality of storage devices. The SAN fabric 780 may facilitate communication between the servers 740 and 745 and a plurality of the storage devices 790(1)-(N) and/or an intelligent storage array 795. The SAN fabric 780 may also facilitate, via the network 750 and the servers 740 and 745, communication between the client systems 710, 720, and 730 and the storage devices 790(1)-(N) and/or the intelligent storage array 795 in such a manner that the devices 790(1)-(N) and they array 795 appear as locally attached devices to the client systems 710, 720, and 730. As with the storage devices 760(1)-(N) and the storage devices 770(1)-(N), the storage devices 790(1)-(N) and the intelligent storage array 795 generally represent any type or form of storage device or medium capable of storing data and/or other computer-readable instructions.
In certain embodiments, and with reference to the example computing system 610 of
In at least one embodiment, all or a portion of one or more of the example embodiments disclosed herein may be encoded as a computer program and loaded onto and executed by the server 740, the server 745, the storage devices 760(1)-(N), the storage devices 770(1)-(N), the storage devices 790(1)-(N), the intelligent storage array 795, or any combination thereof. All or a portion of one or more of the example embodiments disclosed herein may also be encoded as a computer program, stored in the server 740, run by the server 745, and distributed to the client systems 710, 720, and 730 over the network 750.
As detailed above, the computing system 610 and/or one or more components of the network architecture 700 may perform and/or be a means for performing, either alone or in combination with other elements, one or more steps of an example method for managing location-based access control lists.
While the foregoing disclosure sets forth various embodiments using specific block diagrams, flowcharts, and examples, each block diagram component, flowchart step, operation, and/or component described and/or illustrated herein may be implemented, individually and/or collectively, using a wide range of hardware, software, or firmware (or any combination thereof) configurations. In addition, any disclosure of components contained within other components should be considered example in nature since many other architectures can be implemented to achieve the same functionality.
In some examples, all or a portion of example system 100 in
In various embodiments, all or a portion of the example system 100 in
According to various embodiments, all or a portion of the example system 100 in
In some examples, all or a portion of the example system 100 in
In addition, all or a portion of the example system 100 in
In some embodiments, all or a portion of the example system 100 in
According to some examples, all or a portion of the example system 100 in
The process parameters and sequence of steps described and/or illustrated herein are given by way of example only and can be varied as desired. For example, while the steps illustrated and/or described herein may be shown or discussed in a particular order, these steps do not necessarily need to be performed in the order illustrated or discussed. The various example methods described and/or illustrated herein may also omit one or more of the steps described or illustrated herein or include additional steps in addition to those disclosed.
While various embodiments have been described and/or illustrated herein in the context of fully functional computing systems, one or more of these example embodiments may be distributed as a program product in a variety of forms, regardless of the particular type of computer-readable media used to actually carry out the distribution. The embodiments disclosed herein may also be implemented using software modules that perform certain tasks. These software modules may include script, batch, or other executable files that may be stored on a computer-readable storage medium or in a computing system. In some embodiments, these software modules may configure a computing system to perform one or more of the example embodiments disclosed herein.
In addition, one or more of the modules described herein may transform data, physical devices, and/or representations of physical devices from one form to another. Additionally, or alternatively, one or more of the modules recited herein may transform a processor, volatile memory, non-volatile memory, and/or any other portion of a physical computing device from one form to another by executing on the computing device, storing data on the computing device, and/or otherwise interacting with the computing device.
The preceding description has been provided to enable others skilled in the art to best utilize various aspects of the example embodiments disclosed herein. This example description is not intended to be exhaustive or to be limited to any precise form disclosed. Many modifications and variations are possible without departing from the spirit and scope of the instant disclosure. The embodiments disclosed herein should be considered in all respects illustrative and not restrictive. Reference should be made to the appended claims and their equivalents in determining the scope of the instant disclosure.
Unless otherwise noted, the terms “connected to” and “coupled to” (and their derivatives), as used in the specification and claims, are to be construed as permitting both direct and indirect (i.e., via other elements or components) connection. In addition, the terms “a” or “an,” as used in the specification and claims, are to be construed as meaning “at least one of.” Finally, for ease of use, the terms “including” and “having” (and their derivatives), as used in the specification and claims, are interchangeable with and have the same meaning as the word “comprising.”
Number | Name | Date | Kind |
---|---|---|---|
10257179 | Saylor | Apr 2019 | B1 |
20150121475 | Cashman | Apr 2015 | A1 |
20170156026 | Reudink | Jun 2017 | A1 |
Entry |
---|
Olivarez-Giles, Nathan, “iRobot's Roomba 980 Maps Your Home Via Camera and Takes Smartphone Commands”, Personal Tech News, Sep. 16, 2015, 3 pages. |
Gu et al., “Systems and Methods for Enforcing Access-Control Policies in an Arbitrary Physical Space”, U.S. Appl. No. 15/195,677, filed Jun. 28, 2016, 52 pages. |