- 浏览: 12371 次
- 性别:
- 来自: 南京
最新评论
文章列表
设计模式在架构设计中的运用
- 博客分类:
- 设计模式
1 引言架构是一个软件的骨架。为了应对需求变更,架构设计需要有足够的弹性去适应变化;架构的任何修改都将导致大量代码的重写,从而导致成本上升、工期延长。而设计模式本来主要是针对编码阶段的,但在进行架构设计时,软件架构师可以将组件之间的关键接口通过“灰包图”的形式———指定接口类所使用的设计模式———给程序员更多的指导;并且让架构更具弹性,更能适应各种变化。
2 架构设计与设计模式的关系“设计模式”是Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides在《设计模式:可复用面向对象软件的基础》中提出来的。在此书中一共介绍了23种面向对象的设计模 ...
以SOA服务为导向的信息系统构建是通过有计划地构建信息系统时,一种简单而有柔性的方法,就是组件化与服务导向架构。
过去的信息系统,是在使用者需要新功能时才开发的,也就是响应不同时刻下的使用者需求定义要素,然后从事开发与导入的工作。每次需求一增加,就必须追加开发,让IT资产越来越多,也越来越复杂。
随着复杂度的增加,处理追加需求时的影响范围也会变广,这通常会使系统反应变化的柔性因而降低。但若以SOA方法事前从全企业的角度对系统结构做好计划,就能避免复杂度的增加。不过,已经构建完成的系统会直接保留下来,除非重新构建,否则复杂的问题并不会完全消失。
所谓的“组件化”,和制造中的“模块化”是相同 ...
FoxBPM流程引擎支持SVG格式的流程图展示,但是应用系统必须满足以下条件才能应用SVG功能(静态流程图展示、动态流程运行轨迹展示)。
1、首先是客户端浏览器要求,如果是IE浏览器,其版本必须是IE8或以上。
2、由于SVG功能基于JAXB框架开发,应用系统必须运行于1.6或以上版本的JDK,如果JDK版本低于1.6,那么应用系统必须引入JAXB 2.0或以上的API。包括 jaxb-api.jar、jaxb-impl.jar、jaxb-core.jar
3、必须在foxbpm.cfg.xml文件中配置运行轨迹监听,参http://maenliang1018.iteye.com/bl ...
开发环境:
1、JDK1.5 (对应的编译版本选择1.5)
2、ORACLE数据库
部署环境:
WebSphere Application Server 6.1
WAS 6版本的部署和 流程引擎5.2于WAS 7版本的部署类似可以参照:
http://fixteam.github.io/fixflow/userguide/out/html/index.html#deploy.websphere
主要差异如下所示:
1、WAS 6版本 配置共享库时需要 EMF架构的三个jar
org.eclipse.emf.common_2.9.2.v2013 ...
一个网页设计师的工作经验分享
- 博客分类:
- 经验分享
作为网页设计,不能一味的馒头苦干,也要经常与同行交流,吸取经验,让自己更加的知识丰富起来。
这是去年11月底在小组里分享过的工作效率心得,在这里也跟大家分享一下工作“快”感哈哈。我相信大家应该都有过工作效率的些许烦恼。而这个效率啊伴随我很长时间的痛苦。每每到PDI的时候领导必提效率有木有?自认为快是不算的,必须领导和客户方说了算,对于当年校招进来的毛驴,是一件泪崩漫长的提升过程。整天琢磨如何快,多快的速度才算快,恨不得快到连参照物都变得动感模糊。时间是把杀猪刀,不仅催人老还得与它赛跑,经过这几年的自残式磨练,也早该总结总结。
一、 懂得整理需求
效率是先把重要的事情优先排 ...
FoxBPM任务中心目前用到JQuery DataTable控件的页面包括:用户列表、待办任务、已办任务、流程追踪,根据这四个页面整理出的功能需求如下:
1、服务器端分页
相对于服务器端分页,还可以采用浏览器缓存数据 ...
FixFlow6.0版本开始改名为FoxBPM,该版本添加了一个对客户和开发人员来说都很实用的功能:流程运行轨迹。站在开发人员的角度流程运行轨迹可用于调试跟踪相对复杂的流程,站在客户的角度对流程监控分析提供动态支持。运行轨迹基于流程引擎的全局事件监听机制,其原理是针对每个节点的进入事件添加一个负责记录节点信息的监听器,当流程启动运行进入节点的时候,会产生一个进入事件并且触发该事件所有的监听器,这样就可以拿到流程运行的时候每个节点的进入执行信息了。
代码实现:
1、需要一个记录监听器。
2、通过配置文件对监听器进行配置,在流程模型转化的时候将监听 ...
流程引擎内核是流程运行的最小单元,而整个引擎则要复杂很多,包括:状态存储、事件处理、组织适配、时间调度、消息服务等等外围的服务性功能。引擎内核,仅包含最基本的实例对象,以及用于解决流程运行问题的调度机制和执行机制。流程定义方面不应该包括图形化相关信息,但是现在的Foxbpm引擎内核是违反这一原则的,它不仅定义了流程信息,同时嵌入了流程对应的图形化信息,这违背了微内核设计的初衷,违背了OO的单一职责原则。
标准的bpmn文件内容包括两方面的定义,一部分是流程定义、一部分是图形化信息定义。对于引擎内核来说他们是相互独立的,所以现在提出相关重构建议:
1、foxbpm引擎内核只支持最 ...
上一篇博客简单介绍了该系统的元数据模型,这周继续为大家介绍SIGNAVIO流程设计器这一开源系统部分功能的核心代码。
事件驱动原型
首先看整个系统的事件原型。和其他核心操作一样,事件相关接口也封装在ORYX.Editor对象中,包括注册、取消注册、执行、暂停事件、激活事件等接口,由于JS语言本身对函数式编程的良好支持,所以系统事件原型实现起来就很容易了。
系统事件响应类型主要包括:
1、动作响应事件,如鼠标点击事件、键盘操作事件,这一事件主要由HTML DOCUMENT实现,设计器只需要针对自身业务动态添加事件监听就可以了。
2、功能响应事件,整个设计器系统基于这 ...
根据前段时间的调研结果,FoxBPM流程引擎的web设计器最终选型已经确定:基于SIGNAVIO开源框架扩展foxbpm属性,本周博客就为大家简单介绍一下SIGNAVIO开源框架的部分结构模块,以及整个编辑器的数据模型。SIGNAVIO整个系 ...
时光荏苒,不忘初心,勿在浮沙筑高台!继续每周一篇的FoxBPM 系列!
流程引擎永远不可能独立的面向客户,它必须通过组建的方式集成于平台和客户交互。既然是组件那么我们就需要将其架构设计的具有弹性、可重用性、平台关联性、和其他组件的互联互通性等等。那么什么样的架构才能达到这样的高度?什么样的设计才能满足这样的要求?凡此种种。本周就带着这些疑问跟大家介绍一下FoxBPM流程引擎的架构设计中所遵循的OO原则和运用的设计模式。
首先看一下整个流程引擎设计所遵循的一些OO原则:
1、单一职责原则
FoxBPM引擎的外层service具体实现都由Command命令封装之,和A ...
目前FoxBPM流程引擎有四种类型的调度工作,全部由Quartz实现,分别是流程实例自动启动、连接器自动执行、边界事件自动执行、中间事件自动执行。根据BPMN2.0官方定义目前也只有这四种自动调度。其中流程实例启动、连接器执行和边界事件执行的调度工作同时支持日期时间定时启动和时间间隔性启动,而中间事件执行目前只支持日期时间定时启动。
Quartz组件引擎依赖一套松耦合的线程池管理部件来管理线程环境,它也有自己的一套持久化环境和数据库模型,所以它具有很好的可伸缩性和可集群性,也为我们工作流程引擎模块的集群添加支持。
流程定义中四 ...
为什么添加SVG支持?
可伸缩矢量图形 (Scalable Vector Graphics)简称SVG,相对于普通的PNG图形文件,SVG格式有更好的展示效果,可以明显增加用户的体验。FoxBPM流程引擎同时支持PNG和SVG两种格式的输出。开发者可以根据用户需求动态的抉择。针对BPM产品SVG本身有着更多的优势:首先SVG本质就是一个XML,其对应的字符串可以直接在支持SVG的浏览器中展示,所以相对普通的图形文件SVG可以更加容易的输出到前端浏览器,在网络带宽不足的情况下这个优势就更加明显; 其次既然SVG本身是一个XML,那么我们就可以在前端像操作其他 ...