The invention relates generally to controlling access to networked storage and more particularly to a system, method, and computer program product for automatically determining whether a networked device is compatible with a computer network.
Computer users are creating ever increasing volumes of data files, which can easily overwhelm the memory of each user's computer. To ease the burden on user computer memory, these data files are often stored in and retrieved from remote or networked storage (e.g., a file server), identified to the computer by the address assigned to the remote or networked storage. In a typical computer network, a network administrator or a domain name system (“DNS”) server may assign each network device (e.g., computer, server, networked storage, etc.) a unique address that identifies the device. This address is used by the network device to communicate with other network devices.
To control access to the remote or networked storage, a governance software may be installed on an application server, such as the Datallow™ software sold by AppSense™, to allocate resource in, or control or restrict the access of other network devices to, certain portions of the networked storage based upon IT governance protocols, network efficiency and economics. For example, each user device accessing the network may be assigned an identifier or name. This identifier may be used by the application server to determine the user's level of access to the remote or networked storage for file synchronization or storage. In this way, a system administrator can control access to protected company storage by the various networked devices using the governance software. However, to implement this system, the network administrator must identify to the governance software the identifier for each networked device (e.g., so the network knows the permission level of the device to permit access to the remote or networked storage). To identify each of the devices to the governance software, the administrator must manually program the device name (or identity) into the software program operating the governance software. This makes the deployment of the software time intensive, prone to error, and may prevent the proper deployment of the governance software.
A need exists, therefore, for a system, method and computer program product that solves the issues identified above.
In accordance with the disclosed subject matter, a system, method and computer program product are provided for automatically determining whether a networked device is compatible with a governance software.
Embodiments of the invention include a system for determining whether a network device is compatible with governance software. The system comprises a computer having a processor and a tangible, non-transitory computer memory with instructions operable therein for performing on the processor a process of determining whether a network device is compatible with governance software and a process of storing a list of network devices compatible with the governance software. The instructions may comprise the steps of creating an address list comprising an address for each of the network devices connected to a computer network; polling the network device associated with each of the addresses on the address list by transmitting to the network device a message using a protocol unique to the governance software; responsive to the polling, determining whether the network device is compatible with the governance software; and responsive to determining that the network device is compatible with the governance software, storing an indicia that the network device is compatible with the governance software and the address of the network device in a database.
Embodiments of the invention also include a computer program product operable on a computer having a tangible, non-transitory computer memory. The computer program product causes the computer to perform a process of determining whether a network device is compatible with governance software and a process of storing a list of network devices compatible with governance software. The instructions may comprise the steps of creating an address list comprising an address for each of the network devices connected to a computer network; polling the network device associated with each of the addresses on the address list by transmitting to the network device a message using a protocol unique to the governance software; responsive to the polling, determining whether the network device is compatible with the governance software; and responsive to determining that the network device is compatible with the governance software, storing an indicia that the network device is compatible with the governance software and the address of the network device in a database.
Embodiments of the invention also include a computer implemented method causing a computer to perform a process of determining whether a network device is compatible with governance software and a process of storing a list of network devices compatible with governance software. The instructions may comprise the steps of creating an address list comprising an address for each of the network devices connected to a computer network; polling the network device associated with each of the addresses on the address list by transmitting to the network device a message using a protocol unique to the governance software; responsive to the polling, determining whether the network device is compatible with the governance software; and responsive to determining that the network device is compatible with the governance software, storing an indicia that the network device is compatible with the governance software and the address of the network device in a database.
There has thus been outlined, rather broadly, the features of the disclosed subject matter in order that the detailed description thereof that follows may be better understood, and in order that the present contribution to the art may be better appreciated. There are, of course, additional features of the disclosed subject matter that will be described hereinafter and which will form the subject matter of the claims appended hereto.
In this respect, before explaining at least one embodiment of the disclosed subject matter in detail, it is to be understood that the disclosed subject matter is not limited in its application to the details of construction and to the arrangements of the components set forth in the following description or illustrated in the drawings. The disclosed subject matter is capable of other embodiments and of being practiced and carried out in various ways. Also, it is to be understood that the phraseology and terminology employed herein are for the purpose of description and should not be regarded as limiting.
As such, those skilled in the art will appreciate that the conception, upon which this disclosure is based, may readily be utilized as a basis for the designing of other structures, methods and systems for carrying out the several purposes of the disclosed subject matter. It is important, therefore, that the claims be regarded as including such equivalent constructions insofar as they do not depart from the spirit and scope of the disclosed subject matter.
These together with the other objects of the disclosed subject matter, along with the various features of novelty which characterize the disclosed subject matter, are pointed out with particularity in the claims annexed to and forming a part of this disclosure. For a better understanding of the disclosed subject matter, its operating advantages and the specific objects attained by its uses, reference should be had to the accompanying drawings and descriptive matter in which there are illustrated preferred embodiments of the disclosed subject matter.
So that the features and advantages of the invention may be understood in more detail, a more particular description of the invention briefly summarized above may be had by reference to the appended drawings, which form a part of this specification. It is to be noted, however, that the drawings illustrate only various embodiments of the invention and are therefore not to be considered limiting of the invention's scope as it may include other effective embodiments as well.
In the following description, numerous specific details are set forth regarding the systems and methods of the disclosed subject matter and the environment in which such systems and methods may operate, etc., in order to provide a thorough understanding of the disclosed subject matter. It will be apparent to one skilled in the art, however, that the disclosed subject matter may be practiced without such specific details, and that certain features, which are well known in the art, are not described in detail in order to avoid complication of the disclosed subject matter. In addition, it will be understood that the examples provided below are exemplary, and that it is contemplated that there are other systems and methods that are within the scope of the disclosed subject matter.
To address the needs discussed above, embodiments of the invention include a system for allowing a system administrator to automatically determine whether networked computer devices are configured to use governance software (e.g., Datallow™ software sold by AppSense™). Such governance software may be used to allocate resource in, or control or restrict the access of other network devices, to certain portions of the networked storage based upon IT governance protocols, network efficiency and economics. To do this, a company server having governance software stored thereon polls a range of device addresses (e.g., IP addresses) specified by the network administrator or stored on a DNS server with a message formatted using protocols such as WebDAV, SMB/CIFS, FTP, etc., and specific to the governance software. If the device responds to the message, the address of the device, along with an indicia that the device is compatible with the governance software, is stored in memory. As one skilled in the art will appreciate, the address of the device is a numerical label assigned to a particular network device such as a computer, printer, server, storage, etc., that identifies it to other network devices. If the device is configured to operate with the governance software, an indicia that the device is configured to operate with the governance software is stored in company server memory together with the address of the device.
As will be understood by those of skill in the art, the term “company server” may be one or more computers, computer servers or computer networks associated with a particular company, or organization. As such, the term “company server” is not limited to commercial companies, but may include other organizations such as education institutions, charities, non-profit groups, government entities, financial institutions, etc. Moreover, the terms “company” and “organization” should not be limited to a single entity, but can include multiple entities, corporations, organizations, charities and/or individuals having access to a secure server and database. As such, in some embodiments, the company server may be a shared server enabling one or more users to upload computer content to networked storage.
As one skilled in the art will appreciate, the user computer 102 and/or user mobile device 104 can be any computing device capable of connecting to the communications network 106 and receiving data from same. As such, the user computer 102 enables the user to interact with the company server 101 to view, store and retrieve data files from storage 108. For example, the user computer 102 may be a desktop, laptop, networked computer display, computer server, WebTV, as well as any other electronic device. Similarly, mobile devices 104 may be a laptop, personal digital assistant (PDA), cellular telephone such as a Smartphone, computer tablet, etc., to also enable the user to interact with the company server 101 and remote storage 108. As such, the user computer 102 and mobile devices 104 are connected to the company server 101 via communications network 106.
As one skilled in the art will appreciate, in one embodiment, communications network 106 is comprised of a private network that may be connected to a computing cloud 107 (e.g., established over a public network such as the internet). A computing cloud can be, for example, the software implementing one or more of another company server, third party database and application that is hosted by a cloud provider and exists in the cloud. As described above, the communications network 106 can be a private network, which can include an intranet system that allows a plurality of system users to access the company server 101. For example, communications network 106 can connect all of the system components using a local area network (“LAN”) such as Ethernet or Wi-Fi, using electrical cable such as HomePNA or power line communication, optical fiber, or radio waves such as wireless LAN, to transmit data. Moreover, the term “communications network” is not limited to a single communications network system, but may also refer to several separate, individual communications networks used to connect the user computer 102 and/or user mobile device 104 to company server 101. Accordingly, though each of the user computer 102 and/or user mobile device 104 and company server 101 is depicted as connected to a single communications network, such as the internet, an implementation of the communications network 106 using a combination of communications networks is within the scope of the invention.
As one skilled in the art will appreciate, in cloud or internet implementations, the communications network 106 interfaces with the cloud 107 or internet, preferably via a firewall and web server (both not shown) to provide a secure access point for users at user computer 102 and/or user mobile device 104 and to prevent unauthorized users from accessing the various protected portions of the storage 108 in the system. The firewall may be, for example, a conventional firewall as discussed in the prior art.
Storage 108 communicates with and uploads and stores data files to the user computer 102 and/or user mobile device 104 via the company server 101 and communications network 106. As one skilled in the art will appreciate, though storage 108 is depicted as a database, storage 108 may be implemented in one or more computers, file servers and/or database servers. As such, the storage 108 may be implemented as network attached storage (NAS), storage area network (SAN), direct access storage (DAS), or any combination thereof, comprising for example multiple hard disk drives. Moreover, each of these file servers or database servers may allow a user at user computer 102 and/or user mobile device 104 to upload or download data files to the database. For example, a user may have an associated username, password, RSA code, etc., that allows the user to store or retrieve various files to storage 108. These files can be stored in one or more computers comprising the storage 108 in a plurality of software databases, tables, or fields in separate portions of the file server memory (e.g., employee records, corporate records, projects, meeting items and agendas, memos, email, letters, financial and account information, payroll records, HR records, etc.). Accordingly, as is known in the art, the computer implementing storage 108 may have stored thereon a database management system (e.g., a set of software programs that controls the organization, storage, management, and retrieval of data in the computer).
Company server 101 will now be described with reference to
Processor 204 is the “brains” of the company server 101, and as such executes computer program product 208 and works in conjunction with the I/O device 202 to direct data to memory 206 and to send data from memory 206 to the various file servers and communications network 106. Processor 204 can be, for example, any commercially available processor, or plurality of processors, adapted for use in company server 101 (e.g., Intel® Xeon® multicore processors, Intel® micro-architecture Nehalem, AMD Opteron™ multicore processors, etc.). As one skilled in the art will appreciate, processor 204 may also include components that allow the company server 101 to be connected to a display, keyboard, mouse, trackball, trackpad and/or any other user input/output device (not shown), that would allow, for example, an administrative user direct access to the processor 204 and memory 206.
Memory 206 may store the algorithms forming the computer instructions of the instant invention and data. Memory 206 may include both non-volatile memory such as hard disks, flash memory, optical disks, and the like, and volatile memory such as SRAM, DRAM, SDRAM, and the like, as required by embodiments of the instant invention. As one skilled in the art will appreciate, though memory 206 is depicted on, for example, the motherboard of the company server 101, memory 206 may also be a separate component or device connected to the company server 101. For example, memory 206 may be flash memory, external hard drive, or other storage.
As shown in
The address module 302 can include instructions that enable the company server to retrieve a list of addresses for the devices connecting to the computer network. For example, an administrator may assign and a DNS server may store a plurality of IP addresses to the network devices connecting to the computer network. Each address assigned to the device may be stored by the DNS server and accessed by the instructions. In some embodiments, the administrator may determine a range of addresses to pull from the DNS server or may input a range of addresses for the scan module to poll (e.g., all or a portion of the 256 addresses associated with devices in the network as defined by addressing limitations). The scan module 304 may include instructions that allow the server to scan the addresses assigned to the devices to determine which of the devices are using the governance software described herein. For example, the scan module may send a message to each of the devices having an address on the list using a particular protocol specific to the governance software.
An exemplary flow diagram for the address module 302 is shown in
Turning to
In some embodiments, only a portion of the network address may be incremented so that N is limited to 256 unique addresses (e.g., the last eight bits of the address, or 192.168.0.0 through 192.168.0.255), while in other embodiments, fewer or additional addresses can be added to the range of the query. For example, in some embodiments, the system administrator may specify multiple ranges of addresses to query, or may request certain addresses from the DNS server to be queried (e.g., network components implemented in the cloud). In such embodiments, the system and methods may construct a list of addresses to be queried by the company server, with each address representing a unique memory location. As such D may be implemented as a pointer to the memory location storing each address on the list of addresses (e.g., by dereferencing the pointer D the address stored in the memory location can be obtained).
As one skilled in the art will appreciate, the system and method do not need to retrieve the list of devices and addresses for those devices stored in the DNS server in some embodiments. In such embodiments, the system and method may query some or all of the 256 potential addresses associated with the network to determine whether any device at such addresses is operational with the governance software. Accordingly, one or more of the instructions shown in
It is to be understood that the disclosed subject matter is not limited in its application to the details of construction and to the arrangements of the devices set forth in the preceding description or illustrated in the drawings. The disclosed subject matter is capable of other embodiments and of being practiced and carried out in various ways. Also, it is to be understood that the phraseology and terminology employed herein are for the purpose of description and should not be regarded as limiting.
As such, those skilled in the art will appreciate that the conception, upon which this disclosure is based, may readily be utilized as a basis for the designing of other structures, methods, and systems for carrying out the several purposes of the disclosed subject matter. It is important, therefore, that the claims be regarded as including such equivalent constructions insofar as they do not depart from the spirit and scope of the disclosed subject matter.
Although the disclosed subject matter has been described and illustrated in the foregoing exemplary embodiments, it is understood that the present disclosure has been made only by way of example, and that numerous changes in the details of implementation of the disclosed subject matter may be made without departing from the spirit and scope of the disclosed subject matter, which is limited only by the claims which follow.