One point to note here: OWIN and Katana are two separate components. OWIN is the community-driven underlying abstraction layer which doesn't specify any dependencies; Katana is a Microsoft-driven library of statically typed wrappers around it that completely abstracts it out altogether and leaves you with a bunch of tutorials and blog posts that don't look anything even remotely like the OWIN spec. It's all very confusing.
I wrote a blog post about it a while ago trying to untangle the difference between the two in some detail: http://jamesmckay.net/2014/08/sorting-out-the-confusion-that...