Scientific collaboration has become more and more important in current scientific research. A collaboration environment which simplifies integration and collaboration of heterogeneous scientific resources, for instance scientific computing software and scientific apparatuses, can accelerate progress of scientific research remarkably. We present a novel middleware to facilitate development of distributed and collaborative application for scientific research. A service-oriented collaboration bus is proposed to enable scientific resources to be plugged in and users to interact with these resources collaboratively and transparently. Collaboration bus engines in different organizations can interoperate with each other to support distributed collaboration. We also show our prototype implementation of this middleware and a demonstration of Collaborative Visualization System for Seismic Data in earth science.