Hi Thorben,
Thank you for sharing your TAPS implementation, your feedback, and your
questions with us!
Please do feel free to open more issues on our Github regarding our
drafts, especially if you have feedback on draft-ietf-taps-impl based on
your implementation experience.
With my chair hat on, I'm wondering if you'd be interesting in joining
our next virtual interim meeting, planned for Wednesday January 26th at
16:00 UTC, and briefly present your implementation and most important
questions/challenges?
With my co-author hat on for the rest of this email, I found your "Notes
on Implementation" [0] an interesting read, and I have some initial
thoughts:
On the first section, "Asynchronous, Event-driven Interaction
Patterns": The TAPS documents strive to be independent of any
language-specific considerations and I don't think that our use of
"Event" as a basic term in the Interface draft implies the use of an
actual Event system when mapping the abstract API into a concrete
programming language.
Appendix A. Implementation Mapping in the Interface document [1], says
"Actions could be implemented as functions or method calls, for
instance, and Events could be implemented via event queues, handler
functions or classes, communicating sequential processes, or other
asynchronous calling conventions" - I am wondering if this means that
Events can also be implemented using a construct such as the one
described in your notes.
Perhaps it does, but I'm wondering if more needs to be said in the document.
To the "Property/Parameter Access and Type Safety" section, I am
wondering if this is covered by Section 5 in the Interface document,
e.g., the last bullet point: "Implementations may use other
representations for Transport Property Names, e.g., by providing
constants, but should provide a straight-forward mapping between their
representation and the property names specified here." - Wouldn't this
cover struct fields, too?
Regarding the last section, "Pre-Establishment", it sounds to me like
this is an okay way to handle it. In my mind, "should have a list
available" means there could simply be a piece of documentation listing
the protocols which can be registered. Does "registering" each protocol
with the core system mean that there can be different implementations
for a given protocol, and/or that these can be dynamically added? If so,
this could be related to the "TAPS Transport Discovery" idea [2] which
Martin Duke brought to us last year. It is not clear yet whether the WG
will work on such a discovery mechanism, but I'm still curious if the
concepts are related.
Of course, the above are just one co-author's thoughts, and I'm happy
for the others to chime in as well.
Best,
Reese (formerly known as Theresa)
[0]
https://github.com/netsys-lab/panapi/blob/a982200736ffe81c1f1be750c8df27845442045d/doc/Implementation.md
[1]
https://www.ietf.org/archive/id/draft-ietf-taps-interface-14.html#name-implementation-mapping
[2] https://datatracker.ietf.org/doc/draft-duke-taps-transport-discovery/
_______________________________________________
Taps mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/taps