Comments 7
Поясните для тех кто не в теме: 1С в принципе выполняется в STA (я же прав?). Вы дергаете методы 1С из разных потоков, но он от этого MTA не становится… Тогда какой потаённый смысл этого?
0
Опыты показали, что на стороне 1С все выполняется в 1 поток. Но на стороне .Net действует многопоточность.
Потаенный смысл в следующем:
1. Само наличие веб-сервера внутри 1С
2. Полная подконтрольность — возможность управлять заголовками, кукисами и т.д.
3. Вспомогательный функционал, вынесенный в .Net будет многопоточным и эффективным. Например, кэширование ответов на стороне .Net.
4. За счет нескольких прослушивающих потоков меньшая вероятность потерять запрос.
5. Доступен сразу весь функционал .Net: можно возвращать JSON, RSS, REST, рисунки через его объекты. На рисунки можно «на лету» ставить водяные знаки.
Потаенный смысл в следующем:
1. Само наличие веб-сервера внутри 1С
2. Полная подконтрольность — возможность управлять заголовками, кукисами и т.д.
3. Вспомогательный функционал, вынесенный в .Net будет многопоточным и эффективным. Например, кэширование ответов на стороне .Net.
4. За счет нескольких прослушивающих потоков меньшая вероятность потерять запрос.
5. Доступен сразу весь функционал .Net: можно возвращать JSON, RSS, REST, рисунки через его объекты. На рисунки можно «на лету» ставить водяные знаки.
0
Я вам и без опытов мог это сказать: 1С работает в STA апартаментах.
1) веб сервер внутри 1С надо думать есть — раз оно умеет делать WS оконечные точки. Думаю вам стоит поковырять в том направлении…
4) насколько вероятность меньше? Цифры?
1) веб сервер внутри 1С надо думать есть — раз оно умеет делать WS оконечные точки. Думаю вам стоит поковырять в том направлении…
4) насколько вероятность меньше? Цифры?
0
1) 1С публикуется через веб-сервер Apache/IIS в 2х режимах: веб-сервисы (SOAP) и веб-клиент 8.2. Это негибко. Кроме этих протоколов есть другие популярные, например, JSON.
4) Как вы себе представляете вычисление абсолютных цифр? 1С выстроит все параллельные запросы в последовательное выполнение. Вероятность завершения по таймауту будет высокой.
При организации кэша на стороне .Net часть запросов пойдет без участия 1С в многопоточном режиме, что уменьшит вероятность завершения по таймауту.
На сколько выше или ниже в абсолютных цифрах — это тема отдельного исследования. Для данного метода достаточно знать, что лучше однопоточного HttpListener'а может быть многопоточный (благо .Net это позволяет). И желательно применение кэша на стороне .Net.
4) Как вы себе представляете вычисление абсолютных цифр? 1С выстроит все параллельные запросы в последовательное выполнение. Вероятность завершения по таймауту будет высокой.
При организации кэша на стороне .Net часть запросов пойдет без участия 1С в многопоточном режиме, что уменьшит вероятность завершения по таймауту.
На сколько выше или ниже в абсолютных цифрах — это тема отдельного исследования. Для данного метода достаточно знать, что лучше однопоточного HttpListener'а может быть многопоточный (благо .Net это позволяет). И желательно применение кэша на стороне .Net.
0
1. не понял, где многопоточность? 1с работает в 1 поток. Веб-сервисы 1с работают в несколько потоков.
2. полная подконтрольность — да. Но нужна ли она? Веб сервер — пусть будет веб сервером, учетная система — учетной системой.
3. в случае веб-сервисов 1с есть строго формализованрное API, в случае своего «велосипеда» его нужно изобретать, вести документацию, помнить обо всех изменениях и т.д.
4. вариант сайт, который обращается к 1с через веб сервисы намного более гибок, при грамотном проектировании можно менять части совершенно независимо друг от друга.
Ну и да — несколько тысяч хитов в сутки (маленький интернет-магазин, обращающийся в 1с в момент создания-резервирования заказа, расчета цен и т.п.) веб сервисы-выдерживают вообще не напрягаясь на очень среднем железе.
2. полная подконтрольность — да. Но нужна ли она? Веб сервер — пусть будет веб сервером, учетная система — учетной системой.
3. в случае веб-сервисов 1с есть строго формализованрное API, в случае своего «велосипеда» его нужно изобретать, вести документацию, помнить обо всех изменениях и т.д.
4. вариант сайт, который обращается к 1с через веб сервисы намного более гибок, при грамотном проектировании можно менять части совершенно независимо друг от друга.
Ну и да — несколько тысяч хитов в сутки (маленький интернет-магазин, обращающийся в 1с в момент создания-резервирования заказа, расчета цен и т.п.) веб сервисы-выдерживают вообще не напрягаясь на очень среднем железе.
0
1. Вспомогательный функционал, вынесенный в .Net будет многопоточным и эффективным. Например, кэширование ответов на стороне .Net. По поводу веб-сервисов замеров у меня нет, если есть замер производительности, прошу поделиться. Мои личные наблюдения относительно 1С, опубликованной через веб, говорят о том, что там нет многопоточности, хотя, казалось бы, должна быть. Наверняка есть особенности и в веб-сервисах.
2. Полная подконтрольность нужна в некоторых задачах, вот реальный вопрос от пользователей: «Реализована информационная система на базе платформы „1С: Предприятие 8.2“, в системе создан Web-Сервис, на который приходят запросы с необходимой информацией в теге header. Платформа „1С: Предприятие 8.2“ не позволяет считывать информацию в теге header.»
3. В случае с 1С протокол ограничен SOAP, что не гарантирует совместимости с др.платформами. В случае с предложенной технологией протокол SOAP'ом не ограничен, выбирайте любой: JSON, REST, XML или выдумывайте свой. Стандартные случаи хорошо документированы, так как это классы .Net Framework.
4. Не обязательно через веб-сервисы. Скоро предложу на критику еще один прогрессивный метод доступа на замену веб-сервисам.
Полностью согласен, что на полноценный веб-сервер не тянет и лучше сайты делать на IIS или Apache.
Но определенные задачи веб-сервер на стороне 1С все-таки решает: например, работает с оборудованием, мониторит состояние базы.
2. Полная подконтрольность нужна в некоторых задачах, вот реальный вопрос от пользователей: «Реализована информационная система на базе платформы „1С: Предприятие 8.2“, в системе создан Web-Сервис, на который приходят запросы с необходимой информацией в теге header. Платформа „1С: Предприятие 8.2“ не позволяет считывать информацию в теге header.»
3. В случае с 1С протокол ограничен SOAP, что не гарантирует совместимости с др.платформами. В случае с предложенной технологией протокол SOAP'ом не ограничен, выбирайте любой: JSON, REST, XML или выдумывайте свой. Стандартные случаи хорошо документированы, так как это классы .Net Framework.
4. Не обязательно через веб-сервисы. Скоро предложу на критику еще один прогрессивный метод доступа на замену веб-сервисам.
Полностью согласен, что на полноценный веб-сервер не тянет и лучше сайты делать на IIS или Apache.
Но определенные задачи веб-сервер на стороне 1С все-таки решает: например, работает с оборудованием, мониторит состояние базы.
0
Sign up to leave a comment.
Многопоточный веб-сервер для 1С: Предприятие средствами .Net Framework