我想创建不同类型的流程,在这些流程中,代理相互交互。我想用一种特殊的语言来描述(定义、形式化)代理之间的交互过程。换句话说,我想提供一个代理可以以某种方式相互交互的环境,并且我想使用适合这种方式的编程语言来描述交互方式。有这样的语言吗?
为了更具体和不那么抽象,我们可以将代理视为网站的用户。网站的发展取决于用户的行动(用户有一定的行动自由)。用户可以做什么以及他们的行为会发生什么应该用语言来描述。
我想创建不同类型的流程,在这些流程中,代理相互交互。我想用一种特殊的语言来描述(定义、形式化)代理之间的交互过程。换句话说,我想提供一个代理可以以某种方式相互交互的环境,并且我想使用适合这种方式的编程语言来描述交互方式。有这样的语言吗?
为了更具体和不那么抽象,我们可以将代理视为网站的用户。网站的发展取决于用户的行动(用户有一定的行动自由)。用户可以做什么以及他们的行为会发生什么应该用语言来描述。
通常,一组可能的操作是通过接口中的方法来固定的。你的意思是在不同的时间,根据之前的动作,只有一些动作应该被启用(比如在做任何其他事情之前必须登录)?
在这种情况下,您可以将其建模为组件(用户和系统),相互交谈,并通过状态机或序列图对交互进行建模。如果这是您想要的,那么实际实现可能就像将状态机编码为 Java 一样简单。
或者您可能想查看工作流框架。但我认为您需要进一步澄清您的要求。
或者您的意思是用户甚至可以引入新的操作?
Erlang 是一个明显的答案,请参阅2004 年的这篇论文或 Wikibooks 关于Autonomous Agents的文章。
如果您乐于在 .Net 环境中工作,尤其是 .Net 4,那么请认真查看Windows Workflow Foundation。上一代(2006 年)有一篇关于扩展和性能特征的有趣论文。