В рамках выпуска RAD Studio 11 Alexandria мы объявили о доступности новой опции для развертывания и лицензирования RAD Server с целью упрощения развертывания для установок, не требующих большого количества запросов REST.
Table of Contents
Что такое RAD Server?
Прежде чем перейти к деталям, позвольте мне напомнить вам, что такое RAD Server. Это серверный движок REST, который позволяет быстро разрабатывать конечные точки REST, в основном обслуживающие JSON, с помощью кода Delphi или C ++ Builder на основе FireDAC (или других уровней доступа к данным). Короче говоря, вы создаете дополнительные пакеты (BPL), каждый из которых регистрирует дополнительные конечные точки URL и обеспечивает реализацию. Вдобавок к этому RAD Server поставляется с рядом готовых к использованию сервисов. Вы можете узнать больше на https://www.embarcadero.com/products/rad-server .
Почему RAD Server Lite?
Для RAD Server требуется внутренняя база данных, основанная на InterBase, и она обычно развертывается как модуль DLL веб-сервера для IIS или Apache. По этой причине стандартное развертывание требует:
- Веб-сервер и его конфигурация модуля RAD Server
- Развертывание и настройка RAD Server
- Установка InterBase со специальной лицензией RAD Server (лицензия, которую пользователь должен зарегистрировать на целевом устройстве для активации)
Для разработки мы уже давно предлагаем автономную версию RAD Server, основанную на HTTP-сервере Indy, которая предлагает ограниченную производительность, но гораздо более простое развертывание и возможность выполнения под отладчиком (так что вы можете отлаживать код своих модулей RAD Server). . Версия для разработки не предназначена и не лицензирована для развертывания. Он имеет ограничение на количество пользователей, которых вы можете создать, и он может работать с локальной версией InterBase Developer (лицензия на него является частью лицензии RAD Studio).
RAD Server Lite (также известный как RSLite) предлагает более простую модель развертывания для тестовых серверов и сценариев, не требующих большой пропускной способности, и предлагает это за счет использования встроенного механизма базы данных InterBase, IBToGo, вместо полномасштабного сервера и сочетает его с упрощенная модель лицензирования. RSLite использует тот же двоичный файл версии для разработчиков (которая поставляется с RAD Studio) вместе с двоичными файлами IBToGo и файлом лицензии, который вы можете развернуть вместе со своим решением (не требуя регистрации на компьютере, на котором вы его развертываете).
Поскольку он использует встроенную базу данных и компонент Indy HTTP Server, он не может обслуживать такое же количество запросов в секунду, как обычная полнофункциональная установка RAD Server, и не может масштабироваться с несколькими внешними интерфейсами RAD Server. Мы не добавляли никаких жестко запрограммированных ограничений, но базовая архитектура, используемая RSLite, имеет гораздо более ограниченную масштабируемость, но мы ожидаем, что этого будет достаточно для многих простых сценариев развертывания, учитывая, что пропускная способность также зависит от конкретного кода. ваши модули RAD Server выполняются. Обратите внимание, что для развертывания в общедоступной системе мы рекомендуем избегать прямого доступа к HTTP-серверу RSLite, но сделать его доступным через конфигурацию прокси, чтобы у вас все еще был веб-сервер (например, Apache или IIS), обеспечивающий контекст безопасности для входящего HTTPS звонки и переадресация их в RSLite.
Запрос лицензии
Теперь перейдем к практическим аспектам RSLite. Во-первых, вам нужно активировать лицензию, что вы можете сделать с любой лицензией Enterprise или Architect для RAD Studio 11 (включая Delphi 11 и C ++ Builder 11). Все, что вам нужно сделать, это зайти на страницу:
https://reg.embarcadero.com/srs6/promotion.jsp?promoId=572
и следуйте предоставленным инструкциям: вам понадобится ваш регистрационный ключ и учетная запись EDN. Здесь процесс заключается не только в получении лицензионного ключа для RSLite, но и в получении файла слипа (лицензии, хранящейся в файле .TXT), который вы можете развернуть вместе с установкой. Эта лицензия не имеет ограничений по количеству установок (но у вас не может быть двух экземпляров, работающих на одном компьютере). Обратите внимание, что файл лицензии необходимо поместить в определенную подпапку, в отличие от того, что может подразумевать общая информация на сайте погашения.
Развертывание проекта RAD Server Lite
После получения лицензии как развернуть RSLite? Есть два разных соображения:
- Во-первых, вам нужно создать конфигурацию развертывания с RSLite, необходимыми пакетами времени выполнения и развертыванием IBToGo (шаги приведены ниже).
- Во-вторых, вам необходимо создать соответствующий файл базы данных для производства, совместимый с лицензией IBToGo — локальная база данных, созданная RAD Server Developer edition, не будет совместима.
Файлы для развертывания
На практике это файлы, необходимые для развертывания решения RSLite (в дополнение к вашим пакетам приложений и их зависимостям):
- Исполняемый файл RSLite, аналогичный версии для разработчиков: EMSDevServer.exe, доступный в папке bin RAD Studio (или аналогичная 64-разрядная версия)
- Необходимые пакеты среды выполнения RAD Studio, которые включают в себя те, которые требуются для минимальной установки (перечислены здесь и доступны в папке RAD Studio win32 или win64 redist), а также любые другие пакеты среды выполнения, необходимые для кода в модулях вашего сервера RAD:
- bindengine280.bpl
- dbrtl280.bpl
- emsclientfiredac280.bpl
- emsserverapi280.bpl
- FireDAC280.bpl
- FireDACCommon280.bpl
- FireDACCommonDriver280.bpl
- FireDACIBDriver280.bpl
- rtl280.bpl
- vcl280.bpl
- vcldb280.bpl
- vclFireDAC280.bpl
- vclimg280.bpl
- vclwinx280.bpl
- vclx280.bpl
- xmlrtl280.bpl
- Файлы развертывания InterBase ToGo находятся в папке redist общедоступного документа InterBase (например, C: / Users / Public / Documents / Embarcadero / Interbase / redist / InterBase2020) в подпапках win32_togo или win64_togo — для Linux вы можете найти libibtogo.so файл в надлежащей папке Redist InterBase
- Добавьте файл лицензии, полученный выше, в папку interbase / license (часть конфигурации redist IBToGo)
Среда выполнения MSVC
Также обратите внимание, что для запуска IBToGo (и, следовательно, RSLite с использованием IBToGo) на целевом компьютере с Windows необходимо установить библиотеку времени выполнения Visual C ++ 2013. На машине разработчика с RAD Studio она, скорее всего, уже установлена. Однако на общей целевой машине развертывания вам, возможно, придется установить его после загрузки с сайта Microsoft .
Создание производственной базы данных
В этой конфигурации вы можете запустить RSLite, запустив приложение EMSDevServer.exe. Однако, если на целевой машине есть клиент InterBase, он будет выбирать его как более высокий приоритет, а если клиент InterBase является версией Developer, поставляемой с RAD Studio, все будет работать, но в стандартной конфигурации RAD Server Developer.
Вы можете легко понять это, потому что при запуске RAD Server сообщает вам, является ли это конфигурацией «RSLite» в своем журнале. Первые несколько строк будут выглядеть так:
{«Тема»: 19124, «ConfigLoaded»: {«Имя файла»: «[папка] emsserver.ini», «Существует»: true}} {«Тема»: 19124, «Лицензирование»: { «Lite»: true , ”Licensed”: true, ”LicensedMaxUsers”: 2}} {“Thread”: 19124, ”DBConnection”: {“InstanceName”: ””, ”Filename”: ”[папка] emsserver.ib”}}
Если в коде указано, что для параметра «Lite» задано значение false, вам может потребоваться вручную отключить загрузку клиентской библиотеки InterBase gds32.dll (или ее 64-разрядной версии), обычно находящейся в C: / Windows / SysWOW64 (если клиент InterBase библиотека не может быть найдена, она загружает локальный файл ibtogo.dll — что-то, что мы сделаем настраиваемым в следующем выпуске).
Теперь, если вы запустите RSLite (с правильной конфигурацией) и нет файла emsserver.ini и файла базы данных emsserver.ib, вам будет предложено создать его. Чтобы это работало, RSLite необходимо найти конфигурацию в папке репозитория объектов RAD Studio (ObjRepos в папке продукта). Более простой способ сделать это — скопировать файлы из ObjRepos / en / ems в папку с таким относительным путем из emsdevserver.exe: «../ObjRepos/en». Другими словами, вам нужна папка ObjRepost на том же уровне, что и папка, содержащая вашу установку RSLite.
Примечание: Это не требуется для каждого развертывания RSLite, только один раз для создания производственной базы данных, которую вы позже можете скопировать на целевые компьютеры как есть. Фактически база данных, созданная в среде разработки, несовместима с развертыванием RSLite.
Я рекомендую вам указать в качестве целевой папки то же, что и в вашем развертывании RSLite, чтобы мастер создал файл emsserver.ini и файл базы данных emsserver.ib в вашей папке развертывания. Теперь возьмите всю папку с RSLite, эти файлы конфигурации, пакеты среды выполнения и IBToGo, включая лицензию, и у вас есть все, что вам нужно для развертывания на целевом компьютере с Windows.
Конфигурация прокси
Как я уже упоминал, не рекомендуется предоставлять RSLite напрямую как общедоступное веб-приложение из-за его ограничений с точки зрения защиты и шифрования. Я бы рекомендовал использовать прокси-слой с выделенной службой или использовать одну из популярных веб-служб в качестве внешнего интерфейса. В Apache, например, вы настраиваете виртуальный хост, включаете HTTPS и перенаправляете трафик на экземпляр RSLite со следующей конфигурацией:
[crayon-673fcb618079f392828146/]
Для Linux
Для Linux вы можете выполнить те же шаги, что и выше, и все должно работать, как ожидалось. В качестве альтернативы вы также можете рассмотреть возможность установки полного RAD Server, а не добавления IBToGo к установке:
-
- Установите сервер RAD, используя файл ems_install.sh, доступный в папке установки RAD (https://docwiki.embarcadero.com/RADStudio/Sydney/en/Configuring_Your_RAD_Server_Engine_or_RAD_Server_Console_on_Linux)
- Скопируйте файлы IBToGo из папки «redist» Interbase в папку EMS в Linux (/ usr / lib / ems)
- Выполните EMSDevServerCommand и следуйте указаниям мастера, чтобы создать базу данных EMS и файл конфигурации (обратите внимание, что вам может потребоваться запустить приложение через sudo, чтобы иметь соответствующие разрешения )
Обновление до полнофункционального сервера RAD
В заключение позвольте мне напомнить вам, что RSLite имеет ограниченные возможности с точки зрения трафика пользовательских запросов, который он может обрабатывать. Если вам нужна более высокая пропускная способность и пропускная способность, мы рекомендуем вместо этого развернуть полный сервер RAD.
Любой заказчик с Enterprise Edition RAD Studio, Delphi или C ++ Builder получает одну лицензию на развертывание полной производственной версии RAD Server. Клиенты Architect Edition получают неограниченную лицензию на развертывание (но такую, которая по-прежнему требует активации для каждого сервера, на котором вы хотите развернуть). В качестве альтернативы вы можете связаться с нашим отделом продаж для заключения соглашения о VAR-сервере RAD Server, которое позволит вам распространять полный RAD-сервер, просто развернув файл слипа вместе с вашим приложением, неограниченному количеству клиентов и без необходимости регистрации.