`
lujar
  • 浏览: 507264 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论
阅读更多

昨天和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介绍BPEL介绍BPEL介绍

    BPEL,全称Business Process Execution Language,是用于编排Web服务的一种标准语言,它允许开发者将多个Web服务集成到一个业务流程中,以实现更复杂的业务逻辑。BPEL的核心在于提供了一种方式,使得企业能够利用已...

    bpel完整实例(webservice+bpel)

    **BPel 完整实例(WebService + BPEL)** **一、BPel简介** Business Process Execution Language(BPEL)是一种用于编排Web服务的业务流程执行语言,它是基于XML的,专为实现企业服务总线(ESB)上的复杂业务流程...

    BPEL中文教程 BPEL学习很好的

    ### BPEL中文教程知识点详解 #### 一、BPEL概述 **BPEL**(Business Process Execution Language),即业务流程执行语言,是一种基于Web服务的技术,用于定义和执行复杂的业务流程。它允许用户通过组合现有的Web服务...

    BPEL相关集 bpel相关集合

    ODE(Orchestrations for the DEployment Environment)是Apache提供的一款开源BPEL引擎,它实现了BPEL规范,提供了部署和执行BPEL流程的环境。在ODE中,相关集合的管理和使用是其核心功能之一,它为开发者提供了...

    BPEL入门教程.zip

    **BPEL(Business Process Execution Language)** 是一种用于描述业务流程和服务编排的语言,它在Web服务领域中扮演着重要角色。BPEL的主要目标是为了解决企业级服务之间的交互问题,允许开发者将多个Web服务组合成...

    bpel primer_(BPEL 2.0 primer_权威).pdf

    ### BPEL Primer (BPEL 2.0 Primer_权威) #### 一、BPEL简介 **Business Process Execution Language (BPEL)**是一种用于形式化描述业务流程和业务交互协议的语言。它旨在扩展Web服务交互模型以支持业务交易。BPEL...

    BPEL 2.0规范(中文版)

    ### BPEL 2.0规范详解 #### 一、概述 《BPEL 2.0规范(中文版)》定义了一种基于Web服务的业务流程语言——Web服务业务流程执行语言(WS-BPEL),该语言允许设计者描述业务流程,并通过专门的Web服务接口实现流程的...

    eclipse_BPEL_6

    5. **验证安装**:启动Eclipse后,检查“窗口”->“透视图”->“打开透视图”菜单,看是否出现了BPEL相关的透视图选项。如果出现,说明插件已成功安装。 **使用Eclipse BPEL插件:** 一旦插件安装成功,你可以创建...

    eclipse_BPEL_1

    现在,我们来看一下压缩包中包含的子文件: 1. **p2.rar**:这个文件可能包含Eclipse的平台更新站点(P2)信息,用于管理Eclipse插件的安装、更新和依赖关系。P2是Eclipse的组件管理系统,负责插件的安装、更新和...

    Eclipse_BPEL_使用详解[整理].pdf

    Eclipse BPEL 使用详解 Eclipse BPEL 是一种基于 Eclipse 的业务流程执行语言(BPEL),它提供了一个基于标准的业务流程管理解决方案。下面是 Eclipse BPEL 的使用详解。 一、 环境配置 Eclipse BPEL 需要在 ...

    BPEL流程例子程序

    **BPEL流程例子程序详解** BPEL(Business Process Execution Language)是一种基于XML的编程语言,用于描述和执行业务流程。在这个例子程序中,我们使用了Eclipse BPEL2.0插件来开发一个特定的流程,该流程实现了...

    oracle bpel 流程开发指导

    Oracle BPEL(Business Process Execution Language)流程开发指导是一份专为开发者准备的详细文档,主要涵盖Oracle 10g (10.1.3.1.0)版本的BPEL Process Manager的使用和开发。BPEL是一种用于描述企业服务业务流程...

    BPEL2.0及相关规范

    **BPEL2.0(Business Process Execution Language 2.0)**是Web服务业务流程执行语言的第二版,它是一种用于编排Web服务的XML格式的语言,主要用于定义和执行复杂的业务流程。BPEL2.0是SOA(Service-Oriented ...

    BPEL 1.0 vs 2.0

    **标题:“BPEL 1.0 vs 2.0”** **正文:** BPEL,即Business Process Execution Language,是一种用于描述企业服务业务流程的XML格式的语言。BPEL是服务导向架构(SOA)中的核心组件,用于集成不同系统和服务,...

    ORACLE bpel 开发手册

    ### ORACLE BPEL开发手册知识点解析 #### 一、ORACLE BPEL Process Manager简介 **ORACLE BPEL Process Manager**(简称BPEL PM)是ORACLE公司为支持业务流程执行语言(Business Process Execution Language,简称...

    bpel_designer_1.0.5

    **BPEL(Business Process Execution Language)** BPEL,即业务流程执行语言,是用于构建服务导向架构(SOA)中的业务流程的规范。它是一种基于XML的语言,允许开发者描述两个或多个Web服务如何协同工作来完成一个...

    bpel学习心得笔记

    ### BPEL学习心得笔记 #### 一、BPEL基本概念及活动类型 BPEL(Business Process Execution Language)是一种用于定义业务流程的标准语言,主要用于编排Web服务以实现复杂的业务逻辑。根据给定的部分内容,我们...

Global site tag (gtag.js) - Google Analytics