Flex开发模型
Flex開發(fā)模型
Flex平臺支持一系列的開發(fā)模型:
僅客戶端:程序僅運行在客戶端而不使用服務(wù)器資源。
通過簡單的RPC服務(wù)訪問服務(wù)器數(shù)據(jù):程序通過Web服務(wù)與HTTP服務(wù)與遠(yuǎn)程數(shù)據(jù)進行交互。
Flex數(shù)據(jù)服務(wù):程序使用Flex數(shù)據(jù)服務(wù)的加強的數(shù)據(jù)體系結(jié)構(gòu)來提供高級特性,例如數(shù)據(jù)同步,安全與消息。
在Flash播放器上布置Flex程序
Flex程序的目標(biāo)為Flash播放器。Flex支持兩種版本的播放器。Flex程序使用安裝標(biāo)準(zhǔn)的Flash播放器來運行Flex程 序。Flex也支持Flash播放器的Debug版本,稱之為調(diào)試播放器。Flex程序開發(fā)者在開發(fā)過程中使用Flash調(diào)試播放器。Flash調(diào)試播放 器默認(rèn)情況下與Flex Builder和Flex數(shù)據(jù)服務(wù)同時安裝,對于開發(fā)者而言,支持如下的重要特性:
錯誤報告可以使用我們直接將運行錯誤與警告信息寫入日志文件。Flash調(diào)試播放器也會捕捉trace()函數(shù)的輸出并寫入日志文件。
調(diào)試支持可以使我們調(diào)試我們的Flex程序所使用的ActionScript文件。
僅客戶端程序
我們通常將我們的Flex布置為嵌入在HTML,ColdFusion, PHP或是其他類型網(wǎng)頁中的SWF文件。用戶通過請求相關(guān)的網(wǎng)頁來運行我們的Flex程序,這是為了Flash播放器的執(zhí)行而下載到我們的瀏覽器中的。盡 管大多數(shù)的Flex程序提供了一定程度的服務(wù)器交互,當(dāng)運行在客戶端時我們可以編寫Flex程序來提供獨立的功能。
使用HTTPService和WebService進行數(shù)據(jù)訪問
Flex HTTPService與WebService標(biāo)簽可以讓我們從遠(yuǎn)程服務(wù)器獲取數(shù)據(jù)。這些標(biāo)簽與稱之為遠(yuǎn)程過程調(diào)用(RPC)組件,使我們的程序與遠(yuǎn)程 服務(wù)器進行交互,從而向我們的程序提供數(shù)據(jù),或者是使我們的程序向服務(wù)發(fā)送數(shù)據(jù)。使用Flex 2 SDK,我們可以構(gòu)建從Web程序服務(wù)器訪問遠(yuǎn)程數(shù)據(jù)的程序,例如ColdFusion,或者是PHP,通過SOAP(Web服務(wù))或者是HTTP的 GET或POST請求(HTTP服務(wù))。網(wǎng)絡(luò)程序取得合適的數(shù)據(jù)(例如通常是從數(shù)據(jù)庫),格式化(通常為XML),并且返回到客戶端程序。
為了安全,在默認(rèn)情況下Flash播放器并不允許程序從一個域訪問遠(yuǎn)程數(shù)據(jù)源,除非這個域是程序所服務(wù)的域。所以,遠(yuǎn)程服務(wù)器必須是與我們程序所在的服務(wù)器在同一個域內(nèi),或者是遠(yuǎn)程的服務(wù)器必須定義一個crossdomain.xml文件。
一個crossdomain.xml文件是一個XML文件,為服務(wù)器提供了一種方法來表明他的數(shù)據(jù)或文檔對于一定域的SWF文件是可見的,或者是對所有的域。crossdomain.xml文件必須放在Flex程序交互的服務(wù)器的根上。
使 用Flex 2 SDK,Flash播放器提供了界面開發(fā)的平臺,這樣客戶端與邏輯表示都位于客戶機上。在Flash播放器中運行的Flex 2 SDK程序處理用戶交互,執(zhí)行數(shù)據(jù)驗證,執(zhí)行HTTP和SOAP請求,并且執(zhí)行以前在這個服務(wù)器上執(zhí)行的操作。因為Flash播放器可以運行在絕大多數(shù)的 操作系統(tǒng)與瀏覽器上,所以我們并不需要為特定的操作系統(tǒng)或是流利器進行編程。
使用Flex數(shù)據(jù)服務(wù)進行數(shù)據(jù)訪問
當(dāng)我們使用Flex數(shù)據(jù)服務(wù)來開發(fā)程序,我們可以利用加強的數(shù)據(jù)服務(wù)體系結(jié)構(gòu)。
使用加強的數(shù)據(jù)服務(wù)體系結(jié)構(gòu)
Flex數(shù)據(jù)服務(wù)提供了一個數(shù)據(jù)服務(wù)體系結(jié)構(gòu)從而極大的加強了Flex 2 SDK服務(wù)。這些加強的數(shù)據(jù)服務(wù)為了企業(yè)級程序的開發(fā)提供如下一些重要的支持:
透明的數(shù)據(jù)同步可以使得我們使多個客戶端保持同步。多個Flex客戶端可以向一個單一的服務(wù)端數(shù)據(jù)對象進行預(yù)定。Flex數(shù)據(jù)服務(wù)可以向客戶端廣播更新并發(fā)而更改,這意味著我們的客戶程序并不需要向服務(wù)器請求更新檢測。
發(fā)布與預(yù)定數(shù)據(jù)服務(wù)可以使得多個客戶程序彼此之間進行通信。例如,你可以在多個客戶端之間實現(xiàn)一個即時通信服務(wù)。
JMS消息支持 Java消息服務(wù)(JMS)是一個Java API可以使得程序向一個Java程序發(fā)送數(shù)據(jù),或是從一個Java程序取回數(shù)據(jù)。
客戶端驗證可以使得我們通過使用基本的或是自定義的驗證來安全化我們的數(shù)據(jù)服務(wù)。
數(shù) 據(jù)服務(wù)體系結(jié)構(gòu)是基于潛在的消息構(gòu)造的。Flex數(shù)據(jù)服務(wù)使用XML配置文件來管理消息主題并且在服務(wù)器上進行排隊。作為配置消息的一部分,我們可以設(shè)置 最大的消息尺寸。如果一個消息超過了這個最大值,就會使用多個消息分支,而這些分開的消息會在客戶端進行重組。這使得通過網(wǎng)絡(luò)的異步數(shù)據(jù)高度成為可能。
Flex數(shù)據(jù)服務(wù)的其他RPC服務(wù)
Flex數(shù)據(jù)服務(wù)的RPC服務(wù)進行了加強來對使用AMF協(xié)議訪問遠(yuǎn)程對象提供支持。這可以使得我們訪問遠(yuǎn)程服務(wù)器上的Java對象(JavaBean,EJB,POJO)。
Flex 數(shù)據(jù)服務(wù)包含一個代理可以阻止Flex程序到遠(yuǎn)程服務(wù)器的RPC請求,重定向這些請求到特定的服務(wù)器,然后向客戶端返回響應(yīng)。因為代理扮演了遠(yuǎn)程服務(wù)器訪 問破壞者的角色,我們并不需要像在使用Flex 2 SDK時那樣,在遠(yuǎn)程服務(wù)器上定義一個crossdomain.xml文件。然而,如果他們定義了一個crossdomain.xml文件,我們?nèi)匀豢梢?直接訪問遠(yuǎn)程服務(wù)器。
Flex平臺支持一系列的開發(fā)模型:
僅客戶端:程序僅運行在客戶端而不使用服務(wù)器資源。
通過簡單的RPC服務(wù)訪問服務(wù)器數(shù)據(jù):程序通過Web服務(wù)與HTTP服務(wù)與遠(yuǎn)程數(shù)據(jù)進行交互。
Flex數(shù)據(jù)服務(wù):程序使用Flex數(shù)據(jù)服務(wù)的加強的數(shù)據(jù)體系結(jié)構(gòu)來提供高級特性,例如數(shù)據(jù)同步,安全與消息。
在Flash播放器上布置Flex程序
Flex程序的目標(biāo)為Flash播放器。Flex支持兩種版本的播放器。Flex程序使用安裝標(biāo)準(zhǔn)的Flash播放器來運行Flex程 序。Flex也支持Flash播放器的Debug版本,稱之為調(diào)試播放器。Flex程序開發(fā)者在開發(fā)過程中使用Flash調(diào)試播放器。Flash調(diào)試播放 器默認(rèn)情況下與Flex Builder和Flex數(shù)據(jù)服務(wù)同時安裝,對于開發(fā)者而言,支持如下的重要特性:
錯誤報告可以使用我們直接將運行錯誤與警告信息寫入日志文件。Flash調(diào)試播放器也會捕捉trace()函數(shù)的輸出并寫入日志文件。
調(diào)試支持可以使我們調(diào)試我們的Flex程序所使用的ActionScript文件。
僅客戶端程序
我們通常將我們的Flex布置為嵌入在HTML,ColdFusion, PHP或是其他類型網(wǎng)頁中的SWF文件。用戶通過請求相關(guān)的網(wǎng)頁來運行我們的Flex程序,這是為了Flash播放器的執(zhí)行而下載到我們的瀏覽器中的。盡 管大多數(shù)的Flex程序提供了一定程度的服務(wù)器交互,當(dāng)運行在客戶端時我們可以編寫Flex程序來提供獨立的功能。
使用HTTPService和WebService進行數(shù)據(jù)訪問
Flex HTTPService與WebService標(biāo)簽可以讓我們從遠(yuǎn)程服務(wù)器獲取數(shù)據(jù)。這些標(biāo)簽與稱之為遠(yuǎn)程過程調(diào)用(RPC)組件,使我們的程序與遠(yuǎn)程 服務(wù)器進行交互,從而向我們的程序提供數(shù)據(jù),或者是使我們的程序向服務(wù)發(fā)送數(shù)據(jù)。使用Flex 2 SDK,我們可以構(gòu)建從Web程序服務(wù)器訪問遠(yuǎn)程數(shù)據(jù)的程序,例如ColdFusion,或者是PHP,通過SOAP(Web服務(wù))或者是HTTP的 GET或POST請求(HTTP服務(wù))。網(wǎng)絡(luò)程序取得合適的數(shù)據(jù)(例如通常是從數(shù)據(jù)庫),格式化(通常為XML),并且返回到客戶端程序。
為了安全,在默認(rèn)情況下Flash播放器并不允許程序從一個域訪問遠(yuǎn)程數(shù)據(jù)源,除非這個域是程序所服務(wù)的域。所以,遠(yuǎn)程服務(wù)器必須是與我們程序所在的服務(wù)器在同一個域內(nèi),或者是遠(yuǎn)程的服務(wù)器必須定義一個crossdomain.xml文件。
一個crossdomain.xml文件是一個XML文件,為服務(wù)器提供了一種方法來表明他的數(shù)據(jù)或文檔對于一定域的SWF文件是可見的,或者是對所有的域。crossdomain.xml文件必須放在Flex程序交互的服務(wù)器的根上。
使 用Flex 2 SDK,Flash播放器提供了界面開發(fā)的平臺,這樣客戶端與邏輯表示都位于客戶機上。在Flash播放器中運行的Flex 2 SDK程序處理用戶交互,執(zhí)行數(shù)據(jù)驗證,執(zhí)行HTTP和SOAP請求,并且執(zhí)行以前在這個服務(wù)器上執(zhí)行的操作。因為Flash播放器可以運行在絕大多數(shù)的 操作系統(tǒng)與瀏覽器上,所以我們并不需要為特定的操作系統(tǒng)或是流利器進行編程。
使用Flex數(shù)據(jù)服務(wù)進行數(shù)據(jù)訪問
當(dāng)我們使用Flex數(shù)據(jù)服務(wù)來開發(fā)程序,我們可以利用加強的數(shù)據(jù)服務(wù)體系結(jié)構(gòu)。
使用加強的數(shù)據(jù)服務(wù)體系結(jié)構(gòu)
Flex數(shù)據(jù)服務(wù)提供了一個數(shù)據(jù)服務(wù)體系結(jié)構(gòu)從而極大的加強了Flex 2 SDK服務(wù)。這些加強的數(shù)據(jù)服務(wù)為了企業(yè)級程序的開發(fā)提供如下一些重要的支持:
透明的數(shù)據(jù)同步可以使得我們使多個客戶端保持同步。多個Flex客戶端可以向一個單一的服務(wù)端數(shù)據(jù)對象進行預(yù)定。Flex數(shù)據(jù)服務(wù)可以向客戶端廣播更新并發(fā)而更改,這意味著我們的客戶程序并不需要向服務(wù)器請求更新檢測。
發(fā)布與預(yù)定數(shù)據(jù)服務(wù)可以使得多個客戶程序彼此之間進行通信。例如,你可以在多個客戶端之間實現(xiàn)一個即時通信服務(wù)。
JMS消息支持 Java消息服務(wù)(JMS)是一個Java API可以使得程序向一個Java程序發(fā)送數(shù)據(jù),或是從一個Java程序取回數(shù)據(jù)。
客戶端驗證可以使得我們通過使用基本的或是自定義的驗證來安全化我們的數(shù)據(jù)服務(wù)。
數(shù) 據(jù)服務(wù)體系結(jié)構(gòu)是基于潛在的消息構(gòu)造的。Flex數(shù)據(jù)服務(wù)使用XML配置文件來管理消息主題并且在服務(wù)器上進行排隊。作為配置消息的一部分,我們可以設(shè)置 最大的消息尺寸。如果一個消息超過了這個最大值,就會使用多個消息分支,而這些分開的消息會在客戶端進行重組。這使得通過網(wǎng)絡(luò)的異步數(shù)據(jù)高度成為可能。
Flex數(shù)據(jù)服務(wù)的其他RPC服務(wù)
Flex數(shù)據(jù)服務(wù)的RPC服務(wù)進行了加強來對使用AMF協(xié)議訪問遠(yuǎn)程對象提供支持。這可以使得我們訪問遠(yuǎn)程服務(wù)器上的Java對象(JavaBean,EJB,POJO)。
Flex 數(shù)據(jù)服務(wù)包含一個代理可以阻止Flex程序到遠(yuǎn)程服務(wù)器的RPC請求,重定向這些請求到特定的服務(wù)器,然后向客戶端返回響應(yīng)。因為代理扮演了遠(yuǎn)程服務(wù)器訪 問破壞者的角色,我們并不需要像在使用Flex 2 SDK時那樣,在遠(yuǎn)程服務(wù)器上定義一個crossdomain.xml文件。然而,如果他們定義了一個crossdomain.xml文件,我們?nèi)匀豢梢?直接訪問遠(yuǎn)程服務(wù)器。
總結(jié)
- 上一篇: 天使投资家李镇樟:如何培养世界级企业家
- 下一篇: J2ME手机文件加密