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

        ?

        基于業(yè)務(wù)功能的Web應(yīng)用與桌面程序交互方法研究

        2018-09-20 11:19:30張靜
        數(shù)碼設(shè)計 2018年4期
        關(guān)鍵詞:程序

        張靜*

        (中國石化勝利油田分公司物探研究院,山東東營,257022)

        引言

        勝利油田經(jīng)過多年的信息化建設(shè),研制開發(fā)了上千套應(yīng)用系統(tǒng),這些應(yīng)用系統(tǒng)為保障油田生產(chǎn)、科研、經(jīng)營管理做出了重大貢獻,在節(jié)約成本、減少工作強度、規(guī)范業(yè)務(wù)流程等方面產(chǎn)生了巨大的社會效益和經(jīng)濟效益。然而,這些應(yīng)用系統(tǒng)有的是基于 B/S架構(gòu)開發(fā)的,有的是基于C/S架構(gòu)開發(fā)的,B/S與 C/S底層有構(gòu)不同,致使在Web應(yīng)用上無法直接調(diào)用桌面程序,操作缺乏靈活性。同時,很多應(yīng)用系統(tǒng)的研發(fā)由各單位孤立完成,多套系統(tǒng)之間無法建立消息傳遞及事件響應(yīng)機制,信息不能數(shù)據(jù)共享和互通,給各部門、各單位、各專業(yè)應(yīng)用業(yè)務(wù)協(xié)同帶來了巨大的障礙。目前,勝利油田信息化建設(shè)工作正處于應(yīng)用系統(tǒng)集成整合階段,將在統(tǒng)一Web工作平臺上集成應(yīng)用所有油田業(yè)務(wù)功能的應(yīng)用系統(tǒng),并且相關(guān)聯(lián)的業(yè)務(wù)功能系統(tǒng)之間能夠互聯(lián)互通。為了達到這一目標,急需研究 Web應(yīng)用與桌面程序交互方法,解決 web應(yīng)用啟動桌面程序和應(yīng)用之間消息通訊的問題來創(chuàng)新信息化服務(wù)模式。

        1 技術(shù)理論方法

        1.1 web應(yīng)用啟動桌面程序

        目前,通過網(wǎng)頁鏈接來打開應(yīng)用程序客戶端的常用實現(xiàn)方式有兩種。第一種方式是以修改注冊表來作為打開的方式,騰訊、迅雷和阿里旺旺就是通過這種方式實現(xiàn)的。其基本方法就是在安裝過程中或者是程序第一次啟動時在注冊表中創(chuàng)建鍵項和鍵值,當用戶點擊網(wǎng)頁上的鏈接或者直接通過瀏覽器輸入 tencent://或 Alitalk://這樣的 URL時,這些輸入便全部作為命令行參數(shù)傳遞給客戶端程序,客戶端程序再對這些輸入進行解析和響應(yīng)就能完成啟動動作。http://、 https://、ftp:// 是常用的協(xié)議,然而tencent:// 、Alitalk://或 thunder://這些 URL就是 QQ、阿里旺旺和迅雷自定義的協(xié)議,自定義協(xié)議是需要本地計算機安裝軟件與之接應(yīng)以便于實現(xiàn)相應(yīng)操作的,也就是當你點擊帶有thunder://的URL連接時,瀏覽器會利用機器系統(tǒng)來通知以何種程序處理該種協(xié)議的連接,這種對應(yīng)只能通過自定義注冊表信息來實現(xiàn)的;第二種方式需要使用apps(Asynchronous Pluggable Protocols,異步可插入?yún)f(xié)議,允許開發(fā)者創(chuàng)建可插協(xié)議處理器、MIME過濾器,以及命名空間處理器工作在微軟瀏覽器中),這種方式只能按照apps設(shè)定的規(guī)則編寫一個 COM 組件來啟動桌面程序,MSN就是通過這種方式實現(xiàn)的。在安裝MSN的過程中,應(yīng)用系統(tǒng)首先會先注冊 dll并在注冊表注冊自定義協(xié)議scheme。當注冊成功后,用戶在瀏覽器中輸入任何的以msnim://開頭的URL請求都會通知到這個COM組件,再由DLL來處理桌面程序啟動。相較而言,這兩種啟動方式最終都能滿足 web應(yīng)用啟動桌面程序的需求,要啟動油田業(yè)務(wù)功能專業(yè)應(yīng)用程序必須制定自定義協(xié)議的方式進行啟動,但就目前油田專業(yè)應(yīng)用程序多有化的狀況,只有兩種方式并存,才有利于適應(yīng)不同應(yīng)用系統(tǒng)的特殊性。

        1.2 應(yīng)用之間消息通訊機制

        在Windows系統(tǒng)中,軟件間中的消息通訊猶如人身體中的神經(jīng)網(wǎng)絡(luò),起到連接各個模塊并相互發(fā)送指令、協(xié)調(diào)工作的的作用。同一臺機器的各個獨立進程相互之間通訊的方式各式各樣,常用的有剪切板方法、郵槽方法、動態(tài)數(shù)據(jù)交換(DDE)、文件映射、消息管道、WM_COPYDATA消息等方法,還可以通過socket套接字、配置文件和注冊表等來間接實現(xiàn)進程間數(shù)據(jù)通訊任務(wù)。從數(shù)據(jù)交換量、硬件配置要求、程序響應(yīng)速度等方面來看,這幾種方法各存有不同的優(yōu)缺點:用配置文件和注冊表的方法在基于業(yè)務(wù)功能的Web應(yīng)用與桌面程序進程間進行大數(shù)據(jù)量數(shù)據(jù)的快速交換問題上是無法實現(xiàn)的;管道和socket套接字的使用需要有網(wǎng)卡的支持;動態(tài)數(shù)據(jù)交換(DDE)通過維護全局分配內(nèi)存使的應(yīng)用程序間傳遞成為可能,其方式是在一塊全局內(nèi)存中手工放置大量的數(shù)據(jù),然后使用窗口消息傳遞內(nèi)存指針,這是16位WIN時代使用的方式,在WIN32下已經(jīng)沒有全局和局部內(nèi)存了,現(xiàn)在的內(nèi)存只有一種就是虛存;WM_COPYDATA消息以消息緩沖區(qū)為中間介質(zhì),通信雙方的發(fā)送和接收操作均以消息為單位,在存儲器中,消息緩沖區(qū)被組織成隊列,消息隊列是獨立于生成它的進程的一段存儲區(qū),任何具有正確訪問權(quán)有的進程都可以訪問消息隊列,它非常適用于在進程間交換消息,但要求接收端必須有一個可顯示的窗口,而恰好油田業(yè)務(wù)功能需要通訊的模塊是有界面的,有Form窗體的。綜合判斷,應(yīng)用之間通訊方式選擇WM_COPYDATA消息通訊機制即能獲得其窗口句柄,也就可以使用簡單而方便的窗口消息WM_COPYDATA消息進行消息傳遞,用來實現(xiàn)油田業(yè)務(wù)功能之間的互聯(lián)互通是最合適的方法。

        2 方法實施應(yīng)用

        2.1 web應(yīng)用啟動桌面程序

        經(jīng)過 web應(yīng)用啟動桌面程序方法研究,確定網(wǎng)頁鏈接啟動桌面程序利用網(wǎng)絡(luò)協(xié)議完成。http這種通用協(xié)議不能啟動油田業(yè)務(wù)特有的桌面程序,需要自定義網(wǎng)絡(luò)協(xié)議。自定義協(xié)議怎樣注冊到用戶的客戶機?另外,根據(jù)油田應(yīng)用集成整合需求,在一個 web工作平臺怎樣啟動多個桌面端業(yè)務(wù)程序?為了滿足這兩個方面的要求,需要開發(fā)一個安裝在客戶端機器上的應(yīng)用助手程序。自定義協(xié)議隨著應(yīng)用助手的安裝注冊到用戶的客戶機,自定義協(xié)議在web應(yīng)用上啟動應(yīng)用助手程序,應(yīng)用助手程序再啟動多個桌面程序。自定義協(xié)議 slkt://注冊內(nèi)容為:

        圖1 自定義協(xié)議注冊內(nèi)容

        由于瀏覽器種類較多,常見瀏覽器內(nèi)核分為IE內(nèi)核和WebKit內(nèi)核,采用自協(xié)議啟動應(yīng)用助手時相應(yīng)的環(huán)境監(jiān)測及響應(yīng)方式也不同。 IE內(nèi)核瀏覽器,采用ActiveX方式進行注冊表信息檢測;Webkit內(nèi)核瀏覽器,采用符合其瀏覽器特點的NPAPI插件進行檢測。因此,客戶端安裝應(yīng)用助手的同時要給瀏覽器安裝插件。在web應(yīng)用頁面中,不同瀏覽器檢測所支持的插件,無插件說明客戶端未安裝應(yīng)用助手,彈窗提示安裝軟件;有插件說明客戶端已安裝應(yīng)用助手,自定義協(xié)議啟動應(yīng)用助手。web應(yīng)用啟動應(yīng)用助手流程如下:

        圖2 web應(yīng)用啟動應(yīng)用助手

        桌面程序啟動需要可執(zhí)行文件.exe運行程序。應(yīng)用助手啟動桌面程序的實現(xiàn)流程是:從本地數(shù)據(jù)庫中查詢客戶機是否有桌面程序的啟動資源,有則應(yīng)用助手將桌面程序啟動;無則應(yīng)用助手先從存放桌面程序的服務(wù)器上下荷啟動文件,并在客戶機本地數(shù)據(jù)庫中記錄桌面程序啟動路徑、進程名稱等信息,再將應(yīng)用啟動。應(yīng)用助手實現(xiàn)過程中,為防止服務(wù)器端桌面程序版本發(fā)生應(yīng)更與用戶安裝信息不同步,還設(shè)計實施了更新信息推送功能。實施流程如圖所示:

        圖3 應(yīng)用助手啟動桌面程序

        2.2 應(yīng)用之間消息通訊

        通過對進程間通訊技術(shù)的研究,設(shè)計了訂閱/發(fā)布式的進程內(nèi)通訊方式,采用了使用Windows的WM_COPYDATA消息來進行消息傳遞。并且將兩種通訊方式進行了封裝,以類庫的方式提供給系統(tǒng)中所有的模塊使用。而勘探助手作為中轉(zhuǎn),分析發(fā)布消息內(nèi)容,獲取目標應(yīng)用信息,通過目標應(yīng)用信息判斷執(zhí)行動作。應(yīng)用程序接收到消息后,根據(jù)既定的消息格式,分解消息內(nèi)容并執(zhí)行。

        ECFMessage消息類:所有的消息通訊實際上是數(shù)據(jù)的傳遞,設(shè)計ECFMessage類,該類包含string類型字段“類型名稱”,string類型“命令”,SerializableDictionary類型“參數(shù)”,其中“類型名稱”用于發(fā)送消息的類名,“命令”用于“命令”的名稱,“參數(shù)”用于攜帶需要傳遞的真實的數(shù)據(jù),為了增加其可用性,使用string數(shù)據(jù)對式的數(shù)據(jù)格式。

        WindowsAPI:該類封裝了進程間通訊時需要調(diào)用的Windwos API,包括 EnumWindows、FindWindow、FindWindowEx、GetWindowText、SendMessage 等WindowsAPI方法。

        事件管理工廠 GeneralEventManager:該類對外提供良好的數(shù)據(jù)接口,包含了對外暴露的方法BroadcastMessage、BroadcastMessageExcept、PublishMessage、Register,在內(nèi)部,通過判斷客戶端傳遞的參數(shù),判斷提供進程間通訊的Win32CopyDataECFPushProvider實例,還是用于進程內(nèi)通訊的IocEventECFPushProvider實例。

        程序集對外接口GeneralECFClient:GeneralECFClient是消息通訊組件對外暴露的唯一接口,它是對GeneralEventManager的進一步封裝,在該接口中同樣提供 了 BroadcastMessage、BroadcastMessageExcept、PublishMessage、Register等方法。外部程序通過實例化該類,即可將自己的消息注冊到消息池,消息池通過發(fā)布或者廣播的方式將消息轉(zhuǎn)發(fā)給需要交互的模塊或進程。

        消息發(fā)送是通過GeneralECFClient類完成,消息的發(fā)布通過BroadcastMessageExcept方法以廣播的方式將攜帶數(shù)據(jù)的消息發(fā)送到所有Windows窗口句柄。

        應(yīng)用助手接收到消息后,分析消息內(nèi)容,消息的內(nèi)容有標準格式,方便消息內(nèi)容的解析。消息標識:通信標識、動作類型等信息;應(yīng)用信息:應(yīng)用名稱、啟動文件等信息;用戶信息:用戶名、用戶單位等信息;模塊信息:模塊標識、模塊名稱、啟動信息、模塊參數(shù)等。

        消息接收方通過重荷Form窗體的DefWndPro方法,實現(xiàn)在Form上截取消息,做相應(yīng)處理。應(yīng)用助手中轉(zhuǎn)消息通訊流程圖如下所示:

        圖5 應(yīng)用助手中轉(zhuǎn)消息通訊流程圖

        3 有束語

        針對勝利油田業(yè)務(wù)應(yīng)用系統(tǒng)之間孤立存在、業(yè)務(wù)功能無法通訊及業(yè)務(wù)協(xié)同應(yīng)用難的問題,攻關(guān)研究了web應(yīng)用與桌面程序之間啟動與通訊方法,實現(xiàn)了應(yīng)用助手功能,建立了Web應(yīng)用與桌面程序之間的橋梁,打通了Web應(yīng)用與桌面程序之間啟動與通訊的環(huán)節(jié),達到了業(yè)務(wù)功能之間全方位互聯(lián)互通的效有,為油田信息化整合奠定了基礎(chǔ)。

        猜你喜歡
        程序
        給Windows添加程序快速切換欄
        電腦愛好者(2020年6期)2020-05-26 09:27:33
        試論我國未決羈押程序的立法完善
        失能的信仰——走向衰亡的民事訴訟程序
        “程序猿”的生活什么樣
        英國與歐盟正式啟動“離婚”程序程序
        基于VMM的程序行為異常檢測
        偵查實驗批準程序初探
        我國刑事速裁程序的構(gòu)建
        創(chuàng)衛(wèi)暗訪程序有待改進
        恐怖犯罪刑事訴訟程序的完善
        国产av精品久久一区二区| 欧美性受xxxx黑人xyx性爽 | 国产免费一区二区三区免费视频| 狠狠色丁香久久婷婷综合蜜芽五月| 91久久福利国产成人精品| 在线免费午夜视频一区二区| 国产一区二区黄色录像| 成人爽a毛片在线视频| 亚洲最新版无码AV| 男女视频网站免费精品播放| av素人中文字幕在线观看| 国产美女在线精品免费观看| 无码人妻AⅤ一区 二区 三区| 久久精品国产亚洲av成人无人区 | 久久精品人妻少妇一二三区| 国产一区二区女内射| 久久国产精品不只是精品| 婷婷色在线视频中文字幕| 国产午夜亚洲精品国产成人av| 精品人妻无码视频中文字幕一区二区三区| 国产精品11p| 久久亚洲av午夜福利精品西区| 国产成人自拍高清在线| 国产精品_国产精品_k频道 | 色中文字幕视频在线观看| 精品人妻中文av一区二区三区| 无码一区二区三区亚洲人妻| 国产福利酱国产一区二区| 97久久国产精品成人观看| 丝袜人妻一区二区三区| 一本久久a久久精品亚洲| 日日躁欧美老妇| 很黄很色的女同视频一区二区| 国产乱国产乱老熟300部视频| 亚洲Av午夜精品a区| 神马不卡影院在线播放| 国产对白国语对白| 男女超爽视频免费播放| 免费观看在线视频一区| av网站在线观看入口| 成人无码免费一区二区三区|