架构与框架

架构与框架

 作者:徐景周


1. 架构

        软件体系结构通常被称为架构,Garlan & Shaw模型的基本思想是:软件体系结构={组件(component),连接件(connector),约束(constrain)。其中,组件可以是一组代码,如程序模块;也可以是一个独立的程序,如数据库服务器。连接件可以是过程调用、管道、远程过程调用(RPC,Remote Procedure Call)等,用于表示组件之间的相互作用。约束一般是对象连接时的规则,或指明组件连接的形式和条件。

 

        层次式软件体系结构是最广泛使用的一种架构方式,它将大型软件系统按照功能的扩展性,分成若干层。每一层为其上层服务,并作为下一层的客户。最底层为“内核”,完成最为基本的公用操作。各层向外逐渐进行功能扩展,满足不同系统规模的需求。每一层最多只影响两层,也为软件重用提供了支持。例如:OSI(开放式系统互联参考模型)。

2. 框架

        架构是问题的抽象解决方案,它关注大局而忽略细节;而框架通常是半成品,还必须根据具体需求进一步定制开发才能变成完整的应用系统。框架亦可称为应用架构,框架是在特定领域中基于体系结构的可重用设计,也可以认为框架是体系结构在特定领域下的应用。

 

        框架包括了一组抽象概念,这些抽象概念来源于问题领域。框架使得这些抽象概念相互协作,并提供了一种扩展的形式,以实现重用。框架在抽象概念上进行工作,定义抽象概念之间的协作方式。框架和普通软件的区别在于,用户可以通过扩展来重用该框架,这些扩展点的设计是框架设计的核心。

 

1) 框架主要技术

        框架设计的主要技术包括共同点、扩展点和设计模式

        共同点是业务应用中反复出现的通用主体,存在于特定领域和跨领域框架层中,表现形式为具体类。如果应用的某些部分重复出现,且其中又没有太多变化,那么就可以将它从应用中提出,作为共同点封装成框架的组件,从而促进了代码重用。

        扩展点是框架中频繁变化的部分,在框架中它没有被实现只起到占位符的作用,最终由基于框架之上的具体业务应用负责为扩展点提供它们各自的实现,所以框架在每个业务应用中的行为并不相同,表现形式为抽象类或一组接口。

        设计模式描述了特定场景下重复发生问题的解决方案,它使人们可以更加方便地复用成功的解决方案而不必重新设计。

2) 框架主要方法

        框架设计的主要方法包括白盒框架、黑盒框架和灰盒框架。基于继承的框架被称为白盒框架。所谓白盒即具备可视性,被继承的父类的内部实现细节对子类而言都是可知的。利用白盒框架的应用开发者通过衍生子类或重写父类的成员方法来开发系统。子类的实现很大程度上依赖于父类的实现,这种依赖性限制了重用的灵活性和完全性。但解决这种局限性的方法可以是只继承抽象父类,因为抽象类基本上不提供具体的实现。白盒框架是一个程序骨架,而用户衍生出的子类是这个骨架上的附属品。基于对象构件组装的框架就是黑盒框架。应用开发者通过整理、组装对象来获得系统的实现。用户只须了解构件的外部接口,无须了解内部的具体实现。另外,组装比继承更为灵活,它能动态地改变,继承只是一个静态编译时的概念。灰盒框架是白盒框架与黑盒框架的混合使用。各框架方法间的关系和使用方式,如表1-1 所示。

 

3. 平台框架

        框架不是一个简单的软件或者一个功能专一的系统,而是一个可以为其它系统和软件提供各种接口和功能的框架。首先,框架是为了企业的业务发展和战略规划而服务的,它服从于企业的愿景。其次,框架最重要的目标是提高企业的竞争能力,包括降低成本、提高质量、改善客户满意程度等方面。最后,框架也是在进行有效的知识积累。

 

        平台框架通常基于灰盒框架方法,分离出跨领域的共同点部分和特定领域的扩展点部分,上层业务应用通过组合它们来满足不同的业务需求。

  

 

猜你喜欢

转载自blog.csdn.net/jz_x/article/details/9100863