- 文献综述(或调研报告):
3.1 基于Django的Web端系统开发
Django是使用Python开发的Web端的开发框架,他采用的是MTV架构(Model-Template-View),Model用于数据库处理,Template是模板系统,用于显示处理,View是控制部分用于Model的处理、数据的加工和模板的调用等工作[1]。MTV模式与MVC模式略有不同,这里控制器部分有框架本身处理。这使我们能够配置模型和模板。该模型是与Django模板语言(DTL)混合的HTML文件。Django 还集成了一个轻量级的Web Server,得以提高Web应用开发和调试的速度[5]。Django自带的服务器对于部署环境来说不适用于瞬时请求量过大的项目,而且对于请求的安全审计也不是特别出色[6]。
Django提供了一个强大的命令行工具Django-admin可以帮用户完成大量的初始化及有关数据库方面的工作。URL设计也很漂亮,cruft-free没有框架的特定限定。不需要花大量的工作来创建人员管理和更新性能内容的接界,Django可以自动完成。还可以支持Postgresql,MySQL, SQLite3, Oracle,adomsSQL.
3.2 RabbitMQ
RabbitMQ 是一个由Erlang语言开发的高级消息队列协议(AMQP)的开源实现。AMQP是应用层协议的一个开放标准,为面向消息的中间件设计,基于此协议的客户端与消息中间件可传递消息,而不受产品或开发语言等条件的限制。RabbitMQ 通过持久化,传输确认,发布确认等方式来保证可靠性。它还有高可用性的特点,队列可以在集群中的机器上进行景象,几十部份节点出了问题保证队列仍然可用。
RabbitMQ 集群有两种模式:普通模式、镜像模式。
普通模式:也是默认模式,对于queue来说,消息实体只存在与其中的一个节点,A、B两个节点只有相同的元数据。当消息在A时,消费中从B中获取消息时,消息会从A中传递到B中。
镜像模式:镜像模式是RabbitMQ的HA方案。其与普通模式的唯一不同之处在于消息会在A,B两个节点中同步。当然这种模式带来的副作用也是显而易见的。除了降低系统性能以外,如果队列数量过多,网络带宽将会受到影响。所以这种情况只运用到对高可靠性要求的场合上。[4]
3.3 通用虚拟仪器标准
通用虚拟仪器(Interchangeable Virtual Instruments)标准定义了开放式的驱动程序体系结构,一组仪器类和共享软件组件。IVI驱动程序定义了新级别的质量,完整性,可用性和功能,从而降低了测试系统开发和所有权的成本。IVI驱动程序自动缓存仪器状态,只有当仪器的状态设置与驱动程序所需要的不同时才执行仪器I/O,消除了冗余命令,加快测试速度[3]。IVI驱动程序简化了升级或更换旨在长期使用的复杂测试系统中的组件。IVI定义的应用程序编程接口标准化了常用的测量功能,减少了学习时间。仿真仪器可以使开发人员无需仪器运行代码,减少了硬件资源的需求,简化了测量应用的测试。它还具有可互换性,减少了将测量设备集成到新系统或现有系统所需的时间和经历。
3.4 包的依赖关系
