En informática , el modelo de actor , publicado por primera vez en 1973 (Hewitt et al. 1973), es un modelo matemático de computación concurrente . Este artículo informa sobre la historia posterior del modelo de actor, en la que los temas principales fueron la investigación del poder básico del modelo, el estudio de cuestiones de composicionalidad, el desarrollo de arquitecturas y la aplicación a sistemas abiertos. Es el artículo que sigue a la historia media del modelo de actor , que informa sobre las implementaciones iniciales, las aplicaciones iniciales y el desarrollo de la primera teoría de pruebas y el primer modelo denotacional.
El modelo del poder del actor
Se iniciaron investigaciones sobre el poder básico del modelo de Actor. Carl Hewitt [1985] sostuvo que debido al uso de árbitros , el modelo de Actor era más poderoso que la programación lógica (ver indeterminación en computación concurrente ).
Keith Clark , Hervé Gallaire, Steve Gregory, Vijay Saraswat, Udi Shapiro, Kazunori Ueda, etc. , desarrollaron una familia de sistemas de paso de mensajes concurrentes similares a Prolog que utilizan 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 de Actor, los sistemas concurrentes similares a Prolog se basaban en el paso de mensajes y, en consecuencia, estaban sujetos a una indeterminación en el orden de los mensajes en los flujos que era 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 similares a Prolog no eran ni deductivos ni lógicos. No eran deductivos porque los pasos computacionales no se seguían 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 posteriores de sus predecesores.
Composicionalidad
La composicionalidad se ocupa de la composición de sistemas a partir de subsistemas. Los problemas de composicionalidad han demostrado ser limitaciones graves para las teorías de computación anteriores, incluido el cálculo lambda y las redes de Petri . Por ejemplo, dos expresiones lambda no son una expresión lambda y dos redes de Petri no son una red de Petri y no pueden influirse entre sí.
En su tesis doctoral, Gul Agha abordó cuestiones de composicionalidad en el modelo de Actor. Las configuraciones de Actor tienen recepcionistas que pueden recibir mensajes del exterior y pueden tener las direcciones de los recepcionistas de otras configuraciones de Actor. De esta manera, dos configuraciones de Actor se pueden componer en otra configuración cuyas subconfiguraciones pueden comunicarse entre sí. Las configuraciones de Actor tienen la ventaja de que pueden tener múltiples Actores ( es decir , los recepcionistas) que reciben mensajes del exterior sin la desventaja de tener que sondear para obtener mensajes de múltiples fuentes (ver problemas 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:
- Monotonía
- Una vez que algo se publica en un sistema distribuido abierto, no se puede retractar.
- Pluralismo
- Los diferentes subsistemas de un sistema distribuido abierto incluyen información heterogénea, superpuesta y posiblemente conflictiva. En los sistemas distribuidos abiertos no existe un árbitro central de la verdad.
- No determinismo ilimitado
- De manera asincrónica, pueden activarse y desactivarse distintos subsistemas y pueden entrar y salir enlaces de comunicación entre subsistemas de un sistema distribuido abierto. Por lo tanto, el tiempo que llevará completar una operación no se puede acotar de antemano (véase no determinismo ilimitado ).
- Inconsecuencia
- Los grandes sistemas distribuidos son inevitablemente inconsistentes en lo que respecta a la información sobre las interacciones del sistema de información de sus usuarios humanos.
Carl Hewitt y Jeff Inman [1991] trabajaron en el desarrollo de semántica para sistemas abiertos con el fin de abordar cuestiones que habían surgido en la inteligencia artificial distribuida. Carl Hewitt y Carl Manning [1994] informaron sobre el desarrollo de semántica participativa para sistemas abiertos.
Arquitecturas de computadoras
Los investigadores de Caltech, bajo la dirección de Chuck Seitz, desarrollaron el Cosmic Cube , que fue una de las primeras arquitecturas de actores de transmisión de mensajes. Posteriormente, en el MIT, los investigadores, bajo la dirección de Bill Dally, desarrollaron la J Machine .
Intentos de relacionar la semántica del actor 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 han intentado relacionar la semántica del actor con el álgebra. También John Darlington y YK Guo 1994 han intentado relacionar la lógica lineal con la semántica del actor.
Sin embargo, ninguno de los formalismos anteriores aborda la propiedad crucial de la garantía del servicio (véase no determinismo ilimitado ).
Acontecimientos recientes
Los desarrollos recientes en el modelo Actor provienen de varias fuentes.
El desarrollo de hardware está fomentando la concurrencia masiva tanto local como no local. La concurrencia local está siendo posible gracias al nuevo hardware para microprocesadores de 64 bits de múltiples núcleos, módulos multichip e interconexión de alto rendimiento. La concurrencia no local está siendo posible gracias al nuevo hardware para comunicaciones de conmutación de paquetes de banda ancha inalámbricas y por cable. Las capacidades de almacenamiento tanto locales como no locales están creciendo exponencialmente. Estos desarrollos de hardware plantean enormes desafíos de modelado. Hewitt [Hewitt 2006a, 2006b] está intentando utilizar el modelo de Actor 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.
- Carl Hewitt. El desafío de los sistemas abiertos . Byte Magazine. Abril de 1985. Reimpreso en The foundation of artificial intelligence---a sourcebook. Cambridge University Press. 1990.
- Agha, Gul (1986), Actores: un modelo de computación concurrente en sistemas distribuidos , MIT Press, hdl :1721.1/6952
- Carl Manning. Traveler: el observatorio del actor 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 concurrencia PARLE 1989.
- W. Horwat, A. Chien y W. Dally. Experiencia con CST: Programación e implementación PLDI. 1989.
- Carl Hewitt. Towards Open Information Systems Semantics. 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, "Actores como un caso especial de programación de restricciones (lógica) concurrente", en SIGPLAN Notices , octubre de 1990. Describe Janus .
- Carl Hewitt. Revista de semántica de sistemas de información abiertos sobre inteligencia artificial. Enero de 1991.
- Carl Hewitt y Jeff Inman. DAI Betwixt and Between: From "Intelligent Agents" to Open Systems Science (DAI entre agentes inteligentes y la ciencia de sistemas abiertos), IEEE Transactions on Systems, Man, and Cybernetics (Transacciones IEEE sobre sistemas, hombre y cibernética), noviembre/diciembre de 1991.
- Carl Hewitt y Gul Agha. Lenguajes con cláusulas 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 solución cooperativa de problemas. Seattle, WA. 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. Synthetic Infrastructures for Multi-Agency Systems. Actas de ICMAS '96. Kioto, Japón. 8 al 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 los actores y los agentes Pi vivir juntos? Notas electrónicas sobre informática teórica. 1998.
- - M. Gaspari y G. Zavattaro: Un álgebra de métodos formales de actores 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 la prueba de mayo para cálculos asincrónicos con localidad y sin coincidencia de nombre . 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. La repetida desaparición de la programación lógica y por qué se reencarnará. 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.