[Coldstuff] ColdRPC draft
Bruce Mitchener
bruce@cubik.org
Mon, 07 Jan 2002 23:28:18 -0700
xmath wrote:
> you asked for docs on the rpc protocol I'm designing..
> here is the first draft:
>
> http://www.nubz.org/coldrpc.txt
Some comments ... I think that overall, you did a good job with this.
However, some thoughts, pointers, questions, etc for you. :)
BEEP is an IETF standard that does much of the same sort of thing.
Information about it can be found in:
http://agora.cubik.org/wiki/view/Main/BeepProtocol
The author of the BEEP spec also wrote RFC 3117, On the Design of
Application Protocol, which contains a lot of solid wisdom earned over
the years:
ftp://ftp.rfc-editor.org/in-notes/rfc3117.txt
Also, from reading comments in the scrollback on the Cold Dark (but not
as closely as I'd have liked due to lack of time), I saw that you were
aware of MCP, but didn't think it was well suited, despite (to me)
having somewhat similar goals. Could you expand on why MCP isn't well
suited? If what you're doing is looking to create a rich client/server
interface, there's been some really good work done in that area over the
last couple of years. There's still active development as well. I've
spoken with Andrew Wilson (the tkMOO author) about reviving the old
mcp-dev list to cover topics related to some of the packages currently
in use and under development.
A fair number of clients exist and some rich packages already do exist,
including two GUI toolkits. All of the information that I have on hand
is already in Agora:
http://agora.cubik.org/wiki/view/Main/MudClientProtocol
If you haven't looked at TWin, I'd recommend that you do, it really is
quite cool:
http://agora.cubik.org/wiki/view/Main/TWinClient
One final comment on that note is that by using a package-based system
defined by messages that are passed back and forth, you could not just
harness the existing efforts, but end up with something that is portable
between mud servers and more broadly useful, rather than only working
with ColdCore.
(Actually, there is one MCP-supporting client that I know about that
isn't on those web pages. It hasn't been released yet, but should be
open source and is written in ObjC for Cocoa. It really is quite nice.)
(If there are other MUD client authors on this list, I'd encourage you
to support MCP/2.1! :) )
(There's also a bunch of other mud networking type protocols or other
mud client/server things laying about on Agora on:
http://agora.cubik.org/wiki/view/Main/NetworkingProtocols
)
> PS I'm CCing this to the coldstuff list because other people may be
> interested too, feedback welcome :)
Definitely. This is something that interests me a lot and is something
that I consult with others on during my spare time. :)
Btw, in the webserver, there was support at one point for invoking
arbitrary methods via the web interface. This relied upon $dmi_data to
specify what methods could be called as well as a bunch of metadata
about the args that a method takes, how to convert them from strings to
the right datatypes and so on. I'm not sure how much of that has
survived in the last 3-4 years of it is still in use at all. That was
intended to let some RPC-like stuff happen by way of piggy-packing on
HTTP as a transport.
Anyway, that's just my set of thoughts at the moment. I'd love to
continue to discuss this.
Regards,
- Bruce