1
我正在開發一款應用程序,它和大多數應用程序一樣,具有buisness邏輯的整個載荷,幾乎所有這些應用程序都需要在服務器和Flash上執行基於客戶端...我試圖找出實現規則引擎的最佳方式(閱讀:最簡單的方法)。在瀏覽器和服務器之間共享邏輯
這些問題的參數:
- 規則引擎必須在Web瀏覽器(即,在Flash Player),並在服務器上運行兩個。複製邏輯(例如,通過編寫「服務器」版本和「客戶」版本)將是不可接受的風險。
- 輸入/輸出數據相當複雜,因此序列化是一個不容忽視的問題。我們目前正在使用AMF來滿足我們所有的序列化需求,並且使用另一種協議會增加很大的複雜性......所以應該避免它。
- 實施「規則描述語言」是不可行的。實驗表明,規則足夠複雜,任何這樣的語言都需要Turing完成......這也會增加大量的複雜性。
- 規則引擎不需要進行一些但不是很多的服務調用。
目前,最好的競爭者是:
寫在ActionScript代碼,然後在服務器上運行它。從理論上講,可以啓動一個AVM實例,長時間輪詢一個網關,然後以這種方式來回傳遞數據......但這似乎並不理想。有這樣做的「好」方法嗎?
在haXe中編寫代碼。我對haXe的AMF支持一無所知,所以這可能是一個破壞交易的方式。
涉及絹毛猴的東西。看起來像一個可行的選擇,但我沒有做足夠的研究來說明任何一種方式。
那麼,你怎麼看?這些選項中的任何一個都明顯優於其他選項?有沒有什麼值得我考慮的?
最後,感謝閱讀文本:)
不會有大量的數據量,但它會相當複雜。 – 2009-10-19 22:42:33
是的,那麼只需通過HTTP的AMF與Flex和Air客戶端進行通信。這樣你可以保持相同的代碼庫。 – CookieOfFortune 2009-10-20 17:37:35