Есть Proxy, который оборачивает часть проекта, написанного на скриптовом языке. Язык может возвращать результаты вызовов только в виде строк. Вызовов несколько, и все предназначены для сбора некоторой текстовой информации. Проблема в том, что разные вызовы возвращают разные коллекции, а у возвращаемого значения есть ограничение по объему.
Вопрос в том, как архитектрурно формировать коллекции так, чтобы в сериализованном виде они не превосходили некоторый размер? Коллекции можно формировать за несколько вызовов.
Здравствуйте, Hard_Club, Вы писали:
H_C>Вопрос в том, как архитектрурно формировать коллекции так, чтобы в сериализованном виде они не превосходили некоторый размер? Коллекции можно формировать за несколько вызовов.
Возвращать все, что влезет, и признак "читай еще"?
Вообще — здесь надо наложить ограничение на размер одного элемента коллекции — он должен быть не больше окна передачи.
H_C>>Вопрос в том, как архитектрурно формировать коллекции так, чтобы в сериализованном виде они не превосходили некоторый размер? Коллекции можно формировать за несколько вызовов. N_C>Возвращать все, что влезет, и признак "читай еще"?
N_C>Вообще — здесь надо наложить ограничение на размер одного элемента коллекции — он должен быть не больше окна передачи.
хороший совет. но элемент нужно будет еще сериализировать. а что если я работаю с большим количеством мелких?
Здравствуйте, Hard_Club, Вы писали:
H_C>хороший совет. но элемент нужно будет еще сериализировать.
Так смотреть на размер в сериализованном виде. Это можно сделать или физически сериализовав элемент или написать формулу, по которой можно будет высчитать размер элемента.
H_C>а что если я работаю с большим количеством мелких?
ну так я вроде написал: возвращать все, что влезет и признак "читай еще". Как вариант, сериализовывать все сразу, далее архивировать, преобразовывать через BASE64 и возвращать кусками с тем-же признаком. Можно и не архивировать, а возвращать всегда кусками определенного размера — из общего массива символов, куда были сериализованы все элементы коллекции.
При возврате кусками определенного размера признаком окончания передачи будет любой кусок менее размера окна. Так примерно организовано в протоколе TFTP.