999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于業務功能的Web應用與桌面程序交互方法研究

2018-09-20 11:19:30張靜
數碼設計 2018年4期
關鍵詞:程序

張靜*

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

引言

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

1 技術理論方法

1.1 web應用啟動桌面程序

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

1.2 應用之間消息通訊機制

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

2 方法實施應用

2.1 web應用啟動桌面程序

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

圖1 自定義協議注冊內容

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

圖2 web應用啟動應用助手

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

圖3 應用助手啟動桌面程序

2.2 應用之間消息通訊

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

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

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

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

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

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

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

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

圖5 應用助手中轉消息通訊流程圖

3 有束語

針對勝利油田業務應用系統之間孤立存在、業務功能無法通訊及業務協同應用難的問題,攻關研究了web應用與桌面程序之間啟動與通訊方法,實現了應用助手功能,建立了Web應用與桌面程序之間的橋梁,打通了Web應用與桌面程序之間啟動與通訊的環節,達到了業務功能之間全方位互聯互通的效有,為油田信息化整合奠定了基礎。

猜你喜歡
程序
給Windows添加程序快速切換欄
電腦愛好者(2020年6期)2020-05-26 09:27:33
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
失能的信仰——走向衰亡的民事訴訟程序
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
基于VMM的程序行為異常檢測
偵查實驗批準程序初探
我國刑事速裁程序的構建
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
恐怖犯罪刑事訴訟程序的完善
主站蜘蛛池模板: 九九九精品成人免费视频7| 亚洲中文在线看视频一区| 亚洲日韩高清在线亚洲专区| h网站在线播放| 国产精品所毛片视频| 成人中文在线| 国产美女在线观看| 中文无码精品A∨在线观看不卡| 国产乱视频网站| 中文字幕在线永久在线视频2020| 欧美一区二区三区香蕉视| 国产欧美日韩专区发布| 久久黄色毛片| 人妻21p大胆| 亚洲无码在线午夜电影| 97国产在线播放| 九九免费观看全部免费视频| 国产精品一区在线观看你懂的| 国产成人精品高清不卡在线 | 免费国产一级 片内射老| 嫩草在线视频| 日本欧美视频在线观看| 国产91熟女高潮一区二区| 综合社区亚洲熟妇p| 亚洲国产看片基地久久1024| 欲色天天综合网| 热久久这里是精品6免费观看| 三上悠亚精品二区在线观看| 91福利免费| 亚洲国产精品成人久久综合影院| 国产人成乱码视频免费观看| 国产在线八区| 不卡无码网| 尤物成AV人片在线观看| 国产视频资源在线观看| 午夜久久影院| 国产精品永久久久久| 亚洲精品无码专区在线观看| 四虎影视永久在线精品| 999精品视频在线| www.精品国产| 国产成人一区| 国产乱子伦无码精品小说 | www.亚洲色图.com| 欧洲高清无码在线| 不卡无码h在线观看| 亚洲AV无码不卡无码| 91热爆在线| 四虎影视无码永久免费观看| 曰AV在线无码| 不卡无码h在线观看| 91丝袜美腿高跟国产极品老师| 国产成人91精品| 青青青亚洲精品国产| 97se亚洲综合在线| 国产成年无码AⅤ片在线| 国产成人精彩在线视频50| 热99re99首页精品亚洲五月天| 人人看人人鲁狠狠高清| 亚洲成人免费看| 国产尤物在线播放| 国产精品久久精品| 精品伊人久久久大香线蕉欧美| 五月婷婷综合色| 色135综合网| 午夜精品国产自在| 精品五夜婷香蕉国产线看观看| 日日碰狠狠添天天爽| 国产AV毛片| 欧美精品成人| 国产欧美日韩综合在线第一| 日韩在线中文| 亚洲精品片911| 国产精品国产三级国产专业不| 国产一区在线视频观看| 亚洲动漫h| 久久熟女AV| 野花国产精品入口| 亚洲美女久久| 激情午夜婷婷| 久久青青草原亚洲av无码| 欧美激情福利|