基于SOA组件化架构-组件化和平台化

发表于:2012-05-24来源:新浪博客作者:人月神话点击数: 标签:soa
传统的软件开发我们看到能力复用层面是比较差的,对于系统管理,工作流引擎,公共技术组件库,UI库,技术架构和平台往往都需要自己搞一套,这本身和SOA复用的思想也是违背的。按SOA业务和流程驱动IT,CBM组件化业务模型的思路,后续最理性的就是逐步淡化掉

  传统的软件开发我们看到能力复用层面是比较差的,对于系统管理,工作流引擎,公共技术组件库,UI库,技术架构和平台往往都需要自己搞一套,这本身和SOA复用的思想也是违背的。按SOA业务和流程驱动IT,CBM组件化业务模型的思路,后续最理性的就是逐步淡化掉业务系统的概念。整个企业就一个业务大系统,在这个业务大系统里面剩余的仅仅是业务功能组件。

  原有的系统构建和结构可以描述为如下:

基于SOA组件化架构-组件化和平台化

  基于组件化架构的思路,需要解决的是淡化业务系统的概念,强化业务组件的概念。同时对业务系统内部已有的业务功能模块进行解耦,业务组件通过注册到ESB上的业务服务进行交付。而基于平台化的思路,则是原有业务系统构建过程中所有和业务无关的内容都进行平台化建设,所有平台化层面的内容都进行统一规划和建设,为所有的业务组件提供公共服务能力。如下图:

基于SOA组件化架构-组件化和平台化

  在这种模式下可以看到业务系统完全进行了拆解,真正一个业务系统的构成需要多个技术能力支撑单元和业务单元共同组装来完成。对于用户来讲可能看不到太大的变化,但是在内部实现细节上则进行了平台化和标准化。理想的业务系统构建模式将变化为基于一个完整的提供技术,平台,前台展现各种支撑能力的空应用容器中开发满足各个业务需求的业务组件。

  系统不再是后续的交付单位,业务组件才是交付单位。业务组件建设完全只关注业务,不关注技术底层和各种平台层能力的实现。业务组件通过服务接口和各种底层支撑能力,外层挂接能力进行集成。业务组件高度自治,可以独立进行分析,设计,打包部署和运行。

  公共技术组件和平台层组件完全独立部署和运行。其能力的提供一方面可以是以注册在ESB总线上的服务的方式,也可以是业务组件直接内嵌平台层组件提供的代理模块和轻量API接口。底层组件提供全局的数据建模和数据存储,这些数据跨所有的业务组件共享。

  外层应用框架是一个完全可以运行起来的类似门户的框架,其自身已经包含了登录认证,权限,菜单管理等各种基础功能。外层应用框架实现各个业务组件的动态装载和使用。企业内应用构建完全实现AppStore化。而对于ESB企业服务总线,则既实现业务组件和底层平台层的服务集成,也实现业务组件间的服务集成。技术集成以消息和轻量的rest方式实现,而业务集成则以传统的soap webservice方式实现。

原文转自:http://www.ltesting.net