next up previous
Next: 8 Interaction with Java Up: 7 Running remote code Previous: 7.3 Towards a Web

7.4 An overview of some remote operations

The following operations

host(Other_machine)=>rload(File).

host(Other_machine)=>code(File)=>TopGoal.

host(Other_machine)=>fetch_remote_operators.

allow fetching remote files/operator definitions rload/1, fetch_remote_operators/0 or on-demand fetching of a predicate at a time from host/code file during execution of TopGoal.

host(Other_machine)=>remote_run(RemoteGoal).

host(Other_machine)=>remote_run(Answer,RemoteGoal).

allow remote predicate calls without/with returned answer on the calling site.

host(Other_machine)=>rsh(ShellCommand,CharListAnswer).

host(Other_machine)=>rsh(ShellCommand).

allows using BinProlog to remotely execute shell commands on a remote machine and collect/print the answers at the calling site. In particular it allows what Microsoft never could/wanted to build in W95 or NT: remote shell commands. In particular, by starting a BinProlog server on a PC with W95/NT it is possible to do meaningful work on it remotely from another W95/NT PC or Unix box. Note that on machines not supporting pipes rsh is approximated with rexec which redirects execution to a file, gets it back and shows it to the user. Note also that

?-run_unrestricted_server.
should be used on the remote computer to allow these commands.



next up previous
Next: 8 Interaction with Java Up: 7 Running remote code Previous: 7.3 Towards a Web



Paul Tarau
Thu Apr 3 10:26:39 AST 1997