Three-Tier Software Architecture