[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Vrs-development] GW terminology: "server", "client"
From: |
Chris Smith |
Subject: |
Re: [Vrs-development] GW terminology: "server", "client" |
Date: |
Wed, 31 Jul 2002 11:23:10 +0100 |
On Wednesday 31 July 2002 05:46, you wrote:
> On Tuesday 30 July 2002 13:03, Chris Smith wrote:
> ...
>
> > A GWServer is an executable that contains GWServices (exported
> > functions that oher goldwater 'agents' may call). It is these
> > GWServer executables that goldwater boots.
> >
> > A client (no GW prefix!) is anything that calls a GWService.
>
> ...
>
> Thanks Chris. It all makes sense now; it really is a client-server
> setup, not just a p2p message-passing setup.
It _is_ a p2p architecture, but you can have agents that are not a 'peer' but
may communicate with a peer, so from their point of view it is client-server.
>From the server point of view it's peer-2-peer.
> > Summary:
> > --------
> > GWServer - A bootable execuable that provides GWService(s)
> > GWService - A function that does a unit of work
> > GWClient - An executable that can call, but not provid GWService(s)
> > client - anything currently calling a GWService
>
> I'm a bit fuzzy here on how we distinguish a GWClient from a "client".
> Is it that a GWClient is a static description (ie, a description
> which applies and always applies to a given program by virtue of its
> code containing calls to GWServices)....
I think you've got it spot on.
To make sure other readers are clear, let me add that '...by virtue of its
code containing calls to GWServices...' implies that a GWServer may also be a
GWClient. This is Not True.
A GWClient calls GWServices, it does not and cannot provide GWServices.
A GWServer provides GWServices, it may also call other GWServices.
> ..... while a "client" is a dynamic
> role (ie, a role which a process takes on during run-time when it
> calls a GWService)? That would make sense...
In a nut shell.
Without wanting to confuse anyone, I think an example would be appropriate:
A GWClient is always a 'client'
A GWServer is a 'server' when being called by a 'client', and a 'client' when
it calls other GWServices. So you can get a duality of 'role' of GWServers.
Example message flow with percieved 'client/server' states:
GWClient GWServer GWServer GWServer
client -----> server
client -----> server
client -----> server
|
client <--------+
client <----- server
client <----- server
Oh, one extra thing: GWClients are the 'front-end' of a Goldwater
application. You need at least one to 'bootstrap' the application, otherwise
you've just got a bunch of GWServers waiting for something to happen.
Chris
--
Chris Smith
Technical Architect - netFluid Technology Ltd.
"Internet Technologies, Distributed Systems and Tuxedo Consultancy"
E: address@hidden W: http://www.nfluid.co.uk