Pipe and filter (труби та фільтри) (іноді також називають одностороння мережа потоків даних, англ. one-way data flow network) — це архітектурний стиль, в якому кожен компонент (фільтр) читає потоки даних на вході і створює потоки на виході. Обробка відбувається інкрементно, так що вивід даних може початись ще до того як ввід буде здійснено повністю.
Цей архітектурний стиль має важливе обмеження — кожен фільтер цілком незалежний від інших фільтрів, тобто архітектурі притаманна нульова зв'язність. Фільтри не мають спільного стану.
Переваги
- Простота. В системі з такою архітектурою кожен фільтр можна зрозуміти окремо від всієї іншої системи.
- Повторна використовність. Фільтри можна приєднувати до фільтрів за умови що вони мають сумісні інтерфейси.
- Розширюваність. Нові фільтри можна додавати в систему без ризику змінити поведінку інших частин.
- Підтримуваність. Старі фільтри можна просто замінити новими.
- Верифіковність. Систему з такою архітектурою просто аналізувати на вузькі місця в мережі та наявність взаємних блокувань.
- Простота розпаралелювання. Відсутність спільного стану дозволяє без додаткових модифікацій запускати фільтри паралельно.
Недоліки
- Довгі ланцюжки фільтрів можуть створювати затримки в обробці даних
- Якщо фільтр працює в пакетному а не потоковому режимі, тобто йому потрібно отримати всі дані перед тим як почати вивід (наприклад для сортування), це створюватиме затримки для всіх інших фільтрів.
- Потрібна додаткова архітектура, для фази початкової конфігурації системи. Всі фільтри потрібно запустити і правильно з'єднати трубами.
Uniform pipe and filter
Uniform pipe and filter — архітектурний стиль pipe and filter доповнений обмеженням яке вимагає щоб всі фільтри мали спільний інтерфейс. Найвідоміший приклад реалізації цього стилю — Unix, де кожен процес що може бути фільтром має інтерфейс що складається з стандартних потоків: одного вхідного потоку символів (stdin), та двох вихідних потоків символів (stdout та stderr).
Спільність інтерфейсу дозволяє з'єднувати фільтри незалежно написані різними розробниками, але з іншого боку, якщо дані надходять в іншому форматі, вимагає додавання адаптерів, що може зменшити продуктивність.
Див. також
Джерела
- Fielding, Roy (2000). Architectural Styles and the Design of Network-based Software Architectures (Ph.D.) (англійською) . Каліфорнійський університет в Ірвайні. с. 41—43. Архів оригіналу за 15 травня 2012. Процитовано 20 лютого 2009.
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Pipe and filter trubi ta filtri inodi takozh nazivayut odnostoronnya merezha potokiv danih angl one way data flow network ce arhitekturnij stil v yakomu kozhen komponent filtr chitaye potoki danih na vhodi i stvoryuye potoki na vihodi Obrobka vidbuvayetsya inkrementno tak sho vivid danih mozhe pochatis she do togo yak vvid bude zdijsneno povnistyu Cej arhitekturnij stil maye vazhlive obmezhennya kozhen filter cilkom nezalezhnij vid inshih filtriv tobto arhitekturi pritamanna nulova zv yaznist Filtri ne mayut spilnogo stanu PerevagiProstota V sistemi z takoyu arhitekturoyu kozhen filtr mozhna zrozumiti okremo vid vsiyeyi inshoyi sistemi Povtorna vikoristovnist Filtri mozhna priyednuvati do filtriv za umovi sho voni mayut sumisni interfejsi Rozshiryuvanist Novi filtri mozhna dodavati v sistemu bez riziku zminiti povedinku inshih chastin Pidtrimuvanist Stari filtri mozhna prosto zaminiti novimi Verifikovnist Sistemu z takoyu arhitekturoyu prosto analizuvati na vuzki miscya v merezhi ta nayavnist vzayemnih blokuvan Prostota rozparalelyuvannya Vidsutnist spilnogo stanu dozvolyaye bez dodatkovih modifikacij zapuskati filtri paralelno NedolikiDovgi lancyuzhki filtriv mozhut stvoryuvati zatrimki v obrobci danih Yaksho filtr pracyuye v paketnomu a ne potokovomu rezhimi tobto jomu potribno otrimati vsi dani pered tim yak pochati vivid napriklad dlya sortuvannya ce stvoryuvatime zatrimki dlya vsih inshih filtriv Potribna dodatkova arhitektura dlya fazi pochatkovoyi konfiguraciyi sistemi Vsi filtri potribno zapustiti i pravilno z yednati trubami Uniform pipe and filterUniform pipe and filter arhitekturnij stil pipe and filter dopovnenij obmezhennyam yake vimagaye shob vsi filtri mali spilnij interfejs Najvidomishij priklad realizaciyi cogo stilyu Unix de kozhen proces sho mozhe buti filtrom maye interfejs sho skladayetsya z standartnih potokiv odnogo vhidnogo potoku simvoliv stdin ta dvoh vihidnih potokiv simvoliv stdout ta stderr Spilnist interfejsu dozvolyaye z yednuvati filtri nezalezhno napisani riznimi rozrobnikami ale z inshogo boku yaksho dani nadhodyat v inshomu formati vimagaye dodavannya adapteriv sho mozhe zmenshiti produktivnist Div takozhKonveyer informatika Konveyer Unix Imenovanij kanalDzherelaFielding Roy 2000 Architectural Styles and the Design of Network based Software Architectures Ph D anglijskoyu Kalifornijskij universitet v Irvajni s 41 43 Arhiv originalu za 15 travnya 2012 Procitovano 20 lyutogo 2009