Hey Folks,
As developers begin to adopt OWIN I've heard some confusion expressed at the terminology defined in section 2 of the spec:
http://owin.org/spec/owin-1.0.0.html 2. Definitions
This document refers to the following software actors:
· Server – The HTTP server that 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, which 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.
Specifically, there has been more than a little confusion expressed between the terms Server and Host. This ambiguity is aggravated by the fact that these roles are sometimes merged into the same component (e.g. IIS/
ASP.NET). In discussions so far, no terms have been found to more accurately describe what is currently defined as Server except perhaps Host (hence the confusion). On the other hand the layer currently defined as Host may be more clearly described as Process, as its description already includes.
Proposal - Clarify the terms as follows:
- Host - The HTTP server that directly communicates with the client and then uses OWIN semantics to process requests. Hosts may require an adapter layer that converts to OWIN semantics.
- Process - The container an application and host execute inside of, primarily responsible for application startup. Some Hosts provide their own Process.
- Web Application – A specific application, possibly built on top of a Web Framework, which is run using OWIN compatible Hosts.
- Middleware – Pass through components that form a pipeline between a host and application to inspect, route, or modify request and response messages for a specific purpose.
- 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.
See the attached diagram for layering. This could also be added to the spec.
How does that sound, would this change adequately reduce confusion? Are there clearer terms for Host and Process?
Thanks,
~Chris