关于SOA的咨询实施方法论,SOA平台和云平台的融合,SOA咨询方法论和EA企业架构思想的融合在前面很多文章都有谈到。在多年的SOA咨询和实施中,经常遇到的一个问题就是SOA是不是已经过时了?而这个问题追溯本源还是客户没有真正理解SOA咨询方法论,SOA组件化架构带来的好处,而是把SOA或ESB理解为了一个简单的接口平台或数据交换平台,如果一开始的思维方式或规划就是错误或偏差的,那么最终效果自然大打折扣。
对于SOA平台带来的价值,从以下几个方面进行阐述:
首先是集成模式方面的,传统企业内部业务系统之间往往是通过点对点的网状集成模式,接口类型很多,数据库直接连接,存储过程,视图,JAVA
API,文件接口等;同时接口本身没有相对严格的接口规范和设计契约。导致后续的接口管理和运维都相当复杂。在转成总线式集成后,所有接口转化为服务,直接接入到ESB总线上,服务遵循严格的规范规范和契约文档,以形成企业内应用集成架构的标准管控环境。
从这个意义上讲,部分人会有进一步的疑惑,即如果原来的业务系统间已经通过标准的Web
Service服务进行集成,原来点对点模式也没有发现明显的问题,整个集成过程中也没有类似传统消息中间件的大量消息协议转换工作要做,那么为何还要接入到ESB服务总线而多一个中间步骤?对于这个问题主要分两方面阐述:
其一,原来点对点做服务的时候,往往每个服务都需要考虑日志记录,服务审计,服务的访问安全,传输安全和数据安全,服务的路由分发等一系列问题。而这些内容本质是可复用的,在ESB总线中可以统一接管,并通过灵活可配置的模式进行设置。既统一的SOA服务管控和治理的标准,也减轻了原生服务的设计开发工作量。
其二,ESB含了消息中间件的全部功能,正是有了异步消息处理机制后,可以实现业务系统间真正的松耦合架构,如果ESB平台全部集成的是同步服务,则很难算得上完整意义上的松耦合架构。这个是ESB总线另外一个强大的功能,但是我们在进行服务识别和服务设计的时候往往忽略。
其次,在复用层面,如果仅仅将SOA或ESB理解为一个集成平台,那么SOA平台本身的价值将大打折扣。SOA的核心思想一直在强调就是要找到可以复用的服务,这些服务满足离散,松耦合,无状态,粗粒度等特点,同时这些服务可以组装和编排,灵活满足业务变更的需要。
复用的难点在服务架构规划和服务识别上,当前很多做SOA咨询和实施的厂家基本来说都没有这个系统能力来做这个事情。这个不是简单的理论指导实践的事情,更像我上篇文章谈到的,是必须通过大量的SOA咨询和实施实践,再反向抽取出来的经验和方法论。而我们的SOA架构咨询优化能力就在于融合了EA企业架构,云平台,软件工程和组件化开发,IT管控和治理,BPM业务流程分析和业务建模多方面的知识总结出来的,实际可以操作落地的方法论和最佳实践。再简单点来说就是从端到端流程分析和建模入手,遵循业务驱动IT的核心思想,围绕业务流程,数据,应用,技术,集成核心维度,形成完整的服务架构规划和服务目录梳理。
SOA的实施最终要形成企业可复用的IT和服务资产库,这个是企业很重要的无形资产,在配合服务目录库和服务视图的可视化展示,真正让SOA的价值显性化出来。这个资产库积累的越成熟,那么我们后续做新建系统,功能模块或变更的工作量越小,越标准化。真正形成一个可持续发展的内部IT治理生态环境。
最后即SOA实施后灵活敏捷响应变化的能力,这种敏捷性主要体现在两个方面,一个方面是服务本身可复用而不需要重新进行大量的设计开发工作;其次是服务本身可以灵活的组合组装和编排,以满足一个完整的业务流程的需要。对于第二点对应到我们常说的BPEL和BPM工具环境层面,但是实际效果来看,理想化的BPM业务流程管理平台应用的并不好,同时大量的人工工作流引擎平台号称是BPM平台。这个实施不好的原因也从两方面分析:
其一,当前的很多套装BPM工具往往要求企业原来是白纸一张,即所有的思路和方法都完全按照我们BPM平台和工具的要求来做,这个对很多企业很难,毕竟很多企业原来已经建设和实施了大量的业务系统。如果要保留原来的,在单纯的服务层面容易整合和集成,但是到了BPM流程和完整功能层面,就很难做集成。同时BPM思想做出来的业务应用本身就是跨传统多个业务系统思想的,这种应用最终是体现在门户平台上,那么应用最终的管理和认责部门究竟是谁?这些都是很现实的问题。
其二,BPM要用好又包括两个方面的内容,首先是要有很深厚的业务流程规划和建模能力,这种人既要懂业务又要懂技术,类似BPMN2.0语言等都是衔接业务和技术两端的,业务和技术都懂你才能够建模出来。这比原来单纯的画业务流程图,梳理业务流程难的多,一般人都很难真正胜任;还有就是流程建模的内容最终是要通过调用底层ESB服务目录中的服务进行组装和编排,但是真正需要调服务的时候你才发现ESB上的服务很少或者原来实施的服务根本无法复用,实施一个BPM最终变成首先要协调大量的开发厂商,实施大量的服务封装和接入工作,而这些都是相当难以协调的,也导致理想化的BPM很难真正推广下去。
简单总结下,SOA在咨询和规划阶段的难点在于SOA服务的识别,SOA在实施阶段的难点是SOA集成商如何整体协调甲方和各个开发商资源,构建SOA治理和管控环境。前者的重点在要懂企业架构和信息化规划,懂业务;后者的重点在既要懂SOA治理和管控方法,又要有很强的项目群管理能力。
青春就应该这样绽放 游戏测试:三国时期谁是你最好的兄弟!! 你不得不信的星座秘密