首页 > 应用开发 > IT综合 > 面向对象的分布式开发系统 (四) (转)
.NET/Develop/read_article.ASP?id=20735">返回首篇
“流水线式”经常在讨论cpu 技术时被谈及。在CPU 设计中,非流水线式设计模式的问题在于:每个单元指令必须在另一个指令开始前完成。这样会有很多的空闲时间片,没有效率。而流水线式的最基本思路在于充分利用CPU 内部空闲的组件,以至于可以同时处理多了单元指令,减少空闲时间片。也就是说,单元指令之间无须等待。非常明显,这个技术可以极大程度地提高硬件效率。
在SoftEngine 内借用了这种思路,将任务代替了指令,将功能对象代替了硬件组件。流水线式设计所运用的基本理论:将大的任务划分成一系列可交迭的、较小的任务,同时被一些功能对象分布处理。所以,在bug.net/">SoftEngine 基础上,应用的设计人员,需要分析应用的处理流程,在设计阶段划分大任务,提高应用系统的性能。SoftEngine 可以有效地支持这种先进的设计模式 。
举个例子,在普通的开发设计( 非流水线式设计) 中,假设一个任务需要4 个步骤完整,
见下图:
XML:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />2003-8-281113180.png" o:title="unpipe">
图表 11 Non-pipelining mode
整个流程的处理时间需要135ms ,请求的返回时间也是135ms 。不难看出,第一步虽然耗时最多,但属于工作流的关键步骤,后续步骤也不等待其运行结果。而且在这个工作流中,每步操作,都需要等待上一步的操作(在同一时刻,只能有一个步骤在工作),所以135ms 不是最优化的结果。
通过流水线式设计模式,可以进步优化。首先,将这个任务,划分为三个小任务分别由四个对象处理,所以设计了5 个对象 :
见下图: Office:office" />

图表 12 Pipelining mode
虽然每个步骤单位处理的时间并没有减少。但对象B 的费时操作,被安排在主要流程之外,所以没有影响整个处理时间。对象C 和D 的处理被安排在同一时刻发生。对象E 等待C 和D 的结果。所以只要工作流程为:
(A) -> (C, D) -> (E)
步考虑任务传递时间耦合时间,及A 的分发时间,总的响应时间为:
max( C, D ) + E = max( 20, 5 ) + 10 = 30ms 。
所以,流水线式设计模式的优势,显而易见。同时也改进了以往开发流程。
以上介绍了分布式开发系统的关键概念及技术。利用这些技术,不但可以提高系统的性能,也可以改进以往开发的环境和步骤。开发步骤包括以下5 步:

图表 13 Development process
与传统开发流程相比,每个阶段的划分都更明确,这样有利于不同角色的划分和分工。尤其在部署阶段,原始设计人员可以使用编码完成的组件对象,直接介入系统的构建中。另外一个优势在于:整个开发周期变短。由于无需从头设计,按照一定的模式定义对象,程序的统一结构化,这些都是传统软件开发所无法比拟的。尤其充分的白盒测试,使联合测试的成功率提高,时间节省了许多 。
本文,以SoftEngine 为例,简洁地介绍了,以面向对象方式,解决分布式或传统应用系统开发所需的关键技术。希望能为非web 应用开发平台,提供一些好的体系结构,改善我们的开发环境。
在后续文章( 应用篇) 中,将陆续结合几个实际中的案例,如:如何构建最快、最灵活、最稳定的无线数字增值服 务 ( 短信SMS, 彩信MMS ) 平台,以及相关的组件等,描述其分布式、组件化的体系,及具体的解决方案。进一步谈讨,实际应用的可操作性。
注:
(完)
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/10752019/viewspace-984608/ ,如需转载,请注明出处,否则将追究法律责任。