Flex與後台 (Application server) 交換資料的方式

基本上 Flex與後台 (Application server)交換資料的方式有下列四種:

(節錄自 d.CAT Blog)

-HttpService

-Web Service

-Remote Object

-FDS (Data Service, Messaging)

分別介紹如下:

1、HttpService

這是最簡單也最常見的資料交換方式,就是透過 Http get/post 來傳純文字資料,大部份 web application 都是這樣運作的。

這個方式的好處是非常普及,所有的後台系統一定都可以吃的下這種資料,但缺點則是 complex data type 要經過複雜的序列化與解序列化程序才能在 client/server間交換。

以 .NET 來說,任何一個 asp.net 的頁面都可以透過 get/post 與 flex client 交換資料。

2、WebService

WebService 也是很常見的選擇,好處是規則共通方便不同技術平台交換資料,缺點則同樣是某些複雜資料結構無法輕易的交換,在編碼與解碼的過程中往往會出現意外,例如 Date 的表現方式。

以 .NET 來說,使用 web service 應該是再方便不過的選擇,只要把 asmx 檔案準備好再從 flex client 呼叫即可。

3、Remote Object

這就是傳統的 Flash Remoting, 透過 AMF 以 binary 的方式來回交換資料,主要優點是體積小且支援 flash native object,例如 Array, Value Object 等都可直接傳送,在 server 端也會自動對應到正確的 type。

但由於 Flex 2 (或者應該說是 Flash Player 9 / AS3)使用的是新式的 AMF3 格式,而目前 Adobe 官方販售的 flash remoting for .net (與 open source 的 fluorine只支援舊版的 AMF0,因此沒辦法直接裝了就用。

edit: Fluorine 現在已支援 AMF3。

變通方法則是直接操作 flash.net.NetConnection 並指定使用 AMF0 與 server連線即可;Renaun 寫了一個小工具方便大家操作,可以下載直接使用。

附帶一提,這個小工具也同時適用於 AMFPHP/OpenAMF等各種 AMF0-only 的remoting gateway,所以如果你寫 Flex 2 又想透過 remoting 連接既有的各種 server remoting gateway, 抓這個就沒錯了。

4、FDS (Data Service, Messaging)

Flex Data Service 是 Flex 2 裡新出現的技術,主要目地是希望提供更自動的方法來讓 client 與 server 交換資料,它的核心實際上仍然是 AMF 與 RTMP (對,就是 Flash Media Server 用的那種),部份功能也與 FMS 重疊,但它著重在 Data Sharing 與 Exchange 這部份。

目前 FDS 只有 Java 的版本,也就是 server 端要用 java 寫,但 Adobe 宣稱將來會有 FDS for .NET 版。

不過好消息是,有一家叫 theMidnightCoders 的公司搶先推出了 FDS 相容版本,不但同時支援 AMF0 與 AMF3,更支援部份 FDS 的功能(主要是資料同步的部份,與server端的衝突處理與資料儲存)。

以 .NET 來說,付費的選擇中 weborb 算是目前最優的選擇,價錢只有官方版的一半,但功能更完整;而免錢的選擇則當非 Fluorine 莫屬。

你可能感兴趣的:(.net,webservice,Flex,Flash,asp.net)