Designing an enterprise-level system is a difficult and challenging task. Business requirements are typically both complex and diverse, while concerns such as security, integration, operational management, scalability, performance, internationalization, and standards compliance all contribute to making the job of the architect a hard one.
Consequently, any architecture that meets all of the expectations that surround enterprise-level software is an achievement. Unfortunately, where rapid development is concerned, meeting all requirements is only part of the story. For a RAD project, the architect must also design for timeliness of delivery.
This chapter looks at the importance of design for rapid development and examines how decisions made during the definition of a system's architecture can have a significant impact on the ability to complete systems in a reduced timeframe.
Guidelines for design decisions that help to decrease the development timeframe of a project are explored, and we take an impartial view of the merits of the J2EE platform and outline practical J2EE-based architectures that are complementary to rapid development.