[發明專利]OSGi環境下Java模塊和C模塊的通信機制的實現方法有效
| 申請號: | 201310637671.4 | 申請日: | 2013-11-27 |
| 公開(公告)號: | CN103746959B | 公開(公告)日: | 2018-04-06 |
| 發明(設計)人: | 倪同貴;鄧兵;施晨 | 申請(專利權)人: | 上海斐訊數據通信技術有限公司 |
| 主分類號: | H04L29/06 | 分類號: | H04L29/06 |
| 代理公司: | 杭州千克知識產權代理有限公司33246 | 代理人: | 周希良 |
| 地址: | 201616 上海市松*** | 國省代碼: | 上海;31 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | osgi 環境 java 通信 機制 實現 方法 | ||
技術領域
本發明涉及計算機通信的技術領域,特別是涉及一種OSGi環境下Java和C的通信機制的實現方法。
背景技術
Java語言的功能很強大,但不是萬能的。在Java語言中,丟棄了指針這個功能強大且與底層交互密切的語言工具。單從效率層面上來講,Java與C相比較,Java的執行效率遠遠低于C。對于一些算法要求比較高的,Java便不是最好的選擇。Java是一種面向對象的語言,在各種紛繁復雜的APP應用中,Java備享贊譽,美名遠播。這樣就帶來了Java與C共存協同合作的問題。Java的創造者們在開發之初就已經考慮到了這一點,在Java中提供了與C/C++的編程接口,這就是Java本機接口(Java Native Interface,JNI)。
Unix Domain Socket即Uinx域套接字,用于同一臺機上運行的進程之間的通信。Unix域套接字的執行效率比因特網域的套接字更高,它是實現Java與C通信的橋梁。
Open Service Gateway Initiative,即OSGi(JSR291)亦稱做Java語言的動態模塊系統,它為模塊化應用的開發定義了一個基礎架構。簡單的說,通過OSGi可以在后臺對設備組件進行安裝、升級或卸載而無需打斷該設備的正常運行。OSGi作為Java模塊化的載體,運行在Java虛擬機(Java Virtual Machine,JVM)之上。
現有技術中,解決Java程序和C程序之間的通信問題,通常采用的方式有如下幾種:
(1)Socket通信方式
Socket是建立在傳輸協議(主要是TCP和UDP)上的一種套接字規范。套接字屏蔽了底層通信軟件和具體操作系統的差異,使得任何兩臺安裝了TCP協議軟件和實現了要節制規范的計算機之間的通信成為可能。利用標準的Socket通信的方法,可以實現任何平臺任何進程之間的Socket通信,從而實現信息的傳遞。然而,這種實現方案只能運行在任何兩臺安裝了TCP協議的機器之間,利用網絡套接字通信,而在其他環境下則無法運行及通信。
(2)文件共享方式
通信雙方將需要傳遞的參數等信息,通過文件進行傳遞。然而,這種方法需要注意線程同步和安全等問題,而且其效率也相對比較低下。同時,由于該方式雖然較為簡單易用,但是對文件的操作的安全性則成了通信的最大障礙。因此,在對效率要求比較高且對數據安全要求比較高的場合,這種方式便不可取了。
(3)通過JNI方式
JNI是編寫Java本機方法和把JVM嵌入到本機應用程序中的標準接口。通過JNI編寫程序,可以很方便的做到跨平臺移植。采用JNI是目前為止較為流行的Java通信方式。單獨使用JNI給JAVA與C之間的通信帶來較大的靈活性。但是JNI本身只是一系列通用接口,其實現依賴于設計者本身的技術解決方案,因此帶來不確定性。
綜上所述,現有的方案的運行環境各異且各有優缺點,有的運行于不同主機,有的運行于JVM。OSGi是近年來新提出的標準,Java模塊化是目前比較熱門的發展趨勢,因此在嵌入式平臺下,OSGi環境中,提出一套Java與C的通信解決方案,同時能夠解決通信安全、通信效率等問題則顯得非常有必要。
發明內容
鑒于以上所述現有技術的缺點,本發明的目的在于提供一種OSGi環境下Java和C的通信機制的實現方法,使得JAVA環境下的任務和C環境的任務能夠互相通信。
為實現上述目的及其他相關目的,本發明提供一種OSGi環境下Java和C的通信機制的實現方法,其中Java程序運行在OSGi框架下,C程序運行于linux系統上,所述實現方法至少包括:在OSGi環境下注冊中轉消息Bundle,使Java程序能夠使用消息服務,同時能響應C程序發送過來的消息;C程序與中轉消息Bundle建立通訊socket,或者Java程序通過向中轉消息Bundle發起通訊請求,由中轉消息Bundle建立與C程序的socket;C程序通過中轉消息Bundle收發socket消息來與Java程序通訊;Java程序通過中轉消息Bundle的消息服務與C程序通訊。
根據上述的OSGi環境下Java和C的通信機制的實現方法,其中:中轉消息之間采用Unix域套接字進行通信。
根據上述的OSGi環境下Java和C的通信機制的實現方法,其中:中轉消息包括消息頭和消息數據。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于上海斐訊數據通信技術有限公司,未經上海斐訊數據通信技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310637671.4/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種增加骨密度保健膠囊及其制備方法
- 下一篇:一種推車





