OSWorkflow是opensymphony组织开发的一个工作流引擎,目前的版本是2.8。
OSWorkflow用纯Java语言编写,并且开放源代码。
它最大的特点就是极其的灵活。
它面向的人群是具有技术背景的软件开发人员。
OSWorkflow不提倡用可视化工具定义流程。
用户可以根据自己的实际需求,来设计出完全符合自身业务逻辑的系统,而并不需要使用复杂的代码去实现。
换句话说OSWorkflow让我们真正解放了,使得我们从底层的代码堆中爬了出来,轻松地用一套通用的引擎机制去实现各种业务流程。
OSWorkflow提供我们所有工作流OSWorkflow开发指南Version1.0October15,2007Somanyopensourceprojects.WhynotOpenyourDocuments?中可能用到的元素例如:步骤(step)、条件(conditions)、循环(loops)、分支(spilts)、合并(joins)、角色(roles)、函数(function)等等。
首先我们来谈谈步骤:步骤是工作流中很重要的概念。
如果我们把工作流比喻成一条从起点站驶向终点站的公共汽车路线,那么步骤就相当于汽车站台。
而汽车有的正在排队等候进站,有的还没有进站,有的刚出站,这样就形成了所谓的“已完成”、“正在处理”、“已添加至处理队列”、“未处理”等状态。
另外一个重要的概念就是动作,动作就是工作流中每一步骤中"需要处理的事情",每一个动作执行完毕以后都有一个结果。
公共汽车停站下客就好比一个动作,动作完成以后,开向下一站,或者加油,或者返程等等就是一个结果。
当然,实际上的工作流远比这辆汽车来的复杂,它涉及到的结果还包括原地踏步停留在同一步骤,或者是流转到另外的步骤中去,或者是流转到一个分支中去,或者汇集到一个合并中等。
如果动作被设置成为auto,那么只要触发器满足条件或者有来自外部的事件工作流便可自动执行。
在许多流程中,如果遇到并行处理某些事情,这就是分支。
分支一般是指并行处理多件事情而没有先后顺序。
若有一条分支进行了回退处理,整个流程都将回退。
与之相对的,合并就是把几条符合条件的分支聚合起来,使得事情变成"殊途同归"。
这也是非常常见的流程,同时也是最复杂的一种流程。
在步骤、动作和结果中都提供了函数功能,函数按执行的先后时机可分为pre-functions和post-functions。
顾名思义,pre-functions就是在事情发生之前执行的,而post-functions就是在事情发生以后执行的。
验证器是用来验证用户输入的数据是否合法的。
它也可以被应用在步骤,动作或结果中。
动作的执行结果可以是有条件的(conditional)也可以是无条件的(unconditional)。
对于有条件结果,可以允许有多个条件。
引擎将首先检查是否有满足的条件,它会逐一进行检查,直到符合的条件被找到才能执行。
如果没有一个条件被满足,那么最终引擎将产生无条件结果。
在每个步骤中调用工作流的人被称之为调用者(caller),而每个步骤都也会有一个所有者(owner),以代表在当前步骤中负责执行动作的角色或用户。
当前用户在执行当前步骤的时候,这些步骤被保留在当前表中(current),而一旦步骤被执行完毕,引擎会马上将这个当前步骤从当前表中移到历史表中(history)。
5OSWorkfow的高级特性有发送邮件,注册器功能,通用动作和全局动作,触发器和定时器等等,以下会一一讲解。
2023/8/8 23:12:50 624KB OSWorkflow-开发指南
1
1.在linux中实现一个命令执行程序doit,它执行命令行参数中的命令,之后统计1)命令执行占用的CPU时间(包括用户态和系统态时间,以毫秒为单位),2)命令执行的时间,3)进程被抢占的次数,4)进程主动放弃CPU的次数,5)进程执行过程中发生缺页的次数
2023/8/8 16:47:13 3KB 华南理工大学 操作系统
1
基于FPGA的信号发生器电路
2023/8/6 19:09:13 5.02MB fpga
1
拜占庭容错状态机复制(BFT)协议是一种复制协议,它容忍少量副本的任意故障。
但现有的BFT协议在故障发生时不能提供可接受的性能。
这是由于所有现有的针对高吞吐量的BFT协议都使用了一个称为主副本primary的特殊副本,它向其他副本指示应该处理请求的顺序。
这个主程序可以是恶意的,在不被正确的副本检测的情况下降低系统的性能。
2023/8/6 5:33:47 447KB RBFT 多实例化 BFT 共识
1
这项与事件相关的潜能(ERP)研究检查了语音识别中上下文相关说话者标准化的时间过程。
我们发现三个ERP组件,即N1(100-220毫秒),N400(250-500毫秒)和后期正向组件(500-800毫秒),它们被推测涉及(a)听觉处理,(b)说话者标准化和词汇检索,以及(c)决策过程/词汇选择。
说话人标准化可能发生在N400的时间窗口中,并且与词汇检索过程重叠。
与非语音上下文相比,无论语音上下文是否具有语义内容,它们都使收听者能够调整到讲话者的音调范围。
以这种方式,语音上下文在潜在的候选词的激活过程中诱导了更有效的说话者归一化,并导致在语音单词识别中更准确地选择了预期的单词。
2023/8/5 2:54:19 1024KB Talker normalization; Tone perception;
1
海明校验码是在数据中加入几个校验位,并把数据的每一个二进制位分配在几个奇偶校验组中。
当某一位出错后,就会引起有关的几个校验组的值发生变化,这不但可以发现出错,还能指出是哪一位出错,为自动纠错提供了证据。
海明码能检测出2位错误,并能纠正1位错误。
2023/8/4 5:41:04 563KB 海明码 校验 编码 数据位
1
exe4j是一个帮助你集成Java应用程序到Windows操作环境的java可执行文件生成工具,无论这些应用是用于服务器,还是图形用户界面(GUI)或命令行的应用程序。
如果你想在任务管理器中及WindowsXP分组的用户友好任务栏里以你的进程名取代java.exe的出现,那么exe4j可以完成这个工作。
exe4j帮助你以一种安全的方式启动你的java应用程序,来显示本地启动画面,检测及发布合适的JRE和JDK,以及进行启动时所发生的错误处理等,以至于更多。
infosetup+exe4j可以将Java环境jre打包到exe中,生成可执行文件内置教程,不懂可以在博客留言问我
2023/8/3 4:41:42 8.81MB java打包
1
用quartus13.1写的代码,DDS信号发生器模块,里面有详细注释,原理解释。
2023/8/2 1:39:44 10.88MB verilog FPGA Quartus
1
基于51单片机蜂鸣器,设计的报警声音,来学习51单片机
2023/7/31 23:08:06 18KB 51蜂鸣器
1
在计算机网络迅猛发展的今天,电子商务已经成为了新经济的代名词。
电子商务的出现,让消费者的消费观念发生了重大的变化。
能在internet上实现商品的展示、商品的检索、商品的订购、订单的全程物流跟踪与管理、商品的支付的系统称为网上购物系统。
网上购物系统是电子商务的一种重要形式。
2023/7/30 17:42:54 2.01MB 销售系统设计
1
共 952 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡