Open Web Interface for .NET
OWIN (Open Web Interface for .NET) is a standard for an interface between .NET Web applications and Web servers.[1] It is a community-owned open-source project. Prior to OWIN, Microsoft's ASP.NET[2] technology was designed on top of IIS, and Web applications could not easily be run on another Web server (although note that despite this the Mono community developed several ASP.NET compatible Web servers, such as XSP).
OWIN aims to decouple the relationship between ASP.NET applications and IIS by defining a standard interface. Developers of Web servers can be sure that, if they implement OWIN correctly, ASP.NET applications will run on their server. Similarly, new Web frameworks could be developed as an alternative to ASP.NET.
In this regard, OWIN aims to do for .NET what Java Servlet and Servlet containers do for the JVM. Project Katana is a set of OWIN components for ASP.NET (.NET Framework) built by Microsoft. ASP.NET Core (.NET) has its own middleware system that is similar to OWIN.
OWIN as middleware
OWIN allows chaining together middleware into a pipeline. A Web framework can interact with OWIN without knowing whether it is interacting directly with the underlying web server, or with one or more layers of middleware on top of the Web server.
This allows infrastructure concerns, such as authentication, to be split out into separate modules. In Project Katana, Microsoft has made several ASP.NET features into OWIN modules. This allows them to be reused in other Web frameworks, and ensures a cleaner separation from the application using them.