Оправдано ли использование SOAP в 1С для организации сессионного ключа для пользователей интернет магазина?
Есть самописная база 1С в связке с MS SQL 2014 (не express, лицензия на 4-е ядра), в которой реализован механизм хранения пользовательских данных (личные данные, e-mail и пароли) так же в данной базе хранятся данные по заказам пользователей и статусам этих заказов + файлы отгрузочных документов, договоров. Планируется самописная CMS на удаленном linuх сервере, между CMS и 1С планируется VPN канал, по данному каналу должна происходить односторонняя репликация из MS SQL в некую БД CMS в реальном времени по товарным позициям и папки с фотографиями, т.е. на удаленном сервере будут храниться только товары их описание, доступность, цены и фотографии.
Когда пользователь проходит авторизацию на сайте в личный кабинет, CMS обращается по SOAP в базу 1С, и если пароль и логин верный (1С генерирует сессионный ключ на N часов), по SOAP подгружаются данные из 1С по заказам (на странице не более 9-ти заказов), при переключении на страницы происходит подгрузка данных по заказам расположенным в более ранние периоды.
Насколько оправдано использование SOAP для такой авторизации и подгрузки личных данных из БД ?
Может есть более оптимальные решения ?
Повторюсь, задача не размещая личные данные на удаленном веб сервере, организовать с ними работу через удаленный веб сервер.
SOAP это только протокол и его использование - это выбор разработчика. Есть другие механизмы по взаимодействию 1С и сторонних систем. Выбирайте, тот который вам более знаком/удобен. В данном случае не вижу ничего плохого в вашем варианте.
мне стало интересно, и я отправил это решение нашему специалисту, ниже его ответ, думаю будет познавательно.
это тот же прямой доступ к таблицам
только в профиль БЕЗ ограничения по правам
только с промежуточной базой и Фреймворком для js заточенным под структуру 1С.
реплицируй всю базу 1С на sql web сервера и получай к ней доступ
будет быстрее дополнительного фреймвойрка на js
нам же не надо напрямую в браузере читать данные
можно обойтись и серверным чтением
но права...
будет доступ ко всем таблицам
плюс
опять же вопрос с записью новых данных
у 1С сложная структура присвоения идентификатора
если это делать сторонними средствами
возможно это приведет к неработоспособности базы в дальнейшем
не доверяю я внешним изменениям таблиц 1С
в лицензии 1С четко прописано что к базе sql нельзя получать доступ из других приложений кроме 1С, иначе работоспособность не гарантируется
у них же нет сертификации 1С совместимо
SOAP - самый тормозной способ обмена сайта с 1С. Раньше, во времена 8.1 приходилось использовать WebСервисы 1С, т.к. тупо небыло других механизмов. Сейчас есть HTTPСервис, который быстрее работает как на стороне сервера 1С, так и на стороне веб-сервера, т.к. инициализация soap-клиента - процедура небыстрая даже с кешированием wsdl.