Теория СУБД

ТРЕТИЙ УРОВЕНЬ

Многие программисты, которых я знаю, способны работать только с двухуровневой моделью, то есть с клиент-серверными приложениями. Не потому, что они больше ничего не знают, а потому, что просто не видят преимуществ трехуровневой модели и не хотят мучиться с лишними проб­лемами, а ведь в будущем, во время сопровождения программ, три уровня по идее могут спасти их от лишних бо­лезней анального отверстия.

Я работал в одной фирме (не будем тыкать в нее вилами), у которой было несколько офисов по России, и в каж­дом из них — парк компьютеров из 20-30 штук. В московском офисе эта цифра превышала сотню. Корпора­тивные программы обновлялись каж­дые две недели (вносились измене­ния, добавления и т.д.). Бедные админы в момент обновлений работали по субботам, чтобы пропатчить софт на каждой машине и убедиться в функ­циональности. Как решить эту проб­лему?

Самое простое — использовать тре­хуровневую систему: клиент, сервер логики (умники любят говорить "биз­нес-логика") и сервер приложения. В такой системе вся логика собрана в сервере приложений. Если что-то из­менилось в базе данных или в логи­ке обработки данных, достаточно об­новить его, и все клиенты будут ра­ботать по-новому без каких-либо патчей.

Преимущество такой системы состо­ит еще и в том, что на клиентских ма­шинах не нужно держать драйвера доступа к каким-либо базам. Клиенты должны только знать, где находится сервер приложений, уметь к нему подключится и правильно отобразить данные.

Представим себе классическую за­дачу — появление новой версии базы данных или переход на базу качест­венно более нового уровня. Ну не хватает нам уже возможностей MySQL, захотелось заполучить всю мощь Oracle. Для этого переустанав­ливается сервер баз данных, изменя­ется сервер приложений на подклю­чение к новой базе — и клиенты гото­вы к работе. Их обновлять не надо!

Но самое интересное то, что клиен­тская программа может быть какой угодно. Можно написать сценарии, ко­торые позволят работать с сервером приложении прямо из браузера. В этом случае с базой смогут работать пользователи на любой платформе (Windows, Linux и т.д.).