Идеология открытых систем

4.1. ПОНЯТИЕ «ОТКРЫТАЯ СИСТЕМА»

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

В широком смысле открытой системой может быть названа любая система (компьютер, вычислительная сеть, ОС, программный пакет, другие аппаратные и программные продукты), которая построена в соответствии с открытыми спецификациями[1].

Тем не менее, единая, общепринятая трактовка понятия «открытая система» на сегодняшний день не сформировалась. В качестве иллюстрации можно привести некоторые варианты формулировок, раскрывающих это понятие.

Например, в руководстве, изданном AFUU (Французская ассоциация пользователей UNIX) в 1992 году открытая система определяется как «система, состоящая из компонентов, взаимодействующих друг с другом через стандартные интерфейсы» [6].

Специалисты Комитета IЕЕЕ[2] POSIX[3] 1003.0 предложили наиболее широкую и исчерпывающую на сегодняшний день трактовку, подчеркивающую аспект среды, предоставляемой открытой системой для ее использования. Здесь открытой системой названа «система, реализующая открытые спецификации на интерфейсы, сервисы и поддерживаемые форматы данных, достаточные для того, чтобы обеспечить должным образом разработанным приложениям возможность переноса с минимальными изменениями на широкий диапазон систем, совместной работы с другими приложениями на локальной и удаленных системах и взаимодействия с пользователями в стиле, облегчающем тем переход от системы к системе».

Эта, несколько тяжеловесная формулировка, в более сжатом виде выглядит так [6]: «открытая система – исчерпывающий и согласованный набор международных стандартов информационных технологий и профилей функциональных стандартов, которые специфицируют интерфейсы, службы и поддерживающие форматы, чтобы обеспечить интероперабельность[4] и мобильность[5] приложений, данных и персонала».

Общие свойства открытых систем сводятся к следующим:

· Расширяемость (extensibility, англ.) и масштабируемость (scalability, англ.). Используют механизм наследования[6], позволяющий сэкономить значительные средства при расширении системы, поскольку многое не нужно создавать заново, а некоторые новые компоненты можно получить, лишь слегка изменив старые. Кроме повторного использования, увеличивается также надежность, поскольку используются уже отлаженные компоненты.

· Мобильность (переносимость). Основана на свойстве инкапсуляции[7], позволяющей хорошо скрыть аппаратно-зависимые части системы, которые должны быть реализованы заново при переходе на другую платформу. При этом гарантируется, что остальная часть системы не потребует изменений. При реализации новых аппаратно-зависимых частей многое может быть взято из уже существующей системы благодаря механизму наследования.

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

· Дружественность к пользователю (drivability, англ.). Удобство взаимодействия пользователя с системой требует наличия у неё всех вышеперечисленных свойств. Мобильность необходима ввиду быстрой смены старых и появления новых устройств, например, широкого использования средств мультимедиа. Расширяемость требуется для разработки программной поддержки новых парадигм общения пользователя с системой. Интероперабельность просто рассматривает пользователя как другую систему, с которой открытая система должна уметь взаимодействовать.

Эти свойства, взятые по отдельности, были присущи и предыдущим поколениям информационных систем. Новый взгляд на открытые системы определяется тем, что эти черты рассматриваются в совокупности, как взаимосвязанные и реализуемые в комплексе.

4.2. ПРЕИМУЩЕСТВА ИДЕОЛОГИИ ОТКРЫТЫХ СИСТЕМ

Концепция открытых систем получила признание и широкое распространение в первую очередь потому, что она обеспечивает существенные преимущества, как для специалистов, так и для пользователей бурно развивающейся IT-сферы.

Для пользователей открытые системы обеспечивают:

· новые возможности сохранения сделанных вложений благодаря свойствам эволюции, постепенного развития функций систем, замены отдельных компонентов без перестройки всей системы;

· независимость от одного поставщика аппаратных или программных средств, возможность выбора продуктов из предложенных на рынке при условии соблюдения поставщиком соответствующих стандартов открытых систем;

· дружественность среды, в которой работает пользователь, мобильность персонала в процессе эволюции системы;

· возможность использования информационных ресурсов, имеющихся в других системах (организациях).

Проектировщик информационных систем получает:

· возможность использования разных аппаратных платформ;

· возможность совместного использования прикладных программ, реализованных в разных ОС;

· развитые средства инструментальных сред, поддерживающих проектирование;

· возможности использования готовых программных продуктов и информационных ресурсов.

Разработчики системных программных средств имеют:

· новые возможности разделения труда, благодаря повторному использованию программ (reusability, англ.);

· развитые инструментальные среды и системы программирования;

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

Это последнее свойство открытых систем позволяет пересмотреть традиционно сложившееся дублирование функций в разных программных продуктах, из-за чего системы, интегрирующие эти продукты, непомерно разрастаются по объему, теряют эффективность.

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

Значение идеологии открытых систем заключается в том, что она открывает методологические пути к унификации интерфейсов в пределах родственных по функциям групп компонентов для отдельного класса систем определенного назначения или всего множества открытых систем. Область распространения стандартов сферы сетевого взаимодействия является предметом согласования интересов разных групп участников сетевого информационного обмена – пользователей, разработчиков систем, поставщиков оборудования и программных продуктов.

4.3. ЭТАЛОННАЯ МОДЕЛЬ ВЗАИМОДЕЙСТВИЯ

ОТКРЫТЫХ СИСТЕМ

Понятие «взаимодействие открытых систем» (Open System Interconnection – ISO) относится к процедурам передачи данных между информационными системами, «открытыми» друг другу в плане сетевого взаимодействия благодаря совместному использованию общих стандартов.

Стремление создать единую, универсальную и открытую к изменениям физической, логической и программной структур архитектуру сети обусловило стандартизацию иерархии уровней сетевого взаимодействия. Международная организация по стандартизации (International Standard Organization – ISO) в начале 80-х годов прошлого века предложила концепцию архитектуры открытых систем, в которой определена эталонная модель, используемая в качестве базовой при разработке международных стандартов. Эта модель называется моделью взаимодействия открытых систем (Open System Interconnection, OSI) или моделью OSI.

В соответствии с эталонной моделью ИС представляется как распределенная, гетерогенная информационно-вычислительная среда, реализуемая большим числом разнообразных аппаратно-программных средств. Эта среда делится на ряд логических уровней, на каждом из которых реализуется определенный набор функций, востребованных в ходе сетевого взаимодействия.

Модель OSI определяет уровни взаимодействия систем, дает им стандартные имена, указывает, какие функции должен выполнять каждый уровень и координирует:

· взаимодействие прикладных процессов;

· формы представления данных;

· единообразное хранение данных;

· управление сетевыми ресурсами;

· безопасность данных и защиту информации;

· диагностику программ и технических средств.

В модели OSI средства взаимодействия делятся на семь уровней (снизу вверх): физический, канальный, сетевой, транспортный, сеансовый, представительный и прикладной. Каждый из перечисленных уровней имеет дело с одним, вполне определённым аспектом сетевого взаимодействия пользователей (приложений).

Физический уровень (Physical layer) имеет дело с передачей битов по физическим каналам связи, таким, например, как коаксиальный кабель, витая пара, оптоволоконный кабель или радиоканал. К этому уровню имеют отношение характеристики физических сред передачи данных: полоса пропускания, помехозащищенность, волновое сопротивление и др. На этом уровне определяются характеристики сигналов, передающих дискретную информацию, например крутизна фронтов импульсов, уровни напряжения или тока передаваемого сигнала, длина волны, тип кодирования, скорость передачи сигналов. Здесь же стандартизуются типы разъемов и назначение каждого контакта.

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

Примером протокола физического уровня может служить, например, спецификация 100Base-T сетевой технологии Fast Ethernet, которая определяет в качестве используемого кабеля неэкранированную витую пару категории 5 с волновым сопротивлением 100 Ом; разъем RJ-45; максимальную длину физического сегмента 100м и некоторые другие характеристики среды и электрических сигналов.

Канальный уровень (Data Link layer). На физическом уровне осуществляется передача сигналов, кодирующих биты данных. При этом не учитывается, что в некоторых сетях линии связи могут использоваться попеременно несколькими парами взаимодействующих узлов (разделяемая среда передачи). Поэтому одной из задач канального уровня является проверка доступности среды передачи. Другой задачей канального уровня является реализация механизмов обнаружения и коррекции ошибок. Для этого на канальном уровне биты группируются в наборы, называемые кадрами (frames, англ.). Канальный уровень обеспечивает корректность передачи кадров, помещая для выделения каждого кадра в его начало и конец характерную последовательность бит, а также вычисляет контрольную сумму, обрабатывая все байты кадра по определенному алгоритму и добавляя контрольную сумму в специальное поле кадра.

В локальных сетях протоколы канального уровня используются компьютерами, мостами, коммутаторами и маршрутизаторами. В компьютерах функции канального уровня реализуются совместными усилиями сетевых адаптеров и их драйверов.

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

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

Подсети соединяются между собой специальными устройствами, называемыми маршрутизаторами. Маршрутизатор –устройство, которое собирает информацию о топологии межсетевых соединений, на основании которой осуществляется пересылка пакетов (packets, англ. – формат сообщения, обычно принятый на сетевом уровне) в сеть назначения. Для того чтобы передать пакеты от отправителя, находящегося в одной сети, получателю, находящемуся в другой сети, нужно, как правило, совершить некоторое количество транзитных передач между сетями. Таким образом, маршрут передачи представляет собой последовательность маршрутизаторов, через которые проходит пакет. Проблема выбора наилучшего пути называется маршрутизацией, и ее решение является ещё одной задачей сетевого уровня.

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

Транспортный уровень (Transport layer). На пути от отправителя к получателю пакеты могут быть искажены или утеряны. Хотя некоторые приложения имеют собственные средства обработки ошибок, существуют и такие, которые предпочитают сразу иметь дело с надежным соединением. Функции транспортного уровня заключаются в том, чтобы обеспечить приложениям или верхним уровням – прикладному и сеансовому – передачу данных с той степенью надежности, которая им требуется. Модель OSI определяет пять классов услуг, предоставляемых транспортным уровнем. Эти виды услуг отличаются качеством: срочностью, возможностью восстановления прерванной связи, наличием средств мультиплексирования нескольких соединений между различными прикладными протоколами через общий транспортный протокол, а главное – способностью к обнаружению и исправлению ошибок передачи, таких как искажение, потеря и дублирование пакетов.

Как правило, все протоколы, начиная с транспортного уровня и выше, реализуются программными средствами конечных узлов сети – компонентами их сетевых операционных систем.

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

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

Прикладной уровень (Application layer) – это набор разнообразных протоколов, с помощью которых пользователи сети получают доступ к различным сетевым сервисам. Примерами таких сервисов являются, например, электронная почта, файловая служба, служба передачи гипертекста, подключение удаленных терминалов к компьютеру по сети и др. Единица данных, которой оперирует прикладной уровень, обычно называется сообщением (message, англ.).

Модель OSI описывает только системные средства взаимодействия, реализуемые системными аппаратными средствами, операционной системой, системными утилитами. Модель OSI не включает средства взаимодействия приложений конечных пользователей. Свои собственные протоколы взаимодействия приложения реализуют, обращаясь к системным средствам. Поэтому следует различать уровень взаимодействия приложений, не входит в модель OSI, и её прикладной уровень.

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

При построении транспортной сети наибольший интерес представляют функции физического, канального и сетевого уровней, напрямую связанные с реализацией конкретной сети, её топологией, используемым оборудованием и сетевыми технологиями. Функции прикладного, представительного и сеансового уровней реализуются операционными системами и системными приложениями конечных узлов. Транспортный уровень выступает своеобразным посредником между этими двумя группами протоколов: он скрывает все детали функционирования нижних уровней от верхних, что позволяет разрабатывать приложения, не зависящие от технических средств непосредственной транспортировки сообщений.

ИСТОЧНИКИ ИНФОРМАЦИИ

….

5. Олифер В.Г., Олифер Н.А. Компьютерные сети. Принципы, технологии, протоколы.
– СПб: Изд-во «Питер», 2007. – 960 с., ил.

6. Кузнецов С. Открытые системы, процессы стандартизации и профили стандартов. (http://citforum.nov.ru/database/articles/art_19.shtml).

….

[1] Спецификация (в вычислительной технике) – формализованное описание аппаратных или программных компонентов, способов их функционирования, взаимодействия с другими компонентами, условий эксплуатации, ограничений и особых характеристик [5].

Открытые спецификации – опубликованные, общедоступные спецификации, соответствующие стандартам и принятые в результате достижения согласия после всестороннего обсуждения всеми заинтересованными сторонами [5].

[2] IEEE (Institute of Electrical and Electronics Engineers, англ.) – Институт инженеров по электротехнике и электронике.

[3] POSIX(Portable Operating System Interface for computer environ­ments, англ.) – интерфейс переносимой операционной системы (набор стандартов IEEE, описывающих интерфейсы ОС для UNIX).

[4] Интероперабельность(interoperability, англ.)– способность к взаимодействию с другими системами.

[5] Мобильность(portability, англ.) – возможность переноса на другие системы (переносимость).

[6] Наследование– использование при создании новых объектов (систем) свойства уже существующих объектов, описывая заново только отличающиеся свойства.

[7] Инкапсуляция (encapsulation, англ.) – сокрытие внутренней структуры данных и методов реализации объекта от остальной части системы. Другим объектам доступен только интерфейс объекта, через который осуществляется все взаимодействие с ним.

Наши рекомендации