“The sum of human wisdom is not contained in any one language, and no single language is capable of expressing all forms and degrees of human comprehension.”
Many of the patterns presented in this book generalize existing patterns to some extent. For example, Pooling (97) has many specific instantiations, such as Thread Pooling and Connection Pooling. One of our goals in writing this book was to find the similarities and differences between such patterns, to ultimately reveal the pattern behind the patterns. The patterns are therefore based not only on our experience, but instead on the experience of many researchers and developers.
As we have tried to show, the patterns presented in this book are not specific to any domain. Managing resources effectively and efficiently is a challenge that spans domains and systems, as well as layers within a system. In identifying patterns in resource management, we have tried to take advantage of our experience in building systems of different sizes in many different domains. Our experience has taken us through building real-time embedded, autonomous, Web-based and large-scale enterprise systems. While the domains and the types of system we built varied greatly, the fundamental problems in resource management were very similar. This provided the stimulus for us to describe the solutions in pattern form that we felt best addressed the problems.
An increasing number of languages and run-time environments support ...