我正在开发一个应用程序,它会像大多数应用程序一样,拥有一整套商务逻辑,几乎所有应用程序都需要在服务器和基于Flash的客户端上执行......而我正在努力想实现规则引擎的最佳(读取:最不复杂)方式。
这些是问题的参数:
- 规则引擎必须都在Web浏览器(即Flash Player)和服务器上运行。复制逻辑(例如,通过编写“服务器”版本和“客户端”版本)将是不可接受的风险。
- 输入/输出数据相当复杂,因此序列化是一个非常重要的问题。我们目前正在使用AMF来满足所有序列化需求,并且使用其他协议会增加显着的复杂性......所以应该避免它。
- 实施“规则描述语言”是不可行的。实验表明,规则足够复杂,任何这样的语言都需要图灵完成......这也会增加大量的复杂性。
- 规则引擎不需要进行一些但不是很多的服务调用。
目前,最好的竞争者是:
- 在ActionScript中编写代码,然后在服务器上运行它。从理论上讲,可以启动AVM实例,让它长时间轮询网关,然后以这种方式来回传递数据......但这似乎不太理想。这样做有“好”的方法吗?
- 在Haxe中编写代码。我对Haxe的AMF支持一无所知,所以这可能是一个交易破坏者。
- 涉及T猴的东西。看起来像一个可行的选择,但我没有做足够的研究告诉任何一种方式。
所以你怎么看?这些选项中的任何一个明显优于其他选项吗?有没有我不知道的东西值得考虑?
最后,感谢阅读这面文字的墙:)