client-server

Tyson Dowd trd@cs.mu.OZ.AU
Thu, 21 Dec 2000 20:20:53 +1100


On 20-Dec-2000, linas@linas.org <linas@linas.org> wrote:
> 
> I beleive the above architecture renders the whole previous
> discussion moot. I also think its a very, very exciting thing to do.
> It solves a number of technical issues, such as multi-user, that
> have been plaguing us.  Next, it give us world-class financial ASP
> capabilites.   Finally, I think this is what microsoft is thinking
> about when it talks .net  and  this alone makes it important for us
> to do this more/better/faster.


I think this approach is very interesting...  I've been looking at the
way these kinds of technologies have been changing lately and I've
noticed three things I think are really cool:

1. XML/SOAP (what Microsoft is calling "web services") to provide
distributed RPC like services.  This does much the same job as CORBA,
but uses technologies that can be re-used elsewhere easily, and so have
a low maintenance cost and a produce a lot of synergy (HTTP and XML).
This can also take out a *lot* of the nastiness of cgi-bin, since you
can just often just request information you want as if you were making a
normal function call (well, ok, perhaps a bit more trouble).

2. XML/HTML with special embedded <objects> that rely on a particular
"plugin" to provide rich functionality.  This is a bit like how Flash
animations or things like that work.
The neat new thing about 2 is that it is increasingly being used in an
inside-out manner, with the web browser being embedded inside an
application, and the application provides the semantics of the <object>
tags.  Of course multiple "applications" can interact to provide
semantics (e.g. gnucash register and guppi).  Even if you aren't using
any external content, the XML/HTML is being used to control the GUI
rendering.

3. Server-side "dumbing-down" of 2 to provide an acceptable interface
for dumb clients.  For example the GUI widgets in Microsoft's
.NET WebForms libraries can be:
(a) downloaded as bytecode to run on .NET runtime, user value changes
are sent to the server using XML/SOAP callbacks
(b) converted to a known set supported by IE 5.5, which turns them into
neat graphical widgets using lots of JScript, sending results back using
some sort of hackery I never really investigated
(c) turned into standard HTML which Netscape can display, returning
results with a standard form.
Since 2 was just XML anyway, this is really just a transformation of XML
-> XML or HTML.  Note that when you do this, you usually have to make a
translation of any XML/SOAP calls you might want to make into cgi-bin
calls.
E.g. add links to the account names, which will generate a new page that
gives a summary of that account.  In a rich client you might retrieve
the summary yourself using SOAP/XML, and not even worry about loading
the rest of the page.

Anyway, I'm sure some of you have seen this stuff already, but I see a
lot of potential in using this kind of technology.
And yes, it is almost exactly what Microsoft mean when they talk about
.NET (although they also throw in a virtual machine for good measure).

XML/HTML is used to unify presentation.
Applications are extensions of the unified presentation technologies.

XML/HTTP/SOAP is used to unify distributed method calls and data transfer.
Services are extensions of data transfer technologies -- providing
content is one kind of service, but there are others (authentication,
backup, synchronization, etc).

-- 
       Tyson Dowd           # 
                            #  Surreal humour isn't everyone's cup of fur.
     trd@cs.mu.oz.au        # 
http://www.cs.mu.oz.au/~trd #