Новини високих технологій
» » Потік даних: призначення, види, характеристика

Потік даних: призначення, види, характеристика

7-08-2018, 15:50
207
Наш світ просто не може обійтися без великої кількості даних. Вони передаються між різними об'єктами, і якщо цього не буде, то це означає тільки одне – людська цивілізація перестала існувати. Тому давайте розглянемо, що являє собою потік даних, як ним можна управляти, де він зберігається, які його обсяги і багато іншого.

Вступна інформація

В першу чергу нам необхідно розібратися з термінологією. Потік даних – це цілеспрямоване переміщення певної інформації. В якості кінцевого пункту призначення можуть бути широкі маси населення (телевізор), електронно-обчислювальні машини (Інтернет), ретранслятор (радіозв'язок) і так далі. Розрізняють різні види потоків даних. Їх класифікація може проводитися на підставі використовуваних засобів (телефон, Інтернет, радіозв'язок), місць застосування (компанія, зібрання людей), цільового призначення (цивільні, військові). Якщо цікавить їх ієрархія, функціональні процеси, пов'язані елементи, то будується діаграма потоків даних (ДПД). Вона необхідна для відстеження рухів, а також демонстрації того, що кожен процес при отриманні певної вхідної інформації забезпечує закономірні вихідні результати. Для показу цього положення можна побудувати нотації, відповідні методам Гейна-Сэрсона і Йордона-де Марко. В цілому модель потоків даних ДПД дозволяє розбиратися з зовнішніми сутностями, системами та їхніми елементами, процесами, накопичувачами і потоками. Її точність залежить від того, наскільки достовірна наявна вихідна інформація. Бо якщо вона не відповідає дійсності, то навіть найбільш досконалі методи не зможуть допомогти.


Про розміри і напрями

Інформаційні потоки даних можуть бути різного масштабу. Він залежить від безлічі факторів. Наприклад, взяти звичайний лист. Якщо написати саму пересічну фразу: «Сьогодні гарний і сонячний день», то вона займає не так вже й багато місця. Але от якщо закодувати її в двійковий код, зрозумілий комп'ютеру, то вона займе явно не один рядок. Чому? Для нас фраза «сьогодні гарний і сонячний день» закодована в зрозуміле і не викликає питань форму. Але ось комп'ютер сприймати її не може. Він реагує тільки на певну послідовність електронних сигналів, кожен з яких відповідає нулю або одиниці. Тобто, комп'ютера сприйняти цю інформацію неможливо, якщо вона не буде перетворена в зрозумілу йому форму. Оскільки мінімальне значення, якими він оперує, є восьмирозрядний біт, то закодований дані будуть виглядати таким чином: 00000000000000100000010 00000011 І це тільки перші чотири символи, які умовно значать «цього». Тому обробка потоку даних для нього є хоча і можливе, але специфічним заняттям. І якщо б люди спілкувалися таким чином, не складно уявити, якими б величезними були б наші тексти! Але тут є і зворотна сторона: менший розмір. Що під цим мається на увазі?


Справа в тому, що комп'ютери, незважаючи на те, що вони, на перший погляд, працюють неефективно, для всіх змін відводять дуже мало місця. Так, для зміни визначеної інформації необхідно тільки цілеспрямовано попрацювати з електронами. І вміст техніки буде залежати від того, на якому місці вони знаходяться. Завдяки малому розміру, незважаючи на гадану неефективність, комп'ютер може вмістити в собі значно більше інформації, ніж аркуш або співмірна жорсткого диска книга. В тисячі, а то й мільйони разів! І обсяг потоку даних, які він може пропускати через себе, виростає до приголомшливих значень. Так, щоб просто написати всі двійкові операції, здійснені одним потужним сервером за секунду, у звичайної людини можуть піти роки. А адже там може бути високоякісна графічна емуляція, безліч записів про зміни на біржі і безліч іншої інформації.

Про зберіганні

Ясна річ, що потоками даних все не обмежується. Вони йдуть від своїх джерел до одержувачам, які можуть просто ознайомитися з ними або навіть зберегти їх. Якщо говорити про людей, то важливе ми намагається зберегти в нашій пам'яті для відтворення в подальшому. Хоча це не завжди виходить, та й запам'ятатися може щось небажане. В комп'ютерних мережах тут на допомогу приходить база даних. Потік інформації, що передається по каналу, зазвичай обробляється системою управління, яка і вирішує, що і куди записувати у відповідності з отриманими інструкціями. Така система, як правило, на порядок більш надійна, ніж людський мозок, і дозволяє вмістити багато вмісту, легко доступного в будь-який момент часу. Але і тут не обійтися без проблем. В першу чергу не потрібно забувати про людський фактор: хтось пропустив інструктаж з безпеки, системний адміністратор не з належним завзяттям поставився до своїх обов'язків і всі – система вийшла з ладу. Але може бути і банальна помилка потоку даних: немає потрібного вузла, шлюз не працює, неправильний формат і кодування передачі даних, і безліч інших. Навіть можливий елементарний збій інформаційної техніки. Наприклад, встановлений поріг, що на дев'ять мільйонів операцій, що здійснюються комп'ютером, має бути не більше однієї помилки виконання. На практиці їх частотність значно менше, можливо навіть сягає значення одне на мільярди, але, тим не менш, вони все ж є.

Аналіз

Зазвичай потоки даних існують не самі по собі. Хто зацікавлений у їх існування. І не просто в одному факті, щоб вони були, а ще управлінні ними. Але це, як правило, не надається можливим без попереднього аналізу. А для повноцінного вивчення існуючої ситуації одного тільки вивчення становища може бути недостатньо. Тому зазвичай аналізуються усі система, а не тільки одні потоки. Тобто окремі елементи, їх групи (модулі, блоки), взаємозв'язку між ними і так далі. Аналіз потоку даних хоч і є при цьому невід'ємною частиною, але окремо не проводиться із-за того, що отримані результати є занадто відірваними від цілісної картини. При цьому часто здійснюється перестановка сутностей: деякі зовнішні розглядаються як частина системи, а ряд внутрішніх виноситься за рамки інтересу. При цьому дослідження має поступальним характером. Тобто, воно спочатку розглядається всією системою, потім вона розділяє його на складові частини, і тільки потім йде визначення потоків даних, з якими доводиться мати справу. Після того як все ретельно проаналізовано, можна вирішувати питання з управлінням: куди, що, в якій кількості буде йти. Але це ціла наука.

Що являє собою управління потоком даних?

По суті, це можливість направляти їх певним одержувачам. Якщо говорити про окремих людей, то тут все дуже просто: інформація, яка є у нас, управляється нами ж. Тобто ми вирішуємо, що говорити, а про що краще промовчати. Управління потоком даних з позиції комп'ютерної техніки – це не так легко. Чому? Для того, щоб повідомити іншій людині певну інформацію, достатньо відкрити рот і напружити голосові зв'язки. Але техніці таке недоступне. Тут управління потоком даних є справою складною. Згадаймо про вже згадану звичайною фразою: «Сьогодні гарний і сонячний день». Все починається з її перекладу в двійковий код. Потім необхідно встановити зв'язок з маршрутизатором, роутером, коннектором або іншим пристроєм, націленим на отримані даних. Наявну інформацію необхідно закодувати, щоб вона прийняла таку форму, яка може передаватися. Наприклад, якщо планується пересилання файлу по світовій Мережі з Білорусі в Польщу, то він розбивається на пакети, які потім і відправляються. Причому йдуть не тільки наші дані, але і безліч інших. Адже кошти пересилки і кабелі передачі завжди одні і ті ж. Вкриває світ мережа потоків даних дозволяє отримувати інформацію чого завгодно з будь-якої точки світу (при наявності необхідних коштів). Управляти таким масивом – справа проблематична. Але ось якщо мова йде про одному підприємстві або провайдера, то це вже зовсім інше. Але в таких випадках під управлінням зазвичай розуміють тільки те, куди направляти потоки, і чи потрібно їх взагалі пропускати.

Моделювання

Говорити про те, як працює потік передачі даних в теорії – це справа нескладна. Але не всім може бути зрозуміло, що він собою являє. Тому давайте розглянемо приклад і змоделюємо можливі сценарії. Припустимо, що є певне підприємство, на якому існують потоки даних. Вони для нас представляють найбільший інтерес, але спочатку необхідно розібратися з системою. В першу чергу слід згадати про зовнішні сутності. Вони є матеріальними об'єктами або фізичним особами, які виступають у ролі джерел або приймачів інформації. В якості прикладу можна навести склад, клієнтів, постачальників, персонал, замовників. Якщо певний об'єкт або система визначаються як зовнішня сутність, то це говорить про те, що вони знаходяться за межами аналізованої системи. Як уже раніше говорилося, в процесі вивчення деякі з них можуть переноситися всередину і навпаки. На загальній схемі її можна зобразити у вигляді квадрата. Якщо будується модель складної системи, то її можна уявити в самому узагальненому вигляді або декомпозировать на ряд модулів. Їх модуль служить для ідентифікації. Розміщуючи довідкову інформацію, краще обмежитися найменуванням, критеріями визначення, доповненнями та вхідними елементами. Також виділяються процеси. Їх робота здійснюється на основі вхідних даних, що поставляються потоками. У фізичній реальності це може бути представлено як обробка одержуваної документації, прийняття до виконання замовлень, отримання нових конструкторських розробок з їх подальшою реалізацією. Всі отримані дані повинні використовуватися для запуску певного процесу (виробництва, контролю, коригування).

І що ж далі?

Нумерація використовується для ідентифікації. Завдяки їй можна дізнатися про те, який потік, звідки, навіщо і як дійшов і запустив певний процес. Іноді інформація виконує свою роль, після чого знищується. Але це не завжди. Часто вона надсилається для зберігання на накопичувач даних. Під цим розуміється абстрактне пристрій, придатний для зберігання інформації, яка може бути у будь-який момент часу вилучено. Більш просунута його версія ідентифікується як база даних. Зберігаються в ній відомості повинні відповідати прийнятій моделі. На потік даних покладається визначення інформації, яка буде передана через конкретне з'єднання від джерела до одержувача (приймача). У фізичній реальності він може бути представлений у вигляді електронних сигналів, що передаються по кабелях, що йдуть по пошті листами, флешками, лазерними дисками. При побудові схематичного малюнка для вказівки напряму потоку передачі даних використовується символ стрілочки. Якщо вони йдуть у обидві сторони, то можна просто провести лінію. Або за допомогою стрілочок вказати, що дані передаються між об'єктами.

Побудова моделі

Головна переслідувана мета – це описати систему зрозумілим і ясним мовою, приділяючи увагу всім рівнями деталізації, в тому числі і при розбитті системи на частини з урахуванням відносин між різними складовими. На цей випадок передбачені такі рекомендації: Розміщувати на кожній частині не менше трьох і не більше семи потоків. Така верхня межа встановлена в зв'язку з обмеженнями можливості одночасного сприйняття однією людиною. Адже якщо розглядається складна система з великою кількістю зв'язків, то в ній буде складно зорієнтуватися. Нижня межа встановлена, виходячи із здорового глузду. Бо проводити деталізацію, на якій буде зображений тільки один потік даних, нераціонально. Не захаращувати простір схеми неістотними для даного рівня елементами. Декомпозицію потоків слід проводити разом з процесами. Ці роботи повинні йти одночасно, а не в порядку черги. Для позначення слід виділяти ясні, що відображають суть імена. Абревіатури бажано не використовувати. При вивченні потоків слід пам'ятати, що розібратися з усім нахрапом можливо, але краще зробити все акуратно і в кращому вигляді. Адже навіть якщо людина, що становить модель, все розуміє, то він її робить, майже напевно, не для себе, а для інших людей. І якщо керівник підприємства не зможе зрозуміти, про що ж йде мова, то вся праця буде марний.

Специфічні моменти моделювання

Якщо створюється складна система (тобто така, в якій є десять і більше зовнішніх сутностей), то не зайвим буде створити ієрархію контекстних діаграм. При цьому на верхівку слід розміщувати не самий головний потік даних. А що ж тоді? Краще підійдуть підсистеми, в яких є потоки даних, а також вказати на зв'язки між ними. Після того як модель створена, її необхідно верифікувати. Або іншими словами – перевірити на повноту та узгодженість. Так, у завершеної моделі всі об'єкти (підсистеми, потоки даних, процеси) повинні бути деталізовані і докладно описані. Якщо були виявлені елементи, щодо яких ці дії не виконані, то необхідно повернутися на попередні кроки розробки і усунути проблему. Узгоджені моделі повинні забезпечувати збереження інформації. Іншими словами, всі вступники дані зчитуються, а потім записуються. Тобто коли моделюється ситуація на підприємстві і якщо щось залишилося неврахованим, то це говорить про те, що робота виконана неякісно. Тому, щоб не зазнавати подібних розчарувань, значну увагу необхідно приділяти підготовці. Потрібно перед роботою врахувати структуру досліджуваного об'єкта, специфіку передаються в потоках даних та багато іншого. Іншими словами – слід будувати концептуальну модель даних. У таких випадках виділяються зв'язки між сутностями і визначаються їх характеристики. При цьому якщо щось було взято за основу, то це не значить, що необхідно вхопитися і триматися за неї. При виникненні потреби концептуальну модель даних можна уточнити. Адже головна переслідувана мета – це розібратися з потоками даних, встановити, що і як, а не намалювати красиву картинку і пишатися собою.

Висновок

Безумовно, розглянута тема дуже цікава. Одночасно вона і дуже об'ємна. Для її повноцінного розгляду однієї статті мало. Адже якщо говорити про потоки даних, то тільки простою передачею інформації між комп'ютерними системами і в рамках людського спілкування справа не обмежується. Тут можна виділити багато цікавих напрямів. Взяти, приміром, нейронні мережі. Всередині них існує велика кількість різних потоків даних, які нам спостерігати дуже складно. Вони навчаються, зіставляють їх, перетворюють на свій розсуд. Слід згадати ще одну пов'язану тему – Великі дані. Адже вони формуються завдяки отриманню різних потоків інформації про безліч речей. Наприклад, соціальна мережа відстежує прихильності людини, чому він ставить оцінку «подобається», щоб формувати список його переваг і пропонувати більш ефективну рекламу. Або рекомендувати вступ в тематичну групу. Як бачите, варіантів використання і застосування одержуваних потоків даних і міститься в них інформації багато.
Цікаво по темі
Докладно про те, як зв'язати таблиці в access
Докладно про те, як зв'язати таблиці в access
Багато хто з нас працюють на виробництві, де найчастіше для ведення звіту використовуються бази даних. У даній статті ми докладно розповімо про те,
Що таке парсинг: мета і логіка
Що таке парсинг: мета і логіка
Обробка інформації характеризується динамікою вихідних даних або необхідністю обробки даних з різних джерел за алгоритмами. В обох випадках
Java: InputStream. Потоки введення
Java: InputStream. Потоки введення
У даній статті ми розглянемо базовий клас для потоків вводу даних в Java - InputStream. Розберемо основну його функціональність і реалізації, які