Concernant les approches "objets actifs", plus que l'aspect message (qui n'est qu'un moyen de communiquer entre objet), j'insisterai plus sur l'aspect comportement et événement des objets actifs.
A un objet actif est associé une description comportementale (une machine à état typiquement) qui explique comment l'objet réagit (ou non) à des événements (internes ou externes). Effectivement, l'arrivé de message (envoyé par d'autres objets) génère un événement. Mais ce n'est qu'un sous ensemble des événements possibles arrivant sur l'objet actif.
Concrètement, un événement déclenche le franchissement d'une transition, franchissement déclenchant des actions de l'objet. L'arrivée ou la sortie d'un état peuvent aussi déclencher des actions.
Ces approches sont effectivement très intéressantes, mais ont aussi des limites : par exemple, impossible d'avoir des traitements bloquants lors des franchissements de transitions. Cela nécessite un certain soin dans leur conception.
Des framework ont été développés pour ce genre d'approche quand le langage de programmation utilisé ne supporte pas les concepts nativement. En C/C++, je suis assez fan de http://www.state-machine.com/psicc/.
# Retour sur les objets actifs
Posté par BlueDian . En réponse à la dépêche Instantané sur le parallélisme et le code. Évalué à 1.
Je continue dans mes remarques sur ce texte.
Concernant les approches "objets actifs", plus que l'aspect message (qui n'est qu'un moyen de communiquer entre objet), j'insisterai plus sur l'aspect comportement et événement des objets actifs.
A un objet actif est associé une description comportementale (une machine à état typiquement) qui explique comment l'objet réagit (ou non) à des événements (internes ou externes). Effectivement, l'arrivé de message (envoyé par d'autres objets) génère un événement. Mais ce n'est qu'un sous ensemble des événements possibles arrivant sur l'objet actif.
Concrètement, un événement déclenche le franchissement d'une transition, franchissement déclenchant des actions de l'objet. L'arrivée ou la sortie d'un état peuvent aussi déclencher des actions.
Ces approches sont effectivement très intéressantes, mais ont aussi des limites : par exemple, impossible d'avoir des traitements bloquants lors des franchissements de transitions. Cela nécessite un certain soin dans leur conception.
Des framework ont été développés pour ce genre d'approche quand le langage de programmation utilisé ne supporte pas les concepts nativement. En C/C++, je suis assez fan de http://www.state-machine.com/psicc/.