昨天和MDA大牛飞哥谈了关于软件架构的问题。让我重新思考关于软件设计中架构设计的问题:即业务架构-大架构,代码设计-小架构的差别。
在软件设计中流程是第一位的。传统的基于UML的设计方法是面向领域模型的。而BPEL被成为是UML的替代者。我这里提到UML和BPEL不是指写文档的时侯的哪些图,关于文档是否用uml表示一定好,那是另一个话题了。我这里是是指最终软件基于的架构设计,到底是从模型开始,开始从架构开始,或者是两者结合?
紧接着就看到了这片文章http://today.java.net/pub/a/today/2006/02/14/separation-of-concerns-and-bpel.html
Separation of Concerns and BPEL, 文中的concern我理解应该是业务中某一个具体的关注点:例如选择日期是一个concern,选择旅馆是一个concern,这些concern通过BPEL组合起来。
John作了一个关于对象,组件,web服务的比较
http://weblogs.java.net/blog/johnreynolds/archive/2005/02/objects_compone.html
他提出BPEL应该使用纯service的方案,Java RMI, C#, Jini, etc。所以象BpelJ这样的项目没有什么意义。
BPEL和ESB一起来实现基于业务架构的设计。所有的服务停靠在ESB这个Hub上,BPEL进行统一协调。
这是一个大的思路,当然还需要很多BPEL的实践来告诉我们到底BPEL在何种程度上能减轻开发者的负担,以使软件架构更加灵活
当然,我们现在依然再寻找对需求的准确表述方式:什么是流程?什么是表单?是否流程加表单就是企业应用?用什么方法能把流程,表单的构件和传统的成熟技术结合?
我们来看看BPEL的定义:
BPEL functionality
BPEL deals explicitly with the functional aspects of business processes:
- control flow (branch, loop, parallel)
- asynchronous conversations and correlation
- non-determinism
- long-running, nested units of work, faults, and compensation
BPEL is NOT:
BPEL is not workflow: there are no explicit abstractions for people, roles, work items, or inboxes in BPEL (among other things).
BPEL is also not BPM: no specified data model for measurement, reporting, or management.
BPEL is not integration: there is no explicit support for transformation, semantic interpolation, or specific protocols.
BPEL is not all-encompassing: there are some patterns that are difficult to model with BPEL.
这里也说了BPEL也有很多不适合的模式
目前主要的开源BPEL引擎有
http://www.activebpel.org/
http://sourceforge.net/projects/wf-twister/
http://bonita.objectweb.org/
BPEL标准在这里
http://www-128.ibm.com/developerworks/library/specification/ws-bpel/
John在blog里面强调Process Driven Design the next big thing,他说他不喜欢UML,因为他的工作是收集用户需求和开发用户界面,他关注的是为过程编写文档,理解和实现业务过程。而UML主要是用来关注软件的组件的(这是John的话)
但是也有人通过扩展UML来实现BPEL
http://www-128.ibm.com/developerworks/webservices/library/ws-uml2bpel/
总之,我觉得,首先有必要对业务流程进行明确的区分和定义,什么样的案例才算是业务过程适用的?
继续思考中。。。
分享到:
相关推荐
**BPel 完整实例(WebService + BPEL)** **一、BPel简介** Business Process Execution Language(BPEL)是一种用于编排Web服务的业务流程执行语言,它是基于XML的,专为实现企业服务总线(ESB)上的复杂业务流程...
### BPEL中文教程知识点详解 #### 一、BPEL概述 **BPEL**(Business Process Execution Language),即业务流程执行语言,是一种基于Web服务的技术,用于定义和执行复杂的业务流程。它允许用户通过组合现有的Web服务...
ODE(Orchestrations for the DEployment Environment)是Apache提供的一款开源BPEL引擎,它实现了BPEL规范,提供了部署和执行BPEL流程的环境。在ODE中,相关集合的管理和使用是其核心功能之一,它为开发者提供了...
**BPEL(Business Process Execution Language)** 是一种用于描述业务流程和服务编排的语言,它在Web服务领域中扮演着重要角色。BPEL的主要目标是为了解决企业级服务之间的交互问题,允许开发者将多个Web服务组合成...
### BPEL Primer (BPEL 2.0 Primer_权威) #### 一、BPEL简介 **Business Process Execution Language (BPEL)**是一种用于形式化描述业务流程和业务交互协议的语言。它旨在扩展Web服务交互模型以支持业务交易。BPEL...
### BPEL的一个运行实例 #### 1. 前言 ##### 1.1. 前提条件 本文档假设读者已经具备基本的Java编程基础、了解Web服务的基本概念以及熟悉Eclipse IDE的使用。 ##### 1.2. 目标 本教程旨在通过一个具体的例子来介绍...
### BPEL 2.0规范详解 #### 一、概述 《BPEL 2.0规范(中文版)》定义了一种基于Web服务的业务流程语言——Web服务业务流程执行语言(WS-BPEL),该语言允许设计者描述业务流程,并通过专门的Web服务接口实现流程的...
5. **验证安装**:启动Eclipse后,检查“窗口”->“透视图”->“打开透视图”菜单,看是否出现了BPEL相关的透视图选项。如果出现,说明插件已成功安装。 **使用Eclipse BPEL插件:** 一旦插件安装成功,你可以创建...
现在,我们来看一下压缩包中包含的子文件: 1. **p2.rar**:这个文件可能包含Eclipse的平台更新站点(P2)信息,用于管理Eclipse插件的安装、更新和依赖关系。P2是Eclipse的组件管理系统,负责插件的安装、更新和...
Eclipse BPEL 使用详解 Eclipse BPEL 是一种基于 Eclipse 的业务流程执行语言(BPEL),它提供了一个基于标准的业务流程管理解决方案。下面是 Eclipse BPEL 的使用详解。 一、 环境配置 Eclipse BPEL 需要在 ...
**BPEL流程例子程序详解** BPEL(Business Process Execution Language)是一种基于XML的编程语言,用于描述和执行业务流程。在这个例子程序中,我们使用了Eclipse BPEL2.0插件来开发一个特定的流程,该流程实现了...
Oracle BPEL(Business Process Execution Language)流程开发指导是一份专为开发者准备的详细文档,主要涵盖Oracle 10g (10.1.3.1.0)版本的BPEL Process Manager的使用和开发。BPEL是一种用于描述企业服务业务流程...
**BPEL2.0(Business Process Execution Language 2.0)**是Web服务业务流程执行语言的第二版,它是一种用于编排Web服务的XML格式的语言,主要用于定义和执行复杂的业务流程。BPEL2.0是SOA(Service-Oriented ...
**标题:“BPEL 1.0 vs 2.0”** **正文:** BPEL,即Business Process Execution Language,是一种用于描述企业服务业务流程的XML格式的语言。BPEL是服务导向架构(SOA)中的核心组件,用于集成不同系统和服务,...
### ORACLE BPEL开发手册知识点解析 #### 一、ORACLE BPEL Process Manager简介 **ORACLE BPEL Process Manager**(简称BPEL PM)是ORACLE公司为支持业务流程执行语言(Business Process Execution Language,简称...
**BPEL(Business Process Execution Language)** BPEL,即业务流程执行语言,是用于构建服务导向架构(SOA)中的业务流程的规范。它是一种基于XML的语言,允许开发者描述两个或多个Web服务如何协同工作来完成一个...
### BPEL学习心得笔记 #### 一、BPEL基本概念及活动类型 BPEL(Business Process Execution Language)是一种用于定义业务流程的标准语言,主要用于编排Web服务以实现复杂的业务逻辑。根据给定的部分内容,我们...
《深入解析BPEL2.0标准规范:企业级流程自动化的新篇章》 一、引言 在现代企业的数字化转型中,业务流程自动化扮演着至关重要的角色,它不仅能够提高运营效率,还能确保业务规则的一致性和准确性。在这个背景下,...