• 
    

    
    

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

      面向服務(wù)的軟件架構(gòu)及其在醫(yī)用超導(dǎo)系統(tǒng)中的應(yīng)用

      2015-04-02 12:31:58田宏宇
      軟件導(dǎo)刊 2015年2期

      摘要:介紹了基于面向服務(wù)的軟件架構(gòu)及其主要優(yōu)點(diǎn),同時(shí)研究了其在醫(yī)用超導(dǎo)監(jiān)控系統(tǒng)中的具體應(yīng)用。重點(diǎn)闡述了如何使用面向服務(wù)的軟件架構(gòu)使軟件從功能上實(shí)現(xiàn)解耦,從而提高軟件的可重用性、可伸縮性、可靠性,并設(shè)計(jì)了具體方案。

      關(guān)鍵詞關(guān)鍵詞:SOA;面向服務(wù);軟件架構(gòu);醫(yī)用超導(dǎo)系統(tǒng)

      DOIDOI:10.11907/rjdk.143763

      中圖分類號(hào):TP319

      文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào)文章編號(hào):16727800(2015)002011403

      作者簡(jiǎn)介作者簡(jiǎn)介:田宏宇(1979-),男,江蘇泰州人,碩士,江蘇美時(shí)醫(yī)療技術(shù)有限公司工程師,研究方向?yàn)橥ㄓ密浖?/p>

      0引言

      近年來,軟件規(guī)模在不斷擴(kuò)大,其復(fù)雜程度也在不斷增加。同時(shí),隨著業(yè)務(wù)規(guī)模的快速變化,對(duì)軟件的適應(yīng)性和可擴(kuò)展性提出了更高的要求。這些需求體現(xiàn)在軟件架構(gòu)上就是要求各模塊之間充分解耦,使模塊之間的關(guān)聯(lián)度更小。同時(shí),要求模塊更加內(nèi)聚,使每個(gè)模塊都能擔(dān)任更專一的職責(zé)。

      結(jié)構(gòu)化編程使得程序結(jié)構(gòu)更加清晰,流程更易于理解。面向?qū)ο缶幊谭椒ㄍㄟ^封裝代碼與數(shù)據(jù)來管理軟件復(fù)雜度,以真實(shí)世界的對(duì)象進(jìn)行建模。隨著軟件模塊數(shù)量的不斷增長(zhǎng),人們需要在更大的范圍內(nèi)加強(qiáng)內(nèi)聚性,提高軟件的復(fù)用度,由此出現(xiàn)了基于組件的開發(fā)。組件內(nèi)的模塊通過相互協(xié)作,對(duì)外提供更豐富且通用的功能,而組件之間是高內(nèi)聚、松耦合的?;诮M件的開發(fā)更關(guān)注子系統(tǒng)的邊界和子系統(tǒng)間的通訊設(shè)計(jì)。

      近年來,隨著大數(shù)據(jù)時(shí)代的到來,人們需要通過全樣本的形式分析海量數(shù)據(jù),對(duì)多節(jié)點(diǎn)、分布式、異構(gòu)的系統(tǒng)需求迫切。這就對(duì)軟件系統(tǒng)的可靠性提出了更高的要求,因而需要重新審視軟件的系統(tǒng)架構(gòu)。

      1面向服務(wù)的軟件架構(gòu)

      1.1面向服務(wù)架構(gòu)

      面向服務(wù)架構(gòu)(Service-Oriented Architecture,SOA)是構(gòu)造分布式計(jì)算應(yīng)用程序的方法,是將軟件設(shè)計(jì)成一組可互操作的服務(wù)的一套原則或方法論,將應(yīng)用程序功能作為服務(wù)發(fā)送給最終用戶或者其它服務(wù)。它采用開放標(biāo)準(zhǔn),與軟件資源進(jìn)行交互并采用標(biāo)準(zhǔn)的表示方式。

      SOA將應(yīng)用程序的不同功能單元(稱為服務(wù))通過這些服務(wù)之間定義良好的接口和契約聯(lián)系起來。接口采用中立的方式進(jìn)行定義,它應(yīng)該獨(dú)立于實(shí)現(xiàn)服務(wù)的硬件平臺(tái)、操作系統(tǒng)和編程語言,這使得構(gòu)建在這種系統(tǒng)中的服務(wù)可以一種統(tǒng)一和通用的方式進(jìn)行交互[1]。

      1.2SOA實(shí)現(xiàn)原則

      在SOA中,服務(wù)通常通過3個(gè)元素來定義:①服務(wù)實(shí)現(xiàn):服務(wù)的實(shí)現(xiàn)由實(shí)際代碼、應(yīng)用程序接口或包含(將通過此服務(wù)公開的)功能的其它技術(shù)資產(chǎn)組成;②服務(wù)接口:服務(wù)接口為服務(wù)的用戶提供一種基于標(biāo)準(zhǔn)的方法,用于根據(jù)它所提供的契約來訪問其功能;③服務(wù)契約:服務(wù)契約指定服務(wù)的目的、功能、約束和使用。契約細(xì)節(jié)的例子包括安全性需求、響應(yīng)速度、吞吐量和可用性。

      1.3WCF——Dot Net中的SOA框架

      Windows通信開發(fā)平臺(tái)(Windows Communication Foundation——WCF)是由微軟開發(fā)的一系列支持?jǐn)?shù)據(jù)通信的應(yīng)用程序框架,是.NET框架的一部分,從.NET Framework3.0 開始引入。它整合了.NET2.0及之前版本的.NET Remoting、Web Service以及Socket機(jī)制,并融合有Http和Ftp的相關(guān)技術(shù),是Windows平臺(tái)上開發(fā)分布式應(yīng)用的最佳實(shí)踐方式。

      WCF可簡(jiǎn)單歸結(jié)為4個(gè)部分[2]:①網(wǎng)絡(luò)服務(wù)協(xié)議,即用什么網(wǎng)絡(luò)協(xié)議開放客戶端接入;②業(yè)務(wù)服務(wù)協(xié)議,即聲明服務(wù)提供哪些業(yè)務(wù);③數(shù)據(jù)類型聲明,即對(duì)客戶端與服務(wù)器端通信的數(shù)據(jù)部分進(jìn)行一致化;④傳輸安全性定義。

      通信雙方的溝通方式,由合約規(guī)定;通信雙方所遵循的通信方法,由協(xié)議綁定;通信期間的安全性,由雙方約定的安全性層次規(guī)定。

      WCF的三大核心概念如下:

      (1)契約(Contract)。WCF 的基本概念是以契約(Contract) 來定義雙方溝通的協(xié)議,合約必須以接口的方式來體現(xiàn),而實(shí)際的服務(wù)代碼必須由這些合約接口派生并實(shí)現(xiàn)。合約分成了4種:①數(shù)據(jù)契約(Data Contract),訂定雙方溝通時(shí)的數(shù)據(jù)格式;②服務(wù)契約(Service Contract),訂定服務(wù)的定義;③操作契約(Operation Contract),訂定服務(wù)提供的方法;③消息契約(Message Contract),訂定在通信期間改寫消息內(nèi)容的規(guī)范。

      (2)協(xié)議綁定 (Binding)。由于WCF支持HTTP、TCP、Named Pipe、MSMQ、PeerToPeer TCP 等協(xié)議,而HTTP 又分為基本 HTTP 支持(BasicHttpBinding)以及 WSHTTP 支持(WsHttpBinding),因而TCP亦支持 NetTcpBinding、NetPeerTcpBinding等通信方式。因此,雙方必須統(tǒng)一通信協(xié)議,并且在編碼及格式上保持一致。

      WCF 的服務(wù)可以掛載于 Console Application、Windows Application、IIS (ASP. NET) Application、Windows Service以及Windows Activation Services中,但大多都會(huì)掛在 Windows Service上。

      (3)安全性層次。WCF支持傳輸層次安全性以及消息層次安全性兩種:①傳輸層次安全性:在數(shù)據(jù)傳輸時(shí)期加密,例如SSL;②消息層次安全性:在數(shù)據(jù)處理時(shí)就加密,例如使用數(shù)字簽名、散列或是使用密鑰加密法等。

      WCF具有如下優(yōu)勢(shì)[3]:①統(tǒng)一性。WCF是對(duì)于ASMX、.Net Remoting、Enterprise Service、WSE、MSMQ等技術(shù)的整合。給開發(fā)人員一個(gè)統(tǒng)一的開發(fā)接口,將同樣的業(yè)務(wù)邏輯通過不同的通訊協(xié)議綁定來發(fā)布,實(shí)現(xiàn)了高度的代碼重用;②互操作性。由于WCF最基本的通信機(jī)制之一是SOAP(Simple Object Access Protocol 簡(jiǎn)易對(duì)象訪問協(xié)議),這就保證了異構(gòu)系統(tǒng)之間的互操作性;③安全與可信賴。WSSecurity、WSTrust和WSSecureConversation均被添加到SOAP消息中,以用于用戶認(rèn)證、數(shù)據(jù)完整性驗(yàn)證、數(shù)據(jù)隱私等多種安全因素;④兼容性。WCF充分考慮到了與舊有系統(tǒng)的兼容性。安裝WCF并不會(huì)影響原有的技術(shù)如ASMX和.Net Remoting。

      2SOA在醫(yī)用超導(dǎo)系統(tǒng)中的應(yīng)用

      我國(guó)高端醫(yī)療器械領(lǐng)域一直為大型跨國(guó)公司所壟斷。隨著近年來國(guó)家的一系列政策扶持,國(guó)內(nèi)一些公司正在加緊研發(fā)自己的高端醫(yī)療器械,尤其是超導(dǎo)型磁共振成像儀吸引著眾多企業(yè)的關(guān)注。

      超導(dǎo)磁體是一種電磁鐵,它由超導(dǎo)導(dǎo)線構(gòu)成,能產(chǎn)生巨大的磁場(chǎng)。由于超導(dǎo)導(dǎo)線在4K的低溫下沒有電阻,因此維持磁場(chǎng)并不會(huì)消耗能量。通常將超導(dǎo)導(dǎo)線浸泡在液氦中以產(chǎn)生4K左右的低溫。

      制造超導(dǎo)磁體的一大技術(shù)難點(diǎn)就是如何確保液氦在磁體中不發(fā)生泄漏和蒸發(fā)。因?yàn)橐坏┮汉ば孤?,就無法保證超導(dǎo)導(dǎo)線所需要的4K低溫,從而無法維持磁場(chǎng),這一現(xiàn)象稱為“失超”。為了達(dá)到氦氣零泄漏這一理想目標(biāo),一方便要加強(qiáng)超導(dǎo)磁體的密閉性制造工藝,另一方面也要嚴(yán)格對(duì)其進(jìn)行監(jiān)控。

      我國(guó)的氦氣十分貧乏,只占全球探明資源總量的0.2%,主要依賴進(jìn)口。而氮?dú)獗群獗阋说枚啵且旱淖畹蜏囟戎荒苓_(dá)到62K左右,達(dá)不到4K要求。因此往往采用先用液氮將溫度降到62K,然后再用液氦將其降溫到4K這種折衷方法,節(jié)約了成本。

      需要對(duì)整個(gè)超導(dǎo)系統(tǒng)中的液氮、液氦的溫度、液位等多點(diǎn)多指標(biāo)進(jìn)行系統(tǒng)監(jiān)測(cè),并對(duì)壓縮機(jī)、場(chǎng)強(qiáng)等相應(yīng)設(shè)備提供反饋以增加整體系統(tǒng)的可靠性,而且在整個(gè)超導(dǎo)磁體的生命期(典型值為10年)內(nèi)不能出錯(cuò)。

      綜合以上考慮,將整個(gè)超導(dǎo)軟件監(jiān)控系統(tǒng)規(guī)劃為3項(xiàng)主要服務(wù):①Coordinator——核心服務(wù),負(fù)責(zé)將底層接收到的數(shù)據(jù)轉(zhuǎn)換為格式化的有意義的數(shù)據(jù),同時(shí)負(fù)責(zé)將數(shù)據(jù)記錄到數(shù)據(jù)庫(kù)中;②Display——顯示服務(wù),負(fù)責(zé)將Core服務(wù)提供的數(shù)據(jù)渲染成更加直觀的圖形界面,以及在系統(tǒng)出錯(cuò)時(shí)進(jìn)行適當(dāng)?shù)膱?bào)警。同時(shí)在Coordinator服務(wù)狀態(tài)出錯(cuò)時(shí)重啟服務(wù);③Monitor——狀態(tài)監(jiān)控服務(wù),負(fù)責(zé)監(jiān)控整個(gè)軟件系統(tǒng)的健康狀態(tài)以及整個(gè)超導(dǎo)系統(tǒng)的健康狀態(tài)。

      為了提高服務(wù)契約的可重用性,將基礎(chǔ)服務(wù)接口作為其它服務(wù)接口的父接口:

      (1)基礎(chǔ)服務(wù)接口IServiceBase:

      [ServiceContract]

      public interface IServiceBase {

      [OperationContract(IsInitiating = true, IsTerminating = false)]

      WCFServiceStatus GetServiceStatus();

      [OperationContract(IsInitiating = true, IsTerminating = false)]

      void Stop();

      [OperationContract(IsInitiating = true, IsTerminating = false)]

      void Start();

      }

      IServiceBase接口為所有服務(wù)接口的父接口,增加了查詢服務(wù)狀態(tài)以及開始、停止服務(wù)的契約。

      (2)帶回調(diào)的基礎(chǔ)服務(wù)接口ICallbackServiceBase:

      [ServiceContract]

      public interface ICallbackServiceBase : IServiceBase {

      [OperationContract(IsInitiating = true, IsTerminating = false)]

      void Register();

      [OperationContract(IsInitiating = true, IsTerminating = false)]

      void Unregister();

      }

      ICallbackServiceBase進(jìn)一步擴(kuò)展了IServiceBase,提供了注冊(cè)與反注冊(cè)功能。如果想要在服務(wù)狀態(tài)或數(shù)據(jù)有更新時(shí)得到通知,就需要在服務(wù)處用Register注冊(cè)。

      (3)核心服務(wù)接口ICoordinator:

      [ServiceContract(SessionMode = SessionMode.Required,

      CallbackContract = typeof(ICoordinatorCallback))]

      public interface ICoordinator: ICallbackServiceBase {

      [OperationContract(IsInitiating = true, IsTerminating = false)]

      bool QueryDeviceUsability(string deviceName);

      [OperationContract(IsInitiating = true, IsTerminating = false)]

      void ReadValue(string deviceName);

      [OperationContract(IsInitiating = true, IsTerminating = false)]

      void ReadChannelValue(string deviceName, int ch);

      }

      Coordinator服務(wù)實(shí)現(xiàn)了ICoordinator接口,提供了讀數(shù)據(jù)、持久化、通知等核心服務(wù)。

      (4)服務(wù)狀態(tài)監(jiān)控IStatusMonitor

      [ServiceContract(SessionMode = SessionMode.Required,

      CallbackContract=typeof(IStatusMonitorCallback))]

      public interface IStatusMonitor: ICallbackServiceBase {

      [OperationContract(IsInitiating = true, IsTerminating = false)]

      ICollection GetLastMMUStatus();

      [OperationContract(IsInitiating = true, IsTerminating = false)]

      void Repair(string title);

      }

      StatusMonitor 實(shí)現(xiàn)了IStatusMonitor接口,以便在整個(gè)系統(tǒng)狀態(tài)出現(xiàn)更改時(shí)作出正確的響應(yīng)。

      天台县| 东乡族自治县| 瑞金市| 镶黄旗| 锦州市| 灵宝市| 威远县| 石屏县| 贺州市| 剑阁县| 梁平县| 彝良县| 桂东县| 叙永县| 安化县| 南乐县| 颍上县| 土默特左旗| 嘉善县| 阿尔山市| 竹北市| 丰都县| 金门县| 凤城市| 柳州市| 天台县| 重庆市| 方城县| 政和县| 华亭县| 思茅市| 伊宁市| 普宁市| 襄城县| 修武县| 太仆寺旗| 沧源| 孙吴县| 沅江市| 南皮县| 福安市|