亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        面向Flash組件集成的通信中間件

        2013-07-25 02:28:14王福喜王祥根
        關(guān)鍵詞:圖表服務(wù)

        李 哲,唐 穩(wěn),王福喜,王祥根

        (華北計(jì)算技術(shù)研究所,北京100083)

        0 引言

        Adobe Flash是一種基于矢量圖片、位圖、音視頻及動(dòng)作腳本等元素的交互式多媒體技術(shù),已在互聯(lián)網(wǎng)、嵌入式設(shè)備等多種場(chǎng)合得到廣泛應(yīng)用。但是,由于Flash基于虛擬機(jī)執(zhí)行,因此其執(zhí)行效率較低,不能適用于數(shù)據(jù)處理等需要大量運(yùn)算的應(yīng)用場(chǎng)合。與之相反,原生Windows或Linux程序由于直接調(diào)用操作系統(tǒng)提供的底層API,因此具有很高的執(zhí)行效率,但是直接基于操作系統(tǒng)底層API或者利用集成界面開(kāi)發(fā)工具的Visual C++等軟件開(kāi)發(fā)圖形化人機(jī)交互界面的難度大,開(kāi)發(fā)周期長(zhǎng)。為了揚(yáng)長(zhǎng)避短,滿足用戶對(duì)系統(tǒng)界面效果和執(zhí)行效率的需求,實(shí)現(xiàn)原生Windows或Linux程序與Flash組件間的集成成為一種有效的解決方案。

        近年來(lái),在原生桌面應(yīng)用程序中集成Flash組件實(shí)現(xiàn)軟件界面的開(kāi)發(fā)方式得到了越來(lái)越廣泛的應(yīng)用,尤其是在國(guó)產(chǎn)自主基礎(chǔ)軟件平臺(tái)環(huán)境下的圖形用戶界面應(yīng)用程序開(kāi)發(fā)領(lǐng)域。這種開(kāi)發(fā)方式能夠綜合原生桌面應(yīng)用程序與Flash的優(yōu)勢(shì),使用Flash實(shí)現(xiàn)軟件的界面繪制及人機(jī)交互,利用原生桌面應(yīng)用程序?qū)崿F(xiàn)系統(tǒng)中對(duì)效率要求較高的應(yīng)用,可以使應(yīng)用系統(tǒng)擁有美觀人機(jī)交互界面的同時(shí)又擁有較高的執(zhí)行效率。

        然而,F(xiàn)lash組件與原生桌面應(yīng)用程序之間的通信問(wèn)題是實(shí)現(xiàn)兩者有機(jī)集成面臨的一個(gè)難點(diǎn),已成為制約該技術(shù)推廣應(yīng)用的一個(gè)主要瓶頸。目前,Windows平臺(tái)下Flash與其容器之間的通信方法復(fù)雜多樣,適用環(huán)境限制苛刻。文獻(xiàn)[1]提出了基于Flash提供的套接字編程接口實(shí)現(xiàn)通信的方法,但是該通信方法存在通用性差、不支持異步通信、并發(fā)通信服務(wù)支持能力低等問(wèn)題。文獻(xiàn)[2-3]提出了幾種通用通信中間件的設(shè)計(jì)方法,文獻(xiàn)[4]討論了提高中間件安全性的方法,文獻(xiàn)[5-8]則分別提出了幾種在特定軟硬件環(huán)境下特定用途的通信中間件的設(shè)計(jì)方法,然而這些設(shè)計(jì)方法并非針對(duì)原生桌面應(yīng)用程序與Flash應(yīng)用集成時(shí)的通信問(wèn)題進(jìn)行設(shè)計(jì),因此并不能有效解決集成Flash應(yīng)用中存在的通信問(wèn)題。

        針對(duì)上述問(wèn)題,本文根據(jù)Flash套接字通信的特點(diǎn)設(shè)計(jì)了一種跨平臺(tái)、支持異步通信的通信中間件。該中間件利用多平臺(tái)支持的Socket進(jìn)行底層數(shù)據(jù)傳輸,實(shí)現(xiàn)了跨平臺(tái)的通信;基于消息傳遞服務(wù)實(shí)現(xiàn)了數(shù)據(jù)通信的并發(fā)處理和異步通信;針對(duì)Flash域安全模型的特點(diǎn),設(shè)計(jì)了兼容Flash安全機(jī)制的安全策略處理機(jī)制,滿足集成Flash組件的應(yīng)用對(duì)安全的需求。該通信中間件提供不同操作系統(tǒng)平臺(tái)上面向Flash組件集成的數(shù)據(jù)通信服務(wù),能夠?qū)崿F(xiàn)原生桌面應(yīng)用程序與Flash組件之間安全、可靠和高效的數(shù)據(jù)通信,為集成Flash的桌面應(yīng)用程序的開(kāi)發(fā)提供廣泛支持。

        1 通信中間件的設(shè)計(jì)

        1.1 Flash組件集成模型

        面向Flash組件集成的通信中間件的通信雙方包括用于界面繪制及人機(jī)交互的各類(lèi)Flash組件、用于處理數(shù)據(jù)的原生Windows程序和原生Linux程序,其集成模型如圖1所示。

        圖1 Flash組件集成模型

        在Flash組件集成應(yīng)用程序中,F(xiàn)lash組件實(shí)現(xiàn)美觀的圖形化界面,并將用戶的選擇、輸入等各類(lèi)交互信息通過(guò)Flash通信代理和通信服務(wù)傳遞給各類(lèi)原生應(yīng)用程序;原生應(yīng)用程序處理由Flash傳遞的對(duì)執(zhí)行效率要求高的任務(wù),對(duì)各類(lèi)數(shù)據(jù)進(jìn)行相應(yīng)處理,并將處理結(jié)果通過(guò)通信代理和通信服務(wù)發(fā)送給Flash組件,在圖形化界面中刷新顯示。

        1.2 通信中間件結(jié)構(gòu)設(shè)計(jì)

        基于上述通信中間件集成模型,本文設(shè)計(jì)了一種面向Flash組件集成的通信中間件的總體結(jié)構(gòu),如圖2所示。

        圖2 通信中間件組成結(jié)構(gòu)

        面向Flash組件集成的通信中間件主要包括通信代理和通信服務(wù)兩部分,其中:通信代理,為各類(lèi)Flash組件和原生Windows、Linux程序提供功能一致的調(diào)用接口,包括Flash通信代理、Windows程序通信代理和Linux程序通信代理三類(lèi)通信代理;通信服務(wù),為各類(lèi)通信代理提供安全、可靠和高效的數(shù)據(jù)通信服務(wù),主要由通信安全策略處理模塊、通信協(xié)議處理模塊和消息傳輸處理模塊組成。

        下面,本文分別詳細(xì)描述各模塊的主要功能及其設(shè)計(jì)與實(shí)現(xiàn)方法。

        1.3 通信代理

        通信代理為不同應(yīng)用客戶與通信服務(wù)之間的交互提供支撐,主要用于解決跨平臺(tái)環(huán)境下的通信問(wèn)題,其主要功能如下:

        (1)在通信服務(wù)中注冊(cè)應(yīng)用客戶與注銷(xiāo)應(yīng)用客戶,包括:注冊(cè)應(yīng)用客戶并獲取應(yīng)用客戶標(biāo)識(shí)符,注銷(xiāo)應(yīng)用客戶并釋放相關(guān)資源;

        (2)通信消息封裝與轉(zhuǎn)發(fā),包括:將應(yīng)用客戶的業(yè)務(wù)數(shù)據(jù)封裝成XML格式的通信消息并發(fā)送給通信服務(wù),接收通信服務(wù)發(fā)送的通信消息并轉(zhuǎn)發(fā)通知應(yīng)用客戶。

        應(yīng)用客戶、通信代理及通信服務(wù)之間的交互過(guò)程如圖3所示。

        通信代理采用基于TCP協(xié)議的實(shí)現(xiàn)方法,具體實(shí)現(xiàn)由具體的軟件平臺(tái)決定。Flash通信代理,使用Socket類(lèi)和XMLSocket類(lèi)實(shí)現(xiàn)與通信服務(wù)之間的數(shù)據(jù)交互,通過(guò)ActionScript語(yǔ)言提供的事件機(jī)制實(shí)現(xiàn)與上層Flash應(yīng)用客戶的交互;Linux/Windows通信代理,直接使用操作系統(tǒng)提供的套接字API接口實(shí)現(xiàn)與通信服務(wù)之間的數(shù)據(jù)交互,通過(guò)函數(shù)回調(diào)機(jī)制實(shí)現(xiàn)與上層原生Linux/Windows桌面應(yīng)用程序的交互?;赥CP協(xié)議的實(shí)現(xiàn)方法,使得通信代理具有跨平臺(tái)、跨機(jī)器的優(yōu)點(diǎn)。

        1.4 通信服務(wù)

        1.4.1 通信安全策略處理模塊

        通信安全策略處理模塊為通信代理與通信服務(wù)之間的交互提供基于安全配置文件的訪問(wèn)控制能力,解決各種類(lèi)型通信代理的服務(wù)請(qǐng)求的安全驗(yàn)證問(wèn)題。通信安全策略處理保證只為合法的服務(wù)請(qǐng)求提供通信服務(wù),阻止來(lái)自非法應(yīng)用客戶的服務(wù)請(qǐng)求,提升了通信中間件數(shù)據(jù)通信的安全性。

        圖3 應(yīng)用客戶、通信代理與通信服務(wù)交互過(guò)程

        安全驗(yàn)證分為Flash通信代理安全驗(yàn)證和Linux/Windows通信代理安全驗(yàn)證兩方面。對(duì)于Flash通信代理的連接請(qǐng)求,通信服務(wù)根據(jù)安全配置文件生成符合Flash域安全機(jī)制要求的套接字策略文件,并發(fā)送給Flash Player實(shí)施安全驗(yàn)證;對(duì)于Linux/Windows通信代理的連接請(qǐng)求,安全配置文件作為一個(gè)安全域地址和端口號(hào)的白名單[9],在通信服務(wù)中實(shí)施安全驗(yàn)證。為了便于通信服務(wù)提取安全域地址列表,以及根據(jù)安全配置文件生成Flash Player域安全機(jī)制規(guī)定的套接字安全策略文件,通信安全策略處理模塊使用XML來(lái)定義安全配置文件。

        安全配置文件定義了可信的安全域地址和端口號(hào)。安全域地址在<security-domain>標(biāo)簽中指定,允許的端口在<security-port>標(biāo)簽中指定。下面是一個(gè)安全配置文件的例子:

        <security-configure-file>

        <security-domain-group>

        <security-domain>192.168.17.84 </securitydomain>

        <security-port>1002< /security-port>

        </security-domain-group>

        <security-domain-group>

        <security-domain>192.168.17.86 </securitydomain>

        <security-port>1124< /security-port>

        </security-domain-group>

        </security-configure-file>

        Flash通信代理與通信服務(wù)之間通信安全策略連接建立過(guò)程如下:

        (1)Flash組件發(fā)起服務(wù)連接請(qǐng)求,F(xiàn)lash通信代理調(diào)用Socket.connect()方法;

        (2)Flash Player與通信服務(wù)建立連接;

        (3)Flash Player自動(dòng)向通信服務(wù)傳輸字符串<policyfile-request/>以請(qǐng)求策略文件;

        (4)通信服務(wù)根據(jù)安全配置文件生成套接字策略文件返回給Flash Player;

        (5)Flash Player根據(jù)套接字策略文件完成安全驗(yàn)證,通過(guò)驗(yàn)證就關(guān)閉安全驗(yàn)證連接并自動(dòng)建立通信連接,并拋出Connect事件給Flash通信代理處理;否則Flash Player自動(dòng)斷開(kāi)與通信服務(wù)的連接并拋出SecurityError事件給Flash通信代理處理。

        Linux/Windows通信代理與通信服務(wù)之間通信安全策略連接建立過(guò)程如下:

        (1)原生Linux/Windows桌面應(yīng)用程序發(fā)起服務(wù)連接請(qǐng)求,Linux/Windows通信代理向通信服務(wù)發(fā)送注冊(cè)服務(wù)請(qǐng)求消息;

        (2)通信服務(wù)從安全配置文件中提取安全域和安全端口號(hào)列表;

        (3)通信服務(wù)在安全域和安全端口號(hào)列表中搜索請(qǐng)求服務(wù)的通信代理的域地址和端口號(hào),如果匹配則允許建立連接,否則不允許連接。

        1.4.2 通信協(xié)議處理模塊

        通信協(xié)議處理模塊實(shí)現(xiàn)對(duì)通信消息的定義和處理功能,設(shè)計(jì)了通信代理與通信服務(wù)之間以及應(yīng)用客戶之間交互模式。

        在通信消息定義方面,通信協(xié)議處理模塊在TCP協(xié)議上定義了一個(gè)消息通信協(xié)議,規(guī)定了通信用戶唯一標(biāo)識(shí)符的生成方法,通信服務(wù)與通信客戶之間交互的通信消息格式以及上層應(yīng)用業(yè)務(wù)數(shù)據(jù)的通信傳輸方式,具體約定如下:

        (1)通信客戶唯一標(biāo)識(shí)符采用IP地址+處理線程號(hào)的形式表示;

        (2)通信中間件處理的通信消息格式為XML文本;

        (3)通信消息包含唯一消息標(biāo)識(shí)號(hào)、消息來(lái)源、消息發(fā)送目標(biāo)和消息類(lèi)型等信息;

        (4)通信消息包含Attribute節(jié)點(diǎn),通過(guò)Key和Value來(lái)支持自定義屬性。

        下面是一個(gè)典型的通信消息的例子:

        <Message Id=’1234’ >

        <From>192.168.17.52:1986</From>

        <To>192.168.31.104:1124</To>

        <Type>msgtype</Type>

        <Attribute>

        <Key>custom key</Key>

        <Value>custom value</Value>

        </Attribute>

        </Message>

        在通信消息處理方面,通信協(xié)議處理模塊根據(jù)通信消息的格式,定義并實(shí)現(xiàn)了一系列函數(shù)來(lái)實(shí)現(xiàn)對(duì)通信消息的封裝和解析。

        1.4.3 消息傳輸處理模塊

        消息傳輸處理模塊主要用于解決數(shù)據(jù)邊界確認(rèn)和并發(fā)通信問(wèn)題,實(shí)現(xiàn)Flash組件與原生桌面應(yīng)用程序之間高效、穩(wěn)定、可靠的數(shù)據(jù)通信,主要包括數(shù)據(jù)邊界處理、連接管理和消息隊(duì)列管理3個(gè)子模塊。其中:數(shù)據(jù)邊界處理采用特殊標(biāo)記法實(shí)現(xiàn)數(shù)據(jù)邊界區(qū)分,以字符

        91精品国产高清久久久久| 大地资源高清在线视频播放| 午夜成人理论福利片| 亚洲国产天堂久久综合网| 成人欧美一区二区三区的电影| 精品国产三级在线观看| 国产精品成人嫩妇| 青青草视频在线你懂的| 国产精品一区二区久久蜜桃| 麻豆精品一区二区综合av| 国产综合色在线精品| 一本一道波多野结衣av中文| 亚洲va中文字幕无码| 亚洲处破女av日韩精品| 亚洲 欧美 唯美 国产 伦 综合 | 亚洲另在线日韩综合色| 国产日韩午夜视频在线观看| 亚洲av色香蕉一区二区三区软件| 在线观看国产视频午夜| 少妇高潮惨叫久久久久电影69| 亚洲av永久无码精品网站在线观看| 性色av无码一区二区三区人妻| 精品国产看高清国产毛片| 欧美亚洲尤物久久综合精品| 美腿丝袜一区在线观看| 国产亚洲熟妇在线视频| 日日摸日日碰人妻无码| 最近在线更新8中文字幕免费| 亚洲成色www久久网站夜月| 国产夫妻av| 日本一区二区啪啪视频| 中文字幕精品一区二区三区| 国产无夜激无码av毛片| 国产精品无码a∨精品影院| 欧美日本国产三级在线| 激情人妻网址| 人妻少妇久久中中文字幕| 欧美亚洲日本国产综合在线美利坚| 老子影院午夜精品无码| 一级呦女专区毛片| 国产日本精品一区二区|