这篇文章借鉴软件开发里面AOP面向切面编程的思路。对于AOP即是指可以通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术。AOP实际是GoF设计模式的延续,设计模式孜孜不倦追求的是调用者和被调用者之间的解耦,提高代码的灵活性和可扩展性,AOP可以说也是这种目标的一种实现。
AOP面向切面编程
AOP编程的核心意图是将日志记录,性能统计,安全控制,事务处理,异常处理等代码从业务逻辑代码中划分出来,通过对这些行为的分离,我们希望可以将它们独立到非指导业务逻辑的方法中,进而改变这些行为的时候不影响业务逻辑的代码。
在ESB或API网关里面,为了实现服务安全,日志,流控等能力,我们同样是采用了类似AOP横切的思路,通过自定义可扩展的各类插件来实现各种拦截,完成这些共性化能力的处理。对于API服务开发者来说只需要关心服务逻辑的实现,而不再需要关心具体的安全,日志,性能等非功能性需求。
对于横切思维,我们还是给一个简单的定义,即在分析诸多事物的生命周期发展过程中,分析端到端流程业务的流转过程中,在关键的阶段点进行拦截形成有价值的聚合点,通过聚合点来实现各类统一管控和增值服务 。横切思维需要彻底打破我们传统动态单事物动态发展观察视角,从单事物到事物群,充分去识别共性,讲共性进行抽象和聚合,形成有价值的服务能力。
我们可以来看下横切思维模式具体有哪些实践
在项目型或强矩阵型组织中的横向管理协同
在一个强矩阵管理下,可以看到对于UI,架构,测试等各种资源全部归属到产品线和项目,这些资源完全是按照产品生命周期进行联动也最敏捷响应客户需求。但是也可以看到容易导致的就是各个产品线的UI不统一,架构和设计标准不统一等各类问题。因此需要考虑横向建立各类跨产品线贯通的工作小组,类似UI工作组,TPG工作组等来实现共性资源的整合和复用,一个是标准化,一个是避免各类重复投入。
全生态链的运营服务类平台构建和运营
在互联网里面,我们可以看到很多全生态链构建和运营的平台,类似的供应链端到端服务平台,电商类平台,二手车交易平台等。而这些服务平台里面可以看到在对各方资源进行整合后,其核心不再是简单的赚取简单的交易或服务费用,而是在资源整合后,横向切分后充分挖掘有价值的能力聚合点。
类似你做供应链运营服务平台,你可以推出统一的大宗交易集采,你做58同城你可以推出你自己的58到家自营服务。你做二手车交易,你可以推出你自己的信贷或保理平台等等。即通过资源整合后,充分去发掘整个生态链里面的关键节点并进行横切,来聚合和形成自营的服务能力。
企业各种类型的服务共享中心
对于企业来说,各类共享服务中心是一直以来的一个热点,类似人力资源共享中心,财务共享中心,采购共享中心等,而所有共享中心建立本质就是讲原来企业类的涉及到的各类流程中的共性资源抽取出来,充分分析后形成可共享的服务能力再开放出去提供服务。
共享可以是简单的对已有能力的聚合,但是更多是类似云化的思路,即对已有能力进行彻底剥离,再剥离后充分重构形成完整的统一能力提供。这才是共享中心最终的价值体现。
原文 http://blog.sina.com.cn/s/blog_493a84550102z6hk.html