有限状态机和 FSM 间信令

2024-01-20

对具有本机(因此没有 FSM 生成工具)支持状态机开发的语言的建议执行以及消息/信号的传递。这适用于电信,例如实现这种复杂程度的 FSM。

我考虑过 Erlang,但希望得到一些反馈、建议、教程指针、替代方案,特别是基于 Java 的框架。也许是斯卡拉?

仅开源。我不是在寻找 UML 或正则表达式相关的解决方案。

由于这是为了电信协议的实现,因此 FSM 可能并不简单。许多状态、许多转换、基于信号、输入约束/防护。动态实例化将是一个优点。 switch语句是不可能的,它很快就无法使用了。比 if/else 好不了多少。

我更愿意not取决于图形设计; FSM 描述的格式应该是人类可读/可编辑/可管理的。

--

我决定专注于基于 Actor 的 C++ 解决方案

例如,Theron 框架提供了一个起点http://theron.ashtonmason.net/ http://theron.ashtonmason.net/为了避免在基于 FSM 的事件处理程序中使用 switch 语句,这个 C++ FSM 模板框架看起来很有用http://satsky.spb.ru/articles/fsm/fsmEng.php http://satsky.spb.ru/articles/fsm/fsmEng.php


Erlang 就是为这个特定的应用程序(电信协议实现)而构建的。 Erlang 在爱立信的最初应用是电话交换机,最早的商业产品是支持各种电信协议的 ATM 交换机。

OTP 有一个用于实现 FSM 的标准行为,称为gen_fsm。有一个在一些重要的 FSM 中使用它的例子OTP 文档 http://erlang.org/documentation/doc-4.7.3/doc/design_principles/fsm.html.

OSERL http://oserl.sourceforge.net/是 Erlang 中的开源 SMPP 实现,演示了如何使用gen_fsms。一个很好的例子是gen_esme_session http://oserl.cvs.sourceforge.net/viewvc/oserl/oserl/src/gen_mc_session.erl?view=markup.

虽然我无法向您指出代码,但我知道有不少 Erlang 公司销售面向电信的产品:科拉图斯 http://www.corelatus.com, Synapse http://www.synap.se/, Motivity http://www.motivity.ca/除其他外。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

有限状态机和 FSM 间信令 的相关文章

随机推荐