Presentation fortresses receive HTTP requests from thin clients and deliver HTML pages in response. This simple-sounding task is complicated by numerous factors, most prominently these:
Determining exactly what the client did (push a button? choose a menu item?) is often a nontrivial programming task.
Managing the client's state—in other words, determining how the client's current request relates to previous requests from that same client—is often done in ways that severely restrict later scalability.
Creating the best possible client experience regardless of client device often requires device-specific code that is difficult to maintain.
Planning how the presentation fortress will fulfill the client request (e.g., ...