Hi -
From: "Tom Yu" <tlyu(_at_)MIT(_dot_)EDU>
To: "Sam Hartman" <hartmans-ietf(_at_)mit(_dot_)edu>
Cc: <iab(_at_)ietf(_dot_)org>; <ietf(_at_)ietf(_dot_)org>
Sent: Wednesday, March 30, 2011 2:40 PM
Subject: Re: IETF and APIs
Personal observation: "API" is a subclass of "interface". "Network
protocol" is a subclass of "interface". Interfaces (in the general
case) are valuable things to standardize. An abstract interface
("abstract API"?) that gives guidance to implementors above and beyond
the bare specification of the network protocol is useful for achieving
conceptual alignment.
Do people agree?
Yes and no. The experience with SNMPv3's ASIs (Abstract Service
Interfaces) might be instructive.
(1) because implementations of the protocol (or something very
similar to it) already existed, requiring conformance to the
ASIs (beyond the externally-visible behaviour they described)
found no support.
(2) Despite (1), there are *still* people who think the ASIs will be
reflected
in implementations' APIs. (They generally aren't.)
(3) Even though there was already considerable experience with the
implementation of the protocol when these Abstract Service
Interfaces were defined, later work (especially in the isms WG)
found that these definitions required some serious tweaks to
handle cases that people were already thinking about when the
interfaces were defined in the first place.
(4) Some of the lengthy WG discussions and awkward hacks
resulting from (3) in subsequent RFCs were only an artifact of
the specification technique, and were not necessitated by
actual protocol or implementation constraints, in my opinion.
Still, I think it can be very helpful to specify a C library API for things
that are
actually intended to be used like libraries, but I also know that it can
be surprisingly difficult to get them "right" for all environments.
Randy
_______________________________________________
Ietf mailing list
Ietf(_at_)ietf(_dot_)org
https://www.ietf.org/mailman/listinfo/ietf