From: Massimiliano Mirra Date: 2001-12-14T09:11:25+09:00 Subject: [ruby-talk:28472] Re: Design question: remote UIs and distributed objects On Fri, Dec 14, 2001 at 04:46:36AM +0900, Craig Atkinson wrote: > I don't have a really good answer to this but I can provide a link. > > I've been thinking about something similar and I found this url: > SUDS Soap for UI Development - http://www.clipcode.com/content/suds.htm > > It isn't all that useful as it is essentially just a discussion of what they > intended to do last year but I can find nothing else about the project. They > want to define an almost API for defining a user interface so programs such > as MS Word, Graphics editing, etc could be implemented in a browser. They > key is that it is a hosted application and uses SOAP to actually do > anything. > > > I think the idea has tonnes of merit and I've been thinking lately about how > best to implement something like they describe. Creating an XML DTD to > describe how a program looks and what a program does might be possible. Then > you need a way for the browser to recognize what to create. I'd rather make > it as generalized as possible so that you don't need to do heavy development > and have binary downloads for each hosted application you want. I haven't > really gotten anywhere yet so if anybody has any suggestions ... > > Craig Atkinson. Thank you for providing the link, Craig. I have read the page and it is interesting stuff indeed, though I'm after something different. SUDS is providing the remote application with an unrendered user interface. The application sends the interface description over the net to web browsers, where it is rendered. On the other hand, I am researching a client/server architecture where the server is a drawing engine and the client a controller/user interface. The engine's only task is to manage drawing spaces, and entities and transformations inside them, and knows nothing about user interfaces. Clients connect to it over the net and in turn know nothing about the internals of the engine, except an interface to some of its objects, and get data via remote procedure calls. Basically nothing new here (looks like an X server and client, or with a bit of stretch, the kernel and the shell), but I'd like to do it all in a platform- and language-independent way, and possibly without developing a whole communication protocol ex novo. Right now I am trying to write a very simple implementation of tuple spaces where tuples are marshalled to a bare bones xml format before being put or after having been got. This should be enough to grant language independence, as small marshal modules are all that should be written to support new languages. I am not sure whether the bigger amount of data to transfer (13.24352 instead of 1,3.24252) would be overkill for such an application, though. It's also a mix of totally new fields for me, so I'm likely to hit a lot of walls before finding a door. Massimiliano