Software applications that control business process lifecycles have traditionally been difficult to maintain and customize. IBM's breakthrough SanFrancisco project has solved this problem, by separating lifecycle control from state information and business data. In this book, Java developers and analysts will learn how IBM achieved this goal; gain an in-depth understanding of IBM's powerful SanFrancisco Life Cycle pattern, and understand how to use SanFrancisco Life Cycle mechanisms to quickly build powerful new business applications. The authors -- members of the SanFrancisco development project -- begin by explaining the crucial role of lifecycle control in application design and development. Readers will gain deep insight into the nuances of Life Cycle-based development, and learn exactly how to leverage these technologies in their own customized applications.