Talk:Actor model and process calculi
From Wikipedia, the free encyclopedia
Contents |
[edit] Direct Hyperlinks to Citations
Hey Carl, truly love your work; but any reason why you don't want to link directly to copies of the citations themselves? Or, unless you've got a homepage hosting all of your papers, like Henry Baker does... I'm still looking for a copy of Laws for Communicating Parallel Processes. -- zuzu
[edit] Needs rewrite?
I think that it's valuable to compare and contrast Actors and process calculi, but there seems to be a lot lacking here. For example, the article goes to great lengths to demonstrate how the Actor model can represent channel-based communications, but does not discuss at all how Actor address-based communications can be modelled in process calculi. Nor does it describe what the real difference is between name-based &pi-calculus communications and address-based communications. It is, of course, difficult to really do this justice, since process calculi is a broad term for a variety of computational models, whereas the Actors model is one particular type. It would be useful to have the article structured in terms of similarities (of which there are many), and differences.--Allan McInnes 17:45, 7 December 2005 (UTC)
- Dear Allan,
- Thanks for your suggestions. The article originaly got started because an editor asked for a comparison between Actors and the process calculi. Structuring in terms of similarities and differences is reasonable. Any ideas how we can do this?
- Regards, --Carl Hewitt 22:43, 7 December 2005 (UTC)
We might also consider retitling the article as something like Models of Concurrency, and then reorienting the article itself to a more NPOV, i.e. briefly describe the similarities and differences between the various approaches for modelling concurrency that are out there. As it stands right now, this article looks a lot like “Actors model vs. everything else”.--Allan McInnes 17:49, 7 December 2005 (UTC)
- It seems to me that there is a whole article on Actor model and process calculi in its own right for a variety of reasons not the least of which is the space required to cover the subject matter. This is not to say that we should not also' have an article Models of concurrency that also covers Petri nets, SMPs, Web Services, etc. Regards,--Carl Hewitt 22:48, 7 December 2005 (UTC)
-
- I'm not sure that I see the need to arbitrarily restrict the comparison to that subset of concurrency models known as process calculi, given the wide diversity of formal systems (synchronous, asynchronous, stochastic, mobile, etc.) that fall under that heading. At this point, the majority of the space in the Actor model and process calculi article is taken up by
- a description of how to emulate some process calculus communication styles in the Actor model
- a discussion of specific implementations that, while inspired by process calculi, are not actually process calculi themselves
- an excessively long reference list
- It seems to me that if those were trimmed down there'd be plenty of room for a (brief) discussion of other concurrency models. This is after all supposed to be an encyclopaedia article (i.e. an overview of the subject matter), not a detailed journal-style article.--Allan McInnes 00:14, 8 December 2005 (UTC)
- I'm not sure that I see the need to arbitrarily restrict the comparison to that subset of concurrency models known as process calculi, given the wide diversity of formal systems (synchronous, asynchronous, stochastic, mobile, etc.) that fall under that heading. At this point, the majority of the space in the Actor model and process calculi article is taken up by
-
-
- Being inclusive, in the Wikipedia process articles naturally tend to expand instead of contract. After articles become too large to expand, they then tend to divide into sub-articles. Such is the Wikipedia way of reporting on published knowledge. Eventually this article will probably divide into sub-articles focused on the synchronous, asynchronous, ambient, stochastic, migratory, etc. process calculi. There is not going to be room in this article for comparisons with Petri nets, SMPs, Web Services, etc. Also as the published literature goes up, the references naturally go up. However, as an article divides into sub-articles, the reference lists also naturally divide.
-
-
-
- It would be good to report on the published literature on how communication mechanisms of the Actor model can be defined in the various process calculi.
-
-
-
- It is going to be difficult to distinguish between the process calculi and programming languages based on process calculi.
-
-
-
- Regards, --Carl Hewitt 01:53, 8 December 2005 (UTC)
-
-
-
-
-
- I have no doubt that this article will eventually sub-divide, should it become expanded. I am simply concerned that the focus of this article is, at present “Actor model vs. process calculi”, which seems to be a case of comparing the specific to the general. My suggestion is that the article become a more general comparison of a variety of models, and thus present more of a NPOV.
- Suggestions how to do this are most welcome.--Carl Hewitt 02:47, 8 December 2005 (UTC)
- Regarding reference lists, I think that there is a difference between citing one or two relevant sources, and providing a large bibliography composed mostly of tangentially related material (which just clutters up the page). References that are directly relevant to the article at hand (e.g. Montanari and Talcott) are fine, but I think that the bulk of the reference list could probably be replaced with a couple of pointers to the articles for the Actor model and the specific process calculi involved. That is, of course, just my opinion. I don't particularly want to get into an edit war over this, so if you don't concur then I will leave the reference list as is for now.
- This is a reasonable suggestion.
- However, there are references and comparisons between Actors and the process calculi throughout the literature.
- Also, someday a history section of this article will need to be written and the references will be needed.
- Regards--Carl Hewitt 07:43, 8 December 2005 (UTC)
-
-
-
-
-
-
-
-
- Yes, there are references to Actors and process calculi throughout the literature. That doesn't mean that every possible reference needs to be listed here. This is not a bibliographic database. --Allan McInnes 06:05, 9 December 2005 (UTC)
-
-
-
-
-
-
-
-
-
-
- I am particularly concerned about the history of the relationship between the Actor model and process calculi. So references that are relevant to that historical relationship belong here. In that regard, it is reasonable to look to see if the current list can be trimmed. I agree with you that all the references to Actors and process calculi throughout the literature on concurrency do not belong here. You are correct that there are far too many and it is not appropriate.--Carl Hewitt 06:59, 9 December 2005 (UTC)
-
-
-
-
-
-
-
-
-
-
-
-
- Thank you. I think that leaving references relevent to the historical relationship sounds like a reasonable compromise. --Allan McInnes 08:36, 9 December 2005 (UTC)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- I am glad that we could work this out. If our tools were better, we could probably make progress a lot faster;-) Cheers,--Carl Hewitt 10:19, 9 December 2005 (UTC)
-
-
-
-
-
-
-
-
-
-
-
- I don't see why it is difficult to separate process calculi from the languages they inspire. It's easy enough to separate the λ-calculus from, say, Haskell. There are many concerns relevant to programming languages that are irrelevant to models, and vice versa.
- In some ways it is natural to treat programming languages like Pict and the Join-calculus as variants of process-calculi.--Carl Hewitt 02:47, 8 December 2005 (UTC)
- --Allan McInnes 02:19, 8 December 2005 (UTC)
- Also I would like to thank you for your edits to the article. They have improved it a lot. Regards,--Carl Hewitt 03:03, 8 December 2005 (UTC)
-
-
- Additionally, I think that it would be helpful if we drew a distinction between models of concurrency (i.e. abstractions that permit reasoning about concurrent systems in general) such as the Actor model, Petri nets, process calculi, etc., and implementations of concurrency (i.e. specific types of concurrent systems that perform a specific function), such as SMPs, and Web Services. --Allan McInnes 01:58, 8 December 2005 (UTC)
- It turns out that others have different ideas. They treat SMPs and Web Services as models of computation in their own right.--Carl Hewitt 02:47, 8 December 2005 (UTC)
-
[edit] Reversion to previous version
Allan,
Modifications of the magnitude that you made in the article should first be discussed in the talk page. So I propose to revert your edit.
Then we can discuss your proposed changes.
Sincerely,--Carl Hewitt 19:49, 15 December 2005 (UTC)
- Carl,
- I believe that the modifications I have made were either previously discussed (elimination of unnecessary references, removal of detailed discussion of emulating channels in the Actor model), or required to create an NPOV. IMHO,the earlier version of the article was heavily tilted towards presenting lots of detail about the Actor model, and out-of-date information about the process calculi. I believe the new version is more concise, more balanced, and better focused. It is, of course, your prerogative to revert the edits I have made if you do not agree with me. --Allan McInnes 20:11, 15 December 2005 (UTC)
-
- Alan,
- From your background and POV, I can understand where you are coming from. However suppressing information that does not correspond with your POV is not the way to go. You have simply deleted information that does not correspond with your POV. So I have reverted.
-
- Meanwhile, since there have been no objections, I have created Actor model and process calculi history and placed one of your contributions there.
-
- Please see what you think.
-
- Regards,--Carl Hewitt 23:54, 15 December 2005 (UTC)
-
-
- Carl,
- I am not sure exactly what you think is being “suppressed”. My edits retained information on the fundamental difference between Actors and process calculi (i.e. inspiration and motivation - including a direct reference to an article by Milner that describes this difference), as well as discussion of the historical differences related to channels, asynchrony, dynamic topology). Granted, it compressed the discussion of these things, because I felt the level of detail that was previously there was unnecessary (it was mostly devoted to showing the Actors model could represent channels - hardly NPOV as it stood, since it didn't mention the converse capabilities [as e.g. Agha does], and contained far more detail than is really suitable for an encyclopaedia article). I added information on more modern variants of process calculi that either do not use channels, are asynchronous, provide migration, or permit dynamic topologies. I removed discussion of denotational semantics since it didn't seem directly relevant to the discussion of process calculi (many of which don't have a denotational semantics at all). Upon review I see that this also resulted in the inadvertent removal of mention of Montanari & Talcott's work, which should not have happened.
-
-
-
- Regarding your new article on the history of Actors and process calculi: I personally believe that it is not an appropriate article for an encyclopaedia, because it again delves into far more detail than is necessary. However, you are of course free to create any article you want. Such is the nature of Wikipedia.
-
-
-
- --Allan McInnes 23:28, 16 December 2005 (UTC)
-
-
-
-
-
- I'd like to add here that, while it might be argued that the “NPOV” approach would have been to leave the description simulation of channels in the Actor model, and add descriptions of encodings of Actor model communications in process calculi, the sheer number of process calculi (a broad and general term) makes this task intractable. Hence my contention that the description of encodings was too much detail. Upon reflection, adding a brief mention of the fact that mutual encodings of Actors and process calculi are possible (without actually going into the detail of showing the encodings) may well have been a good idea (although it's not obvious to me how that clarifies the differences between the Actors and the process calculi). However, since the article was reverted, discussion of the need for such additions isn't really relevant anymore. --Allan McInnes 20:57, 21 December 2005 (UTC)
-
-
-
-
-
-
- Allan,
- You have romoved the discussion of how channels work. Such removal is hardly NPOV so I will restore it. Of course further discussion in this area is welcome.
- It is the nature of the growth of the Wikipedia to increase reporting on published literature, not to decrease it.
- Regards, --Carl Hewitt 03:36, 18 December 2005 (UTC)
-
-
-
-
-
-
- Carl,
- I removed a detailed discussion of how to simulate channels in the Actors model. That is hardly the same as a neutral “discussion of how channels work”. Since you have now reverted to the previous version, this discussion seems moot. --Allan McInnes 18:27, 20 December 2005 (UTC)
-
-
-
-
-
- Carl,
- You have expressed concerns about suppression of view-points. Why then have you:
- Eliminated mention of the fact that many process calculi don't have denotational semnatics, and of those that do, at least some (modern CSP) provide unbounded nondeterminism.
- Eliminated any mention of asynchronous communications in process calculi in general, and reduced mention of the asynchronous π-calculus to being a basis for an Actor algbra
- Eliminated mention of the dynamic topology capabilities in standard π-calculus
- Eliminated discussion of migration capabilities in process calculi, except as an aside about confusion in terminology.
- These things do constitute suppression of information, and do not provide a neutral point of view. --Allan McInnes 19:50, 20 December 2005 (UTC)
-
Carl,
Modifications of the magnitude that you made in the article should first be discussed in the talk page. So I propose to revert your edit.
Then we can discuss your proposed changes. --Allan McInnes 19:56, 20 December 2005 (UTC)
- Intended as a tongue in cheek reference to the 150+ edits made following the revert. A bit silly really. I apologize for posting it here. --Allan McInnes 21:07, 21 December 2005 (UTC)
[edit] History
I propose to start a new article Actor model and process calculi history
What do people think? Thanks,--Carl Hewitt 19:54, 15 December 2005 (UTC)
- I think the article is quite useful. In general I've found detailed historical background of immense value in my programming career--it's always helpful to understand why various decisions were made and the thinking processes involved, and "those who forget the past are condemned to repeat it". But Allan's point is also valid, it's not an article one would find in a traditional encyclopedia. Is this a bad thing?
- I don't believe so. Many of the limitations found in traditional encyclopedias were for economic or practical reasons, not because the information wouldn't be useful; Wikipedia doesn't share these concerns, and this sort of thing is a large part of what could make Wikipedia a superior product. But I'm not the arbiter for what goes in Wikipedia, and I claim complete ignorance of Wikipedia style in general.
- I'm in favor of this level of detail, but it definitely should be kept separate from main articles. Speaking as a user I prefer to see small overview articles which link to more specific articles on subtopics. That way I don't have to read it, but it's there for me to peruse as needed or at my leisure.
- The recent changes to Actor model were very positive. I might suggest going even further and moving more of the text (example: "Models prior to the Actor model" and "Message Passing Semantics") to other article(s) as appropriate. If I'm looking for a quick overview of the Actor model I'm much more likely to be interested in "Why is the Actor model important now?" than those other two sections--too much detail, even though it's useful and interesting in its own right. 12.103.251.203 09:05, 17 December 2005 (UTC)
-
- I agree that the Wikipedia has room for more content than a traditional encyclopaedia. However, there seems little sense in trying to put everything into the Wikipedia. There are plenty of other forums that are more appropriate for detailed discourses on a specific topic (Wikibooks being an obvious one). There's no reason that Wikipedia articles can't link to those other resources (as many already do). The Wikipedia itself makes a good overview reference. It doesn't need to subsume the entire web. --Allan McInnes 18:35, 20 December 2005 (UTC)
[edit] Not metaphysical
I don't know of any references in the literature to the laws of the process calculi being metaphysical so I have removed the reference.--Carl Hewitt 05:55, 18 December 2005 (UTC)
[edit] POV on Communicating Sequential Processes
This discussion was copied here from User talk:CarlHewitt#POV on Communicating Sequential Processes--Carl Hewitt 06:14, 22 December 2005 (UTC)
- Subtle choices of wording and presentation imply that Carl's Actor model is “better” than other competing theories (e.g. [1], [2])
-
- It seems that Allan has the POV of an advocate for Communicating Sequential Processes on which he has done research. Since he seems to think that the published research on guarded choice using multiple channels reflects poorly on Communicating Sequential Processes, that reporting on the research Issues with synchronous channels should be suppressed in the Wikipedia. On the other hand, I propose that the discussion should be expanded to report on published research on how researchers on the process calculi have addressed the challenge of guarded choice using multiple channels.
-
- Regards, --Carl Hewitt 08:53, 21 December 2005 (UTC)
-
-
- Carl,
- I do not wish to engage in another protracted debate on this issue. However, I disagree with your contention that I am advocating CSP. While I have done research involving CSP, I have no particular loyalty to CSP, and am happy to use whatever tools are appropriate for the job. Many of my edits have involved trying to present a more balanced view of process calculi (which is, as I have pointed out many times, a very broad term for a wide variety of formalisms - some of which specifically formalize the Actor model) in general, rather than any specifically pro-CSP POV. I find your implication of bias particularly disappointing since I have put (I feel) a great deal of effort into improving the Actor model article (making it more accessible to people not already familiar with the Actor model, providing clear overview information, etc.), in addition to working on articles describing other approaches to concurrency.
-
-
-
-
- Allan,
- As explained in a earlier post of mine, I do appreciate your efforts to improve the Actor model article.
- However, algebraic equations have not formalized the Actor model because they have not formalized the guarantee of arrival of messages sent to Serializers. Consequently they have not formalized the guarantee of service and performance that is important in many applications of the Actor model.
- Regards, --Carl Hewitt 05:59, 22 December 2005 (UTC)
-
-
-
-
- With regard to your specific point about synchronous channels, I have pointed out numerous times that the things you are describing are implementation issues (i.e. how synchrony is implemented), rather than concerns that are directly relevant to a mathematical theory that seeks to provide primitives for algebraically reasoning about concurrent systems. As I am sure you know, the synchronous calculi can model asynchrony just as the Actor model can model synchronous channels - both theories can be used to model and analyze synchronous or asynchronous implementations. I find your continued attempts to disparage other theories based on possible implementation issues disingeuous, especially given your own attitudes toward separating theory issues and implementation issues when discussing the Actor model.
-
-
-
-
- Allan,
- It seems to me that the issues are more subtle than what you have presented above.
- Algebraic equations have not been sufficient to support important kinds of reasoning about concurrent systems. E.g., they have not been sufficient to support reasoning about the most basic guarantees of service from servers. These are not mere possible implementation issues but concerns that were directly central to the methematical theory of Actors from its inception (see the articles on Actor model, Actor model early history, Actor model theory, Unbounded nondeterminism and Denotational semantics). Also these issues have been of concern in the development of Communicating Sequential Processes according to the published literature on issues with synchronous channels which you evidently want to suppress from this article.
- Regards, --Carl Hewitt 06:36, 22 December 2005 (UTC)
-
-
-
-
- As I said, I don't want to get into a protracted debate, so I will probably not add anything further to this discussion. --Allan McInnes 17:33, 21 December 2005 (UTC)
-
[edit] Ambients and channels
Someone recently reinserted the assertion that "ambients are a generalization of channels", and provided a citation to (Cardelli and Gordon 1998) in support of that assertion. I do not see anything in Cardelli and Gordon's Mobile Ambients paper which claims that ambients are a "generalization of channels". What I do see is:
- An ambient is a bounded place where computation happens.
- Each ambient has a collection of subambients. Each subambient has its own name, agents, subambients, etc.
- Each ambient has a collection of local agents (also known as threads, processes, etc.).
- Interaction between processes is by shared location within a common boundary.
- The simplest communication mechanism that we can imagine is local anonymous communication within an ambient ... An output action releases a capability (possibly a name) into the local ether of the surrounding ambient. An input action captures a capability from the local ether and binds it to a variable within a scope.
Which makes ambients sounds quite a bit different named channels, and interactions via ambients sound different than interactions via named channels. Granted, Cardelli and Gordon do show how named channels can be encoded in the ambient calculus. But this is not the same thing as saying that ambients are a "generalization of channels" (I can encode integers in binary, but that doesn't make binary a "generalization of integers" in any meaningful sense).
Based on the above, I have removed the assertion about ambients and channels. I will be happy to have it replaced if someone can point me to a section in Cardelli and Gordon's paper (or some other paper on the ambient calculus) which makes the assertion that ambients are a generalization of channels. --Allan McInnes (talk) 19:41, 8 March 2006 (UTC)