Наш мир просто не может обойтись без большого количества данных. Они передаются между различными объектами, и если этого не будет, то это означает только одно – человеческая цивилизация перестала существовать. Поэтому давайте рассмотрим, что собой представляет поток данных, как им можно управлять, где он хранится, каковы его объемы и много другое.
Вводная информация
В первую очередь нам необходимо разобраться с терминологией. Поток данных – это целенаправленное перемещение определенной информации. В качестве конечного пункта назначения могут быть широкие массы населения (телевизор), электронно-вычислительные машины (Интернет), ретранслятор (радиосвязь) и так далее. Различают различные виды потоков данных. Их классификация может проводиться на основании используемых средств (телефон, Интернет, радиосвязь), мест применения (компания, собрание людей), целевого назначения (гражданские, военные). Если интересует их иерархия, функциональные процессы, связанные элементы, то строится диаграмма потоков данных (ДПД). Она необходима для отслеживания движений, а также демонстрации того, что каждый процесс при получении определенной входной информации обеспечивает закономерные выходные результаты. Для отображения этого положения можно построить нотации, соответствующие методам Гейна-Сэрсона и Йордона де Марко. В целом модель потоков данных ДПД позволяет разбираться с внешними сущностями, системами и их элементами, процессами, накопителями и потоками. Ее точность зависит от того, насколько достоверна имеющаяся исходная информация. Ибо если она не соответствует действительности, то даже самые совершенные методы не смогут помочь.
О размерах и направлениях
Информационные потоки данных могут быть разного масштаба. Он зависит от множества факторов. Например, взять обычное письмо. Если написать самую что ни есть заурядную фразу: «Сегодня хороший и солнечный день», то занимает она не так уж и много места. Но вот если закодировать ее в двоичный код, понятный компьютеру, то она займет явно не одну строку. Почему? Для нас фраза «сегодня хороший и солнечный день» закодирована в понятную и не вызывающую вопросов форму. Но вот компьютер воспринимать ее не может. Он реагирует только на определенную последовательность электронных сигналов, каждый из которых отвечает нулю или единице. То есть, компьютеру воспринять эту информацию невозможно, если она не будет преобразована в понятную ему форму. Поскольку минимальное значение, которым он оперирует, является восьмиразрядный бит, то закодированный данные будут выглядеть таким образом: 0000000 00000001 00000010 00000011… И это только первые четыре символа, которые условно значат «сего». Поэтому обработка потока данных для него является хотя и возможным, но специфическим занятием. И если бы люди общались таким образом, то не сложно представить, какими бы огромными были бы наши тексты! Но здесь есть и обратная сторона: меньший размер. Что под этим подразумевается?
Дело в том, что компьютеры, несмотря на то что они, на первый взгляд, работают неэффективно, для всех изменений отводят очень мало места. Так, для изменения определенной информации необходимо только целенаправленно поработать с электронами. И содержимое техники будет зависеть от того, на каком месте они находятся. Благодаря малому размеру, несмотря на кажущуюся неэффективность, компьютер может вместить в себе значительно больше информации, нежели лист или соразмерная жесткому диску книга. В тысячи, а то и миллионы раз! И объем потока данных, которые он может пропускать через себя, вырастает до ошеломительных значений. Так, чтобы просто написать все двоичные операции, осуществленные одним мощным сервером за секунду, у обычного человека могут уйти годы. А ведь там может быть высококачественная графическая эмуляция, множество записей об изменениях на бирже и множество иной информации.
О хранении
Ясное дело, что потоками данных все не ограничивается. Они идут от своих источников к получателям, которые могут просто ознакомиться с ними или даже сохранить их. Если говорить о людях, то важное мы старается сберечь в нашей памяти для воспроизведения в дальнейшем. Хотя это не всегда получается, да и запомниться может что-то нежелательное.
В компьютерных сетях здесь на помощь приходит база данных. Поток информации, передаваемой по каналу, обычно обрабатывается системой управления, которая и решает, что и куда записывать в соответствии с полученными инструкциями. Такая система, как правило, на порядок более надежная, нежели человеческий мозг, и позволяет уместить много содержимого, легко доступного в любой момент времени. Но и здесь не обойтись без проблем. В первую очередь не нужно забывать о человеческом факторе: кто-то пропустил инструктаж по безопасности, системный администратор не с должным рвением отнесся к своим обязанностям и все – система вышла из строя. Но может быть и банальная ошибка потока данных: нет нужного узла, не работает шлюз, неправильный формат и кодировка передачи данных, и множество иных. Даже возможен элементарный сбой информационной техники. Например, установлен порог, что на девять миллионов операций, осуществляемых компьютером, должно быть не более одной ошибки выполнения. На практике их частотность значительно меньше, возможно даже достигает значение одно на миллиарды, но, тем не менее, они все же есть.
Анализ
Обычно потоки данных существуют не сами по себе. Кто-то заинтересован в их существовании. И не просто в одном факте, чтобы они были, а еще управлении ними. Но это, как правило, не предоставляется возможным без предшествующего анализа. А для полноценного изучения существующей ситуации одного только изучения сложившегося положения может быть недостаточно. Поэтому обычно анализируются все система, а не только одни потоки. То есть отдельные элементы, их группы (модули, блоки), взаимосвязи между ними и так далее. Анализ потока данных хоть и является при этом неотъемлемой частью, но в отдельности не проводится из-за того, что полученные результаты являются слишком уж оторванными от целостной картины. При этом часто осуществляется перестановка сущностей: некоторые внешние рассматриваются как часть системы, а ряд внутренних выносится за рамки интереса. При этом исследование обладает поступательным характером. То есть, оно сначала рассматривается всей системой, потом она разделяет его на составляющие части, и только затем идет определение потоков данных, с которыми приходится иметь дело. После того как все тщательно проанализировано, можно решать вопросы с управлением: куда, что, в каком количестве будет идти. Но это целая наука.
Что собой представляет управление потоком данных?
По сути, это возможность направлять их определенным получателям. Если говорить про отдельных людей, то здесь все очень просто: информация, которая есть у нас, управляется нами же. То есть мы решаем, что говорить, а о чем промолчать.
Управление потоком данных с позиции компьютерной техники – это не так же легко. Почему? Для того чтобы сообщить другому человеку определенную информацию, достаточно открыть рот и напрячь голосовые связки. Но технике такое недоступно. Здесь управление потоком данных является делом сложным.
Вспомним об уже упомянутой заурядной фразе: «Сегодня хороший и солнечный день». Все начинается с ее перевода в двоичный код. Затем необходимо установить связь с маршрутизатором, роутером, коннектором или другим устройством, нацеленным на полученные данных. Имеющуюся информацию необходимо закодировать, чтобы она приняла такую форму, которая может передаваться. Например, если планируется пересылка файла по мировой Сети из Беларуси в Польшу, то он разбивается на пакеты, которые затем и отправляются. Причем идут не только наши данные, но и множество иных. Ведь средства пересылки и кабели передачи всегда одни и те же. Укрывающая мир сеть потоков данных позволяет получать информацию чего угодно из любой точки мира (при наличии необходимых средств). Управлять таким массивом – дело проблематичное. Но вот если речь идет об одном предприятии или провайдере, то это уже совсем иное. Но в таких случаях под управлением обычно понимают только то, куда направлять потоки, и нужно ли их пропускать вообще.
Моделирование
Говорить о том, как работает поток передачи данных в теории – это дело несложное. Но не всем может быть понятно, что он собой представляет. Поэтому давайте рассмотрим пример и смоделируем возможные сценарии.
Допустим, что есть определенное предприятие, на котором существуют потоки данных. Они для нас представляют наибольший интерес, но сначала необходимо разобраться с системой. В первую очередь следует вспомнить о внешних сущностях. Они являются материальными объектами или физическим лицами, которые выступают в роли источников или приемников информации. В качестве примера можно привести склад, клиентов, поставщиков, персонал, заказчиков. Если определенный объект или система определяются как внешняя сущность, то это говорит о том, что они находятся за пределами анализируемой системы. Как уже ранее говорилось, в процессе изучения некоторые из них могут переноситься вовнутрь и наоборот. На общей схеме ее можно изобразить в виде квадрата. Если строится модель сложной системы, то ее можно представить в самом обобщенном виде или декомпозировать на ряд модулей. Их модуль служит для идентификации. Размещая справочную информацию, лучше ограничиться наименованием, критериями определения, дополнениями и входящими элементами. Также выделяются процессы. Их работа осуществляется на основе входящих данных, поставляемых потоками. В физической реальности это может быть представлено как обработка получаемой документации, принятие заказов к исполнению, получение новых конструкторских разработок с их последующей реализацией. Все получаемые данные должны использоваться для запуска определенного процесса (производства, контроля, корректировки).
И что же дальше?
Нумерация используется для идентификации. Благодаря ей можно узнать то, какой поток, откуда, зачем и как дошел и запустил определенный процесс. Иногда информация выполняет свою роль, после чего уничтожается. Но это не всегда. Часто она направляется для хранения на накопитель данных. Под этим подразумевается абстрактное устройство, пригодное для хранения информации, которая может быть в любой момент времени извлечена. Более продвинутая его версия идентифицируется как база данных. Хранящиеся в ней сведения должны соответствовать принятой модели. На поток данных возлагается определение информации, которая будет передана через конкретное соединение от источника к получателю (приемнику). В физической реальности он может быть представлен в виде электронных сигналов, передаваемых по кабелям, идущими по почте письмами, флешками, лазерными дисками. При построении схематического рисунка для указания направления потока передачи данных используется символ стрелочки. Если они идут в обе стороны, то можно просто провести линию. Или с помощью стрелочек указать, что данные передаются между объектами.
Построение модели
Главная преследуемая цель – это описать систему понятным и ясным языком, уделяя внимание всем уровням детализации, в том числе и при разбивке системы на части с учетом отношений между разными составляющими. На этот случай предусмотрены такие рекомендации:
- Размещать на каждой части не меньше трех и не более семи потоков. Такая верхняя граница установлена в связи с ограничениями возможности одновременного восприятия одним человеком. Ведь если рассматривается сложная система с большим количеством связей, то в ней будет сложно сориентироваться. Нижняя граница установлена, исходя из здравого смысла. Ибо проводить детализацию, на которой будет изображен только один поток данных, нерационально.
- Не загромождать пространство схемы несущественными для данного уровня элементами.
- Декомпозицию потоков следует проводить вместе с процессами. Эти работы должны идти одновременно, а не в порядке очереди.
- Для обозначения следует выделять ясные, отражающие суть имена. Аббревиатуры желательно не использовать.
При изучении потоков следует помнить, что разобраться со всем нахрапом возможно, но лучше сделать все аккуратно и в лучшем виде. Ведь даже если человек, составляющий модель, все понимает, то он ее делает, почти наверняка, не для себя, а для других людей. И если руководитель предприятия не сможет понять, о чем же идет речь, то весь труд будет напрасен.
Специфические моменты моделирования
Если создается сложная система (то есть такая, в которой есть десять и более внешних сущностей), то не лишним будет создать иерархию контекстных диаграмм. При этом на верхушку следует размещать не самый главный поток данных. А что же тогда?
Лучше подойдут подсистемы, в которых есть потоки данных, а также указать на связи между ними. После того как модель создана, ее необходимо верифицировать. Или иными словами – проверить на полноту и согласованность. Так, в завершенной модели все объекты (подсистемы, потоки данных, процессы) должны быть детализированы и подробно описаны. Если были выявлены элементы, в отношении которых эти действия не выполнены, то необходимо вернуться на предыдущие шаги разработки и устранить проблему.
Согласованные модели должны обеспечивать сохранность информации. Иными словами, все поступающие данные считываются, а затем записываются. То есть когда моделируется ситуация на предприятии и если что-то осталось неучтенным, то это говорит о том, что работа выполнена некачественно. Поэтому чтобы не испытывать подобных разочарований, существенное внимание необходимо уделять подготовке. Нужно перед работой учесть структуру изучаемого объекта, специфику передаваемых в потоках данных и многое другое. Иными словами – следует строить концептуальную модель данных. В таких случаях выделяются связи между сущностями и определяются их характеристики. При этом если что-то было взято за основу, то это не значит, что необходимо ухватиться и держаться за нее. При возникновении потребности концептуальную модель данных можно уточнить. Ведь главная преследуемая цель – это разобраться с потоками данных, установить, что и как, а не нарисовать красивую картинку и гордиться собой.
Заключение
Безусловно, рассматриваемая тема очень интересна. Одновременно она и очень объемная. Для ее полноценного рассмотрения одной статьи мало. Ведь если говорить про потоки данных, то только простой передачей информации между компьютерными системами и в рамках человеческого общения дело не ограничивается. Здесь можно выделить много интересных направлений. Взять, к примеру, нейронные сети. Внутри них существует большое количество различных потоков данных, которые нам наблюдать очень сложно. Они обучаются, сопоставляют их, преобразовывают на свое усмотрение. Следует вспомнить еще одну связанную тему – Большие данные. Ведь они формируются благодаря получению различных потоков информации о множестве вещей. К примеру, социальная сеть отслеживает привязанности человека, чему он ставит отметку «нравится», чтобы формировать список его предпочтений и предлагать более эффективную рекламу. Или рекомендовать вступление в тематическую группу. Как видите, вариантов использования и применения получаемых потоков данных и содержащейся в них информации много.