ORG, ROI, pem - Specification 03/16/93

Peter Mueller mueller@sc.ZIB-Berlin.DE
Thu, 18 Mar 93 13:52:18 +0100


> From winikoff@cs.mu.OZ.AU Thu Mar 18 13:32:37 1993
> Subject: Re: ORG, ROI, pem - Specification 03/16/93
> To: moose-programmers@sfu.ca (Moose Project)
> Date: Thu, 18 Mar 93 22:29:01 EST
> From: Michael David WINIKOFF <winikoff@mulga.cs.mu.OZ.AU>
> X-Mailer: ELM [version 2.3 PL0]
> Content-Length: 1255
> 
> >  
> >      1. general 
> >      2. object location transparent 
> >      3. very efficient regarding communication costs 
> >      4. user-friendly 
> 
> Huh? My definition of user-friendly says that this is irrelevant to a system
> call ... 
> 
> >    Mechanisms are needed which provide a mapping function from an object's 
> > description to its actual location. These mechanisms are provided by a 
> 
> We need to specify the description format.
> Strings are the obvious simple choice.
> 
> > 2.4 User-friendliness 
> > --------------------- 
> >  
> >    Users and their applications should not be aware of ROI. If an application 
> > needs to invoke methods of a remote server it should simply instance an 
> > appropriate client object. All necessary ROI stuff should be done by creation 
> > of the client, which then provides a transparent view to the servers' 
> > methods. 
> 
> Please keep client-server and ROI seperate.
> ROI is a system call (service?) we are desigining which can be used to 
> implement a client server relationship.

I've mentioned that I use the terms client and server, because their functionality
is well known. When an object wants to invoke a remote object's methods, the first one
requests a service from the latter. Maybe I should have used the terms invoker and
invokee ...

AND: ROI is *no* system call. It's a conceptual model, which allows an invocation between
two remote objects as if they were local. 

> 
> We shouldn't constrain the user of ROI to a client server setup.

Ok, I suppose you get stuck, because I've used the terms within my examples, too. If you want
to provide mechanisms like callbacks in RPC you can do it in such a way:

	LOCALOBJECT.doSomethingRemote(myself);

myself is then the reference to the invoking object. Now the invokee can invoke objects from
the invoker (in the remote object):

	REMOTEOBJECT::doSomethingRemote(LOCALOBJECT &caller) {
		caller.doSomethingElse();    // This can be seen as a call back ...
	}

So, there is the possibility to communicate in both directions. ROI will give no constraints
about the communication style!	

Sorry, that I've used these two terms which leads to misunderstanding. I will keep the next 
specification cleaner.

Cheers,

Peter

P.S.: Can someone please explain what `IMHO' stands for?