基本信息
- 原书名:Pattern-Oriented Software Architecture, Patterns for Resource Management,Volume 3
- 原出版社: John Wiley & Sons
- 作者: Michael Kircher, Prashant Jain
- 译者: 鲍志云
- 丛书名: 软件工程技术丛书
- 出版社:机械工业出版社
- ISBN:9787111169833
- 上架时间:2005-10-11
- 出版日期:2005 年9月
- 开本:16开
- 页码:169
- 版次:1-1
- 所属分类:计算机 > 软件工程及软件方法学 > 面向对象
教材 > 研究生/本科/专科教材 > 工学 > 计算机

编辑推荐
这本书是专讲资源管理模式的。这在模式类书籍中是较为少见的。而资源管理这个话题却又是如此地重要,特别是对于24 x 7运行的大型系统,资源管理的成败对系统的成败有极大的影响。值得严重期待!
内容简介
计算机书籍
在任何类型的软件中,有效管理资源都是至关重要的。从移动设备中的嵌入式软件,到大型企业服务器上的软件,有效地管理内存、线程、文件、网络连接之类的资源对于让系统可以正常且高效地工作都很重要。
我们经常在软件开发生命周期的后期才发现资源管理需求,而在这么晚的时候改变系统设计很困难。所以,在生命周期的早期执行这样的任务就很重要。因为属于不同领域的系统有不同的约束和需求,所以对某个特定系统或者配置很有效的方法对另一个系统就未必那么有效。
本书用模式来描述在系统中有效实现资源管理的方法。这些模式描述得很详细,使用了几个例子,并且和POSA前两卷一样,给出了如何实现它们的指导。此外,这一卷还对资源管理做了透彻的介绍,并给出了两个案例研究,分别把这些模式应用于自组网络计算和移动射频网络。这些模式归于不同的资源管理领域,涉及了完整的资源生命周期:获取、管理和释放。
作译者
在学生时代,他是Douglas C.Schmidt领导的研究组的成员,在这个研究组中他参与TTAO(The ACE ORB,一种实时CORBA的实现)的开发。就是在那时,他发现了模式的世界。在实现TAO的高效多线程分派机制时,他同Irfan Pyarali合作创作了他的第一个模式:Leader/Followers模式。
近年来,他在多个会议上发表了关于模式、分布式系统软件构架、极限编程方面的论文。他还同Prashant一起在OOPSLA和EuroPLoP这样的会议上组织了一些关于本书中一些内容的研讨会。
在闲暇时间,Michael喜欢和家人一起享受大自然的乐趣,或者步行或者骑车。他最喜欢的休闲活动是穿上自制皮衣并带上猎狗Ella去观察野生动物。
Prashant Jain是IBM设在印度德里的研究实验室的技术成员。他的主要关注领域包括分布式系统、电子商务、软件构架、模式及极限编程。在IBM,他的研究方向是电子商务领域的前沿技术。
Prashant从美国圣路易斯的华盛顿大学获得计算机科学硕土学位。他对设计模式的兴趣就是在那里形成的。1996年,他与导师Douglas C.Schmidt共同创作了他的第一个模式。从此以后,他就积极参加模式社区,创作并提交模式,并在OOPSLA和EuroPLoP这样的会议上组织模式研讨会。
他热衷于旅行,曾在印度、日本、美国、德国工作和生活过。他曾工作于西门子、富土通网络通信、柯达医学影像系统等公司。除此之外,他还积极参与华盛顿大学分布式对象计算中心的工作。
在闲暇时间,Prashant喜欢旅游和野餐,看电影,游泳。但他最珍爱的事情是和他4岁的女儿Aanya进行逻辑对话。Aanya常常能说得他哑口无言!
目录
Frank Buschmann序
Steve Vinoski序
前言
作者简介
第1章 导引
1.1 资源管理概览
1.2 资源管理的范围
1.3 模式的使用
1.4 资源管理中的模式
1.5 相关工作
1.6 模式格式
第2章 资源获取
2.1 Lookup模式
2.2 Lazy Acquisition模式
2.3 Eager Acquisition模式
2.4 Partial Acquisition模式
第3章 资源生命周期
3.1 Caching模式
3.2 Pooling模式
译者序
很多读者可能知道,现在敏捷方法很流行,人们开始觉得很多设计都可以在后期通过重构的方式加入,而不需要一开始就严密地思考并决定。关于这些设计的模式,实在可以“妙手偶得之”,而不必一开始就有意识地去用。
但是,也有一些涉及系统全局的方面是很难通过重构的方式逐渐引入或者改变的(或者后期引入带来的变动太大,使得这样做显得不划算)。这些方面包括对国际化和本地化的支持、对多线程的支持、安全性、可移植性等等。这其中也包括了资源管理策略。
所以,在设计系统之前,有必要先对资源管理模式有个全盘的了解,这样在设计时才能有意识地运用最合适的资源管理方法。
在本书中,我个人最喜欢的是第7章的案例分析,该章描述了设计一个UTMS移动网络系统(包含基站、RNC、OMC)时遇到的挑战,以及如何从“模式弹药库”中找到合适的弹药来解决这些挑战。读来感觉淋漓尽致。这一章篇幅不长,但信息量很大,因为所有的细节都隐藏在模式名的背后。所以,为了读懂第7章,必须先读第2、3、4章。(事实上,这3章也可以当做资源模式管理词典,供你在工作中备查。)
其实,这本书还有模式地图的作用,因为书中不仅提到了资源管理模式,还以此为主干展开,广泛引用了模式社区的大量其他著作和模式。这也算是一个额外的好处吧。将单个模式融入更宏大的模式地图(或者说在“模式语言”的语境中)来讲述,这也是POSA系列的特色之一。
相信此译本可以带给读者愉快的阅读体验。若阅读过程中发现任何问题,可以发信到:wesley.bao@acm.org。
鲍志云
2005年7月
前言
Pattern-Oriented Software Architecture(POSA)系列的第1卷[POSAl]广泛地引入了软件设计和构架中的通用模式。第2卷[POSA2]则专注于建立复杂的并发和网络软件系统与应用程序的基本模式。现在本卷则用模式来展现在系统中实现有效的资源管理所需的技术。
书中的模式详尽展开,并且会有一些例子。同POSA的前几卷一样,本书为读者提供了如何实现这些模式的指导。此外,本书还对资源管理作了透彻的介绍,并且包含了两个案例分析,在案例中这些模式应用在两个不同的领域。书中展示的模式独立于任何实现技术(比如.NET、Java或者C++),虽然例子是用Java和C++给出的。模式根据资源管理的不同领域来分类,因此涉及了资源的完整生命周期:资源获取、资源生命周期和资源释放。
本书中的模式广泛地覆盖了资源管理领域。我们在几年前开始基于自己创建很多不同软件系统的经验记录这些模式。大多数模式都曾经在主要的会议上展示过或者讨论过。但是,我们觉得还缺少这样的努力,把这些模式以模式语言的形式放到一起,并以可以把模式语言应用到多个领域的方式将其展示出来。
资源管理的范围很广。随着新技术的出现,系统设计者和开发者面对的资源管理的挑战也时刻在变化。我们预计,随着时间的推移,人们会发现并记录更多的资源管理模式。本书的“结语”那一章谈论了发展资源管理模式语言还需要进行怎样的努力。
读者群
本书是为所有的软件构架师、设计者和开发者而写的。他们可以用本书中描述的模式来解决通常每个软件系统都会遇到的资源管理的挑战。
本书对计算机科学专业的学生也很有用,因为它可以提供对资源管理的现有最佳实践的概览。
本书结构
本书分成两部分。第一部分提供了对资源管理的主题以及资源管理的模式的介绍。第一部分展示的模式分成三章:资源获取、资源生命周期、资源释放,这同典型的资源生命周期相对应。本书的第二部分把这些模式应用于两个案例。
本书的第一部分从问题领域的角度来看待资源管理,而第二部分则从应用程序领域的角度来看待资源管理。本书中的模式不是孤立的。事实上,在我们覆盖资源管理模式的整个过程中,我们大量引用了其他相关的值得注意的模式。对于每个这样的模式,我们都在“引用到的模式”一章中包含了摘要介绍。
本书包含了很多使用模式的例子。虽然模式用的都是单独的例子,但讲案例的每一章都是用一个特定领域的例子来把所有的模式联系起来。这样就起到了一个完整的例子的作用,把特定领域中的问题和单个模式的使用放到了一起,以解决所提出的问题。这种方法让我们可以证明模式的广泛可用性,同时还展示了它们如何联系到一起。
第1章“导引”正式引入了软件系统中资源管理的话题,并且定义了它的范围。这一章描述了为何有效地管理软件系统中的资源那么难。这一章还介绍了模式,并展示了如何用模式来应对资源管理的挑战。
第2章“资源获取”描述了解决对资源获取有影响的作用力的模式。资源在使用前必须先获取。但是,获取资源不应该降低系统性能,也不应该造成任何瓶颈。对于大型资源或者只有一部分可用的资源,资源获取策略的调整是至关重要的。
第3章“资源生命周期”描述了解决影响资源生命周期的作用力。资源可以有很不相同的生命周期。例如,有的资源会被频繁且密集地使用,还有些资源则只会被用到一次。当我们不再需要某一资源时,就可以释放它。但是,判断何时释放资源并不是那么简单。对资源生命周期的显式控制可能既令人厌烦又容易出错。为了解决这一问题,我们需要自动资源管理技术。此外,在某些特定的构架(比如分布式系统)中,可能多个资源必须共同工作以达成更大的共同目标。每个资源都有可能由自己的控制线程来管理,那么就需要协调多个资源的协作和整合。
第4章“资源释放”描述了处理资源的有效释放的模式。当资源不再被需要时,就需要返回给资源环境,以优化系统性能并让其他使用者可以获取资源。但是,如果被释放的资源需要被相同的资源使用者再次使用,那么就必须重新获取资源,这就会影响性能。这里的挑战是如何找到正确的平衡并决定何时释放资源。此外,对资源管理操作(比如释放资源)的显式调用很令人厌烦。如何尽量减少资源管理的开销,同时还确保高效率和高可伸缩性呢?
在第5章“资源管理准则”中,我们展示了进行资源管理的准则,这为在特定领域中高效地使用资源管理模式语言提供了指导。
第6章“案例分析——自组网络计算”展示了如何用我们描述的模式来创建自组网络应用程序并满足它的资源管理需求。
第7章“案例分析——移动网络”把所有的模式都整合进模式语言,并用这个模式语言来解决一个电信领域的案例的需求。
在第8章“模式的过去、现在和未来”中,Frank Buschmann审视过去在POSA前一卷中做出的对“模式将走向何方”的预言,并进一步分析模式现在走到了哪一步,然后预测模式的未来。