Your understanding is generally correct, but the role of OWIN seems misunderstood. A more complete timeline would be:
- OWIN Standard developed to describe generic .NET web interface, a la WSGI/Rake/Connect (first commit in 2010).
- ASP.NET WebAPI is developed host-independent, but released with https://www.nuget.org/packages/Microsoft.AspNet.WebApi.WebHost/.
- Katana Project implements several OWIN hosts:
- https://www.nuget.org/packages/Microsoft.Owin.SelfHost/
- https://www.nuget.org/packages/Microsoft.Owin.Host.HttpListener/
- https://www.nuget.org/packages/Microsoft.Owin.Host.IIS/
- https://www.nuget.org/packages/Microsoft.Owin.Host.SystemWeb/
- ASP.NET WebAPI adapter for OWIN is released: https://www.nuget.org/packages/Microsoft.AspNet.WebApi.Owin.
Your summary:
All the above means that one has two different ways of hosting Webapi on IIS. It can be done without Owin, using Webapi WebHost, or it can be done with Owin Host for Webapi and with Webhost for Owin.
I would restate that as:
All the above means that one has two different ways of hosting WebAPI. It can be done without Owin, using WebAPI WebHost, or it can be done with the OWIN adapter for WebAPI and any OWIN-compatible host. Hosting options on IIS are Microsoft.Owin.Host.IIS and Microsoft.Owin.Host.SystemWeb. Microsoft.AspNet.WebApi.OwinSelfHost is also provided.