Hi, I've been entertaining myself by putting together an IPC interface to the GRASP Python prototype. (As of today, it seems to be working, but the code is not fit to publish yet.)
Why? Because this is what we need for multiple independent ASAs to call a single instance of the GRASP core. How? To make the solution portable (not efficient, because this is a prototype), I simply use TCP as the IPC mechanism. This would also make it rather trivial to turn the thing into a genuine RPC. Like any RPC solution, I needed to serialise the calls and the returns. How? I decided to use CBOR. The details get a bit ugly, but it works. (Primitive ASCII art below.) The advantage of using CBOR is that although so far everything is in Python, the serialised calls and returns are "just" CBOR/TCP. So a smart C programmer, using one of the CBOR libraries, could put together an API in C that could then issue GRASP API calls via the IPC mechanism. I am not a smart C programmer. So here's the challenge: who would like to work on this? Before the hackathon, or during the hackathon. If someone puts their hand up, I would have to do a bit more work to document the ugly details. So please put your hand up soon. And the result should be open source, of course. (In theory, the approach would apply to any language that has CBOR support, but C seems the obvious lowest common denominator. Or maybe C++?) Who wants in? Brian ASA <=> Local <=> IPC <=> CBOR/TCP <=> IPC <=> Main <=> GRASP API client server API core _______________________________________________ Anima mailing list Anima@ietf.org https://www.ietf.org/mailman/listinfo/anima