[Nmc-wg] Transport protocol
Jason Zurawski
zurawski at internet2.edu
Mon Feb 22 08:07:07 CST 2010
To wrap this up:
- Base remains as it is with no mention of the underlying protocol
- Extensions that do need to mention this detail (e.g. AA), will do so
when required
- We note SOAP over HTTP as our use case and explain this well. We
can allude to others being possible candidates (don't go into detail).
Is this fair?
-jason
On 2/19/10 10:56 AM, Jeff W. Boote wrote:
> Then I think we are all in violent agreement here.
>
> My one caveat is that I don't think we should put effort/time into
> specifying how NMC protocols are bound to other transports at this time.
> Lets get the soap/http one done first.
>
> jeff
>
> On Feb 19, 2010, at 2:27 AM, Michael Bischoff wrote:
>
>> This sounds more like you agree with what I just said... So, I'm
>> pretty sure I don't understand your point.
>>
>>
>> I'll try to clarify;
>>
>> In an abstract formal way what I'm trying to say is:
>> you are free to choose any transport, (NMC is at it's core protocol
>> agnostic)
>> but:
>> - if you choose SOAP you must adhere to set of rules x as specified by
>> the binding document to be NMC compliant
>> - if you choose HTTP-POST you must adhere to set of rules Y as
>> specified by the binding document to be NMC compliant
>> ... where there are maintenance updates for future, at this time
>> unknown or unforeseen transport.
>>
>> This mirrors SAML which at it's core is protocol agnostic, so you have
>> freedom to choose whatever transport you want.
>> But if you choose SOAP you MUST adhere to rules defined in
>> http://docs.oasis-open.org/security/saml/v2.0/saml-bindings-2.0-os.pdf
>>
>> The rationale for this is what I've have been trying to explain, but
>> perhaps it's best to quote others:
>>
>> The reason for at it's core being protocol agnostic:
>> Jason: "The strength of this work should lie in the specification and
>> meaning of the XML - if it travels over pigeons or
>> wires should not be a primary concern."
>> Nina: "There are number of (non-perfsonar) services nowadays that
>> offer both SOAP and REST interface. The goal
>> of this duality is not interoperability, but flexibility and ease of
>> adoption. A service can offer both, and let the clients
>> decide which one to use. This might be a reasonable goal for NMC."
>> I would add; that if say, for example,
>> spdy(http://dev.chromium.org/spdy/spdy-whitepaper) would ever catch on we
>> wouldn't want us to be tied to http....
>>
>> The reason for being protocol specific is that this ensures
>> interoperability, but this conflicts obviously with the former.
>> The typical way to solve this conflict is to separate the two leaving
>> only the protocol specific bits to be rewritten should
>> a new transport come along. This solves the forward compatibility
>> problem, but doesn't solve the situation when there
>> is not a single transport being embraced(a situation that will never
>> exist in my opinion, for communication between
>> two services hosted on the same node if performance is critical one
>> would always opt for IPC/shared memory). That
>> situation can be solved by having multiply optinal protocol specific
>> bits. aka multiply bindings.
>>
>> This is also what I think Roman was getting at;
>>
>> I agree. I would not put such specifics of the WS in base and even
>> extension documents. Maybe third type of document describing an
>> implementation could have them (I can imagine that pS services
>> have more
>> interfaces than one - SOAP, REST, etc. - in the future )?
>>
>> - base doc
>> -- extension doc (e.g. for MA)
>> --- transport implementation doc (including, for example WS info)
>>
>> (lower level doc refers to upper level doc)
>>
>>
>> Like I said in the conference call, and I think we all agree is the
>> base document should be protocol agnostic and as that
>> is our main concern right now perhaps. Beyond that I'd like to keep
>> the option open, so it's best to let this sudder, and
>> revisit this at a later time. / put this on the back burner. (feel
>> free to speak up if you disagree)
>>
>> - Michael
>>
>> On Fri, Feb 19, 2010 at 7:18 AM, Nina Jeliazkova <nina at acad.bg
>> <mailto:nina at acad.bg>> wrote:
>>
>> Jeff W.Boote wrote:
>>> A protocol specification should indicate more than the valid
>>> messages. It should also define the context in which those
>>> messages are valid. If it is possible to cleanly separate the
>>> messages from some of the underlying support we receive from
>>> soap/http than we should structure it that way. (I believe to a
>>> large degree this is possible.)
>>>
>>> But, I also think it is absolutely reasonable for us to indicate
>>> specifically which lower layer transport we are using once we get
>>> to some of the more intricate issues. For example, I would much
>>> rather depend on soap and/or http for authentication headers than
>>> define that in our messages. If we separate this cleanly, I think
>>> we can indicate that we are only doing a 'full' protocol
>>> specification for using these messages in a soap/http context and
>>> that future protocol specifications can indicate how they are
>>> applicable for other transports.
>>>
>>> Will this strategy work for people?
>> Perhaps indeed the protocol should be documented on different
>> levels. My view is currently
>> - I am reluctant of locking everything down to SOAP, on the basis
>> of existing implementation.
>> - There are number of (non-perfsonar) services nowadays that offer
>> both SOAP and REST interface. The goal of this duality is not
>> interoperability, but flexibility and ease of adoption. A service
>> can offer both, and let the clients decide which one to use. This
>> might be a reasonable goal for NMC.
>> - Security related (and perhaps other) solutions may rely on
>> transport protocol, and this should be documented , yet not
>> locking the possible solutions to a single protocol.
>>
>> Best regards,
>> Nina
>>>
>>> On Feb 18, 2010, at 4:44 PM, Michael Bischoff wrote:
>>>
>>>> If implementation A uses SOAP based webservices and
>>>>
>>>> implementation B uses RESTful webservices they do not
>>>> operate. So I
>>>>
>>>> think it should be specified, preferably in a different (short)
>>>>
>>>> document.
>>>>
>>>>
>>>> On that basis I disagree. There might well be a implementation C
>>>> that
>>>> provides both a SOAP and RESTfull interface. Since that just
>>>> starts the
>>>> best of breed game as far as transport is concerned. Freedom here
>>>> promotes adoption.
>>>
>>> I do not believe this is true, but perhaps I don't understand
>>> what you are trying to say. In my opinion, freedom to 'do it
>>> however you want' does not promote adoption, it hinders
>>> interoperability which in turn makes development difficult and
>>> implementations buggy. This hinders adoption in the long run.
>>>
>>>> My issue with not specifying it is that there might be two
>>>> implementations
>>>> who both have a SOAP-based interface but bind it differently.
>>>> That leads to
>>>> a bickering game, where no one benefits - which is a treat to
>>>> adoption
>>>
>>> This sounds more like you agree with what I just said... So, I'm
>>> pretty sure I don't understand your point.
>>>
>>> jeff
>>>
>>>>
>>>> - Michael
>>>>
>>>> On Thu, Feb 18, 2010 at 8:57 PM, Freek Dijkstra
>>>> <Freek.Dijkstra at sara.nl <mailto:Freek.Dijkstra at sara.nl>> wrote:
>>>>
>>>> Jason wrote:
>>>>
>>>> > Specifying details regarding a specific implementation of
>>>> an NMC-
>>>> > capable
>>>> > framework (like perfSONAR or something completely
>>>> different) does not
>>>> > seem correct to me. I still believe that we do not want to box
>>>> > ourselves in by saying "use SOAP over HTTP because that's
>>>> what the
>>>> > first
>>>> > generation used". The strength of this work should lie in the
>>>> > specification and meaning of the XML
>>>>
>>>> I agree with your second statement. However, I also believe
>>>> that our
>>>> aim is to define a standard so that different
>>>> implementations can work
>>>> together. If implementation A uses SOAP based webservices and
>>>> implementation B uses RESTful webservices they do not
>>>> operate. So I
>>>> think it should be specified, preferably in a different (short)
>>>> document. Otherwise you may just as well argue that "you do
>>>> not need
>>>> to specify the XML syntax, just because that's what the first
>>>> generation uses"
>>>>
>>>> Regards,
>>>> Freek
More information about the Nmc-wg
mailing list