Delphi.Datasnap. Создание сервера приложений

В данном посте создадим простейший сервер по технологии DataSnap и подключим его к СУБД MySQL с помощью технологии доступа к данным DBExpress. В СУБД уже создана тестовая база данных test_db. Действуя по аналогии Вы можете предварительно на выбранной СУБД создать базу данных или использовать готовую. Итак, поехали… File | New | Other – DataSnap Server

1

 

Далее выберем вид сервера – на выбор нам представляется – форма, консоль, сервис windows. Боб Сварт в своей книге советует выбирать сервис виндоуз, так как это всё таки сервер и он должен быть включен постоянно. Но для простоты, я предлагаю рассмотреть создание сервера на основе обычной формы (Forms Application). C сервисом windows всё тоже самое, но шагов больше, конечно и преимущество в том, что он более менее постоянно включен. Надо сказать, чтоб Боб Сварт в своей книге создает сразу все 3 вида серверов, но на данном этапе не будем усложнять. 

2

 

Далее мастер спрашивает – VCL или FireMonrey? Тут на вкус и цвет, я для простоты выбрал VCL, хотя для данного примера – особой разницы нет.

3

 

Далее, нужно выбрать набор компонентов и возможностей нашего сервера – возможные протоколы общения (клиента – сервера), аутентификацию и др. Я выбрал все возможные протоколы, авторизацию, аутентификацию и примеры методов (Sample Methods)

5

 

Далее тестируем порты, если у нас что-то уже работает на этих портах, меняем… Возможно, придется поменять порт 8080, потому что на нём может работать IIS, но это уже детали. В данном примере нам не понадобится HTTP протокол, я поставил его для демонстрации. Будем работать через TCP / IP.

6

 

Далее, заполняем сертификаты (если есть). Если нет – пропускаем этот шаг (Next).

7

 

Далее выбираем предка для сервера. Наиболее полный предок – TDSServerModule. Можно выбрать и другие, но вот с чем я столкнулся, когда выбрал TDataModule. При попытке связать сервер с клиентом через провайдеры (об этом мы поговорим позже), в списке провайдеров, в клиенте не отображались провайдеры сервера. Оказалось, это из за того, что отсутствует RemoteDataModule. А в TDSServerodule он уже есть. В общем, когда я переделал сервер на TDSServerModule, у меня всё заработало как нужно. В документации можно найти подробное описание когда что использовать, но, насколько я понял TDSServerModule – это наиболее полный вариант.

 

8_1

 

Далее, когда мы нажмем на Finish, увидим следующее…

9

Далее, подпишем все юниты красиво и понятно и сохраним в отдельную папку.

На форме мы можем разместить любые компоненты, ну, как минимум подписать её, чтобы опознавать как сервер.

10

Зачем нужен модуль ServerMethods?

В нём содержатся непосредственно методы, которые мы будем вызывать из клиента. Это то самое ядро бизнес-логики, которое вынесено в сервер приложений.

Зачем нужен модуль ServerContainerUnit?

Здесь содержатся компоненты, отвечающие за работу сервера. Здесь мы можем настраивать протоколы, аутентификацию и многие другие параметры. Подробнее об этом можно прочитать в книге Боба Сварта

Переведенная на русский, книга Боба Сварта, «Delphi2010 DataSnap новые возможности в управлении и доступе к данным».

а также здесь…

-Книга Д.Осипова Delphi и базы данных (там есть раздел, посвященный технологии DataSnap)

На данном этапе всё… в следующем посте подключим сервер приложений к СУБД.

This entry was posted in DataSnap, Delphi, Без рубрики. Bookmark the permalink.