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