[Date Prev] [Date Next] [Thread Prev] [Thread Next] Date Index Thread Index Search archive:
Date:Mon Dec 19 00:07:35 2001 
Subject:Re: Aglets 
From:Aaron Sloman 
Volume-ID:1011219.08 

Jonathan.Cunningham@tesco.net (Jonathan L Cunningham) writes:

> Date: Wed, 12 Dec 2001 23:52:23 GMT
>
> I've come across a new word today: aglet.
>
> It seems to mean autonomous agent, and seems to be built in to the
> latest versions of Java (which I haven't seen).
>
> It's not striclty pop-related, but I know that Poplog is being
> used for agent research,

For example see
    http://www.cs.bham.ac.uk/~axs/cogaff/simagent.html

and talk 2 in this collection
    http://www.cs.bham.ac.uk/~axs/misc/talks/

(Also paper by Brian Logan and me, and paper by Jeremy Baxter and
Richard Hepplewhite, both in CACM March 1999)

> so I think it would be of interest to
> this newsgroup if anyone can tell us more about aglets.

Well I tried giving the word to google, and this is what I learnt:

G o o g l e's cache of http://www.trl.ibm.co.jp/aglets/JAAPI-whitepaper.html
What are Aglets?

   Aglets are Java objects that can move from one host on the Internet
   to another. That is, an aglet that executes on one host can suddenly
   halt execution, dispatch to a remote host, and resume execution
   there. When the aglet moves, it brings along its program code as
   well as its state (data). A build-in security mechanism makes it
   safe to host untrusted aglets.

and later:

   The aglet represents the next leap forward in the evolution of
   executable content on the Internet, introducing program code that
   can be transported along with state information. Aglets are Java
   objects that can move from one host on the Internet to another. That
   is, an aglet that executes on one host can suddenly halt execution,
   dispatch to a remote host, and resume execution there. When the
   aglet moves, it brings along its program code as well as its data.
   Conceptually, the aglet is a mobile agent because it supports the
   ideas of autonomous execution and dynamic routing on its itinerary.

I had never heard of them. Must be something wrong with my reading.

So in Pop-11, an aglet might be the string:

    'define greet(sender,recipient); [greetings from ^sender to ^recipient] => \
     enddefine; greet("aaron", "pop_users");'

which could easily be sent from one pop11 process to another, to be
compiled and run in the second. Obviously there's a risk in allowing
this sort of thing.

To check that this works, take the above string and and give it to
instring, to create a character repeater from the string, and give
the result to pop11_compile, e.g. mark and compile this:

    'define greet(sender,recipient); [greetings from ^sender to ^recipient] => \
     enddefine; greet("aaron", "pop_users");'.stringin.pop11_compile;

Of course it would be easy to provide abbreviated versions to reduce
transmission load, including, at one extreme, letting pop feed a
long string through gzip at one end and through gunzip at the other
end before execution.

Aaron
====
Aaron Sloman, ( http://www.cs.bham.ac.uk/~axs/ )
School of Computer Science, The University of Birmingham, B15 2TT, UK
EMAIL A.Sloman AT cs.bham.ac.uk   (ReadATas@please !)
PAPERS: http://www.cs.bham.ac.uk/research/cogaff/ (And free book on Philosophy of AI)
FREE TOOLS: http://www.cs.bham.ac.uk/research/poplog/freepoplog.html