Статус: Активный участник
Группы: Участники
Зарегистрирован: 17.09.2014(UTC) Сообщений: 123 Сказал «Спасибо»: 5 раз Поблагодарили: 2 раз в 2 постах
|
Возможно ли создать асинхронную версию браузерного плагина? Интересует главным образом, чтобы долговыполняющиеся методы создания-проверки подписи были асинхронные, т.е. мы могли бы отправить запрос на подписание, подписаться на событие ошибки/окончания и в них уже взять ответ? чтобы при подписи нескольких файлов не блокировался интерфейс и в приципе ускорить процесс?
Пытался сделать что-то подобное с помощью Web Workers, но возникла проблема с тем, что в них нельзя создавать com-объекты и получать доступ к плагинам, соответственно на этом все встало.
Есть какие-то наработки в этом направлении?
|
|
|
|
Статус: Вам и не снилось
Группы: Администраторы
Зарегистрирован: 24.12.2007(UTC) Сообщений: 831 Откуда: Крипто-Про
Сказал(а) «Спасибо»: 1 раз Поблагодарили: 48 раз в 44 постах
|
Можете написать свой асинхронный плагин. :) Или можете подождать нашего, который мы сделаем ближе к середине этого года. |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 17.09.2014(UTC) Сообщений: 123 Сказал «Спасибо»: 5 раз Поблагодарили: 2 раз в 2 постах
|
написать то можно, но тогда нужно будет обновлять сразу 2 плагина) всмысле свой и возможно новые версии com-библиотек. А что за ваш в середине года? можно поподробнее на этом моменте?)))
|
|
|
|
Статус: Вам и не снилось
Группы: Администраторы
Зарегистрирован: 24.12.2007(UTC) Сообщений: 831 Откуда: Крипто-Про
Сказал(а) «Спасибо»: 1 раз Поблагодарили: 48 раз в 44 постах
|
Мы планируем в новой версии плагина поддержать в т.ч. асинхронный интерфейс. Можно будет пользоваться и по-старому и по-новому. |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 17.09.2014(UTC) Сообщений: 123 Сказал «Спасибо»: 5 раз Поблагодарили: 2 раз в 2 постах
|
Это очень интересно, а когда это примерно ожидается и какой примерный список нововведений? Может есть тема, где обсуждается/тестируется новая версия? Отредактировано пользователем 20 января 2015 г. 12:40:27(UTC)
| Причина: Не указана
|
|
|
|
Статус: Вам и не снилось
Группы: Администраторы
Зарегистрирован: 24.12.2007(UTC) Сообщений: 831 Откуда: Крипто-Про
Сказал(а) «Спасибо»: 1 раз Поблагодарили: 48 раз в 44 постах
|
Нововведение - асинхронный интерфейс. Когда ожидается - я уже писал выше. Обсуждения новой версии пока нет. Можно эту тему превратить в обсуждение, если у вас есть интерес. |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 17.09.2014(UTC) Сообщений: 123 Сказал «Спасибо»: 5 раз Поблагодарили: 2 раз в 2 постах
|
Ясно. Интерес есть - очень нужна такая штука. Если есть что обсудить - потестить, я готов поучавствовать. И в тестировании pre-версий в реальной работе тоже Отредактировано пользователем 20 января 2015 г. 14:30:03(UTC)
| Причина: Не указана
|
|
|
|
Статус: Вам и не снилось
Группы: Администраторы
Зарегистрирован: 24.12.2007(UTC) Сообщений: 831 Откуда: Крипто-Про
Сказал(а) «Спасибо»: 1 раз Поблагодарили: 48 раз в 44 постах
|
Может у вас есть какие-нибудь мысли-пожелания по асинхронному интерфейсу? |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 17.09.2014(UTC) Сообщений: 123 Сказал «Спасибо»: 5 раз Поблагодарили: 2 раз в 2 постах
|
1) сделать возможно похожий на .net Task интерфейс, который не блокирует выполнение, а возвращает управление сразу, запуская отдельный поток. С подпиской на события - начато, в процессе (может даже прогресс-сообщения выдавать, но это не обязательно), ошибка и т.д.
2) не знаю насколько это все возможно реализовать в плагине, но хотелось бы видеть интерфейс похожий на jQuery.ajax. и там выставлять параметр async:true к примеру. Может к плагину сделать небольшой js- скрипт в комплекте, реализующий эти функции. это позволит абстрагироваться от ком интерфейсов. я в параллельной ветке "фантомная ошибка" приводил тестовую страницу, где что-то похожее реализуется через Deferred объект, но это дает совсем небольшой плюс к скорости, т.к. основая логика все равно блокирующая.
3) по поводу самого плагина - хотелось бы все com исключения внутренние как-то "переводить" на понятный язык, т.е. если свалилась та или иная ошибка - знать хоть в какую сторону копать - сервисы УЦ не работают или инет пропал или сертификаты корневые не в доверенных или еще что, т.к. "элемент не найден", к примеру, не сразу очевидно говорит о том, что серт-т не в доверенных. Если невозможно реализовать это в плагине на стороне COM, то может сделать это в обвязке JS из пункта 2. я бы и сам сделал, но не знаю всех кодов ошибок, и что они могут означать.
4) также по асинхронности - возможно стоит сделать настройку распараллеливания самого мат. алгоритма на N-ядер. это может быть полезно для ускорения работы на современных машинах. Но основное время, насколько я понимаю, все равно тратится на ожидание ответов от сервисов удостоверяющего центра, поэтому это распараллеливание сильно процессор то не должно нагрузить.
Это то, что 1-е в голову пришло...
|
1 пользователь поблагодарил bazooka за этот пост.
|
|
|
Статус: Вам и не снилось
Группы: Администраторы
Зарегистрирован: 24.12.2007(UTC) Сообщений: 831 Откуда: Крипто-Про
Сказал(а) «Спасибо»: 1 раз Поблагодарили: 48 раз в 44 постах
|
Автор: bazooka 1) сделать возможно похожий на .net Task интерфейс, который не блокирует выполнение, а возвращает управление сразу, запуская отдельный поток. С подпиской на события - начато, в процессе (может даже прогресс-сообщения выдавать, но это не обязательно), ошибка и т.д.
2) не знаю насколько это все возможно реализовать в плагине, но хотелось бы видеть интерфейс похожий на jQuery.ajax. и там выставлять параметр async:true к примеру. Может к плагину сделать небольшой js- скрипт в комплекте, реализующий эти функции. это позволит абстрагироваться от ком интерфейсов. я в параллельной ветке "фантомная ошибка" приводил тестовую страницу, где что-то похожее реализуется через Deferred объект, но это дает совсем небольшой плюс к скорости, т.к. основая логика все равно блокирующая.
3) по поводу самого плагина - хотелось бы все com исключения внутренние как-то "переводить" на понятный язык, т.е. если свалилась та или иная ошибка - знать хоть в какую сторону копать - сервисы УЦ не работают или инет пропал или сертификаты корневые не в доверенных или еще что, т.к. "элемент не найден", к примеру, не сразу очевидно говорит о том, что серт-т не в доверенных. Если невозможно реализовать это в плагине на стороне COM, то может сделать это в обвязке JS из пункта 2. я бы и сам сделал, но не знаю всех кодов ошибок, и что они могут означать.
4) также по асинхронности - возможно стоит сделать настройку распараллеливания самого мат. алгоритма на N-ядер. это может быть полезно для ускорения работы на современных машинах. Но основное время, насколько я понимаю, все равно тратится на ожидание ответов от сервисов удостоверяющего центра, поэтому это распараллеливание сильно процессор то не должно нагрузить.
Это то, что 1-е в голову пришло... 1) Примерно так и будет. Пока рабочий вариант - все методы и свойства будут возвращать не результат, а Promise. Для присвоения свойства будет отдельный способ "подождать результата". Прогресс-сообщений не планируем, т.к. осмысленные проценты выполнения взять неоткуда. 2) JS-модуль для абстрагирования тоже планируем сделать. Может быть не сразу. 3) Мысль интересная, подумаем. 4) Лежащее под плагином CryptoAPI может параллелиться только на уровне использования разных хэндлов криптографических объектов. Создание усовершенствованной подписи можно немного ускорить путём распараллеливания на уровне выше CryptoAPI, но выигрыш будет мизерный по сравнению с трудозатратами. В асинхронном плагине вы сможете создавать или проверять множество подписей одновременно, и это будет происходить в разных потоках. |
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close