新聞中心

EEPW首頁 > 醫(yī)療電子 > 設計應用 > 持久發(fā)布/訂閱消息傳送模式,緩解醫(yī)療器械的開發(fā)之痛

持久發(fā)布/訂閱消息傳送模式,緩解醫(yī)療器械的開發(fā)之痛

作者: 時間:2018-09-10 來源:網(wǎng)絡 收藏

在決定以什么樣的最佳方式,利用軟件來使其產(chǎn)品實現(xiàn)智能化時,除考慮當前的要求之外,設計者的目光應當放得更遠。對人機界面(HMI)、無線網(wǎng)絡連接、數(shù)據(jù)存儲以及其他功能的需求發(fā)展迅速,設計者必須創(chuàng)建靈活的系統(tǒng),以適應技術和組件的推陳出新,同時最大限度地減少相關開發(fā)工作量或者對初始設計的影響。

本文引用地址:http://2s4d.com/article/201809/388768.htm

是否為選擇了適當?shù)南?a class="contentlabel" href="http://2s4d.com/news/listbylabel/label/傳送">傳送,意味著是按預算如期開發(fā)出高效、靈活的系統(tǒng)并獲得認證,還是所開發(fā)的系統(tǒng)效率低下而又脆弱,并且開發(fā)過程伴隨著無數(shù)麻煩的天壤之別。相比于其他消息,持久/訂閱(PPS)消息具有諸多優(yōu)勢,特別是在采用了眾多完全不同的組件和技術的中(圖1)。

圖1 這臺用于可行性論證的醫(yī)療器械模型匯合并顯示了從血壓計、肺活量計、脈搏氧飽和度儀、心電圖設備和胰島素泵獲得的數(shù)據(jù)。這些設備連接至康體佳互通性管理器,并利用PPS消息傳送來與Qt HMI通信。PPS也為一個遠程管理器提供了消息傳送服務,以確保與基于云計算系統(tǒng)的數(shù)據(jù)庫和便攜式平板電腦之間的互聯(lián)網(wǎng)通信。

另外兩種常用的消息傳送系統(tǒng)——異步消息傳送和同步消息傳送——則對設計復雜的系統(tǒng)提出了挑戰(zhàn)。眾所周知、應用廣泛的異步消息傳送系統(tǒng)(圖2)是許多系統(tǒng)的首選解決方案,但它將錯誤處理、端到端語義和緩沖管理等負擔,推高至應用層。

圖2 采用異步消息傳送,一個進程發(fā)送其消息并繼續(xù)執(zhí)行,當且僅當回復到達時,接收回復。

因此,架構師在設計采用異步消息傳送模式的系統(tǒng)時,必須開發(fā)相應的消息協(xié)議,以確保所有應用的消息傳送行為都是正確的,還必須確保這些應用在高負載條件下,分配充足的存儲空間用于消息緩沖。雖然在簡單的系統(tǒng)中,完成這些設計任務可能不太費勁,但對于設計或升級復雜的系統(tǒng),這些任務可能構成令人生畏的艱巨挑戰(zhàn)。
同步消息傳送系統(tǒng),或者說發(fā)送/接收/回復消息傳送系統(tǒng)(圖3)不如異步消息傳送系統(tǒng)那么常用。對于有許多進程要求在其開始執(zhí)行之前響應其消息的實時環(huán)境,同步消息傳送特別有用。

圖3 采用同步消息傳送,一個進程阻塞直至其收到從目標接收進程發(fā)出的回復。

對于必須輕松地集成完全不同的應用的復雜系統(tǒng),同步消息傳送可能不是最優(yōu)選擇。同步消息傳送將發(fā)送方與接收方緊密地結合起來。每一臺服務器都直接與其客戶端通信,并且必須知道如何響應所有客戶端消息,因此,對一個軟件組件做出的改變,可能要求改變其他軟件組件。

持久/訂閱

/訂閱消息傳送模式問世已久。1987年,K. P. Birman和T. A. Joseph描述了一種類似的消息傳送模式——虛擬同步。二十年前,北電網(wǎng)絡實現(xiàn)了一個用于在電話交換機上執(zhí)行故障監(jiān)視的發(fā)布/訂閱消息傳送模型,如今,快速互聯(lián)網(wǎng)搜索提供了許多發(fā)布/訂閱消息傳送實現(xiàn)的例子。持久發(fā)布/訂閱在這些模式的基礎上進一步發(fā)展,確保了重新啟動后的數(shù)據(jù)持久性,并且可以支持必須集成許多設備和組件,采用尖端的人機界面的應用。

PPS是一項基于對象的服務,其發(fā)布方和訂閱方是在一個松散結合的消息傳送架構中。任何PPS客戶端都可以是發(fā)布方、訂閱方或兼為二者。發(fā)布方修改對象及其屬性,并將之寫入文件系統(tǒng)。當發(fā)布方改變一個對象時,PPS服務將通知所有訂閱了該對象的客戶端。客戶端可以訂閱多個對象,并且對象可以具備多個發(fā)布方和訂閱方。因此,多個發(fā)布方可以使用同一個對象及其屬性,來向所有訂閱了該對象的客戶端傳遞信息。

PPS客戶端必須知道感興趣的是哪些PPS對象。如果是發(fā)布方,它們需要知道在什么時候發(fā)布什么消息;如果是訂閱方,它們需要知道必須訂閱哪些對象以及對哪些對象屬性感興趣。

然而,PPS客戶端不必管理錯誤,并且與它們有關的唯一緩沖是那些用于open()(打開)、read() (讀?。┖蛍rite()(寫入)POSIX API調(diào)用的緩沖。由于PPS訂閱方使用read()調(diào)用來檢索數(shù)據(jù),因此,它們不需要為這些對象管理緩沖。它們僅需決定其讀取是阻塞方式,還是非阻塞方式,以及確認它們能夠解析所讀取的數(shù)據(jù)。PPS服務將處理其余事項。

持久性

PPS服務可在重新啟動后更新數(shù)據(jù)。運行時,它將其對象存放在內(nèi)存中,但在收到指令或在關閉時,則將之保存在永久性存儲器中。啟動時,它可立即或在首次訪問時,恢復其對象。當然,永久性存儲器依賴于可靠的文件系統(tǒng)和存儲介質。

PPS消息傳送模式也可簡化系統(tǒng)啟動。例如,在采用常規(guī)消息傳送模式的系統(tǒng)中,如果某個客戶端在服務器之后啟動,那么,該客戶端必須向服務器請求新的數(shù)據(jù),以防在從服務器啟動到客戶端啟動的這段時間內(nèi)發(fā)生了任何改變。對于系統(tǒng)中的每一個客戶端,如果客戶端與服務器之間的連接中斷,也必須滿足這個要求。然而,利用PPS服務,發(fā)布和訂閱服務可在啟動時恢復其對象,并在對象有所變化時更新對象。任何客戶端——不論其在任何時候啟動或重新連接——僅需讀取這些對象,即可獲得當前數(shù)據(jù)。

利用PPS服務,發(fā)布方與訂閱方相互之間并不認識;它們之間的唯一聯(lián)系是對它們具有意義和目的的對象。這種模式賦予了系統(tǒng)設計者極大的靈活性。如有必要,他們可以將關于模塊連接點和數(shù)據(jù)流的決策,推遲到運行時間再做出。開發(fā)人員可以在創(chuàng)建系統(tǒng)的過程中調(diào)整連接點,甚或將之設置為隨著系統(tǒng)的運行而動態(tài)改變,因為這些點既不是硬編碼的,也沒有直接聯(lián)系。

PPS消息傳送模式也簡化了新組件的集成。由于發(fā)布方與訂閱方無需相互認識,因此,添加組件的開發(fā)人員僅需決定該新組件應當發(fā)布什么數(shù)據(jù),以及這些組件需要其他PPS客戶端發(fā)布什么數(shù)據(jù)。例如,他們可以在醫(yī)療器械聚合器中添加ECG或EEG組件,而不必微調(diào)API,并且不會加劇系統(tǒng)復雜度(圖4)。

圖4 通過PPS進行通信的系統(tǒng)組件不需要相互認識,因此,系統(tǒng)設計者可以添加新的測量設備或者改變HMI,而不必修改整個系統(tǒng)。

可行性論證

作為QNX軟件系統(tǒng)公司開展的醫(yī)療器械開發(fā)計劃的一部分,我們設計并打造了一個用于可行性論證的模型,以在便攜式醫(yī)療器械提供的有限的計算資源上運行。該應用利用基于康體佳(Continua)標準的互通性管理器、PPS和利用跨平臺應用和用戶界面框架Qt(發(fā)音“cute”)創(chuàng)建的尖端的HMI,將一系列典型設備組合起來。

我們之所以選擇Qt用戶界面和基于康體佳聯(lián)盟提供的康體佳使能軟件庫(CESL)的互通性管理器是因為,這兩種技術都在醫(yī)療器械行業(yè)享有盛譽。Qt在C++開發(fā)環(huán)境中提供了一套明確定義的UI組件,并且有著在獲得了FDA及其他規(guī)定認證的醫(yī)療器械上成功實現(xiàn)的悠久歷史。

Qt提供了打造符合嚴格的設計要求的清晰、高效的用戶界面所需的所有組件,包括布局、分層和多媒體支持。類似地,康體佳軟件庫中的通信協(xié)議不僅提供了與完全不同的醫(yī)療器械進行通信的簡單方法,而且是一個早已在醫(yī)療器械中成功部署的標準化協(xié)議。

簡化的架構

可以將PPS服務專門設計為使用二進制對象或人可讀的對象。二進制對象很小,但是,除最具約束性的環(huán)境之外,在所有環(huán)境中,人可讀的對象更可取。它們允許開發(fā)人員利用標準文件系統(tǒng)實用程序,從命令行進行調(diào)試,如cat命令用于訂閱,echo命令用于發(fā)布,或者編寫一個簡單的程序,用于訂閱某個對象并打印調(diào)試信息,包括PPS對象及其屬性的列表。

PPS消息傳送為應用提供了一個靈活的架構。例如,要用其他庫來替代康體佳庫,或者用其他HMI技術來替代Qt,所需工作量極少。同樣地,改變HMI技術不會要求改變互通性管理器或者遠程管理器,就像改變這些管理器,不會要求改變HMI。

PPS消息傳送也便于添加新的設備——利用標準康體佳協(xié)議,通過USB、藍牙甚或TCP,即可將新的設備連接至系統(tǒng)。例如,我們僅需利用康體佳協(xié)議將一個EEG連接至互通性管理器,創(chuàng)建適當?shù)腜PS對象用于通信,并且在HMI中添加相關顯示和控制功能,即可將該EEG添加到我們的可行性論證模型中。此外,PPS消息傳送簡化了測試和功能安全驗證,因為添加新的組件不要求修改和重新驗證所有其他組件之間的消息傳送。

最后,PPS消息傳送簡化了品牌重樹、本地化和用戶界面更新等。因為HMI通過PPS對象與系統(tǒng)的其余組件進行通信,所以設計者不必改變HMI之下的任何一行代碼。他們僅需確保新的HIMI所訂閱和發(fā)布的PPS對象與先前的HMI相同。在完全相同的基礎系統(tǒng)上,僅需實現(xiàn)不同的特性,或者不同的HMI設計,例如,支持不同的字母表和寫入系統(tǒng),即可打造出各種產(chǎn)品系列。



評論


相關推薦

技術專區(qū)

關閉