En informática , el modelo Actor , publicado por primera vez en 1973 ( Hewitt et al., 1973 ) , es un modelo matemático de computación concurrente . Este artículo describe la historia posterior del modelo Actor, cuyos temas principales fueron la investigación de su poder fundamental, el estudio de cuestiones de composicionalidad, el desarrollo de arquitecturas y su aplicación a sistemas abiertos. Es la continuación del artículo sobre la historia intermedia del modelo Actor , que describe las implementaciones iniciales, las primeras aplicaciones y el desarrollo de la primera teoría de la demostración y el modelo denotacional.
El poder del modelo actoral
Se iniciaron investigaciones sobre el poder básico del modelo Actor. Carl Hewitt [1985] argumentó que, debido al uso de Árbitros , el modelo Actor era más potente que la programación lógica (véase indeterminación en la computación concurrente ).
Keith Clark , Hervé Gallaire, Steve Gregory, Vijay Saraswat, Udi Shapiro, Kazunori Ueda, entre otros, desarrollaron una familia de sistemas concurrentes de paso de mensajes tipo Prolog que utilizaban la unificación de variables compartidas y flujos de estructuras de datos para los mensajes . Algunos de estos autores afirmaron que estos sistemas se basaban en la lógica matemática. Sin embargo, al igual que el modelo Actor, los sistemas concurrentes tipo Prolog se basaban en el paso de mensajes y, por consiguiente, estaban sujetos a la indeterminación en el orden de los mensajes en los flujos, similar a la indeterminación en el orden de llegada de los mensajes enviados a los Actores. En consecuencia, Carl Hewitt y Gul Agha [1991] concluyeron que los sistemas concurrentes tipo Prolog no eran ni deductivos ni lógicos. No eran deductivos porque los pasos computacionales no se derivaban deductivamente de sus predecesores, y no eran lógicos porque ningún sistema de lógica matemática era capaz de derivar los hechos de situaciones computacionales subsiguientes a partir de sus predecesores.
Composicionalidad
La composicionalidad se refiere a la composición de sistemas a partir de subsistemas. Los problemas de composicionalidad han demostrado ser limitaciones importantes para teorías de computación anteriores, como el cálculo lambda y las redes de Petri . Por ejemplo, dos expresiones lambda no constituyen una expresión lambda, y dos redes de Petri no constituyen una red de Petri, por lo que no pueden influirse mutuamente.
En su tesis doctoral, Gul Agha abordó cuestiones de composicionalidad en el modelo de Actor. Las configuraciones de Actor cuentan con recepcionistas que pueden recibir mensajes externos y pueden tener las direcciones de los recepcionistas de otras configuraciones de Actor. De esta forma, dos configuraciones de Actor pueden componerse para formar otra configuración cuyas subconfiguraciones pueden comunicarse entre sí. Las configuraciones de Actor tienen la ventaja de poder tener múltiples Actores ( es decir, los recepcionistas) que reciben mensajes externos sin la desventaja de tener que realizar sondeos para obtener mensajes de múltiples fuentes (véase problemas relacionados con la obtención de mensajes de múltiples canales ).
Sistemas abiertos
Carl Hewitt [1985] señaló que la apertura se estaba convirtiendo en un desafío fundamental en el desarrollo de sistemas de software. Los sistemas distribuidos abiertos deben afrontar los siguientes desafíos:
- Monotonicidad
- Una vez que algo se publica en un sistema distribuido abierto, no se puede retirar.
- Pluralismo
- Los distintos subsistemas de un sistema distribuido abierto incluyen información heterogénea, superpuesta y posiblemente contradictoria. En los sistemas distribuidos abiertos no existe un árbitro central de la verdad.
- No determinismo ilimitado
- De forma asíncrona, distintos subsistemas pueden activarse y desactivarse, y los enlaces de comunicación pueden establecerse y desactivarse entre los subsistemas de un sistema distribuido abierto. Por lo tanto, el tiempo que tardará en completarse una operación no puede determinarse de antemano (véase no determinismo no acotado ).
- Inconsecuencia
- Los grandes sistemas distribuidos son inevitablemente inconsistentes en lo que respecta a la información sobre las interacciones de sus usuarios humanos con el sistema de información.
Carl Hewitt y Jeff Inman [1991] trabajaron en el desarrollo de la semántica para sistemas abiertos con el fin de abordar problemas surgidos en la inteligencia artificial distribuida. Carl Hewitt y Carl Manning [1994] informaron sobre el desarrollo de la semántica participativa para sistemas abiertos.
Arquitecturas de computadoras
Investigadores del Caltech, bajo la dirección de Chuck Seitz, desarrollaron el Cubo Cósmico , que fue una de las primeras arquitecturas de Actores con paso de mensajes. Posteriormente, en el MIT , investigadores bajo la dirección de Bill Dally desarrollaron la Máquina J.
Intentos de relacionar la semántica de los actores con el álgebra y la lógica lineal.
Kohei Honda y Mario Tokoro (1991), José Meseguer (1992), Ugo Montanari y Carolyn Talcott (1998), M. Gaspari y G. Zavattaro (1999) intentaron relacionar la semántica de actores con el álgebra. Asimismo, John Darlington y YK Guo (1994) intentaron relacionar la lógica lineal con la semántica de actores.
Sin embargo, ninguno de los formalismos anteriores aborda la propiedad crucial de garantía de servicio (véase no determinismo no acotado ).
Novedades recientes
Los avances recientes en el modelo Actor provienen de diversas fuentes.
El desarrollo de hardware está impulsando la concurrencia masiva, tanto local como no local. La concurrencia local se posibilita mediante nuevo hardware para microprocesadores multinúcleo de 64 bits, módulos multichip e interconexión de alto rendimiento. La concurrencia no local se posibilita mediante nuevo hardware para comunicaciones de conmutación de paquetes de banda ancha cableadas e inalámbricas. Las capacidades de almacenamiento, tanto locales como no locales, crecen exponencialmente. Estos avances de hardware plantean enormes desafíos de modelado. Hewitt [Hewitt 2006a, 2006b] intenta utilizar el modelo de actores para abordar estos desafíos.
Referencias
- Carl Hewitt; Peter Bishop y Richard Steiger (1973). "Un formalismo de actor modular universal para la inteligencia artificial". IJCAI.
{{cite journal}}: Para citar una revista se requiere|journal=( ayuda ) - Carl Hewitt. El desafío de los sistemas abiertos . Revista Byte. Abril de 1985. Reimpreso en Los fundamentos de la inteligencia artificial: un libro de referencia. Cambridge University Press. 1990.
- Agha, Gul (1986), Actors: A Model of Concurrent Computation in Distributed Systems , MIT Press, hdl : 1721.1/6952
- Carl Manning. Traveler: el observatorio de actores ECOOP 1987. También aparece en Lecture Notes in Computer Science , vol. 276.
- William Athas y Charles Seitz, Multicomputadoras: computadoras concurrentes con paso de mensajes, IEEE Computer, agosto de 1988.
- William Dally y Wills, D. Mecanismos universales para la concurrencia PARLE 1989.
- W. Horwat, A. Chien y W. Dally. Experiencia con CST: Programación e implementación PLDI. 1989.
- Carl Hewitt. Hacia una semántica de sistemas de información abiertos. Actas del 10º Taller Internacional sobre Inteligencia Artificial Distribuida. 23-27 de octubre de 1990. Bandera, Texas.
- Akinori Yonezawa , Ed. ABCL: Un sistema concurrente orientado a objetos. MIT Press. 1990.
- K. Kahn y Vijay A. Saraswat, " Los actores como un caso especial de programación con restricciones (lógicas) concurrentes ", en SIGPLAN Notices , octubre de 1990. Describe Janus .
- Carl Hewitt. Semántica de los sistemas de información abiertos . Revista de Inteligencia Artificial. Enero de 1991.
- Carl Hewitt y Jeff Inman. DAI Betwixt and Between: From "Intelligent Agents" to Open Systems Science. IEEE Transactions on Systems, Man, and Cybernetics. Noviembre/diciembre de 1991.
- Carl Hewitt y Gul Agha. Lenguajes con cláusulas de Horn protegidas: ¿son deductivos y lógicos? Conferencia Internacional sobre Sistemas Informáticos de Quinta Generación, Ohmsha, 1988. Tokio. También en Inteligencia Artificial en el MIT , vol. 2. MIT Press, 1991.
- Kohei Honda y Mario Tokoro. Un cálculo de objetos para la comunicación asincrónica ECOOP 91.
- José Meseguer. La lógica de reescritura condicional como modelo unificado de concurrencia en Artículos seleccionados del Segundo Taller sobre Concurrencia y Composicionalidad. 1992.
- William Dally, et al. El procesador controlado por mensajes: un nodo de procesamiento multicomputadora con mecanismos eficientes IEEE Micro . Abril de 1992.
- S. Miriyala, G. Agha y Y. Sami. Visualización de programas de actores mediante redes de transición de predicados. Journal of Visual Programming. 1992.
- - Gul Agha, Ian Mason, Scott Smith y Carolyn Talcott:Una base para la computación de actores.Revista de programación funcional, enero de 1993.
- Carl Hewitt y Carl Manning. Arquitectura de negociación para la gestión de crisis a gran escala. Taller AAAI-94 sobre modelos de gestión de conflictos en la resolución cooperativa de problemas. Seattle, Washington. 4 de agosto de 1994.
- - John Darlington y YK Guo:Formalización de actores en lógica lineal.Conferencia internacional sobre sistemas de información orientados a objetos. Springer-Verlag. 1994.
- Carl Hewitt y Carl Manning. Infraestructuras sintéticas para sistemas multiagencia. Actas de ICMAS '96. Kioto, Japón. 8-13 de diciembre de 1996.
- S. Frolund. Coordinación de objetos distribuidos: un enfoque basado en actores para la sincronización. MIT Press. Noviembre de 1996.
- W. Kim. ThAL: Un sistema de actores para computación concurrente eficiente y escalable . Tesis doctoral. Universidad de Illinois en Urbana-Champaign. 1997.
- - Mauro Gaspari y Gianluigi Zavattaro:An Algebra of Actors, Informe técnico UBLCS-97-4, Universidad de Bolonia, mayo de 1997
- Ugo Montanari y Carolyn Talcott. ¿Pueden convivir actores y agentes Pi? Notas electrónicas en informática teórica. 1998.
- - M. Gaspari y G. Zavattaro:Un álgebra de actores.Métodos formales para sistemas abiertos basados en objetos, 1999.
- N. Jamali, P. Thati y G. Agha. Una arquitectura basada en actores para personalizar y controlar conjuntos de agentes . IEEE Intelligent Systems. 14(2). 1999.
- P. Thati, R. Ziaei y G. Agha. Una teoría de pruebas de mayo para actores. Métodos formales para sistemas distribuidos abiertos basados en objetos. Marzo de 2002.
- P. Thati, R. Ziaei y G. Agha. Una teoría de pruebas de mayo para cálculos asíncronos con localidad y sin coincidencia de nombres. Metodología algebraica y tecnología de software. Springer Verlag. Septiembre de 2002. LNCS 2422.
- - Gul Agha y Prasanna Thati. Una teoría algebraica de actores y su aplicación a un lenguaje simple basado en objetos, De OO a FM (Dahl Festschrift) LNCS 2635. Springer-Verlag. 2004.
- Carl Hewitt. El repetido declive de la programación lógica y por qué resurgirá. Qué salió mal y por qué: Lecciones de la investigación y las aplicaciones de la IA. Informe técnico SS-06-08. AAAI Press. Marzo de 2006b.
- Carl Hewitt ¿Qué es el compromiso? Físico, organizacional y social COIN@AAMAS. 2006a.
- Modelo de actor (informática)
- Historia de la informática