Frank Buschmann序

POSA系列丛书的最新一卷出版了,作者署名中竟然找不到原来“五人组”(Party of Five)的身影,这是我做梦都没有想到的,但我为此感到非常自豪。我自豪,是因为新一代聪慧的软件工程师成熟了,正积极地将其经验贡献给模式界;我自豪,是因为本书表明模式的理念依旧繁荣;我自豪,是因为我们于1996年提出的POSA愿景依然在激励着模式作者以其为基础并进行改进、完善和发展。

本卷的主题是资源管理,这个主题几乎对所有软件系统的成败都至关重要。这一点看似显而易见,但仅仅在10年前,很多开发人员都认为只有嵌入式系统领域才需要关心资源管理。在桌面和企业领域,关注这个主题的开发人员屈指可数。为何要关心内存等资源呢?如果内存不够用,将计算机升级就是了。必须承认,在职业生涯的早期我也曾持类似的观点:资源有的是,取之不尽,用之不竭。这样的想法真是大错特错!所幸的是,我搬起石头砸了自己的脚,很快吸取了经验教训。

当前,几乎没有开发人员对资源管理的重要性置若罔闻。随着基于组件的系统和应用程序服务器横空出世以及计算机运行的应用程序日益庞大而复杂,大家认识到妥善地管理资源对软件系统的质量影响极大。即便是在最庞大的服务器上,内存、CPU功率、线程及连接等资源也有限,更何况人们期望这些服务器向所有用户提供高品质的服务——即便有大量用户同时访问。要解决这种矛盾,必须明确而妥善地管理服务器的资源。然而,“资源”并不限于内存和连接等低层的东西,在当今的网络计算世界,资源还包括客户端应用程序远程使用的组件和服务。多个客户端应用程序争相访问组件和服务的情况司空见惯,确保所有客户都得到满意的服务是到位的资源管理的题中应有之义。

然而,认识到资源管理的重要性是一码事,妥善地管理资源是另一码事。卓有成效地管理资源既困难又极具挑战性。如果做好了,应用程序将高效、稳定、可扩展、可预测且易于使用;如果做得不好,应用程序在最好的情况下也只能提供有限的运行质量,而在最糟的情况下可能根本不可行——就这么简单。将资源管理职责交给容器并非屡试不爽,因为很多软件系统承受不了这样的基础设施。即便可以使用容器来管理资源,你也需明白容器是如何管理资源的,这样才能打造出高品质的系统。很多使用容器的应用程序都失败了,只因开发人员对容器缺乏认识。

如何获取这方面的认识呢?资源管理面临哪些挑战?对于这些挑战,有何应对之策呢?在应对策略中,该做什么、不该做什么呢?在哪里能找到这方面的资料呢?你手里捧着的POSA系列丛书第3卷就提供了这样的资料。它囊括了作者多年积累的资源管理经验和解决方案,其品质已被无数著名应用程序和中间件所证明。它以模式的方式将这些经验和解决方案记录下来,让每个软件开发人员都能够加以利用。通过阅读本书,新手可了解资源管理关注的基础问题及其解决方案,专家可交叉检查和评估替代解决方案,还可了解特定解决方案的细节。据我所知,还没有任何资源管理文献的详尽程度可与本书媲美。

正如在开头所说,我为本书感到自豪,个中缘由你阅读后就会知道。

——Frank Buschmann于西门子技术研究院

目录

  • 献词
  • Frank Buschmann序
  • Steve Vinoski序
  • 关于本书
  • 第1章 绪论
  • 第2章 资源获取
  • 第3章 资源生命周期
  • 第4章 资源释放
  • 第5章 资源管理模式应用指南
  • 第6章 案例研究:自组网
  • 第7章 案例研究:移动网络
  • 第8章 模式的过去、现在和将来
  • 第9章 结语
  • 引用的模式
  • 表示法
  • 参考文献
  • 模式索引
  • 索引