之前忙于搬家移居,无暇顾及博客,今天终于得闲继续我的“政治课”了,希望之后至少能够补完TOGAF方面的内容。从前面文章可以看出,笔者并无太多能力和机会对TOGAF进行理论和实际的联系,仅可对标准的文本进行翻译和整理,间或掺杂点个人理解,望各位看官海涵,如能有所帮助则足以欣慰。
架构构建块可以说是企业架构内容的核心,也是企业架构开发方法的最终产物。与此相比,架构交付物所面向的是企业架构开发过程,架构制品则可以看作是企业架构内容的表现形式和使用方式,而唯有构建块则是企业架构内容本身。企业架构的主要作用就是在企业中的各个领域内(业务、数据、应用和技术)寻找和定义可重用的资源模块,并将这些模块结合为一个有机的整体,从而使得各个干系人对于企业情况具有准确清晰的共识,并促进企业中的信息资源的共享和优化。这些企业各个领域中的可重用模块就是架构构建块,也是架构资源库中的各种架构制品所描述的本体。
在TOGAF中,构建块所共有的特性被定义如下:
除了上述通用的特性之外,作为一个良好的构建块还需要具有如下特点:
与软件技术中的接口和实现类之间的关系相类似,构建块的边界定义和规范说明与其具体实现方式之间也是松耦合的,也就是说可以通过多种实现方式来针对一个构建块进行实现,而不会影响到构建块的边界定义和规范说明。为了达成这种灵活性,在TOGAF中构建块被分为架构构建块和解决方案构建块两类,其中前者用于对构建块的需求进行描述,而后者则在实现的层面对能够实现构建块的解决方案进行描述。需要注意的是,由于构建块的独立存在是没有意义的,如果要发挥其作用往往需要其他构建块的配合,因而针对作为构建块“接口定义”的架构构建块应具有一定的稳定性,而更加倾向于实现的解决方案构建块则更加灵活和多样。
架构构建块与架构连续体相关,并且通常作为架构开发方法的应用结果而被定义或选择。架构构建块应具备如下特性:
架构构建块的内容至少应包括:
解决方案与解决方案连续体相关,并通过采购或开发的方式而获得。解决方案构建块应具备如下特性:
解决方案构建块的内容至少应包括:
虽然构建块是针对企业中各项资源和能力的组合,但针对这些内容的组合方式在不同的组织中却各不相同,并且组织也应该按照各自的特点对各个构建块进行安置,从而使构建块能够得到最大化的利用,因为一个针对构建块的明智选择和使用将会使得企业改善其对遗留系统的整合、互操作性以及在新系统和软件的创建中灵活性。从某种意义上说,所谓架构就是一系列描述在架构模型之中的构建块,以及一份关于这些构建块是如何组合在一起来达成所有业务需求的说明,而这些架构中的构建块描述了用于解决特定业务问题的范围和方法。在具体架构的设计过程中,针对构建块的使用需要遵循如下几个通用原则:
通过上述原则,企业可以将构建块组合为用于解决业务问题的各个具体架构,而针对作为架构组成单位的构建块的确定也是非常重要的。针对构建块的识别过程包括寻找企业中进行相互交互的各个能力或资产,并在之后将他们组合在一起,在这个过程中我们需要对如下几点进行考虑:
由于详细的功能需求、约束以及现实产品的可得性并不是在一开始就可以被定义清楚的,并且这些方面对于构建块的内容和选择也有着非常大的影响,因而构建块的定义过程必将是一个迭代过程,并伴随着架构开发方法的进行而逐步演进。总的来说,这一过程可以概括为:在架构开发方法的进行过程中,首先是架构构建块被确定出来,用以达成各项业务目标和阶段目标;接下来,这些架构构建块将会通过后续的迭代过程而得以改善,并最终形成一系列可由开发或购买而得的解决方案构建块。由此可见,构建块的详细程度与架构开发所处的阶段有着非常紧密的联系,但我们还需要注意,一个构建块的详细程度还与其所组成的架构所面对的目标有着关联,例如在呈现企业的能力时,一张清晰简洁的图片将胜过上百页的详细描述。
架构开发方法的各个阶段对于构建块的定义和确定有着紧密的联系,特别是架构愿景、业务架构、信息系统架构和技术架构这几个阶段,而包含在这些企业架构开发方法阶段之中对构建块进行定义和演进的步骤总结如下:
架构开发方法阶段 |
构建块定义和演进步骤 |
架构愿景 |
选定候选构建块的高层次模型 |
业务架构 信息系统架构 技术架构 |
选定参考模型、视角和工具 |
开发基线架构描述
|
|
开发目标架构描述
|
|
进行差距分析
|
|
定义各路线图组件 |
|
通观整个架构景观来明确和解决相关影响 |
|
进行正式的干系人审查 |
|
确定最终架构 |
|
创建架构定义文档 |
|
机会和解决方案 |
将构建块的差距与用于弥合这些差距的工作包联系起来 |