OWIN

The HTTP server directly communicates with the client and then uses OWIN semantics to process requests. Servers may require an adapter layer that converts to OWIN semantics.
Web Framework
A self-contained component on top of OWIN exposing its own object model or API that applications may use to facilitate request processing. Web Frameworks may require an adapter layer that converts from OWIN semantics.
Web Application
A specific application, possibly built on top of a Web Framework, that is run using OWIN compatible Servers.
Middleware
Pass-through components that form a pipeline between a server and application to inspect, route, or modify request and response messages for a specific purpose.
Host
The process an application and server execute inside of, primarily responsible for application startup. Some servers are also hosts. As a benefit of this abstraction, you'll be able to port or move your application from one server to another or port to a completely different platform and OS (Host). Let's visualize this in terms of technology existing on each layer. Now the diagram would become something like this: (Thanks to Lex Li to make it simple to understand for others here).
The resulting abstraction consists of two core elements. The first is the environment dictionary of type IDictionary<string, object>. This data structure is responsible for storing all of the states necessary for processing an HTTP request and response, as well as any relevant server state.

For a full list of Dictionary, items visit the specification here (see section 3.2).
The second key element of OWIN is the application delegate. This is a function signature that serves as the primary interface between all components in an OWIN application. The definition of the application delegate is as follows:
- Func<IDictionary<string, object>, Task>;
Project Katana
OWIN is a standard and the Katana is the project from Microsoft that represents the set of OWIN components. These components include both infrastructure components, such as hosts and servers, as well as functional components, such as authentication components and bindings to frameworks such as SignalR and the ASP.NET Web API. The project targets the following three goals as specified in the ASP.NET website page of the Katana project.
- Portable
- Modular/Flexible
- Lightweight/performant/scalable
Why Katana
Katana was developed to be a lightweight webserver like Node.js and it brings many benefits of Node.js and other frameworks like Node.js. If you understand Node.js then you can directly jump in with Katana since it is inspired by Node.js in nature.
In the next article, we will see how to create a simple application using Katana and discuss a little more about Katana.

Amit ChoudharyPosted Jul 16, 2014, 8:53 AM
ha ha ha ha... Noooooo!!!
Amit ChoudharyPosted Jul 15, 2014, 10:58 AM
Yeah.. and the latest blast is I'm in love with this Owin and Katana stuff.. Decided to write atleast one blog post every day on it. Finger crossed god give bless me with time. :)
Mahesh ChandPosted Jul 15, 2014, 9:45 AM
Great. It will be a blast.
Amit ChoudharyPosted Jul 15, 2014, 9:41 AM
Hi Sir, Yes all is well at my end though it took a little while :). Yes I'm definitely coming this year. Started the planning already. Cheers!
Mahesh ChandPosted Jul 14, 2014, 10:39 PM
Nice to see you active, Amit. Hope all is well. Are you coming to Microsoft MVP Summit this year? Cheers!