From mboxrd@z Thu Jan 1 00:00:00 1970 MIME-Version: 1.0 In-Reply-To: References: <20090718074338.1A91D5B18@mail.bitblocks.com> Date: Sat, 18 Jul 2009 13:22:28 -0400 Message-ID: <3aaafc130907181022w12dcd591td027438a504448a8@mail.gmail.com> From: "J.R. Mauro" To: Fans of the OS Plan 9 from Bell Labs <9fans@9fans.net> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Subject: Re: [9fans] channels across machines Topicbox-Message-UUID: 25dce616-ead5-11e9-9d60-3106f5b1d025 On Sat, Jul 18, 2009 at 1:20 PM, Skip Tavakkolian<9nut@9netics.com> wrote: >> Or is there a better idea? =A0This certainly seems preferable >> to RPC or plain byte pipes for communicating structured >> values. > > i have some incomplete ideas that are tangentially related to this -- > more for handling interfaces. > > it seems one could write a compiler that translates an interface > definition (e.g. =A0IDL) into a server and a client library; 9p(2) and > ioproc(2) can be readily used in the generated code to do the tricky > stuff. =A0the main part then becomes how to translate the calls across. > > conventionally the server for an interface with an ID of X (e.g. > GUID) is posted to /srv/X. > > for a given method bar in interface foo, writing to /n/foo/bar ( > /srv/X mounted on /n/foo) would invoke foo:bar wherever it is. > obviously when the reader/writer are generated, the types and sizes of > parameters are known. Reminds me of the http interface to venti, which has things like /set/variable and /plot/variable