4 On-The-Fly Collaboration

4 On-The-Fly Collaboration

This section contains information on starting and running a dynamic collaborative session. These types of sessions are characterised by users dynamically altering the visualization map as they explore their data, adding and removing shared data objects. It is assumed that collaborators are able to communicate as a group using either a videophone system for shared video and audio, or perhaps a shared text tool or even just a telephone.

4.1 Step 1 – Start a COVISA Server

The first step in running any collaborative session is to ensure that there is a single COVISA Server running on a machine that all participants have network access to. The COVISA Server can be started from the IRIS Explorer program group available from the Start menu or by opening an MS-DOS window and running %EXPLORERHOME%\bin\COVISAServer.exe. See Section 2.1 for a full description. Once the server is running proceed to step 2 having made sure that all collaborators are aware of the name of the machine running the server.

4.2 Step 2 – Connect to the Session

MServer in the Librarian

Figure 4-1 MServer in the Librarian


All collaborators need to be running a copy of IRIS Explorer on their own machine. They then need to each launch a copy of the module MServer found in the Collaboration section of the Librarian (see Figure 4-1).

MServer Module

Figure 4-2 MServer Module


When the module is launched a number of fields may need to be completed or altered (see Figure 4-2). First check that the slot marked COVISAServer Machine contains the name of the machine running the COVISA Server as set in Section 4.1. Check the slot marked UserName to ensure it contains the name you wish to use in the session. It is best to choose a unique name for the session to aid identification. Check that the slot marked COVISAServer Port contains the port number that the COVISA Server is using. This value is set to a default of 5127 at installation time so it probably will not need to be altered. The default server mode is On-The-Fly, this is the mode that you should be using for this type of session. Finally, press the button marked Start to connect to the collaborative session. Once the MServer module has made the connection to the COVISA Server, the COVISAServer Machine, COVISAServer Port, UserName and Start widgets will disappear, and a new widget called Conference List will take their place. In this widget will appear your own username and the names of all the other collaborators in the current session. The Group Join/Find widget will remain empty.

4.3 Step 3 – Starting a Collaborative Module

Collaborative modules, in the main, are designed for sharing data and control parameters between separate instances of IRIS Explorer. It is easier to demonstrate this using a map that is already running, so for the purposes of this example we shall use the cfd map. Open the folder called Maps in the Librarian and launch the cfd map into the Map Editor. Ask your collaborator(s) to do the same.

Introducing MShareParam into the cfd Map

Figure 4-3 Introducing MShareParam into the cfd Map


Now that the cfd map is running, we can begin to think about collaborating. First of all maximise the IsosurfaceLat module. On its user interface is a dial, called Threshold, that controls the value of the isosurface that will be extracted. This widget value is passed within an IRIS Explorer map as a cxParameter datatype. To share its value between sessions we use an MShareParam module. Look in the Collaboration folder of the Librarian for the MShareParam module and launch it into the Map Editor. When its control panel appears, press the Initiate button to connect it to the COVISA Server (see Figure 4-3). Your collaborators' IRIS Explorer sessions will automatically start corresponding MShareParam modules which will connect themselves to the COVISA Server. There is no need for them to launch an MShareParam module or press any buttons on modules launched on their behalf.

Wiring MShareParam into the cfd Map

Figure 4-4 Wiring MShareParam into the cfd Map


Wire the output from IsosurfaceLat labelled Threshold to the input of MShareParam labelled In_Param1 (see Figure 4-4). Ask your collaborators to wire the output from their MShareParam modules labelled Out_Param1 to the input of their IsosurfaceLat modules labelled Threshold. If you now alter your dial, labelled Threshold, this value will be passed to the Threshold dial of your collaborators' IsosurfaceLat modules. You are now able to control the isosurface being calculated in all of the connected sessions.

IsosurfaceLat Wired for Multiple Control

Figure 4-5 IsosurfaceLat Wired for Multiple Control


If your collaborators now wire the Threshold output from their IsosurfaceLat modules to the In_Param1 input of their MShareParam modules, and you wire the Out_Param1 output of your MShareParam module to the Threshold input port of your IsosurfaceLat module, then the Threshold value will be under dual (multiple) control (see Figure 4-5). Ask one of your collaborators to alter their dial value and see your dial, and hence isosurface, change in response.

Any of the other widgets on the IsosurfaceLat module may be similarly shared using this process. Care should be taken that the widgets of all the IsosurfaceLat modules are connected to corresponding MShareParam port numbers. E.g. the widget Smooth? uses input and output ports 2, Flip Normal? uses input and output ports 3, etc., etc.

If you wish to share the widgets of other modules, then launch further MShareParam modules and wire the widget ports up appropriately.

4.4 Step 4 – Sharing Other Datatypes

Now we know how to share the control of module parameters, we can look at sharing other datatypes. Continuing with the cfd map, we shall now look at how to share a colormap, and more generally how to share a cxLattice datatype.

MShareLat Used to Share a Colormap

Figure 4-6 MShareLat Used to Share a Colormap


To share the colormap generated by the GenerateColormap module we first note that a colormap in IRIS Explorer is passed around as the datatype cxLattice. Find the module MShareLat in the Collaboration folder of of the Librarian and launch it into the Map Editor.

As before, press the Initiate button to connect it to the collaborative session, and your collaborators will automatically receive a corresponding MShareLat module. Now all collaborators should unwire the output from GenerateColormap to the other modules in the map and wire it into the In_Lat input port of MShareLat.

Next, wire the output Out_Lat from the MShareLat module to the input ports of the modules previously connected to the output of GenerateColormap. These were LatToGeom -- Colormap and PyrToGeom -- Colormap. Lastly, set the Pass Through widget on MShareLat to the On position. This allows lattices generated by your own GenerateColormap module to pass into your own map as well as that of your collaborators (see Figure 4-6).

Now, when a collaborator alters his or her colormap, the generated lattice is passed to all collaborators.

If other lattices are to be shared, then new MShareLat modules must be launched and initiated. To share the Geometry datatype, MShareGeom modules should be used, to share the Pyramid datatype, MSharePyr modules should be used and to share the Pick datatype, MSharePick modules should be used.

4.5 Step 5 – Collaborating over Geometry

Now that we can share control of module parameters, and share the different datatypes, we can consider collaborating over the visualized result. One important tool that is included in this release is the shared pointer module which we can use to indicate precise points in the 3D scene that we wish to discuss with our collaborators.

Collaborating over Geometry

Figure 4-7 Collaborating over Geometry


From the Collaboration folder in the module Librarian launch the module MSharePointer. Press the Initiate button to connect it to the COVISA Server in just the same way as the previous data sharing modules. Your collaborators' environments will automatically start corresponding MSharePointer modules and connect them to the COVISA Server. You should now wire the output from MSharePointer labelled Pointer to the input port on Render labelled Input. Also wire the output port on Render labelled Pick to the input port on MSharePointer labelled Position. The MSharePointer module is now wired appropriately (see Figure 4-7).

Set the Render module into the appropriate picking mode (see Section 2.7.1.1) and then click on an object in the scene. The MSharePointer module will create a pointer shaped geometric object and place it at that point in the scene, as well as sending this pointer to the other connected MSharePointer modules. This means that you are able to place a pointer object at the same position in the rendered scene of all collaborators, hence allowing the collaborating group to identify specific points of interest. Now ask one of your collaborators to click a different point in the scene and watch as a new pointer object appears.

For this map you may need to set the pointer size to be around 0.4 using the Scale widget. Also, for identification purposes, it is best for each collaborator to set the Color widget to a different colour name. This means that pointers generated by different collaborators can be easily distinguished.

4.6 Step 6 – Ending a Session

Collaborators are free to leave a session at any time. When the last collaborator leaves, the COVISA Server will reset its group numbers and tidy up empty groups etc. The COVISA Server process may be terminated at this time. It must not be terminated while other users are collaborating or the session will be destroyed.

You may be able to obtain more information on using collaborative modules at the IRIS Explorer Centre of Excellence or IECOE web site, as the information at this site may be updated from time to time.

Website Feedback

If you would like a response from NAG please provide your e-mail address below.

(If you're a human, don't change the following field)
Your first name.
CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
Image CAPTCHA
Enter the characters shown in the image.