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