Controlling access to and distribution of enterprise resources, such as documents, databases, and executable applications, in a networked environment is critical to ensure that only authorized users and network-connected devices may gain access to sensitive information. Depending on the sensitivity of a given resource, an array of authorization rules may be necessary to ensure that the resource is adequately protected. Some resources may only require ensuring that the proper user is requesting the resource. Other resources may require compliance with more stringent authorization rules, such as determining whether the client device is located within an authorized location, determining whether the current time is within an authorized time window, determining whether an appropriate transport protocol is used (i.e., http and/or https) by the requesting device, determining whether the resource is accessed from a secured device, etc.
To date, enterprises have distributed resources to network-connected resources using internal secured networks and VPN tunnels to those networks. While these methods provide a secure channel for distribution, these methods typically do not authenticate the recipient beyond ensuring a proper recipient. Additionally, these methods are ineffective to continuously ensure that the resource is protected, as they fail to ensure that the resource is protected beyond the initial grant of access to the resource. This is problematic because the recipient of the resource may at some point cease to comply with the conditions required to receive access to the resource. Consequently, these methods fails to continuously ensure that only authorized client devices retain access to location-sensitive and time-sensitive resources. Finally, these methods do not restrict an authorized recipient from subsequently transmitting certain resources to other potentially unauthorized recipients.
Disclosed are embodiments for a non-transitory computer-readable medium embodying a program executable in a computing device, the program comprising code that, when executed by a computing device, causes the computing device to perform a method comprising the steps of receiving a client device request to access resources hosted by a distribution service, determining whether the client device is authorized to access the distribution service, identifying the resource grouping identifiers associated with client devices authorized to access the distribution service, identifying the resources associated with the identified resource grouping identifiers, identifying the distribution rules associated with the identified resources including location rules and time rules, transmitting the identified resources and identified distribution rules to the client device, the resources being configured to be exclusively accessible via a containerized client side application on the client device while the client device satisfies the distribution rules.
Disclosed are embodiments for a containerized application executed by a client device for determining whether the client device is located at an authorized location, transmitting a request for access to resources hosted by a distribution service if the client device is located at an authorized location, receiving resources that are configured to be exclusively accessible via the containerized client side application, and removing the resources from the client device if the client device is no longer at an authorized location.
Disclosed are embodiments for a computing device configured to execute a distribution service for controlling distribution of resources in a networked environment. The distribution service comprises a processor and a memory device including instructions that when executed by the processor cause the processor to perform a method comprising the steps of receiving a client device request to access resources hosted by a distribution service, determining whether the current time associated with the client device is within an authorized time window, transmitting the resources to the client device if the current time associated with the client device is within an authorized time window, monitoring the current time of the client device on a continuous basis, and removing the resources from the client device if the current time associated with the client device is no longer within an authorized time window.
Disclosed are embodiments for a method for receiving a request to access resources hosted by a distribution service from a client device located at an authorized location, transmitting the resources to the client device where the resources are configured to be exclusively accessible via a containerized client side application executed on the client device, monitoring the location of the client device on a continuous basis, and removing the resources from the client device if the client device is no longer at an authorized location.
Disclosed are embodiments for a non-transitory computer-readable medium embodying a program executable in a computing device, the program comprising code that, when executed by a computing device, causes the computing device to perform a method comprising the steps of transmitting requests to access resources hosted by a distribution service from a containerized client side application executed on a client device and receiving access to the resources if the client device is located at an authorized location and if the current time associated with the client device is within an authorized time window.
Disclosed are embodiments for a computing device configured to execute a distribution service for controlling distribution of resources in a networked environment. The distribution service comprises a processor and a memory device including instructions that when executed by the processor cause the processor to perform a method comprising the steps of determining whether a client device has access to resources associated with authorized time windows, determining whether the current time associated with the client device is within an authorized time window, and removing access to the resources on the client device if the current time associated with the client device is not within an authorized time window.
Many aspects of the present disclosure can be better understood with reference to the following diagrams. The drawings are not necessarily to scale, emphasis instead being placed upon clearly illustrating certain features of the disclosure. Moreover, in the drawings, like reference numerals designate corresponding parts throughout the several views.
Disclosed are various embodiments for systems and methods for controlling distribution of resources in a network. The exemplary system comprises a distribution server and a plurality of client devices configured as described herein.
In one embodiment, a distribution service executed by a distribution server transmits resources to a client device if a pairing of a user of the client device and the client device are authorized to receive the resources. The distribution service first determines whether the user and client device pairing are authorized to communicate with the distribution service based at least in part on a plurality of authorization rules. For example, an authorization approach as described in application Ser. No. 13/316,073 entitled “CONTROLLING ACCESS TO RESOURCES ON A NETWORK,” which is incorporated herein by reference in its entirety, may be employed to determine whether the client device and the user of the client device are authorized.
Upon determining that the user and the client device pairing are authorized, the distribution service determines which of a plurality of resource grouping identifiers are associated with the user and client device pairing. For instance, each resource may be associated with one or more resource grouping identifiers. Resource grouping identifiers are used to identify a grouping (i.e., one or more) of resources that may be provided to authorized user and client device pairings. The distribution service then identifies a plurality of resources that are associated with each one of the resource grouping identifiers and transmits the identified resources to the client device if the client device satisfies the distribution rules associated with each one of the identified resources. For instance, the distribution service may determine that the client device complies with the distribution rules based at least in part on data selected from a device profile of the client device, such as location information specifying the location of the client device and/or time information specifying the current time.
In one embodiment, the resources referenced herein may include any electronic data, such as databases, text files, word processor files, spreadsheet files, presentation files, graphic files, audio files, photographic files, video files, applications and application files, and/or the like. More specifically, resources may include: data files, audio files, video files, three-dimensional image files, raster image files, vector image files, page layout files, spreadsheet files, database files, executable files, CAD files, web files, plug-in files, font files, system files, settings files, encoded files, compressed files, disk image files, developer files, backup files, and/or any other files.
The client device 120 may be a desktop computer, a laptop computer, a personal digital assistant, a cellular telephone, a set-top box, a music player, a web pad, a tablet computer system, a game console, and/or another device with like capability. The client device 120 may include a wired network connectivity component (not shown in
Additionally, the client device 120 may store in a data store 122a device profile 123, user credentials 132, a device identifier 135, and other data. In one embodiment, the device profile 123 may represent hardware, software, and security attributes that describe the client device 120. For instance, the device profile 123 may represent hardware specifications of the client device 120, version and configuration information of various software programs and hardware components installed on the client device 120, transport protocols enabled on the client device 120, version and usage information of various other resources stored on the client device 120, and/or any other attributes associated with the state of the client device 120. The device profile 123 may further include characteristics describing the current state of the client device 120, such as location information 133 specifying the location of the client device 120 and time information 143 specifying the current time. Moreover, the device profile 123 may include data indicating a date of a last virus scan of the client device 120, a date of a last access by an IT representative, a date of a last access by the distribution server 150, a date of a last service by the IT representative, and/or any other data indicating a date of last maintenance.
The user credentials 132 may uniquely identify the user of the client device 120. For example, the user credentials 132 may include a username, a password, and/or biometric data related to facial recognition, retina recognition, fingerprint recognition, and the like. The device identifier 135 may uniquely identify the client device 120. For example, the device identifier 135 may be a unique hardware identifier such as a GUID (Globally Unique Identifier), UUID (Universally Unique Identifier), UDID (Unique Device Identifier), serial number, IMEI (Internationally Mobile Equipment Identity), Wi-Fi MAC (Media Access Control) address, Bluetooth MAC address, a CPU ID, and/or the like, or any combination of two or more such hardware identifiers. Additionally, the device identifier 135 may be represented by a unique software identifier such a token or certificate, based at least in part on the aforementioned unique hardware identifiers.
The client device 120 may further be configured to execute various applications. For example, the client device 120 may be configured to execute applications such as web browsing applications, email applications, instant messaging applications, and/or other applications capable of receiving and/or rendering resources 165 on a display 136 associated with the client device 120. Any applications capable of receiving and/or rendering resources 165 on a display 136 is generally referred to herein as a “client side application” 126. The client side application 126 may be stored in the memory of the client device 120. In one embodiment, the client side application 126 may be a secure container program that may be authorized to receive and render selected resources 165, as described herein. The secure container program may further contain a decryption key specific to a distribution service 174 that enables the secure container program to decrypt resources 165 transmitted by the distribution service 174 that have been encrypted by the distribution service 174 to prevent unauthorized programs from accessing the resources 165 on the client device 120. In another embodiment, the client side application 126 may be a browser configured to be executed as described herein.
The client side application 126 may executed to transmit requests to access resources 165 to the distribution server 150 and render a user interface 137 on the display 136 that provides access to the resources 165. In particular, the resources 165 may be presented in a user interface 137 by decompressing compressed files and presenting the uncompressed files, mounting disk image files and presenting the mounted image files, running executable files and presenting the executed files, by enabling a data search of the resources 165 and presenting the featured output in a user interface, by calling on another application on the client device 120 to respond to data links contained within the resources 165, and/or by transmitting a part or the whole of the resources 165 to another application on the client device 120. Furthermore, a client side application 126 may be executed to present a single resource 165 or a series of resources 165 in a comprehensive manner, for instance, presenting photograph files in a slideshow presentation. Additionally, the client side application 126 may be executed to render an environment that presents an array of resources 165 in a single view, such as a category-based tree or outline format, based at least in part on a resource qualifier 172 associated with the resources 165.
In one embodiment, the resource qualifier 172 may be or include metadata that describes and/or regulates the use of the respective resource 165. For example, a resource qualifier may include categories/sub-categories to which the resource 165 belongs, an indication that the resource 165 is considered a favorite, an indication of whether the resource 165 is privately owned, publicly owned, and/or enterprise-owned, an indication of whether the resource 165 is confidential, an indication of whether the resource 165 is password protected, an indication of the historical version of the resource 165, a description of the resource 165, one or more comments regarding the resource 165, an indication of the size and format of the resource 165, an indication of the download priority associated with the resource 165, an indication of the expiration date associated with the resource 165, an indication of the effective date associated with the resource 165, an indication of the ownership of the resource 165, an indication of the managing party of the resource 165, and/or the like, or any combination of resource qualifiers 172. Additionally, the resource qualifiers 172 may indicate that the resources 165 are encrypted and may facilitate the decryption of the resources 165 when the client device 120 has access to an appropriate decryption key, such as a decryption key provided by a distribution service 174 associated with the resources 165.
The client side application 126 may also facilitate the modification of resources 165 provided by the distribution service 174 and the modification of data associated with the provided resources 165. For example, the client side application 126 may include functionality for adding content to the existing resources 165, removing content from the existing resources 165, altering the content of existing resources 165, adding resource qualifiers 172 associated with the existing resources 165, and/or the like, or any combination of manipulations of the resources 165.
The client side application 126 may further be executed to add new resources 165 to be hosted by the distribution server 150. For example, a user having administrator-level user credentials 132 may manipulate the user interface 137 to transfer copies of resources 165 locally stored on the client device 120 to the distribution server 150 to be included in the data store 153. In one embodiment, the user of the client device 120 may initiate an upload of one or more resources 165 via the user interface 137 rendered by the client side application 126, as can be appreciated. In addition, the user may specify one or more approved resource grouping identifiers 168 that are permitted to access the uploaded resource 165 and specify distribution rules 171 that are required to be complied with in order to access the uploaded resource 165, as will be described. In another embodiment, a user without administrator-level user credentials 132 may manipulate the user interface 137 to transfer local copies of personal resources 165 to the distribution server 150. In this example, the resources qualifiers 172 associated with the personal resources 165 may be configured by default to restrict access by any other user.
Additionally, the client side application 126 may also be configured to optionally restrict access to the resources 165 by other applications executed by the client device 120, thereby preventing access to the resources 165 from an application other than the client side application 126. In one embodiment, the client side application 126 may monitor network traffic between the client device 120 and the distribution server 150 and identify any data being transmitted between the distribution server 150 and an application executed by the client device 120 other than the client side application 126. The client side application 126 may then determine whether a resource 165 is being provided to an application other than the client side application 126 executed by the client device 120 and intercept and/or block the incoming resource 165. In one embodiment, the client side application 126 may then allow the intercepted resource 165 to be accessible to the user via a user interface 137 rendered by the client side application 126. In other embodiments, the client side application 126 may deny access to the intercepted resource 165 by any other application on the client device 120. Additionally, the client side application 126 may be executed to call on other services associated with the resources 165 that are executed on the distribution server 150 or another server or device accessible to the client side application 126, for instance, a technical support service that may be executed on the distribution server 150.
Furthermore, the client side application 126 may be a containerized application that prohibits the resources 165 from being accessed by other applications, prohibits the resources 165 from being transmitted to other applications on the client device 120, and is configurable to restrict the manner of access to the resources 165 within the client side application 126. The containerized client side application 126 may be configured to identify metadata associated with the resources 165 that specifies that the resources 165 are not authorized for transmission outside of the containerized application. Examples of such transmission restrictions may include restricting cutting, copying, and pasting of the resources 165 while the resources 165 are being accessed by the client side application 126.
The distribution server 150 may comprise, for example, a server computer or any other system providing distribution capability. Alternatively, a plurality of distribution servers 150 may be employed that are arranged, for example, in one or more server banks or computer banks or other arrangements. For example, a plurality of distribution servers 150 together may comprise a cloud computing resource, a grid computing resource, and/or any other distributed computing arrangement. Such distribution servers 150 may be located in a single installation or may be distributed among many different geographic locations. For purposes of convenience, the distribution server 150 is referred to herein in the singular. Even though the distribution server 150 is referred to in the singular, it is understood that a plurality of distribution servers 150 may be employed in the arrangements as descried herein.
Certain applications and/or other functionality may be executed in the distribution server 150 according to certain embodiments. Also, certain data is stored in a data store 153 that is accessible to the distribution server 150. The data store 153 may be representative of a plurality of data stores, as can be appreciated. The data stored in the data store 153, for example, is associated with the operation of the applications and/or functional entities described herein. The data store 153 may utilize strong encryption standards to protect the resources 165 from unauthorized access. For example, the data store 153 may utilize SHA-1 (Standard Hash Algorithm) or a similar strong encryption standard commonly utilized for server-side data storage.
The components executed on the distribution server 150, for example, include the distribution service 174 and other applications, services, processes, systems, engines, or functionality not disclosed in detail herein. The distribution service 174 is executed to provide resources 165 stored in the data store 153 to a requesting client device 120 based on resource grouping identifiers 154 and distribution rules 171, as will be described. In addition, the distribution service 174 may also accept new resources 165 provided by the user of the client device 120, and previously provided resources 165 modified by the user of the client device 120, as will be described.
The data store 153 may include resource grouping identifiers 154, resources 165, and/or other data. The resource grouping identifiers 154 may represent unique identifiers for previously determined resource groupings and are used to determine which resources 165 are transmitted to the user of the client device 106, as will be described. For example, a resource grouping may relate to organizational groups, organizational roles, geographic locations, and/or any other type of grouping that require access to a type of resource. Each resource grouping identifier 154 may be associated with a pairing of at least one of a plurality of approved user credentials 156 and at least one of a plurality of approved device identifiers 159. In one embodiment, each combination of approved user credentials 156 and approved device identifiers 159 may be associated with more than one of the resource grouping identifiers 154. Additionally, the pairing of approved user credentials 156 and approved device identifiers 159 may be associated with a user's organizational role and/or capacity. For instance, the pairing of approved user credentials 156 and the approved device identifiers 159 may be predetermined by an IT administrator. In another embodiment, the pairing of approved user credentials 156 and the approved device identifiers 159 may be automatically associated with the resource grouping identifiers 154 based at least upon a user's pay grade, organizational level, status within the organization, and/or any other organizational factor.
Each resource 165 may be associated with a listing of approved resource grouping identifiers 168 and a plurality of distribution rules 171. The resources 165, the approved resource grouping identifiers 168, and the distribution rules 171 may be stored on the data store 122 or another data store accessible to the client device 120 and/or other storage facility in data communication with the distribution server 150. For instance, the resources 165, approved resource grouping identifiers 168, and the distribution rules 171 may further be stored on an internal email server, a web-based email server, an internal file server, a third-party hosted file server, a cloud-based server, or a cached local data store on the client device 120.
In one embodiment, the listing of approved resource grouping identifiers 168 includes a plurality of resource grouping identifiers 154 that regulate access to the respective resource 165, which may be predetermined by an IT administrator. For instance, the IT administrator may specify which resource grouping identifiers 154 are permitted access to the respective resource 165. Additionally, the distribution rules 171 regulate how a user having the appropriate user credentials 132 and device identifier 135 combination may access the respective resource 165. For example, in some embodiments, the distribution rules 171 may describe a required and/or a permitted state that an accessing client device 120 must satisfy in order for the client device 120 to be permitted to access to the resource 165. The distribution rules 171 may include but are not limited to hardware requirements, software requirements, configuration requirements, maintenance requirements of a client device, and/or requirements related to the resource 165.
In one embodiment, hardware requirements may include requirements associated with the CPU, memory, power supply, external storage, peripherals, and/or the like. Software requirements may include requirements associated with the operating system type and version, operating system authenticity and jailbreak/rooted status, installed application types and versions, and/or the like. Configuration requirements may include requirements associated with the configuration of the hardware, software, data encryption methods, transport protocols, and/or the like. Maintenance requirements may include requirements associated with the date of last virus scan for the client device 120, the date of the last access of the client device 120 by IT, the date of last communication between the client device 120 and the distribution server 150, the date of last tune-up of the client device 120, and/or the like. Requirements related to the resource 165 may include whether the resources 165 may be rendered while the client device 120 is offline and/or not in communication with the distribution service 174, whether to permit synchronization of the resources 165 with a remote data store, whether to restrict the resources 165 from being forwarded, whether to permit storing resources 165 locally on the client device 120, whether the resources 165 may only be accessed by client devices 120 located at specified locations, whether the resources 165 may only be accessed during specified times, and/or the like.
For instance, the resources 165 may be associated with a set of distribution rules 171 that include a plurality of location rules 181. In one embodiment, the location rules 181 specify one or more locations at which a client device 120 may access the resources 165. In another embodiment, the location rules 181 specify one or more location perimeters within which a client device 120 may access the resources 165. More specifically, a location perimeter may encompass a location to establish a buffer area within which the client device 120 is authorized to access the resources 165 based on its proximity to the location. As an example, an administrator of the distribution service 174 may designate the boundaries of the locations and/or location perimeters within which client devices 120 may access the resources 165. For instance, the designated boundaries of a location such as a corporate board meeting room may be smaller than the designated boundaries of a location such as a football stadium. Similarly, the designated boundaries of a location perimeter encompassing a corporate board meeting room may be smaller than the designated boundaries of a location perimeter encompassing a football stadium.
Additionally, the resources 165 may be associated with a set of distribution rules 171 that include a plurality of time rules 191. In one embodiment, the time rules 191 specify one or more times when a client device 120 may access the resources 165. In another embodiment, the time rules 191 specify one or more time windows within which a client device 120 may access the resources 165. As an example, an administrator of the distribution service 174 may designate the times when a client device 120 may access the resources 165 and/or may designate the time windows within which a client device 120 may access the resources 165.
Both the location rules 181 and time rules 191 may further specify that access to the associated resources 165 must be terminated once the client device 120 is no longer compliant with such distribution rules 171. The location rules 181 and time rules 191 may specify that access to the resources 165 is to be terminated by preventing a recipient client device 120 from accessing the resources 165 on the client device 120 while the client device 120 is non-compliant, by removing the resources 165 from the client device 120 once the client device 120 becomes non-compliant, and/or terminating access to the resources 165 by some other approach. For example, the distribution service 174 removes the resources 165 by transmitting a command to the client side application 126 to block access to the resources 165, delete the resources 165, and/or otherwise terminate access to the resources 165. Additionally, removing of the resources 165 from the client device 120 may include removing local copies of the resources 165, links to downloadable copies of the resources 165, downloaded copies of the resources 165, and/or any other copies of the resources 165. The distribution service 174 may also instruct the client side application 126 to restore the client device 120 to its default state, thereby removing all data related to the resource 165 from the client device 120.
A user operating a client device 120 may wish to access resources 165 stored on the distribution server 150. In one embodiment, the user may manipulate a user interface 137 rendered by the client side application 126 to transmit a request 177 for accessing one or more resources 165 on the distribution server 150. For instance, the user may provide user credentials 132, such as, a unique user name, a password, biometric data, and/or other types of user credentials 132 to request access to the distribution server 150. The client side application 126 may transmit the request 177 to the distribution service 174. In one embodiment, the request 177 may include the user credentials 135 provided by the user, the device identifier 135 that uniquely identifies the client device 120, and/or any other relevant information such as the location information 133 specifying the location of the client device 120 and time information 143 specifying the current time.
The distribution service 174 receives the request 177 and determines whether the user is authorized to access the resources 165 from the client device 120. For instance, the distribution service 174 may use an authorization approach as described in U.S. application Ser. No. 13/316,073 entitled “CONTROLLING ACCESS TO RESOURCES ON A NETWORK,” which is incorporated herein by reference. As another example, the distribution service 174 may determine that the user is authorized to access the resources 165 from the client device 120 based on the user credentials 132 associated with the user of the client device 120 and the device identifier 135 associated with the client device 120 that are provided with the request 177.
Upon determining that the user is authorized to access the resources 165 from the client device 120, the distribution server 150 determines which of the resources 165 to provide to the client device 120. In one embodiment, the distribution service 174 determines which resources 165 to provide based on the resource grouping identifiers 154 associated with each resource 165. For instance, the distribution service 174 may first determine which resource grouping identifiers 154 are associated with the pairing of user credentials 132 and the device identifier 135 included in the request 177. In one embodiment, the distribution service 174 parses the listing of approved user credentials 156 and the listing of approved device identifiers 159 of each resource grouping identifier 154 to determine whether the respective resource grouping identifier 154 is associated with both the user credentials 132 and the device identifier 135.
Next, the distribution service 174 identifies a resource 165 to provide to the user of the client device 120 based on the determined resource grouping identifiers 154. In one embodiment, the distribution service 174 identifies one or more resources 165 associated with each one of the determined resource grouping identifiers 154. In another embodiment, the distribution service 174 identifies the resource 165 if the resource 165 is associated with all of the determined resource grouping identifiers 154. Additionally, in another embodiment, the distribution service 174 identifies the resource 165 if it is associated with a threshold number of the resource grouping identifiers 154. The distribution service 174 may then provide the identified resources 165 to the client device 120.
In one embodiment, before the identified resources 165 are provided to the client device 120, the distribution service 174 may encrypt the resources 165 and/or obfuscate the data of the resources 165 in a manner which only the intended recipient may access the resources 165. For example, the distribution service 174 may encrypt the resources 165 using symmetric encryption and then transmit both the resources 165 and the decryption key to the client device 120. Alternatively, if the distribution service 174 determines that the client device 120 has been previously provided with the decryption key associated with the distribution service 174, then the distribution service 174 may encrypt the resources 165 and transmit the resources 165 to the client device 120.
In another embodiment, before the identified resources 165 are provided to the client device 120, the distribution service 174 may additionally determine whether the client device 120 satisfies the distribution rules 171 associated with each one of the identified resources 165. For example, the distribution service 174 may determine whether the device profile 123 describing the state of the client device 120 satisfies the distribution rules 171 of each identified resource 165. As discussed above, the device profile 123 may include hardware specifications of the client device 120, software specifications of the client device 120, version information of various other components of the client device 120, location information 133, time information 143, and/or any other information profiling the client device 120. The distribution service 174 may, for instance, only transmit resources 165 to client devices 120 whose location information 133 indicates that the client device 120 satisfies location rules 181 associated with the resources 165. Similarly, the distribution service 174 may only transmit resources 165 to client devices 120 whose time information 143 indicates that the client device 120 satisfies time rules 191 associated with the resources 165. In one embodiment, the distribution service 174 may provide the client device 120 with access to each identified resource 165 if the client device 120 satisfies all of, or at least a portion of, the distribution rules 171 associated with each of the identified resources 165. Additionally, in another embodiment, the distribution service 174 may provide access to the identified resource(s) 165 if the client device 120 satisfies at least a threshold number of the distribution rules 171 associated with each of the identified resources 165.
Responsive to a determination that the client device 120 is in a state of compliance with the distribution rules 171, the distribution service 174 may be further executed to transmit the identified resources 165 to the client device 120. In one embodiment, the distribution service 174 may automatically transmit the identified resources 165 to the client device 120. In another embodiment, the distribution service 174 may make the identified resources 165 available for download by the client device 120 based on a resource qualifier 172 associated with the respective resource 165. For instance, the resource qualifier 172 may indicate the respective resource 165 be made available for download to the client device 120. In this example, the user may transmit a request 177 to the distribution service 174 to download the respective resource 165.
In one embodiment, the state of the client device 120 may have been modified between the time the distribution service 174 makes the identified resource 165 available for download and the time the distribution service 174 receives the request to download the identified resource 165. For example, the client device 120 may have switched connectivity from a secured network 110 to an unsecured network 110. In this embodiment, the distribution service 174 may determine for a second time whether the client device 120 satisfies the distribution rules 171 associated with the resources 165. For example, the request 177 to download transmitted from the client device 120 may include an updated device profile 123. The distribution service 174 may make the second determination of whether the client device 120 satisfies the distribution rules 171 based on the updated device profile 123. For instance, the distribution rules 171 may require that the client device 120 be connected to a secured network 110 to gain access to the resource 165 and the second determination of compliance may reveal that the client device 120 is connected to an unsecured network 110. Responsive to the second determination that the client device 120 satisfies the distribution rules 171 associated with the resources 165, the distribution service 174 may provide the resources 165 to the client device 120.
In another embodiment, the device profile 123 may be periodically transmitted by the client side application 126 to the distribution server 150. In this embodiment, each time the device profile 123 is transmitted to the distribution server 150, the distribution service 174 may determine whether the updated client device 120 satisfies the distribution rules 171 using the updated device profile 123. Upon determining that a client device 120 no longer satisfies the distribution rules 171, the distribution service 174 may be further executed to temporarily terminate access to the resources 165 by hiding the presentation of the resources 165 on the client device 120 until the client device 120 returns to a compliant state, permanently terminate access to the resources 165 by deleting the resources 165 from the client device 120, and/or otherwise terminate access to the resources 165. For example, the distribution service 174 may determine that a client device 120 is no longer satisfies the location rules 181 and/or the time rules 191 associated with distributed resources 165 based on updated location information 133 and/or time information 143, respectively. In response, the distribution service 174 may terminate access to the resources 165 associated with the location rules 181 and/or time rules 191 that are not satisfied by the client device 120.
In another embodiment, the distribution service 174 may transmit the distribution rules 171 associated with each one of the identified resources 165 to the client device 120. For example, the distribution service 174 may transmit the distribution rules 171 to the client side application 126 for determining whether the client device 120 satisfies the distribution rules 171. In one embodiment, the distribution service 174 may not determine whether the client device 120 satisfies the distribution rules 171 associated with each of the identified resources 165 and instead permit the client side application 126 to make this determination. For instance, the client side application 126 may determine whether the client device 120 satisfies the distribution rules 171 associated with a received resource 165 prior to rendering the received resource 165 on the display 136.
In another embodiment, the distribution service 174 may transmit the distribution rules 171 to the client device 120 prior to transmitting the identified resources 165. The client side application 126 may then determine whether the client device 120 satisfies the distribution rules 171, as described above. The client side application 126 may then transmit an indication back to the distribution service 174 of the compliance status. Responsive to receiving an indication from the client device 120 that the client device 120 satisfies all and/or a sufficient portion of the distribution rules 171 associated with each respective resource 165, the distribution service 174 may then transmit the appropriate identified resources 165 to the client device 120. Additionally, the client side application 126 may store the distribution rules 171 in a memory associated with the client device 120, such as the data store 122. Upon subsequent requests to access the identified resource 165, the distribution service 174 may wait to receive an indication from the client side application 126 that the client device 120 satisfies the distribution rules 171 associated with the requested resource 165 before transmitting the resource 165. For example, the client side application 126 may use the stored distribution rules 171 received from a previous request to make the compliance determination and transmit the request 177.
The distribution service 174 may be further executed to log all activity related to the resources 165 for asset tracking purposes. For example, the distribution service 174 may log activities such as transmission of resources 165, historical data related to the transmission of the resource 165, data related to the rendering of the resources 165 by the client device 120, data related to a storage location of the resources 165, data related to communication with the client device 120, data related to resource qualifiers 172 associated with the resources 165, data related to client device 120 compliance with distribution rules 171, data related to usage and availability of bandwidth, and/or any other data related to the resources 165.
In an additional embodiment, the distribution service 174 may periodically determine whether the transmitted resources 165 have been modified on the client device 120 and synchronize the modified resource 165 on the client device 120 with the unmodified resource 165 on the distribution server 150. For instance, the distribution service 174 may determine whether the resource 165 has been modified based on an edit date, modified date, and/or an access date associated with the resource 165. In this embodiment, the distribution service 174 may periodically request to receive the relevant date from the client side application 126. Upon receiving the relevant date, the distribution service 174 compares the relevant date from the client device 120 with the corresponding date on the distribution server 150 and determines to synchronize the respective resources 165 if the two relevant dates do not match. For instance, the distribution service 174 may employ a synchronization approach as is known in the art. In one embodiment, the distribution service 174 may employ the synchronization approach after determining whether the user is permitted to modify the resource 165 on the client device 120. In another embodiment, the distribution service 174 may remove the resource 165 on the client device 120 upon synchronizing with the distribution server 150. In another embodiment, the distribution service 174 stores the modified resource 165 in the data store 153 as one of a plurality of versions of the respective resource 165.
In another embodiment, the client side application 126 may be pre-authorized to access at least some of the resources 165 hosted by the distribution server 150. In such embodiments, the distribution service 174 may be configured to provide to the client side application 126a listing of all resources 165 available for download by the client device 120 based only on certain embedded authorization data (e.g., device identifier 135, and/or device profile 123, etc.) and without requiring the client side application 126 to provide additional authorization data (e.g., user name and password). For example, the distribution service 174 may identify resources 165 to include in the listing by determining which of the resources 165 are associated with distribution rules 171 that correspond with the device profile 123 of the client device 120. As another example, the distribution service 174 may provide a listing of resources 165 that may be accessible to client devices 120 based at least in part on the location information 133 and the time information 143 as indicated by the device profile 123 of the client device 120. In this example, the distribution service 174 may determine that a resource 165 is accessible to the client device 120 if its location information 133 satisfies location rules 181 associated with the resources 165 and/or if its time information 143 satisfies time rules 191 associated with the resources 165. The distribution service 174 may then allow the client side application 126 to download at least some of the available resources 165.
However, one or more of the available resources 165 may be associated with a distribution rule 171 that requires additional authorization. For instance, the resource 165 may be a document containing sensitive information that requires authorization of a username and password or other additional authorization data. Thus, if the client side application 126 submits a request to download such a resource 165, the distribution server 174 may prompt the client side application 126 to provide additional authorization data. In response, the client side application 126 may prompt the user to provide user credentials 132. In one embodiment, the client side application 126 may transmit the user credentials 132 and/or the device identifier 135 of the client device 120 to the distribution service 174. The distribution service 174 may then authorize the user to access the sensitive resource 165 using an authorization approach as described in U.S. application Ser. No. 13/316,073 entitled “CONTROLLING ACCESS TO RESOURCES ON A NETWORK,” which is incorporated herein by reference. Upon determining that the user is authorized to access the sensitive resource 165 from the client device 120, the distribution service 174 may allow the client side application 126 to download the sensitive resource 165.
Next, an exemplary set of user interfaces is discussed in connection with
Additionally, the interface navigation area 306 may include a plurality of navigation controls to navigate through the interface generated by the distribution service 174 (
The content viewing area 309 may include a viewing area for viewing, accessing, manipulating, editing, executing, consuming, and/or otherwise using the resource 165 provided by the distribution service 174. In one embodiment, the resources 165 may be automatically received from the distribution server 150 and made available for the user in the content viewing area 309. For example, the distribution service 174 may automatically transmit a resource 165 to the client device 120 based on one or more resource qualifiers 172, as discussed above. In another embodiment, the user may be presented with a download button to transmit a request 177 to download a resource 165 made available by the distribution service 174. For example, the distribution service 174 may provide a resource 165 to be available upon a download request 177 by the user of the client device 120 based on one or more resource qualifiers, as discussed above.
Next, an exemplary set of user interfaces 137 (
Additionally, the documents area 506 includes a listing of resources 165 that are associated with the resource grouping identifier 154 depicted by the resource group indicator 501. In one embodiment, the resources 165 may be presented in a table 509 where each row in the table includes identifying information for each of the respective resources 165. For instance, the table may include a name of the resource 165, a type of the resource 165, a brief description of the resource 165, an owner of the resource 165, an effective date of the resource 165, and a date of last modification of the resource 165. Additionally, a plurality of management buttons 513 may be presented for each resource 165. For instance, the management buttons 513 may permit the administrator to edit the resource qualifiers 172 (
In one embodiment, the documents area 506 may also include an “add document” button 516, a “bulk import” button 519, and sorting options 523. For instance, invoking the “add document” button 516 may transmit a request to the distribution service 174 to add new resources 165 to be hosted by the distribution server 150, as will be described with respect to
In one embodiment, invoking one of the tabs in the navigational panel 703 may transmit a request 177 (
Beginning with step 803, the distribution service 174 receives a request 177 (
Next, in step 806, the distribution service 174 determines whether the client device 120 and the user operating the client device 120 are authorized to access the resources 165 hosted by distribution service 174. In one embodiment, the distribution service 174 may authorize the user and client device 120 pairing according to the approach described in application Ser. No. 13/316,073 entitled “CONTROLLING ACCESS TO RESOURCES ON A NETWORK,” as described above. If the distribution service 174 determines that the user may not access the resources 165 from the client device 120, then the distribution server 150 advances to step 809 and notifies the user. For instance, the distribution service 174 may transmit a notification indicating that the user is not authorized to access the resources 165 from the client device 120.
Returning to step 806, if the distribution service 174 determines that the user is authorized to access the resources 165, then the distribution service 174 proceeds to step 810 and provides a user interface 137 (
Then, in step 816, the distribution service 174 identifies the resources 165 that are associated with the determined resource grouping identifiers 154. In one embodiment, each resource 165 may be associated with more than one resource grouping identifier 154. Additionally, each resource grouping identifier 154 may have an association with more than one resource 165, as described above. Upon identifying all of the resources 165 associated with the determined resource grouping identifiers 154, the distribution service 174 proceeds to step 819 and determines whether the client device 120 from which the request 177 was received complies with the distribution rules 171 associated with each one of the identified resources 165. In one embodiment, the distribution service 174 determines whether the client device 120 is compliant based on the device profile 123 associated with the client device 120. For instance, the distribution service 174 may have received the device profile 123 in conjunction with the request 177. As another example, the distribution service 174 may determine whether the location information 133 (
If the distribution service 174 determines that the client device 120 does not comply with any of the distribution rules 171 associated with each one of the resources 165, then the distribution service 174 proceeds to step 809 and transmits a notification of noncompliance to the client device 120. In one embodiment, the distribution service 174 may determine that the client device 120 complies with the distribution rules 171 of a portion of the identified resources 165. In this example, the distribution service 174 may transmit a notification of noncompliance to the client device 120 that includes a name of the identified resources 165 and a message that the client device 120 is not authorized to receive due to noncompliance with the distribution rules 171 associated with the identified resource 165.
Returning to step 819, if the distribution service 174 determines that the client device 120 complies with the distribution rules 171 of all and/or a portion of the identified resources 165, the distribution service 174 proceeds to step 823 and transmits the identified resources 165 associated with the distribution rules 171 with which the client device 120 is in compliance. In one embodiment, the distribution service 174 automatically transmits the identified resources 165 that the client device 120 is authorized to receive based on compliance with distribution rules 171. In another embodiment, the distribution service 174 may make available for download the identified resources 165 that the client device 120 is authorized to receive. For instance, the client device 120 may receive an indication that the resource 165 is available for download and may transmit a request 177 to the distribution service 174 for downloading the applicable resource 165. Upon receiving the request, the distribution service 165 may transmit the resource 165 to the client device 120. Additionally, in another embodiment, the distribution rules 171 associated with the transmitted resources 165 may be transmitted in conjunction with the resources 165. For instance, a client side application 126 (
Beginning with step 903, the client side application 126 transmits a request 177 (
Then, in step 906, the client side application 126 receives a plurality of sets distribution rules 171 (
Upon receiving the distribution rules 171, the client side application 126, in step 909, determines whether the client device 120 is compliant with the sets of distribution rules 171 associated with the resources 165 accessible to the user and client device 120 pairing. In one embodiment, the client side application 126 may determine whether the client device 120 is compliant with the sets of distribution rules 171 based on the device profile 123 (
Returning to step 909, if the client side application 126 determines that the client device 120 is compliant with all and/or a portion of the sets of distribution rules 171, then the client side application 126 proceeds to step 916 and transmits an notification of compliance to the distribution service 174. In one embodiment, if the client side application 126 determines that the client device 120 is compliant with only a portion of the sets of distribution rules 171, then the notification may include an indication of the sets of distribution rules 171 with which the client device 120 complies.
Then, in step 919, the client side application 126 receives the resources 165 associated with the distribution rules 171 with which the client device 120 complies. In one embodiment, the resources 165 may be automatically received by the client device 120. In another embodiment, the client side application 126 may receive an indication that the resources 165 are available for download. In step 923, the received resources 165 are rendered on the display 136. In one embodiment, the client side application 126 may render a notification to the user that the resources 165 are available for download. Then, upon receiving a request 177 from the user to download the resources 165, the client side application 126 may download the resources 165 from the distribution server 150 and render the downloaded resources 165 on the display 136.
The network 110 may also facilitate the identification of location information 133 (
In another embodiment, the location of a client device 120 may be identified based on the client device's detection of the signal strength of more than one transmission beacon, known well in the art as “triangulation.” In particular, the two-dimensional location of a client device 120 may be identified by comparing the signal strength of two transmission beacons detected by the client device 120. Similarly, the three-dimensional location of a client device 120 may be identified by comparing the signal strength of three transmission beacons detected by the client device 120.
In a further embodiment, the location of a client device 120 may be identified based on the detection of the client device 120 by the network 110. In particular, the network 110 may include one or more transmission beacons. The transmission beacons may provide the network 110 with an indication of which client devices 120 are connected to the transmission beacon. The transmission beacons may further provide the network 110 with an indication of the characteristics of the transmission beacon such as its identity and hardware specifications, which may indicate the transmission range of the transmission beacon. Thus, the location of a client device 120 may be identified by the network 110 by determining which transmission beacon the client device 120 is utilizing and the maximum distance that the client device 120 may be from the transmission beacon based on the characteristics of the transmission beacon.
In yet another embodiment, the location of a client device 120 may be identified based on the known previous location of the client device 120 and the known movements of the client device 120, which is well known in the art as “dead reckoning.” The location of a client device 120 may have been previously identified based on any of the aforementioned client device 120 positioning methodologies. Additionally, the client device 120 may be capable of determining any movement of the client device 120 from the previously identified location of the client device 120. For example, the client device 120 may include movement sensors capable of determining the rate of movement of the client device 120, the duration of movement of the client device 120, and the direction of movement of the client device 120. Thus, the client device 120 may use the data obtained from the movement sensors to identify the location of the client device 120 based on its movement from its previously identified location.
In yet a further embodiment, the location of the client device 120 may be identified based on the device profile 123 associated with the client device 120. More specifically, the device profile 123 may hold an indication of the location of the client device 120 that was obtained by the device profile 123 on any of the aforementioned client device 120 positioning methodologies. Alternatively, the indication of the location of the client device 120 provided by the device profile 123 may be identified based on data obtained from satellites and/or Global Positioning Systems.
Additionally,
The networked environment 1000, including the authorized location 1001 and the authorized perimeter 1002, provide for heightened security of location-sensitive resources 165. In one embodiment, the distribution service 174 administrator may specify that resources 165 with high sensitivity may only be accessed by client devices 120 located within the authorized location 1001. In another embodiment, the administrator may specify that resources 165 with low sensitivity may be accessed by client devices 120 located within either the authorized location 1001 or the authorized perimeter 1002. The magnitude of the authorized perimeter 1002 may be based at least in part on the type of authorized location 1001. For example, an authorized perimeter 1002 encompassing a large authorized location 1001, such as a football stadium, may be larger than an authorized perimeter 1002 encompassing a small authorized location 1001, such as a corporate board meeting room. Additionally, the magnitude of the authorized perimeter 1002 may be based at least in part on the sensitivity of associated resources 165. For example, authorized perimeters 1002 associated with resources 165 with high sensitivity may be smaller than authorized perimeters 1002 associated with resources 165 with low sensitivity.
As described with regard to
As an example, the location rules 181 may specify that client devices 120 located within the authorized location 1001 may be authorized for access to a “high sensitivity” subset of resources 165, client devices 120 located within the authorized perimeter 1002 may be authorized for access to a “medium sensitivity” subset of resources 165, and client devices 120 located outside of both the authorized location 1001 and authorized perimeter 1002 may be authorized for access to a “low sensitivity” subset of resources 165. Additionally, the location rules 181 may specify that client devices 120 authorized for access to the “high sensitivity” subset resources 165 are further authorized for access to both the “medium sensitivity” and “low sensitivity” subsets of resources 165 and that client devices 120 authorized for access to the “medium sensitivity” subset of resources 165 are further authorized for access to the “low sensitivity” subset of resources 165. Thus, client devices 120 that are authorized for access to resources 165 associated with more restrictive location rules 181 may further be authorized for access to resources 165 associated with less restrictive location rules 181. Additionally, the location rules 181 may specify that the resources 165 must be deleted from client devices 120 that cease to comply with the location rules 181 associated with such resources 165. While in some examples, client devices 120 located outside of both the authorized location 1001 and authorized perimeter 1002 to be authorized for access to a “low sensitivity” subset of resources 165, it is to be understood that a more restrictive security schema may prohibit client devices 120 located outside of both the authorized location 1001 and authorized perimeter 1002 from accessing any resources 165.
In one embodiment, the client side application 126 executed by the client device 120a may transmit a request 177 (
Next, the distribution service 174 may determine which, if any, of the subsets of resources 165 that the client device 120a is authorized to access. More specifically, the distribution service 174 may authorize the client device 120a for access to resources 165 associated with location rules 181 that are satisfied by the location information 133 associated with the client device 120a. The location information 133 associated with the client device 120a may indicate that the client device 120a is located within the authorized location 1001. If the distribution service 174 determines that the client device 120a is located within the authorized location 1001, the distribution service 174 may then authorize the client device 120a to access the “high sensitivity” subset of resources 165, the “medium sensitivity” subset of resources 165, and the “low sensitivity” subset of resources 165. The distribution service 174 may, for example, transmit the “high sensitivity,” “medium sensitivity,” and “low sensitivity” subsets of resources 165 to the client device 120a to provide the client device 120a with access to the resources 165.
While the client device 120a may be authorized to access the resources 165 upon receipt from the distribution service 174, the client device 120a may cease to be authorized based on any changes in its location. To this end, the client side application 126 may monitor the location information 133 associated with the client device 120a to determine whether the client device 120a remains compliant with the location rules 181 associated with the resources 165. In one embodiment, in the event that the client device 120a fails to comply with some or all of the location rules 181, the client side application 126 may terminate access to the resources 165 in accordance with the location rules 181 by preventing the resources 165 from being accessed by the client device 120a while the location rules 181 are not satisfied. For example, the resources 165 may be configured to be inaccessible while the location rules 181 are not satisfied by the client device 120a and may be further configured to be unlocked while the location rules 181 are satisfied by the client device 120a. In another embodiment, in the event that the client device 120a fails to comply with some or all of the location rules 181, the client side application 126 may terminate access to the resources 165 in accordance with the location rules 181 by deleting the resources 165 from the client device 120a.
For example, if the client side application 126 determines that the client device 120a remains in its initial location, the client side application 126 may continue to provide access to each of the subsets of resources 165 on the client device 120a. However, if the client side application 126 determines that the current location of the client device 120a is no longer in its initial location, the client side application 126 may determine whether the client device 120a is authorized to access the resources 165 based on the current location of client device 120a. If the client device 120a remains located within the authorized location 1001, then the client side application 126 may continue to provide access to each of the subsets of resources 165. If the client device 120a is currently located within the authorized perimeter 1002, then the client side application 126 may provide access to the “medium sensitivity” and “low sensitivity” subsets of resources 165 and may remove access to the “high sensitivity” subset of resources 165, as may be indicated by the location rules 181 associated with the respective resources 165. Finally, if the client device 120a is neither located within the authorized location 1001 nor the authorized perimeter 1002, then the client side application 126 may provide access to the “low sensitivity” subset of resources 165 and may remove access to the “high sensitivity” and “medium sensitivity” subsets of resources 165. In another embodiment, the client side application 126 may delete and/or otherwise make inaccessible the “low sensitivity” subsets of resources 165 from the client device 120a if the client device 120a is neither located within the authorized location 1001 nor the authorized perimeter 1002.
In another embodiment, the client side application 126 executed by the client device 120b may transmit a request 177 for access to resources 165 to the distribution service 174 that may include user credentials 132, a client device identifier 135, and location information 133 related to the location of the client device 120b. As previously discussed, the location information 133 may be identified from the device profile 123 of the client device 120b or based at least in part on data associated with the network 110. On a first request for access, the distribution service 174 may determine that the client device 120b is authorized to access the distribution server 150 as the user credentials 132 and device identifier 135 associated with the client device 120b are authorized. The distribution service 174 may further determine whether the client device 120b is authorized to access resources 165 based on the location rules 181 associated with the resources 165. The location information 133 associated with the client device 120b may indicate that the client device 120b is located within the authorized perimeter 1002. Accordingly, the distribution service 174 may authorize the client device 120b to access the “medium sensitivity” and “low sensitivity” subsets of resources 165; for example, the distribution service 174 may transmit the “medium sensitivity” and “low sensitivity” subsets of resources 165 to the client device 120b to provide the client device 120b with access to the “medium sensitivity” and “low sensitivity” subsets of the resources 165.
While the client device 120b may be authorized to access the resources 165 upon receipt, the client device 120b may cease to be authorized based on changes to its location. To this end, the client side application 126 may monitor the location information 133 associated with the client device 120b to determine whether the client device 120b remains compliant with the location rules 181 associated with the resources 165. In one embodiment, if the client side application 126 determines that the client device 120b remains in its initial location, then the client side application 126 may continue to provide access to the “medium sensitivity” and “low sensitivity” resources 165. In another embodiment, if the client side application 126 determines that client device 120b is no longer in its initial location, then the client side application 126 may further determine whether client device 120b is authorized to access resources 165 based on the current location of client device 120b. For example, if the client device 120b remains located within the authorized perimeter 1002, then the client side application 126 may continue to provide access to the “medium sensitivity” and “low sensitivity” subsets of resources 165. If the client device 120b is now located within the authorized location 1001, then the client side application 126 may continue provide access to the “medium sensitivity” and “low sensitivity” subsets of resources 165 and may transmit a request 177 to the distribution service 174 to access the “high sensitivity” subset of resources 165. Finally, if the client device 120b is now neither located within the authorized location 1001 nor the authorized perimeter 1002, the client side application 126 may continue to provide access to the “low sensitivity” subset of resources 165 and may delete the “medium sensitivity” subset of resources 165 from client device 120b.
In a further embodiment, the client side application 126 executed by client device 120c may transmit a request 177 for access to resources 165 to the distribution service that may include user credentials 132, a client device identifier 135, and location information 133 specifying the location of the client device 120c. As previously discussed, the location information 133 may be identified from the device profile 123 of the client device 120c or based at least in part on data associated with the network 110. On a first request for access, the distribution service 174 may determine that the client device 120c is authorized to access the distribution server 150 as the user credentials 132 and device identifier 135 associated with the client device 120c are authorized. The distribution service 174 may further determine whether the client device 120c is authorized to access resources 165 based on the location rules 181 associated with the resources 165. The location information 133 associated with the client device 120c may indicate that the client device 120c is neither located within the authorized location 1001 nor located within the authorized perimeter 1002. Accordingly, the distribution service 174 may authorize the client device 120b to access the “low sensitivity” subset of resources 165; for example, the distribution service 174 may transmit the “low sensitivity” subset of resources 165 to the client device 120c to provide the client device 120c with access to the “low sensitivity” subset of the resources 165.
While the client device 120c may be authorized to access the resources 165 upon receipt, the client device 120c may cease to be authorized based on changes to its location. To this end, the client side application 126 may monitor the location information 133 associated with the client device 120c to determine whether the client device 120c remains compliant with the location rules 181 associated with the resources 165. In one embodiment, if the client side application 126 determines that the client device 120c remains in its initial location, then the client side application 126 may continue to provide access to the “low sensitivity” resources 165. In another embodiment, if the client side application 126 determines that client device 120c is no longer in its initial location, then the client side application 126 may further determine whether client device 120c is authorized to access resources 165 based on the current location of client device 120c. For example, if the client device 120c is neither located within the authorized location 1001 nor located within the authorized perimeter 1002, then the client side application 126 may continue to provide access to “low sensitivity” subset of resources 165. If the client device 120c is now located within the authorized location 1001, then the client side application 126 may continue to provide access to the “low sensitivity” subset of resources 165 and may transmit a request 177 to the distribution service 174 to access the “high sensitivity” and “medium sensitivity” subsets of resources 165. Finally, if the client device 120b is now located within the authorized perimeter 1002, then the client side application 126 may continue to provide access to the “low sensitivity” subset of resources 165 and may transmit a request 177 to the distribution service 174 to access the “medium sensitivity” subset of resources 165.
In another embodiment, the resources 165 accessible to the client device 120 may be determined based at least in part on the time rules 181 (
In addition, the time information 143 specifying the current time associated with client devices 120 on the network 110 may be identified based at least in part on the location information 133 associated with the client devices 120. For instance, if the current time in Atlanta, Ga. is 1 PM, then the location information 133 specifying that a client device 120 is located in Atlanta, Ga. may be correlated with time information 143 specifying that the current time associated with the client device is 1 PM. By employing such a location-based time determination methodology, the settings of a client device 120 cannot be manipulated to gain an/or prolong access to resources 165. For instance, a user of a client device 120 might seek to prolong access to resources 165 by rolling back the set time of the client device 120 to a time when the client device 120 was authorized.
The distribution service 174 administrator may configure the time rules 191 to restrict access to resources 165 with “high sensitivity” to client devices 120 whose current time corresponds to a single authorized time. The distribution service 174 administrator may further configure the time rules 191 to restrict access to resources 165 with “medium sensitivity” to client devices 120 whose current time is within an authorized time window, i.e. a collection of sequenced authorized times. The magnitude of the authorized window may be based at least in part on the sensitivity of associated resources 165; thus, authorized windows associated with highly time sensitive resources 165 may be smaller in magnitude than authorized windows associated with resources 165 of lesser time sensitivity. For example, the time rules 191 may specify that the resources 165 may only be accessed by client devices 120 while the current time is between 12:01 PM and 1 PM. Additionally, the distribution service 174 administrator may configure the time rules 191 to require that access to the resources 165 be removed from client devices 120 that do not satisfy the time rules 191. Furthermore, the distribution service 174 administrator may configure the time rules 191 to permit the resources 165 to remain stored in an inaccessible format on incompliant client devices 120 that are located within the authorized location 1001 but require that the resources 165 be deleted from incompliant client devices 120 that are located outside of the authorized location 1001.
As an example, the authorized location 1001 may correspond to a Board Room in Atlanta, Ga., the authorized perimeter 1002 may correspond to the city of Atlanta, Ga., and the area outside of the authorized location 1001 and authorized perimeter 1002 may correspond to the city of Chicago, Ill. The Board Room in Atlanta, Ga. and the city of Atlanta, Ga. may both reside in the Eastern Time Zone, and the city of Chicago, Ill. may reside in the Central Time Zone. Thus, client devices 120 located within the authorized location 1001 and authorized perimeter 1002 may be associated with time information 143 specifying that the current time associated with such client devices 120 is the current time in the Eastern Time Zone. Similarly, client devices 120 located outside of the authorized location 1001 and authorized perimeter 1002 may be associated with time information 143 specifying that the current time associated with such client devices 120 is the current time in the Central Time Zone. Referring to
In one embodiment, the client side application 126 executed by the client device 120a may transmit a request 177 for access to resources 165 to the distribution service 174 that may include user credentials 132, a client device identifier 135, and time information 143 related to the current time associated with the client device 120a. As previously discussed, the time information 143 may be identified from the device profile 123 of the client device 120a or based at least in part on data associated with the network 110, such as an indication of the location of the client device 120a.
On a first request for access, the distribution service 174 may determine that the client device 120a is authorized to access the distribution server 150 as the user credentials 132 and device identifier 135 associated with the client device 120a are authorized. The distribution service 174 may further determine whether the client device 120a is authorized to access resources 165 based on the time rules 191 associated with the resources 165. The time information 143 associated with the client device 120e may indicate that the current time associated with the client device 120a is 1 PM. Accordingly, the distribution service 174 may authorize the client device 120a to access the resources 165 because the current time of 1 PM falls within the authorized window of 12:01 PM-1 PM specified by the time rules 191 associated with the resources 165. For example, the distribution service 174 may transmit the resources 165 to the client device 120a to provide the client device 120a with access to the resources 165.
While the client device 120a may be authorized to access the resources 165 upon receipt, the client device 120a may cease to be authorized based on any changes in the current time associated with the client device 120a. To this end, the client side application 126 may monitor the time information 143 associated with the client device 120a to determine whether the client device 120a satisfies the time rules 191. If the client device 120a fails to satisfy some or all of the time rules 191, then the client side application 126 may remove access to the resources 165 on the client device 120a. For example, the client side application 126 may permit the resources 165 to remain stored in an inaccessible format on client device 120a because the client device 120a is located within the authorized location 1001.
In another embodiment, the client side application 126 executed by client device 120b may transmit a request 177 for access to resources 165 to the distribution service 174 that may include user credentials 132, a client device identifier 135, and time information 143 specifying the current time associated with the client device 120b. As previously discussed, the time information 143 may be identified from the device profile 123 of the client device 120b or based at least in part on data associated with the network 110. On a first request for access, the distribution service 174 may determine that the client device 120b is authorized to access the distribution server 150 as the user credentials 132 and device identifier 135 associated with the client device 120b are authorized. The distribution service 174 may further determine whether the client device 120b is authorized to access resources 165 based on the time rules 191 associated with the resources 165. The time information 143 associated with the client device 120b may indicate that current time associated with the client device 120b is 1 PM. Accordingly, the distribution service 174 may authorize the client device 120b to access the resources 165 because the current time of 1 PM falls within the authorized window of 12:01 PM-1 PM specified by the time rules 191 associated with the resources 165. For example, the distribution service 174 may transmit the resources 165 to the client device 120b to provide the client device 120b with access to the resources 165.
While the client device 120b may be authorized to access the resources 165 upon receipt, the client device 120b may cease to be authorized based on any changes in the current time associated with the client device 120b. To this end, the client side application 126 may monitor the time information 143 associated with the client device 120b to determine whether the client device 120b satisfies the time rules 191. If the client device 120b fails to satisfy some or all of the time rules 191, then the client side application 126 may remove access to the resources 165 on the client device 120b. For example, the client side application 126 may delete the resources 165 from the client device 120b because the client device 120b is not located within the authorized location 1001.
In a further embodiment, the client side application 126 executed by client device 120c may transmit a request 177 for access to resources 165 to the distribution service 174 that may include user credentials 132, a client device identifier 135, and time information 143 specifying the current time associated with the client device 120c. As previously discussed, the time information 143 may be identified from the device profile 123 of the client device 120c or based at least in part on data associated with the network 110. On a first request for access, the distribution service 174 may determine that the client device 120c is authorized to access the distribution server 150 as the user credentials 132 and device identifier 135 associated with the client device 120c are authorized. The distribution service 174 may further determine whether the client device 120c is authorized to access resources 165 based on the time rules 191 associated with the resources 165. The time information 143 associated with the client device 120c may indicate that current time associated with the client device 120c is 12 PM. Accordingly, the distribution service 174 may not authorize the client device 120c to access the resources 165 because the current time of 12 PM does not fall within the authorized window of 12:01 PM-1 PM specified by the time rules 191 associated with the resources 165.
The distribution service 174 may transmit a notice of non-compliance to the client device 120c that specifies that the client device 120c is not authorized to access the resources 165 at the current time of 12 PM. The distribution service 174 may further specify in the notice of non-compliance that the client device 120c may become authorized to access the resources 165 at 12:01 PM. In response to receiving the notice of non-compliance from the distribution service 174, the client side application 126 may transmit another request 177 for access to the resources 165 at 12:01 PM. In particular, the client side application 126 may transmit the request 177 once it has determined that the time information 143 associated with the client device 120c specifies that the current time associated with the client device 120c is 12:01 PM. In response to receiving such a request 177, the distribution service 174 may authorize the client device 120c to access the resources 165 because the current time of 12:01 PM falls within the authorized window of 12:01 PM-1 PM specified by the time rules 191 associated with the resources 165. For example, the distribution service 174 may transmit the resources 165 to the client device 120c to provide the client device 120c with access to the resources 165.
While the client device 120c may be authorized to access the resources 165 upon receipt, the client device 120c may cease to be authorized based on any changes in the current time associated with the client device 120c. To this end, the client side application 126 may monitor the time information 143 associated with the client device 120c to determine whether the client device 120c satisfies the time rules 191. If the client device 120c fails to satisfy some or all of the time rules 191, then the client side application 126 may remove access to the resources 165 on the client device 120c. For example, the client side application 126 may delete the resources 165 from the client device 120c because the client device 120c is not located within the authorized location 1001.
Finally, it is to be understood that the administrator of the distribution service 174 may configure the resources 165 to be associated with any combination of location rules 181, time rules 191, and distribution rules 171 to meet the varying security requirements associated with resources 165 that may be accessed over the network 110. The embodiments disclosed herein are only examples of the functionality provided by a distribution service 174 and a client side application 126 for controlling access to resources 165 on a network 110, and may be combined and/or altered without departing from the scope and substance of the disclosure.
The location-specific content navigation area 1103 may present resources 165 accessible to the client device 120 based on the location of the client device 120. In particular, the resources 165 are organized according to a plurality of location rules 181 (
As an example, a client device 120 may be located within the “Board Room” and the Board Room may be located within the United States of America. The browsing interface 137b may provide an indication of which resources 165 are accessible by the client device 120 based on the client device 120 being located within the Board Room. The location-specific content navigation area 1103 may present four groupings of resources 165, such as the “All Locations” resource grouping 1103a, the “U.S.A.” resource grouping 1103b, the “Board Room” resource grouping 1103c, and the “Europe” resource grouping 1103d.
The “All Locations” resource grouping 1103a may include all of the resources 165 that the client device 120 may be authorized to access based on the location of the client device 120. The client device 120 is authorized to access resources 165 restricted to the U.S.A. based on its location within the U.S.A. and resources 165 restricted to the Board Room based on its location within the Board Room. Accordingly, the “All Locations” resource grouping 1103a may include the resources 165 from the “U.S.A.” resource grouping 1103b and the “Board Room” resource grouping 1103c. The browsing interface 137b does not superimpose a restricted symbol over the icon associated with the “All Locations” resource grouping 1103a to indicate that such resource grouping is presently accessible by the client device 120. Similarly, as client device 120 may be authorized to access the “U.S.A.” resource grouping 1103b and “Board Room” resource grouping 1103c based on its location, the browsing interface 137b does not superimpose a restricted symbol over the icon associated with either the “U.S.A.” resource grouping 1103b or “Board Room” resource grouping 1103c to indicate that such resource groupings are presently accessible by the client device 120. On the other hand, the client device 120 may not be authorized to access the “Europe” resource grouping 1103d as the client device 120 is not located within Europe. Thus, the browsing interface 137b may superimpose a restricted symbol over the icon associated with the “Europe” resource grouping 1103d to indicate that such resource grouping is not presently accessible by the client device 120.
Similarly, the time-specific content navigation area 1106 may present resources 165 accessible to the client device 120 based on the current time associated with the client device 120. In particular, the resources 165 are organized according to a plurality of time rules 191 (
Continuing with the example, the current time associated with the client device 120 may be 13:00:01 on 7/23/2012. The browsing interface 137b may provide an indication of which resources 165 are accessible to the client device 120 based on the current time associated with the client device 120 of 13:00:01 on 7/23/2012. The time-specific content navigation area 1106 may present three groupings of resources 165, such as the “All Times” resource grouping 1106a, the “7/23/2012 13:00:00-7/23/2012 14:00:00” resource grouping 1106b, and the “7/24/2012 09:00:00-7/24/2012 10:00:00” resource grouping 1106c.
The “All Times” resource grouping 1106a may include all of the resources 165 that the client device 120 may be authorized to access based on the current time associated with the client device 120. The client device 120 is authorized to access resources 165 restricted to the authorized window between 7/23/2012 13:00:00 and 7/23/2012 14:00:00 based on the current time of 7/23/2012 13:00:01. Accordingly, the “All Times” resource grouping 1106a may include the resources 165 from the “7/23/2012 13:00:00-7/23/2012 14:00:00” resource grouping 1106b. The browsing interface 137b does not superimpose a restricted symbol over the icon associated with the “All Times” resource grouping 1106a to indicate that such resource grouping is presently accessible by the client device 120. Similarly, as client device 120 may be authorized to access the “7/23/2012 13:00:00-7/23/2012 14:00:00” resource grouping 1106b based on the current time, the browsing interface 137b does not superimpose a restricted symbol over the icon associated with the “7/23/2012 13:00:00-7/23/2012 14:00:00” resource grouping 1106b to indicate that such resource grouping is presently accessible by the client device 120. On the other hand, the client device 120 may not be authorized to access the “7/24/2012 09:00:00-7/24/2012 10:00:00” resource grouping 1106c as the current time associated with the client device 120 is not within the authorized window between 7/24/2012 13:00:00 and 7/24/2012 14:00:00 based on the current time of 13:00:01 on 7/23/2012. Accordingly, the browsing interface 137b may superimpose a restricted symbol over the icon associated with the “7/24/2012 09:00:00-7/24/2012 10:00:00” resource grouping 1106c to indicate that such resource grouping is not presently accessible by the client device 120.
While preventing client devices 120 from initially gaining unauthorized access to resources 165 may be sufficient to protect some resources 165, more sensitive resources 165 may require protection on a continuous basis to ensure that the client device 120 remains compliant with any location rules 181 (
Thus, the location rules 181 associated with the resources 165 belonging to the “Board Room” resource grouping 1103c (
As exemplified in
As an example, the client device 120 may no longer be presently located within the “Board Room” and the current time associated with the client device 120 may no longer fall within the authorized window from 7/23/2012 13:00:00 to 7/23/2012 14:00:00. Accordingly, the client device 120 may no longer authorized to access either the resources 165 belonging to the “Board Room” resource grouping 1103c or the resources 165 belonging to the “7/23/2012 13:00:00-7/23/2012 14:00:00” resource grouping 1106b. The client device 120 may not be authorized to access the “Board Room” resource grouping 1103c as the location information 133 associated with the client device 120 does not satisfy the location rules 181 associated with the “Board Room” resource grouping 1103c. Similarly, the client device 120 may not be authorized to access the “7/23/2012 13:00:00-7/23/2012 14:00:00” resource grouping 1106b as the time information 143 associated with the client device 120 does not satisfy the time rules 191 associated with the “7/23/2012 13:00:00-7/23/2012 14:00:00” resource grouping 1106b.
Consequently, the client device 120 may initiate mediatory action in accordance with the unsatisfied location rules 181 associated with the “Board Room” resource grouping 1103c and the unsatisfied time rules 191 associated with the “7/23/2012 13:00:00-723/2012 14:00:00” resource grouping 1106b. In particular, the client device 120 may delete the resources 165 belonging to the “Board Room” resource grouping 1103c and the “7/23/2012 13:00:00-7/23/2012 14:00:00” resource grouping 1106b from the client device 120. Additionally, the client device 120 may provide a compliance error message 1203 on the browsing interface 137b to notify the user of the client device 120 of why the client device 120 is no longer authorized to access the previously authorized resources 165. The compliance error message 1203 may specify that the client device 120 is incompliant for the previously authorized resources 165 because the “Client Device is not located at ‘Board Room’” and the “Current Time is not between: 7/23/2012 13:00:00 and 7/23/2012 14:00:00.” The compliance error message 1203 may further specify that the “relevant resources have been deleted” from the client device 120 and that the client device 120 “will be unable to access the relevant resources” until the client device 120 is compliant with the associated location rules 181 and/or time rules 191. Finally, the browsing interface 137b may superimpose a restricted symbol over the icons associated with the “Board Room” resource grouping 1103c and the “7/23/2012 13:00:00-7/23/2012 14:00:00” resource grouping 1106b to indicate to that the client device 120 is not authorized to access the resources 165 belonging to such resource groupings.
Additionally, the documents area 506 includes a listing of resources 165 that are associated with the resource grouping identifier 154 depicted by the resource indicator 501. In one embodiment, the resources 165 may be presented in a table 509 where each row in the table includes identifying information for each of the respective resources 165. For instance, the table may include a name of the resource 165, a type of the resource 165, a brief description of the resource 165, an authorized location 1303 associated with the resource 165, an authorized start time 1306a of an authorized window associated with the resource 165, and an authorized end time 1306b of an authorized window associated with the resource 165.
The authorized location 1303 may represent one or more locations where a client device 120 may be located to be authorized to access the resources 165, as specified by one or more location rules 181 (
In one embodiment, a plurality of management buttons 513 may also be presented for each resource 165. For instance, the management buttons 513 may permit the administrator to associate distribution rules 171 (
Beginning with step 1403, the distribution service 174 receives a request 177 (
Next, in step 1406, the distribution service 174 determines whether the client device 120 and the user operating the client device 120 are authorized to access the distribution service 174. In one embodiment, the distribution service 174 may authorize the user and client device 120 pairing according to the approach described in application Ser. No. 13/316,073 entitled “CONTROLLING ACCESS TO RESOURCES ON A NETWORK,” as described above. If the distribution service 174 determines that the user may not access the distribution service 174 from the client device 120, then the distribution service 174 may advance to step 1430 and notify the user of the failed authorization. For instance, the distribution service 174 may transmit a notification that specifies that the user is not authorized to access the distribution service 174 from the client device 120.
Returning to step 1406, if the distribution service 174 determines that the user may access the distribution service 174 from the client device 120, then the distribution service 174 advances to step 1409. In step 1409, the distribution service 174 identifies one or more resource grouping identifiers 154 that are associated with the client device 120. For example, the distribution service 174 may identify resource grouping identifiers 154 associated with the client device 120 based on the user credentials 132 and the device identifier 135. In one embodiment, a client device 120 may be associated with one or more resource grouping identifier 154, and a resource grouping identifier 154 may be associated with one or more client devices 120.
Next, in step 1412, the distribution service 174 identifies one or more resources 165 that are associated with the determined resource grouping identifiers 154. In one embodiment, a resource 165 may be associated with one or more resource grouping identifiers 154, and a resource grouping identifier 154 may be associated with one or more resources 165. Then, in step 1415, the distribution service 174 identifies one or more distribution rules 171 (
If the distribution service 174 determines that the distribution rules 171 include location rules 181, the distribution service 174 proceeds to step 1421 to identify the location information 133 associated with the client device 120. Similarly, if the distribution service 174 determines that the distribution rules 171 include time rules 191, the distribution service 174 proceeds to step 1421 to identify the time information 143 associated with the client device 120. In one embodiment, the distribution service 174 may identify the location information 133 and/or time information 143 from the device profile 123 associated with the client device 120. In another embodiment, the distribution service 174 may identify the location information 133 and/or time information 143 based at least in part on network 110 (
Next, in step 1424, the distribution service 174 determines whether the client device 120 from which the request 177 was received complies with the distribution rules 171 associated with each one of the identified resources 165, including any identified location rules 181 and/or time rules 191. In one embodiment, the distribution service 174 determines whether the client device 120 is compliant based on the device profile 123 associated with the client device 120. For instance, the distribution service 174 may have received the device profile 123 in conjunction with the request 177. In another embodiment, the distribution service 174 determines whether the client device 120 is compliant with the distribution rules 171, such as the location rules 181 and the time rules 191, based at least in part on location information 133 and/or time information 143 identified and/or received by the distribution service 174.
If the distribution service 174 determines that the client device 120 does not comply with any of the distribution rules 171 associated with each one of the resources 165, then the distribution service 174 proceeds to step 1430 and transmits a notification of noncompliance to the client device 120. In one embodiment, the distribution service 174 may determine that the client device 120 complies with the distribution rules 171 of a portion of the identified resources 165. For example, the distribution service 174 may transmit a notification of noncompliance to the client device 120 that specifies which of the identified resources 165 the client device 120 is not authorized to access and specifies which distribution rules 171 associated with such resources 165 are not satisfied by the client device 120.
Returning to step 1424, if the distribution service 174 determines that the client device 120 complies with the distribution rules 171 of all and/or a portion of the identified resources 165, the distribution service 174 proceeds to step 1427 and transmits the authorized resources 165 to the client device 120. In one embodiment, the distribution service 174 may transmit the authorized resources 165 to a client side application 126 (
In one embodiment, the distribution service 174 may transmit the authorized resources 165 to the client device 120 based on its compliance with the distribution rules 171 associated with such resources 165. In another embodiment, the distribution service 174 may make the authorized resources 165 available for download by the client device 120. For instance, the client device 120 may receive an indication that the resource 165 is available for download and may, in response, transmit a request 177 to the distribution service 174 to download the resource 165. Upon receiving the request 177, the distribution service 165 may transmit the resource 165 to the client device 120. In a further embodiment, the distribution rules 171 associated with the resources 165 may be transmitted in conjunction with the resources 165 to enable the client device 120 to continuously monitor its compliance with the distribution rules 171. For instance, a client side application 126 on the client device 120 may be configured to continuously or periodically determine whether the client device 120 remains authorized to access the received resources 165.
Beginning with step 1503, the distribution service 174 identifies a client device 120 with access to one or more resources 165 associated with the distribution service 174 that are accessible through a containerized client side application 126 on the client devices 120. Resources 165 may be identified as accessible through a containerized client side application 126 if the resources 165 are associated with metadata specifying that the resources 165 may only be accessed on the client device 120 through a containerized client side application 126. Additionally, resources 165 may be identified as associated with the distribution service 174 if one or more copies of the resources 165 are stored on the data store 153 of the distribution server 150. In one embodiment, the distribution service 174 may call the client device 120 to query its data store 122 to determine whether one or more resources 165 stored on the data store 122 are associated with the distribution service 174. In another embodiment, the distribution service 174 may transmit a listing of resources 165 stored by the distribution service 174 to the client device 120 and request a response specifying whether one or more of the listed resources 165 reside on data store 122 of the client device 120.
Next, in step 1506, the distribution service 174 identifies one or more distribution rules 171 (
If the distribution service 174 determines that the distribution rules 171 include location rules 181, the distribution service 174 proceeds to step 1512 to identify the location information 133 associated with the client device 120. Similarly, if the distribution service 174 determines that the distribution rules 171 include time rules 191, the distribution service 174 proceeds to step 1512 to identify the time information 143 associated with the client device 120. In one embodiment, the distribution service 174 may identify location information 133 and/or time information 143 from the device profile 123 of the client device 120. In another embodiment, the distribution service 174 may identify location information 133 and/or time information 143 based at least in part on network 110 (
Next, in step 1515, the distribution service 174 determines whether the client device 120 complies with the distribution rules 171 associated with each one of the identified resources 165, including any identified location rules 181 and/or time rules 191. In one embodiment, the distribution service 174 may determine whether the client device 120 is compliant based on the device profile 123 of the client device 120. For instance, the distribution service 174 may call the client side application 126 of the client device 120 to retrieve the device profile 123 of the client device 120. In another embodiment, the distribution service 174 may determine whether the client device 120 is compliant with the distribution rules 171 based on location information 133 and/or time information 143 identified by the distribution service 174.
If the distribution service 174 determines that the client device 120 is compliant with the distribution rules 171 associated with the identified resources 165, then the distribution service 174 proceeds to step 1518 and provides continued access to the resources 165 on the client device 120. In one embodiment, the distribution service 174 may call the client device 120 to instruct the client side application 126 to continue to provide access to the resources 165. In another embodiment, the distribution service 174 may take no action and rather allow the client side application 126 of the client device 120 to continue to provide access to the resources 165 without instruction from the distribution service 174.
Returning to step 1515, if the distribution service 174 determines that the client device 120 does not comply with the distribution rules 171 such as the location rules 181 and the time rules 191, then the distribution service 174 proceeds to step 1521 and removes the identified resources 165 from the client device 120. In one embodiment, the distribution service 174 may remove the identified resources 165 from the client device 120 by instructing the client device 120 to delete the identified resources 165 from the client device 120. In another embodiment, the distribution service 174 may remove the identified resources 165 from the client device 120 by instructing the client device 120 to configure the resources 165 to be inaccessible and/or invisible to the client device 120. In yet another embodiment, the distribution service 174 may remove the identified resources 165 from the client device 120 by instructing the client device 120 to restore the client device 120 its default state. In yet another embodiment, the distribution service 174 may remove the identified resources 165 from the client device 120 by instructing the client device 120 to delete all data residing on the client device 120.
Additionally, in step 1524, the distribution service 174 transmits a notification of noncompliance to the client device 120. In one embodiment, the distribution service 174 may transmit a notification of noncompliance to the client device 120 that specifies one or more identified resources 165 and specifies that such identified resources 165 have been deleted from the client device 120 due to noncompliance with the distribution rules 171 associated with the identified resources 165. In another embodiment, in the event that location rules 181 and/or time rules 191 associated with the identified resources 165 are not satisfied by the client device 120, the distribution service 174 may transmit a notification of noncompliance to the client device 120 that further specifies the locations and times when the client device 120 may access the identified resources 165 based on the location rules 181 and/or time rules 191 associated with the resources 165.
While the distribution service 174 may determine that the client device 120 currently complies and/or does not currently comply with the distribution rules 171, the client device 120 may cease to comply and/or begin to comply with the distribution rules 171 due to changes to the state of the client device 120 over time. For instance, as the location information 133 and/or time information 143 associated with the client device 120 may change based on any changes to the location of the client device 120 or the current time associated with the client device 120, the client device 120 may become or cease to be authorized for access to resources 165. Thus, to ensure the ongoing security of the resources 165, the client side application 126 may continuously determine whether the client device 120 is authorized to access the resources 165 by returning to step 1603 after either providing access to the resources 165 in step 1621 or denying access to the resources 165 in steps 1624 and 1627.
Beginning with step 1603, the client side application 126 transmits a request 177 (
Next, in step 1606, the client device 120 receives a transmission of one or more resources 165 from the distribution service 174. In one embodiment, the client device 120 may receive each of the resources 165 associated with the request 177 previously transmitted to the distribution service 174. In another embodiment, the client device 120 may only receive the resources 165 associated with the request 177 that client device 120 is authorized to access. For instance, the client device 120 may receive resources 165 that distribution service 174 has determined that the client device 120 is authorized to access based on elements of the request 177, such as user credentials 132 associated with the user of the client device 120 and a device identifier 135 associated with the client device 120.
Additionally, in step 1609, the client side application 126 receives one or more distribution rules 171 (
Upon receiving the distribution rules 171, in step 1612, the client side application 126 determines whether the distribution rules 171 received from the distribution service 174 include any location rules 181 and/or time rules 191. If the client side application 126 determines that the distribution rules 171 include location rules 181, then the client side application 126 proceeds to step 1615 to identify the location information 133 associated with the client device 120. Similarly, if the client side application 126 determines that the distribution rules 171 include time rules 191, then the client side application 126 proceeds to step 1615 to identify the time information 143 associated with the client device 120. In one embodiment, the client side application 126 may identify the location information 133 and/or time information 143 from the device profile 123 associated with the client device 120. In another embodiment, the client side application 126 may identify the location information 133 and/or time information 143 based at least in part on network 110 (
Next, in step 1618, the client side application 126 determines whether the client device 120 complies with the distribution rules 171 associated with each one of the resources 165, including any identified location rules 181 and/or time rules 191. In one embodiment, the client side application 126 may determine whether the client device 120 is compliant based on the device profile 123 associated with the client device 120. For example, the client side application 126 may determine whether the client device 120 is compliant with the distribution rules 171 based on location information 133 and/or time information 143 stored in the device profile 123 of the client device 120.
If the client side application 126 determines that the client device 120 is compliant with the distribution rules 171 associated with the resources 165, then the client side application 126 proceeds to step 1621 and provides the client device 120 with access to the resources 165. On the contrary, if the client side application 126 determines that the client device 120 does not comply with the distribution rules 171 associated with the resources 165, then the client side application 126 proceeds to step 1624 and removes the resources 165 from the client device 120. In one embodiment, the client side application 126 may remove the resources 165 from the client device 120 by deleting the resources 165 from the client device 120. In another embodiment, the client side application 126 may remove the resources 165 from the client device 120 by configuring the resources 165 to be inaccessible and/or invisible to the client device 120. In yet another embodiment, the client side application 126 may remove the resources 165 from the client device 120 by restoring the client device 120 to its default state. In yet another embodiment, the client side application 126 removes the resources 165 from the client device 120 by removing all data from the client device 120.
Additionally, in step 1627, the client side application 126 renders a notice of noncompliance on the client device 120. In one embodiment, the client side application 126 may render a notification of noncompliance that specifies the identities of the removed resources 165 and specifies that the resources 165 have been removed from the client device 120 due to noncompliance with the distribution rules 171 associated with the resources 165. In another embodiment, the client side application 126 may render a notification of noncompliance on the client device 120 that further specifies the locations and times when the client device 120 may access the identified resources 165 based on the location rules 181 and/or time rules 191 associated with the resources 165.
While the client side application 126 may determine that the client device 120 currently complies with the distribution rules 171 associated with the resources 165, the client device 120 may cease to comply with the distribution rules 171 based on changes to the state of the client device 120 over time. Similarly, while the client side application 126 may determine that the client device 120 currently does not currently comply with the distribution rules 171 associated with the resources 165, the client device 120 may begin to comply with the distribution rules 171 based on changes to the state of the client device 120 over time. For instance, as the location information 133 associated with the client device 120 may change over time based on changes to the location of the client device 120, the client device 120 may either become authorized for access to the resources 165 or may cease to be authorized for access to resources 165. Additionally, as the time information 143 associated with the client device 120 may change overtime based on changes to current time associated with the client device 120, the client device 120 may either become authorized for access to the resources 165 or may cease to be authorized for access to resources 165. Thus, to ensure the ongoing security of the resources 165, the client side application 126 may continuously determine whether the client device 120 is authorized to access the resources 165 by returning to step 1603 after either providing access to the resources 165 in step 1621 or denying access to the resources 165 in steps 1624 and 1627.
Beginning with step 1703, the client side application 126 identifies one or more resources 165 associated with the distribution service 174 (
Next, in step 1706, the client side application 126 identifies the distribution rules 171 (
If the client side application 126 determines that the distribution rules 171 include location rules 181, then the client side application 126 proceeds to step 1712 to identify the location information 133 associated with the client device 120. Similarly, if the client side application 126 determines that the distribution rules 171 include time rules 191, then the client side application 126 proceeds to step 1615 to identify the time information 143 associated with the client device 120. In one embodiment, the client side application 126 may identify the location information 133 and/or time information 143 from the device profile 123 associated with the client device 120. In another embodiment, the client side application 126 may identify the location information 133 and/or time information 143 based at least in part on network 110 (
Next, in step 1715, the client side application 126 determines whether the client device 120 complies with the distribution rules 171 associated with each one of the resources 165, including any identified location rules 181 and/or time rules 191. In one embodiment, the client side application 126 may determine whether the client device 120 is compliant based on the device profile 123 associated with the client device 120. In another embodiment, the client side application 126 may determine whether the client device 120 is compliant based on location information 133 and/or time information 143 associated with the client device 120 identified by the client side application 126.
If the client side application 126 determines that the client device 120 is compliant with the distribution rules 171 associated with the resources 165, then the client side application 126 proceeds to step 1621 and provides the client device 120 with access to the resources 165. On the contrary, if the client side application 126 determines that the client device 120 does not comply with the distribution rules 171 associated with the resources 165, then the client side application 126 proceeds to step 1624 and removes the resources 165 from the client device 120. In one embodiment, the client side application 126 may remove the resources 165 from the client device 120 by deleting the resources 165 from the client device 120. In another embodiment, the client side application 126 may remove the resources 165 from the client device 120 by configuring the resources 165 to be inaccessible and/or invisible to the client device 120. In yet another embodiment, the client side application 126 may remove the resources 165 from the client device 120 by restoring the client device 120 to its default state. In yet another embodiment, the client side application 126 removes the resources 165 from the client device 120 by removing all data from the client device 120.
Additionally, in step 1724, the client side application 126 renders a notice of noncompliance on the client device 120. In one embodiment, the client side application 126 may render a notification of noncompliance that specifies the identities of the removed resources 165 and specifies that the resources 165 have been removed from the client device 120 due to noncompliance with the distribution rules 171 associated with the resources 165. In another embodiment, the client side application 126 may render a notification of noncompliance on the client device 120 that further specifies the locations and times when the client device 120 may access the identified resources 165 based on the location rules 181 and/or time rules 191 associated with the resources 165.
While the client side application 126 may determine that the client device 120 currently complies with the distribution rules 171 associated with the resources 165, the client device 120 may cease to comply with the distribution rules 171 based on changes to the state of the client device 120 over time. Similarly, while the client side application 126 may determine that the client device 120 currently does not currently comply with the distribution rules 171 associated with the resources 165, the client device 120 may begin to comply with the distribution rules 171 based on changes to the state of the client device 120 over time. For instance, as the location information 133 associated with the client device 120 may change over time based on changes to the location of the client device 120, the client device 120 may either become authorized for access to the resources 165 or may cease to be authorized for access to resources 165. Additionally, as the time information 143 associated with the client device 120 may change overtime based on changes to current time associated with the client device 120, the client device 120 may either become authorized for access to the resources 165 or may cease to be authorized for access to resources 165. Thus, to ensure the ongoing security of the resources 165, the client side application 126 may continuously determine whether the client device 120 is authorized to access the resources 165 by returning to step 1703 after either providing continued access to the resources 165 in step 1718 or denying access to the resources 165 in steps 1721 and 1724.
The following is a general discussion of the components of the distribution server 150 and the client device 120. The local interface 1809 and 1859 may comprise, for example, a data bus with an accompanying address/control bus or other bus structure as can be appreciated. Stored in the memory 1806 and 1856 are both data and several components that are executable by the processors 1803 and 1853. In particular, with regard to the distribution server 150, stored in the memory 1806 and executable by the processor 1803 are a distribution service 174 and potentially other applications. Additionally, with regard to the client device 120, stored in the memory 1856 and executable by the processor 1853 are a client side application 126 and potentially other applications. Also stored in the memory 1806 and 1856 may be a data store 153 and 122 and other data. In addition, an operating system may be stored in the memory 1806 and 1856 and executable by the processor 1803 and 1853.
It is to be understood that there may be other applications that are stored in the memory 1806 and 1856 and are executable by the processor 1803 and 1853 as can be appreciated. Where any component discussed herein is implemented in the form of software, any one of a number of programming languages may be employed such as, for example, C, C++, C #, Objective C, Java, JavaScript, Pert, PHP, Visual Basic, Python, Ruby, Delphi, Flash, or other programming languages.
A number of software components are stored in the memory 1806 and 1856 and are executable by the processor 1803 and 1853. In this respect, the term “executable” means a program file that is in a form that can ultimately be run by the processor 1803 and 1853. Examples of executable programs may be, for example, a compiled program that can be translated into machine code in a format that can be loaded into a random access portion of the memory 1806 and 1856 and run by the processor 1803 and 1853, source code that may be expressed in proper format such as object code that is capable of being loaded into a random access portion of the memory 1806 and 1856 and executed by the processor 1803 and 1853, or source code that may be interpreted by another executable program to generate instructions in a random access portion of the memory 1806 and 1856 to be executed by the processor 1803 and 1853, etc. An executable program may be stored in any portion or component of the memory 1806 and 1856 including, for example, random access memory (RAM), read-only memory (ROM), hard drive, solid-state drive, USB flash drive, memory card, optical disc such as compact disc (CD) or digital versatile disc (DVD), floppy disk, magnetic tape, or other memory components.
The memory 1806 and 1856 are defined herein as including both volatile and nonvolatile memory and data storage components. Volatile components are those that do not retain data values upon loss of power. Nonvolatile components are those that retain data upon a loss of power. Thus, the memory 1806 and 1856 may comprise, for example, random access memory (RAM), read-only memory (ROM), hard disk drives, solid-state drives, USB flash drives, memory cards accessed via a memory card reader, floppy disks accessed via an associated floppy disk drive, optical discs accessed via an optical disc drive, magnetic tapes accessed via an appropriate tape drive, and/or other memory components, or a combination of any two or more of these memory components. In addition, the RAM may comprise, for example, static random access memory (SRAM), dynamic random access memory (DRAM), or magnetic random access memory (MRAM) and other such devices. The ROM may comprise, for example, a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or other like memory device.
Also, the processor 1803 and 1853 may represent multiple processors, and the memory 1806 and 1856 may represent multiple memories that operate in parallel processing circuits, respectively. In such a case, the local interface 1809 and 1859 may be an appropriate network 110 (
Although the distribution service 174, client side application 126, and other various systems described herein may be embodied in software or code executed by general purpose hardware as discussed above, as an alternative the same may also be embodied in dedicated hardware or a combination of software/general purpose hardware and dedicated hardware. If embodied in dedicated hardware, each can be implemented as a circuit or state machine that employs any one of or a combination of a number of technologies. These technologies may include, but are not limited to, discrete logic circuits having logic gates for implementing various logic functions upon an application of one or more data signals, application specific integrated circuits having appropriate logic gates, or other components, etc. Such technologies are generally well known by those skilled In the art and, consequently, are not described in detail herein.
The flowcharts of
Although the flowcharts of
Also, any logic or application described herein, including the distribution service 174 and the client side application 126, that comprises software or code can be embodied in any non-transitory computer-readable medium for use by or in connection with an instruction execution system such as, for example, a processor 1803 and 1853 in a computer system or other system. In this sense, the logic may comprise, for example, statements including instructions and declarations that can be fetched from the computer-readable medium and executed by the instruction execution system. In the context of the present disclosure, a “computer-readable medium” can be any medium that can contain, store, or maintain the logic or application described herein for use by or in connection with the instruction execution system. The computer-readable medium can comprise any one of many physical media such as, for example, magnetic, optical, or semiconductor media. More specific examples of a suitable computer-readable medium would include, but are not limited to, magnetic tapes, magnetic floppy diskettes, magnetic hard drives, memory cards, solid-state drives, USB flash drives, or optical discs. Also, the computer-readable medium may be a random access memory (RAM) including, for example, static random access memory (SRAM) and dynamic random access memory (DRAM), or magnetic random access memory (MRAM). In addition, the computer-readable medium may be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or other type of memory device.
It should be emphasized that the above-described embodiments of the present disclosure are merely possible examples of implementations set forth for a clear understanding of the principles of the disclosure. Many variations and modifications may be made to the above-described embodiment(s) without departing substantially from the spirit and principles of the disclosure. All such modifications and variations are intended to be included herein within the scope of this disclosure and protected by the following claims.
This application is a continuation of, and claims priority to, co-pending U.S. patent application entitled “CONTROLLING DISTRIBUTION OF RESOURCES ON A NETWORK,” filed on Jun. 13, 2017 and assigned application Ser. No. 15/620,922, which is a continuation of U.S. patent application “CONTROLLING DISTRIBUTION OF RESOURCES ON A NETWORK”, filed on Sep. 20, 2012, and assigned application Ser. No. 13/623,627, which is a continuation in part of U.S. patent application “CONTROLLING DISTRIBUTION OF RESOURCES ON A NETWORK,” filed on Feb. 14, 2012 and assigned application Ser. No. 13/396,356. The patent applications identified above are incorporated herein by reference in their entirety.
Number | Name | Date | Kind |
---|---|---|---|
4679226 | Muehleisen | Jul 1987 | A |
5237614 | Weiss | Aug 1993 | A |
5446888 | Pyne | Aug 1995 | A |
5574786 | Dayan et al. | Nov 1996 | A |
5625869 | Nagamatsu et al. | Apr 1997 | A |
5631947 | Wittstein et al. | May 1997 | A |
5740395 | Wells et al. | Apr 1998 | A |
5799068 | Kikinis et al. | Aug 1998 | A |
5826265 | Van et al. | Oct 1998 | A |
5864683 | Boebert et al. | Jan 1999 | A |
5870459 | Phillips et al. | Feb 1999 | A |
5928329 | Clark et al. | Jul 1999 | A |
5961590 | Mendez et al. | Oct 1999 | A |
5966081 | Chesnutt | Oct 1999 | A |
5974238 | Chase | Oct 1999 | A |
5987609 | Hasebe | Nov 1999 | A |
6021492 | May | Feb 2000 | A |
6023708 | Mendez et al. | Feb 2000 | A |
6078260 | Desch | Jun 2000 | A |
6085192 | Mendez et al. | Jul 2000 | A |
6131096 | Ng et al. | Oct 2000 | A |
6131116 | Riggins et al. | Oct 2000 | A |
6151606 | Mendez | Nov 2000 | A |
6167253 | Farris et al. | Dec 2000 | A |
6233341 | Riggins | May 2001 | B1 |
6269369 | Robertson | Jul 2001 | B1 |
6286098 | Wenig et al. | Sep 2001 | B1 |
6370629 | Hastings et al. | Apr 2002 | B1 |
6463470 | Mohaban et al. | Oct 2002 | B1 |
6480096 | Gutman et al. | Nov 2002 | B1 |
6529949 | Getsin et al. | Mar 2003 | B1 |
6560772 | Slinger | May 2003 | B1 |
6578069 | Hopmann et al. | Jun 2003 | B1 |
6606662 | Nagasaki | Aug 2003 | B2 |
6636489 | Fingerhut | Oct 2003 | B1 |
6668322 | Wood et al. | Dec 2003 | B1 |
6694335 | Hopmann et al. | Feb 2004 | B1 |
6708221 | Mendez et al. | Mar 2004 | B1 |
6714859 | Jones | Mar 2004 | B2 |
6726106 | Han et al. | Apr 2004 | B1 |
6727856 | Hill | Apr 2004 | B1 |
6741232 | Siedlikowski et al. | May 2004 | B1 |
6741927 | Jones | May 2004 | B2 |
6766454 | Riggins | Jul 2004 | B1 |
6779118 | Ikudome et al. | Aug 2004 | B1 |
6904359 | Jones | Jun 2005 | B2 |
6965876 | Dabbiere | Nov 2005 | B2 |
6995749 | Friend | Feb 2006 | B2 |
7017105 | Flanagin et al. | Mar 2006 | B2 |
7032181 | Farcasiu | Apr 2006 | B1 |
7039394 | Bhaskaran | May 2006 | B2 |
7039679 | Mendez et al. | May 2006 | B2 |
7064688 | Collins et al. | Jun 2006 | B2 |
7092943 | Roese et al. | Aug 2006 | B2 |
7107339 | Wolters | Sep 2006 | B1 |
7184801 | Farcasiu | Feb 2007 | B2 |
7191058 | Laird et al. | Mar 2007 | B2 |
7203959 | Nachenberg et al. | Apr 2007 | B2 |
7225231 | Mendez et al. | May 2007 | B2 |
7228383 | Friedman et al. | Jun 2007 | B2 |
7275073 | Ganji et al. | Sep 2007 | B2 |
7284045 | Marl et al. | Oct 2007 | B1 |
7287271 | Riggins | Oct 2007 | B1 |
7308703 | Wright et al. | Dec 2007 | B2 |
7310535 | MacKenzie et al. | Dec 2007 | B1 |
7350229 | Lander | Mar 2008 | B1 |
7353533 | Wright et al. | Apr 2008 | B2 |
7363349 | Friedman et al. | Apr 2008 | B2 |
7363361 | Tewari et al. | Apr 2008 | B2 |
7373517 | Riggins | May 2008 | B1 |
7398393 | Mont et al. | Jul 2008 | B2 |
7430757 | Chari et al. | Sep 2008 | B1 |
7437752 | Heard et al. | Oct 2008 | B2 |
7444375 | McConnell et al. | Oct 2008 | B2 |
7447506 | MacKenzie et al. | Nov 2008 | B1 |
7447799 | Kushner | Nov 2008 | B2 |
7448023 | Chory et al. | Nov 2008 | B2 |
7475152 | Chan et al. | Jan 2009 | B2 |
7480907 | Marolia et al. | Jan 2009 | B1 |
7496847 | Koehane et al. | Feb 2009 | B2 |
7496957 | Howard et al. | Feb 2009 | B2 |
7539665 | Mendez | May 2009 | B2 |
7543146 | Karandikar et al. | Jun 2009 | B1 |
7565314 | Borgeson et al. | Jul 2009 | B2 |
7590403 | House et al. | Sep 2009 | B1 |
7594224 | Patrick et al. | Sep 2009 | B2 |
7603547 | Patrick et al. | Oct 2009 | B2 |
7603548 | Patrick et al. | Oct 2009 | B2 |
7603703 | Craft et al. | Oct 2009 | B2 |
7617222 | Coulthard et al. | Nov 2009 | B2 |
7620001 | Ganji | Nov 2009 | B2 |
7620392 | Maurya et al. | Nov 2009 | B1 |
7650491 | Craft et al. | Jan 2010 | B2 |
7657746 | Paramasivam et al. | Feb 2010 | B2 |
7660902 | Graham et al. | Feb 2010 | B2 |
7665118 | Mann et al. | Feb 2010 | B2 |
7665125 | Heard et al. | Feb 2010 | B2 |
7685645 | Doyle et al. | Mar 2010 | B2 |
7702322 | Maurya et al. | Apr 2010 | B1 |
7702785 | Bruton, III et al. | Apr 2010 | B2 |
7735112 | Kim et al. | Jun 2010 | B2 |
7735122 | Johnson et al. | Jun 2010 | B1 |
7739334 | Ng et al. | Jun 2010 | B1 |
7752166 | Quinlan et al. | Jul 2010 | B2 |
7769394 | Zhu | Aug 2010 | B1 |
7788382 | Jones et al. | Aug 2010 | B1 |
7792297 | Piccionelli et al. | Sep 2010 | B1 |
7840631 | Farcasiu | Nov 2010 | B2 |
7865469 | Hopmann | Jan 2011 | B2 |
7873959 | Zhu et al. | Jan 2011 | B2 |
7890091 | Puskoor et al. | Feb 2011 | B2 |
7895296 | Dayan | Feb 2011 | B1 |
7912896 | Wolovitz et al. | Mar 2011 | B2 |
7917641 | Crampton | Mar 2011 | B2 |
7921155 | Harrow et al. | Apr 2011 | B2 |
7970386 | Bhat et al. | Jun 2011 | B2 |
7991697 | Fransdonk | Aug 2011 | B2 |
8001082 | Muratov | Aug 2011 | B1 |
8012219 | Mendez et al. | Sep 2011 | B2 |
8041776 | Friedman et al. | Oct 2011 | B2 |
8046823 | Begen et al. | Oct 2011 | B1 |
8051491 | Cavage et al. | Nov 2011 | B1 |
8060074 | Danford et al. | Nov 2011 | B2 |
8069144 | Quinlan et al. | Nov 2011 | B2 |
8078157 | Maurya et al. | Dec 2011 | B2 |
8094591 | Hunter et al. | Jan 2012 | B1 |
8095124 | Balia | Jan 2012 | B2 |
8108687 | Ellis et al. | Jan 2012 | B2 |
8117344 | Mendez et al. | Feb 2012 | B2 |
8127133 | Cross et al. | Feb 2012 | B2 |
8150431 | Wolovitz et al. | Apr 2012 | B2 |
8155587 | Sasai et al. | Apr 2012 | B2 |
8166106 | Biggs et al. | Apr 2012 | B2 |
8201216 | Cha et al. | Jun 2012 | B2 |
8214862 | Lee et al. | Jul 2012 | B1 |
8225381 | Lemke | Jul 2012 | B2 |
8276209 | Knibbeler et al. | Sep 2012 | B2 |
8332350 | Pulfer et al. | Dec 2012 | B2 |
8353044 | Jones et al. | Jan 2013 | B1 |
8407345 | Lim | Mar 2013 | B2 |
8411834 | Gopinath et al. | Apr 2013 | B2 |
8423511 | Bhatia | Apr 2013 | B1 |
8456293 | Trundle et al. | Jun 2013 | B1 |
8472874 | Tang et al. | Jun 2013 | B2 |
8504831 | Pratt et al. | Aug 2013 | B2 |
8601102 | Lee et al. | Dec 2013 | B1 |
8611928 | Bill | Dec 2013 | B1 |
8687536 | Michaelis | Apr 2014 | B2 |
8689281 | Balinsky et al. | Apr 2014 | B2 |
8769605 | Kaufmann et al. | Jul 2014 | B2 |
8843413 | Robert et al. | Sep 2014 | B2 |
8875222 | Chang et al. | Oct 2014 | B1 |
8933778 | Birkel et al. | Jan 2015 | B2 |
8934841 | Koh et al. | Jan 2015 | B2 |
8955038 | Nicodemus et al. | Feb 2015 | B2 |
9167031 | Takashima | Oct 2015 | B2 |
9247014 | Rao | Jan 2016 | B1 |
9516066 | Brannon et al. | Dec 2016 | B2 |
9680763 | Marshall et al. | Jun 2017 | B2 |
9705813 | Marshall et al. | Jul 2017 | B2 |
20010047335 | Arndt et al. | Nov 2001 | A1 |
20020013721 | Dabbiere et al. | Jan 2002 | A1 |
20020049580 | Kutaragi et al. | Apr 2002 | A1 |
20020055967 | Coussement | May 2002 | A1 |
20020098840 | Hanson et al. | Jul 2002 | A1 |
20020157019 | Kadyk et al. | Oct 2002 | A1 |
20030020623 | Cao et al. | Jan 2003 | A1 |
20030037261 | Meffert et al. | Feb 2003 | A1 |
20030065934 | Angelo et al. | Apr 2003 | A1 |
20030065950 | Yarborough | Apr 2003 | A1 |
20030110084 | Eberhard et al. | Jun 2003 | A1 |
20030164853 | Zhu et al. | Sep 2003 | A1 |
20030172166 | Judge et al. | Sep 2003 | A1 |
20030186689 | Herle et al. | Oct 2003 | A1 |
20030204716 | Rockwood et al. | Oct 2003 | A1 |
20030232616 | Gidron et al. | Dec 2003 | A1 |
20040003133 | Pradhan et al. | Jan 2004 | A1 |
20040008113 | Pradhan et al. | Jan 2004 | A1 |
20040019626 | Shepherd | Jan 2004 | A1 |
20040064713 | Yadav | Apr 2004 | A1 |
20040098715 | Aghera et al. | May 2004 | A1 |
20040123153 | Wright et al. | Jun 2004 | A1 |
20040167984 | Herrmann | Aug 2004 | A1 |
20040181687 | Nachenberg et al. | Sep 2004 | A1 |
20040224703 | Takaki et al. | Nov 2004 | A1 |
20050003804 | Huomo et al. | Jan 2005 | A1 |
20050005113 | Dillon et al. | Jan 2005 | A1 |
20050071748 | Shipp | Mar 2005 | A1 |
20050097032 | Benco et al. | May 2005 | A1 |
20050097327 | Ondet et al. | May 2005 | A1 |
20050181808 | Vaudreuil | Aug 2005 | A1 |
20050198029 | Pohja et al. | Sep 2005 | A1 |
20050246192 | Jauffred et al. | Nov 2005 | A1 |
20050272445 | Zellner | Dec 2005 | A1 |
20050283614 | Hardt | Dec 2005 | A1 |
20060013566 | Nakamura | Jan 2006 | A1 |
20060059100 | Ronning et al. | Mar 2006 | A1 |
20060067250 | Boyer et al. | Mar 2006 | A1 |
20060130139 | Sobel et al. | Jun 2006 | A1 |
20060149846 | Schuba | Jul 2006 | A1 |
20060190984 | Heard et al. | Aug 2006 | A1 |
20060234793 | Walker et al. | Oct 2006 | A1 |
20070033397 | Phillips, II et al. | Feb 2007 | A1 |
20070053306 | Stevens | Mar 2007 | A1 |
20070093243 | Kapadekar et al. | Apr 2007 | A1 |
20070130473 | Mazotas | Jun 2007 | A1 |
20070136492 | Blum et al. | Jun 2007 | A1 |
20070136579 | Levy | Jun 2007 | A1 |
20070143603 | Hadden et al. | Jun 2007 | A1 |
20070156897 | Lim | Jul 2007 | A1 |
20070162417 | Cozianu et al. | Jul 2007 | A1 |
20070174433 | Mendez et al. | Jul 2007 | A1 |
20070189303 | Sunada | Aug 2007 | A1 |
20070192484 | Yamaoka | Aug 2007 | A1 |
20070192588 | Roskind et al. | Aug 2007 | A1 |
20070260883 | Giobbi et al. | Nov 2007 | A1 |
20070261099 | Broussard et al. | Nov 2007 | A1 |
20070288637 | Layton et al. | Dec 2007 | A1 |
20070300070 | Shen-Orr et al. | Dec 2007 | A1 |
20080010689 | Ooi et al. | Jan 2008 | A1 |
20080014947 | Carnall | Jan 2008 | A1 |
20080065727 | Majors et al. | Mar 2008 | A1 |
20080070593 | Altman et al. | Mar 2008 | A1 |
20080072276 | Pouliot | Mar 2008 | A1 |
20080125102 | Abel et al. | May 2008 | A1 |
20080133712 | Friedman et al. | Jun 2008 | A1 |
20080134296 | Amitai et al. | Jun 2008 | A1 |
20080134305 | Hinton et al. | Jun 2008 | A1 |
20080134347 | Goyal et al. | Jun 2008 | A1 |
20080160984 | Benes et al. | Jul 2008 | A1 |
20080201453 | Assenmacher | Aug 2008 | A1 |
20080228504 | Nguyen et al. | Sep 2008 | A1 |
20080268895 | Foxenland | Oct 2008 | A1 |
20080291897 | Sourani | Nov 2008 | A1 |
20080301057 | Oren | Dec 2008 | A1 |
20080307219 | Karandikar | Dec 2008 | A1 |
20080318548 | Bravo et al. | Dec 2008 | A1 |
20090036111 | Danford et al. | Feb 2009 | A1 |
20090049157 | Kimura | Feb 2009 | A1 |
20090049510 | Zhang et al. | Feb 2009 | A1 |
20090061890 | Andreasson | Mar 2009 | A1 |
20090080650 | Selgas et al. | Mar 2009 | A1 |
20090086964 | Agrawal et al. | Apr 2009 | A1 |
20090089565 | Buchanan et al. | Apr 2009 | A1 |
20090138937 | Erlingsson et al. | May 2009 | A1 |
20090144632 | Mendez | Jun 2009 | A1 |
20090186633 | Yonker et al. | Jul 2009 | A1 |
20090198997 | Yeap et al. | Aug 2009 | A1 |
20090203375 | Gisby et al. | Aug 2009 | A1 |
20090222880 | Mayer et al. | Sep 2009 | A1 |
20090249440 | Platt et al. | Oct 2009 | A1 |
20090260064 | McDowell et al. | Oct 2009 | A1 |
20090287921 | Zhu et al. | Nov 2009 | A1 |
20090298514 | Ullah | Dec 2009 | A1 |
20090300739 | Nice et al. | Dec 2009 | A1 |
20090307362 | Mendez et al. | Dec 2009 | A1 |
20090327908 | Hayton | Dec 2009 | A1 |
20100005125 | Mendez et al. | Jan 2010 | A1 |
20100005157 | Mendez et al. | Jan 2010 | A1 |
20100005159 | Ishiguro | Jan 2010 | A1 |
20100005195 | Mendez et al. | Jan 2010 | A1 |
20100023630 | Mendez et al. | Jan 2010 | A1 |
20100064354 | Irvine | Mar 2010 | A1 |
20100083359 | Readshaw et al. | Apr 2010 | A1 |
20100087144 | Korenshtein | Apr 2010 | A1 |
20100091711 | Sawai | Apr 2010 | A1 |
20100094981 | Cordray et al. | Apr 2010 | A1 |
20100100641 | Quinlan et al. | Apr 2010 | A1 |
20100100972 | Lemieux et al. | Apr 2010 | A1 |
20100107238 | Stedman et al. | Apr 2010 | A1 |
20100120450 | Herz | May 2010 | A1 |
20100131527 | Wohlert | May 2010 | A1 |
20100131844 | Wohlert | May 2010 | A1 |
20100138667 | Adams et al. | Jun 2010 | A1 |
20100144323 | Collins et al. | Jun 2010 | A1 |
20100146269 | Baskaran | Jun 2010 | A1 |
20100150342 | Richards | Jun 2010 | A1 |
20100191837 | Linden et al. | Jul 2010 | A1 |
20100212016 | Dubhashi et al. | Aug 2010 | A1 |
20100222645 | Nadler et al. | Sep 2010 | A1 |
20100254410 | Collins | Oct 2010 | A1 |
20100257421 | Kohno et al. | Oct 2010 | A1 |
20100262828 | Brown et al. | Oct 2010 | A1 |
20100262829 | Brown et al. | Oct 2010 | A1 |
20100268844 | Quinlan et al. | Oct 2010 | A1 |
20100273456 | Wolovitz et al. | Oct 2010 | A1 |
20100274910 | Ghanaie-Sichanie | Oct 2010 | A1 |
20100299152 | Batchu et al. | Nov 2010 | A1 |
20100299362 | Osmond | Nov 2010 | A1 |
20100299376 | Batchu et al. | Nov 2010 | A1 |
20100299719 | Burks et al. | Nov 2010 | A1 |
20100317371 | Westerinen et al. | Dec 2010 | A1 |
20100318701 | Srinivansan et al. | Dec 2010 | A1 |
20100325710 | Etchegoyen | Dec 2010 | A1 |
20110004941 | Mendez et al. | Jan 2011 | A1 |
20110039506 | Lindahl et al. | Feb 2011 | A1 |
20110055891 | Rice | Mar 2011 | A1 |
20110082900 | Nagpal et al. | Apr 2011 | A1 |
20110113062 | Quinlan et al. | May 2011 | A1 |
20110113094 | Rathod | May 2011 | A1 |
20110135083 | Lingafelt et al. | Jun 2011 | A1 |
20110136510 | Peterson et al. | Jun 2011 | A1 |
20110141276 | Borghei | Jun 2011 | A1 |
20110145932 | Nerger et al. | Jun 2011 | A1 |
20110153779 | Mendez et al. | Jun 2011 | A1 |
20110153799 | Ito | Jun 2011 | A1 |
20110165861 | Wilson et al. | Jul 2011 | A1 |
20110167474 | Sinha et al. | Jul 2011 | A1 |
20110202589 | Piernot et al. | Aug 2011 | A1 |
20110202987 | Bauer-Hermann et al. | Aug 2011 | A1 |
20110225252 | Bhat et al. | Sep 2011 | A1 |
20110270799 | Muratov | Nov 2011 | A1 |
20110271113 | Venters, III et al. | Nov 2011 | A1 |
20110276805 | Nagpal et al. | Nov 2011 | A1 |
20110277013 | Chinta | Nov 2011 | A1 |
20110296186 | Wong et al. | Dec 2011 | A1 |
20110317831 | Passera et al. | Dec 2011 | A1 |
20110320552 | Friedman et al. | Dec 2011 | A1 |
20110320819 | Weber et al. | Dec 2011 | A1 |
20120005578 | Hawkins | Jan 2012 | A1 |
20120011007 | Blewett et al. | Jan 2012 | A1 |
20120015644 | Danford et al. | Jan 2012 | A1 |
20120054385 | Lim et al. | Mar 2012 | A1 |
20120094639 | Carlson et al. | Apr 2012 | A1 |
20120102392 | Reesman et al. | Apr 2012 | A1 |
20120110345 | Pigeon et al. | May 2012 | A1 |
20120117209 | Sinha | May 2012 | A1 |
20120117611 | Wookey | May 2012 | A1 |
20120124640 | Bender et al. | May 2012 | A1 |
20120150577 | Berg et al. | Jun 2012 | A1 |
20120190386 | Anderson | Jul 2012 | A1 |
20120198547 | Fredette et al. | Aug 2012 | A1 |
20120204032 | Wilkins et al. | Aug 2012 | A1 |
20120246719 | Bhamidipaty et al. | Sep 2012 | A1 |
20120252494 | Parker et al. | Oct 2012 | A1 |
20120272287 | Kuhlke et al. | Oct 2012 | A1 |
20120284322 | Laborczfalvi et al. | Nov 2012 | A1 |
20120288091 | Honke et al. | Nov 2012 | A1 |
20120289153 | Dobyns | Nov 2012 | A1 |
20120290544 | Abuelsaad et al. | Nov 2012 | A1 |
20120291104 | Hasek | Nov 2012 | A1 |
20120311329 | Medina et al. | Dec 2012 | A1 |
20120311686 | Medina et al. | Dec 2012 | A1 |
20120331527 | Walters et al. | Dec 2012 | A1 |
20130007245 | Malik et al. | Jan 2013 | A1 |
20130036459 | Liberman et al. | Feb 2013 | A1 |
20130040604 | Sprigg et al. | Feb 2013 | A1 |
20130040629 | Sprigg et al. | Feb 2013 | A1 |
20130045729 | Haik | Feb 2013 | A1 |
20130046971 | Lu | Feb 2013 | A1 |
20130055363 | Dattagupta et al. | Feb 2013 | A1 |
20130061307 | Livne | Mar 2013 | A1 |
20130081101 | Baer et al. | Mar 2013 | A1 |
20130086466 | Levy et al. | Apr 2013 | A1 |
20130091550 | Joyce et al. | Apr 2013 | A1 |
20130132854 | Raleigh et al. | May 2013 | A1 |
20130152169 | Stuntebeck | Jun 2013 | A1 |
20130165232 | Nelson et al. | Jun 2013 | A1 |
20130174223 | Dykeman et al. | Jul 2013 | A1 |
20130226696 | Cook | Aug 2013 | A1 |
20130229930 | Akay et al. | Sep 2013 | A1 |
20130244614 | Santamaria et al. | Sep 2013 | A1 |
20130254401 | Marshall et al. | Sep 2013 | A1 |
20130275038 | Hania et al. | Oct 2013 | A1 |
20130283370 | Vipat et al. | Oct 2013 | A1 |
20130285855 | Dupray et al. | Oct 2013 | A1 |
20130304898 | Aggarwal et al. | Nov 2013 | A1 |
20130347053 | Motoyama | Dec 2013 | A1 |
20140006347 | Qureshi et al. | Jan 2014 | A1 |
20140007182 | Qureshi et al. | Jan 2014 | A1 |
20140013420 | Piccionelli et al. | Jan 2014 | A1 |
20140025256 | Armitage et al. | Jan 2014 | A1 |
20140053229 | Saib | Feb 2014 | A1 |
20140053250 | Wethington et al. | Feb 2014 | A1 |
20140066098 | Stern et al. | Mar 2014 | A1 |
20140068717 | Mayes et al. | Mar 2014 | A1 |
20140073244 | Ko et al. | Mar 2014 | A1 |
20140082501 | Bae et al. | Mar 2014 | A1 |
20140084067 | Vanderhulst | Mar 2014 | A1 |
20140096180 | Negi et al. | Apr 2014 | A1 |
20140096212 | Smith et al. | Apr 2014 | A1 |
20140113556 | Kotecha | Apr 2014 | A1 |
20140123224 | Nosrati | May 2014 | A1 |
20140143852 | Cottrell et al. | May 2014 | A1 |
20140162688 | Edge | Jun 2014 | A1 |
20140171060 | Cook et al. | Jun 2014 | A1 |
20140177495 | Mallikarjunan et al. | Jun 2014 | A1 |
20140198024 | Adzhigirey et al. | Jul 2014 | A1 |
20140213179 | Rosenberg | Jul 2014 | A1 |
20140214668 | Lotter et al. | Jul 2014 | A1 |
20140215212 | Dempster et al. | Jul 2014 | A1 |
20140222504 | MacKenzie et al. | Aug 2014 | A1 |
20140223177 | Dempster et al. | Aug 2014 | A1 |
20140230038 | Leong et al. | Aug 2014 | A1 |
20140237235 | Kuno et al. | Aug 2014 | A1 |
20140237614 | Irvine | Aug 2014 | A1 |
20140258481 | Lundell | Sep 2014 | A1 |
20140282877 | Mahaffey et al. | Sep 2014 | A1 |
20140287688 | Dempster et al. | Sep 2014 | A1 |
20140310771 | Marshall et al. | Oct 2014 | A1 |
20150156205 | Yin et al. | Jun 2015 | A1 |
20150163336 | Ramos et al. | Jun 2015 | A1 |
20150207795 | Wentz et al. | Jul 2015 | A1 |
20170269955 | Hardy | Sep 2017 | A1 |
Number | Date | Country |
---|---|---|
2149337 | Jun 1994 | CA |
2675137 | Dec 2013 | EP |
2309860 | May 2000 | GB |
2346716 | Aug 2000 | GB |
2361558 | Oct 2001 | GB |
H07141245 | Jun 1995 | JP |
H08251660 | Sep 1996 | JP |
2007304009 | Nov 2007 | JP |
2011234084 | Nov 2011 | JP |
9600485 | Jan 1996 | WO |
9704389 | Feb 1997 | WO |
9922322 | May 1999 | WO |
0003316 | Jan 2000 | WO |
0241661 | May 2002 | WO |
2010052669 | May 2010 | WO |
2011022053 | Feb 2011 | WO |
2012098596 | Jul 2012 | WO |
2013011512 | Jan 2013 | WO |
2013109040 | Jul 2013 | WO |
Entry |
---|
Anonymous: “can you download free apps without apple id | Official Apple Support Communities (1st question and answer)”, May 5, 2012 (May 5, 2012), XP055335582, Retrieved from the Internet: URL:https://discussions.apple.com/thread/3928236?start=0&tstart=0 [retrieved on Jan. 16, 2017]. |
Asynchrony Software, Inc., “PDA Defense User Guide”, 726, 2002. |
Belani, Eshwar et al., “The CRISIS Wide Area Security Architecture”, 726, 1998. |
Benaloh, Josh et al., “Patient Controlled Encryption: Ensuring Privicy of Electronic Medical Records”, 726, Nov. 13, 2009. |
Fox, Armando et al., “Security on the Move: Indirect Authentication Using Kerberos”, 726, 1996. |
Gong, Li; et al. “Multicast Security and Its Extension to Mobile Environment”, Oct. 1995. |
How to Keep Your Personal Information Secured, Federal Commission, Jul. 2012, pp. 1-4 (Year: 2012). |
Infinite Technologies, “Infinite Interchange”, 1997. |
Kiiskinen, Jani; et al. “Data Channel Service for Wireless Telephone Links” Jan. 1996. |
Latedroid, “JuiceDefender” Jan. 15, 2012. |
Margaret Rouse, Client/Server (client/server model, client/server architecture), Rouser, Oct. 30, 2008, Searchnetwork, pp. 1-2 (Year: 2008). |
Menaria, Pankaj et al., “Security in Mobile Database Systems”, 707, 726, Mar. 17, 2011. |
Mobile Application Management, Meeting the BYOD challenge with next-generation application and device management, Kony, Jul. 2012, pp. 1-16 (Year: 2012). |
Nokia, “Nokia 9000i Owner's Manual” 1997. |
Pfitzmann, Andreas et al., “Mobile User Devices and Security Modules: Design for Trustworthiness”, 726 Feb. 5, 1996. |
Ratner, David H. “Roam: A scalable Replication System for Mobile and Distributed Computing”, Jan. 1998. |
Ratner, David; et al. “Replication Requirements in Mobile Environments” Nov. 2001. |
Research in Motion, “Blackberry Wireless Handheld 5810 Gelling Started Guide” Jan. 15, 2003. |
Research in Motion, “Blackberry Wireless Handheld 5810 Quick Reference Guide” 2003. |
Research in Motion, “Blackberry Wireless Handheld 5810 User Guide” 2003. |
Stajano, Frank; et al. “The Thinnest of Clients: Controlling It All Via Cellphone” Mobile Computing and Communications Review, vol. 2, No. 4, Oct. 1998. |
Steiner, Jennifer, “Kerberos: An Authentication Service for Open Network Systems”, 726, Jan. 12, 1988. |
Strunk, John et al., “Self-Securting Storage: Protecting Data in Compromised Systems”, Symposium on Operating Systems Design and Implementation, 726, 2000. |
Sybase, “MobiLink Synchronization User's Guide”, Part Number: 38132-01-0800-01, Nov. 2001. |
Symantec Corporation, “Creating Norton pcAnywhere Scripts” 1994. |
The Dark Side of BYOD—Privacy, Personal Data Loss and Device Seizure, Trend Micro, Jan. 31, 2012, pp. 1-3 (Year: 2012). |
Traveling Software, Inc., “LapLink for Windows 95” 1996. |
Wachowicz, Moniza; et al. “Combining Location and Data Management in an Environment for Total Mobility” In Proceedings for the International Workshop on Information Visualization an Mobile Computing, 1996. |
Xcellenet, Inc., “RemoteWare Client for Windows NT and Windows 95 User's Guides” 1996. |
Xcellenet, Inc., “RemoteWare Forms and RemoteWare Query” 1994. |
Xcellenet, Inc., “RemoteWare Forms Getting Started Guide” 1994. |
Xcellenet, Inc., “RemoteWare Server for Windows NT Administrator's Guide” 1996. |
Xcellenet, Inc., “RemoteWare Server for Windows NT Reference Manual” 1996. |
Xcellenet, Inc., “RemoteWare Server Operations Guide” 1992. |
Number | Date | Country | |
---|---|---|---|
20200036648 A1 | Jan 2020 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 15620922 | Jun 2017 | US |
Child | 16535845 | US | |
Parent | 13623627 | Sep 2012 | US |
Child | 15620922 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 13396356 | Feb 2012 | US |
Child | 13623627 | US |