业务组件(Business Component,BC)
yuyutoo 2024-10-29 17:28 1 浏览 0 评论
前期在《组件化业务模型(component business model, CBM)》(链接)中已经阐述了CBM对企业的专业化整合、柔性化运行、建设基于SOA的信息化系统等方面的作用。CBM由业务组件描述和构成,本文主要介绍业务组件的定义、作用、设计和验证方法。
一、业务组件的定义
业务组件(Business Component,BC)定义为:一个可以独立运行的构建企业的系统或功能模块。通俗来说,业务组件就是对达成特定目标,需要完成的一组紧密关联的工作事项的合集。
二、业务组件的作用
业务组件的作用,就是通过把企业功能组件化,从专业分工的角度构建企业业务能力网络,从而实现企业的专业化和柔性化。此部分内容已经在《组件化业务模型(component business model, CBM)》(链接)中阐述,本文不再赘述。
业务组件还可以提供后续的基于SOA服务目录清单,虽然在业务组件定义这一时期还没有细化到服务,但是业务组件化后,我们可以通过流程对业务组件之间的关系和交互进一步分析,确定为了完成一个完整的端到端流程业务组件之间必须存在的接口和数据的交互,而这些交互正是识别服务的关键点。业务组件不是孤立的而共同组装完成了流程的整合,而为了达到这个目的业务组件必须和暴露相应的服务能力,即我们说的组件本身的服务能力化。
三、业务组件的五要素
业务组件是组件化业务模型(CBM)的核心。二者关系见图1。
图1 CBM与BC的关系
业务组件包含五个要素(见图2):
- 目标/用途:为什么存在,创造什么价值,如何衡量;
- 活动:定期执行的是哪些简单的、具有凝聚性的活动;
- 资源:需要哪些知识、资产和人力资源;
- 治理:活动和资源是如何管理的;
- 服务:从其他组件获得哪些内容,以及向其他组件提供了哪些内容。
图2 业务组件五要素
三、业务组件的特点
业务组件具有如下特点:
- 业务组件有自己的输入/输出,在企业中承担特定的职责,对外提供服务;
- 业务组件是唯一的、不会重复的构造块,由一系列紧密关联的活动组成,可以单独运行;
- 企业所有的业务活动只能归属于某一个组件,组件间通过调用服务的方式进行协同与交互;
- 业务组件具有高内聚,低耦合的特点。所谓耦合,就是两个组件,其中一个变化将影响另一个也相应变化。所谓内聚,就是独立、单一且具有明确边界,业务组件之间相互隔离,改变其一,接口不变,系统不受影响。业务组件的高内聚,低耦合就是指业务组件之间通过低耦合方式进行链接,具备灵活、响应快、使用能力强的特点;其次,业务组件内各活动的具有高凝聚力,可对外提供效率高、质量好的服务。所以企业管理的目标就是降低业务耦合度(解耦),提升企业的内聚度(专业化)。耦合程度的分级可见图3。
图3 耦合程度的分级
四、业务组件的划分原则
业务组件是一系列不可分割的业务活动,那么如何划分业务组件呢?还是需要从业务组件的定义和特征着手,从业务组件是企业专业化的功能模块这个本质出发,从业务组件高内聚低耦合的特点出发,再综合考虑以下因素:
- 相似的业务活动;
- 使用类似的数据;
- 具有通用的处理流程;
- 通用的业务目标;
- 密切联系的组织单元通过组件共享,企业可以显著地改善运营效率并提高差异化竞争优势。
业务组件的划分需要深入了解业务之间的关系,并根据企业的战略、管理和执行各层面要求来进行归类划分。这需要有很好的业务分级分类能力,并考虑到业务间的数据流向和共享。
五、业务组件的颗粒度
业务组件的颗粒度用于表示业务所包含的业务组件的大小,是一个组织的管理颗粒度的反映,是一种达成共识的范式。颗粒度过大,功能复杂,灵活性小,升级困难(可以独立升级往往会作为确定一个业务组件范围的重要因素),很难实现重用;颗粒度过小,业务组件数较多,造成业务组件之间交互增多,管理成本提升,性能低下。因此找到一个合适的业务组件粒度是很重要的事情。
首先要说明的是,业务组件的颗粒度没有硬性指导的原则,因为这不是一个硬性或可以测量的事物。一般来说,业务组件的颗粒度更多应从业务直接实现的业务目标层面去考虑,业务组件的精简代表管理能力的聚焦、灵活度的提高、复杂度的降低。我们可以从以下几个角度确定业务组件的颗粒度:
- 业务特点:不同的业务特点导致业务颗粒度不同,如行政管理,各业务事项相对独立,业务事项间松耦合特点明显,可能会业务组件较多;
- 抽象级别:不同的抽象层级导致业务颗粒度不同,如总部级的与部门级的;
- 避免陷入根据日常业务出现的频率、耗时、工作量等去评价颗粒度的大小。不能单纯的把现频率高,耗时多的业务定义为一级组件。应从该类业务实现的目的、价值去评估组件的大小;
- 对于总是固定配合的几个业务,且任何一个业务都不被此几项业务以外的其他业务调用,则建议此几项业务合并为一个组件。一个业务组件的输出必须为多个业务组件使用,如果一对一使用,代表该组件可合并。
六、业务组件的验证方法
- 业务场景十字分析法
业务场景十字分析法(见图4)类比于软件测试的白盒测试,即通过“测试用例”(流程场景)来验证组件外部的流程和内部业务活动,验证组件的正确性。
对于业务组件的CBM图,首先相同业务域下的业务组件应能够串接,其次不同业务域下的组件间的交互关系,应体现在同一层次,即战略层面的不同业务域交互应都体现在战略层,管理层面的不同业务域的交互应都体现在管理层,执行层面不同业务域的交互应都体现在执行层,在交互过程中不应有斜线关系。
图4 业务场景十字交叉法
- 业务组件依赖性分析法
业务组件依赖性分析,类比于软件测试的黑盒测试,即不关心组件内部,而通过验证外部接口关系分析(组件的输入、输出、支持三方面)、验证组件正确性。
图5 业务组件依赖性分析图示
通过连接业务组件的输入输出,可以分析业务组件在职能层级上是否准确。一般来讲,战略、管理和执行层的业务组件在连接上具有图6的特点。
图6 业务组件不同职能层级特点
相关推荐
- MySQL5.5+配置主从同步并结合ThinkPHP5设置分布式数据库
-
前言:本文章是在同处局域网内的两台windows电脑,且MySQL是5.5以上版本下进行的一主多从同步配置,并且使用的是集成环境工具PHPStudy为例。最后就是ThinkPHP5的分布式的连接,读写...
- thinkphp5多语言怎么切换(thinkphp5.1视频教程)
-
thinkphp5多语言进行切换的步骤:第一步,在配置文件中开启多语言配置。第二步,创建多语言目录。相关推荐:《ThinkPHP教程》第三步,编写语言包。视图代码:控制器代码:效果如下:以上就是thi...
- 基于 ThinkPHP5 + Bootstrap 的后台开发框架 FastAdmin
-
FastAdmin是一款基于ThinkPHP5+Bootstrap的极速后台开发框架。主要特性基于Auth验证的权限管理系统支持无限级父子级权限继承,父级的管理员可任意增删改子级管理员及权限设置支持单...
- Thinkphp5.0 框架实现控制器向视图view赋值及视图view取值操作示
-
本文实例讲述了Thinkphp5.0框架实现控制器向视图view赋值及视图view取值操作。分享给大家供大家参考,具体如下:Thinkphp5.0控制器向视图view的赋值方式一(使用fetch()方...
- thinkphp5实现简单评论回复功能(php评论回复功能源码下载)
-
由于之前写评论回复都是使用第三方插件:畅言所以也就没什么动手,现在证号在开发一个小的项目,所以就自己动手写评论回复,没写过还真不知道评论回复功能听着简单,但仔细研究起来却无法自拔,由于用户量少,所以...
- ThinkPHP框架——实现定时任务,定时更新、清理数据
-
大家好,我是小蜗牛,今天给大家分享一下,如何用ThinkPHP5.1.*版本实现定时任务,例如凌晨12点更新数据、每隔10秒检测过期会员、每隔几分钟发送请求保证ip的活性等本次分享,主要用到一个名为E...
- BeyongCms系统基于ThinkPHP5.1框架的轻量级内容管理系统
-
BeyongCms内容管理系统(简称BeyongCms)BeyongCms系统基于ThinkPHP5.1框架的轻量级内容管理系统,适用于企业Cms,个人站长等,针对移动App、小程序优化;提供完善简...
- YimaoAdminv3企业建站系统,使用 thinkphp5.1.27 + mysql 开发
-
介绍YimaoAdminv3.0.0企业建站系统,使用thinkphp5.1.27+mysql开发。php要求5.6以上版本,推荐使用5.6,7.0,7.1,扩展(curl,...
- ThinkAdmin-V5开发笔记(thinkpad做开发)
-
前言为了快速开发一款小程序管理后台,在众多的php开源后台中,最终选择了基于thinkphp5的,轻量级的thinkadmin系统,进行二次开发。该系统支持php7。文档地址ThinkAdmin-V5...
- thinkphp5.0.9预处理导致的sql注入复现与详细分析
-
复现先搭建thinkphp5.0.9环境...
- thinkphp5出现500错误怎么办(thinkphp页面错误)
-
thinkphp5出现500错误,如下图所示:相关推荐:《ThinkPHP教程》require():open_basedirrestrictionineffect.File(/home/ww...
- Thinkphp5.0极速搭建restful风格接口层
-
下面是基于ThinkPHPV5.0RC4框架,以restful风格完成的新闻查询(get)、新闻增加(post)、新闻修改(put)、新闻删除(delete)等server接口层。1、下载Thin...
- 基于ThinkPHP5.1.34 LTS开发的快速开发框架DolphinPHP
-
DophinPHP(海豚PHP)是一个基于ThinkPHP5.1.34LTS开发的一套开源PHP快速开发框架,DophinPHP秉承极简、极速、极致的开发理念,为开发集成了基于数据-角色的权限管理机...
- ThinkPHP5.*远程代码执行高危漏洞手工与升级修复解决方法
-
漏洞描述由于ThinkPHP5框架对控制器名没有进行足够的安全检测,导致在没有开启强制路由的情况下,黑客构造特定的请求,可直接GetWebShell。漏洞评级严重影响版本ThinkPHP5.0系列...
- Thinkphp5代码执行学习(thinkphp 教程)
-
Thinkphp5代码执行学习缓存类RCE版本5.0.0<=ThinkPHP5<=5.0.10Tp框架搭建环境搭建测试payload...
你 发表评论:
欢迎- 一周热门
- 最近发表
-
- MySQL5.5+配置主从同步并结合ThinkPHP5设置分布式数据库
- thinkphp5多语言怎么切换(thinkphp5.1视频教程)
- 基于 ThinkPHP5 + Bootstrap 的后台开发框架 FastAdmin
- Thinkphp5.0 框架实现控制器向视图view赋值及视图view取值操作示
- thinkphp5实现简单评论回复功能(php评论回复功能源码下载)
- ThinkPHP框架——实现定时任务,定时更新、清理数据
- BeyongCms系统基于ThinkPHP5.1框架的轻量级内容管理系统
- YimaoAdminv3企业建站系统,使用 thinkphp5.1.27 + mysql 开发
- ThinkAdmin-V5开发笔记(thinkpad做开发)
- thinkphp5.0.9预处理导致的sql注入复现与详细分析
- 标签列表
-
- mybatis plus (70)
- scheduledtask (71)
- css滚动条 (60)
- java学生成绩管理系统 (59)
- 结构体数组 (69)
- databasemetadata (64)
- javastatic (68)
- jsp实用教程 (53)
- fontawesome (57)
- widget开发 (57)
- vb net教程 (62)
- hibernate 教程 (63)
- case语句 (57)
- svn连接 (74)
- directoryindex (69)
- session timeout (58)
- textbox换行 (67)
- extension_dir (64)
- linearlayout (58)
- vba高级教程 (75)
- iframe用法 (58)
- sqlparameter (59)
- trim函数 (59)
- flex布局 (63)
- contextloaderlistener (56)