A system, method, and program support a flexible framework for providing
communications between the layers of a software application. A processing
unit is operable to execute a communications API (Applications Program
Interface), the communications API virtually or effectively
interconnecting presentation logic and business logic associated with a
software application. The communications API transparently and
interchangeably executes desktop implementation of the software
application and a network implementation of the software application. The
desktop implementation, the network implementation, and any switching
between implementation modes may be transparent to the presentation logic
and/or the business logic. The software application may be an n-layer
application, and the communications API may arrange the order of the
n-layers based upon whether desktop or network implementation is to be
employed. The presentation logic and business logic may be associated
with different machines located at a distance.