
- •Введение
- •1. Основы обеспечения мобильности программ и данных в информационных системах
- •1.1. Особенности современных информационных систем как объектов разработки
- •1.2. Особенности современных программных средств и баз данных как объектов разработки
- •1.3. Особенности современной методологии программной инженерии
- •1.4. Особенности современных технологий программной инженерии
- •2. Задачи и направления развития концепции открытых систем
- •2.1. Цели и задачи развития концепции открытых систем
- •2.2. Направления развития и модели концепции открытых систем
- •2.3. Стандартизация и стандарты
- •2.4 Направления стандартизации в области открытых систем
- •3. Профили открытых информационных систем и жизненного цикла программных средств
- •3.1. Цели и принципы формирования профилей открытых информационных систем
- •3.2. Структура и содержание профилей информационных систем
- •3.3. Технологический цикл построения открытых систем
- •4. Стандартизация систем дистанционного образования
- •4.1. Технологии электронного обучения
- •4.2. Стандарты в электронном обучении
- •4.3. Модель обмена учебными материалами (scorm)
- •4.4. Модель Накопления Содержания (cam) scorm
- •4.6. Scorm упорядочение и навигация (sn)
- •Заключение
- •Библиографический список
- •Оглавление
2. Задачи и направления развития концепции открытых систем
2.1. Цели и задачи развития концепции открытых систем
В последнее время технология создания ПС и БД путем переноса их на другие аппаратные и операционные платформы претерпела качественное изменение и активно развивается за рубежом на основе концепции и стандартов открытых систем.
В составе концепции открытых систем можно выделить три основных составляющих (рис. 2.1), а именно: научно–методическую, нормативно–техническую и организационно–правовую основы [1].
Рис. 2.1. Основные составляющие концепции открытых систем в области информационных технологий
Научно–методической основой концепции открытой системы являются принципы открытых систем в сочетании с методами и средствами их реализации. Основными проблемами, изучаемыми в этой области, являются:
концептуальный базис и принципы построения открытых систем;
технология открытых систем, включая:
эталонные модели открытых систем;
методы профилирования открытых систем;
методы обеспечения соответствия практических ИТ исходным базовым стандартам и профилям;
формирование требований к системам обеспечения;
принципы создания систем обеспечения открытой системы.
Концептуальный базис и принципы построения открытых систем хорошо известны, однако в этой области ведется исследовательская работа, в частности предметом изучения является определение открытой системы, поскольку здесь до сих пор действуют десятки различных определений.
Нормативно–технической основой концепции открытых систем служат системы базовых стандартов и функциональных стандартов (профилей), а также механизмы регистрации. Основополагающими документами в этой области служат международные стандарты [1]:
ИСО/МЭК ТО 10000–1–1998 «Информационная технология. Основы и таксономия международных функциональных стандартов. Общие положения и основы документирования».
ИСО/МЭК ТО 10000–2–1998 «Информационная технология. Основы и таксономия международных функциональных стандартов. Принципы и таксономия ВОС».
ИСО/МЭК ТО 10000–3–1998 «Информационная технология. Основы и таксономия международных функциональных стандартов. Принципы и таксономия профилей среды открытых систем».
Эти стандарты действуют и в Российской Федерации.
Организационно–правовую основу концепции открытых систем составляют:
национальное законодательство в области технического регулирования;
система правил и норм, лежащих в основе функционирования государственных и независимых служб, выполняющих работы по аттестационному тестированию и сертификации продуктов открытых систем;
национальные и ведомственные комплексы нормативно–технических документов, устанавливающих базовую совокупность взаимоувязанных правил и положений, требований и норм, относящихся к организации и методике оценивания и обеспечения открытости создаваемых информационных систем.
В нашей стране систематические работы по открытым системам были начаты в 1993 г., когда по инициативе Российской академии наук был выпущен совместный Приказ–Постановление Миннауки и Президиума РАН о мерах по обеспечению развития работ по научному направлению «Развитие и применение открытых систем». В настоящее время в работах по различным аспектам проблематики ОС принимают участие академические, учебные и отраслевые институты, ведущие исследования и разработки в рамках ФЦП «Электронная Россия», программ и проектов Федерального агентства РФ по образованию, Российской академии наук, Российского фонда фундаментальных исследований, других государственных и негосударственных учреждений и организаций.
К важнейшим направлениям развития концепции открытых систем относится разработка принципов ее практической реализации. Такие работы ведутся, как отечественными, так и зарубежными учеными и специалистами. Основным отечественным достижением здесь является разработка технологии открытых систем (ТОС), на которую получен патент РФ. Среди работ зарубежных автором можно выделить разработку так называемого модульного подхода открытых систем (modular open system approach (MOSA)), развиваемого в группе по объединению усилий в области открытых систем МО США (The Open Systems Joint Task Force (OSJTF)). Несмотря на то, что структура и детали этих двух подходов отличаются, главная цель в них сформулирована сходным образом, а именно, как формирование представительного набора согласованных мероприятий, которые необходимо выполнить для придания открытости проектируемой (модернизируемой) системе.
К основным достоинствам ТОС относятся:
универсальность (ТОС применима к системам всех классов и назначений, включая системы, создаваемые для государственных, военных, корпоративных и иных нужд);
экономическая эффективность;
инновационная направленность.
В области открытых систем важнейшим является понятие «открытая система» и напрямую связанные с ним понятия «открытость» и «среда открытой системы». Кроме того, в рассматриваемой предметной области используется ряд специальных понятий, которые определяют отдельные качества открытых систем, например, интероперабельность или переносимость или сущности, которые используются при создании открытых систем, например, профили или эталонные модели.
При определении понятия «открытая система» приходится принимать во внимание сложный комплекс подчас противоречивых требований, отражающих необходимость обеспечения свободного взаимодействия между различными системами; особенности строения открытых систем, включая, что особенно важно для проектировщиков, их структуру; нужды пользователей, заинтересованных в облегчении работы в распределенных, гетерогенных системах и т.д. В этих условиях получение универсального определения открытой системы, устраивающего всех заинтересованных лиц, затруднительно. Этим обстоятельством объясняется наличие множества (более 100) известных определений таких систем [1].
Наиболее полными и корректными представляются следующие определения.
Открытая система — это совокупность разнородных компьютеров, объединенных сетью, которые могут работать как единое интегрированное целое, независимо от того: где они расположены; как в них представлена информация, кем они изготовлены, под управлением какой операционной системы они работают.
Открытая система — это исчерпывающая и последовательная совокупность международных стандартов в области информационных технологий и функциональных профилей стандартов, которая специфицирует интерфейсы, услуги и поддерживающие форматы для достижения взаимодействия и переносимости приложений, данных и персонала.
Принимая во внимание необходимость рассмотрения внутренних свойств открытой системы, IEEE ввел свое определение открытой системы, согласно которому:
Открытая система — это система, реализующая открытые спецификации на интерфейсы, службы и форматы данных, достаточные для того, чтобы обеспечить:
возможность переноса (мобильность) прикладных систем, разработанных должным образом, с минимальными изменениями на широкий диапазон информационных платформ;
совместную работу (интероперабельность) с другими прикладными системами на локальных и удаленных платформах;
взаимодействие с пользователями в стиле, облегчающем последним переход от системы к системе (мобильность пользователей).
Определение IEEE получило наибольшее распространение, оно вошло в документы по стандартизации ISO/IEC TR 14252 и ISO/IEC TR 10000, принято в России в рамках работ по ТОС.
В связи с рассмотрением особенностей строения открытой системы в документах IEEE и техническом отчете ISO/IEC TR 14252 рассматривается также понятие среды открытой системы, которое определяется следующим образом:
Среда открытой системы — всеобъемлющий набор интерфейсов, услуг и поддерживаемых форматов (включая взгляды пользователей) для обеспечения взаимодействия и/или переносимости приложений, данных или персонала в соответствии со стандартами и профилями информационных технологий.
Несмотря на широкое распространение, определение открытой системы, данное IEEE, имеет существенные недостатки. Оно в значительной мере сосредоточено на проблеме переносимости, хотя в открытых системах имеются не менее важные проблемы интероперабельности и масштабирования, кроме того, в определении упоминается о прикладных программных средствах, созданных должным образом, при этом ни в одном документе IEEE не разъясняется, как должным образом создавать программные средства.
Указанный недостаток в существенной мере преодолен в определении открытой системы, которое было предложено OSJTF в камках работ по MOSA. Согласно этому определению:
Открытая система — система, характеризующаяся:
модульной конструкцией (modular design);
использованием в отношении ключевых интерфейсов широко распространенных стандартов, одобренных путем консенсуса;
способностью к успешному прохождению верификационных и аттестационных тестов для подтверждения открытости ключевых интерфейсов.
Кроме того, OSJTF определяет понятие собственно открытости.
Открытость — степень, в которой система, изготовленная в соответствии с общепризнанными подходами и стандартами, способна к развитию, оставаясь совместимой с общепринятыми продуктами и методами, по мере развития этих стандартов.
Согласно OSJTF открытость, определенная таким образом, может быть достигнута за счет:
использования модульной конструкции;
технологической и торговой независимости (technology/vendor neutrality);
использование хорошо определенных основных интерфейсов (common interfaces);
совместимости с общепринятыми подходами;
соответствия стандартам.
Определение открытости и открытой системы, данное OSJTF, отличается практической направленностью, более удобно для инженеров–проектировщиков, чем определение IEEE. Однако, OSJTF до сегодняшнего дня не предложила практических способов выделения подходящих модулей и ключевых интерфейсов при создании открытых систем.
Можно также привести определение открытой системы, данное в [5] специалистами Carnegie Mellon Software Engineering Institute (SEI) — известного центра по исследованиям и разработкам в области ИТ, включая и проблематику открытых систем.
Открытая система — совокупность взаимодействующих между собой аппаратных средств, программного обеспечения и пользователей:
спроектированная для удовлетворения установленных нужд;
характеризующаяся тем, что спецификации на интерфейсы компонентов системы
полностью определены;
общедоступны;
приняты и поддерживаются в рамках консенсуса
компоненты которой реализованы в полном соответствии со спецификациями на интерфейсы.
Это определение, с одной стороны, ближе к нуждам конкретного проектирования, чем определение IEEE, а с другой — лишено недостатков определения OSJTF, в котором фигурируют объекты, в отношении которых не определена проектная процедура.
В определении SEI открытая система создается для удовлетворения установленных нужд. Другими словами, решения в области открытых систем связываются не только с техническими, но и с деловыми аспектами приобретения, создания, эксплуатации таких систем. Этот подход полностью соответствует практике определения систем, отраженной в важнейших современных стандартах системного проектирования, а именно: ISO/IEC 12207 «Информационная технология. Процессы жизненного цикла программных средств» и ISI/IEC 15288 «Системная инженерия. Процессы жизненного цикла систем». Эти стандарты также действуют и в нашей стране.
Основными целями создания и применения концепции, методов и стандартов открытых систем является повышение обшей экономической эффективности разработки и функционирования информационных систем, а также логической и технической совместимости их компонентов, обеспечение мобильности программ и данных ИС. Для достижения этих целей развиваются и применяются различные проблемно-ориентированные технологии и комплексы средств автоматизации ЖЦ мобильных программ и баз данных, базирующиеся на повторном использовании апробированных программных компонентов и данных, их эффективном переносе на различные аппаратные и операционные платформы и согласованном взаимодействии в распределенных информационных системах. При создании сложных, распределенных Информационных систем, формировании их архитектуры, выборе компонентов и их связей следует учитывать ряд современных концептуальных требований:
архитектура информационной системы должна соответствовать текущим и перспективным целям и стратегическим функциональным задачам, создаваемой системы;
в структуре и компонентах следует предусматривать обеспечение максимально возможной сохранности инвестиций в аппаратные и программные средства, а также в базы данных при длительном развитии, сопровождении и модернизации информационной системы;
для обеспечения перспективы развития информационной системы следует предусматривать возможность интеграции гетерогенных вычислительных компонентов и мобильность приложений на различные аппаратные и операционные платформы на основе концепции и стандартов открытых систем;
архитектура информационной системы должна быть достаточно гибкой и допускать относительно простое, без коренных структурных изменений, развитие и наращивание функций и ресурсов системы в соответствии с расширением сфер и задач ее применения;
необходимо обеспечить эффективное использование ресурсов информационной системы и минимизировать интегральные затраты на обработку данных в типовых режимах ее функционирования с учетом текущих эксплуатационных затрат и капитальных вложений в создание ИС;
должны быть обеспечены безопасность функционирования системы и надежная защита данных от ошибок, от разрушения или потери информации, а также авторизация пользователей, управление рабочей загрузкой, резервированием и восстановлением функционирования ИС;
следует обеспечить комфортный, максимально упрощенный доступ конечных пользователей к управлению и результатам функционирования информационной системы на основе современных графических средств и наглядных пользовательских интерфейсов.
Значительная часть приведенных требований обусловлена реальной гибкостью и естественной динамикой интенсивного развития современных информационных систем. Высокие темпы роста основных ресурсов аппаратных средств (приблизительно на порядок каждые пять лет), и сохраняющаяся потребность в увеличении их использования со стороны пользователей приводят к необходимости адекватного совершенствования технологий создания программных средств и баз данных. Гибкость модификации ИС при развитии обеспечивается рядом принципов и правил структурного построения ИС и ее компонентов, а также взаимодействия между ними. Эти правила направлены на стандартизацию и унификацию структуры и взаимодействия компонентов разного ранга и назначения в пределах проблемной области (рис. 2.2.). Некоторая часть принципов и правил имеет общий характер и может применяться практически всегда. Другая часть отражает проблемную и машинную ориентированность класса ИС и подлежит отработке для эффективного применения в соответствующей области. Основные принципы и правила можно объединить в группы, которые отражают:
стандартизированную структуру ПС или БД определенного класса;
унифицированные правила структурного построения прикладных программных компонентов;
стандартизированную структуру базы данных, обрабатываемых программами;
унифицированные правила структурного построения информационных модулей, заполняющих базу данных;
унифицированные правила структурного построения и организации межмодульного интерфейса прикладных программ;
унифицированные правила внешнего интерфейса и взаимодействия компонентов прикладных ПС и БД с внешней средой, с операционной системой и другими типовыми средствами организации вычислительного процесса и контроля.
Таким образом, для обеспечения эффективной разработки необходимо формулировать и соблюдать ряд принципов и правил структурного построения ИС. Эти принципы и правила могут иметь особенности для ИС в различных проблемно-ориентированных областях. Однако их формализация и выполнение обеспечивают значительный эффект в снижении трудоемкости и длительности разработки ПС, БД и их версий. Потеря гибкости архитектуры ИС и некоторое возрастание ресурсов, необходимых для их реализации, обычно полностью компенсируются повышением технико-экономических показателей процесса разработки и технологической безопасности ИС. Одним из важнейших и эффективных путей решения этой проблемы являются концепция и совокупность стандартов открытых систем.
Рис. 2.2. Схема стандартизации взаимодействия компонентов программных средств:
1 — Стандарты пользовательского интерфейса
2 — Стандарты межмодульного интерфейса
3 — Стандарты внешнего интерфейса
4 — Стандарты интерфейса с операционной средой
Открытые системы делают доступным пользователям широкий круг прикладных ПС и БД, позволяют фирмам сэкономить средства на документации и переподготовке персонала, а, кроме того, делают их независимыми от конкретного поставщика программного и аппаратного продукта. При этом каждое решение при создании информационной системы должно обеспечивать интероперабельность, переносимость, межплатформенную интеграцию и эффективное использование ресурсов распределенной обработки. Построение открытых систем на унифицированных по взаимодействию продуктах стимулирует конкуренцию среди поставщиков как по соотношению цена/производительность, так и по функциональным возможностям. Профессионалы в области открытых систем акцентируют усилия на поиске и создании гибкой, способной к наращиванию среды, что базируется на трех направлениях стандартизации в области информационных систем:
стандартизация аппаратных и операционных платформ;
стандартизация методов и технологии обеспечения жизненного цикла прикладных программных средств и баз данных;
стандартизация интерфейсов приложений между собой, с операционной и внешней средой.
Развивающаяся инфраструктура открытых систем базируется на интеграции компонентов для удовлетворения требований сегодняшнего дня, с использованием стандартов на интерфейсы приложений с операционной и внешней средой для последующего широкого применения. В этих условиях особое значение приобретают тестирование и отладка сложных информационных систем, гарантирующие их высокое качество и безопасность функционирования. Следует учитывать, что весь процесс создания и развития конкретных открытых систем реализуется путем преодоления постоянных противоречий между требованиями сегодняшнего дня и потенциальными перспективами развития ИС по производительности, гибкости и внедрению инновации.
Для последующего анализа методов и стандартов открытых систем целесообразно представить основные компоненты архитектуры программных средств, участвующих в процессе обработки информации, и особенности их унификации. В современных ЭВМ функционирование прикладных ПС и БД организуется операционными системами и рядом типовых системных программ. Понятие и функции операционных систем (ОС) в технической литературе варьируются в широких пределах. В соответствии с общим определением в ГОСТ 19781–83 «Операционная система — это система программ, предназначенная для обеспечения определенного уровня эффективности вычислительной системы за счет автоматизированного управления се работой и предоставляемого пользователям определенного набора услуг». Под это определение подходят все компоненты операционной системы, обеспечивающие организацию вычислительного процесса, интерфейс с внешней средой и пользователями, телекоммуникацию в распределенных системах, автоматизированную разработку программных средств и баз данных, за исключением может быть некоторой части прикладных программ специального назначения.
В последнее время делаются попытки структурирования операционных систем и, прежде всего, выделение ядра — минимальной, функционально полной ее части, служащей основой для модульных и переносимых расширений. Такое минимальное ядро поддерживает только планирование и диспетчеризацию процессов, обработку прерываний и сетевые службы нижнего уровня. Внешними по отношению к ядру модулями становятся файловые системы, сетевые серверы, оконные графические системы и т. д. Иногда в ядро помещают драйверы устройств, управление событиями реального времени, менеджеры памяти. Схема обмена сообщениями между ядрами является удобной основой для организации удаленных вызовов процедур, поскольку ядру безразлично, откуда исходит сообщение. В отдельных случаях ядро ОС оформляется в виде законченного коммерческого продукта.
Ядро компактно изолирует всю машинно-зависимую часть ОС и при переносе на новый процессор все изменения логически сгруппированы. Тем самым разработка нового ядра для новой платформы является относительно небольшой частью локализованных неавтоматизируемых работ. Такая организация обеспечивает возможности переноса операционной системы и расширения, опирающиеся на ограниченный набор интерфейсов ядра. Такой набор для ядра может не превышать 20 интерфейсов, что сокращает вероятность ошибок при их использовании системными программистами. Однако для прикладных программ количество видов интерфейсов на порядок больше, но они остаются вне ядра и не обязательно или только частично являются машинно-зависимыми.
Первоначально концепция открытых систем развивалась на непосредственной поддержке разработчиками операционной системы UNIX с широким набором функций и ее модификациями. Однако в последнее время унифицированные интерфейсы открытых систем воспринимаются многими разработчиками новых операционных систем массового применения.
В составе коммерческих операционных систем или как достаточно автономные компоненты, обеспечивающие решение сложных прикладных задач, используются следующие крупные группы программных средств:
поддерживающие функционирование и оперативное взаимодействие прикладных программ и баз данных с операционной и внешней средой;
обеспечивающие телекоммуникацию и обмен данными между территориально распределенными компонентами сложных информационных систем;
обеспечивающие автоматизацию разработки и всего жизненного цикла мобильных прикладных программных средств и баз данных.