前言 首先,感谢大家对上一篇文章[业务可视化-让你的流程图"Run"起来]的支持. 分享一下近期我对这个项目的一些改进. 问题&改进 问题1: 流程运行开始后,异步执行,无法同步等待流程运行结束. 改进方法:修正后流程(黄色部分为修改点): 调用代码: // 异步调用(默认) flow.start(); // 或者 flow.start(false); // 同步调用 flow.start(true); 问题2: 工程需要自己下载编译,无法自动引用. 改进方法: 将代码发布到m…
前言 首先,感谢大家对上一篇文章[业务可视化-让你的流程图"Run"起来(2.问题与改进)]的支持. 分享一下近期我对这个项目的一些改进. 1. 增加了分支选择工程,可以根据节点的运行结果决定执行哪一个节点. 2. 增加了分布式运行节点功能,可以将流程节点部署到任意服务器,通过队列来调度节点,也就是说节点的运行将不在局限于Java语言. 1. 如何让流程图"Run"起来 首先我们回顾一下前两篇文章的知识,如何让流程图"Run"起来: 工程目录[…
前言 首先,感谢大家对上一篇文章[业务可视化-让你的流程图"Run"起来(3.分支选择&跨语言分布式运行节点)]的支持. 下面我以实际业务场景为例,来介绍一下ladybugflow的使用方法. 酒店预定场景(传统写法) 对于下面的酒店预定流程 流程1: 流程2 [流程1]的传统写法1: 定义流程间共享变量; 开始处理(); 查询客户信息处理(); 查询酒店信息处理(); 下单处理(); 下单成功处理(); 假设每个流程用3秒钟,整个流程执行完需要3*5=15秒. 于是衍生出了写…
前言 首先,感谢大家对上一篇文章[业务可视化-让你的流程图"Run"起来(5.SpringBoot集成&微服务编排)]的支持. 分享一下近期我对这个项目的一些改进. 在项目中,经常会有一些批处理的定时任务需要配置,目前的java项目一般采用Spring-Batch来作为批处理的平台. 但是Spring-Batch在对Job流程(并行,分支,条件分支,合并等)的支持略显复杂臃肿. 尤其是流程可视化这方面几乎不支持. 所以,最近对ladybugflow做了改进,在天然支持可视化流程…
前言 最近在研究业务可视化的问题,在日常的工作中,流程图和代码往往是分开管理的. 一个被维护多次的系统,到最后流程图和代码是否匹配这个都很难说. 于是一直有一个想法,让程序直接读流程图,根据流程图的配置来决定程序运行的顺序. 一转眼三年过去了,目前这个想法已经逐步落地实现变成代码. 问题 对于简单的流程 a -> b -> c 可以很容易用代码来实现 // 执行a a(); // 执行b b(); // 执行c c(); 对于并行的流程 a -> b a -> c 这个就要多线程框…
前言 感谢大家阅读本项目系列文章和对项目的支持.分享一下我对这个项目的新的改进. 之前项目做到了流程设计可视化和流程运行结果可视化. 本期发布的版本中实现了中间的运行过程的实时可视化,和流程状态持久化问题. 大家可以根据项目提供的接口自由扩展自己的工作流实现.和大家分享一下: 流程状态实时可视化 首先看效果: 1. 不需要交互的自动化流程 点击预定按钮,自动完成预定的流程. 2. 需要交互的向导式流程 每点击一个按钮,流程向前走一步. 实现方式 工程基于SpringBoot实现,代码发布到下面的…
GoJS是Northwoods Software的产品.Northwoods Software创立于1995年,专注于交互图控件和类库.旗下四款产品: GoJS:用于在HTML上创建交互图的纯javaSCript库 GoDiagram:用于WinForms的.NET图控件. GoXam:用于WPF/Silverlight的图控件.( Silverlight是一个跨浏览器的.跨平台的插件, 与flash竞争的富客户端技术) JGo:用于Swing/SWT中创建交互图的java库. GoJS可以做什…
先说java中实现多线程常用的两种方式:   1:继承Thread类,并重写run()方法   2:实现Runnable接口,实现run方法实际上Thread类也是实现了Runnable接口 [Java] 纯文本查看 复制代码 ? 1 2 3 public class Thread implements Runnable {   ........ } 而Runnable接口只定义了一个run方法 [AppleScript] 纯文本查看 复制代码 ? 01 02 03 04 05 06 07 08…
前言 前面的系列文章里,介绍了ladybugflow的业务可视化的设计以及常见场景的使用方法. 感谢大家对项目的关注. 本篇文章介绍一下基于ladybugflow的微服务编排场景及使用方法. 1. 业务场景 和上一篇文章使用同样的酒店预定业务场景,本篇文章我们将它继承到SpringBoot中. 如下图所示: 不同的是,这里我们将[查询用户信息]和[查询酒店信息]业务作为远程微服务调用,项目架构如下图所示: 查询酒店信息节点调用远程微服务App2的查询酒店信息接口 查询用户信息节点调用远程微服务A…
BPM的产生缘由 近年来,随着计算机技术的发展和互联网时代的到来,我们已经进入了信息时代,也称为数字化时代,在这数字化的时代里,企业的经营管理都受到了极大的挑战.从上世纪90年代起至今,企业的信息化工作开展的如火如荼,相继建立了很多业务系统,同时也给企业带来了巨大的效益.但是,新的问题出现了,业务已经对这些复杂的系统提出更新的需求,即需要实现系统之间整合.EAI(Enterprise Application Integration)技术风靡一时,成为了各界人士追捧的对象.热闹过后,许多人已经清晰…
AEAI ESB 应用集成平台为数通畅联的核心产品,本着分享传递的理念,数通畅联将ESB管理控制台项目开源,目的在于满足客户与伙伴的OEM需求,以及为广大IT爱好者的集成工具提供多一种选择,多一种便利.希望通过开源中国,分享该产品,在交流学习中,使更多的人受益.本次发版的产品AEAI ESB V3.5.4为AEAI ESB V3.5.3版本的升级版,产品下载地址:http://pan.baidu.com/s/1o6NvxXo.欢迎大家下载产品使用. 应用集成平台主要作为企业信息系统的“龙骨”来集…
上世纪九十年代以后,随着WfMC联盟的成立,BPM市场群雄逐鹿如火如荼,工作流技术得到了突飞猛进的发展,其中IBM.Oracle等大型软件厂商在工作流领域各扯大旗割据一方.2011年BPMN2.0新规范的发布为各工作流产品互容互通提供了统一的标准,结束了各工作流厂商各自为政相互抵斥的局面. 什么是BPMN.Workflow? BPM(Business Process Management)——“通过建模.自动化.管理和优化流程,打破跨部门跨系统业务过程依赖,提高业务效率和效果”. Workflo…
目录 目录 前文列表 扩展阅读 简介 基本概念 实现样例 最后 前文列表 Openstack 实现技术分解 (1) 开发环境 - Devstack 部署案例详解 Openstack 实现技术分解 (2) 虚拟机初始化工具 - Cloud-Init & metadata & userdata Openstack 实现技术分解 (3) 开发工具 - VIM & dotfiles 扩展阅读 TaskFlow 代码库 TaskFlow 文档 简介 TaskFlow is a Python…
[源码解析] PyTorch 分布式之弹性训练(7)---节点变化 目录 [源码解析] PyTorch 分布式之弹性训练(7)---节点变化 0x00 摘要 0x01 变化方式 1.1 Scale-down 1.2 Scale-up 0x02 节点加入 2.1 新节点加入 2.2 处理 Join 操作 2.2.1 run处理 2.2.2 Join操作 2.2.3 等待业务操作 2.3 Agent 处理 2.3.1 检查等待列表 2.3.3 重启worker组 2.3.3.1 _stop_work…
1.概述 Kafka系统的灵活多变,让它拥有丰富的拓展性,可以与第三方套件很方便的对接.例如,实时计算引擎Spark.接下来通过一个完整案例,运用Kafka和Spark来合理完成. 2.内容 2.1 初始Spark 在大数据应用场景中,面对实时计算.处理流数据.降低计算耗时等问题时,Apache Spark提供的计算引擎能很好的满足这些需求.Spark是一种基于内存的分布式计算引擎,其核心为弹性分布式数据集(Resilient Distributed Datasets简称,RDD),它支持多种数…
1.  启动分析 源码是 7.1.0.M6 首先从 ProcessEngineAutoConfiguration 开始 ProcessEngineAutoConfiguration 是activiti-spring-boot-starter 7.1.0.M6自动配置的入口类,在这里主要看 SpringProcessEngineConfiguration 主要是配置了自动部署 最最最重要的是 buildProcessEngine() 方法,将来根据配置构建 ProcessEngine 的时候它就派…
Data base: 长期存储在计算机内,有组织的,可共享的大量数据集合.基本特征:永久存储,可共享,有一定的物理和逻辑结构. Data base manage system(DBMS):用户和os之间的一层数据管理软件. 1.提供数据操纵语言DML对数据库增删改查 2.数据库的建立和维护 3.提供数据控制功能:在数据库建立,运行和维护时,DBMS管理数据的安全性,完整性,并发控制和故障的系统恢复,(也就是数据库的事务管理和运行管理) 4.与其它软件系统通信 Data base system(D…
上一篇:Activiti 学习笔记记录 导读:对于工作流引擎的使用,我们都知道,需要一个业务事件,比如请假,它会去走一个流程(提交申请->领导审批---(批,不批)---->结束),Activiti就是来走这个流程的.所以我们还需要将Activiti 和 业务结合起来,即部署定义(画一个流程图,生成 bpmn 格式的文件).本章,就来讲 bpmn 的图怎么画? 一.什么是 bpmn 业务流程建模标记法 BPMN (Business Process Model and Notation),是工作…
基于K2的集成供应链流程解决方案http://www.k2software.cn/zh-hans/scm-solution 一.详细功能模块 需求管理模块多渠道管理.需求计划.需求感知与传递市场营销及促销规划.新产品导入.订单满足.店面补货 物流模块交通运输规划,负载汇总和优化运输能力规划和管理:运输执行和管理零担,多点收集,多点送货跟踪和追踪,逆向物流,进出口物流 集成的业务计划财务规划,S&OP(销售和运营计划)基线和根本原因分析供应链风险管理与业务连续性 采购生产管理模块主生产计划,材料清…
多线程比较简单的方式是继承Thread类,然后覆写run()方法,在客户端程序中通过调用对象的start方法即可启动一个线程,这个是多线程程序的标准写法. 错误代码: public class Client { public static void main(String[] args) throws InterruptedException { // 多线程对象 MultiThread multiThread = new MultiThread(); // 启动多线程 multiThread.…
原文:我的VSTO之路(五):Outlook初步开发之联系人扩展 上一讲我们完成对Word的介绍,文本开始,我将着重介绍Outlook.Outlook是微软Office中一个非常实用的工具,尤其在一个拥有Windows Domain的公司局域网中,Outlook是员工最常用的通讯工具,所以对Outlook实行进一步的定制开发的需求量是很大的.本文中,我先以联系人的扩展为开始,讲解如何开发一个强大的Outlook插件. 故事的开始 首先我们假设一个场景.有一天,市场部的同事来找你帮个小忙(有经验的…
功能完整是基本,简单易用才是王道,这就是TASKCTL对敏捷的朴素定义.功能少,怎么复杂也会简单:而功能体系完整,怎么简单也会复杂.因此,简单与复杂是相对的,而TASKCTL正是追求那种在功能完整不可避免复杂中的简单. 实际上,对很多软件.APP是否简单易用,是很难评定的.一方面,因人而已:另一方面,用了才知道.不过,TASKCTL给大家阐述的不是一种感知层面的简单,而是建立在一种技术理念突破创新基础上的简单. 要评估调度应用是否简单,首先就是要知道整个应用包含哪几大应用场景.作为批量调度应用,…
一.Netty框架介绍 什么是netty?先看下百度百科的解释:         Netty是由JBOSS提供的一个java开源框架.Netty提供异步的.事件驱动的网络应用程序框架和工具,用以快速开发高性能.高可靠性的网络服务器和客户端程序. 也就是说,Netty 是一个基于NIO的客户.服务器端编程框架,使用Netty 可以确保你快速和简单的开发出一个网络应用,例如实现了某种协议的客户,服务端应用.Netty相当简化和流线化了网络应用的编程开发过程,例如,TCP和UDP的socket服务开发…
在我的工作中,我从零开始搭建了不少软件项目,其中包含了基础代码框架和持续集成基础设施等,这些内容在敏捷开发中通常被称为"第0个迭代"要做的事情.但是,当项目运行了一段时间之后再来反观,我总会发现一些不足的地方,要么测试分类没有分好,要么基本的编码架子没有考虑周全. 另外,我在工作中也会接触到很多既有项目,公司内部和外部的都有,多数项目的编码实践我都是不满意的.比如,我曾经新加入一个项目的时候,前前后后请教了3位同事才把该项目在本地运行起来:又比如在另一项目中,我发现前端请求对应的Jav…
1.1 认识线程 线程是轻量级进程,也是程序执行的一个路径,每一个线程都有自己的局部变量表.程序计数器(指向正在执行的指令指针)以及各自的生命周期,现代操作系统中一般不止一个线程在运行.比如说,当我们启动了一个JVM的时候,操作系统创建一个新的进程(JVM进程),JVM进程中将会创建很多线程.总而言之,线程是一个时间段的描述,是CPU工作时间段的描述.你可以想象成一个生命体,从生到死. 1.2 线程的生命周期 上文说过我们可以抽象的理解一个线程是一个CPU工作时间段的生命体,那么他的生命周期是如…
我们的业务代码一般是放在一个新的包下面,这个业务类不能够通过右键run as java application,因为android项目只能运行在手机上的dalvak虚拟机里面 新建一个包,里面写测试类,测试类需要继承AndroidTestCase类,写测试方法,需要throws exception抛出异常给测试框架,测试方法里面一般new出需测试的类,调用它的方法,然后断言结果,assertEquals(预估, 实际结果) 在outline视窗 (window=>show view=>outl…
Java Java是一门超高人气编程语言,拥有跨平台.面向对象.泛型编程等特性.在TIOBE编程语言排行榜中,连续夺得第一宝座,而且国内各大知名互联网公司,后端开发首选语言:非Java莫属.今天只是梳理下Java知识体系,后续会针对各类目有更详细的经验分享. 知识体系 JDK Java8 Lambda 语句 方法引用 日期/时间处理API 等等,不一一列举,详细的参考这些文档 URL: http://www.oracle.com/technetwork/cn/java/javase/docume…
首先向大家和<TensorFlow实战>的作者说句不好意思.我现在看的书是<TensorFlow实战>.但从TF024开始,我在学习笔记的参考资料里一直写的是<TensorFlow实践>,我自己粗心搞错了,希望不至于对大家造成太多误导. TensorBoard,TensorFlow官方可视化工具.展示模型训练过程各种汇总数据.标量(Scalars).图片(Images).音频(audio).计算图(Graphs).数据分布(Distributions).直方图(Hist…
DINK安装视频教程:  http://fp-ai.com/video_details.html?id=072b030ba126b2f4b2374f342be9ed44 DINK一键启动视频教程:  http://fp-ai.com/video_details.html?id=7f39f8317fbdb1988ef4c628eba02591&type=0 Github:https://github.com/FPAI/DINK 建议采用 * Ubuntu16.04 LTS * 8GB以上内存 *…
package com.my.timer; import java.util.Date; import java.util.TimerTask; public class myTask extends TimerTask { /** * 定时任务调用的方法,即处理业务的方法 */ @Override public void run() { System.out.println("定时任务执行了:" + new Date().toLocaleString()); } } package…