1.1.3 What PEAK is made of: Application Kit

So what are these PEAK technologies? PEAK is an application kit, and applications are made from components. PEAK provides you with a component architecture, component infrastructure, and various general-purpose components and component frameworks for building applications. As with J2EE, the idea is to let you stop reinventing architectural and infrastructure wheels, so you can put more time into your actual application.

The most basic part of PEAK is the component binding package: a set of tools for constructing components out of other components, and ``binding" separate components together. Then, PEAK supplies a component naming package that provides a common API for associating names with components, looking them up by name, and handling ``addresses" of objects like database connections, mail servers, log or lockfiles, and other infrastructure components. Third, PEAK supplies a component configuration package, which makes it easy to provide utilities and configuration data that ``trickle down" through the components of an application.

PEAK also supplies, or will supply, several other packages dealing with application domain components, storage, transactions, internationalization, and system operations such as task scheduling, logging, and so on. But all of these other packages depend on the three core packages of binding, naming, and configuration, which are the subject of this tutorial. Understanding how to use these core packages is essential for building PEAK applications.

Luckily, PEAK is compact. At the time we started writing this, the binding, naming, and config packages consisted of only about 4,000 lines of Python (including docstrings, comments, and whitespace, but not counting unit test modules or shared utility modules). So it won't take you long to master their use, with the help of this tutorial.