Документ взят из кэша поисковой машины. Адрес оригинального документа : http://www.cplire.ru/rus/casr/os/3_12/10/11/index.htm
Дата изменения: Mon Dec 25 21:04:44 2000
Дата индексирования: Sat Dec 22 12:31:45 2007
Кодировка: Windows-1251
Открытые системы - миф или реальность?

Секция Открытых Систем

Персоналии

История

Открытые системы

Проекты

Партнеры

Новости

Контакты

Открытые системы: миф или реальность?

А. Петров
опубликована в журнале "Подводная лодка", ? 6, 2000

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

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

Как примеры использования технологии открытых систем можно привести технологии фирмы Intel Plug&Play и USB, а также операционные системы Unix и (частично) ее основного конкурента - Windows NT. Многие новые продукты сразу разрабатываются в соответствии с требованиями открытых систем, примером тому может служить нашумевший язык программирования Java фирмы Sun Microsystems.

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

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

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

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

Подобных примеров множество. Каждый читатель наверняка вспомнит не одну подобную ситуацию. Говорить об этом можно достаточно долго, а в чем же причина?

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

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

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

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

Так что же такое "открытая система"? Существует достаточное количество определений, даваемых различными организациями по стандартизации и отдельными фирмами. Например, Ассоциация французских пользователей Unix и открытых систем (AFUU) дает следующее определение:

"Открытая система- это система, состоящая из элементов, которые взаимодействуют друг с другом через стандартные интерфейсы".

Производитель средств вычислительной техники - компания Hewlett Packard - имеет собственное мнение: "Открытая система - это совокупность разнородных компьютеров, объединенных сетью, которые могут работать как единое интегрированное целое, независимо от того, как в них представлена информация, где они расположены, кем они изготовлены, под управлением какой операционной системы они работают."

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

  • технические средства, на которых реализована информационная система, объединяются сетью или сетями различного уровня: от локальной до глобальной;

  • реализация открытости осуществляется на основе функциональных стандартов (профилей) в области информационных технологий;

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

  • открытые системы предполагают использование унифицированных интерфейсов в процессах взаимодействия в системе "человек-машина";

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

Прочитав приведенные выше определения, нормальный житель компьютерного мира сделает для себя следующие выводы: "Ничего не понятно, кому это нужно?"

И только пытливый ум задаст следующий вопрос: "Ну хорошо. А что же предпринять, чтобы чтобы сделать программу или систему открытой, да еще чтобы она работала нормально?"

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

Результат получился традиционным, по принципу "Хотели как лучше, а получили как всегда". Во-первых, для того, чтобы использовать стандарты, их для начала хотя бы нужно знать. Я хорошо помню свои студенческие годы, когда одной из изучаемых дисциплин в Московском институте радиотехники, электроники и автоматики была дисциплина "Конструирование и стандартизация...". И в этом смысле мне повезло, т.к. далеко не всегда будущие специалисты знакомятся с исходными текстами стандартов.

Но знание стандартов не освобождает от ответственности за некачественную разработку. И, действительно, сколько мы помним случаев из нашей повседневной жизни, когда купив домой какую-нибудь вещицу (сделанную по стандарту!) и надеясь, что она подойдет к другим вещам, вдруг оказывалось, что она не подходит по цвету, размеру и т.д. Аналогичное получалось и в области компьютерных разработок. Принтер или плоттер нельзя было отключить от одной машины и подключить к другой. Ярким напоминанием этого является плоттер, работавший некоторое время с машиной "Изот-1080" (болгарский аналог Vax) и после перехода на персональные компьютеры сохраненный с целью дальнейшего использования. Оказалось, что единственной программой, позволяющей работать на персональном компьютере с этим плоттером, является ArchiCad, и то с очень большими ограничениями.

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

И тут в качестве решения этой противоречивой задачи, появляется понятие "профиль". Что же такое профиль?

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

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

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

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

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

Четыре модели открытых систем

В настоящее время существует четыре модели открытых систем, разработанные различными организациями:

 референсная модель взаимосвязи открытых систем (модель OSI/ISO),
 модель
MIC,
 модель
OSE/RM,
 модель
MUSIC.

Мы рассмотрим две из них, наиболее употребимые. Референсная модель используется более 20 лет и определяется сетевой архитектурой SNA, предложенной IBM. Она основана на разбиении вычислительной среды на семь уровней, взаимодействие между которыми описывается соответствующими стандартами, и обеспечивает связь уровней вне зависимости от построения уровня в каждой конкретной реализации. Основным достоинством этой модели является детальное описание связей в среде с точки зрения технических устройств и коммуникационных взаимодействий. Вместе с тем она не при-нимает в расчет взаимосвязь с учетом мобильности прикладного программного обеспечения.

Модель OSE/RM предложена Рабочей группой POSIX Института инженеров по электронике и электротехнике. Она предусматривает разбиение среды на три составные части:

 прикладное обеспечение,

 прикладная платформа,

 внешняя среда.

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

Персоналии

История

Открытые системы

Проекты

Партнеры

Новости

Контакты