分享
 
 
 

面向对象的分布式开发系统 (四)

王朝java/jsp·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

返回首篇

前文:面向对象的分布式开发系统 (三)

3.5 流水线式设计模式Pipelining Design Model

“流水线式”经常在讨论CPU 技术时被谈及。在CPU 设计中,非流水线式设计模式的问题在于:每个单元指令必须在另一个指令开始前完成。这样会有很多的空闲时间片,没有效率。而流水线式的最基本思路在于充分利用CPU 内部空闲的组件,以至于可以同时处理多了单元指令,减少空闲时间片。也就是说,单元指令之间无须等待。非常明显,这个技术可以极大程度地提高硬件效率。

在SoftEngine 内借用了这种思路,将任务代替了指令,将功能对象代替了硬件组件。流水线式设计所运用的基本理论:将大的任务划分成一系列可交迭的、较小的任务,同时被一些功能对象分布处理。所以,在SoftEngine 基础上,应用的设计人员,需要分析应用的处理流程,在设计阶段划分大任务,提高应用系统的性能。SoftEngine 可以有效地支持这种先进的设计模式 。

举个例子,在普通的开发设计( 非流水线式设计) 中,假设一个任务需要4 个步骤完整,

第一步:保存数据到磁盘,耗时100ms

第二步:从磁盘中读取历史信息,耗时20ms

第三步:从内存中读取配置信息,耗时5ms

第四步:结果计算,并返回结果,耗时10ms

见下图:

图表 11 Non-pipelining mode

整个流程的处理时间需要135ms ,请求的返回时间也是135ms 。不难看出,第一步虽然耗时最多,但属于工作流的关键步骤,后续步骤也不等待其运行结果。而且在这个工作流中,每步操作,都需要等待上一步的操作(在同一时刻,只能有一个步骤在工作),所以135ms 不是最优化的结果。

通过流水线式设计模式,可以进步优化。首先,将这个任务,划分为三个小任务分别由四个对象处理,所以设计了5 个对象 :

对象A :划分大任务为三个小任务,同时分发。作为任务开始。

对象B :保存数据到磁盘,耗时100ms

对象C :从磁盘中读取历史信息,耗时20ms

对象D :从内存中读取配置信息,耗时5ms

对象E :等待任务2 和3 的结果,计算后返回,耗时10ms

见下图:

图表 12 Pipelining mode

虽然每个步骤单位处理的时间并没有减少。但对象B 的费时操作,被安排在主要流程之外,所以没有影响整个处理时间。对象C 和D 的处理被安排在同一时刻发生。对象E 等待C 和D 的结果。所以只要工作流程为:

(A) -> (C, D) -> (E)

步考虑任务传递时间耦合时间,及A 的分发时间,总的响应时间为:

max( C, D ) + E = max( 20, 5 ) + 10 = 30ms 。

所以,流水线式设计模式的优势,显而易见。同时也改进了以往开发流程。

4. 分布式系统对开发流程的改进

以上介绍了分布式开发系统的关键概念及技术。利用这些技术,不但可以提高系统的性能,也可以改进以往开发的环境和步骤。开发步骤包括以下5 步:

设计Design: 改变以往从头设计的做法,主要精力集中在应用的业务流程、工作流程、任务流程的设计。不断优化流程,是应用系统成功与否的关键。

定义Define: 流程确定之后,就可以从中定义出各种功能对象,服务对象,任务对象,并加以描述。此过程需要将定义的对象放入确定的流程中,模拟其使用性、有效性等 。

实现Realization:开始实现定义好的的各种对象。并进行单元白盒测试,保证每个对象自身的稳定。在实现过程中会发现与定义中相矛盾的地方,此时需要与设计人员探讨修改。

部署Deployment: 实现了每个对象之后,就可以对系统按照设计的流程进行部署。整个过程,都是通过配置文件进行系统调整。所以只要对象具有较强的独立性,并且保证每个对象已达到错误最小化,就可以保证在联合测试中,不会有过多的修改工作。但部署中,会根据实际境况对原先的流程进行调整,以达到最佳效果。

运 行 Running: 开发的最后一步,就是进入运行状态。

图表 13 Development process

与传统开发流程相比,每个阶段的划分都更明确,这样有利于不同角色的划分和分工。尤其在部署阶段,原始设计人员可以使用编码完成的组件对象,直接介入系统的构建中。另外一个优势在于:整个开发周期变短。由于无需从头设计,按照一定的模式定义对象,程序的统一结构化,这些都是传统软件开发所无法比拟的。尤其充分的白盒测试,使联合测试的成功率提高,时间节省了许多 。

5. 小结

本文,以SoftEngine 为例,简洁地介绍了,以面向对象方式,解决分布式或传统应用系统开发所需的关键技术。希望能为非Web 应用开发平台,提供一些好的体系结构,改善我们的开发环境。

在后续文章( 应用篇) 中,将陆续结合几个实际中的案例,如:如何构建最快、最灵活、最稳定的无线数字增值服 务 ( 短信SMS, 彩信MMS ) 平台,以及相关的组件等,描述其分布式、组件化的体系,及具体的解决方案。进一步谈讨,实际应用的可操作性。

注:

在文章中所提及的一些观点,只是本人在开发中的经验所得,只代表了

文章中所涉及的分布式技术,也可在SoftEngine 中得到证实 。

更多案例,及相关技术软件下载:http://www.snapbug.net

(完)

返回首篇

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有