|
|
bondkim137 |
Push vs Pull 15.11.2015, 22:48 |
|
07/02/12 1438 Питер
|
Последний раз редактировалось bondkim137 15.11.2015, 22:49, всего редактировалось 1 раз.
В паттернах проектирования ПО часто применяются так называемые push- и pull- модели последовательной обработки данных. Под последовательной обработкой данных понимаются цепи обработки информации, в которых каждое звено делает свою работу и передает данные следующему в цепочке. Push-модель подразумевает вызовы в сторону, сонаправленную с передачей данных. Pull-модель подразумевает вызовы в противоположную сторону. Говоря другими словами, в Push модели каждое звено вызывает следующее, как только у него готовы данные на выход. В Pull модели каждое звено вызывает предыдущее, как только ему нужна следующая порция данных. Бывают также и звенья-переходники. pull в push конвертируется очень просто и такие модули, как правило легче реализовать. push в pull конвертируется сложнее всего, нуждается в буферизации и обработки underflow-случаев. Нюансы в построении той или иной архитектуры возникают в первую очередь при необходимости блокировать вызовы. В pull модели, как правило, всвязи с недостатком данных в первом звене (например при приеме по сети). В push модели, как правило, всвязи с невозможностью принять данные в последнем звене (например, при передаче по сети). Также архитектура усложняется проблемой выделения буферов под output-данные на каждом звене - при обработке большого кол-ва данных необходимо минимизировать дополнительные холостые копирования данных.
Вопрос в том, как лучше организовать последовательную обработку данных. Хочется собрать имеющиеся работы и опыт участников форума в этой области проектирования ПО.
|
|
|
|
|
|
Страница 1 из 1
|
[ 1 сообщение ] |
|
Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы