Abstract:
Aspects of the embodiments are directed to a collaborative tool that can include receiving one or more design parameters into a web server for designing a placement of one or more electromagnetic emitters; designing a structural layout for configuring a wireless network; virtually placing a plurality of electromagnetic emitters in different areas around the structural layout; testing electromagnetic signal strength in the structural layout; and optimizing the electromagnetic emitter placement.

Description:
CROSS REFERENCE TO RELATED APPLICATION 
       [0001]    This disclosure is a non-provisional patent application that claims the benefit of U.S. Provisional Patent Application Ser. No. 62/318,280, filed on Apr. 5, 2016, the entire contents of which are incorporated by reference herein. 
     
    
     TECHNICAL FIELD 
       [0002]    This disclosure pertains to, but is not limited to, the field of wireless networking, and more specifically, the disclosure pertains to, but is not limited to, a web-based, collaborative application that allows one or more users to design wireless networks for small, medium, and large sized companies, interactively and predictively. 
       BACKGROUND 
       [0003]    Wireless networks, such as a Wi-Fi network, can be deployed in office buildings, libraries, and other structures that may have complex or uneven layouts. Building layout complexity can result in uneven wireless radio signal strength distribution. 
       SUMMARY 
       [0004]    This disclosure describes predicting Wi-Fi distribution of signals that include applying the Wi-Fi vendor&#39;s best practice policies to the design. The systems and methods described herein seek to solve this issue by emphasizing the best practices from the vendor and uses sophisticated algorithms that automatically place emitters in their best possible locations based on client parameters. This disclosure also describes a web based collaborative environment that enables multiple users to design, review, and plan for Wi-Fi network deployments. 
         [0005]    Aspects of the embodiments are directed to a computer program product tangibly embodied on non-transient storage media, the computer program product comprising computer code that comprises instructions that are operable when executed to cause a hardware processor to receive one or more design parameters into a web server for designing a placement of one or more electromagnetic emitters; design a structural layout for configuring a wireless network; virtually place a plurality of electromagnetic emitters in different areas around the structural layout; test electromagnetic signal strength in the structural layout; and optimize the electromagnetic emitter placement. 
         [0006]    Aspects of the embodiments are directed to a computer implemented method that includes receiving one or more design parameters into a web server for designing a placement of one or more electromagnetic emitters; designing a structural layout for configuring a wireless network; virtually placing a plurality of electromagnetic emitters in different areas around the structural layout; testing electromagnetic signal strength in the structural layout; and optimizing the electromagnetic emitter placement. 
         [0007]    Aspects of the embodiments are directed to a system for providing a Wi-Fi design tool, the system including a server that includes a hardware processor and a memory. The server can store Wi-Fi design tools and elements, such as building and/or structural design elements for simulating a building design, Wi-Fi emitter elements that can simulate a Wi-Fi signal, interface software for providing a web-based interface for accessing the Wi-Fi design tool, and algorithms for placing emitters, simulating building properties, and analyzing simulated Wi-Fi coverage. The server can be accessed by a device across a network connection. The device can log into the server using a profile that can be tied to one or more stored files, customized tools, and other personalized or customized resources stored on the server. The device can be provided an interface across the network and displayed on the device. The interface can allow a user to access the building tools to simulate the construction of a building or office. The interface can also allow the user to access the Wi-Fi emitter simulation tools to place emitters, and analyze a simulated Wi-Fi signal. The server can also provide a genetic algorithm to iteratively change emitter number and placement, based on whether the emitter placement and/or number satisfy a plan quality threshold, the threshold considering one or more factors, such as coverage and cost. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0008]      FIG. 1  is a diagram that illustrates a system level view and user experience in accordance with embodiments of the present disclosure. 
           [0009]      FIG. 2  is a diagram that shows the collaboration process that takes place when multiple users are working on the same floorplan and the respective roles they may have. 
           [0010]      FIG. 3  is a diagram that shows the overall algorithmic process that takes place during a collaboration process. 
           [0011]      FIG. 4  is a diagram that shows the collaboration process from a detailed algorithmic perspective. 
           [0012]      FIG. 5  is a diagram that shows the signal coverage process from a detailed algorithmic perspective. 
           [0013]      FIG. 6  is a diagram that shows the Autoplace Strategy from a detailed algorithmic perspective. 
           [0014]      FIG. 7  is a process flow diagram of a Genetic Algorithm in accordance with embodiments of the present disclosure. 
           [0015]      FIG. 8  is a schematic diagram of a computing system for a network visualization collaboration tool in accordance with embodiments of the present disclosure. 
       
    
    
     DETAILED DESCRIPTION 
       [0016]    This disclosure pertains to, but is not limited to, the field of wireless networking, and more specifically, the disclosure pertains to, but is not limited to, a web-based, collaborative application that allows one or more users to design wireless networks for small, medium, and large sized companies, interactively and predictively. 
         [0017]      FIG. 1  is a diagram that illustrates a system level view and user experience in accordance with embodiments of the present disclosure. A user can interface with a website  102  using a computer, tablet, smartphone, or other computing device. The user can visit a website hosted by a provider of the design software. Through a user management interface  104 , the user then either registers on the website as an individual, part of a corporate group, or simply logs in after registering an account. 
         [0018]    In embodiments, the user can use the software as part of a single user session  106  or a multi-user web collaboration session  108 . The Multi-User Web Collaboration Session  108 , also referred to as a “Pond Session”, is a web-based collaborative workspace that allows one or more users to work on and design Wi-Fi deployment plan using one or more floorplans. 
         [0019]    A user that does not wish to work on a collaborative design can instead work on one using the workspace provided, individually. If they so choose, however, can convert the single-user session to a Multi-User session at will. 
         [0020]    Floorplan Management  112  allows the user to manage their projects, locations, buildings, and floors for each of their Wi-Fi designs. This section allows the user to create, edit, and delete any of their project related items. The aggregated data, which comes from the resulting design, can be queried for reporting by a query module  114  depending on specific filters that the user desires, resulting in personalized reporting. 
         [0021]    Signal Coverage Maps (heat maps) generated  116  and individualized reporting can be generated and sent to specific recipients, and stored on a server. Reports are saved and filed ( 118 ) according to the project that they are related to. 
         [0022]      FIG. 2  is a workflow diagram for a multi-user web collaboration session for a wireless network design in accordance with embodiments of the present disclosure. A user logs into the website and is able to select their project through user management interface  104 . A user selects their project and then initiates a Multi-User Web Collaboration Session  108 , which sends invitations out to individuals related to the project. Assigned Roles  206  are decided by the user through the interface: among the roles include a host  208 , a designer  210 , a client  212 , and utility  214 . 
         [0023]    The Host  208  has control over the entire collaboration session, including but not limited to, the roles assigned to other users that enter the collaboration session, and the workspace at any given time. The Host  208  also controls when the collaboration session has concluded. The Host  208  is also able to prioritize reporting to involved parties. 
         [0024]    The Designer  210  requests a floorplan from either the client or from the project repository. 
         [0025]    The Client  212  uploads a floorplan  220  from their own computer to the shared workspace during a collaboration session. 
         [0026]    The Utility  214  locates Main Distribution Frames (MDFs) and Intermediate Distribution Frame (IDFs) in the building, and designs wire runs, which are automatically calculated, and how wires will be run to emitters. 
         [0027]    The Host  208  creates and runs the entire session  216 . They have full control over every aspect of the project during the design process. 
         [0028]    The Designer  210  creates elements  218 , such as drawing the perimeter, walls, attenuation zones, occupant zones which are areas of high client transmit and receive density, and selects the ceiling types. Designer  210  can also load a floorplan from the project repository. 
         [0029]    The Client  212  can provide the floorplan to the workspace, along with location data that corresponds to the floorplan. They can also provide site contact(s) for the Utility. 
         [0030]    The Utility  214  can provide insight into the MDF/IDF locations, points of ingress and egress, and estimate cable distances, and other building information  222 . 
         [0031]    The user (by default) can be the host  208  or the designer  210  (or both). 
         [0032]    Once the design is finished, each party can confirm the plan ( 224 ). This will be used for reporting that each party can utilize that&#39;s specific to their defined role. The floorplan is then updated ( 226 ) and sent to the project repository database (DB). The completed and approved project can then be accessed via Floorplan Management ( 228 ). 
         [0033]      FIG. 3  is a diagram that shows the overall algorithmic process that takes place during a collaboration process in accordance with embodiments of the present disclosure. The user can enter a Multiple Users Web Collaboration Session ( 302 ) with their respective roles. The interface can provide the attendees of the collaboration with a Virtual Meeting Room  304 , which is created by the software and the Workspace is generated. The Design Process  306  of the floorplan takes place. Approval for the design ( 308 ) is obtained and reports are then generated and sent to their respective recipients. All information from the session is then processed and saved on the Web Server ( 310 ). 
         [0034]      FIG. 4  is a diagram that shows the collaboration process from a detailed algorithmic perspective. A User accesses the Portal Project Page  402 , which lists all of the projects, and selects the appropriate project. The User selects a new or existing task and then has the choice to either work on it with multiple people in a Web Collaboration Workspace or individually  404 . The User can decide to work on the task alone  406 . In embodiments, the user decides to work with multiple people in a Web Collaboration Workspace and has other users join  408 . All of the Users join the Virtual Meeting Room  410  (Web Based Collaboration Workspace). The Design process takes place among all of the Users  412 . 
         [0035]    The Autoplace function  600  is then used to best-place Access Points (APs) and Air Monitors (AMs) according to the design parameters  424  and requirements of the user. The user has a choice to use the Autoplace function  600 , but an optimal design can be difficult to achieve manually. The autoplace function  600  is described further in  FIG. 6 . 
         [0036]    Approval for the design is obtained  414  and reports are then generated  416  and sent to the Web Server  420  for respective recipients with information pertinent to them. The report requests are sent to the Web Server  420  for processing. 
         [0037]    In embodiments, an updated project can be sent to the Web Server  420 . The Web Server  420  accepts the update and saves it to the Project repository. 
         [0038]    One function of the Web Server  420  is to provide Reports  428  to Users. One function of the Web Server  420  is to provide notifications  426  to Users (at the discretion of the User) pertaining to changes a project, location, building, or floorplan via SMTP, POP, IMAP, or other communication protocols. One function of the Web Server  420  is to collect parameters  424  from the User that the Web Server  420  will use for various functions. One function of the Web Server  420  to assign user roles  422  based on the Host&#39;s request for assignment. This will be done via email addresses or other User Accounts already registered in the system. 
         [0039]    The User given the Host role has the responsibility of creating and running the entire session, and inviting other users to participate in the Web Collaboration Workspace session, and will be able to control all aspects of the design process. 
         [0040]    The User given the Designer role has the responsibility of drawing the perimeter of the building, the area where the emitters will transmit, walls and their types, attenuation zones, Occupant zones, and ceiling types. 
         [0041]    The User given the Client role has the option of providing the floorplan, and will serve as the ultimate authority for the approval of the overall design. 
         [0042]    The User given the Utility role has the responsibility of providing insight regarding the location of the MDF/IDF locations, points of ingress/egress, and cable run length estimates. 
         [0043]      FIG. 5  is a diagram illustrating a workflow for the signal coverage algorithm  500  in accordance with embodiments of the present disclosure. The Signal Coverage Algorithm  500  (“SCA”) will take the requirements and the parameters from the user and make an initial coverage map using the specified emitter. At the outset, the autogenerated initial AP placement can be executed to virtually place APs in a design ( 502 ). The SCA will then perform an Obstacles Processing check ( 504 . The entire floorplan is digitally sequenced into “Space Points” (SPs)  510 , which are points on the floorplan that will contain projected attenuation values pertaining to the transmission medium of the emitter. Signal Loss  512  is the client&#39;s requirement for maximum acceptable signal loss across the floorplan. 
         [0044]    The Point by Point Processing (“PPP”)  506  check processes data from Obstacles Processing and applies additional parameters of the emitters at each Space Point. The PPP  506  check calculates signal strength  514  at each SP based on the signal strength of the chosen emitter. The PPP check  506  calculates the signal radius  516  at a given power level of the emitter. The PPP check  506  validates the signal threshold value  518  of the emitter from the signal coverage requirement from the client. 
         [0045]    The Signal Coverage Map  508  is created and then sent to the Workspace as an overlay for review. 
         [0046]      FIG. 6  is a diagram that shows the Autoplace Strategy  600  from a detailed algorithmic perspective in accordance with embodiments of the present disclosure. At the outset, the Users join the Virtual Meeting Room (Web Based Collaboration Workspace) ( 602 ). The Design process  604  takes place between all of the Users. The design process is similar to that described in  FIGS. 2-5  above. 
         [0047]    The parameters  611  of the design are defined and input by the User with the Design role for the project currently in work ( 610 ). For example, walls are drawn by the User and defined by the User, and include the type and attenuation value. Ceiling type and height are defined by the User. The perimeter and dimensions of the floorplan are defined by the User. Receiver Population is a parameter that is defined by the User that exists on the floor (“Occupant zones”). Examples of these zones could be conference rooms, training rooms, break rooms, meeting rooms, and presentation rooms, as well as cubicle areas. APs and AMs are parameters that are input by the User and can be any type of WiFi emitter from any vendor. Examples are: Access Points (APs) and Air Monitors (AMs), but could be any type of chosen emitter. Decibel-milliwatts (dBm) requirement is a parameter that is defined by the User that specifies (per the Client&#39;s request) the minimum required signal strength from placed emitters over the entire floorplan. For example, it could be the signal strength in dBm that the client has specified as a minimum signal strength coverage threshold (also known as a “heat map”). 
         [0048]    The Signal Coverage Map is then sent to the Workspace as an overlay for review ( 612 ). The signal coverage map can be defined as described in  FIG. 5 . 
         [0049]    Turning briefly to  FIG. 7 ,  FIG. 7  is a process flow diagram  614  of a Genetic Algorithm in accordance with embodiments of the present disclosure. A Genetic Algorithm (GA) (a method for solving both constrained and unconstrained optimization problems based on a natural selection process that mimics biological evolution, that repeatedly modifies a population of individual solutions) is then used to continuously evolve optimal placement of emitters. At the outset of the GA process, the emitters are initially placed according to several rules ( 702 ). Among the rules for placing the emitters are a) the need for RSSI triangulation, which requires emitters to be placed starting at the exterior walls; b) the approximate signal radius of an emitter, usually set by the user; c) the approximate number of devices expected in an area, for each user-defined occupant zone; and d) major obstacles defined by the user, such as elevator shafts, stairwells, etc. The set of emitters can be specified by the user, or the algorithm can estimate the number of emitters necessary based on the surface area to be covered by signal. The emitter placement (and number) can be tested and analyzed ( 704 ). From this initial configuration and analysis, it can be determined whether the initial emitter placement and/or number satisfies a plan quality threshold ( 706 ). The plan quality threshold can take into consideration one or more plan quality factors. For example, a plan quality factor can include, but is not limited to, signal coverage area, signal quality per emitter, a number of emitters, over-all costs, etc. If the plan quality threshold is satisfied, then the GA process  614  can end. The analysis of the emitter placement and subsequent plan quality assessment can include: a) calculating the signal coverage; b) analyzing the low coverage areas to produce a convergence matrix; and c) if there are no low coverage areas, end the process ( 708 ). 
         [0050]    If the plan quality threshold is not satisfied (for one or more of the expected plan quality factors), the GA process  614  can iteratively repeat a series of steps until the plan quality threshold is satisfied, or the configured set amount of time expires. For example, the series of steps can include creating two or more variants of the existing placement, in parallel. In a first variant, the number of emitters can be reduced (e.g., iteratively reduced or reduced by some number of emitters depending on the plan quality assessment results) ( 710 ); in a second variant, the number of emitters can be increased (e.g., iteratively increased or increased by some number of emitters depending on the plan quality assessment results) ( 712 ); and in a third variant, the emitter placement can be modified to better cover the areas of low signal ( 714 ). The emitter placement, as well as the re-numbering of the emitters, can each use the auto-place function  600  described in  FIG. 6 . The GA process  614  can then repeat the analysis of the low coverage areas ( 704 ) and the determination of whether the emitter placement and number satisfies the plan quality threshold(s) ( 706 ). The GA process can be implemented through any number of techniques, i.e. using artificial intelligence, or parallelized iterative optimization, etc. 
         [0051]    Once the GA process reaches a best-place threshold signal coverage for one or more placement variants, the successful variants are sent to Autoplace Strategy ( 616 ). Autoplace Strategy selects the best plan based on the user selected strategy, which can be for example “cheapest deployment,” “best coverage for maximum occupancy,” etc. 
         [0052]    Approval for the design is obtained and reports are generated and sent to the Web Server for respective recipients with information pertinent to them ( 606 ). The Web Server accepts the update and saves it to the Project repository ( 608 ). 
         [0053]      FIG. 8  is a schematic diagram of a computing system  800  for a network visualization collaboration tool in accordance with embodiments of the present disclosure. Computing system  800  can include a computing device  802 . Computing device  802  can be a computer, laptop, tablet device, smartphone, or other computing device that can connect to network  808 . The computing device  802  can include a hardware processor and a memory for storing instructions. The computing device  802  can store applications that provide an interface to the collaboration tool  806 . The computing device  802  can execute program code to create virtual structures, run simulations and other algorithms to simulate WiFi design, as disclosed above, and access remote applications and storage devices from across a network connection. The computing device  802  can also store profile information, custom work spaces, structure drawings tools, data analysis results, and computer code that include algorithms. Though shown as a single computing device, it is understood that the system  800  can include more than one computing device that can connect to the network  808 . 
         [0054]    The computing system  800  also includes a server  804 . Server  804  can includes a hardware processor and a memory. The server  804  can provide remote access to collaboration tool  806  by one or more computing devices  802  across a network  808 . The server  804  can also store various tools that are accessible by the one or more computing devices  802  to perform a single user or collaborative WiFi design simulations. The server  804  can provide a platform for supporting the collaborative work space, for providing a remote application to each user, and to store virtual structures and WiFi simulation analytics. 
         [0055]    As will be appreciated by one skilled in the art, aspects of the present disclosure may be illustrated and described herein in any of a number of patentable classes or context including any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof. Accordingly, aspects of the present disclosure may be implemented entirely in hardware, entirely software (including firmware, resident software, micro-code, etc.) or combining software and hardware implementations that may all generally be referred to herein as a “circuit,” “ module,” “component,” or “system.” Furthermore, aspects of the present disclosure may take the form of a computer program product embodied in one or more computer readable media having computer readable program code embodied thereon. 
         [0056]    Any combination of one or more computer readable media may be utilized. The computer readable media may be a computer readable signal medium or a computer readable storage medium. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an appropriate optical fiber with a repeater, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device. 
         [0057]    A computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device. Program code embodied on a computer readable signal medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing. 
         [0058]    Computer program code for carrying out operations for aspects of the present disclosure may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Scala, Smalltalk, Eiffel, JADE, Emerald, C++, Cll, VB.NET, Python or the like, conventional procedural programming languages, such as the “C” programming language, Visual Basic, Fortran 2003, Perl, COBOL 2002, PHP, ABAP, dynamic programming languages such as Python, Ruby and Groovy, or other programming languages. The program code may execute entirely on the user&#39;s computer, partly on the user&#39;s computer, as a stand-alone software package, partly on the user&#39;s computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user&#39;s computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider) or in a cloud computing environment or offered as a service such as a Software as a Service (SaaS). 
         [0059]    Aspects of the present disclosure are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatuses (systems) and computer program products according to embodiments of the disclosure. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable instruction execution apparatus, create a mechanism for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. 
         [0060]    These computer program instructions may also be stored in a computer readable medium that when executed can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions when stored in the computer readable medium produce an article of manufacture including instructions which when executed, cause a computer to implement the function/act specified in the flowchart and/or block diagram block or blocks. The computer program instructions may also be loaded onto a computer, other programmable instruction execution apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatuses or other devices to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.