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
恐怖犯罪刑事訴訟程序的完善
主站蜘蛛池模板: 日韩av手机在线| 亚洲AⅤ波多系列中文字幕| 免费xxxxx在线观看网站| 欧美亚洲中文精品三区| 国产小视频免费观看| 青草视频久久| 婷婷五月在线| 日本精品影院| 欧洲在线免费视频| a天堂视频| 午夜视频日本| 国产精品视频白浆免费视频| 欧美A级V片在线观看| 男人天堂亚洲天堂| 成·人免费午夜无码视频在线观看 | 婷婷亚洲最大| 欧美日韩激情在线| 国产在线观看91精品亚瑟| 国产在线无码一区二区三区| 无码人妻热线精品视频| 久久国产亚洲欧美日韩精品| 国产成人1024精品| 国产亚洲精品97AA片在线播放| 亚洲综合香蕉| 九九香蕉视频| 亚洲第一中文字幕| 欧美精品1区2区| 爆乳熟妇一区二区三区| 乱人伦中文视频在线观看免费| 国产成人一区| 人妻丰满熟妇av五码区| 亚洲无码高清免费视频亚洲| 国内丰满少妇猛烈精品播| 91免费国产在线观看尤物| 99激情网| 波多野结衣亚洲一区| 国产一级片网址| 亚洲一区二区三区麻豆| 精品国产黑色丝袜高跟鞋| 亚洲国产精品日韩av专区| 熟女成人国产精品视频| 国产成人免费手机在线观看视频| 日韩欧美国产成人| 9久久伊人精品综合| 久久精品国产亚洲AV忘忧草18| 久久毛片基地| 亚洲第一视频免费在线| 亚洲视频四区| 国产成人超碰无码| 久久久久久久久18禁秘| 97se亚洲| 天堂亚洲网| 国产成人精品一区二区三区| 免费无码网站| 日本一本正道综合久久dvd| 思思热精品在线8| 亚洲无码高清一区| 国产精品国产主播在线观看| 国产视频资源在线观看| 一级黄色网站在线免费看| 国产欧美日韩综合在线第一| 久久久久国产精品熟女影院| 呦视频在线一区二区三区| 精品久久久无码专区中文字幕| 在线免费观看a视频| 久久亚洲国产一区二区| 国产精品99r8在线观看| av大片在线无码免费| 熟妇人妻无乱码中文字幕真矢织江 | AV不卡无码免费一区二区三区| 国产一区在线观看无码| 亚洲黄网在线| 激情综合图区| 免费国产小视频在线观看| 亚洲成人网在线观看| 国产在线91在线电影| 91午夜福利在线观看| 国产成人欧美| 国产精品亚欧美一区二区| 呦女精品网站| 久久大香香蕉国产免费网站| 伊人久久精品无码麻豆精品 |