Web-сервер вызывает серверное приложение, которое получает от клиентской формы соответствующие данные в соответствующем формате. Таким форматом является, как правило, текст, представленный в протоколе http. Достаточно часто серверное приложение далее использует обращения к процедурам или SQL-запросам к базе данных. Таким образом, на стороне сервера участвует еще одно действующее лицо – сервер базы данных, например, MS SQL Server или Oracle. Серверное приложение, как принято говорить, реализует бизнес-логику, а клиентское служит только в качестве интерфейса для отображения результатов работы бизнес-логики. При таком разделении ролей клиента называют “тонким”. Если на клиента возложить реализацию бизнес-задач или какой-то части этих задач, то клиент называется в этом случае “толстым”.
Словосочетание “бизнес-логика” означает совокупность различных функциональных процедур обработки данных на стороне сервера, связанных с задачами, возложенными на систему в целом. Бизнес-процедурой может, например, быть простая программа, рассчитывающая налог от совокупного дохода.
Фирмы Sun MicroSystems и MicroSoft создали новые технологии программирования распределенных объектов, а также web-сервисов. Распределенным объектом является экземпляр некоторого класса, помещенный, как говорят, в контейнер. В Java такие распределенные объекты называются бобами (beans). По существу, распределенный объект хранится как двоичный файл в системной базе данных. Этот объект представляет собой экземпляр какого-то класса и содержит набор методов для реализации бизнес-логики. Клиент выставляет запрос на создание в своем приложении удаленного объекта с тем, чтобы использовать его методы. Этот запрос передается на сторону сервера так называемому серверу приложений. Задача сервера приложений состоит в построении экземпляра класса, загрузки его в оперативную память и возврате клиенту адресной ссылки на созданный экземпляр. Таким образом, приложение клиента работает с удаленным объектом так, как будто он находится в адресном пространстве клиентского приложения. Для доступа к удаленному объекту, хранящемуся в контейнере, клиентское приложение реализует интерфейс связи именно с контейнером, а не с объектом, что обеспечивает нужную защиту и ограничение прав доступа для различных категорий пользователей.
Web-сервисы – это заранее созданные байт-коды (классы), размещенные на стороне сервера. Доступ к ним реализуется через конфигурационные файлы XML, в которых описывается структура соответствующего класса (методы и переменные). Таким образом, Web-сервисы – это не удаленные объекты (как бобы), а удаленные классы, связь с которыми осуществляется по протоколу XML. Пользователь может объявлять удаленные классы в своем клиентском приложении и использовать их как и другие классы.