On-the-fly CollaborationEmpty
This page contains information on starting/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.

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 on the command line by typing COVISAServer and pressing enter. See the COVISA Server 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.

Step 2 - Connect to the Session

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 Modules section of the Librarian.
When the module is launched a number of fields may need to be completed or altered. First check that the slot marked COVISAServer Machine contains the name of the machine running the COVISA Server as set in step 1 above. 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.

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. Look in the list labelled Maps in the Librarian and launch the cfd map into the Map Editor. Ask your collaborator(s) to do the same.
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 list labelled Modules in 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. 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.
Wire the output from IsosurfaceLat labelled Threshold to the input of MShareParam labelled In_Param1. 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. 
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. 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.

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.
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 list labelled Modules in 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. 

Now, when one collaborator alters their 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.

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. 
From the list labelled Modules 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.

Set the Render module into the appropriate picking mode 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.

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.