RPC update

Magnus and I met toward the end of last week on RPC and have some
thoughts and early inclinations to share. Magnus, do please add
anything I missed or otherwise comes to mind.

Minutes from March virtual f2f on RPC, slides linked from it

https://www.w3.org/2020/03/26-auto-minutes#item05

As discussed RPC API spec likely to reside at W3C and service
catalog of callable procedures could be at GENIVI similar to how VISS
and VSS are split. I would like to engage the broader W3C community
tech companies who have departments interested in connected vehicles
contributing toward a service catalog as well.

We have the start of materials for a spec from JLR in their public
github repo with some related prototype code and other materials in the
repo. We should discuss on an upcoming call reaching internally within
the other OEM and suppliers in the group for a second (or third if I'm
one) editor.

https://github.com/PDXostc/viss-rpc

The vehicle RPC spec should intend to be compatible with VISS and Gen2.
Either VISS/Gen2 should still be the preferred way to confirm change in
signals or check progress (eg window lowering) via signal subscription
after a procedure call.

In dstc sample code, Magnus was using callbacks. In the browser world
and W3C promises are universally preferred to callbacks as non-
blocking, cleaner code especially in nested call situations. This may
not make as much sense in-vehicle if we're dealing mostly with short,
atomic calls compared to wanting several things to render quickly in a
browser while processes are still running. We should keep it simple,
see how widely callback and promises are implemented in RPC library
implementations and delve deeper into what is needed before deciding. 

We should avoid recreating RPC which has had so many variations over
the years and find one widely deployed and suitable for our needs,
avoiding some of the crufty vintage ones such as DCOM and CORBA.

https://en.wikipedia.org/wiki/List_of_RPC_implementations

JSON-RPC and JSON-WSP are particularly interesting in the sense we're
already using JSON in VISS and Gen2. Consistency in messaging would be
beneficial. We're interested in hearing experiences people have had
with various RPC implementations and inclination towards using them
here.

https://en.wikipedia.org/wiki/JSON-RPC

-- 
Ted Guild <ted@w3.org>
W3C Automotive Lead
https://www.w3.org/auto

Received on Monday, 15 June 2020 18:58:44 UTC