Consumers appreciate network connectivity that is easy to use. They also appreciate the ability to quickly access networks, Businesses may, therefore, endeavor to create networks directed toward one or more of these objectives.
The following detailed description references the drawings, wherein:
When users of two or more devices want to create a network connection, their devices need to exchange discovery information or engage in a discovery protocol that allows them to locate one another. This involves exchanging configuration information and also agreement on a common communication channel. Security keys or credentials are then exchanged, for example, by each device user entering a personal identification number and/or password.
A one-time or non-persistent connection requires that devices execute the discovery protocol or exchange discovery information each time a network connection is established which can be time consuming. Additionally, such one-time or non-persistent connections require the users of the devices to re-enter their security credentials or keys as well, which is also time consuming and can be frustrating for some users, particularly when they can't remember their credentials or enter them incorrectly,
A persistent connection, on the other hand, requires that the devices exchange discovery information or execute the discovery protocol only one time during the establishment of the first network connection. Subsequent connections between these devices do not require this discovery protocol which saves time. Additionally, such persistent connections only require the users of the devices to enter their security keys or credentials once during establishment of the initial network connection, which also saves time as well as user frustration.
Implementing persistent connections requires network system resources, such as memory. The amount of resources available in a particular network system is often finite. Efficient use of these resources is, therefore, desirable. An example of a system for managing persistent connections 10 directed to these objectives is shown in
As used herein, the terms “non-transitory storage medium” and non-transitory computer-readable storage medium” are defined as including, but not necessarily being limited to, any media that can contain, store, or maintain programs, information, and data. Non-transitory storage medium and non-transitory computer-readable storage medium may include any one of many physical media such as, for example, electronic, magnetic, optical, electromagnetic, or semiconductor media. More specific examples of suitable non-transitory storage medium and non-transitory computer-readable storage medium include, but are not limited to, a magnetic computer diskette such as floppy diskettes or hard drives, magnetic tape, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM), a flash drive, a compact disc (CD), or a digital video disk (DVD).
As used herein, the term “processor” is defined as including, but not necessarily being limited to, an instruction execution system such as a computer/processor based system, an Application Specific Integrated Circuit (ASIC), or a hardware and/or software system that can fetch or obtain the logic from a non-transitory storage medium or a non-transitory computer-readable storage medium and execute the instructions contained therein, “Processor” can also include any controller, state-machine, microprocessor, cloud-based utility, service or feature, or any other analogue, digital and/or mechanical implementation thereof.
As used herein, “device” is defined as including, but not necessarily being limited to, any electronic or electrical apparatus that may need to access or receive data or information from a network, such as a computer, server, mainframe, cell phone, mobile phone, personal digital assistant (PDA), tablet, telephone, radio, television, mobile music player, camera, sports equipment such as a heart rate monitor, medical monitoring equipment, etc. “Database” is defined as including, but not necessarily being limited to, an organized collection of information or data. This information may be stored in a digital and/or analogue format, for example on a non-transitory storage medium, so that it is readily retrievable as needed. The database may be updated by authorized users and may also be archived or otherwise backed-up in the event of loss,
As used herein, “network” is defined as including, but not necessarily being limited to, a collection or combination of hardware and/or software components or elements that are interconnected by communication channels that allow sharing of resources and information. These communication channels can be wired, wireless, optical, or any combination thereof. Where at least one process in one device is able to send/receive data to/from at least one process residing in a remote device, then the two devices are said to be in a network.
A “persistent network connection” is defined as including, but not being limited to, a network connection between two or more devices where certain items, such as discovery information, connection identifiers, and credentials, are retained or stored, for example in a database, for subsequent connections, This retention or storage negates the need for these items to be reentered by a user each time connection to the network is reestablished.
As can be seen in
Non-transitory computer-readable storage medium 24 includes instructions 30 that, when executed by processor 20, cause processor 20 to control first device 14 to establish a persistent connection between a second device, such as other device 16 or other device 18, and network 12, Instructions 30 also cause processor 20 to determine whether the second device connection is an additional persistent connection to network 12 or an existing persistent connection to network 12. These instructions also cause processor 20 to analyze the information stored in database 28 for each existing persistent connection to network 12 to determine whether system 10 has reached a maximum number of existing persistent connections to the network 10 due to constraints such as limited system 10 memory.
Instructions 30 additionally cause processor 20 to remove information from database 28 related to either an existing persistent connection to network 12 based on a predetermined rule when system 10 has reached the maximum number or existing persistent connections to network 10, as discussed in more detail below. Instructions 30 further cause processor 20 to record information in database 28 related to the persistent connection of the second device to network 12, as also discussed in more detail below.
An example of the information 32 related to each existing persistent connection to network 12 stored in database 28 is shown
In the example of table 34 shown in
An example of such a rule for system 10 is shown in
As can be seen in the updated table 34 of database 28 shown in
Each of entries 36, 38, 40, 42, 44, and 46 in table 34 can be defined as a “token” for a persistent connection to network 12. As such, these tokens can be stored in a file format such as xml or a simple set of ASCII characters delimited by special characters (e.g., a comma “,”) between each parameter in a token, as well as between each token itself. This allows sets of users to automatically create and join a persistent connection by sharing a corresponding token, for example via e-mail or SMS, using asymmetric encryption (public/private key mechanism) for security. Recipients of these tokens can configure their devices to automatically connect to network 12 using the parameters stored in the token.
Although the tokens illustrated by each of entries 36, 38, 40, 42, 44, and 46 are for persistent connections, it is to be understood that other tokens may be used for system 10 that are for non-persistent or one-time connections. Furthermore, tokens for system 10 can also include other information about a connection (whether persistent or non-persistent) such as one or more of the following: SSID, BSSID, channel number, af/sta/wifi-direct abilities, supported rates, long/short preamble, 11n feature support parameters (AMSDU, AMPDU aggregations, greenfield mode), and token specific information.
Token specific information can be used to automatically launch certain applications. For example, a user of system 10 may want to multicast a video to others, so the user creates a token with token specific information that contains the media player application name, media server URL, command to play at a particular time, etc. When the connection token is invoked, the media player launch can be automated on a device, as well as automate connection to the media server of the user and playing of the video using the token specific information. As this example illustrates and as discussed above, a token can be broadly defined as a collection of connection-specific information elements.
An example of a method for managing persistent connections on a network 60 is shown in
If it is a new persistent connection, then method 60 continues by determining if table 34 of database 28 is full 72. If not, then method 60 records information or data relating to the new persistent connection in table 34, such as the above-described discovery information, connection identifiers, date and time of the initial connection, and security credentials, as indicated by block 74. If table 34 is full, then method 60 continues by sorting table 34 according to the oldest entries based upon date and time, as indicated by block 76. Next, method 60 removes the entry or token that is the oldest and least used, as indicated by block 78. Method 60 also moves the other entries or tokens up in table 34, as additionally indicated by block 78. Finally, method 60 records information or data relating to the new persistent connection in table 34, such as the above-described discovery information, connection identifiers, date and time of the initial connection, and security credentials, as indicated by block 74.
As can also be seen in
The above-described system for managing persistent connections and associated method may be used with any of a variety of network technologies. For example, as shown in
Another example of a stand-alone wireless or Wi-Fi direct system topology 112 that may utilize the system for managing persistent connections and associated method is shown in
An example of a network system 118 topology utilizing two wireless local area networks 120 and 122 and a wired local area network 124 connected to internet 126 is shown in
The system for managing persistent connections and associated method may be used with any of a variety of different types of network topologies including those illustrated above, as well as mesh, ring, and tree topologies. Additionally, any of a variety of protocols may be used including, without limitation, TCP/IP, Bluetooth, 802.11, OSI, IPX/SPX, X.25, AX.25, and token-based. Furthermore, any of a variety of different transport media may be used included wire, cable, fiber optics, wireless, and photonics.
Although several examples have been described and illustrated in detail, it is to be clearly understood that the same are intended by way of illustration and example only. These examples are not intended to be exhaustive or to limit the invention to the precise form or to the exemplary embodiments disclosed. Modifications and variations may well be apparent to those of ordinary skill in the art. For example, other connections of system 10 can be one-time or non-persistent as well. As another example, database information 32 may be stored in formats other than that of a table, such as a record, a multi-dimensional matrix, an array, a fiat file, a relational format, etc, As a further example, the rule or procedure for removing an existing persistent connection from a network to allow room for an additional new persistent connection can be based on things other than just the age and the number of times a particular persistent connection has been utilized, such as the extent of the security associated with of each connection, with the least secure being removed to protect the integrity of both the database and system. As yet a farther example, the rule or procedure for removing an existing persistent connection from a network to allow room for an additional new persistent connection may also take into account whether or not the persistent connection is currently connected to a network and in use. The spirit and scope of the present invention are to be limited only by the terms of the following claims.
Additionally, reference to an element in the singular is not intended to mean one and only one, unless explicitly so stated, but rather means one or more. Moreover, no element or component is intended to be dedicated to the public regardless of whether the element or component is explicitly recited in the following claims.