PPS消息傳送可簡化醫(yī)療設(shè)備設(shè)計
一款電子醫(yī)療設(shè)備的設(shè)計、開發(fā)和上市準備可能比擁有同等技術(shù)復雜度的消費級設(shè)備要花費更多的時間、努力和成本。除了一般的開發(fā)和審批需求,醫(yī)療器械還有嚴格的功能安全和認證要求。這些要求都意味著醫(yī)療器械擁有嚴格定義和管理的設(shè)計、開發(fā)和審批環(huán)境,并需要對功能安全進行廣泛和精細的驗證。
本文引用地址:http://2s4d.com/article/164886.htm當然,醫(yī)療器械在上市之前必須得到產(chǎn)品銷售地和使用地主管當局的相關(guān)認證,比如:FDA 510(k)上市前通告、醫(yī)療器械指令(MDD)和其他國際和國家機構(gòu)頒發(fā)的認證。
本文描述了醫(yī)療數(shù)據(jù)聚合器和發(fā)布者(QNX公司醫(yī)療演示)中的PPS消息傳送。QNX醫(yī)療演示(MD)在便攜式演示應(yīng)用中整合了血壓計、肺活量計、脈搏氧飽和度儀、心電圖和胰島素泵。這些設(shè)備連接至QNX康體佳互通性管理器上,并利用QNX PPS消息傳送與Qt HMI進行通信。PPS也為遠程管理器提供了消息傳送服務(wù),以確保與基于云的數(shù)據(jù)庫和便攜式平板電腦之間進行安全互聯(lián)網(wǎng)通信。由于帶有PPS消息傳送功能的系統(tǒng)可以簡易地整合不同的組件,我們可以得出結(jié)論:PPS消息傳送功能非常適用于像QNX MD應(yīng)用之類的系統(tǒng)。
圖1:QNX MD演示。
異步消息傳送
異步消息已眾所周知并得到廣泛應(yīng)用,這里不再贅述。它是很多系統(tǒng)可選的解決方案,但其一些特性使它難以成為需要集成大量器件和軟件的系統(tǒng)的理想解決方案。
圖2:采用異步消息傳送,進程無須等待目標接收進程的回復。
對于復雜醫(yī)療設(shè)備的消息傳送模式,值得注意的是,異步消息傳送是一個低端的解決方案--它將錯誤處理、端到端語義和緩沖管理等負擔推高至應(yīng)用程序級。因此,架構(gòu)師在設(shè)計采用異步消息傳送模式的系統(tǒng)時,必須開發(fā)一個或多個協(xié)議,以確保在所有應(yīng)用中消息傳送正確進行,因為它們必須保證這些應(yīng)用程序在高負載條件下能夠獲得足夠的內(nèi)存分配用于消息緩沖。
在簡單的系統(tǒng)中,完成這些任務(wù)可能不太費勁,但對于設(shè)計或升級復雜的系統(tǒng),這些任務(wù)可能構(gòu)成艱巨的挑戰(zhàn)。進一步來說,它們給應(yīng)用程序級或者應(yīng)用開發(fā)流程帶來的復雜操作不僅會影響設(shè)計和開發(fā)進程,也會影響設(shè)備的審批,進而影響設(shè)備認證。
發(fā)送/接收/回復
發(fā)送/接收/回復(或者同步)消息傳送不如異步消息傳送那樣常見。它的重要性主要體現(xiàn)在實時環(huán)境中--許多進程必須先響應(yīng)其消息后才能繼續(xù)運行。此外,與異步消息傳送不同的是,采用發(fā)送/接收/回復消息傳送時,系統(tǒng)框架會承受處理消息傳送錯誤和消息緩沖的負擔。
每個服務(wù)器都與其客戶端直接通信,而且必須知道如何響應(yīng)所有的客戶端消息。
同步消息傳送密切聯(lián)系著發(fā)送方和接收方,因此,更改一個軟件組件可能需要更改其他的軟件組件,這不僅延緩或阻礙了系統(tǒng)開發(fā),還加劇了系統(tǒng)的脆弱性。
圖3:采用同步消息傳送,進程阻塞直到它接收到從目標接收進程發(fā)出的回復。
總之,如果采用發(fā)送/接收/回復消息傳送,當系統(tǒng)不斷擴展并增加不同組件時,系統(tǒng)的復雜性會迅速加劇,變得不堪一擊,因此很難在確保性能和對醫(yī)療器械來說極為重要的可靠性的同時進行升級和擴展。
二進制還是可讀對象?
系統(tǒng)可擴展性
利用PPS服務(wù),發(fā)布者與訂閱者之間并不認識;他們之間唯一的聯(lián)系是具有某種含義和用途的對象。這種消息傳送模式賦予了系統(tǒng)設(shè)計者極大的靈活性:如有必要,他們可以將關(guān)于模塊連接點和數(shù)據(jù)流的決策推遲到運行時間再做出。因為這些決定既非硬編碼,也沒有直接聯(lián)系,開發(fā)人員可以根據(jù)實際情況或要求的變化改變決定,甚至還能在系統(tǒng)運行時動態(tài)地更改決定。
松耦合PPS消息傳送模式還能簡化新軟件組件的集成。由于發(fā)布者和訂閱者不必認識對方,增加組件的開發(fā)人員只需要確定這些新組件的發(fā)布內(nèi)容,以及他們需要其他PPS客戶端發(fā)布的數(shù)據(jù)內(nèi)容。開發(fā)人員無需精確地調(diào)整應(yīng)用程序接口;系統(tǒng)復雜性不會隨組件的增加而加劇。
圖4:QNX MD視頻截圖。
醫(yī)療演示
作為QNX軟件系統(tǒng)公司開展的醫(yī)療器械開發(fā)計劃的一部分,運行QNX Neutrino RTOS的系統(tǒng)中設(shè)計和創(chuàng)建了QNX MD數(shù)據(jù)聚合和發(fā)布應(yīng)用,以在便攜式醫(yī)療器械提供的有限的計算資源上運行。該應(yīng)用利用基于康體佳標準的互通性管理器、PPS和用戶界面框架Qt創(chuàng)建的HMI,將一系列典型設(shè)備組合起來。
Qt和CESL
選擇Qt用戶界面和康體佳使能軟件庫(CESL)的互通性管理器是因為這兩種技術(shù)都在醫(yī)療器械行業(yè)享有盛譽。Qt在C++開發(fā)環(huán)境中提供了一套明確定義的UI組件,并且有著在獲得了FDA及其他規(guī)定認證的醫(yī)療器械上成功實現(xiàn)的悠久歷史。
圖5:帶有PPS消息傳送模式的QNX MD數(shù)據(jù)聚合和發(fā)布應(yīng)用。需要注意,PPS為HMI和互通性管理器以及遠程管理器提供所有消息傳送。
Qt提供了打造符合嚴格設(shè)計要求的清晰、高效的用戶界面所需的所有組件,包括布局、分層和多媒體支持。與之類似,康體佳軟件庫中的通信協(xié)議不僅提供了與完全不同的醫(yī)療器械進行通信的簡單方法,而且是一個早已在醫(yī)療器械中成功部署的標準化協(xié)議。簡而言之,Qt和康體佳技術(shù)滿足所有需求,并且為醫(yī)療器械行業(yè)所熟知和信任。
簡化的架構(gòu)
QNX MD演示應(yīng)用使用PPS服務(wù)的一個重要好處是松耦合的消息傳送模式可以實現(xiàn)靈活的架構(gòu)。如果出于任何原因而必須要求這樣的改變,也僅需要極少量的工作來用另一個庫替代康體佳庫,或者替代HMI的Qt.
改變HMI技術(shù)無需改變互通性管理器或者遠程管理器,就像改變這些管理器不會要求改變HMI一樣。此外,PPS消息傳送模式也便于添加新的設(shè)備,可以利用標準的康體佳協(xié)議通過USB、藍牙甚至TCP將新的設(shè)備連接至系統(tǒng)。例如,僅需利用康體佳協(xié)議將一個EEG連接至互通性管理器,創(chuàng)建適當?shù)腜PS對象與數(shù)據(jù)庫、本地HMI和平板電腦上的遠程HMI交流數(shù)據(jù),并在HMI中添加相關(guān)的顯示和控制功能,即可將該EEG添加到可行性論證模型中。
在使用其他消息傳送模式的系統(tǒng)中,組件彼此緊密聯(lián)系,也與人機界面密切聯(lián)系。每個組件都要了解需要與其交換數(shù)據(jù)的其他組件--在這種系統(tǒng)架構(gòu)中更改或增加內(nèi)容勢必會困難重重、耗費時間和充滿風險。PPS消息傳送模式的另一個優(yōu)勢是它可以簡化測試和功能安全驗證,因為增加新的組件無需重新訪問其他所有組件之間的消息傳送。
最后,PPS消息傳送簡化了品牌重塑、本地化和用戶界面更新。因為HMI通過PPS對象與系統(tǒng)的其余組件進行通信,所以用戶界面設(shè)計者僅需確保新的或改變的HIMI所訂閱和發(fā)布的PPS對象與先前HMI的PPS對象相同。他們不需要改變HMI下面任一行代碼。在完全相同的基礎(chǔ)系統(tǒng)上,僅需通過不同的界面、實現(xiàn)不同的特性或者不同區(qū)域的不同HMI設(shè)計(例如支持不同的寫入系統(tǒng)或不同的顏色偏好和意義),即可打造出各種產(chǎn)品系列。
圖6:QNX MD應(yīng)用程序連接外部數(shù)據(jù)庫的高層視圖。
本文小結(jié)
QNX MD應(yīng)用展現(xiàn)了PPS消息傳送可以如何應(yīng)用于松耦合的醫(yī)療器械架構(gòu)中。該設(shè)計實現(xiàn)了HMI和支持標準康體佳協(xié)議的互通性管理器之間靈活、強大的通信。這個互通性管理器還可與外部組件設(shè)備通信。由于組件僅僅根據(jù)實施需求來發(fā)布和訂閱PPS對象,他們不需要了解對方,因此不費吹灰之力就可以擴展或修改系統(tǒng)。實際上,PPS組件的松耦合架構(gòu)使更改、升級和擴展任務(wù)變得更加輕松,從而減少了風險。
PPS服務(wù)可設(shè)計成使用二進制對象或可讀對象。
我們選擇將可讀對象和屬性用于QNX PPS,因為與較大對象的成本相比,其具有更大的開發(fā)和調(diào)試優(yōu)勢。
可讀對象允許使用簡單的文件系統(tǒng)工具從命令行進行調(diào)試,比如cat命令用于訂閱,echo命令用于發(fā)布。
舉例來說:
cat /pps/media/PlayCurrent
cat /pps/media/.all?wait
或
echo attr::value》/pps/objectfilename
同樣,調(diào)試信息(包括PPS對象和屬性)能夠通過訂閱一個對象并打印出來的簡單程序被檢索到。
持久發(fā)布/訂閱
對于實時操作系統(tǒng)(比如必須滿足嚴格的可靠性和可獲取性要求的QNX Neutrino RTOS)來說,發(fā)送/接收/回復消息傳送模式非常適用,甚至是有強制要求。但是,和異步消息傳送一樣,發(fā)送/接收/回復消息傳送也不是復雜系統(tǒng)的最佳選擇,特別是當這些系統(tǒng)必須輕松地集成不同的應(yīng)用和功能時。發(fā)送/接收/回復消息傳送密切聯(lián)系著發(fā)送方和接收方。
發(fā)布/訂閱已經(jīng)以各種形式存在了至少20年。1987年,K.P.Birman和T.A.Joseph將類似的消息傳送模式(虛擬同步)描述為一種容錯的異步公告牌機制.
二十年前,北電網(wǎng)絡(luò)公司應(yīng)用了一種類似模型以在電話交換機(如DMS-100)上進行故障監(jiān)測,并使用了網(wǎng)絡(luò)監(jiān)測和報告系統(tǒng)的技術(shù)。只要在網(wǎng)上快速搜索,就能找到許多發(fā)布/訂閱的應(yīng)用實例。再深入搜索,還能在美國計算機協(xié)會(ACM)的門戶網(wǎng)站上找到幾百份與發(fā)布/訂閱的某些方面或其他觀察者模式計算模型有關(guān)的文章。
我們將重點介紹,在重啟時也能確保持續(xù)性的發(fā)布/訂閱模型或PPS如何能夠幫助不僅支持各種設(shè)備和軟件組件、而且能與復雜人機界面進行通信的嵌入式應(yīng)用程序進行開發(fā)和部署。
我們對QNX MD使用了基于Qt的HMI,但是PPS消息傳送模式的優(yōu)勢也可以應(yīng)用于由其他技術(shù)建造的HMI.實際上,在其他系統(tǒng)上已經(jīng)應(yīng)用了PPS,包括QNX CAR應(yīng)用平臺和Smart Energy參考應(yīng)用,這兩者都擁有基于Adobe Flash的HMI.
基于對象的系統(tǒng)
PPS是在松耦合消息傳送架構(gòu)中針對發(fā)布者和訂閱者提供的一種基于對象的服務(wù)。根據(jù)實現(xiàn)服務(wù)的需要,任何PPS服務(wù)客戶端都既可以是單獨的發(fā)布者或訂閱者,也可以既是發(fā)布者又是訂閱者。
發(fā)布以異步方式進行。PPS對象集成在PPS文件系統(tǒng)的路徑名空間中。發(fā)布者可修改對象及其屬性并將其寫入到文件系統(tǒng)中。當任何發(fā)布者更改對象時,PPS服務(wù)都會通知訂閱該對象的所有客戶端。PPS客戶端能訂閱多個對象,PPS對象可以有多個發(fā)布者和多個訂閱者。因此,能訪問應(yīng)用到不同對象屬性的數(shù)據(jù)的發(fā)布者可使用相同對象與該對象的所有訂閱者交流信息。
PPS客戶端必須知道感興趣的是哪些PPS對象。如果是發(fā)布方,他們需要知道在什么時候發(fā)布什么消息;如果是訂閱者,他們需要知道訂閱的對象種類和感興趣的對象屬性。然而,PPS客戶端不必管理錯誤,只需在使用open()、read()和write() POSIX API調(diào)用的范圍內(nèi)緩沖,確認其理解讀取的內(nèi)容以及是否希望讀取處于阻塞或非阻塞狀態(tài)。PPS服務(wù)會負責處理其他內(nèi)容。客戶端只需要知道已讀取消息并且能分析讀取內(nèi)容。同樣,由于PPS訂閱者使用read()調(diào)用檢索對象,他們無需管理這些對象的緩沖區(qū)。
推送還是提取?
在默認狀態(tài)下,QNX PPS服務(wù)是作為推送式發(fā)布系統(tǒng)運行的;也就是說,發(fā)布者會將數(shù)據(jù)推送到對象中,訂閱者會根據(jù)通知或在閑暇時讀取數(shù)據(jù)。
但有些數(shù)據(jù)(如接口上的數(shù)據(jù)包計數(shù))變化太快,因此無法通過使用默認推送發(fā)布的PPS有效地進行發(fā)布。
為此,QNX PPS還提供了一種選項,允許訂閱者將PPS變成提取式發(fā)布系統(tǒng)。當訂閱者打開具有該選項的對象并發(fā)出一個read()調(diào)用時,該對象的所有發(fā)布者會收到一個通知以在對象中寫入當前數(shù)據(jù)。訂閱者的讀取會一直阻塞直至對象的數(shù)據(jù)得到更新并返回新的數(shù)據(jù)。
助聽器原理相關(guān)文章:助聽器原理
評論