The client/server development model prevalent in the mid-1990's resulted in
extremely easy-to-build rich GUI applications that interacted directly with a
relational database. 4GL tools such as Visual Basic and PowerBuilder let even
junior developers visually compose both the presentation and most of the
backend data binding. While this made for impressive Rapid Application
Development (RAD) productivity, the client/server architecture was severely
challenged when dealing with real-time environments where the data changes
rapidly and applications require visibility to the correct data at all times.
As a result, client applications were forced to poll the database
continuously to check for changes.
The same is true in today's browser-based or Java Swing-based multi-tier
... (more)