  Product systems have been originally introduced to classify E$_0$-semigroups
on type I factors by Arveson. We develop the classification theory of
E$_0$-semigroups on a general von Neumann algebra and the dilation theory of
CP$_0$-semigroups in terms of W$^*$-bimodules. For this, we provide a notion of
product system of W$^*$-bimodules. This is a W$^*$-bimodule version of
Arveson's and Bhat-Skeide's product systems. There exists a one-to-one
correspondence between CP$_0$-semigroups and units of product systems of
W$^*$-bimodules. The correspondence implies a construction of a dilation of a
given CP$_0$-semigroup, a classification of E$_0$-semigroups on a von Neumann
algebra up to cocycle equivalence and a relationship between Bhat-Skeide's and
Muhly-Solel's constructions of minimal dilations of CP$_0$-semigroups.
