An application architecture should be like a grand hotel: It should accommodate the convention market of B2B and enterprise applications and also afford more personal convenience to productivity tools. In this hotel scenario, application developers play many roles: The mechanic in the basement, the concierge in the lobby, even the room service staff who leave mints on the pillows perform tasks akin to those of developers and their tools.
In the applications basement, load balancing and failover systems ensure that guests dont get stuck at the ground floor; at the front desk of an opening screen, logical navigation aids get the guests from the front door to the specific room theyre seeking. Up in the guest rooms of the application screens, clear prompts and graphics make the guests feel comfortable.
Developers can subcontract some of these responsibilities to an application server, but they need to be free to create a distinctive style that sets their work apart from low-budget lodgings. Hence the continued concern for cross-platform portability, an oft-neglected accoutrement that provides essential maneuvering room.
Portability doesnt just mean source-code commonality across processors and operating systems. Thats one level, but it may not be the most important in view of the growing ease of networking heterogeneous (and ever less expensive) hardware.
On a higher level, development tool sets should readily support several application servers; meanwhile, out in the maintenance yard, tool sets should work with a variety of source-code control tools and other developer aids.
These multiple levels of portability are found in, for example, the forthcoming JBuilder 5 from Borland, next months planned update of a Java tool set that has always made me want to extend my stay.