The present invention relates to automatic provisioning of machine-to-machine (M2M) devices. More particularly, the present invention relates to a system and method for automating the provisioning of M2M devices with a WiFi interface over a wide area wired or wireless network.
In recent years, numerous in-home appliances have been provided with computer processor base control. As a result of the introduction of the World Wide Web in the mid-1990's, many devices have become programmable either locally via a built-in user interface (e.g., a microwave oven), locally via a an external user interface provided by a personal computer with a cable connection (e.g., USB), or remotely via a telephone network or a cable network employing an Internet and/or a local area network. One class of remotely-programmable appliances/devices is known as a machine-to-machine (M2M) device. As used herein, an M2M device has at least one communication interface to interact with other devices or servers, but has no or a limited human interface. In the future, devices employing M2M communications may become a dominant form of traffic and service supported by communications networks, including the Internet. M2M devices may include, for example, smart meters, cleaning robots, smart appliances, home security systems, e-health monitors, and telematic on-board-units. As defined herein, M2M devices do not include smart phones, tablets, or laptop/desktop computers.
Conventional remotely-programmable M2M devices have employed a number of communications media, interfaces, and protocols. M2M communications media, interfaces, and protocols may include, for example, a wide area network (WAN), a local area network (LAN), or combinations of both. A WAN may be, for example, a wireless WAN (WWAN) or a fixed (wireline) WAN (FWAN). Similarly, a LAN may be, for example, a wireless LAN (WLAN) or a fixed LAN (FLAN). Table 1 shows a non-exhaustive list of network, media, and protocol flavors of WWAN, FWAN, WLAN, FLAN networks currently available for communication with and between M2M devices.
Before an M2M device may be connected to, addressable by, and managed by a network, the M2M device needs to be provisioned. Conventionally, M2M devices have been manually provisioned for later remote access by users. Moreover, in order for conventional M2M devices to be managed remotely by a service provider, additional manual provisioning is needed to assign a FQDN (Fully Qualified Domain Name) to an M2M device so that it may be addressable over a network by a service provider or a user.
Still further, although mobile devices (e.g., handsets, tablets) connected to a WWAN (e.g., 2G, 3G, 4G cellular network) and fixed modems connected to a FWAN (e.g., cable, DSL, fiber) can be provisioned using automatic provisioning schemes for some years, the current automatic provisioning schemes for mobile devices and fixed modems cannot be applied to M2M devices having only a WiFi interface that requires a gateway to communicate with a WAN. To enable automatic provisioning of such M2M devices with no or a minimal human interface, the WiFi interface in the M2M device needs to be initially set to ad hoc mode, instead of infrastructure mode, which may require WiFi network selection by a human being (as in handsets, tablets, or laptops).
In operation, the M2M device 102 in a gateway area 104 is provisioned manually by a user 108 through a local host 110 (e.g., a computer) to provide the M2M device 102 with network connectivity (e.g., by assigning one or more IP addresses to the M2M device 102 and by permitting port forwarding of data from the M2M device 102, etc.) so that the M2M device 102 becomes accessible to a remote controlling host 122 (e.g., a smart phone or a laptop) or to another M2M device 118 within another gateway area covered by a second CPE gateway 116 (e.g., M2M Device B 118) with a private address, or to another M2M device 120 (e.g., M2M Device C 120) having a public IP address. A public dynamic DNS sever 114 permits the M2M device 102 to be provided with remote Internet access behind the CPE gateway 106.
Accordingly, what would be desirable, but has not yet been provided, is an automated system and method for provisioning an M2M device having a WiFi interface.
The above-described problems are addressed and a technical solution is achieved in the art by providing a method and system for automatically provisioning a machine-to-machine (M2M) device. A WiFi M2M gateway identifies a WiFi network identifier (ESSID) broadcast by a powered-on M2M device in WiFi ad hoc mode through a scanning procedure and joins the WiFi ad hoc network defined by the M2M device. The WiFi M2M gateway obtains (device) identification information (e.g., MAC address) received from the M2M device. The WiFi M2M gateway transmits a command to the M2M device to switch from ad hoc mode to infrastructure mode to connect with a WAN. The WiFi M2M gateway registers the M2M device with an M2M server associated with a service provider based on the device information of the M2M device. The WiFi M2M gateway receives a fully qualified domain name (FQDN) associated with the M2M device from the M2M server.
In one embodiment, the WiFi M2M gateway maintains at least one other connection in ad hoc mode after switching an M2M device from ad hoc mode to infrastructure mode when provisioning new M2M devices and servicing provisioned M2M devices concurrently in the same gateway area is required.
In one embodiment, obtaining device information is at least one of a name, an IP address, and a MAC address of the M2M device. The IP address may be in one of IPv4 format or IPv6 format. The name may be a user login name, a password, or both, which is used for M2M devices with a built-in Web server for remote access via a Web client. The device identification information may be stored in a processing queue and a database in a M2M gateway and a M2M server.
In one embodiment, registering the M2M device with an M2M server associated with a service provider based on the device information of the M2M device comprises creating a device management (DM) message with the device information of the M2M device as a payload and transmitting the DM message to the M2M server.
The above-described problems are addressed and a technical solution is achieved in the art by providing a method and system for automatically provisioning a machine-to-machine (M2M) device. An M2M server associated with a service provider receives (device) identification information of an M2M device from a WiFi M2M gateway. The M2M server transmits a message with the device information of the M2M device as a payload to a domain name server (DNS). The M2M server receives a fully qualified domain name (FDQN) associated with the M2M device from the DNS. The M2M server transmits the FDQN to the WiFi M2M gateway. To enable communication with a M2M device behind a CPE gateway with network address translation (NAT), a special DNS record for NAT tunneling (e.g., NAT3D) is provisioned in the DNS for obtaining the FQDN. A regular record in the DNS to map the FQDN is provisioned for a M2M device without network address translation (NAT).
In one embodiment, device information is stored in the GDD and the SDD at the service provider network is kept in sync with that in the GDD, which is used to facilitate a fast response for at least one of retrieving or updating device information in a gateway area.
In one embodiment, the M2M server determines whether there is at least one application associated with the M2M device and launches the at least one application when at least one application is found.
In one embodiment, the M2M server queries a database for an entry corresponding to the device identification information received corresponding to the M2M device. If no entry is found, the M2M server creates a new record in the database based on the device identification information.
The present invention may be more readily understood from the detailed description of an exemplary embodiment presented below considered in conjunction with the attached drawings and in which like reference numerals refer to similar elements and in which:
It is to be understood that the attached drawings are for purposes of illustrating the concepts of the invention and may not be to scale.
The present invention relates to a system and method for automating the provisioning of WiFi-equipped M2M devices with a WiFi M2M gateway in a gateway area in conjunction with an M2M Server and a DNS Server in a service provider network. Although described in terms of provisioning of M2M devices with only a WiFi IP interface, embodiments of the present invention may be extended to cover auto-provisioning of M2M devices with other communication interfaces.
As used herein, the term “program”, “application”, “software package” or “computer executable instructions” refers to instructions that may be performed by a processor and/or other suitable components. The term “computer” or “server”, as used herein, is not limited to any one particular type of hardware device, but may be any data processing device such as a desktop computer, a laptop computer, a kiosk terminal, a personal digital assistant (PDA) or any equivalents or combinations thereof. Any device or part of a device configured to process, manage or transmit data, whether implemented with electrical, magnetic, optical, biological components or otherwise, may be made suitable for implementing the invention described herein.
As used herein, the term communicatively connected is intended to include any type of connection, whether wired or wireless, in which data may be communicated. Furthermore, the term “communicatively connected” is intended to include a connection between devices and/or programs within a single computer or between devices and/or programs on separate computers.
Although specific embodiments have been illustrated and described herein, those of ordinary skill in the art will appreciate that an arrangement configured to achieve the same results may be substituted for the specific embodiments shown. This disclosure is intended to cover adaptations or variations of various embodiments of the present disclosure. It is to be understood that the above description has been made in an illustrative fashion, and not a restrictive one. Combination of the above embodiments, and other embodiments not specifically described herein will be apparent to those of skill in the art upon reviewing the above description.
The scope of the various embodiments of the present disclosure includes other applications in which the above structures and methods are used.
The automatic provisioning environment 300 further includes a service provider core IP network 324 and a WiFi M2M gateway 326 located in the gateway area 304. The service provider core IP network 324 further comprises an IP-connected network router 330, an M2M server 332, and a DNS server 334 under the management of a service provider (not shown).
The WiFi M2M gateway 326 comprises a WiFi interface, a direct connection (i.e., wireline, e.g., as internal bus, e.g., USB) or a wireless connection (e.g., Bluetooth) communicatively connected to the CPE gateway 306. In one embodiment, the WiFi M2M gateway 326 and the M2M server 332 comprise processing logic 336 for automating the provisioning of the M2M device 302 over a wired or wireless wide area network (WAN) (e.g., the Internet) 312. The WiFi M2M gateway can be integrated with the CPE gateway in one physical box to ease installation, shipping, and save equipment costs and operating space.
The M2M server 332 comprises processing logic 338 configured to provide centralized device management functionality for M2M devices (e.g., M2M device 302) associated with the service provider's subscribers. The DNS server 334 is configured to manage device name-to-IP address mapping and provides a FDQN to be associated with the M2M device 302 in the service provider's administration domain. As a result, the M2M device 302 in a gateway area 304 becomes accessible to a remote controlling host 322 (e.g., a smart phone or a laptop) or to another M2M device 318 within another gateway area covered by a second CPE gateway 316 (e.g., M2M Device B 318) with a private address, or to another M2M device 320 (e.g., M2M Device C 120) having a public IP address.
In circumstances when the M2M device 302 device is rebooted to default factory setting (e.g., due to power failure), the automatic re-provisioning procedure of
At block 602, the WiFi M2M gateway 326 searches for an Extended Service Set Identification (ESSID)—a WiFi network identifier. If, at block 604, no ESSID is found, then processing returns to block 602. If at bock 604, an ESSID is found, then at block 606, the M2M gateway 326 performs an ad hoc connection to a device (e.g., the M2M devices 302) associated with the ESSID. At block 608, the M2M gateway 326 obtains a MAC address of the device (e.g., the M2M devices 302). At block 610, the M2M gateway 326 obtains a corresponding IP address and optional name of the M2M devices 302 based on the received MAC address of the M2M devices 302. At block 612, the M2M gateway 326 stores the received ESSID, IP address, and optional name in the Gateway Device Database (GDD) 410. Note that the optional steps of obtaining and setting end-user credentials (username, password) for authentication are only needed for M2M devices with a Web server 302. The User id/password can be pre-set via other process and stored in the GDD database.
If, at block 614, the M2M device 302 does not need to be registered with the M2M server 332 (e.g., for billing or accounting purposes), then processing returns to block 602, otherwise, at block 616, the M2M gateway 326 transmits a command to the M2M device 302 to switch from WiFi ad hoc mode to WiFi infrastructure mode. At block 618, the M2M gateway 326 stores the MAC address, optional name information, and IP address information of the M2M device 302 in the processing queue 406 of the M2M gateway 326 for transmission to the M2M server 332 over the Internet 312.
It should be noted that other active M2M devices already provisioned may be operating in infrastructure mode while the WiFi M2M gateway 326 is instructed to provision a new M2M device (i.e., block 602). To avoid service interruption for the active M2M device(s) already connected with the CPE gateway 326 while a new M2M device (e.g., M2M device 302) is being provisioned, it is important that both the WiFi M2M gateway 326 and the CPE gateway 306 each have their own WiFi radio and have separate direct links (e.g., internal bus, USB, Bluetooth) to connected M2M devices. This is to initiate a request and receive a response on an available IP address associated with the WiFi infrastructure connection when moving over from ad hoc to infrastructure mode of the M2M device 302, respectively.
In circumstances where a service interruption to active devices is acceptable while provisioning a new device in the same gateway area (e.g., provisioning a small number of devices in a hotel), the processing logic 336 of the WiFi M2M gateway 326 may be integrated with CPE gateway 306 for M2M device provisioning. One example of an integrated box is a smart phone with MiFi (as a portable CPE gateway) with the processing logic 336 running as a mobile application.
Embodiments of the present invention have several advantages over prior art M2M device provisioning methods. By employing the WiFi M2M gateway 306 in the gateway area 304 and the M2M server 332 and the DNS server 334 in the service provider IP core network 324, embodiments of the present invention may provide for automatic initial provisioning and re-provisioning of M2M devices. The WiFi M2M gateway 306 and the M2M server 332 further provide for automatic M2M device registration for centralized device management by a service provider and enable device access by other devices in a public or a private IP network via a service provider supplied FQDN. The WiFi M2M gateway 306 and the M2M server 332 are configured to permit automatic provisioning of the M2M device 302 remotely (outside of the gateway area). The WiFi M2M gateway 306 and the M2M server 332 provide support for M2M devices with IPv6 addresses and/or IPv4 addresses. The WiFi M2M gateway 306 can provide automatic provisioning of multiple M2M devices without service interruption of active devices in the same gateway area.
The exemplary computer system 900 includes a processing device 902, a main memory 904 (e.g., read-only memory (ROM), flash memory, dynamic random access memory (DRAM) (such as synchronous DRAM (SDRAM) or Rambus DRAM (RDRAM), etc.), a static memory 906 (e.g., flash memory, static random access memory (SRAM), etc.), and a data storage device 918, which communicate with each other via a bus 930.
Processing device 902 represents one or more general-purpose processing devices such as a microprocessor, central processing unit, or the like. More particularly, the processing device may be complex instruction set computing (CISC) microprocessor, reduced instruction set computer (RISC) microprocessor, very long instruction word (VLIW) microprocessor, or processor implementing other instruction sets, or processors implementing a combination of instruction sets. Processing device 902 may also be one or more special-purpose processing devices such as an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a digital signal processor (DSP), network processor, or the like. Processing device 902 is configured to the processing logic 922 for performing the operations and steps discussed herein.
Computer system 900 may further include a network interface device 908. Computer system 900 also may include a video display unit 910 (e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)), an alphanumeric input device 912 (e.g., a keyboard), a cursor control device 914 (e.g., a mouse), and a signal generation device 916 (e.g., a speaker).
Data storage device 918 may include a machine-readable storage medium (or more specifically a non-transitory computer-readable storage medium) 1020 having one or more sets of instructions (e.g., the processing logic 336, 332 of
Machine-readable storage medium 920 may also be used to store the device queue manager logic persistently. While machine-readable storage medium 920 is shown in an exemplary embodiment to be a single medium, the term “machine-readable storage medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more sets of instructions. The term “machine-readable storage medium” shall also be taken to include any medium that is capable of storing or encoding a set of instruction for execution by the machine and that causes the machine to perform any one or more of the methodologies of the present invention. The term “machine-readable storage medium” shall accordingly be taken to include, but not be limited to, solid-state memories, and optical and magnetic media.
The components and other features described herein may be implemented as discrete hardware components or integrated in the functionality of hardware components such as ASICs, FPGAs, DSPs or similar devices. In addition, these components may be implemented as firmware or functional circuitry within hardware devices. Further, these components may be implemented in any combination of hardware devices and software components.
Some portions of the detailed descriptions are presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. An algorithm is here, and generally, conceived to be a self-consistent sequence of steps leading to a desired result. The steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.
It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise, as apparent from the above discussion, it is appreciated that throughout the description, discussions utilizing terms such as “enabling”, “transmitting”, “requesting”, “identifying”, “querying”, “retrieving”, “forwarding”, “determining”, “passing”, “processing”, “disabling”, or the like, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.
Embodiments of the present invention also relate to an apparatus for performing the operations herein. This apparatus may be specially constructed for the required purposes or it may comprise a general purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored in a computer readable storage medium, such as, but not limited to, any type of disk including floppy disks, optical disks, CD-ROMs and magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, flash memory devices including universal serial bus (USB) storage devices (e.g., USB key devices) or any type of media suitable for storing electronic instructions, each of which may be coupled to a computer system bus.
The algorithms and displays presented herein are not inherently related to any particular computer or other apparatus. Various general purpose systems may be used with programs in accordance with the teachings herein or it may prove convenient to construct more specialized apparatus to perform the required method steps. The required structure for a variety of these systems will be apparent from the description above. In addition, the present invention is not described with reference to any particular programming language. It will be appreciated that a variety of programming languages may be used to implement the teachings of the invention as described herein.
It is to be understood that the above description is intended to be illustrative, and not restrictive. Many other embodiments will be apparent to those of skill in the art upon reading and understanding the above description. Although the present invention has been described with reference to specific exemplary embodiments, it will be recognized that the invention is not limited to the embodiments described, but can be practiced with modification and alteration within the spirit and scope of the appended claims. Accordingly, the specification and drawings are to be regarded in an illustrative sense rather than a restrictive sense. The scope of the invention should, therefore, be determined with reference to the appended claims, along with the full scope of equivalents to which such claims are entitled.
This application claims the benefit of U.S. provisional patent application No. 61/546,680 filed Oct. 13, 2011, the disclosure of which is incorporated herein by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
61546680 | Oct 2011 | US |