niyue

面向图形编程

In programming on 6月 21, 2005 at 4:11 上午
以下是对jbpm面向图形编程(Graph Oriented Programming)概念一文的摘要笔记。
第四章 面向图形的编程
背景简介
4.1 缺失的一环
比较workflow,bpm和orchestration之间的异同。并指出三者之间的共同点就是执行过程中存在着等待的状态。
java中也存在着执行过程的挂起(suspend),但是这三者需要的挂起能够被持续化。
java没有内建的机制支持挂起的持续化主要是由于冯诺依曼体系结构。
这三者对于这一问题有各自不同的解决办法。
4.2 图形表示与开发过程
在我们提出解决方案之前,我们需要提到一个概念:过程的图形化表示。
于是我们希望能够找到一个解决方案,在这个方案中,执行的挂起与商业过程的图形表示相关。大多数解决方案都是采用的有向图。
解决方案应该符合迭代式的开发过程。分析人员使用UML类图画出分析模型。开发者使用这一分析模型作为起始并将它转变成为设计模型。而后继续添加更多的技术细节的话就会形成一个实现。
4.3 传统方法
传统方法是使用一个由很多构造元素组成的过程定义语言。每个构造元素都有其图形表示和运行行为。传统方法的缺点:
独立的系统:传统的解决方案都是将workflow,bpm或者orchestration打包为一个独立的系统。这就导致了在自己的应用中很难使用并且难于管理。
不完备的过程定义语言:仅仅是对于流控来说,目前的所有的标准和解决方案都还存在着缺陷。
没有建模自由:将图形表示和运行行为进行绑定,使得开发者失去了建模的自由。
图形化编程:将图形表示和运行行为进行绑定,最终都会成为visual programming的某种形式。这是非常耗时的一种软件开发方法。
4.4 什么是面向图形的编程
面向图形编程是解决执行过程的挂起和持续化的一种技术。它的核心思想在于使用一个图形化表示的运行模型来对一般的强制式的编程做一个补充。图形也被看作成为软件的一部分,在软件运行时,图形的执行过程与强制式编程的软件的运行过程进行了耦合。
这种可执行的过程图是由结点和变迁组成的。变迁有方向,并在图中连接两个结点。这种图基本可以看作是一个状态自动机,但是对于并发的执行路径它有着更好的支持。
这里使用token来表示执行路径的执行,后面介绍了一下在这个模型中token是如何表示图的执行的。其实我理解这里就是一种Petri网的应用,讲的满多的,具体可以看看Petri网方面的一些资料就和容易理解了。
模型对于传统方法的解决:
简单的API+职责链模式:用以替换传统方法的独立系统
从结点继承(Inheriting from node??):给过程定义语言极大的灵活性
添加“不可见的”action:给商业过程分析人员提供建模的自由
过程开发循环:替代图形化编程
4.5 面向图形编程的基础模型
Graph Oriented Programming as a building block

发表评论

Fill in your details below or click an icon to log in:

WordPress.com 徽标

您正在使用您的 WordPress.com 账号评论。 注销 /  更改 )

Twitter picture

您正在使用您的 Twitter 账号评论。 注销 /  更改 )

Facebook photo

您正在使用您的 Facebook 账号评论。 注销 /  更改 )

Connecting to %s

%d 博主赞过: