About OWIN

Web is evolving fast and web development needs to keep up with it.
One solution is to have an abstraction between the web appplication and the web server.
OWIN (Open Web Server Interface for .NET) – standard interface between .NET web servers and web applications. It decouples server and application. There is no code for OWIN, there are only just specicifications for the real implementation of a custom web server.

OWIN defines a standard interface for web servers and .NET client applications and Katana and Nowin are some implementations.
OWIN runs on the server, answers to HTTP requests, and forwards them to its middleware.

IIS – a super-tested web server but its biggest limitation is that it is related to the OS.

OWIN is not related to the OS, you can build your custom host and add whatever you want in the HTTP request processing pipeline.
The OWIN specs define four layers:
Host: where the server is launched and startup
Server: This is the actual HTTP server, the one binding to the network socket to listen to
requests and sending them to the pipeline of OWIN middleware components.
Middleware: components that stand between the server and the final
application code, and handle the requests sent through the OWIN pipeline(a logger or a full web frameworks like
Web API or SignalR). As far as the server is concerned, a middleware component is
anything that implements the application delegate.
Application: the specific application code, possibly built on top of a web
framework.