Автономный сервер
Автономный сервер — это новая архитектура сервера 1С:Предприятия, которая призвана повысить эффективность, надежность и удобство его использования.
Например, для организации доступа к базе по протоколу HTTP не требуется разворачивать отдельный веб-сервер, так как автономный сервер самостоятельно обеспечивает такую возможность. Он также может работать с файловой базой, в частности, позволяет запускать до трех клиентских сеансов с информационной базой без лицензии на сервер.
Автономный сервер в 1С
В версии технологической платформы 8.3.14 была реализована новая возможность, а точнее новое приложение, которое позволяет организовать работу клиентских приложений с информационной базой по протоколу HTTP — автономный сервер. В этой статье я попробую рассказать, что это за новое приложение и как его можно использовать.
Общая информация
Итак, автономный сервер — это серверное приложение, которое обеспечивает работу клиентских приложений (тонкий клиент, веб-клиент, мобильный клиент) с информационной базой. Автономный сервер взаимодействует с клиентами по протоколу HTTP и обеспечивает те же возможности, что и кластер серверов за исключением средств администрирования и управления. Кроме этого автономный сервер содержит встроенный веб-сервер, что позволяет публиковать базу данных, без использования сторонних веб-серверов.
Разумеется, автономный сервер имеет некоторые ограничения. В частности он НЕ поддерживает следующие возможности:
- Обслуживание нескольких информационных баз одним автономным сервером;
- Работу нескольких автономных серверов с одной информационной базой;
- Изменение параметров автономного сервера во время его (автономного сервера) работы;
- Работу с информационной базой, используя толстый клиент;
- Работу с информационной базой в режиме Конфигуратора;
- Работу с информационной базой с использованием внешнего соединения (COM-соединение);
- Управление автономным сервером с помощью сервера ras;
- Для автономного сервера отсутствуют графические инструменты управления (аналог консоли кластера);
- Динамическое обновление конфигурации базы данных;
- Использование фоновой реструктуризации;
- Управление сервером с помощью COM-объекта V83.ComConnector;
- Работу по протоколу HTTPS. Возможно использование протокола HTTPS при использовании промежуточного веб-сервера между автономным сервером и клиентским приложением;
- Отладка по протоколу TCP/IP;
- Использование аутентификации операционной системы.
Запуск автономного сервера
Автономный сервер устанавливается вместе с кластером серверов 1С и имеет такие же системные требования. После установки в каталоге bin появятся два файла:
- ibsrv.exe — сам автономный сервер;
- ibcmd.exe — утилита администрирования.
Оба приложения имеют справочную систему, которую можно вызвать стандартным, для утилит командной строки, способом:
Команда «help» автономного сервера
Автономный сервер может быть запущен как обычное приложение и как сервис (демон) операционной системы, при этом сам автономный сервер не умеет регистрировать себя в качестве сервиса, для этого нужно воспользоваться средствами ОС.
Параметры для запуска автономного сервера можно указать прямо в командной строке или в специальном конфигурационном файле. При этом командная строка имеет больший приоритет. Если какой-то параметр не указан ни в командной строке ни в конфигурационном файле, то будет использовано значение по умолчанию.
Конфигурационный файл создается специальной командой или вручную (подробнее ниже). Для запуска автономного сервера с учетом конфигурационного файла, необходимо указать расположение этого файла.
Запуск сервера для работы с файловой базой в самом простом случае выглядит так:
На самом деле самый простой вариант будет запуск автономного сервера вообще без параметров, в этом случае сервер поищет файловую базу в каталоге данных по умолчанию.
Запуск сервера для работы с клиент-серверным вариантом базы в самом простом случае выглядит так:
ibsrv —dbms=db-type —db-server=server-name —db-user=pass —db-pwd=pass —db-name=db-name
Запуск автономного сервера 1С
После этого к базу можно посмотреть например через браузер:
База на автономном сервере
Отладка на автономном сервере
Отладка с использованием автономного сервера возможно только по протоколу HTTP. Сама схема отладки выглядит достаточно изощренно (я с трудом представляю себе практическое использование данной функциональности):
- Запустить сервер отладки, например так (см. Отладка по протоколу HTTP):
dbgs -a 192.168.0.11 -p 4000 - Запустить автономный сервер с указанием сервера отладки и имени информационной базы, например так:
ibsrv.exe —dbms=mssqlserver —db-server=192.168.0.15 —db-user=sa —db-pwd=Z123456z —db-name=test01 —name=test03 —debug=192.168.0.11:4000 - Запустить конфигуратор с базой в которую загружена точно такая же конфигурация как и в отлаживаемой базе.
Далее, в запущенном конфигураторе, следует открыть диалог параметров отладки (Главное меню — Сервис — Параметры — Отладка). В диалоге нужно выбрать протокол отладки (HTTP), указать адрес сервера отладки и имя информационной базы (может потребоваться перезапуск). В моем случае это выглядит так:
Настройка отладки для автономного сервера 1С
В самом клиентском приложении также нужно указать сервер отладки (меню Сервис — Параметры…), например так:
Настройка клиентского приложения
После всего можно будет подключить предмет отладки через соответствующее меню (Главное меню — Отладка — Подключение…)
Конфигурационные файлы
Конфигурационный файл можно создать вручную, а можно при помощи утилиты администрирования ibcmd. Например:
ibcmd.exe server config init —dbms=mssqlserver —db-server=192.168.0.15 —db-user=sa —db-pwd=Z123456z —db-name=test01 —name=test03 —base=webAccess
В данном случае текст конфигурационного файла будет выведен прямо в консоль:
Создание конфигурационного файла
Что бы записать все это в файл на диске можно воспользоваться специальным параметром —out :
ibcmd.exe server config init —dbms=mssqlserver —db-server=192.168.0.15 —db-user=sa —db-pwd=Z123456z —db-name=test01 —name=test03 —base=webAccess —out=C:\test.conf
Или стандартными средствами:
ibcmd.exe server config init —dbms=mssqlserver —db-server=192.168.0.15 —db-user=sa —db-pwd=Z123456z —db-name=test01 —name=test03 —base=webAccess > C:\test.conf
Кроме этого утилита ibcmd позволяет выполнять различные операции — создавать базы и загружать в них конфигурации и выгрузки. Для примера загрузим выгрузку (dt) в базу на MSSQL сервере:
ibcmd.exe infobase restore —dbms=mssqlserver —db-server=192.168.0.15 —db-user=sa —db-pwd=Z123456z —db-name=test01 C:\1Cv8.dt
Работа с ibcmd
На этом все, надеюсь эта статья была Вам интересна.
Если Вы нашли ошибку или неточность, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
(оценок: 5, средняя оценка: 4,20 из 5)
1С BACKEND ДЛЯ WEB? ДА ВЫ СМЕЕТЕСЬ.
Всем привет! С вами Низамов Илья! И сегодня я хотел поговорить о производительности 1С в качестве backend.
Кто-то делает сайты на 1С, кто-то ведет обмены через http сервисы, особенно актуально для мобильных приложений 1С. И понять заранее сколько одновременных пользователей потянет 1С зачастую невозможно. Если же проект коммерческий и подразумевает значительное расширение в будущем, то логичнее будет протестировать его сразу.
В этом нам поможет нагрузочный тест Apache benchmark. Я проведу тестирование http сервиса 1С на популярном web сервере для 1С, Apache версии 2.4, с настройками по умолчанию, так сказать из коробки. Потом сделаю тест http сервиса 1С при работе через автономный сервер. Сравним все это с доступом к обычному сайту и http сервису, написанному на node.js.
Все тесты проводятся на локальном компьютере, в реальных проектах, я бы рекомендовал тестировать на реальном оборудовании и интернет каналах.
Тест входит в стандартную установку Apache. Ниже приведу команды тестирования.
Тест Apache локальный сайт
У меня стоит достаточно простой локальный сайт, без php, просто html страничка.
Начнем с команды
ab -c 100 -n 10000 http://post24/
Тест создаст 100 конкурентных запросов и выполнит 10 000 GET запросов к нашему сайту.
По результату, на моем компьютере удалось выполнить максимум 260 параллельных запросов.
Тест HTTP сервиса 1С Apache
HTTP сервис 1С тоже простой и на GET запрос отдает JSON.
Команда:
ab -c 100 -n 10000 http://localhost/httpsrv/hs/ex/product
По результату, на моем компьютере удалось выполнить максимум 260 параллельных запросов.
Как мне кажется, тут проблема именно в настройках самого web сервера Apache.
Тест HTTP сервиса 1С автономный сервер
Запускаем автономный сервер 1С
“C:\Program Files\1cv8\8.3.16.1148\bin\ibsrv” –db-path=”Z:\1S\03 Обучение\HTTPTEST\Server” –name=serv1 –address=10.10.1.10
И опять тестируем
ab -c 100 -n 10000 http://10.10.1.10:8314/hs/ex/product
Автономный сервер выдержал 15 000 параллельных запросов и за тест было произведено 30 000 get запросов.
Тест HTTP сервиса на Node.js
Ниже код http сервиса на node.js, работать данный сервис будет на 3000 порту. Запускается сервис командой
node z:\www\testnode\test.js
Тестируем командой:
ab -c 100 -n 10000 http://localhost:3000/
На моем компьютере, данный сервис так же выдержал максимально 15 000 параллельных соединений и 30 000 запросов.
Так как результаты схожи с автономным сервером 1С, то возможно тут уже ограничения моей операционной системы.
Как запустить 1С для обучения и авто-тестирования – официально и без лицензий
Сегодня будем решать две однотипные проблемы, которые появились у слушателей курса по тестированию:
- Я начинаю учиться на курсе по 1С – где ее взять?
- Я хочу запустить автоматическое тестирование – где взять отдельную лицензию?
С обучением это еще более-менее решается – можно использовать учебную версию платформы, но для многих задач она не подходит, поскольку имеет свои ограничения.
Для тестирования и вовсе отпадает в силу главного ограничения: Количество одновременно запущенных сеансов информационной базы ограничено одним сеансом.
А для тестов нужно как минимум 2 сеанса: 1-й – для менеджера тестирования и 2-й – для клиента тестирования. В некоторых ситуациях даже больше двух.
И далее мы смотрим на ситуацию глазам QA-инженера, которому не нужно что-то кодировать, но нужно как-то запускать свои 2 сессии для тестировани.
При этом будущий QA-инженер понимает, что
- ему вряд ли дадут доступ к серверу с нужными базами для проведения тестирования
- возможно никто не выделит ему отдельную лицензию для установки на свой локальный компьютер, так как компании используется многопользовательская лицензия на сервере
Хотя есть еще вариант – поставить эту учебную версию платформы, обучиться, через пару месяцев сдать экзамен, и тогда купить лицензию со скидкой 90% для разработчика 1С, как это описано здесь. Но это, как бы сказать… Не быстро как-то…
А что, если можно установить обычную версию 1С, которой будет достаточно для обучения и экспериментов с тестированием, не нарушая политики лицензирования 1С?
Что потребуется для установки
Рассмотрим ситуацию, когда Вы работаете в компании, где уже используется конфигурация 1С, и Вы хотите начать писать тесты.
Вам потребуются только две вещи:
- Платформа 8.3.20 (не ниже)
- База данных (не выгрузка базы в dt, а именно файловая база)
Платформу можно взять у IT-отдела или скачать с сайта ИТС. А в качестве базы данных можно взять демо-базу конфигурации, которая используется у Вас в компании.
Если у вас недостаточно мощный компьютер, то развернуть на нем конфигурацию типа 1С:ERP УП будет довольно сложно. Но для этих целей можно попросить у IT-отдела демо конфигурацию «Управляемое приложение», которая доступна для скачивания на сайте ИТС рядом со ссылками на платформу.
Установка платформы
Давайте теперь разберемся с тем, как устанавливать платформу. Обязательное требование – версия платформы не ниже 8.3.20, это важно, иначе может отличаться синтаксис.
Платформу Вы получите в виде архива, который надо распаковать и запустить файл setup.exe.
И нажимаем Далее:
Тут надо выбрать только две опции 1С:Предприятие – Тонкий клиент и Сервер 1С:Предприятие 8, и жмем Далее.
И снимаем флажок с установки сервера:
Потом нажимаем Далее, и затем будет еще одно окно с настройкой лицензий – там снимаем верхний флажок, так как нам не нужно устанавливать драйвер защиты.
Автономный сервер
Что именно нам нужно от платформы – так это автономный сервер. Это технология сейчас находится в бета версии, но нам для обучения ее будет вполне достаточно, так как автономный сервер позволяет запускать до трех клиентских сеансов без лицензии.
А этого нам, будущим QA-инженерам, будет достаточно, так как для написания тестов нам достаточно и двух сессий – одна в режиме TestManager, другая – TestClient.
Чтобы убедиться в том, что автономный сервер установился, зайдем в папку найдем вот такой файл:
Обратите внимание – в вашем случае путь может отличаться.
Подключение базы данных
Следующий этап – это подключение базы.
Где взять базу для тестирования – решать вам (я писал об этом выше), я же буду показывать на примере конфигурации IRP (которую без проблем можно использовать для обучения):
Переходим по ссылке https://github.com/IRPTeam/IRP , и скачиваем демо базу:
Распаковываем желательно по короткому пути, чтобы не было пробелов, кириллицы, спецсимволов и прочего (в теории – это не должно влиять, но опыт подсказывает другое):
Обратите внимание на то, что это не файл выгрузки базы данных с расширением .dt, а это именно файловая база 1Cv8.1CD.
Запускаем автономный сервер
Для этого идем в папку, где установлена 1С, и находим файл ibsrv. Кликаем по нему правой кнопкой мыши и отправляем ярлык на рабочий стол:
Далее идем на рабочий стол и кликаем по ярлыку правой кнопкой мыши, выбираем Свойства и прописываем путь к базе:
То есть в конце строки ставим пробел и дописываем:
Если в пути есть пробелы, то путь базы нужно взять в кавычки.
Сохраняем изменения и запускаем этот ярлык. После этого должно появиться вот такое черное окно:
Его закрывать нельзя: если закроете, то не сможете попасть в базу – тогда нужно будет его снова запустить.
А теперь давайте проверим, что у нас все работает. Для этого просто откроем базу в браузере по адресу http://localhost:8314. Если все прошло хорошо, то нас встретит окно ввода логина:
И мы сможем попасть в базу:
В базе уже есть данные, с которыми можно писать простые тесты и обучаться.
Подключаем базу в список баз
И последний этап – это подключить базу в режиме тест менеджера и проверить, что все работает. Запускаем ярлык 1С, нажимаем Добавить, выбираем опцию Добавить существующую базу, и указываем путь к базе:
Нажимаем Далее и не забываем указать ключ /TestManager:
Теперь давайте запустим базу и убедимся, что она открылась в режиме менеджера тестирования:
Спасибо компании 1С за интересный инструмент!
Подведем итог
Может показаться, что в статье мы просто рассказали, как скачать конфигурацию и установить платформу, прописав некоторые параметры в ярлыке. Но для организации процесса тестирования этого будет достаточно.
Да, конфигуратор запустить не получится, и если Вы хотите открывать любую конфигурацию и не испытывать ограничений в работе, то придется приобрести лицензию.
Используя учебную платформу, Вы сможете зайти в конфигуратор или запустить толстый клиент, но сама учебная платформа ограничит Вас в количестве сеансов, которые необходимы для процесса тестирования.
Поэтому не упускайте шанс запустить 1С официально без лицензий, а то вдруг 1С уберет эту функциональность (хотя, вряд ли).