U.S. patent application number 12/976708 was filed with the patent office on 2012-06-28 for providing and resolving an ip address for swarm-based services.
Invention is credited to Pradeep Iyer, Santashil PalChaudhuri.
Application Number | 20120166515 12/976708 |
Document ID | / |
Family ID | 46318347 |
Filed Date | 2012-06-28 |
United States Patent
Application |
20120166515 |
Kind Code |
A1 |
Iyer; Pradeep ; et
al. |
June 28, 2012 |
Providing and Resolving an IP Address for Swarm-Based Services
Abstract
Providing and maintaining an IP address for swarm-based
services. A swarm is a group of digital devices operating
cooperatively on a network, such as a group of wireless access
points. Services may be distributed over members of the swarm, with
each service having a master which is hosted on one member of the
swarm. The master broadcasts a periodic heartbeat, advertising its
service and the address of the host member. If a swarm member fails
to hear a particular service's heartbeat for a predetermined
interval, it broadcasts a message announcing its intent to be
master for the service. If the swarm member does not receive any
other broadcasts from members indenting to take the role of master
for the service, it takes over the role of master for the service
and begins broadcasting periodic heartbeats identifying itself as
the service master. If multiple swam members broadcast their intent
to become master of the same service, a resolution protocol is
invoked and one swarm member is selected to be master. In
operation, each member of the swarm maintains a table of services
and the address of the swarm member hosting the service; this
information is obtained from the periodic heartbeats broadcast by
each service master. When a swarm member receives a service
request, the request is either redirected to the service master, or
the request is terminated at the swarm member and handled.
Inventors: |
Iyer; Pradeep; (Cupertino,
CA) ; PalChaudhuri; Santashil; (Kolkata, IN) |
Family ID: |
46318347 |
Appl. No.: |
12/976708 |
Filed: |
December 22, 2010 |
Current U.S.
Class: |
709/202 |
Current CPC
Class: |
H04L 41/5058 20130101;
H04W 4/08 20130101; H04W 80/04 20130101; H04W 4/06 20130101 |
Class at
Publication: |
709/202 |
International
Class: |
G06F 15/16 20060101
G06F015/16 |
Claims
1-11. (canceled)
12. A method comprising: listening, by a first digital device in a
group of digital devices, for a periodical message identifying a
service, wherein the service is to be hosted by one or more digital
devices in the group of digital devices, wherein the service is
associated with a static network address shared by the one or more
digital devices, and wherein the periodical message comprises the
static network address; in response to the periodical message being
received by the first digital device, storing the static network
address associated with the service at the first digital device;
and in response to no periodical message being received by the
first digital device within a predetermined time period,
determining that no digital device in the one or more digital
devices is hosting the service.
13. The method of claim 12, wherein a second digital device in the
one or more digital devices starts hosting the service after a
first digital device in the one or more digital devices stops
hosting the service, thereby allowing the first digital device and
the second digital device to jointly provide continuous service for
clients.
14. The method of claim 13, wherein the second digital device is
elected as a host for the service based on one or more of the
following factors: a capability of the second digital device; a
capacity of the second digital device; a classification associated
with the second digital device; a function of the service; an
operating history of the second digital device; an identifier
associated with the second digital device; and a result from a
resolution protocol performed by the one or more digital
devices.
15. The method of claim 14, wherein each of the one or more digital
devices uses same factors to elect the host for the service.
16. The method of claim 12, wherein the static network address
comprises a fixed Internet Protocol (IP) address.
17. The method of claim 12, wherein the one or more digital devices
comprises access points that are not coupled to any network device
having capabilities of a controller, and wherein the service
comprises one or more controller functionalities.
18. The method of claim 12, wherein a plurality of services are
distributed across the one or more digital devices that host the
services.
19. A method comprising: receiving, by a first digital device in a
group of digital devices, a request for a service hosted by one or
more digital devices in the group of digital devices, wherein the
request comprises a network address corresponding to the requested
service; determining, by the first digital device, whether a second
digital device in the group of digital devices hosts the requested
service based on the network address; and in response to the second
digital device hosting the requested service, redirecting, by the
first digital device, the request to the second digital device.
20. The method of claim 19, further comprising: receiving, by the
first digital device, a periodical message comprising the network
address, wherein the periodical message indicates that the second
digital device hosts the service associated with the request; and
storing, at the first digital device, the network address in the
received periodical message and the service associated with the
network address.
21. The method of claim 19, wherein a third digital device in the
one or more digital devices is elected as a new host for the
service in response to the second digital device stopping hosting
the service.
22. The method of claim 21, wherein the third digital device in
lieu of the second digital device is associated with the network
address when hosting the service.
23. The method of claim 19, wherein the network address comprises a
static Internet Protocol (IP) address.
24. The method of claim 19, wherein the one or more digital devices
comprises access points that are not coupled to any network device
having capabilities of a controller, and wherein the service
comprises one or more controller functionalities.
25. A digital device in the group of digital devices, the digital
device comprising: a processor; a memory; a listening mechanism
operating with the processor, the listening mechanism to listen for
a periodical message identifying a service, wherein the service is
to be hosted by one or more digital devices in the group of digital
devices, wherein the service is associated with a static network
address shared by the one or more digital devices, and wherein the
periodical message comprises the static network address; a storing
mechanism coupled to the memory, the storing mechanism to store the
static network address associated with the service at the first
digital device in response to the periodical message being received
by the first digital device; and a determining mechanism operating
with the processor, the determining mechanism to determine that no
digital device in the one or more digital devices is hosting the
service in response to no periodical message being received by the
first digital device within a predetermined time period.
26. The digital device of claim 25, wherein a second digital device
in the one or more digital devices starts hosting the service after
a first digital device in the one or more digital devices stops
hosting the service, thereby allowing the first digital device and
the second digital device to jointly provide continuous service for
clients.
27. The digital device of claim 26, wherein the second digital
device is elected as a host for the service based on one or more of
the following factors: a capability of the second digital device; a
capacity of the second digital device; a classification associated
with the second digital device; a function of the service; an
operating history of the second digital device; an identifier
associated with the second digital device; and a result from a
resolution protocol performed by the one or more digital
devices.
28. The digital device of claim 27, wherein each of the one or more
digital devices uses same factors to elect the host for the
service.
29. The digital device of claim 25, wherein the static network
address comprises a fixed Internet Protocol (IP) address.
30. The digital device of claim 25, wherein the one or more digital
devices comprises access points that are not coupled to any network
device having capabilities of a controller, and wherein the service
comprises one or more controller functionalities.
31. The digital device of claim 25, wherein a plurality of services
are distributed across the one or more digital devices that host
the services.
32. A digital device in a group of digital devices, the digital
device comprising: a processor; a memory; a receiving mechanism
operating with the processor, the receiving mechanism to receive a
request for a service hosted by one or more digital devices in the
group of digital devices, wherein the request comprises a network
address corresponding to the requested service; a determining
mechanism operating with the processor, the determining mechanism
to determine whether a second digital device in the group of
digital devices hosts the requested service based on the network
address; and a redirecting mechanism operating with the processor,
the redirecting mechanism to redirect the request to the second
digital device in response to the second digital device hosting the
requested service.
33. The digital device of claim 32, wherein the receiving mechanism
further receives a periodical message comprising the network
address, wherein the periodical message indicates that the second
digital device hosts the service associated with the request; and
wherein the digital device further comprises a storing mechanism
coupled to the memory, the storing mechanism to store the network
address in the received periodical message and the service
associated with the network address.
34. The digital device of claim 32, wherein a third digital device
in the one or more digital devices is elected as a new host for the
service in response to the second digital device stopping hosting
the service.
35. The digital device of claim 34, wherein the third digital
device in lieu of the second digital device is associated with the
network address when hosting the service.
36. The digital device of claim 32, wherein the network address
comprises a static Internet Protocol (IP) address.
37. The digital device of claim 32, wherein the one or more digital
devices comprises access points that are not coupled to any network
device having capabilities of a controller, and wherein the service
comprises one or more controller functionalities.
Description
NOTICE OF RELATED APPLICATION
[0001] This application is related to U.S. patent application Ser.
No. ______, entitled "Provisioning a Swarm" filed on Dec. ______,
2010, by Pradeep lyer and Santashil PalChaudhuri, the disclosure of
which is specifically incorporated herein by reference.
BACKGROUND OF THE INVENTION
[0002] The present invention relates to digital networks, and in
particular, to the problem of providing known IP addresses for
services provided by a swarm of wireless access points.
[0003] As used herein, a swarm is defined as a set of cooperating
digital devices communicating over a digital network. One example
of a swarm is a group of wireless access points (AP) providing
wireless services to clients. Other examples of swarms are clusters
of computers operating as a render farm, or other distributed
computing tasks.
[0004] The composition of the swarm may change dynamically. As an
example, access points may be added dynamically to a swarm, or may
be removed from service.
[0005] An important aspect of a swarm is the distribution of
services across swarm members. As an example, in a swarm of
wireless access points, aspects of the functionality normally
provided by a separate controller such as administration and
configuration may be distributed over members of the swarm. And
while this functionality may be hosted by any member of the swarm,
there may still be a need to provide access to these services, such
as by providing fixed IP addresses. In that way, clients may use
the services without needing to know which member of the swarm is
hosting the service.
[0006] What is needed is a way to provide and maintain addresses
for services provided by members of the swarm.
BRIEF DESCRIPTION OF THE DRAWINGS
[0007] The invention may be best understood by referring to the
following description and accompanying drawings that are used to
illustrate embodiments of the invention in which:
[0008] FIG. 1 shows devices in a network operating as a swarm.
DETAILED DESCRIPTION
[0009] Embodiments of the invention relate to methods of providing
and maintaining addresses for services provided by a swarm.
[0010] According to the present invention, a swarm is a group of
digital devices connected to a digital network and operating in a
cooperative manner. An example of a swarm is a group of wireless
access points providing wireless services to clients. One or more
services may be distributed over members of the swarm. While
members of the swarm typically do not have fixed IP addresses,
fixed addresses may be provided for swarm services. Each service on
the swarm has a master, and is hosted on one member of the swarm.
The master broadcasts a periodic heartbeat, advertising its service
and the address of the host member. If a swarm member fails to hear
a particular service's heartbeat for a predetermined interval, it
broadcasts a message announcing its intent to be master for the
service. If the swarm member does not receive any other broadcasts
from members indenting to take the role of master for the service,
it takes over the role of master for the service and begins
broadcasting periodic heartbeats identifying itself as the service
master. If multiple swam members broadcast their intent to become
master of the same service, a resolution protocol is invoked and
one swarm member is selected to be master.
[0011] In operation, each member of the swarm maintains a table of
services and the address of the swarm member hosting the service;
this information is obtained from the periodic heartbeats broadcast
by each service master. When a swarm member receives a service
request, the request is either redirected to the service master, or
the request is terminated at the swarm member and handled.
[0012] FIG. 1 shows a network in which a swarm comprises a
plurality of access points. Access points (APs) 100a-100e are
purpose-made digital devices, each containing a processor 110,
memory hierarchy 120, and input-output interfaces 130. In one
embodiment of the invention, a MIPS-class processor such as those
from Cavium or RMI is used. Other suitable processors, such as
those from Acorn, Intel, or AMD may also be used. The memory
hierarchy 120 traditionally comprises fast read/write memory for
holding processor data and instructions while operating, and
nonvolatile memory such as EEPROM and/or Flash for storing files
and system startup information. Wired interfaces 140 are typically
IEEE 802.3 Ethernet interfaces, used for wired connections to other
network devices such as switches, or to a controller. Wireless
interfaces 130 may be WiMAX, 3G, 4G, and/or IEEE 802.11 wireless
interfaces. In one embodiment of the invention, APs operate under
control of a LINUX operating system. APs 100 may connect to a
switch 300 which provides access to network 400. It should be noted
that switch 300 does not have the capabilities of a controller, but
only provides L2/L3 switching.
[0013] Wireless client 200 has a similar architecture, chiefly
differing in input/output devices; a laptop computer will usually
contain a large LCD, while a handheld wireless scanner will
typically have a much smaller display, but contain a laser barcode
scanner.
[0014] While the present invention is described in terms of a swarm
comprising a plurality of access points providing wireless services
to clients, the invention is equally applicable to swarms of other
digital devices communicating on a network.
[0015] According to the present invention, a swarm is a group of
digital devices connected to a network and operating cooperatively.
As shown in FIG. 1, APs 100a-100e form a swarm, with APs 100a-100d
having wired connections to switch 300, and AP 100e having only
wireless connections to the other members 100a-100d of the swarm.
Note that the network supporting the swarm may be a wired network,
a wireless network, or a combination. In a preferred embodiment,
the wireless network is an IEEE 802.11 Wireless network. In the
example of FIG. 1, switch 300 provides access to network 400.
[0016] An important aspect of a swarm is the distribution of
services over the swarm. In the example of a swarm of wireless
access points (APs), such as shown in FIG. 1, aspects of controller
functionality normally required to operate such a group of APs may
be hosted on one or more members of the swarm. Each service is
hosted on one member of the swarm.
[0017] According to the present invention the service master
broadcasts a heartbeat periodically. In one embodiment of the
invention, this heartbeat identifies the service, and the IP
address of the swarm member hosting the service.
[0018] Other swarm members monitor the service heartbeat. If a
swarm member does not receive a service heartbeat in a
predetermined period, the swarm member broadcasts a message to all
other swarm members indicating that the swarm member intends to be
the master for that particular service. If the swarm member does
not receive any other broadcasts of intent to be that service's
master, the swarm member takes on the role of service master and
begins broadcasting the periodic heartbeats. This process covers
the cases of service startup when no previous master exists, and
service recovery when the service master fails.
[0019] Note that not all swarm members may serve as masters for all
services. As an example, in a swarm of access points, the design
decision may be made not to permit mesh nodes, those nodes without
wired Ethernet connections such as AP 100e, to become masters for
certain services. Swarm elements not possessing cryptographic
hardware may not be suitable for hosting certain authentication
functions, and so on. Similarly, a swarm element already acting as
master for one service may be configured to not offer its services
as master for another service.
[0020] Similarly, some swarm members may be favored to host
services. A device with larger memory capacity or a faster
processor may be favored to host some services. In one embodiment
of the invention, swarm members may be divided into classes
according to their suitability as masters for a particular service.
Those with a higher degree of suitability will have a shorter
preset time limit before broadcasting the intent to be master. As
an example, assume a particular service master sends out a
heartbeat every second. Assume there are three classes of swarm
members, with those having the highest degree of suitability for
operating as master waiting five seconds before broadcasting intent
to be master, those in the middle class waiting six seconds, and
those in the lower class waiting seven seconds before broadcasting
intent to be master.
[0021] In the event that multiple swarm members broadcast the
intent to be master, a resolution protocol must be employed. The
resolution protocol for the service must be the same on all swarm
members, so that each member of the swarm can apply the protocol
and arrive at the same decision as to which member will be
master.
[0022] Many different protocols may be used, as long as they are
used uniformly for the service over all members of the swarm.
Examples include choosing the master based on the identification of
the swarm member, such as MAC address or IP address. As examples,
high or low values may be chosen as master. Information relating to
the operating history of the swarm member, such as uptime may also
be used, but this requires that the information needed for the
resolution protocol be included in the broadcast intent to be
master message.
[0023] Depending on the service, once a master has been selected,
the master may need to populate data structures with information
from other swarm members. In one embodiment of the invention, when
a non-master swarm member detects that a new master has been
selected for a service, the swarm member sends complete datasets to
the new master. Once the master has been provided with complete
datasets, only changes need be sent as needed. As an example, in
the case of a swarm of access points and a service providing
administrative functions, when a swarm member detects a new master
has been established for this service, the swarm member sends the
master complete tables describing all the wireless clients
connected to the access point. Once complete tables have been
provided to the master, the swarm member need only send changes to
the master.
[0024] As an example, assume that during swarm startup, AP 100c is
first to advertise itself as a service master for a service. AP
100c starts service process 160. AP 100c begins broadcasting
periodic heartbeats for service 160. If AP 100c fails, the
heartbeat for service 160 from AP 100c ceases. This causes the
remaining APs to once again select a new master, such as AP 100d
starting new service process 170. Now AP 100d begins broadcasting
periodic heartbeats for service 170.
[0025] A client such as wireless client 200 is associated with a
particular AP member of the swarm. As shown in FIG. 1, client 200
is associated with AP 100a. When client 200 wishes to use a swarm
service, it does that through the fixed address for that service. A
request from client 200 is received by AP 100a member of the swarm.
AP 100a uses the table of service addresses which it maintains from
received heartbeats. If the AP cannot process the request itself,
the request is redirected to the swarm member hosting the service,
such as AP 100d for service 170.
[0026] The present invention may be realized in hardware, software,
or a combination of hardware and software. The present invention
may be realized in a centralized fashion in one computer system
such as AP 100a, or in a distributed fashion where different
elements are spread across several interconnected computer systems.
A typical combination of hardware and software may be an access
point with a computer program that, when being loaded and executed,
controls the device such that it carries out the methods described
herein.
[0027] The present invention also may be embedded in nontransitory
fashion in a computer program product, which comprises all the
features enabling the implementation of the methods described
herein, and which when loaded in a computer system is able to carry
out these methods. Computer program in the present context means
any expression, in any language, code or notation, of a set of
instructions intended to cause a system having an information
processing capability to perform a particular function either
directly or after either or both of the following: a) conversion to
another language, code or notation; b) reproduction in a different
material form.
[0028] This invention may be embodied in other forms without
departing from the spirit or essential attributes thereof.
Accordingly, reference should be made to the following claims,
rather than to the foregoing specification, as indicating the scope
of the invention.
* * * * *