21.04.2021, 14:28 | #11 |
Участник
|
Цитата:
Цитата:
Сообщение от mazzy
дополнительные вводные, которые были уточнены по ходу ветки и в личной переписке:
* "передать" в смысле "отправить" * в аксапте есть recId и нумераторы * в аксапте нет встроенной поддержки потоков (stream). * аксапта 2009 работает на .net 3.5 * аксапта 2012 работает на .net 4.0 (не 4.5) * размер элемента коллекции в Аксапте до 8Кб * размер коллекции до 100500 элементов, но вряд ли больше 2^32 На тему проектирования интеграций есть хорошая статья у Дениса Трунина, где он предлагает для начала определиться с такими моментами:
Цитата:
Сообщение от mazzy
* вместо WCF можно обсуждать любой другой брокер/транспорт
* предполагаем, что middlware отсутствует. но мы можем сделать любой * для простоты предполагаем, что все компоненты под нашим контролем и вопросы безопасности решены что беспокоит в первую очередь - накладные расходы на передачу каждого сообщения. Цитата:
В обсуждении много говорилось про очереди, шины данных и т.п. По-моему, если нужно перебрасывать между двумя системами такие объемы данных, стоит посмотреть в сторону какого-нить RabbitMQ хотя бы. Разбивать ли коллекцию из 100500 элементов на блоки при передаче? Решать, конечно, на местах, но я бы тут вспомнил про то, что в ядре, начиная с AX2009, есть ограничение на размер буфера под значимые типы (тот же string), которое по умолчанию, кажется, равно 1Мб - см. Падает клиент при прикреплении файла. Так что если утоптать 100500 элементов в один большой XML/JSON, то на принимающей стороне с ним может быть непросто работать. Я бы в связи с этим постарался разбивать передаваемые данные на блоки меньше 1Мб каждый. Цитата:
Цитата:
Для построения метровой башни требуется твердая рука, ровная поверхность и 10 пивных банок, для башни же в 100 раз более высокой недостаточно иметь в 100 раз больше пивных банок. Такой проект требует совершенно иного планирования и конструирования.
|
|
|
|