下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于ICE的分布式ECT/CT系统研究平台的软件设计 【摘要】 可扩展性差、可重用性低、局限使用一种编程语言开发、单机等是常见的ECT/CT软件的缺点。本文介绍一种基于Internet Communications Engine(ICE)的分布式ECT/CT仿真平台的软件设计和实现方法。这一基于ICE的软件设计使其具有高度的可扩展性与重用性、支持多编程语言开发和分布式部署的特点,很好地解决了常规平台的一些局限。分布式计算的高性能优势也优化了系统对计算机资源的利用,从而提高了系统算法的运算
2、效率。 【关键词】 ECT; CT; ICE; 分布式; 多语言平台 Abstract: Common disadvantages of ECT/CT simulation softwares include lack of expandability and reusability, supporting only one programming language, incapability to be connected to the Internet and so on. This work presents a design and realizat
3、ion of the distributed ECT/CT research platform which is based on the technology of Internet Communications Engine (ICE). The platform has great expandability as well as reusability, and it supports more than one programming language. Therefore, this platform offers a good solution for overcoming th
4、e limitations in general platforms. The platform also speeds up the computation of simulation and reconstruction for its distributed system design by its optimization in using computation resources. The internetconnected property of the system greatly improves its utilization. Key words:
5、 ECT; CT; ICE; distributed system; mutilanguage support 1 引言 发射型断层成像技术,即ECT(Emission Computed Tomography),是一种日益受到重视的医学成像技术。而计算机断层成像技术,即CT (Computed Tomography)在临床医学上的应用是20世纪医疗技术进步的重要标志之一。ECT/CT相关的研究与应用离不开计算机的支持,尤其是ECT/CT系统设计和算法的研究更是离不开软件技术的支持。 通常用于ECT/CT研究的软
6、件平台大多基于一种编程语言,如仅仅使用VC+编写,导致后续开发必须使用VC+开发,扩展性与灵活性都比较低。同时这些软件平台大多数为单机的程序,不支持网络应用,导致平台的利用率与效率大打折扣。随着ECT/CT系统研究深入地开展,对平台的性能要求越来越高,这种情况下常用的ECT/CT软件平台必将不能满足研究的需要。 1.1 ECT/CT系统研究平台简介 ECT/CT系统研究平台是一个通用的ECT/CT实验研究平台。平台的仿真模块提供对基本几何体(目前提供三种:长方体、圆柱体和椭球体)的模型编辑功能,通过这些几何体构造复杂的模型,如三维Sh
7、eppLogan模型等。利用平台的模拟投影功能可以对多种扫描方式,如面阵探测器三维螺旋锥束扫描进行模拟和仿真计算,通过设置适当的参数完成对基本几何体模型的成像。由于实践过程中被成像物体的复杂性,平台同时需要提供网格化复杂物体在多种扫描方式下的模拟投影。 平台提供的开发工具可以使科研人员方便的使用VC+6.0、VC+8.0、Java等多种语言对平台进行扩展和模块添加。同时它对网络和分布式部署的支持,一方面可以使一个算法模块或系统同时被多个研究人员使用,另一方面也可以充分地利用科研资源,提高效率,减少运算时间。 1.2 ICE中间件与分布
8、式系统介绍 ICE (Internet Communications Engine)是ZeroC公司提供的一款高性能的、面向对象的而且是开源的中间件。它提供一种适用于异种环境的面向对象中间件平台,即:客户端和服务器端可以使用不同的编程语言编写,同时也可以将两者运行在不同的操作系统和机器架构上,并且可以使用多种网络技术进行通信。 ICE目前支持的主流的编程语言,如:C+、Java、C#、Visual Basic、VC+、Python、PHP和Ruby等,支持常见的操作系统,如:Windows、Linux、Solaris、HP、MacOSX;同时除了
9、支持TCP/IP、SSL、UDP等网络通信协议外,还支持定义自己的通信协议。ICE内建的安全机制(内置防火墙)也可以大大保证使用ICE分布式系统的安全性。 本文提出的基于ICE分布式的ECT/CT系统研究平台的软件设计,一方面大大降低平台扩展的门槛,使研究人员脱离出繁琐的编程语言门户限制,完全专注于算法和系统性能等研究。另一方面利用高性能分布式计算的优势,提高算法的运算速度,同时也减少了科研人员之间的重复开发,提高算法模块的可重用性,提高了科研效率。 2 研究平台的体系架构设计 我们采用面向对象编程中比较常见的
10、MVC三层架构来设计仿真平台,三层架构包括:用户界面层、控制器层、模型算法层。 (1) 用户界面层:用户界面层也就是与用户交互的界面,对于ECT/CT系统研究平台来说,视图层一般来说是负责用户数据的采集、校验、初步处理和接受用户请求,并把相关数据传递给控制器层的相关方法,之后显示由模型层处理后的结果。用户界面层开发和维护比较简单,一般位于客户机端,也就是科研人员的电脑上。 (2) 控制器层:它可以理解为从用户接收请求, 将模型与视图匹配在一起,共同完成用户的请求。它就是一个分发器,选择什么样的模型,选择什么样的视图,可以完成什么样的用户请求。控制
11、层并不做任何的数据处理。它只把用户的信息参数等传递给模型,告诉模型做什么,并把模型层的结果选择符合要求的视图返回给用户。一个模型可能对应多个视图,一个视图可能对应多个模型。该层一般也位于客户端。 (3) 模型层:就是模型算法所在层。对于ECT/CT系统研究平台来说,就是ECT/CT投影模拟算法、ECT/CT图像重建算法等模型算法所在层,它的处理过程相对于其他层是黑箱操作,即对于其他层来说,它只是接收相关的参数,输出相应的结果,具体的算法流程对其他层来说并不可见。这样做的好处显而易见:对于算法的改进和更新并不影响系统其他部分。最大程度上保证了平台的灵活性。这部分也是平台的
12、核心部分。科研人员在研究过程中需扩展的图像重建算法等模块一般被加到此部分。 3 功能扩展原理 模块是由Slice语言(Specific Language for ICE)来定义的。Slice语言是一种纯粹的描述性语言,它描述的是接口和类型(不是实现),我们使用Slice来定义我们需要添加的模块,里面包含相应的接口和数据类型。 例如我们实现CT投影模拟的模块,定义CT投影模块 module CT interface CTProjection
13、 /定义CT投影接口 void setUtil(CTUtil util);/传递辅助结构,CTUtil是CT投影的辅助结构,包/模拟CT投影数据的所需参数 bool Projection();/CT投影方法 ; ; 我们使用Slice2Java和Slice2Cpp编译器编译生成对应于特定编程语言(java,c+)的编程框架,供科研人员将算法实现添加进入框架内。
14、0; 在添加具体实现之后,我们可以通过类似下面的代码将其部署到服务器上 Ice.ObjectAdapter adapter = communicator().createObjectAdapterWithEndpoints("CT_Adapter", "default p 10000");/创建通信代理 Ice.Identity myID =adapter.getCommunicator().stringToIdentity("CTProjection");
15、160; /生成模块的id,客户端通过id来联系上对应的模块 CTProjectionI pro=new CTProjectionI();/这是投影模拟的具体实现类 adapter.activate();/将模块激活,添加到服务器,等待被调用在客户端 在客户端,我们可以通过下面的代码调用上述接口 Ice.Communicator ic = Ice.Util.initialize(args);/初始化ICE通信器 Ice.Obj
16、ectPrx base = ic.stringToProxy("CTProjection:default p 10000");/获得代理,通过标识:CTProjection ProjectionPrx proj=ProjectionPrxHelper.checkedCast(base);/获得Projcetion接口 proj. setUtil(util);/设置辅助类 proj. Projection();/产生模拟投影 客户端与服务器端的通信由ICE
17、保证实现,这个过程可以使用图2来表示:图2 添加模块过程示意图(虚线表示自动生成的文件) 4 研究平台的具体实现 在按照上述架构设计的基于ICE的ECT/CT实现中,研究平台主体框架使用Java语言编写,提供投影模型编辑、CT投影模拟仿真、ECT投影模拟仿真、二/三维图像重建等功能,并集成了针对C+、VC+6.0、VC+8.0的ICE扩展工具。 系统研究平台的界面如图3所示,左图为CT仿真投影的界面设计,右图为ECT仿真投影的界面设计。图4是一个仿真成像的结果示例。图3 研究平台使用界面
18、 图4 平台模拟SL头模型CT的投影结果(左)和胸腔模型ECT投影结果(右) 5 功能扩展举例 我们在实现平台扩展工具时充分利用Java语言的动态编译和动态加载接口,实现在客户端的自动化加载新添模块。科研人员通过扩展工具生成相关代码之后,平台客户端读取配置文件,将新增算法模块的相关信息自动注入控制器,从而保证科研人员无需对客户端进行开发即可直接使用新添模块。 利用该工具我们可以方便地添加模块到平台上,下面以添加模拟SPECT投影为例讲述扩展开发过程 1) 在平台的二次开发界面上选择要使用的编程语言、要添加的模块名称(SPECT)、和接口名(Projection); 2) 点击生成按钮,二次开发工具在平台的secondev文件夹自动生成相关文件; 3) 继承SPECT类,实现相应接口的函数Projection (根据实际研究的方法或子方法); 4) 在服务器端实现部署供调用; 5) 客户端将会自动加载该模块。 由此可见,科
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年盘锦职业技术学院单招职业技能测试题库及答案1套
- 2026年中铝物流集团黑龙江东轻有限公司招聘备考题库含答案详解
- 2026年中国电信寻甸分公司面向社会招聘渠道经理(外包人员)备考题库及参考答案详解一套
- 2026年石家庄工程职业学院单招职业倾向性考试模拟测试卷新版
- 2026年江西科技职业学院单招职业倾向性测试题库新版
- 2026年广东建工恒福物业有限公司招聘备考题库及答案详解一套
- 2026年北京市热力工程设计有限责任公司招聘备考题库有答案详解
- 2026年甘肃农业职业技术学院单招职业倾向性测试题库附答案
- 2026年哈工大航天学院复合材料与结构研究所招聘备考题库及参考答案详解一套
- 2026年河北化工医药职业技术学院单招职业适应性测试题库新版
- 《macd指标详解》课件
- 自动化电气元器件介绍与使用
- 天津市-2024年-社区工作者-上半年笔试真题卷
- GB/T 44545-2024制冷系统试验
- 脾约免疫细胞在肠道菌群维持稳态中的作用
- DBJ 53∕T-23-2014 云南省建筑工程施工质量验收统一规程
- 物资、百货、五金采购 投标方案(技术方案)
- 2024年安防电子市场洞察报告
- 3D打印技术合同
- 期末专题复习:09-语法、对联课件 统编版语文七年级上册
- 棒垒球课教案(完美版)
评论
0/150
提交评论