How can an animated object kept on the surface of an ocean? I tried to set the ocean as passive rigid body (collision mesh) and a boat as active rigid body. 

The boat falls through the ocean. Which technique is recommended for this?

Ideally the boat would follow a curve and the physic simulation would calculate the orientation and level (z-axis).
As gandalf3 suggested a Shrinkwrap constrained works, but not alone. Using Vertex Parent on a triangle and shrinkwrap the triangle to the ocean does the trick.





For the second requirement to follow a curve a Curve modifier must be added before the Shrinkwrap in the modifier stack.



The vertex parent trick was described here but this tutorial uses softbodies and is more complicated to setup.