项目管理者联盟 软件总线和软件工厂项目管理者联盟 项目管理者联盟 直到目前为止,软件开发仍然属于手工作坊阶段,如果要和制造业的水平相对应的话,基本上是处于蒸气机发明之前的水平。随着软件开发技术的发展,软件开发也将象制造业一样,步入"工业"时代。不过对于软件开发来说,机器仍然是代码,只不过这些代码是用来代替开发人员的编码活动的,他具有比手工编码更高的生产力。我们把这些高产量的"机器"描述成现代化的软件工厂。那么,软件工厂到底是什么?要了解软件工厂,我们需要先了解软件总线的概念。项目管理者联盟 项目管理者联盟 COP仅仅只是提出了一个系统划分的基础,要构成一个完整应用,光有组件和服务还不够,还需要将组件和服务以一种有效的方式组织起来,有些文章把这种组织性的代码称为 Fabric,有结构和组织的意思。而在我们的文章中,称之为软件总线(bus)。
软件总线是什么?他和计算机的总线一样,它负责在各个组件中传递信息流,将各个组件组织起来,完成一个具体的任务。总线是一个抽象的概念,在实际中总线也是由具体的技术构成。例如,一个总线可能是一段代码,负责调用各个组件;总线也能是一个消息系统,负责收集和分派消息;总线也可能是一个工作流系统,负责系统信息的流转;总线还可能是一个JMX,负责将消息路由到目标组件。但无论总线的实现技术是什么,总线的特点就是采用一种松耦合的方式将组件组织起来。这样,总线本身和挂接在总线上的组件就是松耦合的,至于组件挂接到总线的形式,也就是我们之前讨论过的服务和服务适配器要做的事情了。项目管理者联盟 项目管理者联盟 例如,目前的软件总线有三种可能的实现:直接调用/远程调用/WebService,MOM,以及工作流,根据应用系统的特点可以采用不同的总线实现。例如以调用为主的总线适用于那些流程比较明确的应用,因为流程是硬编码的,变化起来相对麻烦一些。工作流为主的总线适用于流程比较灵活,需要复杂的分支和人为的干预。MOM为主的总线则适用于大型的分布式,或是异构的应用,不同的应用之间以一种松散的方式进行协作。但是无论采取哪一种的总线实现方式,组件和服务是不变的,变化的是服务适配器,MOM的服务适配器和工组流的服务适配器是不同的。MOM的服务适配器主要的工作是将消息中的内容翻译为POJO,并调用服务;而工作流的服务适配器可能就只是一个基于当前工作流状态的调用。这样形成的系统架构就是相对稳定、松散耦合的,不论是组件发生变化,还是总线的技术发生变化,只要服务和总线的规范是稳定的,整体的软件系统就是稳定的。而服务和总线规范才是软件组织的核心竞争力所在,而这也正是软件总线的主要目的。项目经理博客 项目管理者联盟 软件工厂在组件和软件总线的基础上发展,并根据组件和软件总线的技术特点,定义了一系列的管理活动,以提高开发效率。软件工厂是我们定义的软件质量框架的一种实现方式。对于不同的软件组织来说,根据自身的研发特点来定义软件工厂的构成是非常重要的。具体的内容包括管理实践的选择,组件的积累,软件总线的技术实现。在本系列文章中推荐的前两项实践都属于管理实践范畴的内容,而第三项实践则偏重于建立软件工厂的底层支撑框架。项目管理者联盟 talent.mypm.net 软件工厂的概念代表了一种新的软件开发模式。他的优势在于能够把技术和管理结合起来,提高生产力。 项目管理培训
|