Driver API & Runtime API How do they vary?

There are two APIs available in CUDA programming: Driver API and runtime API. I cannot distinguish them. Why should we make them co-exist; why not integrate them into one? Where are they located in execution: in device environment or in host environment? Thanks.