The present invention relates generally to collaboration systems and in particular, to a method for organizing a collaborative event and to a collaboration system employing the same.
Conferencing and other event management systems, such as Microsoft® Live Meeting, Citrix® GoToMeeting®, SMART Bridgit™, and the like are well known. These systems allow participants at different geographical locations to participate in a collaborative session using computing devices, by sharing content, such as, screen images and files, or a common page on an interactive whiteboard (IWB). For example, the SMART Bridgit™ version 4.2 conferencing system offered by SMART Technologies ULC of Calgary, Alberta, Canada, assignee of the subject application comprises one or more servers and clients, and provides plug-ins for event scheduling programs, such as, Microsoft Exchange® or Microsoft Outlook®. An event may be scheduled in Microsoft Outlook® via a SMART Bridgit™ plug-in on a participant's computing device, by assigning a name, a start time and an end time to the event. Using a SMART Bridgit™ client program, a user may create an event session on the SMART Bridgit™ server to start an ad-hoc event. Other participants may join the event session using the SMART Bridgit™ client program running on their computing devices by entering the event name and any required password. In addition to sharing content, participants can annotate shared screen images by injecting digital ink thereon using a computer mouse, a touch screen, or an interactive whiteboard.
Unfortunately, these known systems have several drawbacks. For example, in order to join an event, a participant's computing device is required to have an appropriate client program installed thereon, otherwise the user is required to download and install the client program before being able to join the event. The user must then run the client program to connect to a host device or network in order to join the event or collaboration session. Accordingly, the participant is required to have knowledge of the particular uniform resource locator (URL) for the client program to be downloaded, including any user access credentials. In addition, the participant is required to have knowledge of the URL of the server hosting the event including user access credentials. For a participant connecting remotely or wirelessly, knowledge of the network settings for the participant's computing device, such as the static IP address, DHCP server address, network service set identifier (SSID) and network key, is typically required. Accordingly, these systems demand the participant to have a certain level of understanding of computer networks, including knowledge of specific network details that may not be readily available to the participant. Inevitably, the participant is often forced to seek technical support, and oftentimes the participant is precluded from participating in the event due to the inability to connect to the network or join the session.
Improvements are therefore generally desired. It is therefore an object to provide a novel method for organizing a collaborative event and a novel collaboration system employing the same.
Accordingly, in one aspect there is provided a method of establishing a collaborative event, said method comprising creating an event session having an event identifier; and setting up a wireless network to which one or more participant computing devices can connect having a network identifier associated with said event identifier.
In one embodiment, the method further comprises, prior to creating the event session, collecting event information relating to the collaborative event. The event information may comprise the event identifier and an event password. The method may further comprises communicatively coupling at least one participant computing device to the wireless network. Upon coupling of the at least one participant computing device to the wireless network, the participant computing device may be automatically caused to join the event session. The method may further comprise providing the event identifier and the event password to the at least one participant computing device prior to the coupling of the at least one participant computing device to the wireless network. The providing may comprise sending an electronic invitation message comprising the event identifier and the event password to the at least one participant computing device and/or displaying the event identifier and the event password on a display at an event site of the collaborative event. In one form, the display may an interactive whiteboard.
In one form, the network identifier is derived from the event identifier by string manipulation. The string manipulation may comprise concatenating at least a portion of the event identifier with additional characters.
In one embodiment, the method further comprises setting a network key of the wireless network as the event password.
According to another aspect, there is provided a non-transitory computer-readable medium having embodied thereon a computer program for a collaborative event, said program comprising instructions which, when executed by processing structure, carry out the steps of creating an event session having an event identifier; and setting up a wireless network to which one or more participant computing devices can connect having a network identifier associated with said event identifier.
According to yet another aspect, there is provided an interactive whiteboard configured to communicate with processing structure conducting a collaborative event, said interactive whiteboard further being configured, during said collaborative event, to display an event identifier of an event session of said collaborative event; an event password of said event session; and content shared between said processing structure and at least one participant computing device communicatively coupled to said event session.
According to yet another aspect, there is provided a computerized method comprising receiving, from a user computing device, information concerning the location of content to be shared; intercepting a network request from another user computing device; and redirecting the intercepted network request to the location of said content.
According to yet another aspect, there is provided a computerized method comprising determining member participant computing devices of each group of participant computing devices; intercepting a network request from one of said participant computing devices; determining the group to which the participant computing device that sent the intercepted network request belongs; and redirecting said the intercepted network request to a location assigned to said group.
According to yet another aspect, there is provided a method comprising initiating, by a host computing device, a wireless network; and broadcasting, by the host computing device, a signal comprising the identity of said wireless network and a password for accessing said wireless network.
According to yet another aspect, there is provided an apparatus comprising processing structure; wireless networking component functionally coupled to said processing structure, wherein said processing structure executes code that causes said apparatus at least to determine whether a wireless network having a predefined feature exists; and start a wireless network if the wireless network having a predefined feature is not detected.
According to yet another aspect, there is provided a method comprising initiating, by a host computing device, a first wireless network; detecting a signal broadcasted by another computing device, said signal comprising a timestamp indicating the starting time of a second wireless network; comparing said timestamp with the start time of said first wireless network; and terminating said first wireless network if said timestamp indicates a time earlier than the start time of said first wireless network.
According to yet another aspect, there is provided a non-transitory computer readable medium embodying executable code, that when executed by a computing device causes the computing device to perform the steps of receiving, from a user computing device, information concerning the location of content to be shared; intercepting a network request from another user computing device; and redirecting the intercepted network request to the location of said content.
According to yet another aspect, there is provided a non-transitory computer readable medium embodying executable code, that when executed by a computing device causes the computing device to perform the steps of determining member participant computing devices of each group of participant computing devices; intercepting a network request from one of said participant computing devices; determining the group to which the participant computing device that sent the intercepted network request belongs; and redirecting said the intercepted network request to a location assigned to said group.
Embodiments will now be described more fully with reference to the accompanying drawings in which:
A collaboration system and a method for joining a collaboration session in the collaboration system are described herein. The collaboration system comprises a plurality of computing devices in communication with each other over at least one network when a collaboration session has been established. Each of the computing devices is configured to share content with the other computing devices, with the shared content being displayed on other computing devices. One or more of the computing devices is configured to accept input annotations made on displayed shared content, and to share the input annotations with other computing devices over the at least one network.
The computing devices may take a variety of forms such as for example personal computers, laptop computers, tablet computers, computer servers, computerized kiosks, personal digital assistants (PDAs), cellular phones, smartphones, and the like. Regardless of the specific form, each computing device typically comprises, for example, a processing unit, system memory (volatile and/or non-volatile memory), other non-removable memory and/or optional removable memory (e.g. a hard disk drive, RAM, ROM, EEPROM, CD-ROM, DVD, flash memory, etc.), input/output devices (e.g. a display screen, a mouse, a keyboard, one or more buttons, a touchpad, a touch screen, an interactive board, etc.), and a system bus coupling the various components to the processing unit. The display screen can present various types of information to the user such as graphical and textual displays, and may also function as an input mechanism that accepts touch input made thereon using a pointer such as for example a pen tool, an eraser tool or a finger. One or more of the computing devices may also comprise networking capabilities using Ethernet, WiFi, and/or other network format, to enable connection to shared or remote drives, one or more networked computers, or other networked devices. One or more computing devices may be physically located in a collaboration room or other common location while other computing devices may be located at different geographical locations.
Turning now to
In this embodiment, the wireless network 20 is assigned a wireless network service set identifier (SSID), and communications via the wireless network device 18 are encrypted using a security protocol, such as Wi-Fi Protected Access II (WPA2) protocol with a customizable network key. In order to participate in an event, a participant computing device 22 is required to identify the SSID of the wireless network 20 and send a corresponding network key thereto to communicatively couple the participant computing device 22 to the wireless network 20.
Event computing device 12 is also communicatively coupled to a network 24 over either a wired connection, such as Ethernet, or a wireless connection, such as Wi-Fi™, Bluetooth™ etc. The network 24 may be a local area network (LAN) within an organization, a cellular network, the Internet, or a combination of different networks. A plurality of server computing devices, namely an event server 26 and a scheduling server 28, and one or more participant computing devices 30 also are in communication with the network 24. The server computing devices 26 and 28 and participant computing devices 30 may communicate with the networks 18 and 24 over a wireless connection, a wired connection or a combined wireless/wired connection.
Event server 26 is configured to manage event sessions by receiving and synthesizing audio, video and data streams, respectively, from event participants, and broadcasts the synthesized streams to the event participants. In this embodiment, the event server 26 is a SMART Bridgit™ server offered by SMART Technologies ULC. The scheduling server 28 is configured to manage the schedule of events or sessions. In this embodiment, the scheduling server 28 is a Microsoft Exchange Server® provided by Microsoft Corporation of Redmond, Wash., U.S.A.
The event computing device 12 and the participant computing devices 22 and 30 each have installed thereon an operating system (OS) such as, for example, Microsoft Windows®, Linux®, Mac OS X® etc. The event computing device 12 and the participant computing devices 22 and 30 may all be used to schedule an event. In this embodiment, the event computing device 12 may also be used to start or join an event session, and to control the wireless network device 18 in order to enable participant computing devices 22 to join the event session via the wireless network 20. The participant computing devices 30 may also be used to join the event session via the network 24.
The event computing device 12 and the participant computing devices 22 and 30 are configured to share content during an event, which may for example be a meeting, a conference or a collaboration session. The content may be a common screen image, for example. The shared content can be modified by event participants through annotation. For example, the shared content may be displayed on the IWB 14 connected to the event computing device 12, and event participants at the event site can modify the shared content through touch input applied to the IWB 14. The touch input may take the form of, for example, a mouse event or digital ink. Participants who join the event can also modify the shared content using input devices associated with their respective participant computing devices 22 and 30. These input devices may be, for example, computer mice, keyboards, touch screens, tablets, digital pens etc.
The scheduling client 102 is in communication with the scheduling server 28 via network 24, and is configured to set up and update the event schedule of the event computing device 12, and to notify the event management module 104 to start an event session at a scheduled starting time. The event management module 104 is in communication with the event server 26 via the network, and is configured to create an event session thereon, and to exchange shared data therewith, such as for example shared screen images or annotations. The event management module 104 is also in communication with the network module 106, and is configured to set up a wireless network 20 using an event name and an event password.
The network module 106 is configured to control the wireless network device 18 for setting up the wireless network 20, as requested by the event management module 104, and to manage wireless connections of the participant computing devices 22. The DHCP server 108 is configured to assign an IP address to each participant computing device 22 when it connects to the wireless network 20. The web server 110 comprises a web portal interface with a download link or uniform resource locator (URL) of the event client 112 that is stored in the event computing device 12. The captive portal 114 is configured to monitor network-related requests sent from participant computing devices 22, and to redirect at least some of the network-related requests to the web server 110.
If at step 206 the request parameters are determined to be invalid, then the scheduling server 28 proceeds to step 210 and sends an alert notification to the scheduling client 102 or 142 of the event computing device 12 or participant computing device 30, alerting the user of the event computing device 12 or participant computing device 30 to the error.
The scheduling server 28 coordinates with the event server 26 to start an event session at the scheduled date and time of the event.
If at step 244 it is determined that the event site is available, the scheduling server 28 sends a “start-event” message, comprising the event name and the event password, to the event server 26 (step 248). The event server 26 in turn creates an event session using the event name and password (step 250). The scheduling server 28 also sends a “reset-site” message to devices at the event site to reset these devices (step 252). These devices may be, for example, the event computing device 12, event room environment controls, audio and/or video devices, and the like. For example, upon receiving the “reset-site” message, the event computing device 12 may close files that are open, terminate any connections to an existing event session on the event server 26, and terminate running programs or threads associated with the existing event session. Once the event site has been reset, the scheduling server 28 sends a “prepare-event” message comprising the event name and the event password to the event computing device 12, and the event computing device 12 then prepares to start the event (step 254). Following step 254, the event start process 240 terminates (step 256).
The event management module 104 of the event computing device 12 then generates a network key based on the event password received from the event server 26, and instructs the wireless network device 18, via the network module 106, to use the generated network key as the network key of the wireless network 20 (step 288). In this embodiment, the network key generated by the event management module 104 is the event password. The event management module 104 then resets the captive portal 114 (step 290), so that the captive portal 114 intercepts all HTTP requests that are received by the network module 106 from the wireless network device 18, and also displays the event name and the event password on the IWB 14 (step 292). The event management module 104 of the event computing device 12 also displays instructions for joining the event session on the IWB 14, together with a “Start Event” button and forces the IWB 14 to ignore all input except for touch input applied to the displayed “Start Event” button (step 294).
The participant computing device 22 then awaits a command from the user (step 348). If the event client 124 is installed on the participant computing device 22, and the user initiates a command to start the event client (step 348), such as for example by double-clicking an icon of the event client on the participant computing device desktop, then the event client 124 is started (step 356). If at step 348 the user initiates a command to start or launch a web browser and the event client 124 is not installed on the participant computing device 22, then the web browser is started and an HTTP request bearing a web address is sent by the participant computing device 22 to the event computing device 12 via the wireless network 20 (step 350). The web address is a default home page, if one has been set, or a web address entered by the user. The captive portal 114 of the event computing device 12 intercepts the HTTP request and redirects it to the web server 110 (step 352). The web server 110 in turn responds to the HTTP request by sending a web page comprising a link for downloading the event client 112 to the participant computing device 22. After the user of the participant computing device 22 selects the link, the event client 112 is downloaded onto the participant computing device 22 (step 354), and is then started (step 356). As will be appreciated, the event client 112 can be downloaded as an installation package, a compressed file, an executable binary file, etc., and the downloaded event client may need to be installed before it can be executed, or it may be executed without installation.
Once the event client 112 or 124 has been started at step 356, the event client on the participant response device 22 determines the address of the event computing device 12, and obtains event information therefrom (step 358). In this embodiment, the event computing device 12 is the default gateway of the wireless network 20. Therefore, the event client 112 or 124 determines the address of the event computing device 12 by requesting the address of the default gateway. The event client then obtains from the event computing device 12 the address of the event server 26, and the event name and the event password of the event session to which the event computing device 12 is currently joined. The event client 112 or 124 then uses the obtained information to join the event session (step 360), and the process ends (step 362). Approaches for connecting participant computing device 30 to an event session via the network 24 are known in the art, and will not be described herein.
Following step 384, the scheduling server 28 checks to determine if any scheduled event is about to start (step 386). If it is determined that a scheduled event is about to start, then the scheduling server 28 starts the scheduled event session according to the event start process 240 described above (step 388); otherwise, the event computing device 12 resets the SSID and network key of the wireless network 20 (step 390). In this embodiment, the event computing device 12 runs a SMART Meeting Pro™ application, which automatically creates a new event in the event server 26 using a defined event name, such as for example the name of the event site, and a randomly generated password, when an event is terminated and no scheduled event is about to start. Therefore, at step 390, after the new event is created, the event computing device 12 sets the SSID and network key of the wireless network 20 using the defined event name and the randomly generated event password, respectively. The end event process then ends (step 392).
As described above, when the event is about to start, the scheduling server 28 checks the availability of the event site and, if the event site is available, notifies the event server 26 to create an event session with the event name “Product Demo” and a randomly generated event password. The scheduling server 28 then notifies the event computing device 12 at the event site to join the event session. In this example, the event computing device 12 runs a SMART Meeting Pro™ Premium application that presents a graphical user interface comprising a window 500, as shown in
A participant using a participant computing device 22 may then join the event session via the wireless network 20. To do so, the participant may use the wireless network connection tool included in the operating system of the participant computing device 22, which presents a graphical user interface comprising a window 540, as shown in
After joining the wireless network 20, the participant may start or launch a web browser, such as for example, Microsoft Internet Explorer®, Firefox®, Safari®, etc., which presents a graphical user interface comprising a window 600 as shown in
The downloaded event client 112 may be stored by the participant computing device 22 so that when the participant wishes to join an event session in the future, once the participant computing device 22 has connected to the wireless network 20 associated with the event, the event client 112 can be launched to join the participant computing device 22 to the event session, as described above.
The collaboration system may also allow users to start and join ad-hoc event sessions. For example, in one such embodiment, a SMART Bridgit™ client program is installed on the event computing device 12 and is used as the event management module 104. Upon starting the SMART Bridgit™ client program, a graphical user interface comprising a window 640 is presented, as shown in
In this embodiment, after the event ends, the corresponding event session in the event server 26 is terminated. The SMART Bridgit™ client program then instructs the wireless network device 18 to terminate the wireless network 20, such as for example, by instructing the wireless network device 18 to stop communication with participant computing devices 22 connected thereto. The SMART Bridgit™ client program is then terminated in the event computing device 12.
As mentioned previously, the event client 124 may be pre-installed on one or more of the participant computing devices 22. In this case, each pre-installed event client 124 stores a user customizable default event server address. In this embodiment, when used to join an event, the pre-installed event client 124 first searches for the event in its default event server 26, and if the event is not found, the event client then searches for a wireless network 20 associated with the event.
If at step 706 the default event server 26 is not accessible, then the event client 124 generates a wireless network name and password using the same rules as those followed by the event computing device 12 during steps 286 and 288 of process 240 described above (step 712). In this embodiment, the wireless network ID is the event name concatenated with a Site_ID, namely the event site name, using the delimiter character (e.g. “@”). If a Site_ID is obtained at step 704, then the event client 124 generates a wireless network name by concatenating the event name to the delimiter character (e.g., “@”) and the Site_ID. If, however, no Site_ID is obtained at step 704, then the event client 124 uses the event name as the wireless network name.
At step 714, the event client 124 instructs the network client 126 running on the participant computing device 22 to obtain a list of available wireless networks. The event client 124 then determines if any of the wireless networks in the list match the generated wireless network name (step 716), namely if the name of any of the wireless networks in the list is the same as, or begins with, the generated wireless network name. If no wireless network in the list matches the generated wireless network name, then the event client 124 displays an error message (step 718), and the event join process ends (step 728). If at step 716, only one wireless network in the list matches the generated wireless network name, then the event client 124 determines that the matched wireless network is the wireless network associated with the event, and connects to the matched wireless network using the network key generated at step 712 (step 722).
If at step 716 more than one wireless network in the list matches the generated wireless network name, then the event client 124 displays all matching wireless networks to the user and waits to receive a selection by the user of a wireless network to join (step 720). The event client 124 then connects to the wireless network selected by the user using the password generated at step 712 (step 722). After connecting to the wireless network, the event client 124 obtains the address of the event server 26, and the event name and password (step 724), and joins the event session (step 726), after which the event join process terminates (step 728).
Window 800 further comprises a “Join Meeting” button 808. Upon selection of the button 808 by a user, the event client 124 determines whether the default event server address shown in field 810 is accessible. In the example shown, the participant computing device 22 is not yet connected to a wireless network, and thus the default event server address is not accessible. Accordingly, the event client 124 generates a wireless network name based on the information entered in fields 802 and 806. In the example shown, an event site name has not been entered in the event site field 806. The event client 124 therefore generates a wireless network name of “Product Demo”. The event client 124 then instructs the network client 126 running on the participant computing device 22 to obtain a list of available wireless networks starting with the generated wireless network name. Once the list is obtained, the event client 124 displays the obtained list of available wireless networks in a dialogue box 840, as shown
In another related embodiment, the event information may be sent to desired event participants in an invitation email, as described above. In such an embodiment, the event client obtains the event name, event password and event site name from the invitation email.
Still other collaboration system configurations are possible. For example,
Collaboration system 900 also comprises a network management server 932 and a plurality wireless devices 918, such as for example wireless access points, connected to the network 24. The network management server 932 is configured to control the wireless devices 918 to manage a wireless network 920 covering the organization, including event sites having an event computing device 12 located therein. Each of the wireless network devices 918 may provide a wireless network service to one or more event sites, and more than one wireless device 918 may provide a wireless network service to the same event site.
The network management server 932 is configured to control the wireless devices 918 to create a virtual wireless network for each event. The virtual wireless network is at least a subset of the wireless network 920, but has a respective wireless network name, a respective network key, and respective access rights settings. In this embodiment, all virtual wireless networks have the same working range as, and thereby provide wireless network access to the same area as, the wireless network 920. However, in some embodiments, the network management server 932 may control the wireless devices 918 so that each virtual wireless network has its own wireless network coverage. As is further described below, when an event starts, the network management server 932 controls the wireless devices 918 to create a virtual wireless network for each event having a wireless network name and network key generated from the event name and the event password. An event participant may then select the virtual wireless network, and join the event session via the wireless network 920 using the participant computing device 22.
The collaboration system 900 uses an event scheduling request process and an event scheduling process that are similar to the event scheduling request and the event scheduling processes 180 and 200 described above with reference to
The collaboration system 900 uses a process for joining a participant computing device 22 to an event session that is generally similar to process 340 described above with reference to
The collaboration system 900 also uses a process for ending an event that is generally similar to the event end process 340 described above with reference to
In embodiments described above, once a participant computing device 22 has connected to the wireless network 20 or a virtual network of the wireless network 920, the captive portal 114 or 992 redirects all HTTP requests to the web server 110 or 988, respectively. After the participant computing device 22 has joined the event, the captive portal 114 or 992 stops redirecting HTTP requests, so that participant computing device 22 may access the Internet or other network resources. In some embodiments, once a participant computing device 22 has connected to the wireless network and has initiated an HTTP request, the captive portal does not redirect the HTTP request to the web server. Rather, the HTTP request is instead sent to the Internet to obtain the requested web pages. The requested web pages from the Internet may be displayed in a page frame which includes a download link to the event client 112, or 990.
For example,
Those skilled in the art will appreciate that, in some embodiments, the captive portal 114 or 992 may redirect all HTTP requests it receives from participant computing devices 22 to the web server 110 or 988.
In other alternative embodiments, after the participant computing device connects to a wireless network and enters a web address in the web browser, the captive portal 114 or 992 instructs the web server 110 to return the event client to the web browser, so as to trigger the web browser to display a dialogue box prompting the participant to download the event client. The participant then may choose to download and run the event client.
Those skilled in the art will appreciate that in some embodiments the collaboration system may not include a captive portal, in which case participants are required to enter the address of the web server in the web browser in order to download the event client.
Those skilled in the art will also appreciate that in some alternative embodiments, the event computing device 12 of collaboration system 10 or the network management server 932 of collaboration system 900 assigns IP addresses to pre-registered computing devices, so that these computing devices always have the same IP addresses when they join an event. In some related embodiments, the event computing device 12 may alternatively not comprise a DHCP module, and thus any computing device connecting to the wireless network 20 or 920 requires a predetermined IP address. In another embodiment, the event computing device 12 or network management server 932 comprises a whitelist of computing devices, such as for example a list of media access control (MAC) addresses of computing devices, and thus only the computing devices pre-registered in the whitelist can connect to the wireless network 20 or 920. Similarly, in some alternative embodiments of collaboration system 900, some wireless devices 918 may be reserved such that only some pre-registered computing devices can join the wireless network 920 or a virtual network thereof via the reserved wireless devices 918. Therefore, an event session, together with the virtual wireless network associated therewith, communicated by these reserved wireless devices 918 can only be accessed by pre-registered computing devices.
In other embodiments, the collaboration system may further comprise a DNS server, which translates a domain name to a corresponding IP address.
Those skilled in the art will appreciate that various methods may be used to generate the name and password for the wireless network 20, or for a virtual network based on the wireless network 920. For example, in one alternative embodiment, the wireless network name and password, respectively, may be identical to the event name and password. In another embodiment, the event server 26 of collaboration system 10 maintains a list of generated wireless network names for ongoing events. When an event computing device 12 generates a wireless network name, it generates the wireless network name in a manner such that the generated wireless network name is unique among the names of all ongoing events. For example, the event computing device 12 may first query the event server 26 to determine whether the event name has been used to generate a wireless network name for an ongoing event. If so, the event computing device 12 generates a wireless network name from the event name based on a predefined rule, as described above; otherwise, the event computing device 12 generates a wireless network name that is the same as the event name. In yet another embodiment, the event server 26 of the collaboration system 900 maintains a list of generated wireless network names for ongoing events, and the network management server 932 queries the event server 26 and generates a virtual wireless network name that is either the same as the event name or derived from the event name based on a predefined rule to ensure that the generated event name is unique among the names of all ongoing events. In still another embodiment, each wireless network name may be a unique, randomly generated name.
Although in the embodiment shown in
Although in above embodiments the collaboration system 900 comprises multiple server computing devices, namely servers 26, 28 and 932, in some alternative embodiments, the servers 26, 28 and 932 may be implemented in a single computing device. In a related embodiment, the servers 26, 28 and 932 may be implemented on the event computing device 12.
Although the collaboration system 10 shown in
In some alternative embodiments, at least some event computing devices 12 are not connected to IWBs. Rather, they may be connected to other types of displays such as for example cathode ray tube (CRT) monitors, liquid crystal display (LCD) screens or projectors.
Although in embodiments described above, network wireless devices 18 and 918 are shown as standalone devices, in some alternative embodiments, the network wireless devices 18 and 918 may be integrated into relevant computing devices or networking devices. For example, in an alternative embodiment, the wireless network device 18 may be integrated into the event computing device 12.
Although in above embodiments, network wireless devices 18 and 918 are described as Wi-Fi™ devices, in some alternative embodiments, other wireless devices are used. For example, the wireless devices 18 and 918 may be Bluetooth™ devices each having a device ID that may be modified by the collaboration system 10 or 900 to match an event name.
In yet another embodiment, an event computing device such as event computing device 12 in a first event or session may join a second event or session so that the first event is merged with the second event. In this case, the wireless network name associated with the first event is modified to match the name of the second event, e.g., using the wireless network name of the second event, or a different wireless network name is generated from the name of the second event. All participants in the first event are also automatically moved into the second event. In a related embodiment, when a first event is merged with a second event, the event computing device of the first event checks whether a wireless network having a name corresponding with the second event has already been set up. If not, the event computing device of the first event creates a virtual network having a name corresponding with the second event. Therefore, computing devices connecting to either the wireless network of the first event or that of the second event will join to the same event. In a further related embodiment, an event may correspond to multiple (virtual) wireless networks having different names, each of which is generated according to predefined or user-defined rules.
Although in above embodiments, the wireless network 20 or 920 is encrypted, in some alternative embodiments, the wireless network 20 or 920 is not encrypted. Accordingly, in this case an event participant is able to join the wireless network 20 or 920 without providing a network key. However, the captive portal 114 or 992 blocks all network traffic from the participant computing device 22 until the participant launches a web browser and enters a web address, which is then redirected by the captive portal to a login page. After the participant enters the event password, the captive portal 114 or 992 redirects the web browser to a download page for downloading the event client 112 or 990, and the captive portal 114 or 992 terminates the blocking of the network traffic from the participant computing device 22.
In other embodiments, the event computing device 12 or the network management server 932 may alternatively not comprise any web server, and may instead comprise an FTP server. In one such embodiment, after a participant connects to a wireless network and enters a web address in the web browser, the captive portal 114 or 992 instructs the FTP server to return the event client 112 or 990, respectively, to the web browser, so as to trigger the web browser to display a dialogue box prompting the participant to download the event client.
A participant computing device 31, for example, a guest computer used by a guest, is connected to the event computing device 1202. The participant computing device 31 may be any general purpose computing device, such as for example a laptop computer, that is equipped with a network interface in the form of, for example, an Ethernet port. Those skilled in the art will understand that other interfaces and/or ports may also be used.
In operation, when the participant computing device 31 connects to the event computing device 1202 using an Ethernet cable 33 or other suitable connection, the event computing device 1202 creates a private network 19 between participant computing device 31 and the event computing device 1202. After the event computing device 1202 detects the participant computing device 31 connected thereto, the event computing device 1202 assigns an IP address to the participant computing device 31 using its DHCP server 108.
After assigning the IP address to the participant computing device 31, the event computing device 1202 sends a request to the participant computing device 31 requesting a connection thereto using the Remote Desktop Protocol (RDP). A dialogue box requesting a username and a password is then displayed on the IWB 14. After a user of the IWB 14 enters a correct username and password, such as for example the username and password of a user account that has access to the participant computing device 31, the event computing device 1202 takes control of the participant computing device 31; namely the screen image of the participant computing device 31 is transmitted from the participant computing device 31 to the IWB 14, and input to the event computing device 1202 is redirected to the participant computing device 31.
As will be appreciated, the Remote Desktop Protocol (RDP) provides remote display and input capabilities over a network. A local machine executing an RDP client, such as for example the event computing device 1202, sends input data to, and receives display data from a remote device, such as for example the participant computing device 31, over a network, such as for example the network 19. Various types of network protocols are supported. RDP allows for separate virtual channels to carry different types of data, such as graphical presentation data, mouse input data, and keyboard input data. An RDP server on the remote device uses its own video driver to render display output by packing the rendering information into network packets using the RDP protocol and then sending them over the network to an RDP client on the local machine, such as for example the event computing device 1202. The RDP client receives rendering data and interprets the received network packets into corresponding local graphics application programming interface (API) calls to present images on its local display, such as for example IWB 14, for viewing. Input data is processed to redirect mouse and keyboard events to the RDP server. The RDP server uses its own virtual keyboard and mouse driver to receive keyboard and mouse events sent from an RDP client.
Process 1400 starts when event computing device 1202 is powered on and executes its software (step 1402), which includes the components of the software architecture 1300. The event computing device 1202 then awaits establishment of a new connection (step 1404), such as for example by way of the Ethernet cable 33 connecting the participant computing device 31 to the event computing device 1202.
If the event computing device 1202 detects a new connection (step 1406), then it assigns a new IP address to the participant computing device 31 using its DHCP server 108 (step 1408). If at step 1406 no new connection is detected, then the process returns step 1404 to await a new connection. After the new IP address has been assigned, the event computing device 1202 then invokes the remote desktop client service 1302 using the newly assigned IP address as a parameter (step 1410), and logs in to the participant computing device 31 using the remote desktop service (step 1412). At this step, the user of the event computing device 1202 is prompted to provide a username and a password of a user account having access to the participant computing device 31. A remote desktop connection is established once the remote desktop client service 1302 logs in to the participant computing device 31 using the username and password provided by the user. The process then ends (step 1414).
At this point, if the software service 1224 of the participant computing device 31 is active and responsive to the remote desktop client service 1302, then the IWB 14 takes over the control of the participant computing device 31. The screen image of the participant computing device 31 is then displayed on the IWB 14, and the IWB 14 can then be used by the guest user for interactive presentation of content using the participant computing device 31.
As will be understood, the detection of a new connection (step 1406) may be implemented in several ways, depending on the configuration of the event computing device 1202 and the participant computing device 31. In this embodiment, the event computing device 1202 has installed thereon a Linux® operating system such as an Ubuntu® distribution, version 9.04. The remote desktop client service 1302 is the rdesktop service running on the operating system, and the DHCP server 108 is a dhcp3-server.
Software code, such as the Perl script presented below, is created and stored as a file having a file name myScript.
The Perl script presented above may be executed in event computing device 1202, on the system log output that would be updated when an IP address is newly assigned, as described below.
Those skilled in the art will understand that other forms of software code, such as for example shell scripts, batch files, executables, operating systems, such as for example Linux®, Windows®, Mac OS®, Unix®, and the like, may alternatively be used.
The DHCP server 108 in the event computing device 1202 running the Ubuntu® operating system may be set up by modifying respective files as shown in Table 1 below.
After modifying the respective files as shown in Table 1, networking and DHCP server 108 may need to be restarted, in order to cause the above modifications to take effect, by using the following commands:
In other embodiments, the collaboration system may alternatively be capable of managing events in an organization that provides both wired and wireless connectivity. For example,
The event management module 104 on the event computing device 1442 is configured to connect the event computing device 1442 to an event session, and to generate a wireless network name based on the event name. Once the wireless network name has been generated, the event management module 104 is configured to instruct wireless the network device 1444 to set the SSID of the wireless network portion of network 1446 as the generated wireless network name.
Advantageously, event computing device 1442 is configured to detect whether a wired connection has been established with participant computing device 31 via Ethernet cable 33, and if so, to assign a new IP address to participant computing device 31 using DHCP server 108. After a new IP address has been assigned, the event computing device 1442 invokes the remote desktop client service 1302 (with the newly assigned IP address as a parameter thereof), to share the desktop of the participant computing device 31 to IWB 14, and to enable the user of IWB 14 to interact with content in participant computing device 31, as described above with reference to the collaboration system 1200 shown in
In other embodiments, wireless network device 1444 may be integrated into, and form a part of, the event computing device 1442.
In other embodiments, at least some of the event computing devices 1202 shown in
Although in embodiments described above, the collaboration system comprises an IWB having a generally vertical interactive surface, in other embodiments, the collaborative system may alternatively comprise an interactive device, such as for example a touch table, that has a horizontal interactive surface. In still other embodiments, the system may alternatively comprise an interactive device having an interactive surface positioned at any orientation suitable for an event.
In other embodiments, the DHCP server may be replaced with a network management module having an alternative protocol (e.g., Bootstrap Protocol (BOOTP)). When a participant computing device connects to the network, the network management module dynamically selects a network address (e.g. an IP address) from a pool of addresses maintained by a network configuration server, and assigns the selected network address to the participant computing device.
Although in embodiments described above, the collaboration system comprises one or more participant computing devices 30 connecting to the network 24, in other embodiments, the collaboration system may alternatively not comprise any participant computing devices 30.
Although in embodiments described above, the scheduling server sends notification to the event site that it needs to be vacated for an upcoming event, where the notification is a message sent by the scheduling server to the event computing device at the event site to display a notifications message on the IWB located therein, in other embodiments, other notifications may alternatively be used. For example, in other embodiments in which the collaboration system comprises an event room controller, the scheduling server may send notification to the event room controller to cause at least one light source in the event room to flash intermittently, lighting in the event room to be adjusted to a predefined level, and/or a speaker in the event room to emit one or more sounds.
Although in embodiments described above, the event client instructs the network client running on the participant computing device to obtain a list of available wireless networks matching the generated wireless network name, in other embodiments, the event client may instruct the network client running on the participant computing device to obtain a list of available wireless networks matching only a portion of the generated wireless network name. For example, if the generated wireless network name is “Product Demo”, but no wireless network having this name is found, the event client may then generate a list of available wireless networks with names that comprise the name “Product”. In still other embodiments, other matching criteria may be used. For example, the event client may instruct the network client running on the participant computing device to obtain a list of available wireless networks with names that comprise the same event room name.
Although in embodiments described above, the event session is terminated using an event end process, in other embodiments, the event session may alternatively be terminated automatically at a scheduled end time of the event.
Although in the embodiments shown in
The collaboration system described above may be used to facilitate a variety of events. For example, in some embodiments, the collaboration system may be used for facilitating scheduled or ad-hoc meetings. Meeting participants who have the event client on their computing devices may run the event client to join the event session via wired or wireless connections, as well known in the art. Meeting participants who do not have the event client on their computing devices may join the event session by connecting to the appropriate wireless network or by using the wired connection 33 as described above.
As another example, in some alternative embodiments, the collaboration system may be used for facilitating classroom activities. When an instruction or collaboration session starts, the collaboration system sets the SSID and network key by using the ID and password of the instruction session (which is either manually set up by the instructor or automatically set up based on a predefined instruction schedule, depending on the implementation and system configuration). A student may join an instruction session using aforementioned methods. When the instruction session terminates (e.g., under the instructor's command or at the scheduled instruction session termination time), the collaboration system resets the SSID and network key to the ID and password of the upcoming instruction session, or, if no instruction session is scheduled to start, resets the SSID and network key to a randomly generated ID and password.
In an alternative embodiment, the collaboration system maintains a list of registered participant computing devices. Depending on the implementation, this list may be stored in a database, an XML file, a plain text file, or in other appropriate forms. A user may register a computing device in the collaboration system, e.g., by associating the physical address such as for example the Media Access Control (MAC) address of the computing device with the respective user identity (e.g., user ID) and registering the MAC address and the associated user identity to the list of registered participant devices.
The collaboration system uses the list of registered participant devices to join a participant computing device into an event session without asking for the event password.
The process 1600 starts when an event session and the wireless network associated therewith are started (step 1602). The user of a registered computing device searches for a wireless network associated with the event session as described above, and, after finding it, sends a request to join the event wireless network. The network module of the event computing device receives the request (step 1604), and obtains the computing device type and identity, e.g., the MAC address, of the computing device (step 1606). The event computing device then searches for the obtained MAC address in the list of registered computing devices (step 1608). At step 1610, if the MAC address is found, the process proceeds to step 1614; otherwise if the MAC address is not found (i.e., the participant computing device is not registered in the list), the collaboration system then uses another authentication method to authenticate the computing device, e.g., by asking the user to provide a password or passphrase (step 1612).
At step 1614, the collaboration system checks to determine if the user of the participant computing device is an invitee of the event session by using the MAC address obtained at step 1610 or the authentication result obtained at step 1612. If it is determined that the user of the computing device is not an invitee of the event session, the collaboration system rejects the request so that the participant computing device is excluded from accessing the event wireless network (step 1616). The process then ends (step 1622).
If, at step 1614, it is determined that the user of the participant computing device is an invitee of the event session, the collaboration system joins the participant computing device to the event session by granting the computing device access to the event wireless network (step 1618). As a part of the access-granting process, an IP address is assigned to the participant computing device. The collaboration system associates the IP address with the participant's user identity, and stores the IP address and the associated user identity (step 1620). The process then ends (step 1622).
In this embodiment, the event computing device displays the participant computer devices and the user identities associated therewith.
The web server in the event computing device also provides a webpage for authorized users, e.g., the event organizer or administrator, to view details of participant computing devices.
The authorized user may click or tap on the user identifier to modify it. For example, in
The authorized user may click or tap on the thumbnail image to change it to a different presentation, e.g., a picture of the user.
In a related embodiment, the collaboration system provides a dynamic captive portal to allow participants to share web content.
A presenter (e.g., an instructor) may send a sharing command to the captive portal to share a web location WEB_URL, e.g., “http://www.smarttech.com” (step 1988). After receiving the sharing command, the captive portal registers WEB_URL as the current redirecting target (step 1990). Thus, when any of the viewers (e.g., students) in the instruction session sends an HTTP request (step 1992), the captive portal intercepts and redirects the HTTP request to the current redirecting target, i.e., the web location WEB_URL (step 1992). As a result, viewers trying to access any website are redirected to the web location WEB_URL.
In another related embodiment, the captive portal may recognize participant computing devices used by a subset of users (via MAC address or IP address), and not redirect any HTTP request sent therefrom. The subset of users may be predefined or defined by system administrator.
In yet another related embodiment, the collaboration system provides a webpage-sharing bookmarklet for participants to easily share a webpage. As those skilled in the art will understand, a bookmarklet is a bookmark of a web browser that comprises a piece of script code such as for example a piece of JavaScript code. A participant may select the webpage-sharing bookmarklet, e.g., by clicking or tapping the webpage-sharing bookmarklet button in the bookmark toolbar, to execute the script code, which sends the address of the webpage currently shown in the browser to the captive portal, and instructs the captive portal to set it as the redirecting target.
In another embodiment, the collaboration system allows participants to share their own content to other participants via a web browser. In this embodiment, the default web portal includes a file sharing tool implemented using appropriate technologies such as for example HTML5. The file sharing tool allows a participant to drag and drop a file into the web browser, or select a file via a dialog. The user-selected file is then uploaded to the web server, and the captive portal redirects HTTP requests from other participants to the URL of the uploaded file.
In yet another embodiment, the collaboration system allows the authorized user to divide participants in the collaboration session into groups.
After dividing participants into groups, the authorized user may share different content to different groups. A participant of a group may also share content to other participants in the same group.
A participant USER_A, who may be the authorized user such as the instructor, or a participant in group GROUP_A, sends a command to the captive portal to share a web location WEB_URL in group GROUP_A (step 2042). The captive portal then registers WEB_URL as the current redirecting target for group GROUP_A (step 2044). When any of the participants in group GROUP_A sends an HTTP request (step 2046), the captive portal intercepts the HTTP request, and obtains the information of the sender (step 2048). Then, the captive portal determines the group that the sender is in by using the sender information (e.g., IP address), which in this example is GROUP_A, and determines the redirecting target of the group, which in this example is WEB_URL (step 2048). The captive portal then redirects the HTTP request to WEB_URL (step 2050).
In some related embodiments, the collaboration system also comprises a logging software module that records user activities. For example, the logging software module may record, for each time the authorized user shares content, which participant computing devices in the collaboration session have been redirected to the shared content, and which ones have not. As another example, the logging software module may record how frequently participants are sharing contents. As all Internet activities of the computing devices in the collaboration session go through the captive portal, the collaboration system may also record the words and phrases participants in the collaboration session have searched for, and generate a tag cloud of most searched terms for displaying on the IWB.
The collaboration system described above allows authorized users to implement various functions and activities. For example, an authorized user may add an “Eyes to the Front” bookmarklet to the browser running on the event computing device or their computing device. When the authorized user selects the “Eyes to the Front” bookmarklet, the script of the bookmarklet instructs the captive portal to redirect all HTTP requests to a reminder page reminding participants in the collaboration session to stop browsing websites and focus on the presentation of the authorized user. As another example, an authorized user may use the collaboration system to create a web-based quiz, which is hosted in the web server. When the authorized user starts the web-based quiz, the captive portal redirects any HTTP requests to the web address of the quiz to allow participants to take the quiz.
In an alternative embodiment, the collaboration system comprises a web-based whiteboarding software tool providing a whiteboard canvas extendable within its two-dimensional plane, such as the whiteboarding software tool disclosed in U.S. patent application Ser. No. 13/738,355, entitled “Method of Displaying Input During a Collaboration Session and Interactive Board Employing the Same,” to Tse, et al., filed on Jan. 11, 2012, assigned to SMART Technologies ULC, the disclosure of which is incorporated herein by reference in its entirety. In this embodiment, the captive portal redirects HTTP requests to the address of the web-based whiteboarding tool to allow participants in the collaboration session to work together. When participants in the collaboration session are divided into groups, each group is assigned to an individual whiteboarding session in the web-based whiteboarding tool, and the captive portal redirects the HTTP requests from each group to the respective whiteboarding session in the web-based whiteboarding tool.
Those skilled in the art will appreciate that a collaboration system as described above may comprise more than one event computing device in an event site. The event computing devices in the collaboration system may be in various fotins such as a desktop computer having an IWB, an IWB with a computing device integrated therein, a computing device in the form of a touch sensitive table, a computer with a non-touch-sensitive display, a laptop, etc.
In this embodiment, event computing device 2102 connects to an IWB 2104, and event computing device 2106 is in the form of a touch-sensitive table. As will be described later, one of the event computing devices, e.g., event computing device 2102, creates a “signature” wireless network 2100, and other event computing devices join the signature wireless network 2100. Participant computing devices 2110 may also join the signature wireless network using methods as described before. Although not shown in this figure, event computing devices 2102 and 2106, as well as the wireless network 2100, may be connected to servers and other networks such as for example, the Internet or a local area network within an organization, as described before.
The signature wireless network refers to a wireless network having a predefined “signature”, i.e., a predefined feature identifiable by computing devices within the range thereof. Multiple signature wireless networks with different SSIDs may have the same signature, and same vendor identity. Usually the signature is embedded in the signal of the wireless network that is detectable by the computing devices within range.
Each of the event computing devices 2102 and 2106, when started, detects if one or more signature wireless networks have been established, and determines whether to set up a signature wireless network based on the detection.
After an event computing device starts, the event computing device uses its wireless networking component to scan for existing signature wireless networks (step 2144). If no signature wireless network is detected (step 2146), the event computing device then starts a signature wireless network by using a default SSID and a randomly generated password/passphrase, and becomes the host computing device of the signature wireless network (step 2148). The process then ends (step 2158).
If at step 2146, the event computing device detects a signature wireless network, it further checks to determine if more than one wireless networks exist (step 2150). If only one signature wireless network exists, the event computing device then automatically retrieves the SSID and password of the detected signature wireless network from the signal thereof (described later), and connects to the detected signature wireless network using the retrieved SSID and password (step 2152). The process then ends (step 2158).
If at step 2150, the event computing device detects two or more wireless networks (e.g., two or more wireless networks of which only one wireless network has a signature matching that of the event computing device), the event computing device presents to user a list of detected signature wireless networks, and requests user to select which wireless network the event computing device should join (step 2154). The event computing then automatically retrieves the SSID and password of the user-selected signature wireless network from the signal thereof, and joins the user-selected wireless network (step 2156), and the process ends (step 2158).
In this embodiment, the host computing device embeds the password of the signature wireless network in the beacon signal it broadcasts to all computing devices within the range of its wireless network.
The frame body 2174 comprises a plurality of fields, including a beacon interval field 2178, which is used by a computing device that enters power saving mode to determine when to wake up and receive the beacon signal; a timestamp field 2180 for computing devices to synchronize their local clock; the SSID field 2182 comprising the SSID of the wireless network; as well as other fields, as defined in relevant standards, e.g., IEEE 802.11. The frame body 2174 also comprises a password field 2184 comprising the password for the wireless network, encrypted in a manner that only the event computing devices can decrypt. Those skilled in the art will appreciate that many existing encryption technologies may be used for encrypting the password embedded in the password field 2184, for example, by using an encryption method with an encryption code known to all event computing devices, or by using a public-key cryptography technology (e.g., PGP) with a public key known to all event computing devices.
For resolving race conditions (described further herein), the frame body 2174 comprises a WLAN start time field 2186 comprising a timestamp indicating the start time of the wireless network. The frame body 2174 also comprises a device property field 2188 indicating one or more properties of the event computing device, such as for example, the “signature”, the device type (e.g., an IWB device or a touch table), etc., and a WLAN description field 2190 comprising a brief description of the signature wireless network.
After event computing device A starts a signature wireless network following the steps shown in
As described above, if the event computing device does not detect any existing signature wireless network, the event computing device sets up a signature wireless network. In situations where two event computing devices start at about the same time, both may determine that no signature wireless network exists, and therefore, both may set up their own signature wireless network (referred to as a race condition). To solve this issue, in some embodiments, each event computing device executes a race condition solving algorithm after starting its signature wireless network.
The process starts after the event computing device has determined that no signature wireless network is detected (step 2242). After the event computing device first starts a signature wireless network (step 2244), the event computing device scans for other signature wireless networks (step 2246). If no other signature wireless network is found (step 2248), the process ends (step 2258).
If at step 2248, one or more other signature wireless networks are found, the event computing device retrieves the WLAN start time data 2186 from the beacon signal of respective wireless networks, and checks to determine if any of the detected signature wireless networks was started earlier than the signature wireless network the event computing device started (step 2250). If no other signature wireless network was started earlier, the event computing device continue hosting the signature wireless network (step 2252) and the process then ends (step 2258).
If at step 2250, one or more signature wireless networks were started earlier, the event computing device then stops the signature wireless network it has started (step 2254), and connects to a detected signature wireless network (step 2256). As described above, if there exists only one other signature wireless network, the event computing device then automatically joins the detected signature wireless network and if there are two or more other signature wireless networks, the event computing device then asks the user to make a selection, and joins the user-selected wireless network. Then process then ends (step 2258).
After starting the signature wireless network, event computing device A periodically broadcasts its beacon signal for the signature wireless network WLAN A (step 2282). Event computing device B also periodically broadcasts its beacon signal for the signature wireless network WLAN B (step 2284). When event computing device B receives the beacon signal from event computing device A, event computing device B retrieves the WLAN start time data therefrom. Since the WLAN start timestamp 9000001 in the beacon signal from event computing device A is earlier than the start timestamp 9000002 of WLAN B, event computing device B stops its signature wireless network WLAN B (step 2286).
At the same time, event computing device A also receives the beacon signal from event computing device B. Event computing device A retrieves the WLAN start time data therefrom. Since the WLAN start timestamp 9000002 in the beacon signal from event computing device B is later than the start timestamp 9000001 of WLAN A, event computing device A ignores the signature wireless network WLAN B (step 2288).
After stopping the signature wireless network WLAN B, event computing device B then connects to event computing device A using the SSID and password retrieved from the beacon signal for signature wireless network WLAN A, and joins the signature wireless network WLAN A (step 2290).
In some embodiments, the collaboration system allows an event computing device in a signature wireless network to recover the wireless network when the original host computing device thereof has failed.
The process starts when an event computing device joins a signature wireless network hosted by an event computing device (step 2322). Each event computing device in the signature wireless network monitors the status of the wireless network by periodically checking the beacon signal broadcasted by the host event computing device. A wireless network failure is detected when the event computing devices no longer receive the beacon signal from the host event computing device (step 2324). When the wireless network failure has been detected, each event computing device automatically starts a signature wireless network using the same SSID and password of the failed wireless network (step 2326), and solves any race condition using the method described above (step 2328). The process then ends (step 2330).
Although in the above description, an event computing device, when started, detects whether a signature wireless network exists, and automatically joins a detected signature wireless network, or starts a signature wireless network if no signature wireless network is detected, in an alternative embodiment, some event computing devices may always start a signature wireless network regardless of whether any signature wireless network exists. In another embodiment, some event computing devices may only be allowed to join a signature wireless network.
Those skilled in the art will appreciate that an event computing device may join a wireless network with no signature or a wireless network with a different signature.
Although embodiments have been described above with reference to the accompanying drawings, those of skill in the art will appreciate that variations and modifications may be made without departing from the scope thereof as defined by the appended claims.
This application claims the benefit of U.S. Provisional Application No. 61/617,006 to Hill et al. filed on Mar. 28, 2012, entitled “Method for Organizing a Collaborative Event and System Employing Same”, the entire disclosure of which is incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
61617006 | Mar 2012 | US |