亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種數(shù)字家庭中間件系統(tǒng)的制作方法

文檔序號(hào):6552374閱讀:223來(lái)源:國(guó)知局
一種數(shù)字家庭中間件系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開(kāi)了一種數(shù)字家庭中間件系統(tǒng),包括:底層硬件層,操作系統(tǒng)以及驅(qū)動(dòng)層,應(yīng)用程序接口API層,java平臺(tái)層,應(yīng)用程序?qū)?,其中:底層硬件層包括物理鏈接模塊,操作系統(tǒng)層包括驅(qū)動(dòng)適配模塊、傳輸模塊,應(yīng)用程序借口層包括服務(wù)模塊、模板模塊,而將原來(lái)的應(yīng)用模塊拆分為2層。本發(fā)明實(shí)施例使面向上層應(yīng)用的模塊與底層硬件的模塊的分層更加的合理,既便于根據(jù)需求合理增減功能模塊,提高資源的利用率,同時(shí)利用java虛擬機(jī)的優(yōu)勢(shì)盡量屏蔽底層的差異給上層提供一個(gè)一致合理的應(yīng)用程序開(kāi)發(fā)接口。
【專利說(shuō)明】一種數(shù)字家庭中間件系統(tǒng)

【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及數(shù)字家庭【技術(shù)領(lǐng)域】,具體涉及一種數(shù)字家庭中間件系統(tǒng)。

【背景技術(shù)】
[0002] 數(shù)字家庭網(wǎng)絡(luò)在一些發(fā)達(dá)國(guó)家或地區(qū)發(fā)展較快,如美歐和日本這些地區(qū)的一些 著名的大公司首先進(jìn)入該市場(chǎng),他們不僅研制和開(kāi)發(fā)了數(shù)字家庭網(wǎng)絡(luò)的平臺(tái)和制定了相關(guān) 的標(biāo)準(zhǔn),而且推出了一系列的數(shù)字家庭網(wǎng)絡(luò)的產(chǎn)品,如接口卡,家庭網(wǎng)關(guān),小型服務(wù)器,各 種物理量的傳感器。各種電器/設(shè)備的控制器和驅(qū)動(dòng)器!信息的收發(fā)器等"豐富的網(wǎng)絡(luò)產(chǎn) 品,不僅支持了數(shù)字家庭網(wǎng)絡(luò)系統(tǒng),而且進(jìn)一步推動(dòng)了數(shù)字家庭網(wǎng)絡(luò)技術(shù)的發(fā)展,開(kāi)拓了 數(shù)字家庭網(wǎng)絡(luò)系統(tǒng)的大市場(chǎng)"目前國(guó)內(nèi)也出現(xiàn)了一些致力于家庭網(wǎng)絡(luò)技術(shù)研究和推廣的 企業(yè),但國(guó)內(nèi)家庭網(wǎng)絡(luò)的發(fā)展較慢。到目前為止,在家庭里擁有多臺(tái)PC的情況還不多見(jiàn)。 隨著嵌入式系統(tǒng)的快速發(fā)展,嵌入式產(chǎn)品已經(jīng)在數(shù)字家庭領(lǐng)域得到了應(yīng)用。一方面,隨著嵌 入式Internet時(shí)代的到來(lái),嵌入式設(shè)備與網(wǎng)絡(luò)相結(jié)合,實(shí)時(shí)自動(dòng)的互換信息已經(jīng)慢慢的蓬 勃發(fā)展。但由于各種原因,應(yīng)用系統(tǒng)之間甚至同一個(gè)應(yīng)用系統(tǒng)之內(nèi)都存在著很大的異質(zhì)性。 那么如何在由眾多不同的嵌入式系統(tǒng)(不同的體系結(jié)構(gòu)、不同的微處理器、不同的支撐軟 件、不同的接口協(xié)議)所構(gòu)成的分布異構(gòu)的動(dòng)態(tài)網(wǎng)絡(luò)環(huán)境下,解決基于多嵌入式系統(tǒng)的跨 平臺(tái)的應(yīng)用互連和互操作問(wèn)題呢?亦即如何構(gòu)建一個(gè)標(biāo)準(zhǔn)的通用性支撐軟件平臺(tái),可以滿 足若干個(gè)相互異構(gòu)的嵌入式系統(tǒng)與嵌入式系統(tǒng)、嵌入式系統(tǒng)與PC機(jī)之間的互通互連和互 操作的特殊要求呢?目前看來(lái),中間件(middleware)技術(shù)向數(shù)字家庭嵌入式系統(tǒng)作遷移, 才能擔(dān)此重任。另一方面,隨著嵌入式系統(tǒng)在各行業(yè)中的深入應(yīng)用,嵌入式軟件的開(kāi)發(fā)越來(lái) 越受矚目。如何高效率地開(kāi)發(fā)數(shù)字家庭系統(tǒng)中的應(yīng)用軟件,是一個(gè)關(guān)鍵問(wèn)題。將中間件技 術(shù)引入到嵌入式應(yīng)用軟件的開(kāi)發(fā)中,能最大限度地支持上層應(yīng)用軟件的開(kāi)發(fā)。因?yàn)橹虚g件 技術(shù)可以屏蔽各類硬件平臺(tái)和操作系統(tǒng)的結(jié)構(gòu)差異和技術(shù)細(xì)節(jié),向應(yīng)用程序開(kāi)發(fā)人員提供 簡(jiǎn)單統(tǒng)一的接口,使他們把精力更多地集中在應(yīng)用系統(tǒng)的設(shè)計(jì)開(kāi)發(fā)上,能加快開(kāi)發(fā)進(jìn)度,降 低開(kāi)發(fā)成本,提高產(chǎn)品競(jìng)爭(zhēng)力。總之,一是嵌入式系統(tǒng)要求互連并接入Internet,實(shí)現(xiàn)分布 式的普適計(jì)算,二是嵌入式應(yīng)用軟件的開(kāi)發(fā)追求高效率、低成本、高質(zhì)量、可擴(kuò)展、可維護(hù), 所以有關(guān)數(shù)字家庭的嵌入式中間件技術(shù)應(yīng)運(yùn)而生。
[0003] 現(xiàn)有的數(shù)字家庭中間件系統(tǒng)有以下模塊組成,物理連接模塊、驅(qū)動(dòng)適配模塊、傳輸 模塊、服務(wù)模塊、模板模塊、應(yīng)用模塊,物理連接模塊通過(guò)驅(qū)動(dòng)適配模塊與傳輸模塊連接,傳 輸模塊通過(guò)服務(wù)模塊與模板模塊連接,模板模塊連接應(yīng)用模塊。數(shù)字家庭中間件系統(tǒng)將信 息服務(wù)和設(shè)備功能服務(wù)在數(shù)字家庭中無(wú)縫結(jié)合,從服務(wù)層面上解決了家庭設(shè)備和信息服務(wù) 的標(biāo)準(zhǔn)化與融合問(wèn)題。
[0004] 以上的技術(shù)雖然能夠很好的將信息服務(wù)和設(shè)備功能服務(wù)結(jié)合在一起,也給出了較 詳細(xì)的模塊劃分,但沒(méi)有考慮到不同的用戶有著不同的需求,首先并不是所有的模塊都一 定要用上。其次在不同的平臺(tái)上運(yùn)行該中間件系統(tǒng),需要對(duì)以上幾乎所有的模塊做出修改, 這樣劃分出通用性不強(qiáng),這也決定了未來(lái)的數(shù)字家庭中間件系統(tǒng)應(yīng)該能適用于各種平臺(tái), 并且能夠根據(jù)需求量體裁衣,應(yīng)當(dāng)對(duì)可能修改的模塊做一些整合。


【發(fā)明內(nèi)容】

[0005] 本發(fā)明就是要解決目前的數(shù)字家庭中間件系統(tǒng)模塊劃分以及通用性問(wèn)題。為解決 這一問(wèn)題,設(shè)計(jì)一種基于java虛擬機(jī),按層次劃分為主的數(shù)字家庭中間件系統(tǒng)。
[0006] 本發(fā)明實(shí)施例中的一種數(shù)字家庭中間件系統(tǒng),包括:
[0007] 底層硬件層,操作系統(tǒng)以及驅(qū)動(dòng)層,應(yīng)用程序接口 API層,java平臺(tái)層,應(yīng)用程序 層,其中:底層硬件層包括物理鏈接模塊,操作系統(tǒng)層包括驅(qū)動(dòng)適配模塊、傳輸模塊,應(yīng)用程 序借口層包括服務(wù)模塊、模板模塊,而將原來(lái)的應(yīng)用模塊拆分為2層。
[0008] 所述java平臺(tái)層可由3個(gè)具體小模塊組成,分別為java虛擬機(jī),窗口圖形系統(tǒng), java本地接口。
[0009] 本發(fā)明具有如下有益效果,劃分模塊,使面向上層應(yīng)用的模塊與底層硬件的模塊 的分層更加的合理,既便于根據(jù)需求合理增減功能模塊,提高資源的利用率,同時(shí)利用java 虛擬機(jī)的優(yōu)勢(shì)盡量屏蔽底層的差異給上層提供一個(gè)一致合理的應(yīng)用程序開(kāi)發(fā)接口。Java平 臺(tái)可以發(fā)揮它內(nèi)在的優(yōu)勢(shì),簡(jiǎn)化大而復(fù)雜的軟件系統(tǒng)開(kāi)發(fā)的難度。

【專利附圖】

【附圖說(shuō)明】
[0010] 為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn) 有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本 發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以 根據(jù)這些附圖獲得其它的附圖。
[0011] 圖1是本發(fā)明實(shí)施例中的數(shù)字家庭中間件系統(tǒng)的結(jié)構(gòu)示意圖。

【具體實(shí)施方式】
[0012] 下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完 整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;?本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其它 實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0013] 將模塊重新劃分,可以分為5層,底層硬件層,操作系統(tǒng)以及驅(qū)動(dòng)層,應(yīng)用程序接 口 API層,java平臺(tái)層,應(yīng)用程序?qū)?。具體劃分方法:底層硬件層包括物理鏈接模塊,操作 系統(tǒng)層包括驅(qū)動(dòng)適配模塊、傳輸模塊,應(yīng)用程序借口層包括服務(wù)模塊、模板模塊,而將原來(lái) 的應(yīng)用模塊拆分為2層。Java平臺(tái)層可由3個(gè)具體小模塊組成,分別為java虛擬機(jī),窗口 圖形系統(tǒng),java本地接口。具體結(jié)構(gòu)劃分如圖1中所示。
[0014] 層次劃分使數(shù)字家庭中間件的系統(tǒng)結(jié)構(gòu)更加清晰,通用性更強(qiáng)。面對(duì)系統(tǒng)平臺(tái)和 需求的多樣性,一般只需對(duì)其中的一層作修改即可。模塊的合理劃分給數(shù)字家庭中間件系 統(tǒng)的設(shè)計(jì),增加了更多的靈活性。底層硬件多種多樣,除了處理器和內(nèi)存外,還包括各種各 樣的外部設(shè)備,因此還需要屏蔽下層各種設(shè)備的差別,給應(yīng)用開(kāi)發(fā)提供一個(gè)統(tǒng)一的平臺(tái)。操 作系統(tǒng)和驅(qū)動(dòng)層則負(fù)責(zé)協(xié)調(diào)不同的底層硬件,向上提供相對(duì)應(yīng)的接口,這樣可以對(duì)操作系 統(tǒng)的內(nèi)核進(jìn)行動(dòng)態(tài)的裁剪,使資源的使用效率到達(dá)最高。應(yīng)用程序接口 API層則負(fù)責(zé)銜接 操作系統(tǒng)層,屏蔽操作系統(tǒng)復(fù)雜的功能操作,向上一層提供統(tǒng)一而又簡(jiǎn)潔的API函數(shù)應(yīng)用 接口。在應(yīng)用層增加 Java平臺(tái),借用java虛擬機(jī)與平臺(tái)無(wú)關(guān)性的優(yōu)勢(shì)屏蔽底層的差異,可 以給上層提供一個(gè)一致合理的應(yīng)用程序開(kāi)發(fā)接口,充分發(fā)揮它內(nèi)在的優(yōu)勢(shì),更大程度的簡(jiǎn) 化大而復(fù)雜的軟件系統(tǒng)開(kāi)發(fā)的難度。
[0015] (1) java虛擬機(jī)的平臺(tái)無(wú)關(guān)性
[0016] Java虛擬機(jī)(JVM) -種用于計(jì)算機(jī)設(shè)備的規(guī)范,可用不同的方式(軟件或硬件) 加以實(shí)現(xiàn)。編譯虛擬機(jī)的指令集與編譯微處理器的指令集非常類似。Java虛擬機(jī)包括一 套字節(jié)碼指令集、一組寄存器、一個(gè)棧、一個(gè)垃圾回收堆和一個(gè)存儲(chǔ)方法域。Java虛擬機(jī) (JVM)是可運(yùn)行Java代碼的假想計(jì)算機(jī)。只要根據(jù)JVM規(guī)格描述將解釋器移植到特定的計(jì) 算機(jī)上,就能保證經(jīng)過(guò)編譯的任何Java代碼能夠在該系統(tǒng)上運(yùn)行。這些特性決定了 java 虛擬機(jī)的平臺(tái)無(wú)關(guān)性。
[0017] (2) java平臺(tái)系統(tǒng)的效率優(yōu)化以及移植的實(shí)現(xiàn)
[0018] 一般的數(shù)字家庭中間件系統(tǒng)沒(méi)有針對(duì)嵌入式系統(tǒng)進(jìn)行有效優(yōu)化,導(dǎo)致Java的運(yùn) 行效率不高,造成大量的Java應(yīng)用無(wú)法移植到嵌入式系統(tǒng),其次基于嵌入式系統(tǒng)的Java計(jì) 算模式不完善,使得嵌入式系統(tǒng)Java計(jì)算形式單一,制約了 Java在嵌入式系統(tǒng)的應(yīng)用。
[0019] Java TV API是基于Personal Java應(yīng)用環(huán)境的應(yīng)用程序接口,是Java平臺(tái)面向 MHP終端的擴(kuò)展,它提供了對(duì)MHP終端特有功能的控制,包括對(duì)業(yè)務(wù)信息數(shù)據(jù)庫(kù)的訪問(wèn)、業(yè) 務(wù)選擇、TV上的媒體播放器控制等。Java TVAPI是針對(duì)終端媒體及接收功能的,不包括其 他電子設(shè)備共有的API。由于Java TVAPI是獨(dú)立于硬件和物理線纜傳輸協(xié)議的更抽象的高 層協(xié)議,因此也可以在一些現(xiàn)存的標(biāo)準(zhǔn)中使用。從整體上講,Java體系由于語(yǔ)言特點(diǎn)、運(yùn)行 系統(tǒng)、計(jì)算模式、平臺(tái)版本上的獨(dú)到之處,使之成為應(yīng)用程序開(kāi)發(fā)的重要的、優(yōu)秀的工具。
[0020] 1)業(yè)務(wù)和業(yè)務(wù)選擇
[0021] 業(yè)務(wù)是指呈現(xiàn)在終端上的各種元素,是可選擇的。業(yè)務(wù)信息(Service Information,SI)表達(dá)的是關(guān)于視音頻數(shù)據(jù)流的內(nèi)容的信息。現(xiàn)在使用的SI具有多種不同 的標(biāo)準(zhǔn)。在MHP終端的Java TV API中,由于底層的透明性,各種格式的SI可以通用于所有 的應(yīng)用。SI對(duì)象模型為應(yīng)用提供該庫(kù)的多視圖。通過(guò)制定一個(gè)特定的視圖,應(yīng)用可以僅涉 及到SI庫(kù)的一部分。SI庫(kù)的視圖包括工具(Utility)、導(dǎo)航(Navigation)、指南(Guide) 和傳輸(Transport)。工具視圖提供對(duì)一般對(duì)象和輔助對(duì)象(事件和異常等)實(shí)例化的手 段。導(dǎo)航視圖提供的對(duì)象用于在業(yè)務(wù)中導(dǎo)航。指南視圖表達(dá)與EPG相關(guān)的對(duì)象。
[0022] 業(yè)務(wù)選擇API支持應(yīng)用以簡(jiǎn)單高級(jí)的方式控制業(yè)務(wù)的呈現(xiàn),而不需了解業(yè)務(wù)的內(nèi) 部細(xì)節(jié)。它將多個(gè)繁瑣的操作封裝在簡(jiǎn)單的方法調(diào)用中。業(yè)務(wù)呈現(xiàn)環(huán)境用Service Context 來(lái)表達(dá),其中的選擇方法可以用來(lái)呈現(xiàn)一個(gè)業(yè)務(wù)。該選擇是異步的,操作的完成通過(guò)事件來(lái) 通知,失敗時(shí)報(bào)異常。終端可以對(duì)支持的Service Context類實(shí)例數(shù)目進(jìn)行限制。
[0023] 先分配調(diào)整棧指針WPTR為前3個(gè)參數(shù)和局部變量分配保存的臨時(shí)空間,并保存。 接下來(lái),就需要構(gòu)造一個(gè)ST20的調(diào)用棧幀,使得它能夠調(diào)用本地方法,并且順利返回。這需 要根據(jù)Java函數(shù)的屬性得知其Java參數(shù)的個(gè)數(shù)大小,將Java參數(shù)依次彈出Java棧,同時(shí) 按照ST20C的傳參格式壓到棧中,同時(shí)保證前3個(gè)參數(shù)是存放在3個(gè)寄存器中,完成參數(shù)傳 遞后,由本地函數(shù)的指針地址調(diào)用該函數(shù)。如果Java方法有返回值,就將存放在Areg中的 返回值存入Java棧頂,這樣就完成是Java本地調(diào)用。最后為了使本函數(shù)正常返回,還需要 調(diào)整ST20的棧指針到調(diào)用前的位置。
[0024] 2)文件系統(tǒng)操作的修改
[0025] Java系統(tǒng)包含許多類,其中一些基本的核心類的字節(jié)碼文件都已經(jīng)靜態(tài)編譯連 接進(jìn)執(zhí)行代碼中,但是仍然還有許多類需要在運(yùn)行時(shí),根據(jù)類名由不同的類加載器(Class Loader)動(dòng)態(tài)調(diào)入字節(jié)碼,然后分析加載類的各個(gè)成員,之后才可以訪問(wèn),引用類。
[0026] ①本地方法的調(diào)用移植
[0027] Java規(guī)范中規(guī)定了 Java虛擬機(jī)的5大特性,指令系統(tǒng),寄存器,棧,方法儲(chǔ)存區(qū)等。 但是僅僅有這幾部分,一個(gè)Java內(nèi)核是只能做最基本的運(yùn)算,程序跳轉(zhuǎn),調(diào)用等功能,它根 本不能做最基本的字符打印輸出,文件訪問(wèn)等與硬件相關(guān)的功能,也不能完成復(fù)雜圖形繪 制,電視節(jié)目解析播放等多媒體功能,也不能做任何與平臺(tái)硬件有關(guān)的任務(wù)。這一方面也是 Java規(guī)范所希望的"一次編譯,可到處運(yùn)行"的可移植性。
[0028] 為了能在保持Java虛擬機(jī)的獨(dú)立性同時(shí)擴(kuò)充虛擬機(jī)的功能,Java規(guī)范引入了 Java本地接口 JNI的技術(shù)。在Java語(yǔ)言中,一個(gè)類class可以包含一種特殊的函數(shù)方法 method,它是受native關(guān)鍵字修飾的。這一類函數(shù)是沒(méi)有具體的實(shí)現(xiàn)體的。同時(shí),它與虛 函數(shù)也不同,調(diào)用虛函數(shù)在編譯和執(zhí)行時(shí),會(huì)靜態(tài)、動(dòng)態(tài)綁定調(diào)用一個(gè)子類的同名函數(shù),虛 函數(shù)的執(zhí)行的代碼最終還是某個(gè)之類的Java代碼。而native method是與之不同的一類方 法,編譯器不需要對(duì)它做任何函數(shù)綁定,它只需要將這個(gè)函數(shù)的屬性標(biāo)明為native,讓解釋 器動(dòng)態(tài)執(zhí)行的時(shí)候去選擇一個(gè)對(duì)應(yīng)的本地方法來(lái)執(zhí)行。
[0029] 這個(gè)機(jī)制使得Java能夠訪問(wèn)一些硬件相關(guān)的功能,而且這使得同一個(gè)Java程序 可以在不同的硬件平臺(tái)上執(zhí)行,盡管調(diào)用的是同一個(gè)native method,但是解釋器在執(zhí)行的 時(shí)候,會(huì)根據(jù)自己的硬件特性,選擇執(zhí)行具體的本地功能。這也是為什么Java程序編譯后 的字節(jié)碼流,可以在不同的平臺(tái)上勿須重編譯就可以運(yùn)行,而且得到基本相同的結(jié)果。這些 都依賴與不同平臺(tái)上Java本地接口的實(shí)現(xiàn)的配合。因此,Java本地接口也是Java虛擬機(jī) 移植過(guò)程中的重要的一個(gè)環(huán)節(jié)。
[0030] 可以看出為了訪問(wèn)硬件相關(guān)的功能,就必須實(shí)現(xiàn)對(duì)應(yīng)的native方法來(lái)完成調(diào)用。 在解釋器的實(shí)現(xiàn)中,每當(dāng)發(fā)現(xiàn)調(diào)用一個(gè)類的方法是native類型時(shí),就會(huì)通過(guò)一個(gè)樞紐去查 找該虛擬機(jī)解釋器對(duì)應(yīng)的本地實(shí)現(xiàn)的方法。去取出函數(shù)的參數(shù),用本地程序調(diào)用它,然后 將返回值填入指定的位置,使得Java程序能夠順序獲得本地方法的執(zhí)行結(jié)果。當(dāng)解釋器 準(zhǔn)備執(zhí)行Java調(diào)用函數(shù)指令的時(shí)候時(shí),如果檢查發(fā)現(xiàn)所調(diào)用的函數(shù)是native類型,就會(huì) 由該函數(shù)的字符串標(biāo)識(shí)查找對(duì)應(yīng)的本地函數(shù)(通常是C語(yǔ)言實(shí)現(xiàn)的)作為參數(shù),然后調(diào)用 CVMjnilnvokeNativeO樞紐代理函數(shù),由它去調(diào)用真正的本地函數(shù)。之所以要通過(guò)這個(gè)代 理函數(shù)調(diào)用真實(shí)的本地函數(shù)是因?yàn)镴ava的參數(shù)傳遞規(guī)則與ST20中C語(yǔ)言的參數(shù)傳遞規(guī)則 不一樣。Java函數(shù)調(diào)用會(huì)把所有的參數(shù)壓入棧中,而且返回后,其返回值正好在棧頂,這與 ST20C語(yǔ)言的規(guī)則不一樣,所以在C語(yǔ)言中要先從Java棧頂中彈出Java的參數(shù),然后調(diào)用 本地函數(shù),再把返回值壓入Java棧頂。整體移植思路是:整個(gè)編譯過(guò)程涉及到2個(gè)交叉編 譯環(huán)境。先是cygwin下為虛擬機(jī)編譯java庫(kù)類,其中部分還會(huì)轉(zhuǎn)成c文件。再編譯虛擬 機(jī)代碼。修改環(huán)境變量中編譯器的路徑和選用編譯器的設(shè)定。
[0031] 對(duì)于虛擬機(jī)引擎中的64位的常量,需要定義相對(duì)應(yīng)的(全局)結(jié)構(gòu)變量表示。傳 常數(shù)參數(shù)與返回常數(shù)值的時(shí)候,均需要做相應(yīng)的修改。
[0032] ②多線程的移植
[0033] Java虛擬機(jī)中,也有多線程的概念,有對(duì)應(yīng)的Thread類。每個(gè)線程類的實(shí)例實(shí)現(xiàn) Runnable接口,也就是線程的執(zhí)行體;同時(shí)每個(gè)線程實(shí)例也有基本的狀態(tài),需要有對(duì)應(yīng)的 方法函數(shù)來(lái)實(shí)現(xiàn)切換。Thread類中的本地接口 yield(),sleep()等需要由本地函數(shù)實(shí)現(xiàn)。 對(duì)于線程的初始化,我們可以用其他的函數(shù)的實(shí)現(xiàn)比較類似的功能。
[0034] ③數(shù)據(jù)類型的移植
[0035] Java 指令中訪問(wèn)的幾種數(shù)據(jù)類型有 byte, char, integer, long, float, double 等。 在存儲(chǔ)的時(shí)候,大部分都是占用的獨(dú)立的一個(gè)32位的字,但是long,double這2種類型是 64位雙字。由于32位的嵌入式cpu,它不支持64位的運(yùn)算,而且提供的編譯器,并沒(méi)有像 GCC那樣提供了內(nèi)建的64位數(shù)據(jù)類型和運(yùn)算支持。對(duì)于long,double類型的算術(shù)、邏輯運(yùn) 算,就無(wú)法直接用現(xiàn)有的數(shù)據(jù)類型替換,因此對(duì)于64位整數(shù)需要重新定義其類型,并增加 函數(shù)支持相應(yīng)的運(yùn)算。需要移植實(shí)現(xiàn)一個(gè)文件系統(tǒng)。經(jīng)過(guò)分析Java虛擬機(jī)所需的文件系 統(tǒng)接口,然后,利用開(kāi)發(fā)包和調(diào)試器所提供的一套訪問(wèn)宿主機(jī)器文件系統(tǒng)的接口??梢詤⒄?嵌入式操作系統(tǒng)所提供的標(biāo)準(zhǔn)文件訪問(wèn)接口,來(lái)實(shí)現(xiàn)這些接口。需要說(shuō)明的是,這個(gè)接口 訪問(wèn)的文件,并不是存儲(chǔ)在平臺(tái)。
[0036] ④實(shí)時(shí)時(shí)間的支持
[0037] 在實(shí)時(shí)嵌入式系統(tǒng)中,Java解釋引擎對(duì)時(shí)間的處理非常重要,直接影響到其任務(wù) 調(diào)度和執(zhí)行效率。Java虛擬機(jī)經(jīng)常要調(diào)用CVMtimeMillisO來(lái)獲取64位的時(shí)刻值。因此 需要編寫并優(yōu)化。優(yōu)化方案是通過(guò)代理,訪問(wèn)Windows宿主開(kāi)發(fā)平臺(tái)。在試驗(yàn)中,可以勝任 文件系統(tǒng)的工作,但是實(shí)際應(yīng)用中,應(yīng)當(dāng)在Flash上開(kāi)發(fā)一個(gè)非易失性的存儲(chǔ)系統(tǒng)。
[0038] ⑤內(nèi)存管理、信號(hào)量、互斥量的移植
[0039] 在Java的實(shí)現(xiàn)代碼中,有許多需要?jiǎng)討B(tài)分配、釋放內(nèi)存的地方。代碼中調(diào)用的是 標(biāo)準(zhǔn)C函數(shù)malloc,free函數(shù)。在一般系統(tǒng)中,也有相似的動(dòng)態(tài)內(nèi)存管理函數(shù)。在配置文 件中,新分配獨(dú)立的1M字節(jié)的內(nèi)存區(qū)域,給Java專用。在sections, c中定義全局變量,倉(cāng)ij 建獨(dú)立的Java內(nèi)存分區(qū),將原來(lái)代碼中的內(nèi)存分配調(diào)用的地方修改。
[0040] 綜上,本發(fā)明所述的基于Java虛擬機(jī)的按層次劃分的數(shù)字家庭中間件系統(tǒng),能使 現(xiàn)有已經(jīng)開(kāi)發(fā)出的應(yīng)用能夠直接應(yīng)用于數(shù)字家庭中間件系統(tǒng)的服務(wù)需求,減少應(yīng)用的重復(fù) 性開(kāi)發(fā),減少人力開(kāi)銷。合理的層次劃分使中間件系統(tǒng)的可擴(kuò)展性強(qiáng),能滿足不同層次不同 需求的人群的需要。
[0041] 本領(lǐng)域普通技術(shù)人員可以理解上述實(shí)施例的各種方法中的全部或部分步驟是可 以通過(guò)程序來(lái)指令相關(guān)的硬件來(lái)完成,該程序可以存儲(chǔ)于一計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,存儲(chǔ) 介質(zhì)可以包括:只讀存儲(chǔ)器(ROM, Read Only Memory)、隨機(jī)存取存儲(chǔ)器(RAM, Random Access Memory)、磁盤或光盤等。
[0042] 以上對(duì)本發(fā)明實(shí)施例所提供的一種數(shù)字家庭中間件系統(tǒng)進(jìn)行了詳細(xì)介紹,本文中 應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說(shuō)明只是用于幫助 理解本發(fā)明的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想, 在【具體實(shí)施方式】及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說(shuō)明書(shū)內(nèi)容不應(yīng)理解為對(duì)本 發(fā)明的限制。
【權(quán)利要求】
1. 一種數(shù)字家庭中間件系統(tǒng),其特征在于,包括: 底層硬件層,操作系統(tǒng)以及驅(qū)動(dòng)層,應(yīng)用程序接口 API層,java平臺(tái)層,應(yīng)用程序?qū)?,?中:底層硬件層包括物理鏈接模塊,操作系統(tǒng)層包括驅(qū)動(dòng)適配模塊、傳輸模塊,應(yīng)用程序借 口層包括服務(wù)模塊、模板模塊,而將原來(lái)的應(yīng)用模塊拆分為2層。
2. 如權(quán)利要求1所述的數(shù)字家庭中間件系統(tǒng),其特征在于,所述java平臺(tái)層可由3個(gè) 具體小模塊組成,分別為java虛擬機(jī),窗口圖形系統(tǒng),java本地接口。
【文檔編號(hào)】G06F9/44GK104063229SQ201410318767
【公開(kāi)日】2014年9月24日 申請(qǐng)日期:2014年7月6日 優(yōu)先權(quán)日:2014年7月6日
【發(fā)明者】蘇航, 呂志普, 劉海亮 申請(qǐng)人:中山大學(xué)深圳研究院
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1