95
• Соединение низкого уровня в рамках стека TCP/IP с использованием
элемента TDSTCPServerTransport;
• Соедиение высшего уровня в рамках HTTP протокола с
использованием элемента TDSHTTPService.
Соединение низкого уровня в рамках стека TCP/IP самое универсальное.
Сейчас этот данный протокол доминирует в локальных и глобальных сетях.
Поэтому созданные с применением данного элемента TDSTCPServerTransport
приложение будет работать как в сети компании, так и в сети Интернет. Протокол
HTTP основан на TCP/IP стеке, но имеет более развитые возможности по
функционированию в Web-среде. Контроль сервиса HTTP реализован
возможностями элемента TDSHTTPService, который отличается поддержкой
протокола полноценной передачи состояния (Representational State Transfer,
REST). Это обновленный стиль, который помогает клиентам использовать
ресурсы сервера.
Класс «TDSServerClass». В работах DataSnap элемент TDSServerClass
отвечает за передачу методов, размещенных на сервере, приложениям клиентов.
Элемент находится в контейнере сервера и соединен с элементом TDSServer при
помощи property Server;
Также еще одним свойством, которое нужно рассмотреть, является
определяющее нюансы ЖЦ элемента класса TDSServerClass: property LifeCycle:
string; //изначально Session.
Есть 3 варианта настройки ЖЦ элемента: Session, Server и Invocation.
Изначально оно находится в состоянии Session. Говорит это о том, что в процессе
соединения с сервером клиентского приложения лично для него создается
готовый объект TDSServerClass. Реализованный объект поддерживает клиента в
рамках всей сессии и удаляется по факту отключения клиентского ПО от сервера.
Перевод ЖЦ в режим Server явно меняет работы приложения, сервер будет иметь
единый элемент TDSServerClass. И этот элемент будет обслуживать все
подключения извне. Третье состояние Invocation нужно тогда, когда необходимо,
чтобы элемент TDSServerClass реализовался для обслуживания всех обращений к
методу сервера и удалялся из памяти по факту реализации метода. По итогу,
любой вызов метода работает с новым элементом TDSServerClass.