SOA业务价值的实现

SOA团队 2020-03-16

做了SOA实施很多年,不得不再来回顾SOA业务价值这个话题,SOA是一种商业模式,一种架构方法,一种方法论。而企业实施SOA真正的业务价值又体现 在哪里?有多少企业实施SOA后真正体现了业务价值?至少从最近几年SOA的实施效果来看,SOA要走到真正能体现业务价值的实现和实现业务敏捷性还有很 长的一段路要走。

在实施SOA的初期,很多时候都仅仅是EAI企业应用集成的一个延伸,包括SOA本身产品也仅仅是消息中间件的进一步发展。从这个层面上SOA很难发挥其真正的业务价值,而对于SOA的核心业务价值一定是体现可重用资产库的积累,业务敏捷方面的内容。

SOA本身是一种架构方法学,该方法学不是对已有的面向结构,面向对象方法的否定,而是一种延伸,这种延伸的重点即在于流程驱动IT,业务驱动架构,从端到端的流程到业务组件化和服务化,又从可重用的业务组件和服务来快速构建业务应用。

在SOA架构方法出来后,构建IT系统的时候我们会更加关注业务流程梳理,业务架构和业务建模,这也是能够真正实现业务和技术解耦的基础,没有这层解耦就谈不上后续的快速服务组合和编排。而在整个方法里面,业务组件本身就占据了很重要的位置,业务组件提供业务能力,而业务能力本身又以服务的方式提供出来。这种架构方法必须要引入到系统内,从一个系统的构建之初就采用这种方法来构建应用,包括端到端流程的分析,业务建模和业务组件,服务组件和服务识别,跨组件的数据CRUD分析,组件间的服务交互等。

对于遗留系统的SOA化改造和集成,往往很难对已有历史系统进行全SOA化改造,只能对现有的系统集成接口进行SOA化服务改造,在这种思路下我们很难真正的去分析和识别各个业务系统已有的业务组件和业务能力。也很难遵循我们的从顶向下的端到端流程分析和建模的思路进行,这自然导致了业务组件和业务服务无法真正的有效识别,后续的服务编排和流程编排更难以真正落地。要知道BPEL服务编排的重点是业务服务,而不是数据接口和数据服务。

业务价值1-形成真正的服务资产库

可以讲形成真正可复用的服务目录和服务资产库是SOA实施的一个重要业务价值体现,SOA一直在强调服务的粒度和服务的可重用性,服务的每一次重用都是在降低IT系统建设和实施的成本。服务资产库正是将各个业务系统可重用的业务能力提取出来以服务的方式提供出来。

当我们在构建新的业务系统的时候,我们就优先考虑有哪些服务资产或能力可以借用,有哪些是我们需要全新构建和开发的功能。能复用的服务和资产越多,我们构建IT系统的成本和时间越短。

服务资产本身就是业务组件和业务能力,用户或新构建的业务系统并不会关注提供这个能力的业务系统(SOA本身谈的透明性),这种服务本身就是粗粒度的,实现机制完全黑盒的。SOA本身重点就在于提供这个服务目录,而不是自身去实现这个服务。如果SOA和云计算结合,那则才是既自身产生这个能力,也提供这个服务。

服务资产库即能力提供中心,而支撑这个能力提供中心的还是各个已有的业务系统,是各个业务系统将可复用的能力抽取出来注册到了ESB企业服务总线上。为了更好的为ESB提供这种服务和能力,对各个业务系统的组件化和模块化开发要求自然就更高。

业务价值2-业务敏捷性和效率

业务流程或业务的变化可以通过BPEL服务编排调整快速适应,这是我们谈SOA能够实现业务敏捷性的基础。但是这条路往往是任重道远。一个全新的业务功能实现完全可以通过服务组合和编排,流程的编排来实现,这是我们的期望,但是却相当有难度。

首先是我们的服务资产库是否足够完备?这里面涉及到两个方面的问题,其一是业务服务的识别而不是单纯的数据服务,要知道数据服务很难真正用到服务的编排。其二是服务的识别过程本身是否从流程分析入手,识别出业务组件,再来分析流程驱动的组件间的交互,这样分析出来的服务才真正支持从底向上的组装。

其次要实现业务的快速构建,通过单纯的BPEL是远远不够的,在BPM业务流程管理,BPMN2.0推出来后,这个方面前进了一步。可以部分实现从业务流程建模到IT实现的平滑过渡。但是这里面又有一个关键问题,即规则引擎,这块做不好快速应用开发,流程编排和组装仅仅是泡影很难真正落地。接触了太多的快速开发平台,企业级应用不是简单的增删改查,如果规则无法剥离,无法复用,就谈不上复杂业务流程本身的复用。

打破业务系统的边界,解决烟囱式的竖井结构,不是单纯的服务集成,而是实现跨系统的流程集成。这个时候业务系统下沉为能力单元,浮在上面的是可组装和编排的流程和应用。孤立的业务系统的概念越强,业务敏捷性的推动就越发困难。

如何落地实施的问题

对于落地的问题也是我们考虑的比较多的一个问题,方法论再完美如果无法落地那么也仅仅是空中楼阁。而落地的过程本身又是一个总体规划和分布实施的过程,前期的基础打的越好后续越容易实施落地。对于具体的落地,主要考虑如下几方面内容:

1.流程驱动业务架构思路,跨业务部门和系统边界,进一步分析和识别业务服务。

2.整合已有的服务资产,形成可复用的服务资产库。

3.弱化各个业务系统的概念,业务系统变化为业务能力单元,而服务能力又集成到ESB。

4.抽取各个业务系统可复用部分,进一步下沉和集中化,形成企业内PAAS云平台。

5.选择合适的新业务系统或业务功能,采用BPM等工具,借助已有服务能力构建应用。

6.逐步迁移传统的业务功能和业务单元。

返回上页