Wednesday, February 27, 2008

Тонкий сервер

Хорошая презентация по архитектуре тонкого сервера. Идея подобного подхода прозрачна. Если тонкий клиент разгружал клиентское приложение, перенося обработку на сервер, то здесь с точностью до наоборот - вынос обработки на сторону клиента. Не только GUI, что делают Adobe и другие, а именно логики. При этом мы все равно остаемся в рамках веб-приложения. Соответственно, одна из основных проблем в разработке "толстых" клиентов - как заставить пользователя загрузить и обновить приложение, когда что-то в логике поменялось, здесь не существует. Обработчик автоматически загружается в браузер клиента, когда он заходит на веб-страницу. Цель вполне очевидна - разгрузить сервер, сделать приложение более масштабируемым.

На самом деле уж совсем новым такой подход не является. Любое использование JSON - это в некотором роде также тонкий сервер - обработка данных ведь будет осуществляться на стороне клиента, в его JavaScript коде. Здесь просто собраны воедино архитектурные принципы:

- все, что может делаться на стороне клиента - должно делаться там
- все взаимодействие с сервером - REST
- код для клиента не должен создаваться на сервере. Современный пример: условие в JSP/PHP/ASP коде, в зависимости от которого выводится некоторый HTML (WAP) код. То есть на сервере решается, что увидет клиент. Так быть не должно :). Это условие долно проверяться (и отрабатываться) на стороне клиента.
- за сервером остается только следующий функционал:
a) безопасность
б) бизнес-логика
в) проксирование запросов к другим ресурсам

No comments: