• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于Web服務(wù)EAMS的性能及安全研究

      2012-07-25 06:49:26冉崇善郭貴禮
      計算機工程與設(shè)計 2012年3期
      關(guān)鍵詞:序列化數(shù)據(jù)量字節(jié)

      冉崇善,郭貴禮

      (陜西科技大學(xué) 電氣與信息工程學(xué)院,陜西 西安710021)

      0 引 言

      目前大部分企業(yè)的EAMS是采用面向組件的設(shè)計方法實現(xiàn)的,組件內(nèi)部通信大多依賴調(diào)用系統(tǒng)應(yīng)用程序接口(API)實現(xiàn),組件間處于一種緊耦合狀態(tài),系統(tǒng)后期維護(hù)及功能擴充困難重重[1]。采用Web服務(wù)構(gòu)建企業(yè)EAMS可以使企業(yè)最大限度的利用現(xiàn)有信息系統(tǒng),更易于集成和管理,更快的響應(yīng)和部署,更能重用和減少成本,更易于用戶使用。

      基于Web服務(wù)的系統(tǒng)在大數(shù)據(jù)量交互情況下有實時性能差,系統(tǒng)資源利用率低,網(wǎng)絡(luò)延遲大等固有缺陷。同時由于Web服務(wù)通信采用的SOAP協(xié)議只是一個輕量級簡單的通信協(xié)議,對數(shù)據(jù)的安全性沒有做任何處理,Web服務(wù)通信數(shù)據(jù)的安全得不到有效的保障。因此,在基于Web服務(wù)的EAMS中如何有效保障實時交互性能和數(shù)據(jù)通信安全等關(guān)鍵問題亟待解決。本文采用基于.NET框架的RemotingFormat將Web服務(wù)傳遞的數(shù)據(jù)集序列化為Binary格式,并對序列化后的字節(jié)數(shù)組進(jìn)行壓縮傳輸,解決了Web服務(wù)的實時性交互問題。通過擴展SOAP消息頭,對數(shù)據(jù)及SOAP消息本身進(jìn)行簽名、加密以及添加SAML控制令牌等操作有效保障了Web服務(wù)通信的端到端的消息級安全[2-7]。

      1 Web服務(wù)

      Web服務(wù)的目的是將信息和服務(wù)在Internet上實現(xiàn)提供和訪問,實現(xiàn)跨平臺的互操作性。在Web服務(wù)中,主要有4個關(guān)鍵技術(shù):XML、SOAP、WSDL、UDDI[8]。

      Web服務(wù)的體系架構(gòu)如圖1所示,服務(wù)提供者開發(fā)Web服務(wù)并定義服務(wù)描述,使用Publish操作將服務(wù)描述發(fā)布到服務(wù)注冊中心;服務(wù)請求者使用Find操作在本地或服務(wù)注冊中心檢索服務(wù)描述;根據(jù)服務(wù)描述Bind服務(wù)提供者調(diào)用所需的服務(wù)[9-12]。

      圖1 Web服務(wù)體系架構(gòu)

      2 基于Web服務(wù)的EAMS

      基于Web服務(wù)的EAMS將業(yè)務(wù)流程邏輯從具體實現(xiàn)的程序代碼中分離出來 (以業(yè)務(wù)和服務(wù)的方式區(qū)分開,業(yè)務(wù)決定做什么,服務(wù)決定怎么做),將具體的功能封裝為不同粒度的服務(wù),根據(jù)業(yè)務(wù)流程邏輯對不同的服務(wù)進(jìn)行調(diào)用。此外,Web服務(wù)的標(biāo)準(zhǔn)接口使企業(yè)對遺留系統(tǒng)的集成更加簡單,將遺留系統(tǒng)封裝成具有標(biāo)準(zhǔn)接口的Web服務(wù),就可以即時地集成到 EAMS中來[13-15]。

      基于Web服務(wù)的開發(fā)技術(shù)已經(jīng)將傳統(tǒng)的軟件開發(fā)三層架構(gòu)拋棄,取而代之的是新的三層架構(gòu)即應(yīng)用層、服務(wù)層以及數(shù)據(jù)源 (DB)。用戶和表現(xiàn)層屬于應(yīng)用層,可以是Web頁面、WinForm窗體或者移動客戶端也可以是外部或接口用戶等。業(yè)務(wù)邏輯層BLL和數(shù)據(jù)訪問層DAL被封裝在服務(wù)層Services中,并以標(biāo)準(zhǔn)接口的形式發(fā)布。所有的服務(wù)都可以采用不同語言,不同平臺進(jìn)行開發(fā),內(nèi)部的業(yè)務(wù)處理邏輯可以使用面向?qū)ο蟮木幊谭椒▽崿F(xiàn),系統(tǒng)在這一層次上實現(xiàn)跨平臺的無縫通信以及遺留系統(tǒng)的快速集成。數(shù)據(jù)源可以是常用關(guān)系型數(shù)據(jù)庫也可以是平臺無關(guān)的XML文件或者其它存儲有數(shù)據(jù)信息的源文件。系統(tǒng)安全、權(quán)限管理、用戶管理、系統(tǒng)日志、統(tǒng)計以及備份等系統(tǒng)功能則貫穿整個EAMS的所有層次?;赪eb服務(wù)的企業(yè)EAMS基本框架如圖2所示。

      圖2 基于Web服務(wù)的企業(yè)EAMS基本框架

      3 關(guān)鍵問題

      3.1 Web服務(wù)的實時性交互

      Web服務(wù)的實時性交互問題一直困擾著眾多服務(wù)使用者,使用Web服務(wù)構(gòu)建的系統(tǒng)實時交互性能往往較差。這是因為Web服務(wù)采用基于XML消息的信息傳輸機制。目前,大部分XML的實現(xiàn)都使用純文本的格式,導(dǎo)致數(shù)據(jù)復(fù)雜性和數(shù)據(jù)量增大。當(dāng)通過Web服務(wù)傳遞較大數(shù)據(jù)量時,信息的交互和調(diào)用會產(chǎn)生延遲,導(dǎo)致系統(tǒng)在實時性交互以及系統(tǒng)性能等方面存在不足。

      在基于Web服務(wù)的EAMS中,使用.NET 2.0提供的RemotingFormat將數(shù)據(jù)集序列化為SerializationFormat.Binary格式,并對序列化后的字節(jié)數(shù)組進(jìn)行壓縮,從而解決Web服務(wù)的實時性交互問題。

      在Web服務(wù)端,.NET 2.0將數(shù)據(jù)集序列化為Binary數(shù)據(jù)序列并返回壓縮后的字節(jié)數(shù)組。主要涉及兩個操作:首先將DataSet數(shù)據(jù)序列化為SerializationFormat.Binary格式字節(jié)數(shù)組,然后要對序列化后的字節(jié)數(shù)組進(jìn)行壓縮并返回壓縮后的字節(jié)數(shù)組。

      將DataSet數(shù)據(jù)序列化為SerializationFormat.Binary格式字節(jié)數(shù)組的主要代碼如下:

      MemoryStream memStream=new MemoryStream ();

      IFormatter brFormatter=new BinaryFormatter ();

      dsOriginal.RemotingFormat = SerializationFormat.Binary;//為遠(yuǎn)程處理期間使用的DataSet設(shè)置序列化格式為Binary

      brFormatter.Serialize (memStream,dsOriginal);//將dsOriginal對象序列化為提供的流memStream

      binaryDataResult= memStream.ToArray ();//將流內(nèi)容寫入字節(jié)數(shù)組binaryDataResult

      字節(jié)數(shù)組的壓縮操作主要代碼如下:

      MemoryStream ms=new MemoryStream ();//定義一個內(nèi)存流實例

      Stream ZipStream=null;//聲明一個空字節(jié)流

      ZipStream=new GZipStream (ms,CompressionMode.Compress,true);//使用指定的內(nèi)存流 ms和壓縮模式CompressionMode實例化一個GZipStream類壓縮流

      ZipStream.Write(buffer,0,buffer.Length);//向當(dāng)前的壓縮流寫入字節(jié)序列buffer

      ZipStream.Close();//關(guān)閉流

      ms.Position=0;

      byte[]compress_buffer=new byte [ms.Length];//實例化一個指定長度的字節(jié)序列

      ms.Read (compress_buffer,0,int.Parse (ms.Length.ToString ()));//從 ms中讀取字節(jié)塊并寫入compress_buffer中

      在客戶端或服務(wù)調(diào)用端調(diào)用該服務(wù)時,對數(shù)據(jù)進(jìn)行與服務(wù)器端相反的處理即首先要對得到的字節(jié)流進(jìn)行解壓,之后再反序列化為DataSet數(shù)據(jù)集,然后再在客戶程序中進(jìn)行綁定等操作。

      除上述方式之外,減少使用較長元素名和屬性名以及使用存儲過程操作數(shù)據(jù)庫也能在一定程度上提高系統(tǒng)交互性能。

      3.2 Web服務(wù)的消息安全

      在基于Web服務(wù)的開發(fā)中,Web服務(wù)通信安全是一個很重要的問題。由于Web服務(wù)是基于Internet的,傳遞的是SOAP消息,在消息安全性方面沒有提供有效保障,因此SOAP消息的安全性傳輸是基于Web服務(wù)的系統(tǒng)開發(fā)中亟待解決的關(guān)鍵問題。

      如圖3所示,在EAMS中,通過擴展SOAP消息頭,對消息進(jìn)行簽名、加密以及添加控制令牌等方式來實現(xiàn)Web服務(wù)通信的端到端的消息級安全。

      圖3 SOAP消息安全處理機制

      發(fā)送端SOAP消息安全處理流程:

      (1)創(chuàng)建SOAP消息,用對稱密鑰加密SOAP中的Web服務(wù)信息,用接收端公鑰加密該對稱密鑰,并將其加到SOAP消息的<Header>中。

      (2)登錄SAML服務(wù)器獲取斷言,并將取得的SAML Token原封不動的添加到SOAP消息的<Header>中作為安全令牌。

      (3)在SOAP消息的<Header>中加入時間戳、發(fā)送者、接收者等,可對其進(jìn)行擴展,加入更多的安全屬性。

      (4)利用自己的私鑰對SOAP消息進(jìn)行簽名,保證信息的完整性。

      (5)將自己的認(rèn)證證書加到SOAP消息中發(fā)送給接收方。

      接收端SOAP消息處理流程:

      (1)接收到SOAP消息后,定位消息中的認(rèn)證證書,向XKMS服務(wù)器驗證證書的有效性。

      (2)從XKMS服務(wù)器中獲取發(fā)送端公鑰信息,驗證SOAP消息的有效性。

      (3)檢查安全屬性,判斷該消息是否被重放,是否被篡改,是否為相應(yīng)的發(fā)送者和接受者。

      (4)從SOAP<Header>中提取Token進(jìn)行處理,提取SAML的認(rèn)證證書,向XKMS服務(wù)器驗證證書的有效性;獲取SAML公鑰信息,驗證Token簽名判斷是否由信任的SAML簽發(fā);使用自己的密鑰解密出Token信息,采用SAML中提供的主體確定方法判斷Token所斷言的主體是否就是消息的發(fā)送方。

      (5)用自己的私鑰解密出加密用的對稱密鑰,進(jìn)而解密出SOAP消息中的XACML格式的請求或者響應(yīng)。

      在消息處理過程中,發(fā)送端先對消息進(jìn)行加密,再對消息進(jìn)行簽名,接收端會先驗證簽名,再進(jìn)行解密操作,從而提高接收端的處理效率。當(dāng)簽名驗證失敗后,接收端直接返回錯誤信息,不必再進(jìn)行復(fù)雜的解密操作。

      經(jīng)過安全處理后攜帶Web服務(wù)請求或響應(yīng)信息的SOAP消息實例。

      <?xml version="1.0"encoding="UTF-8"?>

      <soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope"xmlns:saml=”…”

      xmlns:xacml=”…”xmlns:ds=”…”xmlns:wsse=”…”xmlns:xenc=”…”>

      <soap:Header>

      <wsse:Security>

      <!—SAML Token-->

      <saml:Assertion>

      <?。蒘AML簽名并且用接收端公鑰加密的身份驗證斷言信息-->

      .......

      </saml:Assertion>

      <!--加密-->

      <xenc:ReferenceList>

      <xenc:Refernce URI=”# EncryptedData”>

      </xenc:ReferenceList>

      <?。瓟?shù)字簽名-->

      <ds:Signature>

      …..

      <ds:Reference URI=”#Body”>

      …..

      </ds:Signature>

      <?。渌踩珜傩裕?/p>

      <wsu:Timestamp wsu:Id=”tst”>

      <wsu:Created>2011-05-15T10:09:43:00Z</wsu:Created>

      </wsu:Timestamp>

      ……

      </wsse:Security>

      </soap:Header>

      <soap:Body>

      <xenc:EncryptedData>

      <?。芪牡腤eb服務(wù)請求或響應(yīng)數(shù)據(jù)-->

      ………

      </xenc:EncryptedData>

      </soap:Body

      </soap:Envelope>

      4 實時性能測試及分析

      為了驗證上述數(shù)據(jù)傳輸方式在Web服務(wù)實時數(shù)據(jù)交互中的有效性。本文分別對1000條數(shù)據(jù) (131129Byte)、10000 條 數(shù) 據(jù) (1309130Byte)、100000 條 數(shù) 據(jù)(14629132Byte)、500000 條 數(shù) 據(jù) (68139152Byte)、1000000條數(shù)據(jù) (135320569Byte)5種情況的4種傳輸方案進(jìn)行數(shù)據(jù)的傳輸性能測試。其中傳輸方案1表示返回Data-Set序列化后的字節(jié)數(shù)組,文中以傳輸方案1的耗時和數(shù)據(jù)量作為基準(zhǔn)點,傳輸方案2表示返回DataSetSurrogate序列化后的字節(jié)數(shù)組,傳輸方案3表示返回DataSetSurrogate序列化并壓縮后的字節(jié)數(shù)組,傳輸方案4表示返回.NET 2.0序列化并壓縮后的字節(jié)數(shù)組即本系統(tǒng)采用的傳輸方案。

      由于條件限制,只在本地計算機上進(jìn)行了性能測試,所以數(shù)據(jù)的網(wǎng)絡(luò)傳輸時間基本可以忽略不計。測試結(jié)果見表1和表2。

      從表1中可以看出,隨著傳輸數(shù)據(jù)量的增大,4種方案傳輸耗時也都隨著增長。但是方案2和方案3在數(shù)據(jù)量較大時傳輸耗時百分比急劇增長,說明在大數(shù)據(jù)量傳輸時,只序列化未壓縮的方案2的數(shù)據(jù)傳輸時間急劇增長,而方案3中對數(shù)據(jù)的壓縮處理耗時急劇增長,兩種方案都不符合系統(tǒng)的實時性要求。而方案4隨著數(shù)據(jù)量的增大,傳輸耗時也隨之增加,但是當(dāng)數(shù)據(jù)量很大時,傳輸耗時又開始保持穩(wěn)定甚至減少。說明方案4采用的壓縮算法更合理,在數(shù)據(jù)量急劇增長時,對數(shù)據(jù)的壓縮處理耗時能夠保持在一個較穩(wěn)定范圍。在傳輸50萬條數(shù)據(jù)時,方案2的耗時比方案3和方案4少,主要原因是由于本地計算機處理性能差,在對數(shù)據(jù)進(jìn)行壓縮和解壓操作時耗費了大量時間。

      表1 不同數(shù)據(jù)量在4種方案下傳輸?shù)暮臅r百分比/%

      表2 不同數(shù)據(jù)量在4種方案下傳輸?shù)膲嚎s百分比/%

      從表2中可以看出,方案3對數(shù)據(jù)的壓縮性能要與方案4不相上下,但是方案3犧牲了壓縮處理時間來換取壓縮百分比上的微弱優(yōu)勢,不符合系統(tǒng)的實時性要求。而方案4在數(shù)據(jù)壓縮耗時和壓縮百分比之間獲得了很好的平衡。方案4即本系統(tǒng)采用的數(shù)據(jù)傳輸方案是最優(yōu)的,不管是在數(shù)據(jù)量較小時還是數(shù)據(jù)量很大時,該方案都有一個較為理想的耗時百分比和壓縮百分比。

      上述分析結(jié)果是在本地計算機上進(jìn)行測試的,忽略了數(shù)據(jù)在網(wǎng)絡(luò)上傳輸?shù)臅r間。然而在一般情況下,大量數(shù)據(jù)在網(wǎng)絡(luò)上的傳輸時間在占數(shù)據(jù)傳輸過程的主要部分,因此如果在真實的Internet網(wǎng)絡(luò)上進(jìn)行傳輸性能測試,方案4的效果將會更加明顯。

      通過以上分析表明,本系統(tǒng)采用的數(shù)據(jù)傳輸方案4,在實際應(yīng)用中能夠節(jié)省數(shù)據(jù)傳輸時間30%以上,減少網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù)量90%以上。不管是在高性能網(wǎng)絡(luò)中還是在性能較差的網(wǎng)絡(luò)中都能有較好的實時性能,為Web服務(wù)在實時性要求比較高的系統(tǒng)中的應(yīng)用提供了一個較好的解決方案。

      5 結(jié)束語

      基于Web服務(wù)的EAMS克服了面向組件設(shè)計的內(nèi)部耦合度高,難以維護(hù)和擴充等缺點,實現(xiàn)了一種高復(fù)用、易集成管理、快速響應(yīng)部署、松耦合、跨平臺無縫通信的資產(chǎn)管理模式。本文重點探討了Web服務(wù)在構(gòu)建EAMS中的實時交互性能和服務(wù)通信安全兩大關(guān)鍵問題,并提出了合理的解決方案。測試結(jié)果表明,系統(tǒng)的實時交互性能和服務(wù)通信安全得到了有效保障。

      在基于Web服務(wù)的系統(tǒng)建設(shè)中,除了實時交互性能和服務(wù)安全之外,服務(wù)粒度的劃分、服務(wù)的組合編排等都是需要重點研究的對象,在之后的研究中將對其進(jìn)行更加深入的探究。

      [1]WU Rongwei.Research and implementation of power enterprise integration EAM system based on SOA [D].Shanghai:Fudan University,2009:18 (in Chinese). [吳榮煒.基于SOA的電網(wǎng)企業(yè)集成EAM系統(tǒng)的設(shè)計與實現(xiàn) [D].上海:復(fù)旦大學(xué),2009:18.]

      [2]Juhan Kim,Soohyung Kim,Kiyoung Moon.Design of integration security system using XML security [C].World Academy of Science Engineering and Technology,2005:136-140.

      [3]MENG Wei,ZHANG Jing,LI Junhuai,et al.Research and implementation of a web services security model[J].Computer Engineering and Application,2006,42 (26):134-136 (in Chinese).[孟偉,張璟,李軍懷,等.Web服務(wù)安全模型研究與實現(xiàn)[J].計算機工程與應(yīng)用,2006,42 (26):134-136.]

      [4]CHENG Zhan,XIE Li.Web services security mechanism and security technology [J].Computer Application and Software,2008,25(10):16-18 (in Chinese).[程瞻,謝立.Web服務(wù)安全機制和安全技術(shù) [J].計算機應(yīng)用與軟件,2008,25 (10):16-18.]

      [5]LIU Zhidu,JIA Songhao,ZHAN Shihua.Research and application of SOAP security [J].Computer Engineering,2008,34 (5):142-144 (in Chinese). [劉志都,賈松浩,詹仕華.SOAP協(xié)議安全性的研究與應(yīng)用 [J].計算機工程,2008,34(5):142-144.]

      [6]HAN Tao,GUO Heqing.Research and implementation of a web services secure model[J].Computer Engineering,2006,32 (10):130-134(in Chinese).[韓濤,郭荷清.Web服務(wù)安全模型的研究與實現(xiàn) [J].計算機工程,2006,32 (10):130-134.]

      [7]IBM.Introduction to security assertion markup language(SAML)and SAML support in IBM web sphere application server version 7.0Fix Pack 7 [S].IBM WebSphere Web Services Security Development Software Group,2009.

      [8]TU Xiaoyun.Design and implementation of data exchanging based on web service [D].Beijing:Beijing University of Chemical Technology,2007:6-15 (in Chinese).[屠曉云.基于 Web Service的數(shù)據(jù)交換設(shè)計與實現(xiàn) [D].北京:北京化工大學(xué),2007:6-15.]

      [9]XIE Hui,QIU Jinlun,SUN Fei.Research and design of Web Service with concurrency technology [J].Computer Engineering and Design,2008,29 (21):5483-5486 (in Chinese). [謝輝,邱錦倫,孫斐.基于并發(fā)技術(shù)的 Web Service的設(shè)計與研究 [J].計算機工程與設(shè)計,2008,29 (21):5483-5486.]

      [10]CHEN Liguo,WANG Yanping.Research of service oriented architecture[J].Computer Knowledge and Technology,2009,5 (3):549-551 (in Chinese).[陳利國,王艷萍.面向服務(wù)體系架構(gòu)的研究 [J].電腦知識與技術(shù),2009,5 (3):549-551.]

      [11] WANG Yuanfan.Research on SOA of web services center[J].Journal of Ningde Teachers College,2010,22 (1):6-8(in Chinese). [王遠(yuǎn)帆.以 Web服務(wù)為中心的SOA研究[J].寧德師專學(xué)報,2010,22 (1):6-8.]

      [12]LV Hong-wei.Discussion of the web service technology in the SOA [J].Network and Communication,2010,22 (4):75-78 (in Chinese).[呂宏偉.SOA體系結(jié)構(gòu)中的 Web Service技術(shù) [J].電腦編程技巧與維護(hù),2010,22 (4):75-78.]

      [13]RAN Chongshan,WANG Rui.Design and research of middlewarebased power industry asset management system [J].Computer Technology and Development,2008,18 (2):194-196 (in Chinese).[冉崇善,王瑞.電力企業(yè)EAM中間件系統(tǒng)的研究與設(shè)計 [J].計算機技術(shù)與發(fā)展,2008,18 (2):194-196.]

      [14]TANG Li. Design and development of enterprise asset management system [J].Power System Engineering,2009,25 (5):59-62 (in Chinese).[唐麗.電力企業(yè)資產(chǎn)管理系統(tǒng)(EAM)設(shè)計及開發(fā) [J].電站系統(tǒng)工程,2009,25 (5):59-62.]

      [15]YANG Lin,HE Xixu,WU Gaofeng,et al.Research and design of EAM system based on workflow technology [J].Micro-Computer Information,2009,25 (7-3):6-8 (in Chinese). [楊林,赫熙煦,吳高峰,等.基于工作流技術(shù)的EAM系統(tǒng)的研究與設(shè)計 [J].微計算機信息,2009,25 (7-3):6-8.]

      猜你喜歡
      序列化數(shù)據(jù)量字節(jié)
      No.8 字節(jié)跳動將推出獨立出口電商APP
      基于大數(shù)據(jù)量的初至層析成像算法優(yōu)化
      計算Lyapunov指數(shù)的模糊C均值聚類小數(shù)據(jù)量法
      高刷新率不容易顯示器需求與接口標(biāo)準(zhǔn)帶寬
      如何建構(gòu)序列化閱讀教學(xué)
      甘肅教育(2020年14期)2020-09-11 07:58:36
      寬帶信號采集與大數(shù)據(jù)量傳輸系統(tǒng)設(shè)計與研究
      電子制作(2019年13期)2020-01-14 03:15:18
      No.10 “字節(jié)跳動手機”要來了?
      簡談MC7字節(jié)碼
      Java 反序列化漏洞研究
      作文訓(xùn)練微格化、序列化初探
      語文知識(2015年12期)2015-02-28 22:02:15
      平利县| 宁河县| 襄垣县| 拉孜县| 浮梁县| 彭泽县| 苗栗市| 广宁县| 祥云县| 铜陵市| 康马县| 湖北省| 林西县| 沙坪坝区| 宣汉县| 晋州市| 衡水市| 胶南市| 萨迦县| 工布江达县| 筠连县| 泾阳县| 花莲县| 醴陵市| 内江市| 米脂县| 中超| 准格尔旗| 新闻| 东海县| 九江市| 定远县| 彰武县| 天峻县| 封丘县| 五原县| 聂拉木县| 晋城| 抚州市| 安新县| 青神县|