Categories:

Actor Model

10:00 - Friday 4 April 2008 by TG Daily staff
Source: Tom's Hardware – Keywords: Intel, Microsoft, multicore
Categories: Business

Table of content:

Actor Model

Ad

One such group that, among others, which includes my adviser Professor Gul Agha, believes in building practical tools to facilitate the mainstream adoption of “Actor model of programming”. An introduction of Actor model is overdue at this point: It describes a programming model that is built around concurrently-executing objects called “Actors” that communicate by asynchronous message-passing. A few things to note here are that it is an inherently concurrent model of programming. Actors do not have a shared state and exchange information by passing messages only. You can think of Actors as objects in object-oriented programming (each having their own data and behavior) augmented with a thread of control and a mail queue. Another view of actors is that of services in service-oriented architecture (SOA), which provide a service on receipt of a message from other service, each running independently and asynchronously. The Actor model was proposed originally by Carl Hewitt, and then further developed by Professor Agha. His book is one of the most cited articles in Computer Science and an excellent description of the model.

Erlang is arguably the best known implementation of Actor model. It has been used to write production systems at Ericsson for about 20 years. There have been other implementation but the growing awareness of concurrent and parallel programming has seen a surge in the interest in Actor model, as we have noticed new Actor languages and libraries coming from both the academia and the developer community. This includes Scala (a language coming from academia and receiving lots of attention from developers), Salsa (another language from academia), Ptolemy (an Actor framework from UC Berkeley) in addition to Actor libraries in Java, Python and Ruby. Additionally, the syntax of these languages comes in different flavors. For example, Erlang is based on functional programming. Scala has a Java-like syntax.

Keeping this scenario in perspective, this group is focused on the design and implementation of a virtual machine and run-time to support actor languages. This would serve as a vehicle in the research of the design of actor languages, enabling language designers to focus on the correct programming abstractions and elegant syntax. In short, it hides the complexity and heterogeneity of the underlying hardware from the language designer.

An interesting research direction in this regard is that of exploring meta-architectures and reflection to manage scheduling and resource management at run-time. This focus also highlights research problems in the communication among actors, providing debugging support for actor programs and enabling secure computation. Efficiency and optimization is interwoven with the concerns I have mentioned earlier.

As a side-effect, it would allow developers to write Actor programs in the syntax they are comfortable with – but they would be able to send and consume messages to and from other actors written in a possibly different language. This would be similar to the role XML plays in SOAP messaging. Having a run-time underlying the VM enables you to leverage the locality and shared memory in multicore processors for efficiency, while resorting to distributed messaging in cluster environments, for example. I must admit that these are high-level ideas and expectations, and as we dig deeper we might find dead-ends as well as exciting new questions.

Similarly, I believe other researchers have started to explore avenues of collaboration with each other under this umbrella. I can feel the spring in their step, excitement in their emails, and energy in their research activities. And why not? This represents a lifetime opportunity to not only make a significant academic impact, but especially an impact on the industry and the developer community.

About the author: Rajesh Karmani is a graduate student in the Department of Computer Science at University of Illinois at Urbana-Champaign. He is a recipient of the Sohaib and Sarah Abbasi Fellowship. His current area of interest is programming languages and software engineering. Previously, he has worked in wireless sensor networks and multi-agent systems.

Disclaimer: The views expressed in the article are author’s personal view and do not represent those of TG Daily, the University of Illinois, or the UPCRC at University of Illinois.


Talkback
Be the first to comment on this review!

Note You are going to post a comment as anonymous.



Google Ads