关于仿真:医疗虚拟仿真和虚拟现实有什么区别哪个更好

随着咱们在仿真教育中越来越多地应用新技术,辨别虚构模式的类型很重要。虚构仿真是一个统称,用来概括术语来形容各种基于仿真的体验,从基于屏幕的平台到沉迷式虚拟现实。然而,各虚构平台在保真度、沉迷感和临场感的程度上有很大差别。医疗教育中存在许多虚构解决方案的空间,对于护理虚构仿真课程来说,没有 "一刀切 "的模式。在此就给大家介绍下医疗行业的虚构仿真和沉迷式虚拟现实之间的区别! 医疗虚构仿真技术 《医疗保健模仿词典》里说道,"虚构模仿是 在计算机屏幕上描述的事实的再现"。在参加虚构模仿时,学习者从电脑屏幕上体验模仿的临床场景,同时常常应用鼠标或键盘与课程内容互动。学生能够从菜单中选择相应动作,为虚构病人提供护理服务。实现模仿课程后,零碎会提供一份标准化的反馈报告,阐明学生是否达到了情景学习指标。 医疗虚构仿真的劣势 虚构仿真教学已被证实是一种反对学生学习且无效的教学方法。钻研表明,虚构仿真教学在进步常识的保留、临床推理和学生对学习的满意度方面反馈较好。也包含能使老师们可能以一种容易合乎社会间隔和感化管制准则的形式提供体验式学习。虚构仿真教学通常是基于网络,能够用规范的电脑或笔记本电脑拜访,因而能够无缝地转化为基于近程模仿的。 医疗虚构仿真的局限性 与任何仿真形式一样,虚构仿真也有局限性。在电脑屏幕上进行基于菜单的操作和交换,会升高体验的沉迷感、真实性和真实性。尽管适当的提醒是一个重要的促成策略,但学生可能就不会被动思考实现相应的交互体验。一些教育工作者报告说,学生对某些基于屏幕的选项不足参与感,因为学生可能会在没有应用批判性思维技能的状况下点击实现情景。因为学习者常常通过应用鼠标或键盘与环境互动,这可能会限度对某些须要准确、精密静止的精力静止技能的评估。此外,教育者应思考提供更高水平的沉迷感和现场感的新兴技术。依据最近的一项钻研,虚构模仿在护理教育中的应用预计在将来2至5年内会缩小。在同一时间框架内,像虚拟现实这样的新兴技术的应用预计会回升。 沉迷式的医疗虚拟现实 《医疗保健模仿词典》将虚拟现实定义为 "应用计算机技术发明一个互动的三维世界,其中的物体有一种空间存在感"。各种类型的虚拟现实能够通过沉迷感和存在感的水平来辨别。最具沉迷感的虚拟现实平台通常应用头戴式显示器,使参与者沉迷在一个实在的虚拟世界中。这种多感官、沉迷式的体验转化为高度的临场感,参与者认为本人是在模仿的临床环境中,而不是在他们四周的物理世界。沉迷式虚拟现实模仿是亲自体验,容许参与者关照事实中的病人,在团队中单干,并操作虚构设施。参与者也有一种本体感,在他们提供护理时,他们能够感觉到本人在虚拟环境中的地位和静止。 沉迷式虚拟现实的益处 沉迷式虚拟现实是一种很有前途的医疗保健教育的模仿模式。当钻研沉迷式虚拟现实对学生学习成绩的影响时,与传统办法相比,它显示了非劣质的学习成绩,以及认知、心理静止和情感技能的改善。最近的一项钻研发现,应用沉迷式虚拟现实技术的学习者比那些通过电脑屏幕学习的学习者的参与度和情感分割要高2-3倍。还有钻研表明,与应用电脑的学习者相比,在沉迷式虚拟现实中的学习者在训练中的注意力最多能够达到4倍。 3DCAT元宇宙实时渲染就是一个能够提供实时交互、学习的云平台,它能够让学习者解脱叼繁冗、惨重的硬件设施,将虚构仿真内容放在云端,再通过实时推流的模式传到学习者的电脑、平板或手机,只有有稳固的网络,就能够进行施行口头和医治交换。就像在实在的临床环境中一样。 沉迷式虚拟现实模仿的局限性 如前所述,所有的虚构模式都有局限性。参加沉迷式虚拟现实须要对设施进行定位,以便学习者为基于模仿的体验做好筹备。与虚构仿真一样,并非所有的技能都能在沉迷式虚拟现实中失去充沛的评估。学习者常常应用手控器,最大限度地缩小执行严格动作的能力,如静脉导管插入。这可能会限度对某些心理静止技能的评估。 对于虚拟现实技术一些思考 医疗保健行业是新兴的虚构仿真技术的先行者,通过优化工作流程和改善病人后果。与数字世界同步的学习解决方案有助于帮忙一个医护人员在业余技术方面疾速进步。医护人员在工作过程中应用沉迷式虚拟现实平台,有助于医治某些病人的病情。虚构仿真和沉迷式虚拟现实都能够提供有意义的学习教训。在将这种技术用到你的我的项目里之前,须要认真考虑一下二者的区别、局限性,以及什么能最终满足学习指标和预期后果。 本文《医疗虚构仿真和虚拟现实有什么区别?哪个更好?》内容由3DCAT元宇宙实时渲染云解决方案提供商整顿公布,如需转载,请注明出处及链接。

June 16, 2023 · 1 min · jiezi

关于仿真:通信系统综合仿真

一、按每个模块的性能进行参数配置先设置信号源为正弦波,频率8KHz,幅度15,帧头01111110,8bit为01010101,前向爱护设置为1111000000000000。 信号源设置频率8KHz,幅度15帧头设置011111108bit设置01010101前向爱护1111000000000000二、不同编码方式的信号波形观测1.汉明编译码信道编码模块: 上图中CH1为编码前数据、CH2为编码前时钟、CH3为编码帧脉冲、CH4为编码后时钟、CH5为编码后数据。通过试验图能够看出,输入的编码帧脉冲恰好能够分隔出一个残缺的复接数据,能够察看到一帧数据和CVSD编码数据和8bit数据01010101。此外,还能够看出编码前时钟速率是编码后时钟速率的一半。 频带DQPSK调制模块: 标签的对应顺次是:4:调制信号、3:载波信号、2:时钟信号、1:数据。从试验后果中能够看到调制信号产生了相位渐变。 DQPSK解调: 标签的对应顺次是:4:眼图观测、3:I路时钟、2:调制输入、1:调制输出,其中不难发现I路时钟是解调时钟速率的一半,并且通过2和1的比照可知调制输入和调制输出根本合乎试验的实践。 信道译码: 标签的对应顺次是:CH1译码输出信号、CH2时钟信号、CH3帧脉冲信号、CH4纠错信号、CH5未纠错信号。此时因为并未加错,因而可见纠错与未纠错的波形雷同。 解复用与信源编码: 标签的对应顺次是:4:PCM译码、3:时钟、2:数据、1:帧头 此时PCM译码没有输入波形,因为信源编码与复用模块为CVSD编码。 2.卷积编译码信道编码模块: 标签的对应顺次是:CH1编码前数据、CH2编码前时钟、CH3编码帧脉冲、CH4编码后时钟、CH5编码后数据。 通过后果可见,编码前时钟速率是编码后时钟速率的一半,输入的编码帧脉冲恰好能够分隔出一个残缺的复接数据,因而能够看到一帧数据和CVSD编码数据。 频带调制模块: 标签的对应顺次是:4调制、3载波、2时钟、1数据。 频带解调模块: 标签的对应顺次是:4、眼图观测;3、I路时钟;2、调制输入;1、调制输出。 信道译码模块: 标签的对应顺次是:CH1译码输出、CH2时钟、CH3帧脉冲、CH4纠错、CH5未纠错。 解复用与信源编码: 标签的对应顺次是:4:PCM译码、3:时钟、2:数据、1:帧头。 PCM译码没有输入波形,因为信源编码与复用模块为CVSD编码。 3.循环编译码信道编码模块: 标签的对应顺次是:CH1:编码前数据、CH2:编码前时钟、CH3编码帧脉冲、CH4编码后时钟、CH5编码后数据 通过后果可见,编码前时钟速率是编码后时钟速率的一半,输入的编码帧脉冲恰好能够分隔出一个残缺的复接数据,因而能够看到一帧数据和CVSD编码数据。 频带调制模块: 标签的对应顺次是:4调制、3载波、2时钟、1数据。 ③频带解调模块: 标签的对应顺次是:4:眼图观测、3:I路时钟、2:调制输入、1:调制输出。 信道译码模块: 标签的对应顺次是:CH1译码输出、CH2时钟、CH3帧脉冲、CH4纠错、CH5未纠错。 解复用与信源编码: 标签的对应顺次是:4:PCM译码、3:时钟、2:数据、1:帧头 PCM译码没有输入波形,因为信源编码与复用模块为CVSD编码。 4.交错编译码信道编码模块: 标签的对应顺次是:CH1编码前数据、CH2编码前时钟、CH3编码帧脉冲、CH4编码后时钟、CH5编码后数据 通过后果可见,编码前时钟速率是编码后时钟速率的一半,输入的编码帧脉冲恰好能够分隔出一个残缺的复接数据,因而能够看到一帧数据和CVSD编码数据。 频带调制模块: 标签的对应顺次是:4:调制、3:载波、2:时钟、1:数据。 频带解调模块: 标签的对应顺次是:4:眼图观测、3:I路时钟、2:调制输入、1:调制输出。 信道译码模块: 标签的对应顺次是:CH1译码输出、CH2时钟、CH3帧脉冲、CH4纠错、CH5未纠错。 ⑤解复用与信源编码: 标签的对应顺次是:4:PCM译码、3:时钟、2:数据、1:帧头 PCM译码没有输入波形,因为信源编码与复用模块为CVSD编码。 3.汉明加错:(7,4)汉明编码每一路加两个比特谬误。 ...

March 25, 2023 · 1 min · jiezi

关于仿真:QPSKDQPSK-调制解调系统仿真

一、目标1、把握多进制数字调制与解调的概念; 2、把握 QPSK 调制及解调的原理及实现办法; 3、理解 QPSK 调制的 A 形式及 B 形式,并观测对应的星座图; 4、理解 QPSK 的相位含糊状况,并思考解决办法; 5、理解 DQPSK 的差分编码和译码算法。 二、原理1 多进制数字调制与解调在二进制数字调制零碎中,每个码元只传输 1bit 信息,其频带利用率不高。为进步频带利用率,最无效的方法是使一个码元传输多个比特的信息。这就是多进制数字调制体制。 多进制数字调制与二进制数字调制相比,多进制数字调制具备以下两个特点。 (1)在雷同的码元传输速率下,多进制零碎的信息传输速率显然比二进制零碎的高。 (2)在雷同的信息速率下,因为多进制码元传输速率比二进制的低,因此多进制信号码元的持续时间要比二进制的长。显然,增大码元宽度,就会减少码元的能量,并能减小因为信道个性引起的码间烦扰的影响等。 2 QPSK 调制QPSK又叫四相相对相移调制,利用载波的四种不同相位来表征数字信息。因为每一种载波相位代表两个比特信息,故每个四进制码元又被称为双比特码元。把组成双比特码元的前一信息比特用I代表,后一信息比特用 Q 代表。双比特码元中两个信息比特 IQ 通常是按格雷码排列的。 3 QPSK 解调因为 QPSK 能够看作是两个正交 2PSK 信号的叠加,能够采纳与 2PSK 信号相似的解 调办法进行解调,即由两个 2PSK 信号相干解调器形成 4 DQPSK 调制 5 差分码编码原理对采纳正交形式实现的 QPSK 调制,采纳格雷差分编码能够演绎为如下两种状况: 若上次输入满足 $I_{o u t}^{n-1} \oplus Q_{o u t}^{n-1}=0$ , 则此次输入为: $$\left\{\begin{array}{c}I_{\text {out }}^{n}=I_{\text {in }}^{n} \oplus I_{\text {out }}^{n-1} \\Q_{\text {out }}^{n}=Q_{\text {in }}^{n} \oplus Q_{\text {out }}^{n-1}\end{array}\right.$$ ...

March 24, 2023 · 4 min · jiezi

关于仿真:什么是云仿真云仿真平台有哪些好处

云仿真是什么?云仿真平台反对一种新的仿真模式一“云仿真”模式,它是一种利用网络和云仿真平台按需组织各种仿真资源(仿真云),以提供用户各种建模与仿真服务的新的仿真模式。上述模式的实现波及到云的结构和应用,云由“云服务"提供商的云和用户注册的云形成。 云的利用步骤如下:在平安体系的反对下,各类用户首先通过网络环境中的云仿真平台门户进行仿真工作需要的定义;而后云仿真平台便能按用户需要主动查找和发现所需资源(仿真云),并基于“服务"组合的形式按需动静结构仿真利用零碎(仿真云群);进而该零碎将在云仿真平台对资源的动静治理下,进行网络化建模仿真零碎的协同运行,实现“云仿真”。 云仿真平台的劣势**1、卓越的虚拟化技术,轻易穿梭任何平台**虚拟化是云仿真平台最突出的特点之一,云仿真平台冲破了空间限度,蕴含虚拟化和资源虚拟化。有了虚拟化技术之后,通过虚构平台便可能轻而易举地实现相应终端操作的数据备份、迁徙和扩充,这在以往是无奈构想的。 2、可动静和可扩展性很强 目前国内的云计算服务已十分成熟,领有着超强运算能力的云计算服务,可能显著降职企业的计算速度,最终实现虚拟化层的动静扩充,达到利用扩充的指标,这也是云仿真平台显著特点之一。 3、更高的灵活性满足多元须要 目前,我国市场上大部分计算机资源、软硬件都拥护虚拟化,如数据存储信息网络、运行控制系统和开发软硬件等。虚拟化元素置于云系统中,实现资源利用,这表明云计算的兼容性很强。不仅可能兼容不同厂商的低配置机器和硬件设计产品,外设也可能实现更高级的高性能分析计算。灵活性特点让云仿真平台的可操作性更加强了。 4、极高的稳定性爱护数据安全 极高的可靠性意味着,如果服务器产生了重大的故障也不用释怀,计算和应用程序仍然在反常运行。这是因为单点服务器故障可能通过虚拟化技术还原分布在不同物理服务器上的应用程序,或者部署具备计算动静扩充能力的新服务器。正是极高的稳定性让云仿真平台成为人们信赖的工具。 5、根据须要部署,不节约多余资源 计算机蕴含许多应用程序、程序和软件等。不同的利用对应不同的数据资源池,用户在运行不同的利用时须要强大的计算能力来调配资源。云计算调度策略同样灵便,可对计算节点和工作设置各种属性、要求、解放等,进而可能根据用户须要迅速分配资源和算力,这样在利用云仿真平台时资源才不会节约。 6、性价比高 虚构资源库中资源的对抗治理在必定程度上优化了物质资源。用户不再须要低廉的主机和大的存储空间,他们会转向抉择更加经济实惠的 电脑,一方面呢,这升高了老本,另一方面咱们也当心到,这样造成的计算性能并不比大型主机要差,反而从长远来看性能更好。市面上大多云仿真平台均是性价比高的存在。 7、可扩展性 用户可能利用应用软件的快速部署条件,更加简略快捷地扩充自己须要的现有服务和新服务。比如在计算机云仿真系统中某个设施出现故障,在计算机层面或具体利用上不会阻碍用户,可能利用计算机云计算的动静扩充性能有效扩充其余服务器,这将保障工作的有序实现。 3DCAT助力云仿真 随着大数据与云平台的联合,仿真技术逐步进入以计算、存储为主导的世界,利用云计算自身的计算能力和存储能力,以及资源灵便利用,将会达到无所不在的弱小软件体系,这是云计算给仿真技术带来的平凡便当。 而瑞云科技作为云计算的先行者,其旗下的3DCAT元宇宙实时渲染云,是在5G网络、云计算、游戏引擎等技术迅速倒退的前提下,为解决终端算力有余、画面体现较差、初期洽购老本低等问题应运而生的一套 利用云端渲染3D利用并实时推送到终端的综合性解决方案。 在教育领域,虚构仿真曾经广为应用,3DCAT将基于游戏开发引擎(Unity、UE4等) 制作的超高清可交互三维可视化教学内容进行云端计算渲染,并通过网络及串流技术,实时推送到终端。满足宽广师生群体随时随地跨终端、可交互、超高清、沉迷式的拜访需要。 运行在3DCAT实时渲染云的教学内容,无需下载安装,可灵便嵌入教学平台,反对海量用户平安拜访,主动负载平衡和伸缩扩容。 在工业仿真畛域也是如此,能够说,有3DCAT的加持,云仿真变得轻而易举,只需在3DCAT上部署本人的利用,便能够轻易应用云仿真技术。 本文《什么是云仿真,云仿真平台有哪些益处》内容由3DCAT实时渲染解决方案提供商整顿公布,如需转载,请注明出处及链接:https://www.3dcat.live/share/... 

December 30, 2022 · 1 min · jiezi

关于仿真:云仿真平台有哪些特点

云仿真依照服务模式为用户提供OTS仿真软件,该服务模式采纳云计算、大数据算法和人工智能技术实现,遵循软件即服务(saas)的概念,无需装置就能够运行。 仿真软件对立部署在云(私有云或公有云)服务器上,用户能够通过网络取得平台提供的服务,例如仿真操作、实践学习、仿真评估、老师治理、实践考试等。用户能够在云仿真平台操作环境、化工、食品等环境中操作虚构仿真软件。 那么云仿真平台有哪些特点呢?就让我娓娓道来1、卓越的虚拟化技术,随便穿梭任何平台 虚拟化是云仿真平台最突出的特点之一,它冲破了空间和工夫的限度,包含虚拟化和资源虚拟化。领有了虚拟化技术之后,咱们通过虚构平台便能够轻而易举地实现相应终端操作的数据备份、迁徙和扩大,这在以往是无奈设想的 2、可动静和可扩展性很强 目前国内的云计算服务已非常成熟,领有着超强运算能力的云计算服务,能够显著晋升企业的计算速度,最终实现虚拟化层的动静扩大,达到利用扩大的目标,这也是云仿真平台显著特点之一。 3、更高的灵活性满足多元需要 目前,我国市场上大部分计算机资源、软硬件都反对虚拟化,如数据存储信息网络、运行控制系统和开发软硬件等。 虚拟化元素置于云零碎中,实现资源利用,这表明云计算的兼容性很强。 不仅能够兼容不同厂商的低配置机器和硬件设计产品,外设也能够实现更高级的高性能剖析计算。灵活性特点让云仿真平台的可操作性更增强了. 4、极高的稳定性爱护数据安全 极高的可靠性意味着,如果你的服务器产生了重大的故障也不必放心,计算和应用程序依然在失常运行。这是因为单点服务器故障能够通过虚拟化技术复原散布在不同物理服务器上的应用程序,或者部署具备计算动静扩大能力的新服务器。正是极高的稳定性让云仿真平台成为人们信赖的工具。 5、依据需要部署,不节约多余资源 计算机蕴含许多应用程序、程序和软件等。不同的利用对应不同的数据资源池,用户在运行不同的利用时须要弱小的计算能力来调配资源。云计算调度策略异样灵便,可对计算节点和工作设置各种属性、要求、束缚等,进而能够依据用户需要迅速分配资源和算力,这样在应用云仿真平台时资源才不会节约。 6、性价比高 虚构资源库中资源的对立治理在肯定水平上优化了物质资源。用户不再须要低廉的主机和大的存储空间,他们会转向抉择更加经济实惠的 电脑,一方面呢,这升高了老本,另一方面咱们也留神到,这样形成的计算性能并不比大型主机要差,反而从久远来看性能更好。市面上大多云仿真平台均是性价比高的存在。 7、可扩展性 用户能够利用应用软件的疾速部署条件,更加简略快捷地扩大本人须要的现有服务和新服务。比方在计算机云仿真零碎中某个设施呈现故障,在计算机层面或具体利用上不会障碍用户,能够利用计算机云计算的动静扩大性能无效扩大其余服务器,这将保障工作的有序实现。 3DCAT实时渲染云仿真平台以上的七个特点是云仿真平台的显著特点,而由瑞云科技推出的3DCAT实时渲染云仿真平台均具备以上的7个特点 3DCAT实时渲染云仿真平台在云端领有十分弱小的图形渲染算力,进而渲染弱小的XR利用并实时推送到用户的终端,为宽广用户提供丰盛的私有云+公有云解决方案。 3DCAT实时渲染云平台领有行业内比比皆是的秒级交付能力,依靠瑞云科技长期耕耘视觉云计算行业超过十余年的经营教训,随时依据业务负载,弹性增减云端资源,从容应对用户需要的顶峰。 数万台分布式服务器从工作公布到队列解决均由「自研集群调度零碎-MUNU」实现,反对多平台混合应用,历经本身多年生产测验,贴合云端利用复杂多变的需要,实现灵便构建,轻松运维。 同时3DCAT的安全性也失去了保障。 当初注册,立即享受125分钟实时云渲染体验:https://app.3dcat.live/register

April 26, 2022 · 1 min · jiezi

关于仿真:simulink仿真PID控制水桶液位

记录应用simulink仿真过程中碰到的问题 模仿恒定温度压力的现实液体模型模仿液体网络时候要设置是什么液体 通过上面这个设置 液体模型 默认是水水管模型, 1标注的是水管壳为现实的绝热材料,2能够配置水管的长度横截面积水箱模型,能够通过下图设置几个进出水口,L示意以后的液位信号模式转换,别离将simulink的数字信号转换成物理仿真模型的信号抽水机模型,输出信号和基准C产生一个角速度信号R,R和基准C产生一个A到B的压力差信号总体在水桶A口接一个水管把水流向一个1个大气压的现实水池,B口抽水机进水口,应用自带的PID模块就能看到管制图像了 简略的hil 模型 想到一个方法不晓得是不是规范做法 将写好的控制系统通过udp通信来传递,udp发送时候能够通过仿真步长设置单个子模块的仿真步长来管制发送速度

August 6, 2021 · 1 min · jiezi

关于仿真:ngspice源码阅读笔记仿真的步骤

接上篇,运行control命令时候运行到run时候开始仿真 仿真运行模型的创立仿真采纳的节点分析法,会创立一个电路的导纳矩阵,例如在INPpas2中辨认进去是电阻会调用INP2R,通过IFC newInstance 调用CKTcrtElt 创立并将电阻挂在到ckt->DEVnameHash上,再通过IFC bindNode在电阻中记录两端的网络号,在后续setup时候会将该电阻在导纳矩阵中的指针保留到实例电阻中,每次迭代将以后具体值更新下来。运行run命令初始化仿真环境调用到run时候会调用到dosim函数,最终通过ft_sim一个用户调用和仿真之间的中间层的doAnalyses接口调用到CKTdoJob,这这里初始化仿真的环境,并通过CKTsetup CKTtemp 依据温度 设施的参数实例化设施一次瞬态剖析仿真过程通过an_func接口调用到DCtran函数,在仿真开始前通过OUTpBeginPlot创立一个绘图,而后通过CKTop初始化电路的初始状态,如果没有设置初始状态会通过NIiter迭代来确定每个网络的初始状态,而后再通过NIiter迭代进行每一步仿真,每一步的仿真后果会通过CKTdump放到申请好的绘图中,仿真完结通过接口OUTendPlot调用OUTendPlot将此次记录的数据放到全局的ft_curckt中,后续调用write命令保留到文件中。

July 12, 2021 · 1 min · jiezi

关于仿真:ngspice源码阅读笔记cir文件解析

设施的加载像RESinfo CAPinfo默认的设施通过static_devices放到DEVices数组里像cm_d_inverter_info相似的须要关上xspice设施通过动静加载dlsym(lib, "CMdevs")来加载到零碎里设施辨认在INPpas2函数中会解析输出的电路文件依据第一个字母例如"R"调用RESparam,通过解析电阻的参数计算电阻的电导,最终在inp_dodeck中实现解析并将后果放到ft_curckt中开始仿真在剖析电路仿真文件时候会跳过control的局部,会应用cp_evloop来逐行运行control局部,依据spcp_coms中定义的命令调用对应的函数,例如run会最终调用到if_run来仿真2中解析好的ft_curckt->ci_ckt电路

July 6, 2021 · 1 min · jiezi

关于仿真:工作流框架中的仿真引擎实现用户流程场景的仿真

Activiti-Crystalball简介Activiti-Crystalball(CrystalBall)是Activiti业务流程治理平台的仿真引擎 .CrystalBall能够应用用用户模仿流程场景: 决策反对: 对于生产流程, 比方是否应该向零碎增加更多材料以达到截止日期优化和验证: 测试批改并验证影响培训: 模拟器能够用来在应用前培训员工CrystalBall是独立的: 不须要创立独自的模仿模型和引擎不须要为模仿创立不同的报告不须要为模仿引擎筹备很多数据CrystalBall模拟器是基于Activiti的: 容易复制数据启动模拟器从历史中重播流程行为 CrystalBall外部CrystalBall是一个离散事件模拟器CrystalBall的一个实现是org.activiti.crystalball.simulator.SimpleSimulationRun: init(); SimulationEvent event = removeSimulationEvent(); while (!simulationEnd(event)) { executeEvent(event); event = removeSimulationEvent(); } close();SimulationRun能够执行由不同源生成的模仿事件 历史剖析模拟器能够应用的用例之一是剖析历史生产环境没有提供任何反复和调试bug的机会,这就是为什么根本不可能把流程引擎复原到生产环境呈现问题时齐全一样的状态.有以下起因: 工夫: 流程实例可能执行好几个月并发: 流程实例会和别的实例一起运行,问题可能只产生于并发执行的状况用户: 很多用户能够参加到流程实例中,流程实例会影响到呈现问题的状态模拟器能够更好的裸露以上的问题: 模仿过程是虚构的,不会依赖实在环境Activiti流程引擎自身是虚构的,不须要创立虚构流程引擎,作为模仿环境应用并发场景也是原生的用户行为都会记录日志,并能够从日志重现,依据须要进行预测和生成剖析历史的最好方法是重现一次,实在环境很难实现重现,然而模拟器就能够实现重现 历史的事件重现历史最重要的事件是记录影响状态的事件流程是由用户事件驱动的,能够应用两种事件源: 流程实例: 只反对原始的Activiti-Crystalball我的项目ActivitiEvent日志: 能够向引擎增加想要记录日志的ActivitiEventListener. 事件日志能够保留下来,用于后续的剖析ActivitiEventListener的一个根本实现: org.activiti.crystalball.simulator.delegate.event.impl.InMemoryRecordActivitiEventListener @Overridepublic void onEvent(ActivitiEvent event) { Collection<SimulationEvent> simulationEvents = transform(event); store(simulationEvents);}事件会被保留,能够对历史进行重现 回放回放的益处是能够一遍一遍播放,直到齐全了解产生了什么Crystalball模拟器是基于实在数据,实在用户行为示例: 了解回放工作的最好办法是一步一步解释 基于JUnit的测试例子 :org.activiti.crystalball.simulator.delegate.event.PlaybackRunTest <process id="theSimplestProcess" name="Without task Process"><documentation>This is a process for testing purposes</documentation><startEvent id="theStart"/><sequenceFlow id="flow1" sourceRef="theStart" targetRef="theEnd"/><endEvent id="theEnd"/></process>流程公布,能够用于实在和模仿的运行: 记录事件 // get process engine with record listener to log eventsProcessEngine processEngine = (new RecordableProcessEngineFactory(THE_SIMPLEST_PROCESS, listener)).getObject();// start process instance with variablesMap<String,Object> variables = new HashMap<String, Object>();variables.put(TEST_VARIABLE, TEST_VALUE);processEngine.getRuntimeService().startProcessInstanceByKey(SIMPLEST_PROCESS, BUSINESS_KEY,variables);// check process engine status - there should be one process instance in the historycheckStatus(processEngine);// close and destroy process engineEventRecorderTestUtils.closeProcessEngine(processEngine, listener);ProcessEngines.destroy();在startProcessInstanceByKey办法调用后,记录ActivitiEventType.ENTITY_CREATED ...

June 14, 2021 · 2 min · jiezi