Actors, Locality, and Isolation

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
9 messages Options
Reply | Threaded
Open this post in threaded view
|

Actors, Locality, and Isolation

Stefan Marr-2
Hi:

I have the felling, this list is not yet where it was supposed to be
from a content point of view, so, I would like to ask something on-
topic :)

I have done a bit of research in the field of 'Actor' models for
Smalltalk
and would like to ask whether there are other things I should be aware
of.

What follows is a small overview of what I was interested in.

For the experiments I have in mind now, I will probably go with a
model
which is based on E's vats, to me know best from AmbientTalk[1],
except it turns out I missed something exciting.
The main reason to chose this model is, that it provides a notion of
locality
for objects and isolation between actors, which most of the time is
not true
for actor languages/libraries build on top of existing languages (cf.
[4]).


The Actra[3] model is not entirely clear to me, but what I understand
from
that paper is, that they restrict the language to synchronous blocking
message sends between actors - might be inspired by CSP - with
implicit
message receives for actors which are not busy.
They also mention that the have a mechanism to yield from executing a
message
to be able to execute another one. Sounds like coroutines.
Furthermore, they it is said that an actor encapsulates a community of
objects, but I haven't read what that actually implies.

Actalk[2] seems to be a more straight forward Actor model with
asynchronous
message sends. However, it lacks the notions of isolation.

Tweak with its islands[5] looks a lot like E and AmbientTalk.
Islands are like vats container for objects. It provides mechanisms to
send messages between islands in synchronous or asynchronous ways.
An implementation artifact seems to be the fact, that you are actually
able to break the isolation islands are supposed to provide.
The #passByIdentity mechanisms enables the programmer to give away a
direct
reference to an object to another island, for instance to share the
class
objects.
The webpage also mentions IslandVariables which I guess are some kind
of
thread/island-locals, but the semantics is not really explained.



If there other interesting things, Smalltalk related or not, which
provide
the notion of an Actor model, locality, or isolation, I would like to
know
about them. Maybe PGAS-like constructs in some Smalltalk dialect?


Thanks and best regards
Stefan
Reply | Threaded
Open this post in threaded view
|

Re: Actors, Locality, and Isolation

Gilad Bracha-2
Hi Stefan,

The following is relevant. I kind of liked it.

Andrew P. Black, Magnus Carlsson, Mark P. Jones, Richard Kieburtz and Johan Nordlander. Timber: A Programming Language for Real-Time Embedded Systems. OGI School of Science & Engineering, Oregon Health and Sciences University, Technical Report CSE 02-002. April 2002.

On Mon, Mar 8, 2010 at 9:37 AM, Stefan Marr <[hidden email]> wrote:


For the experiments I have in mind now, I will probably go with a
model
which is based on E's vats,

That is my instinct as well. We have an masters student whose starting to work on actors for Newspeak and so we'll be a lot clearer on this in a few months.



--
Cheers, Gilad
Reply | Threaded
Open this post in threaded view
|

Re: Actors, Locality, and Isolation

stephane ducasse-2
In reply to this post by Stefan Marr-2
Stefan

I would be interested to know the results you get.
I was discussing but no time to see the impact of an ambianttalk vat in Pharo
with tom.

Stef

On Mar 8, 2010, at 6:37 PM, Stefan Marr wrote:

> Hi:
>
> I have the felling, this list is not yet where it was supposed to be
> from a content point of view, so, I would like to ask something on-
> topic :)
>
> I have done a bit of research in the field of 'Actor' models for
> Smalltalk
> and would like to ask whether there are other things I should be aware
> of.
>
> What follows is a small overview of what I was interested in.
>
> For the experiments I have in mind now, I will probably go with a
> model
> which is based on E's vats, to me know best from AmbientTalk[1],
> except it turns out I missed something exciting.
> The main reason to chose this model is, that it provides a notion of
> locality
> for objects and isolation between actors, which most of the time is
> not true
> for actor languages/libraries build on top of existing languages (cf.
> [4]).
>
>
> The Actra[3] model is not entirely clear to me, but what I understand
> from
> that paper is, that they restrict the language to synchronous blocking
> message sends between actors - might be inspired by CSP - with
> implicit
> message receives for actors which are not busy.
> They also mention that the have a mechanism to yield from executing a
> message
> to be able to execute another one. Sounds like coroutines.
> Furthermore, they it is said that an actor encapsulates a community of
> objects, but I haven't read what that actually implies.
>
> Actalk[2] seems to be a more straight forward Actor model with
> asynchronous
> message sends. However, it lacks the notions of isolation.
>
> Tweak with its islands[5] looks a lot like E and AmbientTalk.
> Islands are like vats container for objects. It provides mechanisms to
> send messages between islands in synchronous or asynchronous ways.
> An implementation artifact seems to be the fact, that you are actually
> able to break the isolation islands are supposed to provide.
> The #passByIdentity mechanisms enables the programmer to give away a
> direct
> reference to an object to another island, for instance to share the
> class
> objects.
> The webpage also mentions IslandVariables which I guess are some kind
> of
> thread/island-locals, but the semantics is not really explained.
>
>
>
> If there other interesting things, Smalltalk related or not, which
> provide
> the notion of an Actor model, locality, or isolation, I would like to
> know
> about them. Maybe PGAS-like constructs in some Smalltalk dialect?
>
>
> Thanks and best regards
> Stefan

Reply | Threaded
Open this post in threaded view
|

Re: Actors, Locality, and Isolation

Stefan Marr-2
On Mar 8, 6:58 pm, stephane ducasse <[hidden email]>
wrote:
> Stefan
>
> I would be interested to know the results you get.
> I was discussing but no time to see the impact of an ambianttalk vat in Pharo
> with tom.
Well, I am mostly interested in the implications for VMs not the
programming model itself.

But who wants such a thing in Pharo anyway, if you could have it in
JavaScript ;)
http://ssjs.pbworks.com/Communicating-Event-Loops


Best regards
Stefan
Reply | Threaded
Open this post in threaded view
|

Re: Actors, Locality, and Isolation

Stefan Marr-2
In reply to this post by Gilad Bracha-2
Hi Gilad:

On Mar 8, 6:50 pm, Gilad Bracha <[hidden email]> wrote:
> Hi Stefan,
>
> The following is relevant. I kind of liked it.
>
> Andrew P. Black, Magnus Carlsson, Mark P. Jones, Richard Kieburtz and Johan
> Nordlander. Timber: A Programming Language for Real-Time Embedded Systems.
> OGI School of Science & Engineering, Oregon Health and Sciences University,
> Technical Report CSE 02-002. April 2002.
Thanks for the hint. I skimmed over the reactive objects section.
Looks a bit like Erlang with some additional sugar like synchronous
message sends, and a 'reactiveness' property. (just from a conceptual
view)
Or have I missed something important?

> That is my instinct as well. We have an masters student whose starting to
> work on actors for Newspeak and so we'll be a lot clearer on this in a few
> months.
Nice, looking forward to read about it on your blog :)

Thanks
Stefan


>
> --
> Cheers, Gilad
Reply | Threaded
Open this post in threaded view
|

Re: Actors, Locality, and Isolation

Gilad Bracha-2


On Mon, Mar 8, 2010 at 12:43 PM, Stefan Marr <[hidden email]> wrote:
Hi Gilad:

On Mar 8, 6:50 pm, Gilad Bracha <[hidden email]> wrote:
> Hi Stefan,
>
> The following is relevant. I kind of liked it.
>
> Andrew P. Black, Magnus Carlsson, Mark P. Jones, Richard Kieburtz and Johan
> Nordlander. Timber: A Programming Language for Real-Time Embedded Systems.
> OGI School of Science & Engineering, Oregon Health and Sciences University,
> Technical Report CSE 02-002. April 2002.
Thanks for the hint. I skimmed over the reactive objects section.
Looks a bit like Erlang with some additional sugar like synchronous
message sends, and a 'reactiveness' property. (just from a conceptual
view)
Or have I missed something important?

I think you might have. As I recall, there is no "receive"  operation, unlike Erlang, wheer you can pattern match for specific messages you want to process. This means no deadlock. It can also be inconvenient at times. This has some similarities to the E notion of turns.

Now, to be fair, it's been a while since I read this paper, so you'll have to form your own conclusions.

> That is my instinct as well. We have an masters student whose starting to
> work on actors for Newspeak and so we'll be a lot clearer on this in a few
> months.
Nice, looking forward to read about it on your blog :)


:-) It'll be a wile, I think. 


--
Cheers, Gilad
Reply | Threaded
Open this post in threaded view
|

Re: Actors, Locality, and Isolation

Tony Garnock-Jones-4
In reply to this post by Stefan Marr-2
Hi Stefan,

It feels a little strange to dig out such a thoroughly old thread, but I've had this in my inbox for a couple of years, waiting until I had something to report :-)

On 8 March 2010 12:37, Stefan Marr <[hidden email]> wrote:
If there other interesting things, Smalltalk related or not, which provide the notion of an Actor model, locality, or isolation, I would like to know about them. Maybe PGAS-like constructs in some Smalltalk dialect?

We've just had a paper accepted to ESOP 2014 on exactly this topic: "The Network as a Language Construct", http://www.ccs.neu.edu/home/tonyg/esop2014/

We've been working on a system of layered *networks* containing actors. (Each network is itself an actor in some containing network.) Networks scope interactions between Actors, which communicate with each other using pub/sub messaging. The pub/sub subscriptions have a second use as a mechanism for signalling the presence or absence of possible conversational partners. It works out a little like Erlang's exit signals.

The abstract of the paper:
     "The actor model inspires several important programming languages. In this model, communicating concurrent actors collaborate to produce a result. A pure actor language tends to turn systems into an organization-free collection of processes, however, even though most applications call for layered and tiered architectures. To address this lack of an organizational principle, programmers invent design patterns.
    "This paper investigates integrating some of these basic patterns via a programming language construct. Specifically, it extends a calculus of communicating actors with a “network” construct so that actors can conduct scoped, tiered conversations. The paper then sketches how to articulate design ideas in the calculus, how to implement it, and how such an implementation shapes application programming."

Cheers,
  Tony
--
Tony Garnock-Jones
[hidden email]
http://www.ccs.neu.edu/home/tonyg/

--
You received this message because you are subscribed to the Google Groups "Smalltalk Research" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/groups/opt_out.
Reply | Threaded
Open this post in threaded view
|

Re: Actors, Locality, and Isolation

Stefan Marr-5
Hi Tony:



On Thursday, January 30, 2014 9:05:56 PM UTC+1, Tony Garnock-Jones wrote:
We've just had a paper accepted to ESOP 2014 on exactly this topic: "The Network as a Language Construct", <a href="http://www.ccs.neu.edu/home/tonyg/esop2014/" target="_blank" onmousedown="this.href='http://www.google.com/url?q\75http%3A%2F%2Fwww.ccs.neu.edu%2Fhome%2Ftonyg%2Fesop2014%2F\46sa\75D\46sntz\0751\46usg\75AFQjCNGbjbuFd-9UT1lOquEbBgZ8ljyQ6A';return true;" onclick="this.href='http://www.google.com/url?q\75http%3A%2F%2Fwww.ccs.neu.edu%2Fhome%2Ftonyg%2Fesop2014%2F\46sa\75D\46sntz\0751\46usg\75AFQjCNGbjbuFd-9UT1lOquEbBgZ8ljyQ6A';return true;">http://www.ccs.neu.edu/home/tonyg/esop2014/

We've been working on a system of layered *networks* containing actors. (Each network is itself an actor in some containing network.) Networks scope interactions between Actors, which communicate with each other using pub/sub messaging. The pub/sub subscriptions have a second use as a mechanism for signalling the presence or absence of possible conversational partners. It works out a little like Erlang's exit signals.

The abstract of the paper:
     "The actor model inspires several important programming languages. In this model, communicating concurrent actors collaborate to produce a result. A pure actor language tends to turn systems into an organization-free collection of processes, however, even though most applications call for layered and tiered architectures. To address this lack of an organizational principle, programmers invent design patterns.
    "This paper investigates integrating some of these basic patterns via a programming language construct. Specifically, it extends a calculus of communicating actors with a “network” construct so that actors can conduct scoped, tiered conversations. The paper then sketches how to articulate design ideas in the calculus, how to implement it, and how such an implementation shapes application programming."

Thanks, looks interesting. Will have a look at it.

Best regards
Stefan 

--
You received this message because you are subscribed to the Google Groups "Smalltalk Research" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/groups/opt_out.
Reply | Threaded
Open this post in threaded view
|

Re: Actors, Locality, and Isolation

Jecel Assumpcao Jr
In reply to this post by Tony Garnock-Jones-4
Tony,

very nice! This reminded me of the Agora project that Marcio Quintaes Marchini did at the Federal University of Santa Catarina (Brazil) in the early 1990s (not to be confused with a language called Agora http://soft.vub.ac.be/research/agora/ from the same era). Actors could join multiple Agoras (which is something like "marketplace" in Greek) to have structured conversations and all this was implemented on top of Marcio's LindaTalk.

There was also the paper "Multiple tuple spaces in Linda" by David Gelernter in PARLE '89 Parallel Architectures and Languages Europe - Lecture Notes in Computer Science Volume 366, 1989, pp 20-27 which, if I remember correctly since I can't access a copy, has some of the same ideas.

-- Jecel

--
You received this message because you are subscribed to the Google Groups "Smalltalk Research" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/groups/opt_out.