在面向服务的开放式平台架构中进行业务功能的修改时,只需要首先定位到具体
的内核扩展,之后对相应的内核扩展进行修改,修复Bug或是改变具体的业务逻辑。
在面向服务的开放式平台架构中,对任何一个内核扩展的修改都不会影响到系统的其
他部分。如果需要对内核扩展的契约进行改变,在不改变具体请求-响应对的语义的
情况下,依然不需要进行修改,否则需要对访问使用到这一内核契约的内核扩展进行
一定的修改。最后,需要根据具体情况修改表示层。
综上,面向服务的开放式平台架构在应对业务功能的添加和改变时相对于传统三
层架构而言具有一定的优势。
4.4. 特征
相对于其他经典的软件体系结构而言,面向服务的开放式平台架构具有如下特
征:
4.4.1. 开放式平台
面向服务的开放式平台架构在内核、服务层、表示层三个层次上实现了开放式平
台,也因此具备较高的可扩展性。
在内核级别上,内核扩展和内核监视器由微内核进行协调,内核扩展间的交互通
过统一的请求处理方式进行,内核监视器的监视操作针对请求和响应报文进行,因此
新的内核扩展和内核监视器可以很容易地添加至系统中。从内核这一层次来看,开放
性主要由高度松散耦合的插件组织模式来提供。微内核也向上层模块屏蔽了内核扩展
和内核监视器的细节,上层模块可以以统一的方式发出请求实现服务的调用。内核级
别的开放式如图 4-13所示。
图 4-13:内核级别开放式
在服务层级别上,借助面向服务体系结构提供的中立的契约,可以实现跨平台的
服务调用。而借助特定平台上的 SOA实现(如.Net平台上的WCF)也可以很容易地发
布服务。SOA 本身具备的良好的分布式部署支持也在这一层次上提供了良好的可扩展
性。服务层级别开放式如图4-14所示。
图 4-14:服务层级别开放式
在表示层级别上,主要依赖公开的开放平台支持来确保可扩展性。这一相对高层
的扩展方式拥有最大的灵活度,目标开放平台应用可以基于任何平台上的任意一种实
现,通过中立的契约连接至开放平台,从而实现功能的扩展。表示层级别开放式如图
4-15所示。
图 4-15:表示层级别开放式
4.4.2. 架构变化
面向服务的开放式平台架构支持架构的变化,可以添加或移除特定的层,同时仍
然保留相对较高的可扩展性。例如,对于开放式平台的三个层次而言,可以仅保留内
核,在内核之上直接构建表示层,这样仍然可以借助内核提供的内核扩展和内核监视
器的发现、装配功能确保系统的可扩展性。或是移除表示层,直接由服务层发布服务,
将系统作为纯粹的业务提供者,供其他模块调用,这样可以借助内核和服务层提供的
松散耦合特性来确保可扩展性。
4.4.3. 底层分布式支持
面向服务的开放式平台架构提供了内核级别的分布式支持。内核扩展和内核监视
器不必绑定到具体实现,完全可以以透明代理的方式存在, 连接到远程进程实现业务,
从而实现分布式部署。
4.4.4. 粗粒度约束
面向服务的开放式平台架构并不限定内核扩展和内核监视器的实现方式。内核扩
展和内核监视器可以以任何语言进行开发。同时,架构也不限定内核扩展和内核监视
器需要具有特定的体系结构,内核扩展和内核监视器可以完全着眼于具体业务,而不 面向服务的开放式平台架构(10):http://www.751com.cn/jisuanji/lunwen_3091.html