- Основные определения и свойства открытых систем
1.1 Основные определения
Определение открытые информационные системы используется на основе определения, принятого Комитетом IEEE POSIX 1003.0. В соответствии с этим определением, открытая система есть «система, которая реализует открытые спецификации на интерфейсы, сервисы (услуги среды) и поддерживаемые форматы данных, достаточные для того, чтобы дать возможность должным образом разработанному прикладному программному обеспечению быть переносимым в широком диапазоне систем с минимальными изменениями, взаимодействовать с другими приложениями на локальных и удаленных системах, и взаимодействовать с пользователями в стиле, который облегчает переход пользователей от системы к системе» [1].
Определение POSIX позволяет нам с течением времени развивать понимание и реали зацию открытых систем. Не останавливаясь на конкретных продуктах или областях техноло гии, оно предоставляет основу, которая может быть расширена с изменением потребностей.
Принятое здесь понятие открытости трактует открытую систему как среду, в которой функционируют приложения (application environment), основанную на стандартах интерфейсов протоколов и форматов данных, обеспечивающих переносимость приложений (application portability), «переносимость» пользователей (user portability) и взаимодействие (interoperability).
Ключевым моментом определения POSIX является понятие «открытая спецификация», т.е. «общедоступная спецификация, которая поддерживается открытым, гласным согласительным процессом, направленным на приспособление новой технологии к ее применению, и которая согласуется со стандартами». В соответствии с этим определением открытая спецификация является технологически независимой, т.е. не зависит от специ- фического аппаратного или программного обеспечения или продуктов конкретного производителя. Она должна быть одинаково доступна любой заинтересованной стороне. Более того, открытые спецификации находятся под контролем общественности, поэтому все организации, которых они затрагивают, могут участвовать в разработке и согласовании открытых спецификаций.
Спецификации многих фирм производителей аппаратуры и программного обеспечения, консорциумов этих фирм, описывающие технологии и продукты, разработанные ими, не подпадают под определение открытых спецификаций. Важнейшей характеристикой открытой спецификации являются не ее источник, а общедоступность и поддержка.
Для дальнейшего изложения материала потребуются определения нескольких понятий, связанных с приведенной выше трактовкой понятия «открытые системы».
1.1.1 Функциональная среда открытых систем
Функциональная среда открытых систем (Open System Environment – OSE) поддерживает переносимые, масштабируемые и взаимодействующие друг с другом прикладные программы (приложения), предоставляя им стандартные услуги, интерфейсы, протоколы и форматы данных. Другими словами, среда OSE обеспечивает исполнение прикладных программ, если при их разработке были применены стандартные интерфейсы прикладного программирования, специфицированные для этой среды.
Стандартные интерфейсы могут быть представлены в виде международных, национальных или других открытых (общедоступных) спецификаций, которыми могут пользоваться разработчики ИС и поставщики технических и программных средств.
1.1.2 Интерфейсы прикладного программирования
Интерфейсом прикладного программирования называют набор исполняемых (run-time) программ или системных вызовов, которые позволяют прикладной программе пользоваться определенной услугой, представляемой либо операционной системой, либо другой прикладной программой. Для функциональной среды открытых систем API (Application Program Interface) – это набор программных интерфейсов между прикладны- ми программами (приложениями) и средой. Спецификации API группируются по основным группам функций (услуг), предоставляемых средой приложениям:
- поддержка пользовательского интерфейса;
- организация процессов обработки данных;
- представление данных для хранения и обмена;
- услуги телекоммуникаций.
В случаях, когда услуги предоставляются другой прикладной программой, спецификации API содержат описание программного интерфейса между этими двумя прикладными программами.
1.1.3 Прикладная программа (приложение)
Прикладная программа (приложение) – это часть ИС, включающая в себя логически связанную группу программных модулей, данные, средства обращения к информационным ресурсам ИС, которые необходимы для выполнения определенной прикладной функции ИС. Прикладная программа должна обеспечивать взаимодействие с конечным пользователем ИС при выполнении этой прикладной функции ИС или группы функций.
Прикладные программы включают в себя: данные, документацию (исходные тексты и описания), обучающие средства, а также собственно программы в исполняемом коде.
1.1.4 Прикладная платформа
Прикладная платформа (Application Platform) – это операционная система и оборудование компьютера, на котором осуществляется выполнение прикладных программ. При построении ИС с архитектурой распределенной обработки данных типа «клиент-сервер» прикладные платформы серверов исполняют серверные части приложений, а платформы пользователей – клиентские части приложений.
Совокупность нескольких разных по своей архитектуре прикладных платформ может образовывать гетерогенную функциональную среду открытых систем.
1.1.5 Программные средства промежуточного слоя
Ряд стандартных услуг функциональной среды открытых систем реализуются непосредственно операционными системами прикладных платформ. Однако значительная часть услуг среды требует включения дополнительных программных средств. К таким услугам относятся:
- функции управления базами данных;
- функции организации распределенной обработки данных, для которых требуют ся мониторы транзакций, брокеры объектных запросов;
- средства защиты информации (аутентификации пользователей и приложений, управления доступом к данным и приложениям);
- услуги телекоммуникаций (например, электронной почты, передачи файлов и т.д.).
Такие программные средства занимают в референсной модели (от английского Reference Model) открытых систем промежуточное положение между приложениями и операционными системами и поэтому называются средствами промежуточного слоя (middleware).
Открытые спецификации интерфейсов программных средств промежуточного слоя составляют в настоящее время важную часть общего описания среды открытых систем. Особое внимание при этом обращается на средства интеграции приложений в гетерогенных средах открытых систем.
1.1.6 Архитектура и структура информационных систем
При проектировании открытых информационных систем следует различать понятия «архитектура» и «структура» ИС и ее функциональных частей.
Под архитектурой ИС понимается описание ее функций с точки зрения конечных пользователей и интерфейсов взаимодействия с внешней средой. Понятие архитектуры обычно вводится как внешний взгляд на описываемый объект, безотносительно к его реализации, в частности к структуре.
Декомпозиция заданных функций ИС, осуществляемая в процессе проектирования, дает структуру ИС в виде взаимодействующих между собой подсистем. Каждая из этих подсистем, в свою очередь может быть подразделена на составные части вплоть до недели мых модулей прикладных программ. Таким образом, понятие структуры ИС является ие рархическим, включающим в себя несколько уровней разбиения, число которых зависит от того, каким образом предполагается реализовать свойство расширяемости ИС по функциям. Полученные структурные единицы на каждом уровне разбиения подлежат архитектурному описанию, опять-таки с точки зрения выполняемых ими функций и интерфейсов
взаимодействия с другими составными частями ИС, но без деталей их реализации.
Архитектуру функциональной среды открытых систем представляет совокупность спецификаций интерфейсов прикладного программирования (API), о которых было сказано выше.
Архитектуру прикладной платформы представляет спецификация интерфейсов операционной системы (оболочки, утилит, ядра, файловой системы, поддерживаемых сетевых протоколов).
Наконец, архитектура аппаратуры компьютеров представляется системой команд, системой организации прерываний, ввода-вывода и памяти.
1.2 Свойства открытых систем
Рассмотрим теперь более подробно свойства открытых систем, на которые опирается понятие «открытые системы», введенное в п. 1.1.
Расширяемость
Свойство расширяемости (extensibility) означает возможность добавления новых прикладных функций ИС или изменения некоторых функций из числа уже реализованных, не изменяя при этом остальные функциональные части (подсистемы) ИС. Эта возможность обеспечивается декомпозицией заданного состава прикладных функций ИС на подсистемы и модульным построением приложений, выполняющих функции подсистем. В полученной таким образом функциональной структуре ИС (имеющей иерархический характер) выделяются программные интерфейсы (API), специфицирующие взаимодействие приложений, принадлежащих одной или разным подсистемам. При внесении изменений в какую-либо программу требуется сохранить ее интерфейс API с тем, чтобы не изме- нять другие программы, с которыми она взаимодействует.
Масштабируемость
Свойство масштабируемости (scalability) означает применительно к прикладным программам и базам данных, которые могут исполняться на разных прикладных платформах, возможность изменения их количественных характеристик (размерности решаемых задач, числа обслуживаемых пользователей и т.д.) путем настройки параметров, а не путем перепроектирования и программирования заново. Применительно к прикладным платформам свойство масштабируемости означает предсказуемый рост их количественных системных характеристик при добавлении определенных вычислительных ресурсов (например, процессоров, модулей оперативной и дисковой памяти в конфигурациях серверов).
Переносимость приложений, данных и персонала
Свойство переносимости (portability) означает возможность перевода ИС на более совершенные аппаратно-программные платформы при их модернизации или замене с минимальными затратами, сохраняя инвестиции, вложенные в разработку приложений, формирование массивов данных и обучение пользователей. Применительно к переносимости приложений (application portability) и данных (data portability) такая возможность обеспечивается соблюдением принятых стандартизованных API между приложениями и функциональной средой открытых систем. Применительно к «переносимости» пользователей (user portability) эта возможность обеспечивается дружественным пользовательским интерфейсом. Стабильность этого интерфейса поддерживается стандартизованными API среды по функциям пользовательского интерфейса, и сохранением средств взаимодейст- вия с пользователем, реализуемых приложениями (экранные формы, способы работы с каталогами файлов, способы задания запросов к базам данных, командные языки и т.д.). Это необходимо для того, чтобы не переучивать пользователей при внесении изменений в приложения и прикладные платформы.
Интероперабельность приложений и систем
Свойство интероперабельности (interoperability) означает возможность взаимодействия данной ИС с другими системами при необходимости обращения к информационным ресурсам (базам данных, базам знаний) этих систем или решения определенных задач с использованием их вычислительных ресурсов, если собственные ресурсы недостаточны. Интероперабельность систем обеспечивается, прежде всего, форматами данных, принятыми в качестве стандартов электронного обмена данными (electronic data interchange – EDI) для разных прикладных областей. Интероперабельность систем при запуске на ис- полнение программ, располагающихся в других системах, обеспечивается стандартами удаленного вызова процедур (remote procedure call – RPC).
В пределах каждой системы свойство интероперабельности рассматривается на трех уровнях:
- взаимодействие программ (program interaction), определяемое процессами взаимопередачи управления и обмена данными между программами;
- межзадачное взаимодействие (intertask communication), определяемое средствами языка программирования и операционной системы, которые обеспечивают запуск и синхронизацию задач и обмен данными между ними;
- межсетевое взаимодействие (internetworking), определяемое стандартными протоколами вычислительных сетей.
Способность к интеграции
На уровне интеграции систем (system integration) это свойство означает возможность объединения нескольких ИС различного назначения в единую интегрированную многофункциональную ИС.
На уровне баз данных (database integration) под интеграцией понимается представление для прикладной программы или пользователя нескольких баз данных как одной ло- гически единой базы данных. Интеграция обеспечивает обращение пользователей к любой из этих баз данных независимо от места ее размещения, коллективный доступ к данным, одновременную обработку нескольких баз данных каждой из прикладных программ ИС.
На уровне интеграции данных (data integration) предполагается возможность одновременного и совместного использования программой или запросом пользователя не скольких файлов данных как единого целого (один из способов интеграции данных – базы данных). Логическая интеграция предполагает объединение данных на логическом уровне, не затрагивая их физической организации. Физическая интеграция связана со слиянием данных в единый информационный массив.
Наконец, на уровне интеграции приложений (application integration) рассматриваются методы и средства объединения прикладных программ в многозвенных архитектурах «клиент-сервер» с выделением серверов приложений, ориентированных на определенные классы задач, объектные среды и оболочки, позволяющие объединять приложения на основе механизмов обмена сообщениями.
Высокая готовность
Под свойством высокая готовность (high availability) понимается требование отказоустойчивости системы (fault tolerance), в которой в случае отказа какого-либо компонента гарантируется автоматическое восстановление работоспособности и сохранение целостности баз данных. Характеристика готовности, как меры способности системы принимать и успешно выполнять задания за доступный интервал времени, относится не только к открытым ИС. Здесь это свойство указано в связи с тем, что его реализация при проектировании системы находится во взаимосвязи с обеспечением других, указанных выше свойств.
1.3 Преимущества открытых систем
Применение идеологии и стандартов открытых систем выгодно для всех участников процесса создания и развития современных ИС.
В таблице 1.1 представлены преимущества применения идеологии открытых систем с разных точек зрения (пользователей ИС, проектировщиков ИС и системных интеграторов, программистов, реализующих прикладные программы ИС, разработчиков и поставщиков технических и программных средств).
Таблица 1.1 – Преимущества открытых систем
Преимущества открытых ИС |
Свойства открытых ИС, за счет которых достигаются преимущества |
1. Для пользователей (заказчиков) ИС |
|
1.1. Сохранение уже сделанных инвестиций при изменении требований и развитии ИС |
расширяемость, возможность замены отдельных приложений без изменения остальных, масштабируемость |
1.2. Использование информационных ресурсов, существую щих в других системах |
интероперабельность |
1.3. Дружественность человеко-машинного интерфейса, сокращение затрат на обучение персонала при переходе на но вые версии ИС |
«переносимость» пользователей |
1.4. Освобождение от зависимости от одного поставщика тех нических и программных средств |
переносимость приложений |
2. Для проектировщиков ИС и системных интеграторов |
|
2.1. Возможность использования разных прикладных платформ |
переносимость приложений |
2.2. Повторное использование готовых приложений |
переносимость приложений |
2.3. Возможность использования существующих информационных ресурсов |
интероперабельность |
2.4. Облегчение решения проблемы «унаследованных» систем |
интероперабельность, способность к интеграции |
2.5. Возможность применения современных технологий и инструментальных средств анализа и проектирования ИС |
переносимость приложений между инстру ментальными и целевыми прикладными платформами |
Продолжение таблица 1.1 – Преимущества открытых систем
Преимущества открытых ИС |
Свойства открытых ИС, за счет которых достигаются преимущества |
3. Для прикладных программистов |
|
3.1. Модульная организация прикладных программных комплексов |
|
3.2. Применение стандартизованных программных интерфейсов |
|
3.3 Возможности применения компонентных технологий раз работки |
|
3.4. Новые возможности разделения труда с использованием средств коллективной разработки |
|
4. Для поставщиков технических и программных средств |
|
4.1. Сокращение затрат на портирование прикладных и систем ных программных средств на новые аппаратные платформы |
переносимость программ |
4.2. Возможности интеграции выпускаемых программных продуктов с продуктами других поставщиков |
способность к интеграции |
4.3. Возможности расширения областей применения и рынков сбыта выпускаемых и разрабатываемых аппаратно- программных платформ |
|
Список литературы
- Бойченко А.В., Кондратьев В.К., Филинов Е.Н. Основы открытых информационных систем. 2-е издание, переработанное и дополненное. Под ред. Кондратьева В.К. //Издательский центр АНО «ЕОАИ». – М.:, 2004. – 128 с.