exam31 - stankin/inet-2022 GitHub Wiki

Билет 31

1. Понятие интероперабельности. Способы обеспечения организационной и семантической интероперабельности.

2. Понятие и технологии больших данных.

◀️ Реферат к вопросам экзамена по дисциплине Интернет-технологии 1 курса магистратуры ▶️

Выполнили: Баданов Артем Андреевич, ИДМ-22-07 Мухаметрахимов Тимур Азатович, ИДМ-22-06

1. Понятие интероперабельности

Понятие интероперабельности интероперабельность (interoperability): Способность двух или более информационных систем или компонентов к обмену информацией и к использованию информации, полученной в результате обмена.

техническая интероперабельность (technical interoperability): Способность к обмену данными между участвующими в обмене системами. Технический уровень описывает синтаксис или форматы передаваемой информации, заостряя внимание на том, как представлена информация в коммуникационной среде. Технический уровень включает такие ключевые аспекты, как открытые интерфейсы, службы связи, интеграция данных и промежуточный слой программного обеспечения (Middleware), представление и обмен данными, службы доступности и защиты информации. Техническая интероперабельность достигается главным образом за счет использования стандартных протоколов связи типа TCP/IP.

семантическая интероперабельность (semantic interoperability): Способность любых взаимодействующих в процессе коммуникации информационных систем одинаковым образом понимать смысл информации, которой они обмениваются. Данный уровень описывает семантические аспекты взаимодействия, т.е. содержательную сторону обмениваемой информации. Семантическая интероперабельность позволяет системам комбинировать полученную информацию с другими информационными ресурсами и обрабатывать ее смысловое содержание. Семантическая интероперабельность достигается за счет применения стандартов типа XML.

организационная интероперабельность (organizational interoperability): Способность участвующих систем достигать общих целей на уровне бизнес-процессов. Организационный уровень акцентирует внимание на прагматических аспектах взаимодействия (деловых или политических). На этом уровне согласуются бизнес-цели и достигаются соглашения о сотрудничестве между административными органами, которые хотят обмениваться информацией, хотя имеют отличающиеся внутреннюю структуру и процессы. Организационная интероперабельность имеет своей целью удовлетворить требования сообщества пользователей: службы должны стать доступными, легко идентифицироваться и быть ориентированными на пользователя. Организационная интероперабельность достигается не за счет применения стандартов (нормативно-технических документов), а за счет применения нормативно-правовых документов (соглашений, конвенций, договоров о сотрудничестве).

image

Эталонная модель интероперабельности

Эталонная модель интероперабельности представляет собой развитие семиуровневой базовой эталонной модели ВОС согласно ГОСТ Р ИСО/МЭК 7498-1-99
image

Основные этапы обеспечения интероперабельности

image

Последовательная реализация этапов должна привести к созданию интероперабельной системы. Для успешной реализации всего процесса достижения интероперабельности необходимо также создать "План разработки стандартов" и разработать необходимые стандарты, которые должны постоянно актуализироваться.
Примечание - Например, организацией OpenGridForum разработано около 200 стандартов. Разработка такого количества национальных стандартов, гармонизированных со стандартами OpenGridForum, в ближайшее время нереальна и нецелесообразна. Поэтому должен быть разработан документ, содержащий обоснованную очередность разработок национальных стандартов с учетом конкретных условий.
Кроме того, необходимо разработать глоссарий (термины и определения), чтобы все участники (пользователи, разработчики ИС и поставщики программно-аппаратных средств) на всех этапах достижения интероперабельности могли находить взаимопонимание.

Создание концепции

6.1.1 Концепция интероперабельности должна представлять собой нормативный документ, отражающий все возможные точки зрения и все аспекты обеспечения интероперабельности. К этим аспектам относятся следующие положения.
6.1.2 Положение о том, что одной из фундаментальных особенностей развития современных ИКТ выступает формирование гетерогенной ИКТ-среды. В такой среде возникает проблема взаимодействия разнородных компонентов (систем), получившая название "проблема интероперабельности". Основным способом для решения данной проблемы является планомерное и последовательное использование принципов открытых систем, в основе которых лежит использование методов функциональной стандартизации и согласованных наборов ИКТ-стандартов - профилей. Интероперабельность, наряду со свойствами "переносимость" и "масштабируемость", представляет важнейшее свойство открытых систем. Первоначально термин "интероперабельность" был введен только на техническом уровне (см. рисунок 1), он получил распространение за счет использования стандартных протоколов связи.
6.1.3 Положение о том, что в настоящее время термин "интероперабельность" получил расширенное значение. Можно говорить о "семантической" (смысловой) интероперабельности, которая достигается за счет использования "семантических" стандартов. Семантическая интероперабельность сама может структурироваться (синтаксическая, прагматическая, динамическая и т.д.). При этом выделяются "внутренняя" интероперабельность, которая относится к информационной инфраструктуре (корпоративной системе) организации, и "внешняя" интероперабельность, которая определяет конкурентоспособность организаций на рынке.
6.1.4 Положение о том, что интероперабельность представляет собой средство повышения конкурентоспособности организаций. Интенсивное применение ИКТ в различных организациях (на предприятиях, в исследовательских, образовательных, лечебных учреждениях и др.) привело к понятию "электронное предприятие" (e-enterprise). Соответственно возникло понятие "интероперабельность предприятия" (enterprise interoperability).
6.1.5 Положение о том, что проблема интероперабельности непосредственно связана с инновационностью продукции. Как известно, заключительный этап инновационной цепочки, начинающейся с фундаментальных исследований, - это этап выхода продукта на рынок. Для ИКТ-продуктов важным условием конкурентоспособности является интероперабельность, поэтому большинство компаний-производителей придают большое значение обеспечению интероперабельности своих продуктов и ведут целенаправленную техническую политику в этом направлении.
6.1.6 Положение о том, что стандарты, обеспечивающие интероперабельность, представляют собой "нейтральную полосу" в "войне стандартов". Как известно, в мире идет "война стандартов", в том числе и в области ИКТ-технологий, но основная война идет между стандартами на продукцию. Стандарты же открытых систем, в том числе стандарты, обеспечивающие интероперабельность, не являются "полем сражения", а скорее могут считаться "нейтральной полосой", хотя в их востребованности и разработке заинтересованы все участники (разработчики, поставщики и пользователи).
6.1.7 Положение о том, что интероперабельность связана со сдвигом парадигмы при создании информационных систем. Как известно, с течением времени произошел сдвиг парадигмы в построении ИС.
В настоящее время ИС строятся не как монолитные системы, а из коммерчески доступных программно-аппаратных модулей со стандартными интерфейсами, обеспечивающими интероперабельность, так называемые Commercial Of The Shelf products (COTS-products). Отсюда следует, что обеспечение интероперабельности - одно из главных требований при построении современных ИС.
6.1.8 В настоящее время используют множество определений понятия "интероперабельность", поскольку многие организации дают собственные определения, исходя из стоящих перед ними задач. В концепции должно быть указано определение понятия "интероперабельность", желательно данное официальной организаций по стандартизации. Наряду с понятием "интероперабельность" используется еще целый ряд родственных понятий, такие как совместимость на уровне протоколов передачи данных (coexistent), способность к соединению (interconnectable), способность к взаимодействию (interworkable).
6.1.9 Необходимо отметить также разницу между интегрированными системами и интероперабельными системами. Интегрированная система предполагает, что входящие в нее подсистемы работают по согласованному алгоритму или, другими словами, имеют единую точку управления. В интероперабельной системе входящие в нее подсистемы работают по независимым алгоритмам, не имеют единой точки управления, все управление определяется единым набором используемых стандартов - профилем.
6.1.10 Концепция должна содержать краткое описание всех этапов обеспечения интероперабельности с указанием особенностей для информационных систем конкретного класса.
6.1.11 Концепция должна содержать оценку экономического эффекта от достижения интероперабельности. Отсутствие необходимости разрабатывать дополнительные интерфейсы (переходные модули, шлюзы) при создании интероперабельных систем дает основной источник экономии.
6.1.12 В концепции указывают барьеры, препятствующие достижению интероперабельности, и подходы к их преодолению.
При необходимости в концепцию могут быть включены дополнительные положения, например положения о защите информации.
Концепция должна быть утверждена уполномоченным органом соответствующего уровня.
Примечание - Если речь идет об интероперабельности при создании электронного правительства, концепция должна быть утверждена на правительственном уровне; если речь идет об интероперабельности в области электронного здравоохранения - Минздравом РФ; если речь идет об интероперабельности в области электронного образования - Минобрнауки РФ и т.д.

2. Понятие и технологии больших данных.

Больши́е да́нные — обозначение структурированных и неструктурированных данных огромных объёмов и значительного многообразия, эффективно обрабатываемых горизонтально масштабируемыми программными инструментами, появившимися в конце 2000-х годов и альтернативных традиционным системам управления базами данных и решениям класса Business Intelligence. В широком смысле о «больших данных» говорят как о социально-экономическом феномене, связанном с появлением технологических возможностей анализировать огромные массивы данных, в некоторых проблемных областях — весь мировой объём данных, и вытекающих из этого трансформационных последствий.

image

Большие данные появились в 60-70 годах прошлого столетия вместе с первыми ЦОД (центры обработки данных). В 2005 году компании начали понимать масштабы создаваемого контента пользователями интернет-сервисов (Facebook, YouTube и др.). Тогда же начала работу первая платформа, предназначенная для взаимодействия с большими наборами данных, — Hadoop. Сегодня она представляет собой большой стек технологий для обработки информации. Чуть позже популярность начала набирать NoSQL — совокупность методов для создания систем управления большими данными.

Объем генерируемой информации стал увеличиваться с появлением крупных интернет-сервисов. Пользователи загружают фотографии, просматривают контент, ставят «лайки» и т.п. Вся эта информация собирается в больших объемах для дальнейшего анализа, после которого можно вносить улучшения в работу сервисов. Например, социальные сети используют большие данные для показа пользователям релевантной рекламы (то есть той, которая соответствует их потребностям и интересам) в таргете. Это позволяет соцсетям продавать бизнесу возможность проведения точных рекламных кампаний.

Основные свойства больших данных

Основные характеристики Big Data (больших данных) определяют как шесть «V»:

Volume — объём — от 150 Гб в сутки.

Velocity — скорость. Объём и содержимое Big Data ежесекундно меняются, поэтому собирать и обрабатывать их нужно на больших вычислительных мощностях. Например, сервис FlightRadar24, где отображаются все маршруты самолётов в режиме онлайн.

Variety — разнообразие. Массив больших данных может включать фото, видео и тексты, файлы разных объёмов и форматов, данные из множества разных источников. Обычные данные, как правило, однородные, например таблица Excel с Ф. И. О. каждого сотрудника.

Veracity — достоверность. Большие данные собирают только из источников, которым можно доверять, а для анализа используют точные и объективные методы. Поэтому корпорации и международные организации принимают стратегические решения на основе этих данных.

Variability — изменчивость. Большие данные обновляются в режиме онлайн, поэтому их поток нестабилен. На него влияют скорость передачи, изменение источников, действия пользователей и даже смена сезонов. При анализе данных нужно учитывать и прогнозировать все эти факторы. Например, данные об авиаперелётах стоит использовать с поправками на задержки рейсов и погодные условия, из-за которых меняются маршруты.

Value — ценность. Сами по себе данные ничего не значат, но на их основе можно сделать глубокие выводы и принимать взвешенные решения. Например, проанализировать трафик на дорогах в течение года и понять, как лучше построить маршруты для городского транспорта.

Данные также бывают:

Структурированными — то есть уже размеченными по определённым параметрам. Допустим, данные о ключевых медицинских показателях пациентов: температура, давление, анализы крови и ЭКГ.

Частично структурированными, например файлы разного формата с записями о стихийных бедствиях в регионе за последние пять лет.

Неструктурированными, например фото, музыка и сообщения всех пользователей VK.

Технологии больших данных В России технологии больших данных составляют такие инструменты, как spark + hdfs. Также используются дополнительные инструменты для аналитики, мониторинга качества и количества данных, мониторинг ресурсов кластера.

Spark – это движок для расчета данных в котором можно использовать такие языки, как scala,python,sql,java. Алгоритм работы предельно прост – спарк вытягивает сырые, необработанные данные, далее разработчик программирует запросы к этим данным, получая отсортированную по критериям витрину(таблицу).

Каждое Spark-приложение состоит из управляющего процесса – драйвера (Driver) – и набора распределённых рабочих процессов – исполнителей (Executors).

Spark Driver Driver запускает метод main() нашего приложения. Здесь создаётся SparkSession. Обязанности Spark Driver:

  • Запускает задание на узле в нашем кластере или на клиенте и планирует его выполнение с помощью менеджера кластера
  • Отвечает на пользовательскую программу или ввод
  • Анализирует, планирует и распределяет работу между исполнителями
  • Хранит метаданные о запущенном приложении и отображает в веб-интерфейсе

Spark Executors Исполнитель (Executor) – распределённый процесс, который отвечает за выполнение задач. У каждого приложения Spark собственный набор исполнителей. Они работают в течение жизненного цикла отдельного приложения Spark.

  1. Исполнители делают всю обработку данных задания Spark.
  2. Сохраняют результаты в памяти, а на диске – только тогда, когда это специально указывается в программе-драйвере (Driver Program).
  3. Возвращает результаты драйверу после их завершения.
  4. Каждый узел может иметь от 1 исполнителя на узел до 1 исполнителя на ядро. image

Workflow приложения Spark

Когда отправляем задание в Spark для обработки, многое остаётся за кулисами.

  1. Наше автономное приложение запускается и инициализирует SparkSession. Только при наличии SparkSession приложение называется драйвером.
  2. Наша программа-драйвер (Driver program) запрашивает у менеджера кластеров (Cluster Manager) ресурсы для запуска исполнителей.
  3. Менеджер кластеров запускает исполнителей.
  4. Наш драйвер запускает собственно код Spark.
  5. Исполнители запускают задания и отправляют результаты драйверу.
  6. SparkSession останавливается, а исполнители закрываются и возвращают ресурсы обратно в кластер.

Все данные, которые обрабатываются спарком, находятся в rdd. RDD – строительные блоки Spark: всё состоит из них. Rdd -

Resilient – Устойчивый: поскольку Spark работает на кластере компьютеров, потеря данных из-за аппаратного сбоя представляет собой серьёзную проблему, поэтому RDD отказоустойчивые и восстанавливаются в случае сбоя.

Distributed – Распределённый: один RDD хранится на нескольких узлах кластера, которые не принадлежат одному источнику (и одной точке отказа). Таким образом, кластер оперирует RDD параллельно.

Dataset – Набор данных: коллекция значений

RDD работают путём разделения данных на несколько разделов (Partition), которые хранятся на каждом узле-исполнителе. Каждый узел выполняет работу только на собственных разделах. В этом и заключается мощь Spark: если исполнитель выходит из строя, или не удаётся выполнить задачу, Spark восстанавливает только необходимые разделы из источника и повторно отправляет задачу для завершения.

image

HDFS (Hadoop Distributed File System) — файловая система, предназначенная для хранения файлов больших размеров, поблочно распределённых между узлами вычислительного кластера.

Кластер HDFS включает следующие компоненты:

  1. Управляющий узел, узел имен или сервер имен (NameNode) – отдельный, единственный в кластере, сервер с программным кодом для управления пространством имен файловой системы, хранящий дерево файлов, а также мета-данные файлов и каталогов. NameNode – обязательный компонент кластера HDFS, который отвечает за открытие и закрытие файлов, создание и удаление каталогов, управление доступом со стороны внешних клиентов и соответствие между файлами и блоками, дублированными (реплицированными) на узлах данных. Сервер имён раскрывает для всех желающих расположение блоков данных на машинах кластера.
  2. Secondary NameNode — вторичный узел имен, отдельный сервер, единственный в кластере, который копирует образ HDFS и лог транзакций операций с файловыми блоками во временную папку, применяет изменения, накопленные в логе транзакций к образу HDFS, а также записывает его на узел NameNode и очищает лог транзакций. Secondary NameNode необходим для быстрого ручного восстанавления NameNode в случае его выхода из строя.
  3. Узел или сервер данных (DataNode, Node) – один их множества серверов кластера с программным кодом, отвечающим за файловые операции и работу с блоками данных. DataNode – обязательный компонент кластера HDFS, который отвечает за запись и чтение данных, выполнение команд от узла NameNode по созданию, удалению и репликации блоков, а также периодическую отправку сообщения о состоянии (heartbeats) и обработку запросов на чтение и запись, поступающих от клиентов файловой системы HDFS. Стоит отметить, что данные проходят с остальных узлов кластера к клиенту мимо узла NameNode.

image

Файловая система HDFS имеет следующие свойства:

Механизм репликации – файловая система Haddop предназначена для хранения больших данных, распределенных по нескольким узлам кластера. Чтобы избежать потери данных при сбое какого-либо из узлов, в HDFS предусмотрена репликация данных, которая позволяет копировать данные между всеми узлами вычислительного кластера. Таким образом, выход из строя одного или нескольких узлов не повлечет за собой потерю данных.

Блоки данных – приложения, которые совместимы с HDFS, работают с большими наборами данных и, как правило, в распределенной среде. Эти приложения записывают свои данные только один раз, но читать эти данные они могут несколько раз и требуют, чтобы чтения выполнялись со скоростью потоковой передачи (непрерывно). Для этого каждый файл HDFS разбивается на блоки, каждый из которых находится на отдельном узле кластера. Размер каждого такого блока составляет 64 МБ.

Иерархическая организация файлов – пользователи или приложения могут создавать каталоги и хранить файлы в этих каталогах. Таким образом, можно добавлять файл в каталог или удалять файл из него. Существует также возможность переименовывать файл. HDFS не поддерживает жесткие ссылки (составляющая файла, описывающая его элемент каталога)

Конвейерная репликация – клиент постоянно записывает данные в локальный файл. Как только локальный файл накапливает полный блок данных, клиент извлекает список узлов данных из узла имен (узел, отвечающий за репликацию). Этот список содержит узлы данных (data nodes), в которых будет храниться реплика (копия) этого блока. Затем клиент помещает блок данных в первый узел данных, который начинает получать данные порциями по 4KB и записывать их в свой локальный репозиторий. После этого данные передаются во второй узел данных, который делает то же самое (записывает их в свой репозиторий) и передает дальше по списку. Таким образом, данные передаются от одного узла данных к следующему, как по конвейеру.

Кластер – это множество серверов соединенных как локально, так и нет, на которых производятся вычисления и хранение неструктурированных данных.

Методы и техники анализа, применимые к большим данным

методы класса Data Mining:
-обучение ассоциативным правилам (англ. association rule learning),
-классификация (методы категоризации новых данных на основе принципов, ранее применённых к уже наличествующим данным),
-кластерный анализ,
-регрессионный анализ;
краудсорсинг — категоризация и обогащение данных силами широкого, неопределённого круга лиц, привлечённых на основании публичной оферты, без вступления в трудовые отношения;
смешение и интеграция данных — набор техник, позволяющих интегрировать разнородные данные из разнообразных источников для возможности глубинного анализа, в качестве примеров таких техник, составляющих этот класс методов приводятся цифровая обработка сигналов и обработка естественного языка (включая тональный анализ);
машинное обучение, включая обучение с учителем и без учителя, а также Ensemble learning — использование моделей, построенных на базе статистического анализа или машинного обучения для получения комплексных прогнозов на основе базовых моделей (англ. constituent models, ср. со статистическим ансамблем в статистической механике); искусственные нейронные сети, сетевой анализ, оптимизация, в том числе генетические алгоритмы; распознавание образов;
прогнозная аналитика;
имитационное моделирование;
пространственный анализ — класс методов, использующих топологическую, геометрическую и географическую информацию в данных;
статистический анализ, в качестве примеров методов приводятся A/B-тестирование и анализ временных рядов;
визуализация аналитических данных — представление информации в виде рисунков, диаграмм, с использованием интерактивных возможностей и анимации как для получения результатов, так и для использования в качестве исходных данных для дальнейшего анализа.

ИСТОЧНИКИ

  1. 📑 Онлайн - курс bigdataschool
  2. 📃 Техническая статья на WIKI
  3. 📃 Понятия интероперабельности, полисемии и контекста. Барьеры интероперабельности в коммуникациях.
  4. 🎦 Видео-ролик от IBM
  5. 💬 Статья на ХАБР
  6. 📃 Техническая статья от онлайн-школы SkillFactory
  7. 📃 Техническая статья от ЯндексПрактикума
  8. 📃 Техническая статья Основные положения интероперабельности
  9. 📃 Техническая статья от Systems Engineering Thinking Wiki