[Osr-101] Getting abstract (or: defining Neutron's target abstraction level)

Andreas Wuest awuest at student.ethz.ch
Fri Sep 8 16:30:05 CEST 2006


Hi

The current specification (including the proposed changes) do not give a 
coherent picture of what Neutron's abstraction layer should be.

I'd like to start with a classification of what I think possible 
abstraction layers could be:

1. Completely independent of the application layer protocol.

2. Dependent on two-way communication capable application layer 
protocols. Independent of specific Neutron endpoints.

3. Dependent on two-way communication capable application layer 
protocols. Dependent on specific Neutron endpoints.

4. Dependent on the HTTP application layer protocol.

I, for one, believe that we should aim for abstraction level 2. The 
current specification is a mixture of levels 3 and 4.

In order to move towards level 2, we have to incorporate the following 
changes:
  * Remove the dependency on HTTP header fields
  * Remove the dependency on HTTP response status codes
  * Remove the dependency on Neutrons specific endpoints (e.g.: if you 
POST to this URI, you can handle Neutron exceptions in the response)

This implies the following:
  * All requests have to be enveloped. The envelope has to indicate that 
this is a Neutron request. When using the HTTP protocol, this implies 
that GET requests are ruled out, and we have to use POST instead. This 
enveloping ensures that the server know that it is dealing with a 
Neutron capable client, and that it can respond with a Neutron exception 
if need be.
  * IFF the server detects that the request is a Neutron request, and it 
uses the HTTP protocol, all responses have to 200, such that the 
response body is always routed up to the Neutron protocol handler, and 
it can analyses its content.

Regarding Neutron-Auth: this protocol should be downgraded to level 4. 
Why? Because the reason for separating it from Neutron was to use it as 
a means for authentication together with other protocols like APP or Atom.

The other possibility would be to tunnel APP or Atom requests through 
the Neutron protocol. Then we could reintegrate Neutron-Auth into Neutron.

I am looking forward to a discussion which finally settles these issues, 
because I am having a hard time implementing Neutron and Neutron-Auth as 
long as it behaves as inconsistent as it currently does.

-- 
Kind regards,
Andi



More information about the Osr-101 mailing list