基于三层C/S 模式的嵌入式系统交互设计
2021-01-17臧苏莹孔良栋
臧苏莹,孔良栋
(湖北工业大学,湖北 武汉 430068)
0 引 言
嵌入式系统由英国电气工程师协会定义,是一种完全嵌入到机器内部,从而控制机器运行的计算机系统,与常规的计算机系统不同之处在于其需要预先设置执行要求和执行任务。设计人员能够在初始系统的基础上随着功能及需求的增加不断对其优化,并在这个过程中缩小该系统的制造成本,嵌入式系统一般作为处理器控制面板存储在控制程序的ROM 中。相比于线下嵌入式方法,网络嵌入式系统具有效率高、升级能力强、投入低等特点,因此在众多个人、企业乃至国家单位中得到了广泛的应用[1]。嵌入式系统的优化设计可以将对象设置为网络计算机中的一个装置或设备,嵌入式系统以嵌入式的方式连接到网络环境当中,并将对应的运行控制程序存储在计算机的存储器中,实现计算机与嵌入式系统的联动工作。然而嵌入式系统除了需要将自身的项目内容向外发送外,还需要吸取外界反馈的结果以及相关意见,因此在嵌入式系统中需要设计并实现交互模块[2]。系统的交互模块设计定义了两个甚至多个互动的个体之间交流的内容与结构,以达成某种目的。系统的交互模块在设计的过程中主要是以用户为中心,满足用户在不同方面的交互应用需求。然而经过一段时间的研究发现,传统的嵌入式系统主要以完成固定任务为主,忽略了交互模块在系统中发挥的作用,部分系统中还出现了交互延迟的现象,大大降低了用户的使用感受。
为了解决上述问题,利用三层C/S 模式改变传统系统中的运行模式与逻辑结构,实现对系统交互功能的优化设计。其中,C/S 模式表示Client/Server 模式,即客户机和服务器结构,使用该结构可以充分利用对应硬件环境的优势,将任务合理地分配到相应的服务器中,从而降低系统的交互开销。但基础的C/S 模式的安装工作量较大,对客户端的操作系统也有一定的限制,因此,此次优化设计中应用的模式为三层C/S 模式[3]。该模式在基础模式的基础上,明确分割了表示层、功能层以及数据层,并在逻辑上保证三者的独立关系。通过该模式的引用,减轻了一个系统服务器的运行负载,从而提升系统交互功能的实现效果。
1 嵌入式系统交互功能设计
嵌入式系统交互功能的设计以传统的嵌入式系统为基础,应用三层C/S 模式结构优化系统的逻辑结构以及运行模式,并在此基础上通过建立交互界面与环境实现交互功能。
1.1 优化嵌入式系统逻辑结构
从硬件和软件两个方面实现对系统的优化,按照三层C/S 模式的层次结构实现对系统逻辑的优化,具体的系统层次逻辑模型如图1 所示[4]。
1.1.1 搭建三层C/S 模式框架
三层C/S 结构主要是将嵌入式系统功能分为表示层、功能层和数据层三个部分,具体的三层架构分布情况如图2 所示。
图2 中的用户层对应嵌入式系统中的客户端,通过用户层可以为客户端提供对应用程序的访问[5]。用户层就是用户与系统的接口界面,通过对应的代码隐藏文件实现对各种空间的事件处理。功能层即为客户端与服务器端的通道,可以实现各种嵌入式业务规则和逻辑。而数据层即为服务器端,服务器中包含数据库,系统中产生的数据实时存储到数据库当中,实现数据库的动态连接。
图2 三层C/S 模式架构图
1.1.2 确定系统C/S 计算模式
由于C/S 模式改变了嵌入式系统的框架,因此系统的计算与运行模式也发生了改变[6]。在实际的交互功能实现的过程中,计算机将应用任务分解成为多个子任务,将繁重的计算负载分别分解给客户端与服务器,提升嵌入式系统的计算效率。
1.2 建立嵌入式系统交互界面与环境
按照嵌入式系统交互功能的设计需求分析结果,可以将该功能分为人机交互以及人际交互两个部分。其中,人机交互就是系统用户操作计算机并发布系统任务及功能,而在人际交互的过程中,嵌入式系统作为交互的工具,需要实现系统中用户与用户之间的互动[7]。为此在原有系统的基础上,在系统主界面的导航栏中加入在线留言模块,并将该模块与对应的留言功能链接在一起,实现交互模块的自动跳转,从而实现人际交互。而人机交互功能只需要将计算机可以识别的程序或代码输入到系统中即可实现。
1.3 实现嵌入式系统交互功能
嵌入式系统交互功能的实现原则包括同步交互与异步交互相结合、内容交互与人际交互相结合以及交互数量与交互质量相结合[8]。在规定的设计原则下,确保系统在交互时以质为主、以量为辅,并尽量剔除无意义的交互。为提高系统交互功能的有效性,降低交互产生的时延,建立多线程同步交互模式,并根据不同的交互方式实现交互功能。
1.3.1 多线程同步交互
在三层C/S 模式下,系统服务器端与用户端之间的信息通信可以分为编辑、压缩、发送、接收、解压等多个步骤,且每一个部分对实时性的要求都比较高,而且都通过交互通信数据产生相互关联[9]。为保证交互信息的时延降到最低,需要使用多个线程分别实现各自的功能,线程之间的工作相对独立,同时也支持多人在线交互。系统交互功能中多线程同步交互的工作原理如图3 所示。
从图3 中可以看出,整个信息交互的过程包含5 个线程,其中都包括发出链接请求、启动编辑程序、缓冲压缩、文件接收和压缩等待[10]。通过采用消息传递机制以及信号量机制实现多线程之间的同步工作。
图3 多线程同步交互工作时序图
1.3.2 语音通信交互
在多线程同步交互模式下,嵌入式系统的语音通信交互流程如图4 所示。
图4 语音通信交互流程图
从图4 中可以看出,整个语音通信交互工作可以大致分为三个方面,分别为音频数据的采集、压缩传输以及接收播放[11]。
1.3.3 文字信息交互
除了语音通信交互模式之外,嵌入式系统中的留言板功能也支持在线留言,留言的形式为文字内容的形式。用户可以从系统的主界面连接到留言板模块中,编辑好相应的交互信息并选择发送的对象,在C/S 模式下形成客户端到服务器端的传输连接,实现文字信息的发送[12]。文字信息交互的对象可以为另一个客户端也可以是服务器端。与语音通信交互模式相比,省略了录音与播放音频的模块,因此这种交互方式的实时性更强。
2 功能测试实验
2.1 嵌入式系统开发平台
为了检测嵌入式系统中的交互功能,在原有系统的基础上对源代码进行编写。利用Java 应用程序开发平台打开原有系统的应用程序,Java 提供了可移植、可解释、高性能和面向对象的编程语言以及运行环境。为了保证系统交互功能的正常运行,需要在开发环境中安装jdk 插件,版本选择为jdk 1.6 版本。除了后台的程序代码外,还需要改装系统的前台界面,按照交互功能的使用要求,在主界面中加入互动模块,作为交互功能实现的接口。
2.2 交互功能测试环境
离线状态下的嵌入式系统是无法实现交互功能的,为此在功能测试实验中需要搭建相应的测试环境。测试环境中除了改装完成的带有交互功能的嵌入式系统及其应用开发环境之外,还需要安装系统的数据库服务器、运行服务器以及相关的网络拓扑结构。网络拓扑结构的性质为局域网,且在局域网覆盖的范围内存在其他计算机可以与测试系统形成交互通信。在硬件设备搭建完成的基础上,针对网络以及计算机之间的适配情况进行进一步调试。工作人员在测试环境内对嵌入式系统进行调试的情况如图5 所示。
图5 测试环境
2.3 测试过程
在此次功能测试实验中,设置传统的嵌入式系统交互功能,即基于单层C/S 模式的嵌入式系统交互设计结果作为此次实验的对照组。对比功能在设计过程中使用的基础嵌入式系统相同,以此保证实验结果的可信度。遵循测试功能的开发过程,将对比功能输入到测试环境当中,分别从语音和文字两个方面设置交互信息,并分别记录不同类型信息交互产生的时延情况。为了避免实验数据的偶然性,设计多次实验,取平均值作为最终的实验结果。
2.4 功能测试结果与分析
通过统计学计算原理和第三方软件的分析得出功能测试实验的实验结果,如表1 所示。
表1中的数据表明,在嵌入式系统中信息之间的交互存在不同程度上的时延,且交互信息越复杂产生的时延越长。经过计算,传统交互功能的平均时延为5.4 min,基于三层C/S 模式的嵌入式系统交互功能的平均时延为1.4 min,相比之下节省了4 min。实验结果表明,设计的嵌入式系统的交互时延短、交互性更强。
3 结 语
为增强嵌入式系统的交互性,本文提出了基于三层C/S 模式的嵌入式系统交互设计。三层C/S 模式下的嵌入式系统是由多个嵌入式节点组成的系统,通过一个服务器节点为Control Peer 与多个Function Peer 之间的管理模式,实现系统的运行与交互。在该模式下设计并优化系统的交互功能,实现系统功能的多元化,同时提高了系统的可扩展性与灵活性,保证了不同嵌入式设备之间的资源共享。实验表明,相较于传统嵌入式系统,设计的基于三层C/S 模式的嵌入式系统的平均时延更短、交互性更强。该设计对于嵌入式系统的发展而言具有重要意义。