www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > 嵌入式 > 嵌入式軟件
[導讀]在和欣操作系統(tǒng)上實明的 WEB SERVICE組件

摘要 “和欣”嵌入式操作系統(tǒng)是基于CAR構件技術、支持構件化應用的操作系統(tǒng),是國家863支持的TD-SCDMA的操作系統(tǒng)標準。本文利用“和欣”嵌入式操作系統(tǒng)提供的一系列API及其CAR技術,實現了一個在“和欣”嵌入式操作系統(tǒng)上部署和提供WEB SERVICE組件
關鍵詞 “和欣”嵌入式操作系統(tǒng) CAR WEB SERVICE


引 言
    嵌入式Internet是近幾年隨著嵌入式系統(tǒng)的廣泛應用和計算機網絡技術的發(fā)展而興起的一項技術。嵌入式系統(tǒng)憑借其以應用為中心、以計算機技術為基礎、軟件硬件可裁剪的特點,贏得了巨大的市場,在應用數量上遠遠超過了各種通用計算機。隨著Internet的發(fā)展,各種設備都產生了連接性的需求,從冰箱到電表,似乎所有電器都需要連入因特網。通過為現有嵌入式系統(tǒng)增加因特網接入能力來擴展其功能,以Internet為介質實現信息交互的過程,這就產生了嵌入式Intefnet技術。
    當前,在諸多的嵌入式操作系統(tǒng)上開發(fā)應用的模式與傳統(tǒng)的桌面應用開發(fā)方式相差無幾,基本上采用強類型的系統(tǒng)編程語言(如C、Java)及其相應的開發(fā)模式來進行。隨著嵌入式設備特別是移動設備的逐漸普及,這些設備上的應用需求量遠遠大于桌面應用的需求量,應用的變化速度也相當驚人。傳統(tǒng)模式的開發(fā)周期長的弱點就暴露了出來,因此在應用開發(fā)中應引入新的開發(fā)模式以適應新形勢的發(fā)展。
    但是在家電高度智能化的今天,僅僅對傳統(tǒng)的計算機進行軟件集成是不夠的,還必須考慮到各種嵌入式設備。如何讓各種手機、PDA使用原先只有傳統(tǒng)計算機才能實現的服務,如何將電視機、微波爐等家電無縫集成到分布式系統(tǒng)中而不再需要驅動,這些都對計算機軟件體系提出了新的挑戰(zhàn)。本文利用“和欣”嵌入式操作系統(tǒng)的WEBSERVICE構件解決了上述問題。


1 和欣嵌入式操作系統(tǒng)和CAR構件技術
1.1 和欣嵌入式操作系統(tǒng)
    “和欣”嵌入式操作系統(tǒng)是一個我國完全自主研發(fā)、完全自主知識產權的國際先進的嵌入式操作系統(tǒng),在國內是最適合嵌入式設備搭建而向服務軟件結構基礎的嵌入式操作系統(tǒng)。
    “和欣”嵌入式操作系統(tǒng)是一個基于構件化軟件模型的系統(tǒng),構件化軟件設計思想貫穿于整個系統(tǒng)的設計與實現中。系統(tǒng)實現本身就是構件模式,除內核中最底層的控制部分外,所有系統(tǒng)功能都是以構件接口形式提供的。另外,操作系統(tǒng)為構件化軟件模型提供了必要的運行環(huán)境,來源不同的構件可以在該環(huán)境上實現互操作。系統(tǒng)提供了構件自動尋址/自動加載機制,用戶不必知道調用的構件程序是本地的還是來自子網上。也就是說,構件運行環(huán)境可以對用戶透明,構件化系統(tǒng)的實現,使得操作系統(tǒng)本身具有高度的靈活性和擴展性。“和欣”采用的構件技術是CAR技術。
1.2 CAR構件技術
    CAR(Component Application Run-Time)是一個國內自主知識產權的構件系統(tǒng),是由上??铺┦兰o科技有限公司開發(fā)的新一代的構件系統(tǒng)。其主要特點是從操作系統(tǒng)層面上引入“構件”的概念,所有的服務都由構件來提供,從而實現軟件的目標代碼級的重用。CAR是新一代的構件系統(tǒng),為網絡編程和網絡服務提供了強大的支持。同時,CAR是一個面向構件的編程模型,它表現為一組編程規(guī)范,包括構件、類、對象、接口等定義與訪問構件對象的規(guī)定。

2 在“和欣”上實現WEB SERVICE組件
2.1 “和欣”WEB SERVICE組件總體架構

    “和欣”WEB SERVICE組件主要由以下幾部分組成:XML解析器(此處僅實現了1個DOM解析器),1個基于XML解析器的SOAP文檔解析器,1個基于XML解析器的WSDL文檔解析器和生成器,1個CGI(作為HTTP服務器)以及1個基于XML解析器的WEB SERVICE配置文檔解析器??傮w上WEB SERVICE提供的組件如圖l所示。

    整個組件的主程序就是一個CGI的HTTP服務器,在啟動時就調用配置文件解析器。配置文件是一個XML文檔,用于配置和發(fā)布WEB SERVICE方法,包括HTTP服務的端口號,系統(tǒng)中的WEB SERVICE方法(將是一些CAR組件)及其調用方式和輸入/輸出參數等。之后就把這些內容存放在內存中,對配置的SOCKET端口進行偵聽,等待HTTP請求。HTTP服務器接收的HTTP WEBSERVICE請求包括HTTP GET/POST和SOAP兩種,服務器接收到SOAP請求之后就通過SOAP解析器進行解析,確定調用的是哪個WEB SERVICE方法,找到后就調用相應的CAR組件,并輸入參數;用SOAP解析器將得到的結果包裝成一個結果SOAP文檔,然后從原端口返回給客戶。
    這里只提供了簡單的SOAP接口解析,要進行客戶端編程時可以使用;而且“和欣”嵌入式操作系統(tǒng)上已有標準瀏覽器,只需要改動部分代碼,即可直接使用。
    以下就仔細介紹各部分的實現和提供的API。
2.2 XML解析器
    選定DOM解析器實現,暫時不提供SAX接口。因為在嵌入式系統(tǒng)上提供的WEB SERVICE文檔通常不大,所以采用DOM不會出現效率問題。
    “和欣”DOM API的實現參照了W3上的DOM規(guī)范,由于是嵌入式系統(tǒng)的關系,對W3的開源代碼xercesc接口進行了裁剪和變更。
    另外在編寫DOM接口之前,參照MFC的String類編寫了一個簡單的String類,包含最基本的字符串操作。其中字符串全部使用UTF-8存儲,具體函數參照MFC的String類,這里不在贅述。
    “和欣”DOM API的主要“類”包括:
    ①Decument類。Document對象代表了整個XML的文檔。所有其他的Node,都以一定的順序包含在Docu-ment對象之內,排列成一個樹形的結構。
    ②Node類。Node對象是DOM結構中最為基本的對象,代表了文檔樹中的一個抽象節(jié)點。在實際使用時,很少會真正地用到Node對象,而是使用諸如Element、Attr、Text等Node對象的子對象來操作文檔。Node對象為這些對象提供了一個抽象的、公共的根。雖然在Node對象中定義了對其子節(jié)點進行存取的方法,但是有一些Node子對象(如Text對象)并不存在子節(jié)點,這一點是要注意的。
    ③NodeList類。NodeList類,顧名思義,就是代表了一個包含了一個或者多個Node的列表。可以簡單地把它看作一個Nodc的數組,僅僅是為了方便Node中的某些函數使用。
    ④Element類。Element類代表的是XML文檔中的標簽元素,繼承于Node,也是Node最主要的子類。在標簽中可以包含有屬性,因而Element對象中有存取其屬性的方法,而任何Node中定義的方法,也可以用在Element對象上。
    ⑤Attr類。Attr類代表了某個標簽中的屬性,繼承于Node。
    這是一個簡化的DOM解析器,大大降低了代碼的復雜度。由于在嵌入式設備中存儲空間甚至比內存都寶貴,所以XML文件不會很大,雖然有一些在大XML文件中會降低效率的修改,但是在實際使用中不會有影響。
2.3 SOAP解析器
   
擁有了DOM解析器,可以方便地構造一個SOAP解析器,用來解析SOAP文件,得到客戶端的SOAP請求以及解析得到SOAP中的結果。同時,也可以把結果數據包裝成SOAP文件,返回給服務器端。
    “和欣”SOAP API的主要“類”包括:
    ①Soapheader類。Soapheader類繼承自Doeunaent類,Decument類的方法它都可以使用。Soapheader類主要是處理Actor和MustUnderstand兩個屬性。
    ②Soapbody類。Soapbodyr類繼承自Document類。它的處理比較復雜,暫時直接使用Document類的方法,只有一個產生錯誤SCIAP的方法。
    ③Soapclass類。Soapclass類繼承自Document類,Document類的方法它都可以使用;另外它利用Soapheader和Soapbody類做一些額外的操作以降低代碼復雜度(Soapbody類現在還沒什么用)。Soapclass類有一些包裝用的函數,以降低編程復雜度。
2.4 WEB SERVICE部署文件
    前面已經說過,WEB SERVICE方法由CAR組件的形式編寫。那么如何讓HTTP服務器找到并且動態(tài)裝載這些WEB SERVICE方法,如何確定輸入/輸出參數,HTTP服務器又將運行在什么端口上呢?這些都需要人為進行配置。所以定義一個WEB SERVICE的部署文件,以便在“和欣”上配置WEB SERVICE。WEB SERVICE部署文件的結構如下:


    其中:domainname是指本機的域名;seTvicesocket則是指HTTP CGI在哪個端口進行偵聽,啟動服務時會首先檢查這一項,默認為80。可以存在多個<soapaction>,每一個對應一個相應的WEB SERVICE方法;屬性uri是相對路徑,加上服務器的IP或者足域名可以組成整個URL。dllname是指相應的CAR編譯成的DLL的名字,這樣HTTP CGI解析到相應的WEB SERVICE方法,就可以直接裝載褶應的DLL。但是注意DLL一定要注冊過,才能被程序正確加載。如果這個函數是一個類的成員函數,那么這個類的名稱必須在<classname>中指出。<function>就是要調用的CAR的方法。<uuid>是這種方法的UUID,供以后擴展時使用。后面的<Params>表示這個函數有幾個參數,后面的3個參數表示變量名(在實際調用中投有什么用)、變量類型以及變量是輸入還是輸出,由于CAR接口的函數返回值都是HRESULT,所以沒有返同值的設置。
2.5 WSDL組件
    UDDI和WSDL是WEB SERVICE系列協(xié)議的精華部分,正是由于這兩個協(xié)議的出現,才可以由程序動態(tài)地使用別人發(fā)布的WEB SERVICE方法。但是現在UDDI還沒有和DNS一樣普及起來,所以在“和欣”WEB SERVICE中的處理方法,設置一個GETWSDL的WEB SERVICE方法。這種方法的作用就是根據配置文件生成在此機器上提供的WSDL文件,并且返回給請求的客戶端。這樣客戶端程序就可以根據WSDL來查找相應的方法。
2.6 HTTP服務器
    這個部件其實是在整個“和欣”WEB SERVICE組件中的主程序部分,啟動分析配置文件、監(jiān)聽網絡端口,分析HTTP請求.動態(tài)調用CAR DLL中的函數,調用SDAP和DOM組件把結果包裝成SOAP返回客戶端,都是此部件的功能。首先簡單介紹一下“和欣”網絡編程接口(e1asock API)
    “和欣”提供了一組套接口函數用于網絡編程,統(tǒng)稱為elasock API。與wlnsock一樣,“和欣”的elasock也是從BSD socket發(fā)展而來的。elasock APl可以實現基本的網絡通信功能,具體用法參見每個函數的文檔。elasock與Wiosock基本兼容?!昂托馈碧峁┑膃lasock的錯誤代碼與winsock有些不同。
    有了elasock API和上述開發(fā)的部件,利用“和欣”CAR技術可以構造此部件。此部件的運行流程如圖2所示。

    首先啟動主函數,分析部署文件有哪些WEB SERVICE方法,再找出監(jiān)聽端口,監(jiān)聽HTTP請求。此請求包括直接的HTTP GET/POST方式的請求和SOAP方式的請求。如果檢測到合法的請求,就到解析過的部署文件中去尋找相應的WEB SERVICE方法;如果沒有找到或者出了其他問題,就返回一個SOAP錯誤給客戶端。

    如果一切正常,就到解析過的部署文件巾尋找相應的CAR方法,動態(tài)加載,運行相應的函數,得到結果,并且把結果包裝成SOAP協(xié)議,返回給客戶端。主程序在一個循環(huán)內一直監(jiān)聽此端口,直到程序關閉。


3 總結與展望
   
本文利用“和欣”嵌入式操作系統(tǒng)的SDK和CAR原理,構造了一個XML和WEB SERVICE組件。通過這個組件,可以開發(fā)一個CAR作為WEB SERVICE方法,再在WEB SERVICE部署文件中配置此CAR,就可以簡單地在WEB SERVICE組件中發(fā)布此方法。
    “和欣”嵌入式操作系統(tǒng)現在可以運行在x86、ARM等CPU上,且科泰世紀同濟大學基礎軟件中心的其他同事已經針對數字電視和對智能手機實現了“和欣”嵌入式操作系統(tǒng)的裁剪,使“和欣”嵌入式操作系統(tǒng)能夠順利地運行在數字電視和手機上。所以可以簡單地把寫好的CAR作為WEB SERVICE方法發(fā)布在經過裁剪的“和欣”嵌入式操作系統(tǒng)上,就可以使得數字電視和智能手機擁有直接提供XML based WEB SERVICE的方法。在不久的將來,隨著我國信息化進程的加快,很快就會有大量的內嵌“和欣”、使用WEB SERVICE的智能電器出現,并且深入我國生產和生活的方方面面,為提高生產力、提高人民生活水平起到極大的推動作用。

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯系該專欄作者,如若文章內容侵犯您的權益,請及時聯系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或將催生出更大的獨角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數字化轉型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據媒體報道,騰訊和網易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數據產業(yè)博覽會開幕式在貴陽舉行,華為董事、質量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數據產業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經營業(yè)績穩(wěn)中有升 落實提質增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數字經濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯合牽頭組建的NVI技術創(chuàng)新聯盟在BIRTV2024超高清全產業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現場 NVI技術創(chuàng)新聯...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉
關閉