Being new at VisAD and Java I could use your advice on the next step in my project design. My visualization requires four types of data, a surface (currently a netcdf file), a list of words, a list of document titles, and optionally one or more text documents. This data is dynamic depending on the actions of the user. The code that generates this data only runs on a Solaris machines so I need to create a client/server model where the server runs on the Solaris machine and the VisAD client any machine that supports VisAD/Java3D/JFC. I could use RemoteDataReferenceImpl to display the surface. However, what if more than one client attaches and want a different surface (the first surface is always the same but the user can drill-down to produce a different surface). If I did use RemoteDataReferenceImpl how could I also pass the list of words, document titles, and documents (for my JFC components)? Perhaps RemoteDataReferenceImpl is best used for collaboration. What about RMI in general. Is it best for collaboration or can it be used effectively for many clients contacting one server? Two other solutions are Cobra and sockets (TCP or UDP). I've seen sample servers for each but cannot determine which solution is recommended for VisAD applications. As always, thanks in advance for any help.