ProfileLab-1109PhotosBlogLists Tools Help
June 04

麦克拉伦和红色法拉利

体育比赛总是扣人心弦。F1方程式犹是如此。

年年岁岁花相似,岁岁年年人不同。一站又一站,一年又一年的赛事,车手,车队逐鹿中原,上演着悲欢离合。距离5月28日摩纳哥的比赛已经有几天了。现在又想起了这个话题。

又是KIMI退出比赛!KIMI在麦克拉伦近乎悲情的人物。不知道有多少站KIMI都中途退出了比赛,这是一个可以问鼎冠军的人,正因为这样才让人觉得悲情。KIMI的退出多是车队的问题。F1不是个人的比赛,它比其他任何比赛更考验一个团队。

麦克拉伦,曾经的王者。我喜欢这支车队。因为它奉献给F1车迷最精彩的比赛。看一下麦克拉伦的历史,我们能明白这是一个怎样令人热血沸腾的团队。毫无疑问,麦克拉伦是一个崇尚自由竞争的团队,这种精神一直是团队的灵魂。而这种精神的贯彻程度和车队成绩成正比。八十年后期,是迈克拉伦的鼎盛时期。这是的车手是车王塞纳和普罗斯特。两人是搭档也是竞争者,而且毫不掩饰这种竞争关系。在那是的赛道上,经常看到的是两辆麦克拉伦的赛车在争夺冠军,上演着急速追踪。两个人都为车队贡献了3次个人世界冠军。而后,麦克拉伦的新搭档出现了,哈基宁和库塔,同样他们延续了车对的作风,但是远比不上两位前辈的精彩,他们都夺得了2次冠军。现在,麦克拉伦的车手是,KIMI和蒙托亚,也有竞争,但是基本上确定了KIMI一号车手的位置。当然,麦克拉伦的成绩还和赛车的性能有很大的关系,他们又最快的赛车,但是赛车的稳定性却是致命的缺陷。也许正是麦克拉伦这种崇尚竞争精神的指导下,使它的赛车也符合这种精神,拥有最快的速度。这是一个真正王者的团队,它让每个车手都精彩,让车队精彩,也让F1精彩。

而赛场上的红色法拉力,是一个与麦克拉伦截然相反的团队。当然,这不是指它们的技术上。表面上,他们都拥有高效的团队,最出色的技术人员。赛场上,飞驰的赛车,真正揭示了团队的宗旨。红色法拉力的宗旨很明显,冠军,冠军,冠军。团队的每一个人都是在这个目标指导下行动。所以,有了巴里切罗给舒马赫让车的场面,这和足球比赛打假球没有多大区别。千年老二,巴里切罗。这也是一种团队,它集中所有的力量来达成一个目标,这是一个悲剧色彩浓重的团队。它能完成团队的使命,能捧出一个舒马赫,塑造一个又一个的车王,却永远激发不了F1的激情。

一支优秀的团队都有自己的灵魂。它的表现或如麦克拉伦,或如红色法拉利,或是其他。这没有对与错,甚至没有优与劣。只有团队成员与团队精神的融合问题。

May 31

燃烧吧,1109

    今天是一个很重要的日子:IBM的项目进入了收尾阶段,终于可以把工作重心转移到SOA上了!
    过去的一个月里,按照大赛给的资料,一步一步地学习SOA的知识。可以说举步维艰!幸好好有同组的弟兄们照应,不至于在SOA的各种概念里
迷失。在接下来这一个月的时间里,不用扬鞭自奋蹄,呵呵,不如此不足以报答兄弟们在五月份的提携。
    谈谈今天的学习情况。
    利用WBI Modeler来构建业务流程,是Business analyst的职责,是完全属于业务领域的问题。按照《Business Process、、、》所讲的案例,大家都可以一步一步的熟悉按需的业务流程建模和WBI Modeler的使用,这不是一个能让脑细胞前赴后继英勇捐躯的问题。看到那些业务流程图,不由得想起了C语言。在编程思想方面,由过程化的方法演化到OO思想;在企业及开发现在也有了面向服务的企业架构,应该说这是一个更大意义上的“面向对象”,着眼于组件的功能,组件的重用。这些的由来都是企业的业务流程,也就是现实世界。业务领域的流程模型是对现实世界的一种抽象,SOA架构为实现这种抽象的模型提供了一个框架。当根据SOA的原则设计出架构之后,问题就由业务领域转向了IT技术领域,就像工程有了图纸,而负责构建工程的是MDA/MDD。MDA/MDD有一部分是方法学。这是我们比赛要做的全部内容?理论上讲,我认为是了。就像企业的愿景,就只有几句话,却需要员工一棒一棒的接力。IBM的愿景是什么呢?IBM找到实现愿景的方法了吗?
    感叹于IBM工具的强大和完美。工业界机器制造机器标志着第二次工业革命。那么IT领域呢,它的革命性时代到来了吗?不难想象不久的将来软件
领域的自动化将会达到一个新的高度,到那时恐怕不少软件工程师会失业。今天工作不努力,明天努力找工作,呵呵,至理名言。
  一天的时间,明白了兄弟们共同前进的方向,努力!
  刚开了下会,Lei,Mike和我会继续留在业务建模领域,这是一个系统是否成功的最关键的一步,而业务领域的分析又是我们的弱项,大意不得。当然,我们一个团队,在SOA前进的道路上,也派出了尖兵。Tomy,将继续前进,探索下一步前进的方向、需要的资料和对现在工作的反思。
   欲则立,不欲则废。
   燃烧吧,1109!
-----------------------------------------------------------------------------------------------------------------------------------
Posted By Davis

WBI Modeler v6

这两天都在用WBI Moderler v6对Business Process进行建模。总之是边学边做。下面是看Modeler自带的帮助文件时所做的摘抄:
 
Creating resources
  • A resource is a person, piece of equipment, or material used to perform a task or a project.
  • Resource definitions provide common attributes for similar or related resources in your process models.
  • Each of the resources used in a business to perform a process or task (such as personnel, equipment, or materials) can be modeled and placed in the Project Tree for use in process diagrams.
  • The objects that undergo changes and are passed from one process step to the next should be modeled as business items, whereas the things that are performing the work or are essential for the work to take place, such as computers, telephones, vehicles, or personnel, should be modeled as resources.
  • Roles define a set of capabilities that are necessary for performing tasks within your processes.
  • Businesses typically define roles to specify the capabilities that the resources responsible for certain tasks must have.
Creating business items
  • Business items are any business documents, work products, or commodities that are used in business operations.
  • Business item templates are categories used to model groups of business items that share common properties.
  • Business items are those items that are passed from one activity to the next in business operations.
Creating process diagrams
  • A process diagram is a representation of the flow of a real-time business process, and is composed of the individual steps or activities that make up the process.
  • Each task in a process diagram performs some function or activity. Tasks are the basic building blocks of a process diagram.
  • You can display labels in your diagram to show information associated with process elements or the process as a whole.
  • A merge in a process diagram recombines separate processing paths. A merge is used after a decision or fork.

-------------------------------------------

Published by Lei

May 29

About Business Process Modeling

有段时间没写Blog了,汗啊~~~
这段时间小组集中于需求分析和建立初步的Use Case Model;
按照我们现在的理解,下一步就是进行业务流程建模,即Business Process Modeling;看了点资料,现摘抄如下:
——————————————————— 我 是 分 割 线 ——————————————————
 
关于业务流程建模(Business Process Modeling)
Gather Business Process requirements
业务分析首先确定几个核心的活动
  • Modeling business items: 确定数据元素并且为其建模。
  • Modeling services: services are defined as external entities (outside the process being modeled) that can be used from within the organization's processes. (在正被建模的流程外部)
  • Modeling business policies: Analysts might specify the intended policies as comments in natural language. (Business Rules?)

Process model development

  • Create processes
  • Create tasks:
    • In process modeling, tasks are the lowest level of activity.
    • A task cannot be further decomposed.
    • Each task specification expects input, output, and the resources necessary to complete the task.
  • Create loops: A loop describes a repeating sequence of activities contained within a process.
  • Add decision points: A decision routes inputs to one of several alternative outgoing paths based on successful evaluation of the condition to "true."
  • Create repositories:
    • A process might store data and later use that data while processing.
    • In WebSphere Business Integration Modeler this data storage mechanism is called a repository.
    • This concept is similar to variables in programming languages.
    • Every repository has a name and an associated business item type.
Refernce:

------------------------------------------------------------------------------------

Published By Lei

May 24

Use Case and Scenario

Use Case and Scenario:       Posted by Zhu Yan          


 

I am very ashamed of being unclear about the differences between Use Case and Scenario after I have learned Software Requirement Engineering. Then I search it on wikipedia.

 

References from Wikipedia:

 

Scenario:

  • A scenario is a brief description of an event.
  • In software engineering, scenarios are widely used by corporations to understand the different ways that future events could unfold. 

 

Use Case:

  • In software development, a use case is a technique for capturing the potential requirements of a new system or software change. Each use case provides one or more scenarios that convey how the system should interact with the end user or another system to achieve a specific business goal.
May 21

SOA Project Design Plan

SOA Project Design Plan          Posted by Zhu Yan

After having a team conversation last night, we thought out our project plan and goals before June 5th after a lively debate.
We first decided to do is to read the material offered by the contest web site, and make the requirment specification first. I made a picture for us to monitor our progress and goals. It will be updated everyday for us to review what we have done and what we have to do later.
 
 


 

Blog


    June 21

    软件工程中业务模式的使用(第一部分)(转载)

     

    软件工程中业务模式的使用(第一部分)

    发布日期: 2005-10-22 | 更新日期: 2005-10-22

    Philip Teale

    Microsoft Corporation

    Robert Jarvis

    Systems Advisers Limited

    对于软件开发者来说,采取一种方式定义业务模式,并通过战略架构模型(SAM)来开发一个商业模型框架,是有益的。

    本页内容

    简介

    业务模式的应用接口

    如何识别并文档化业务模式

    相关域的定义

    结论

    简介

    这是一个系列文章中的第一部分,这系列文章分为两部分。这系列文章探讨了是否业务模式能够被通过结构化的方式定义,如果能的话,这些业务模式对于那些搭建商业软件系统的软件工程师是否有价值。

    第一部分探讨了如何通过一种方式定义业务模式,以使得业务模式对软件工程师来说有益处。

    第二部分探讨了如何通过这些业务模式开发系统。在这些文章中“模式”这个词来自于Christopher Alexander给出的标准定义,这个定义确定了一个模式的三个关键元素

    一个模式是在已定义语境下描述一个连续问题的通用解决方案。在模式定义中有三个关键部分:

    通用解决方案 这意味着一个模式不会定义一个特定解决方案。甚至,以一些显著的现象为基础,它定义问题“类”和问题如何通过一种特定的方法得到解决。它的作用来自于一个事实,就是它只是一个抽象,并可以在一些情况下被调节。

    连续问题 这意味着问题不唯一时,模式是有益的,尤其在出现很多问题的时候。

    已定义语境 这意味着你不得不限制通用解决方案,因为没有绝对普遍的真理(在任何有效水平)。因此你必须了解通用解决方案有效的情况,还有如何详细说明它来创建你自己的特别的设计。

    摘要

    什么是业务模式?一个业务模式描述了一个可重用方法来解决一个特别的商业问题,这个商业问题通常是在商业过程范围内。它提供了一个解决方案,这个方案以前面定义的针对同样的,或相似的,商业问题的方案为基础。一个业务模式可以被形容为一个“商业方案的架构模型”。

    这篇文章回答了下面几个问题:

    1.

    我们能够为业务模式的创建开发一个框架么?

    2.

    我们能够定义一个稳定方法来创建业务模式么?

    3.

    我们能够改善框架和方法工作么?

    4.

    这些业务模式可以用来驱动其他软件设计和应用模式,或者实际方案么?

    在这篇预言性的和可行性的文章中,我们断言所有这些问题的答案都为

    1.

    我们确定完整描述业务模式所需要的架构元素集。我们给它们分类并且着重在描述商业最稳定部分的元素上,它们非常适合“模式化”这个词语。

    2.

    以实验过的并可相信的方法为基础,我们已经定义了一个正确的方法。

    在第二部分,我们提供一个来自医疗产业的例子,这个例子以联合国的真实雇用为基础。

    这篇文章没有努力让你认为你可以创建业务模式,也没有提供一个关于这个活动的成本/效益例子。它描述了使用业务模式得到的一些好处,但是它并不广泛。我们的目的是促进这个对概念的兴趣并给出一些想法,因为我们相信这将带领我们到一个更加工程化的软件系统时代。

    方法一致性的益处

    软件工程上有一个框架的益处以惊众所周知所以我们不再讨论。然而,方法一致性的益处还值得讨论一下。依作者的观点看来,因为一下这些原因,我们必须用一种一致的、结构化的方法记录下业务模式:

    这个方法允许业务模式和业务模式方案的逐步介绍。它使得一个系统方案应用业务模式成为可能。这也是必要的,因为企业通常只对投资它们产业中某部分这件事在任何时候都感兴趣。

    因此我们需要逐步的解释业务模式,针对企业的利益。我们需要一个一致性方法,这个方法允许通过无缝增加现存事物的方式来扩展模式范围。

    我们还认为这种方法可以跨产业领域被使用,因此如果某产业领域的某企业需要另一个产业的企业(举例说,一家银行需要一家保险公司),他们可以选择在业务模式层次的简单集成。

    返回页首

    业务模式的应用接口

    我们认为成功的关键在于,通过给出一个服务于所有业务模式的一致性接口,业务模式要增强IT系统的开发和维护。我们推荐接口采取组件与服务共同定义的模式,这些组件和服务将在可描述商业数据上执行已定义的商业功能。

    使用的模式

    我们需要两个模型--一个用来说明如何定义业务模式,另一个用来说明如何设计基于业务模式的系统,这些系统可能在过程中使用其它模式。我们选择了以前用过的两种模式,但是,再次着重重申一次,你不是必须使用这些模式。我们的确感到,如果产业使用一致性方法来定义业务模式会更好一些;但是,接下来将使用很多方法来开发应用它们的系统。我们使用的这些模型已经被微软公司的内部与外部顾问使用过,用来为创建客户和合作伙伴提供意见。这些方法和技术已经在实践中被证明。

    模型1:一个企业结构框架—SAM

    在第一部分我们开发一个业务模式框架,通过使用SAM—企业结构框架。SAM为企业架构和相关问题领域提供了一个非常好的分析方法和文件结构。

    SAM使用“兴趣域”这个概念来说明一些企业和“关系”事例的集合,将这些事例关联为一些组,这些组提供对企业架构与操作的观察。SAM已经被Systems Advisers Ltd,一名曾在微软公司架构领域工作过的联合国顾问,发展起来。在这篇文章中,我们使用SAM来定义关键业务模式主题。

    SAM可以被认为是一个Zachman框架的扩展子集,它通过提供一个架构定义与机制的通用架构进行扩展,这些定义和机制用来组织、关联,和分析架构信息。

    SAM对架构开发采用一种反复的方法,通过从上到下或从下到上的方式,或者这两种方式的混合来进行操作,形成自己的意见。一个SAM“兴趣域”包括一个特定主题的所有相关信息,比如组织结构或商业过程,通过简单方式提出并组织。通过详细收集所有相关信息和逐步概括为更抽象的组,一个域可以“从下到上”的组装,或者通过定义假定的高层次组和详细分解它们直到“自动”层次,一个域也可以“从上到下”的组装。在实践中,这些方法经常一起使用来搭建可扩展的与有弹性的架构模型,最重要的是用来在分析中验证完整性。

    已经足够仔细的搭建和组装了一对域,这些域的成员可以被连接起来表示现实世界的关系,这些关系驱动和支撑了企业的操作。这些关系的分析和改进可以改善和优化商业。

    在IT业务模式的环境中,SAM提供了模式化商业功能和数据,以及它们之间关系的方法,来派生组件和服务,这些组件和服务支持一个已定义商业域。

    模型2:一个问题改进模型(PRM)

    一个通用PRM有以下这些步骤:

    1.

    问题

    2.

    概念方案

    3.

    逻辑服务

    4.

    物理服务

    5.

    执行

    举例,我们可以按步骤应用PRM来搭建一个家。

    问题:在一个适合的建筑里保护一个家庭。

    概念方案:位置模型内的属性要可视化,并以和未来使用者相关联的方式被描述。

    逻辑服务:概念方案更进一步的优化,需要这个优化的标准;在这个优化中,比如房屋,窗户,以及屋顶类型,都为建筑选择出来。

    物理服务:着重基础需要的优化;比如地基,水管,绝缘材料等。

    执行:最终优化将逻辑与物理服务一起展示出一个蓝图,这个蓝图说明这个房子如何被构造。这是架构师/设计者的最后工作,设计即将被实现。对IT架构和IT项目设计者来说,这是类似的。

    在第二部分我们用一个PRM(问题优化模型)来说明如何将一个商业问题转化为技术实现。通用的PRM可以被用来反复优化任何问题,从最初定义到最终方案。我们的经验已经证明,这种方法对方案搭建与设计非常有效,因此我们所说的PRM已经适应了这些问题的要求。我们还可以说明如何使用PRM来将商业问题(在我们这里以业务模式表示)转化为IT解决方案。

    我们还使用PRM识别常见的需求,来从项目设计者的角度切分企业架构,并使用不同的技术来与客户交流。它为每一个客户在一个五层结构的视图中说明不同的优化技术和不同层之间的转换。这五层结构如图1所示。

    图1.一个问题优化的五层结构视图

    结构分为五层的原因是,从实践中看来,应该提供一些优化步骤:

    1.

    商业问题(也被表达为业务模式)对被执行的商业功能和需要的数据来说是明确的。

    2.

    概念方案的元素可能对其它业务模式有效。

    3.

    逻辑服务可能对其它方案有效。

    4.

    物理服务面向节点和功能/数据放置,这些节点和功能是在独立于产品出售的。

    5.

    特别出售问题与应用层有关。举例说,这里我们可以提供非常详细的微软产品使用指南,在整个环境中。

    使用优化模型的一个重要价值就是你可以维持对系统方案可追踪性。这样你就可以查看执行细节并且一层层的追踪来清除了解哪一个执行驱动对商业问题是恰当的。

    应用企业架构模型时,我们特意使用了归档技术,这项技术对于一个应用项目编程人员的长期指导是合适的。当项目设计者使用它时,我们使用像UML这样通用的“语言”来分析和设计项目。(编程人员的差别所导致的项目需求的差别是技术优化的关键点,而不是责任差别)

    返回页首

    如何识别并文档化业务模式

    使用SAM域来识别真实世界

    我们通过考虑SAM域来解决这个问题。这些表明了一个Zachman框架的扩展子集。我们来自于搭建真实企业架构的经验表明,图2所示的这些域清楚表明了重要的兴趣域。

    图2.典型兴趣域

    这些兴趣域需要进行一些说明。特别是应该着重指出,从一个企业到另一个企业,这些定义可能是不同的。重要的是,概念被识别并组合为整体架构设计。

    在域中,我们储存特定主题的信息--按照尽可能简单维护和修复的原则结构化。通常这将导致对一个或更多层次结构,分析档案橱柜的思考。每一项信息都被认为是一个“成员”。因此,一个成员就是一个兴趣域内信息的一个离散片。一个关于“场所”的域可能会包括以下这些成员“总公司”,“伦敦销售店”,“伯明翰工厂”,等等。更进一步的成员例子包括:

    一个明确的组织单位,例如“组织”域内的“销售部”。

    一个明确的商业过程,例如“商业过程”域内的“接受订购”。

    一个特定数据实体,例如“数据”域内的“客户”。

    返回页首

    相关域的定义

    目标是完成任务,这里的目标是指企业在战略和战术上的。他们可能在较高层次,比如“改善客户服务”,或者着重在“将等待时间压缩在30秒之内”。目标会影响商业过程,并为了完成而被分配为组织单位。

    组织与企业的组织结构相关,企业组织结构--小组,部门,部分--以及这些组织单位间的关系

    基础结构与企业的固定资产相关,企业固定资产--场所,建筑,设备(包括IT设备),网络,运输工具,等等,还有他们间的关系。

    商业过程在这里被定义为企业执行的过程和活动。商业过程还经常被表示为一系列工作活动。这些活动由不同的并行工作的组织单位执行。例子可以是“处理客户命令”,“雇佣职员”,或“准备设备文档”。

    商业功能就是一个企业所做的事情,比如市场,销售,产品设计,制作,财务管理,人力资源管理,等等。这些不能被从事这些的“部门”搞混。一个功能可以被多个部门或组织单位执行。功能可以被标准定义为一个不会冗余的层次结构。一个功能分解可以按照减少外部关联与增加内部耦合的思想来结构化,模块化的思想对于软件工程师来说是非常熟悉的。

    数据是信息的基本片断,这些信息由企业创建和使用。显然,这些片断在一个数据实体的层次被表示,这个数据实体可以使“雇员”或“产品”或“客户”。

    商业组件由商业功能和数据打包而成。一个商业功能创建,读取,修改,和删除数据。通过使用一些技术,比如可交换组,定义不会冗余的“建筑块”—用来搭建支持特定商业过程的系统或应用的组件,来给所有的功能分组,可以创建和修改相同的数据实体。通过概括功能和数据,软件的可重用性和易替代性更加接近实际。甚至,组件还提供可以在其它组件提供的服务关联中使用的服务,来示例一个SOA。明显使用网络技术的服务被称为“网络服务”--微软公司.NET技术的一个重要方面。

    应用是企业现有的计算机或其他系统。包括所有的位于开发层次下的操作系统,以及计划中的系统。它们可能以组件为基础,或者是按照旧方法搭建起来的。

    技术描述了用来搭建和操作应用的硬件、软件,以及交互环境,和工具。

    项目是工作的可控片断,工作指实现一个应用或应用集合。项目按照目标顺序排列。

    使用SAM域来搭建商业模型

    我们认为上面的域子集和它们之间的关系可以用来定义一个完整商业模型。因此,这就是我们描述业务模式的方法么?我们可以通过文档化所有域和所有关系来做到这一点么?

    一般说来,答案就是“是的”,但是这还远远不能让人满意,因为不同的域随着稳定程度的不同而不同:从高稳定的到动态的。我们希望我们的业务模式以企业的稳定元素集为基础,并以此为基础创建处弹性的,灵活的方案。

    我们假定域的集合分为三类,如图3所示。

    图3.稳定,灵活,动态的兴趣域

    集合1=稳定的

    这些域描述了商业的稳定元素,并说明了基础结构--商业功能,数据,商业组件和基础组织--必须被表示来在一个已定义商业域内操作。

    集合2=灵活的

    这些灵活的域描述了商业做的事情,或者能做的事情,来清楚的将它与竞争者区分开来。它如何来做将确定他是否是灵活的。这些灵活的域--组织,商业过程,应用和技术--就是一个企业根据市场和经济情况可以迅速改变,甚至持续改变的事情。

    集合3=动态的

    这些动态的域与商业方向,工作计划,和变更安排相关--主要是“与这相关的都是什么”。通过一系列相关项目,它们描述了朝着商业目标集的方向所做的努力。

    表格1

    域集合

    这可以被称为业务模式?

    它们对软件工程有用么?

    稳定的

    是的,这些模式将对软件公司(ISVs)的商业顾问和AND集成者非常有益,这些人可以证明他们的方案可以快速提供大量,稳定,可维护的功能。

    是的,它就是我们需要的东西。因此他就是我们应该要做的,就从这里开始!

    灵活的

    是的,这些模式将对商业顾问和较低层次的集成者非常有益,这些人可以用它们来在客户商业那里引发改变。然而,环境和驱动力带来的大量不同模式将是不稳定的和数量众多的。

    不是马上

    动态的

    是的,这些模式将对商业顾问和系统集成者非常有益,这些人可以在程序实现和变更管理上深入研究。他们可以使用这些模式来配置项目,项目的编程人员也可以根据前面的成功方法改善这些模式。

    不是马上

    表格1回答了这些问题:

    这些域集合的哪些部分可以被表示为业务模式?

    对于软件工程师来说哪些是有益的?

    返回页首

    结论

    我们得出结论,一个业务模式可以描述:

    被支持的商业功能

    要求数据来支持所描述的功能。

    商业组件就是商业所需要的数据和功能的IT表述。

    任意的,需要基础组织结构来支持功能,数据,以及组件。这对一个高度分布的企业来说是必须的,对那些由不同的技术和操作环境支持的部分或单位来说也是必须的。

    另外,业务模式还描述这些元素之间的重要关系。所有的SAM域都与所有其他域相关。然而,我们需要着重在一定量的核心关系上,这些关系是形成业务模式的基础。

    这些核心关系被这样定义:

    稳定关系

    商业功能在商业数据上执行事务(典型的,创建,读取,修改,和删除)。

    商业功能被包括在商业组件中。

    数据被包括在商业组件中。

    下面,这些稳定域关联到灵活域:

    关联关系(稳定域>灵活域)

    商业功能被按照商业过程执行。

    商业过程使用商业组件提供的服务。

    商业组件在应用系统中被执行。

    下面这些灵活域中的关系是有效的:

    灵活关系

    应用系统支持商业过程。

    用技术操作应用系统。

    图4.业务模式定义的最小化基本模型

    这可以在图4中看到。另外,在基础组织结构与组织(灰色)之间存在着关系,这些组织依赖于企业和已定义商业域的属性。

    然而,我们发出一句警告。在有效的成果出现之前,尽管还不用必须组装这些域,但是,在关于业务模式可实现的范围和约束的重要结论出现之前,却应该必须完成一个紧急的相互关联的稳定结构的集合。

    方案vs.模式

    业务模式仅通过稳定域和稳定域之间关系来定义。业务模式与潜在方案的关联被域之间关系提供出来。甚至,通过改善和优化灵活关系,灵活性也可以达到。

    在一个完整方案开发中,我们至少可以解决相关稳定域与灵活域,以及它们之间关系。

    因此对一个业务模式而言,我们需要仅仅三种稳定域以及它们之间关系被归档。这给了模式应用中的灵活性以最坚固的基础。所需的三个稳定域在图4中被突出显示。灰色的关系和域表示在一个方案中从稳定域到灵活域的关系。如果业务模式为某个主题存在,那么方案就搭建在模式上。

     

    June 18

    A Problem about Modeling Process

      After completing a process model by Modeler, Business analyst will simulate the process.
      The tool adds a simulation snapshot as a child element of the process in the project tree.
      A simulation saapshot is a record of the complete process model at the moment when you
      simulated the process. This record contains a copy of all the elements of your project
      Within the simulation snapshot, the tool also cretes two folders:
      Default-----Containing a set of local preferences for simulation attributes.
      Profile-----Each simulation snapshot contains an initial simulation profile which
      contains a copy of the process model at the time that you creted the simulation snapshot.
      You can customize process contained in this simulation profile, and you can create
      additional simulation profiles within the same simulation snapshot.
     
      Today, I follow these steps to complete the simulation of the process. There is a problem.
      For a local task, the flow is ok. The tool simulates the process correctly. But when the
      process includes a local process, the problem comes out. The flow is "stop in the local process".
      There is not outcome and the following task won't be carried out. I try the example which
      also includes a local process on the book. The result is suprising. Most of the flows is "stop
      in the local process". But when performing many times, some flow can go through the process.
     
      What lead the problem? 
    -------------------------------------------------------------------------------------------------------------------
    Davis Xu 
    June 05

    Human-based Web services

    这两天都在考虑一个问题,就是业务流程中怎样加入需要人来完成的操作,这样的场景应该怎样来设计和实现?
    今天查了半天资料,终于找到了一条解决之道,那就是Websphere Process Server的Human Task Manager
     

    SOA programming model for implementing Web services, Part 8: Human-based Web services

    URL: http://www-128.ibm.com/developerworks/webservices/library/ws-soa-progmodel8/index.html

     

    User Interfaces for the Service-Oriented Architecture
    • In the context of the overall business process, a human task is a service like any other task, except that it is realized by a human activity (instead of a program) and performed by a person (instead of a computer).
    • Within the SOA programming model, human activities can be realized as Web services.
    • When invoked, the service notifies an individual of a task to do and passes the input data in an appropriate form. After the task is completed and there is a result, the service returns to its caller, passing the result as output data.
    • Rendering a human task as a Web service has the additional advantage that automation, or a combination of automated and human steps, can be substituted for the human implementation without recoding the remainder of the business process.
    • 另一种有明显缺陷的解决方法:performing several steps in a business process choreography and simply stopping whenever human expertise is needed, then restarting the choreography at a later step, without any logical connection between the two disconnected choreography sequences
    Human Tasks
    • Human tasks run within the Human Task Manager, a special container for human tasks within WebSphere Process Server.
    • A human task has a simple interface with exactly one operation. The operation has an input message, an output message, and zero or more fault messages.
    • Tasks also have access control over who is allowed to do what. From a business perspective, it's significant that only the right people can perform an approval.
    • Human tasks are presented on users' individual work lists.
    • In the integrated portal environment, one can both access a task list and work on tasks.
    • There is a task page defined by a portal administrator associated with each task.
    • The portal launches the associated task pages only when the user is working on (has claimed) a given task by passing the link to that task to a portlet. It provides a task page reference to a portlet. The portlet in turn displays the link for navigation, uses the reference to retrieve task-relevant information for the user, and returns the result to the human task.
    • 关键:human task list, task page and portlets

    ----------------------- 分 割 线 ------------------------------

     

    因为上面提到了Portal和Portlet,就顺便介绍一下相关知识:

     

    • Portals provide a secure, single point of interaction with diverse(不同的,多样的) information, business processes, and people, personalized to a user's needs and responsibilities.
    • Portal之于Web application就像windows manager之于OS:Both provide a consistent and uniform way to interact with applications.
    • Portlets are visible active components users see within their portal pages... In the simplest terms, a portlet is a Java servlet that operates inside a portal.
    • A portal server provides common services such as application connectivity, integration, administration, and presentation that would be required across all portal environments. Functionally, a portal server serves the portlets to the user.
    • Portlets are actually a special type of servlet, and they also use JSP pages to render their user interfaces.
    • The Portlet API extends and subclasses the Servlet API, meaning that portlets can do anything that servlets do, with some changes in their behavior and some extra features.
    • The most significant behavior change is in how requests are served: servlets process "doGet" and "doPost" requests, which map to HTTP GET and POST requests, while portlets process "doView" and "doEdit" requests, which come from the portal server instead of directly from a Web browser.

    Refrence: The case for portlets

     

    ------------------------------------------

    Published By Lei

    BPEL精炼之谈

    ActiveBPEL开源网站上对BPEL的解释可谓精练,比起读那又臭又长的《Business Process Execution Language for Web Services Version 1.1 》,心情都好很多,呵呵!
     

    BPEL

    BPEL is an XML language for describing business process behavior based on Web services. The BPEL notation includes flow control, variables, concurrent execution, input and output, transaction scoping/compensation, and error handling.

    A BPEL process describes a business process. Processes often invoke Web services to perform functional tasks. A process can be either abstract or executable. Abstract processes are similar to library APIs: they describe what the process can do and its inputs and outputs but do not describe how anything gets done. Abstract processes are useful for describing a business process to another party that wants to use the process. Executable processes do the "heavy lifting" - they contain all of the execution steps that represent a cohesive unit of work.

    A process consists of activities connected by links. (A process sometimes only contains one activity but that is usually a container for more activities.) The path taken through the activities and their links is determined by many things, including the values of variables and the evaluation of expressions.

    The starting points are called start activities; their createInstance attributes are set to "yes". When a start activity is triggered, a new business process instance is created. From then on, the instance is identified by data called correlation sets. These data uniquely identify a process, but they may change over time. For example, the correlation set for a process may begin as a purchase order number retrieved from a customer order. Later, when an invoice is generated, the correlation set may be the invoice number.

    BPEL is layered on top of other Web technologies such as WSDL 1.1, XML Schema 1.0, XPath 1.0, and WS Addressing.

    A Web search for "BPEL" will return a number of useful resources, including the specification document and numerous articles.

    May 19

    About SCA (Service Component Architecture)

    1.Introduction
      SCA (Service Component Architecture) provides an open, technology-neutral model for implementing IT services that are defined in terms of a business function and make middleware functions more accessible to the application developer.
      SCA extends and complements prior approaches to implementing services.
      SDO (Service Data Object) complements SCA by providing a common way to access many different kinds of data.
      SCA gives us a universal model to define business services. The SDO provides the technology to represent a universal model for data.
      SCA gives you a model to define interfaces, implementations, and references, letting you then bind these elements to whichever technology specific implementations you choose, such as Java and Web services.
    2.Component in SCA
    Figure 1. SCA Component
      SCA component model有三个Element,interfaces,implementations 和 references,每个Element都可以选择特定的技术来实现。
      Reference Element,定义components之间的dependencies,即依赖关系。
    3.SOA Module
      SCA defines a standard deployment model for packaging components into a service module.
      The module is a self-contained bundle of components that perform a specific business function.
      Service module 除了包含一组components外,还可能包含以下成员:
    1) Standalone Reference
      Non-SCA artifacts (JSPs, and others) can also be packaged together with an SCA service module, enabling them to invoke SCA services through the SCA client programming model using a special type of reference called a standalone reference. (可理解为一种特殊的reference element?)
    Figure 2. Standalone reference for non-SCA artifacts

    2) import and export
      在一个service module内部,可以通过references来调用同一module的component,但如果要让其他service module里的component调用,或调用其它service module里的component,就需要使用不同的方法,即import和export
      The mechanisms used for module to module and module to external service invocation are called imports and exports.
    Figure 3. SCA imports and exports
    4.SCA and SDO
      SCA components can be composed and can exchange data with each other in a neutral fashion by passing SDOs. 
      In the SDO programming model, data objects are represented by the commonj.sdo.DataObject Java interface definition. This interface includes method definitions that enable clients to get and set the properties associated with the DataObject.
      WebSphere Process Server implements the SDO specification by way of business objects. SCA components can exchange data by passing around business objects.
      SCA also promotes the use of SDO to represent the business data that forms the parameters and return values of services, providing uniform access to business data to complement the uniform access to business services offered by SCA itself.
     
    refrences:
    Get started with WebSphere Integration Developer
    Building SOA solutions with the Service Component Architecture -- Part 1
     
     
     Published by Lei
     ----------------------------------------------------------------------------------------------------------------------------- 

    May 17, Wednesday

      这两天主要浏览了Patterns: SOA with an Enterprise Service Bus in WebSphere Application Server V6的chapter 9和chapter 10,以及Patterns: Implementing an SOA Using an Enterprise Service Bus的chapter 10。
      前两章以具体的Business scenario为例,讲了ESB pattern的实现。使用的product主要是WebSphere Application Server V6,感觉它对ESB的实现支持还是比较全面的。通过研究实例,对ESB的具体实现又有了进一步的认识,特别是每章中对design options的分析,使我获益良多。
      Patterns: SOA with an Enterprise Service Bus in WebSphere Application Server V6可以说是Patterns: Implementing an SOA Using an Enterprise Service Bus的升级版本,但前者并没有涉及到Business Service Choreography的实现,所以我又去看了后者的chapter 10。在这章里我看到了BPEL的作用,以及如何编写流程服务,这些以后都是需要用到的。
     
    Published by Lei
    ---------------------------------------------------------------------------------------------------------------------------------------
    May 15

    May 15, Monday

    近两天我和Tony都在看Patterns: SOA with an Enterprise Service Bus in WebSphere Application Server V6  的Chapter 8.SOA Direct Connection pattern. 我们按照书中指示,成功配置运行了该章的Sample Application,并查看了部分源码,对该模式的实现有了一定的认识。这章主要是在为下面两章打基础。目前我们正在努力研究Chapter 9
     
    Published by Lei
    ----------------------------------------------------------------------------------------------------------------------------------------

    summary of SOA and ESB

    Posted By Tony Han 
     
     

    Patterns: SOA with an Enterprise Service Bus in WebSphere Application Server V6

     

    pattern ( in longman dictionary): the regular way in which something happens, develops, or is done .

     

     

     

     

    Chp1 Patterns for e-business:

     

    Patterns: tested, proven, reusable, successful design artifacts in business application.

     

    Layered asset model: from abstract to more concrete design, step by step.

     

    Ultimate e-business solution design guide:

    http://www.ibm.com/developerWorks/patterns/

     

    (omitting so much

    Chp2.1 SOA

     

    An enterprise level integration architecture approach,

    providing a consistent communicating mechanism for services to interact.

    It should be loosely coupled and support explicit interfaces, and flexible to business change

     

    Using SOA, companies can build horizontal business processes quickly 

     

     

    e-business on demand™ and SOA

     

    "on demand", a company must implement new processes while leveraging existing investment.

     

    The SOA offers four key elements to this "on demand" vision:

     

    Open standards:

    Standard method invoking services

    Integration:

     

    Virtualization:

    Service consumer oblivious to implementation detail.

    Automation:

    Apply SOA, Infrastructure service increase automation

     

     

    (OK, too much advantage advertisements! I'd rather like more concrete principle explanation!)

     

    What is a Service within SOA? 3 aspects matters.

     

    Reusable functions:

    Different level of granularity OK, technical function, business function, business transaction, business process.

    Runtime reuse (deployed in only one place), Deploy time reuse( built once but redeployed to each system)

     

    Interface:

    Explicit, Independent => interface specify only needed mutual behaviors, leaving implementation able to change freely.

     

    Communication Protocols:

    Old days, variety of protocols, causing problem when extending integration.

    SOA way, a service is protocol independent, defined once, and have many implementations with different access protocols.

    Thus, SOA stairs at Web Service…

    Web services and SOA

     

    WS:

    A set of open-standard technologies.

     

    Not born to linked:

    Web service may still use (old style, poor flexible) point to point integration.

    Some SOA implementation use customized or proprietary implementation.

     

    Exploiting WS for SOA:

    SOAP, WSDL, BPE, WSRF…      integrating heterogeneous systems, central process management

     

     

     Goodness of combination:

    So much ...

     

    State of art:

    When implementing an individual SOA project, balance among customized, proprietary, and open-standard technologies

     

    SOA summary

     

    Exposure of business function as service; choreography of services into process

     

    SOA, only architecture approach or principle, not a technology or a product.

     

    For implementation, needs infrastructure, such as ESB. (better than other candidates such as direct connection)

     

    Chp2.2 ESB

     

    Remove direct connection, add bus, as well as other capability such as security and transaction support.

     

    Evolution:

     

    Direct connection:

    Ends up with complex connection mass, no consistency to logging, monitoring, management

    A hub and spoke:

    Reduce proliferation of connections, only if interfaces and connections are genuinely reusable.(???)

    Bus:

    Federated hubs, single logical entity, physically distributed components.

     

    Enterprise requirement of ESB:

     

    Mediation (to solve mismatch) support, more than transport layer.

     

    Protocol independent, its self support several integration mechanisms.

     

    Support multiple interaction pattern:

    Support one of these: message-driven, event-driven, SOA…

     

     

    ESB and WS:

    Basic WS tech is not enough to full fill ESB

     

    Besides ESB, other needed infrastructure component for SOA: Business Service Directory, Business Service Choreography, ESB Gateway.

    May 14

    Glance at the MDD

    MDD                                Posted by Zhu Yan
    A very important IT development concept in SOA is MDA which short for Model Driven Architercture. ITers apply this concept by using the business model to auto generate the code and IT artifacts. This automation requires the precise and well analyse about the business. The IT solution architect should establishing the model of the business and selecting the business pattern. The work above is the most important part in MDD(Model Driven Development). As what it says, Inaccurate models can be more harmful than no models at all.
    The definination of pattern in  "Model-Driven Development Using IBM Rational Software Architect" IBM Red Book is:A pattern is a solution to a recurring problem within a given context.
    And pattern is defined in "Patterns Service-Oriented Architecture and Web Services" IBM Red Book says that "The patterns for e-business are a group of proven, reusable assets that can improve the speed of developing and deploying the web applications".  
    When I start to learn about the SOA and MDD, the most frequent word I saw is "Pattern". Pattern shows the essence about SOA and MDD. It makes the software reuse concept in SOA and MDD to be implementable.
    To design a software well, the first thing we to do is to know the business.

    In SOA , the business model is listed as below:

    ------------------------------------------------------------------------------------------------------

                                                E-business asset model

    -----------------------------------------------------------------------------------------------------

    • Business patterns: identify the interaction between the users, businesses and data.
    • Integration patterns: tie multiple business patterns together when a solution can not be provided based on a single business pattern.
    • Composite patterns: represent the commonly occurring combination of Business patterns and integration patterns.
    • Application patterns: provide a conceptual layout describing how the application components and data within a business pattern or integration pattern interact.
    • Runtime patterns: define the logical middleware structure supporting an Application pattern. Runtime pattern depict the major middleware nodes, their roles, and the interfaces between these nodes.
    • Product mapping: identify the proven and tested software implementations for each Runtime pattern.
    • Best-practice guidelines for design, development, and management for e-business applications.

     From the E-business model, the different layer of software design and architecture can be seen clearly. The business patterns are on the top level of the model. It define the problem scope that the software should resolve.

     So , in my opinion the SOA's most difficult part is to select business pattern and have a overview towards the architecture of the software we are developing.
    May 12

    Meeting Minute on May 12, 2006

    Meeting Minute

     
    Date: Friday, May 12, 2006
    Primary Facilitator: Tony
    start: 9:00 P.M.
    Timekeeper: n/a
    End: 9:40 P.M.
    Minute Taker: Lei
    Venue: Lab 1109
    Attendee: Tony, Mike, Lei, David
     
    1. Objective
    讨论官方网站“大赛最新发布”的相关内容。
    确定下一阶段的任务和分工。
    2. Status
    自决定参加SOA大赛以来,已有3周时间。SOA对所有小组成员而言,都是一个全新的东西。在这段时间里,我们都努力的查阅相关资料,从各方面去了解SOA,了解本次大赛。至此,我们已对SOA有了一定的认识,现在需要明确下一阶段的任务,排出时间表来。
    3. Discussion items
    1) 关于官方的最新发布:
      根据官方的说明,现阶段似乎应该集中于商业计划、业务流程分析、系统高层设计等方面,而IBM会在以后的阶段提供ERP、CRP等软件。
    2) 确定当前的任务:
      Task1: IBM Redbook SOA with an Enterprise Service Bus in WebSphere Application Server V6,现在需要集中力量看第8、9、10章,然后完成sample的配置。
      Task2: 按照软件Rational Software Architect,并做一定了解,评估可否在架构设计中用到。
    3) 其他需要做的事:
      WS-I architecture document(URL,http://www.ws-i.org/deliverables/workinggroup.aspx?wg=sampleapps),其中有篇架构文档值得我们去参考。
      用友ERP资料浏览。
    4. Wrap up
    1) Tony和lei做Task1,争取在下周三前完成。
    2) Mike和David做Task2,应该在两到三天内给出一个初步评估结果。

     
    Published by Lei
    ----------------------------------------------------------------------------------------
     
    May 09

    Declaration of Hello World

     

    Several days ago, heard of the news of this exciting IBM SOA contest, conducted by teacher Yu, our "team of four" was quickly established and started to take this challenge, although exact time of outset is not memorable and to the world outside our lab we are entirely

    silent.

     

    Now with the help of this Blog, the precise date and time of this writing will be firmly recorded, as well as our formal declaration of participation. However, there is no ease  for ceremony, the truth we have to confess is that after days of exploration, what we achieved is nothing but a sip to the difficulty and challenge. Yet we are more determined, because or therefor we are more excited!

     

    And we'd like to mark our determination by this simple "Hello World" blog.