Posted on 2008-01-30 09:08
久城 閱讀(4283)
評論(4) 編輯 收藏 所屬分類:
Flex&ActionScript
最近接觸一個Flex項目,我一個新員工,接觸不到架構,只能在這里假想。
背景:
外包項目,已完成系統設計,畫面(所有mxml的Demo)基本完成。
40多人,分8個小組作業(yè)。每一個小組一個組長,每兩個小組一個試樣負責人。上面還有幾層領導分別負責不同的工作,管事兒的是部長。
作業(yè)內容包括詳細設計,編碼和測試。
我的問題:
項目進行十分緩慢,最大的問題就是技術框架未定。由于大家都是第一次做Flex的項目,沒有什么經驗,對于一個新手來說,要想做好詳細設計,首先要有編碼的概念,但是現在,我沒有。
面對分到的模塊,我不知道數據是如何封裝的,是如何傳遞的,數據如何處理,在哪里處理,更重要的是,如何與數據庫交互。這些問題沒有確定,對于一個Flex新手而言,真的很困難。
與后臺交互的分析:
這里要感謝cimmicola對我的講解!
1. 下策 直接采用flex的httpservice,服務器端手動的拼裝xml,或者使用webservice。然后在客戶端手動的解析xml。這是這幾天做Demo時的做法,我相信這樣項目最終不會這樣做的。這樣做,對Flex新手而言,開發(fā)的復雜程度較低,但是工程化程度也很低。
2. 中策 使用自己的框架,已經帶有序列化消息轉發(fā)層,(不知道有沒有,但感覺這樣一個大公司應該會有),比如可以將java對象序列化成xml數據或者json,這樣可以直接通過httpservice來請求服務器端數據,避免自己拼裝xml。這樣的框架目前開源的也有很多,其中把java對象序列化成json數據的方法有很多人都寫過,在學習Extjs的時候,就用到過。以前一直不理解java為什么要序列化,現在才真正體會到一點點。
3. 上策 使用hessian或者remoteobject。講講兩者的區(qū)別。hessian和ro都是基于二進制的序列化協議。即將服務器端數據對象,比如
java".net"php等轉化到某個2進制的數據,從而在客戶端再次反序列化成as
數據對象。并且這兩種方式都能直接暴露服務器端方法(通過配置),因此可以看作是直接請求遠程對象的方法那樣使用,當然這個過程仍然是異步的。因此他們的
好處就是,請求容易,服務端實現容易,傳輸速度快,數據量大,客戶端直接識別這樣的好處。hessian是開源組織的通訊協議,起源很早,而且實現的語言很多,甚至包含C++,ruby等。他并不是為flash而生的。java上的實現是以servlet形式實現的,因此他是以繼承自他的servlet這樣的框架規(guī)范,來控制你的返回值的序列化,從某種含義說,他仍然算是傳統web框架。因為開源,因此可以對他框架可以靈活修改。
ro是基于adobe的amf通訊協議,當然現在也開源了,實現ro的有很多服務,比如最常聽說到的LCDS,或者他的開源簡化版BlazeDS,amfPhp,webrob等等。LCDS
是java實現,也是官方出品,自然功能最強大了,他的ro部分(這只是LCDS最基礎的功能)類似spring的aop,直接對配置的java類進行切
入,因此對于設計模式來說,他打破了傳統的web請求模式,純粹通過訪問一個messagebroker這個servlet來訪問java類。因此如果不
太容易接受新架構或者對新架構不能靈活改變的話,會有些麻煩,比如說,他獲取不到傳統request對象。當然這也是可以完全通過改造程序框架得到解決
的。
最后
項目還在進行中,我還在緩慢的學習Flex的過程中。
可以感覺到領導們都很忙,而最底層的人卻很清閑,包括我,還有時間在這里寫B(tài)LOG呢。
很想幫上忙,卻幫不上什么,只希望這個項目的技術框架早一些定下來。
歡迎來訪!^.^!
本BLOG僅用于個人學習交流!
目的在于記錄個人成長.
所有文字均屬于個人理解.
如有錯誤,望多多指教!不勝感激!