Re: How do you do this?



On 23 Jun 2006 11:29:39 -0700, "Jeff Fox" <fox@xxxxxxxxxxxxxxxxxxx>
wrote:

My question is how would you deal with problem of
sending a program to a node that is not already on that
node and getting it to execute. As an example lets take a very
trivial Forth code example:

: DEMO ( n1 n2 -- n1 n2+n1 n2+n1 )
over + dup ;

Compile that code and produce a binary image
that is appropriate for the target Forth node that gets
it as a message. Then encapsulate it in some
way to make it suitable for transmission to
the other node, send it and have the other end
run it.

MPE did three projects about sending programs/fragments across
heterogeneous (different CPUs/implementations) networks - PROCIC,
SENDIT and PRACTICAL. The SENDIT project formed the basis of the
Europay Open Terminal Architecture (OTA) project. They all used
tokenised binary stack machine systems.

The initial assumption was that the code transfers would be small
(<1kb). In practice, this was a false assumption. In the OTA
project binaries of up to 32kb appeared, and the token set
design was optimised for code density.

In retrospect, binary transfer was a mistake. Use the Forth, Luke!
Just send source code, compile it, execute it, throw it away. You
get the best performance and lowest overhead. If comms bandwidth
is an issue, compress the source code. Our *measurements* indicate
that compressed source is no more than approximately 20..25% larger
than tokenised binary. If your local compiler is slow, improve it.

At least for a heterogeneous network, sending Forth source
appears to me to be the simplest solution.

Others have made similar comments about handling HTML and XML
interfaces.

If you want more detail, define your environment more closely:
CPU performance
comms bandwidth
comms structure
response time
installation requirements

For example, if you want to talk to a corporate network with
lots of security, TCP port 80 is likely to be the simplest to
make contact with, and have the lowest installation cost. The
trade off is likely to be software complexity.

It's a big topic, and there are plenty of conferences about it.

Stephen


--
Stephen Pelc, stephenXXX@xxxxxxxxxxxx
MicroProcessor Engineering Ltd - More Real, Less Time
133 Hill Lane, Southampton SO15 5AF, England
tel: +44 (0)23 8063 1441, fax: +44 (0)23 8033 9691
web: http://www.mpeforth.com - free VFX Forth downloads
.



Relevant Pages

  • Help migrating from Linux to XPe
    ... The clients are planned to have no storage so I would continue booting ... and run applications off a network share or put it in the image? ... I do need the basic features that having separate network ... Proprietary applications for which I don't have source code ...
    (microsoft.public.windowsxp.embedded)
  • Re: If you use Kazaa (P2P) do yourself a favor and read this......
    ... |> In any modern programming language, source code can be written ... Perhaps execute 'mentally', yes, but most people ... fixed finite instruction set, can be used to write ...
    (comp.security.misc)
  • Re: If you use Kazaa (P2P) do yourself a favor and read this......
    ... |> In any modern programming language, source code can be written ... Perhaps execute 'mentally', yes, but most people ... fixed finite instruction set, can be used to write ...
    (comp.security.misc)
  • Re: help wanted
    ... I see that Henk Salemink has sent you source code. ... Being somewhat of a computer antiquarian, I just uploaded PLUM to my ... modern Dorado 180 and tried to execute it. ... Unisys 1100/2200 systems are ...
    (comp.sys.unisys)
  • Re: help wanted
    ... I see that Henk Salemink has sent you source code. ... Being somewhat of a computer antiquarian, I just uploaded PLUM to my ... modern Dorado 180 and tried to execute it. ...
    (comp.sys.unisys)

Loading