亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        軟件測(cè)試之互操作性測(cè)試及SOAP協(xié)議實(shí)踐策略

        2012-09-21 08:21:44趙霞邱薇高智杰
        中國(guó)科技信息 2012年19期
        關(guān)鍵詞:互操作性數(shù)據(jù)類型數(shù)組

        趙霞 邱薇 高智杰

        第二炮兵裝備研究院科研試驗(yàn)中心

        軟件測(cè)試之互操作性測(cè)試及SOAP協(xié)議實(shí)踐策略

        趙霞 邱薇 高智杰

        第二炮兵裝備研究院科研試驗(yàn)中心

        互操作性測(cè)試作為軟件測(cè)試的一種重要測(cè)試類型在實(shí)踐中易于與其他測(cè)試類型混淆,或測(cè)試不充分。本文描述了信息系統(tǒng)互操作性等級(jí)模型及互操作性測(cè)試的三個(gè)重要特征,并以SOAP協(xié)議測(cè)試為例,給出了互操作性測(cè)試從概念到實(shí)踐的關(guān)鍵技術(shù)。

        軟件測(cè)試;互操作性測(cè)試;SOAP協(xié)議測(cè)試

        引言

        在信息系統(tǒng)領(lǐng)域,互操作性是一個(gè)很寬泛的概念。目前的信息系統(tǒng)主要基于計(jì)算機(jī)系統(tǒng),因此,按照計(jì)算機(jī)系統(tǒng)機(jī)構(gòu)來(lái)劃分,信息系統(tǒng)的互操作性一般包括了硬件和軟件兩部分的互操作性問題。

        IEEE標(biāo)準(zhǔn)化術(shù)語(yǔ)集給出的互操作性定義是:兩個(gè)或多個(gè)系統(tǒng)或系統(tǒng)組件交換并使用所交換信息的能力。

        我軍目前對(duì)互操作性所做的定義是:兩個(gè)或多個(gè)系統(tǒng)或應(yīng)用之間交換信息并相互利用所交換的信息的能力[1]。

        互操作性的三個(gè)本質(zhì)特征:一、發(fā)生在兩個(gè)或兩個(gè)以上的實(shí)體之間,二、系統(tǒng)間能夠交換信息,三、系統(tǒng)間能夠利用所交換的信息。

        1 信息系統(tǒng)互操作性等級(jí)模型

        工程實(shí)踐的經(jīng)驗(yàn)表明, 問題領(lǐng)域的抽象模型對(duì)系統(tǒng)的創(chuàng)建和維護(hù)具有重要的參考價(jià)值。2003 年, Tolk提出了概念互操作性等級(jí)模型LCIM, 形成了概念域的5層互操作性等級(jí)模型[2],見下表1:

        表1 信息系統(tǒng)互操作性等級(jí)模型

        表 1(續(xù))

        2 SOAP協(xié)議互操作性測(cè)試實(shí)例

        SOAP 是一種簡(jiǎn)單的基于 XML 的協(xié)議,它使應(yīng)用程序通過 HTTP 來(lái)交換信息。它提供了一種標(biāo)準(zhǔn)的方法,使得運(yùn)行在不同的操作系統(tǒng)并使用不同的技術(shù)和編程語(yǔ)言的應(yīng)用程序可以互相進(jìn)行通信[3]。

        協(xié)議的互操作性測(cè)試檢查兩個(gè)協(xié)議實(shí)現(xiàn)之間的兼容程度,協(xié)議一致性測(cè)試對(duì)協(xié)議實(shí)現(xiàn)的約束仍是功能性的,未精確到足以保證協(xié)議實(shí)現(xiàn)之間的互相可操作性,因?yàn)椴煌膮f(xié)議實(shí)現(xiàn)對(duì)PDU的數(shù)據(jù)結(jié)構(gòu),參數(shù)的選取,尤其是參數(shù)值域的選定可能不相同。另外,協(xié)議的定義規(guī)范中對(duì)例外事件的處理規(guī)定往往不夠全面,這是因?yàn)楫惓=换バ蛄袛?shù)量龐大,不亦枚舉,所以實(shí)現(xiàn)者對(duì)異常的處理也不同[4]。

        為測(cè)試SOAP協(xié)議的互操作性,選取了以下SOAP 服務(wù)器:

        ·Apache Axis SOAP Server

        ·Apache SOAP 2.2 Server

        ·WhiteMesa 2.7 SOAP Server

        ·IONA XMLBus

        ·SOAP::Lite

        ·EasySOAP++

        ·4S4C

        ·Microsoft ASP.NET Web Services

        測(cè)試的范圍:傳輸、XML 語(yǔ)法、數(shù)據(jù)類型等方面的內(nèi)容。協(xié)議互操性測(cè)試的內(nèi)容并不局限于此,本文只是針對(duì)典型狀況進(jìn)行描述。

        2.1 傳輸

        SOAP 1.1 規(guī)范允許在 HTTP 請(qǐng)求中發(fā)送 SOAP 消息。SOAP 規(guī)范將必選的SOAPAction 頭添加到 HTTP 請(qǐng)求頭中。SOAPAction 頭的合法取值包括:

        ·空;

        ·一個(gè)用引號(hào)括起來(lái)的空字符串;

        ·任意的 URI;

        為了研究這些互操作性問題,向SOAP 服務(wù)器發(fā)送一個(gè)請(qǐng)求并且在接收到時(shí)顯示服務(wù)器響應(yīng)。在更改 SOAPAction頭的值之后將簡(jiǎn)單的 SOAP 請(qǐng)求發(fā)送給不同的服務(wù)器,從而查看服務(wù)器如何支持SOAP 1.1 規(guī)范所允許的三種頭。

        靈活性使 SOAP 實(shí)現(xiàn)能夠選擇它們自己的 SOAPAction 樣式及其功能。同時(shí)引發(fā)了互操作性問題。

        2.2 XML Schema

        各種 SOAP 服務(wù)器對(duì)編制 SOAP 請(qǐng)求的過程中所使用的不同的 XML Schema版本表現(xiàn)出的行為往往不同。

        對(duì)大量服務(wù)器進(jìn)行了名稱空間 URI 支持測(cè)試,發(fā)現(xiàn) IONA XMLBus 不能成功處理 1999 URI,但是卻向使用 2001 URI的請(qǐng)求返回了一個(gè)成功的響應(yīng)。因此,IONA XMLBus 中的支持被限制為 2001 XML Schema 名稱空間 URI。

        2.3 數(shù)據(jù)類型

        數(shù)據(jù)類型兼容性可能是 SOAP 互操作性中最重要的問題。如果兩個(gè)應(yīng)用程序不能理解彼此的數(shù)據(jù)類型,那么它們就不能執(zhí)行有意義的數(shù)據(jù)交換,從而也就不能互操作。

        使用 SOAP 進(jìn)行傳遞的數(shù)據(jù)首先被序列化;即,數(shù)據(jù)值被轉(zhuǎn)換成字符串以在XML 文檔中傳送。在目的地,這個(gè)字符串必須被反序列化,即,被轉(zhuǎn)換成表示原來(lái)的值的數(shù)據(jù)類型。

        將 XML Schema 數(shù)據(jù)類型映射到適當(dāng)?shù)谋緳C(jī)數(shù)據(jù)類型是由 SOAP 實(shí)現(xiàn)負(fù)責(zé)的。如果兩個(gè)本機(jī)數(shù)據(jù)類型不一致,即,此時(shí) XML 中的同一種數(shù)據(jù)類型在不同的實(shí)現(xiàn)中有不同的值,就可能產(chǎn)生問題。

        Float(浮點(diǎn)) 與 float 有關(guān)的常見問題出現(xiàn)在無(wú)窮大的表示上。XML Schema用字符串 INF 表示無(wú)窮大。在請(qǐng)求中將 INF 作為 float 無(wú)窮大發(fā)送,Apache SOAP 2.2 服務(wù)器以 Infinity 返回它,而Apache Axis 則返回 INF。

        通過發(fā)送 SOAP 請(qǐng)求對(duì) MS SOAP Toolkit 3.0 服務(wù)器進(jìn)了測(cè)試。它返回一個(gè)服務(wù)器端的故障代碼,且不能將float 無(wú)窮大值 INF 反序列化,如同故障字符串 “SoapMapper:Converting data for SoapMapper failed inside the typemapper” 所指出的那樣。

        另一個(gè)問題與 float 精度支持有關(guān)。把 1.23456789E38 作為 float 發(fā)送給幾臺(tái) SOAP 服務(wù)器。IONA XMLBus 返回1.23456789E38,White Mesa 2.7 服務(wù)器返回 1.234568E38,而 MS SOAP ToolKit 3.0 服務(wù)器返回 1.23456786051167E+38。盡管這指出了各個(gè)實(shí)現(xiàn)正在進(jìn)行互操作的事實(shí),但是這些實(shí)現(xiàn)仍然不能將數(shù)據(jù)重新生成為它的原始值。

        Decimal(十進(jìn)制) 對(duì)于 decimal ,XML Schema 規(guī)范要求實(shí)現(xiàn)要支持的最少位數(shù)是 18 位。因?yàn)樵谝?guī)范中沒有定義上限,所以各個(gè)實(shí)現(xiàn)可以隨意設(shè)置它們的上限。Microsoft ASP.NET Web Services和 WhiteMesa 2.7 給出的精度最多達(dá) 28位,而 Apache Axis 可以精確支持?jǐn)?shù)百位。這種支持上的差異意味著,當(dāng)一個(gè)Apache Axis 實(shí)現(xiàn)向 WhiteMesa 2.7 實(shí)現(xiàn)發(fā)送一些大小超過 28 位的 decimal 數(shù)字時(shí),額外的精度將被截?cái)?,從而造成?shù)據(jù)不一致。

        DateTime(日期時(shí)間) XML Schema中用于時(shí)間和日期信息的數(shù)據(jù)類型是dateTime 。White Mesa 2.7 給出的精度為秒。Apache SOAP 2.2 和 Apache Axis 用 java.util.Date 類表示一個(gè)特定的時(shí)間實(shí)例,精度為毫秒。Microsoft ASP.NET Web Services 使用 Date 類型,該類型可以表示精度為納秒的時(shí)間。

        一個(gè)基于.NET 的 SOAP 客戶機(jī)端實(shí)現(xiàn)向 SOAP 2.2 實(shí)現(xiàn)或 White Mesa 2.7 實(shí)現(xiàn)發(fā)送 dateTime 信息, dateTime中額外的精度將被丟失,從而導(dǎo)致數(shù)據(jù)不一致性。在 XML Schema 中,精度達(dá)到秒是強(qiáng)制性的,而秒的小數(shù)部分則是可選的且合法的。

        字節(jié)數(shù)組(Byte Array) SOAP 允許以字節(jié)數(shù)組的形式交換數(shù)據(jù)。字節(jié)數(shù)組在被放入一個(gè) XML 文檔中之前,它必須是base64 編碼的。由于本機(jī)數(shù)據(jù)類型格式的差異,一些實(shí)現(xiàn)返回的是不一致的值。一些實(shí)現(xiàn)通過對(duì)已經(jīng)進(jìn)行 base64 編碼的值進(jìn)一步進(jìn)行 base64 編碼來(lái)返回值。

        測(cè)試得出,當(dāng) Apache SOAP 2.2 和IONAXMLBus 交換 base64 編碼的字節(jié)數(shù)組時(shí),存在互操作性問題。

        數(shù)組(Array) 數(shù)組形式的數(shù)據(jù)對(duì)實(shí)現(xiàn)來(lái)說是一個(gè)困難的測(cè)試,尤其是當(dāng)情形復(fù)雜,使用嵌套的數(shù)組、多維數(shù)組以及嵌套結(jié)構(gòu)(struct)時(shí)。

        struct 是一種復(fù)雜的、用戶定義的數(shù)據(jù)類型,它可以包含簡(jiǎn)單的或更復(fù)雜的數(shù)據(jù)類型。具有 C 語(yǔ)言編程經(jīng)驗(yàn)的讀者可能會(huì)想在 C struct 和 XML Schema struct 之間做一個(gè)類比。 測(cè)試表明所有 SOAP 實(shí)現(xiàn)對(duì)于簡(jiǎn)單類型和復(fù)雜類型的數(shù)組都沒有問題。

        在 SOAP 中,還有其它可能引發(fā)互操作性問題的地方。這些問題可能會(huì)因引擎無(wú)法處理 mustUnderstand SOAP 頭而顯露出來(lái)。

        3 結(jié)語(yǔ)

        目前,互操作性測(cè)試尚不完善,主要表現(xiàn)在:互操作性測(cè)試需求和內(nèi)容不夠清晰;缺乏合適的互操作性測(cè)試標(biāo)準(zhǔn);缺乏有效的互操作性測(cè)試方法;缺乏權(quán)威的評(píng)測(cè)、認(rèn)證機(jī)構(gòu)等。

        [1]GJB/Z144-2004指揮自動(dòng)化系統(tǒng)互操作等級(jí)及評(píng)估

        [2]Tolk,Andreas.Compos able Mission Spaces and M&S Repositories-Applicability of Open Standards [A].2004 Spring Simulation Interoperability Workshop, Orlando Florida,2004.

        [3]張仙偉,張璟.Web服務(wù)的核心技術(shù)之一——SOAP協(xié)議.電子科技,2010年,03期

        [4]李華,葉新銘,曾敏,等.基于XM L 的協(xié)議一致性測(cè)試系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)科學(xué), 2006, 10: 275~278.

        10.3969/j.issn.1001-8972.2012.19.023

        猜你喜歡
        互操作性數(shù)據(jù)類型數(shù)組
        JAVA稀疏矩陣算法
        詳談Java中的基本數(shù)據(jù)類型與引用數(shù)據(jù)類型
        殺傷鏈動(dòng)態(tài)重構(gòu)中的互操作性淺析
        JAVA玩轉(zhuǎn)數(shù)學(xué)之二維數(shù)組排序
        如何理解數(shù)據(jù)結(jié)構(gòu)中的抽象數(shù)據(jù)類型
        韓軍武器系統(tǒng)互操作性現(xiàn)狀及未來(lái)發(fā)展
        輕兵器(2017年17期)2017-09-19 12:35:43
        ST NFC標(biāo)簽以優(yōu)異性能和互操作性獲得NFC Forum認(rèn)證
        西門子與歐特克達(dá)成協(xié)議以提高雙方軟件互操作性
        智能制造(2016年2期)2016-05-25 14:54:11
        尋找勾股數(shù)組的歷程
        VB數(shù)組在for循環(huán)中的應(yīng)用
        考試周刊(2012年88期)2012-04-29 04:36:47
        99视频在线精品免费观看6| www久久久888| 久久伊人久久伊人久久| 华人免费网站在线观看| 亚洲熟妇av日韩熟妇在线| 欧美日韩另类视频| 国产三级国产精品国产专区| 中文字幕丰满人妻av| 亚洲国产成人片在线观看| 大香视频伊人精品75| 久久激情人妻中文字幕| 国产免费一区二区三区精品视频 | 99国产超薄丝袜足j在线播放| 精品国产一区二区三区男人吃奶| 麻豆视频在线播放观看| 黑森林福利视频导航| 78成人精品电影在线播放| 国产精品99久久精品女同| 中出人妻希奇杰卡西av| 四虎影视免费观看高清视频| 熟妇无码AV| 日韩激情av不卡在线| 男人国产av天堂www麻豆 | 97人伦影院a级毛片| 真人二十三式性视频(动)| 亚洲欧美成人在线免费| av在线播放免费网站| 国产伦理一区二区| 大陆一级毛片免费播放| 99视频偷拍视频一区二区三区| 亚洲国产精品综合久久网络 | 熟妇无码AV| 亚洲国产综合精品一区| 亚洲国产精彩中文乱码av| 四虎影院在线观看| 精品国产一品二品三品| 中国国产不卡视频在线观看| 国产av精国产传媒| 色婷婷精品综合久久狠狠| 成人性生交大全免费看| 欧美黑人性暴力猛交喷水|