vrs-development
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]