All the ASP.NET web applications using System.Web assembly to get ASP.NET functionality. The System.Web assembly provides a rich set of functionality to build a web applications. However, many times you may use only a small portion of this functionality. This is unnecessary and resource consuming. Moreover, System.Web is tightly with IIS. That means your ASP.NET applications can run only on IIS.IIS provides a rich set of features to the web applications. However, web applications may not need all these features. It might be sufficient for them to have minimal HTTP processing capabilities. OWIN compatible host can provide such a hosting environment to these applications.
What is OWIN ?
OWIN actually a acronym and it is stands for Open Web Interface for .NET . According to Owin.Org
OWIN defines a standard interface between .NET web servers and web applications.
This definition gives you a high level idea but it doesn’t tell us what it is.
OWIN actually just a specification, that define how you can abstract a web server in a very efficient way. This abstraction makes possible to build web applications at don’t care about how they will be hosted. Such an abstraction enables you to run the same application on all the web servers that support OWIN.
What is Katana ?
Katana is the Microsoft implementation of the OWIN specification. It is an open-source project hosted on Codeplex. Project Katana is not a by the book implementation. The peoples in the Microsoft have implemented OWIN specification but also added some additional features like authentication. The project Katana is already in some of the features we used to build ASP.NET application today.
Create a ASP.NET MVC application with authentication (Here individual user account). You can see the OWIN specification in package config.
Architecture of a Katana based application
Host: The process that runs the application and can be anything from IIS or a standalone executable, to your own custom program.There are three options for hosting applications based on Katana:
Server: Responsible for binding to a TCP port, constructing the environment dictionary and processing requests through an OWIN pipeline.
Middleware: The middleware layer indicates a set of components built using OWIN specifications. These components can be larger frameworks such as Web API or specialized components such as ASP.NET Identity or SignalR.
Application: This application is used by the end users. It could be a ASP.NET , Windows based application or even a console application.