A common way of combining diffuse and specular brdfs is by using a fresnel equation.
Essentially, for some specular materials, the amount reflected and transmitted (passed through the object) depends on the angle you view it. For example water will reflect more if you look at it from one angle, but you can see through it if you look at it from another.
PBRT3 is a really good resource and has a lot of brdfs in it. The book and source code are available for free online.
Regarding oren-nayar, from what I can gather they are just using cosine weighted hemisphere sampling.