Файл: Технология построения распределенных информационных систем.pdf
Добавлен: 04.07.2023
Просмотров: 297
Скачиваний: 2
Поддержание логической целостности данных. Запрос пользователя в распределенной системе должен либо корректно выполняться целиком, либо не выполняться вообще. Ситуация, когда часть компонент системы корректно обработали поступивший запрос, а часть – нет, является наихудшей.
Устойчивость. Под устойчивостью понимается возможность дублирования несколькими компьютерами одних и тех же функций или же возможность автоматического распределения функций внутри системы в случае выхода из строя одного из компьютеров. В идеальном случае это означает полное отсутствие уникальной точки сбоя, то есть выход из строя одного любого компьютера не приводит к невозможности обслужить запрос пользователя[10].
Безопасность. Каждый компонент, образующий распределенную систему, должен быть уверен, что его функции используются авторизированными на это компонентами или пользователями. Данные, передаваемые между компонентами, должны быть защищены как от искажения, так и от просмотра третьими сторонами.
Эффективность. В узком смысле применительно к распределенным системам под эффективностью будет пониматься минимизация накладных расходов, связанных с распределенным характером системы. Поскольку эффективность в данном узком смысле может противоречить безопасности, открытости и надежности системы, следует отметить, что требование эффективности в данном контексте является наименее приоритетным. Например, на поддержку логической целостности данных в распределенной системе могут тратиться значительные ресурсы времени и памяти, однако система с недостоверными данными вряд ли нужна пользователям[11].
Классическим примером системы, в значительной мере отвечающей всем представленным выше требованиям, является система преобразования символьных имен в сетевые IP-адреса (DNS). Система имен – организованная иерархически распределенная система, с дублированием всех функций между двумя и более серверами.
Повышение отношения производительности к затратам. Любая задача может быть разделена между различными компьютерами в распределенной системе. Такая конфигурация обеспечивает лучшее соотношение производительности к стоимости системы. Это особенно актуально для конфигурации «сеть рабочих станций».
Масштабируемость. Компьютеры, как правило, подключены к глобальной компьютерной сети, поэтому установка новых компьютеров непосредственно не создает узких мест в компьютерной сети.
Модульность и дополнительная расширяемость. Гетерогенные единицы могут быть добавлены в систему без снижения производительности, так как используется промежуточный уровень взаимодействия. Аналогично, существующие единицы могут быть легко заменены новыми.
Итак, можно считать, что предметная область обозначена и выделены проблемные вопросы, которые решаются специалистами информационных технологий[12].
Итак, подведем итоги первой главы.
Информационно-технический прогресс, произошедший в XX-XXI вв. потребовал от человечества изменений в части концепции использования средств хранения и обработки информации. Одним из новых терминов в информационно-вычислительной среде стало понятие «распределенная информационная система». Определение данного понятия достаточно сложное, однако, уже сегодня очевидно, что без использования данных систем дальнейшее движение человечества весьма затруднительно.
Итак, распределенная информационная система – это совокупность независимых компьютеров, которые осуществляют взаимодействие посредством компьютерной сети и определенной среды, в которой компьютеры координируют свою деятельность, а также дают доступ к ресурсам системы таким образом, что для пользователей система выглядит единой и целостной.
Очевидными свойствами распределенной системы являются отсутствие общей физической шины и общей памяти, географическое распределение, а также автономность и гетерогенность[13].
Объектом изучения обозначим корпоративную распределенную информационную систему организации, предприятия (рисунок 1.1).
Типовой пример РИС такой сети можно представить схемой компьютерного интегрированного полиграфического производства (рисунок 1.2).
Рис.1.1. Корпоративная сеть с SQL -и WEB-серверами[14]
Рис.1.2. УЧ – управляющая часть; ОУ – объект управления
2. Основные технологии построения современных распределенных систем
-
-
Технология COM и ее развитие (DCOM, COM+)
-
Сокращение COM означает Component Object Model, что можно перевести с английского языка как компонентная объектная модель. Технология была разработана фирмой Microsoft в начале 90-ых годов прошлого века для обеспечения взаимодействия между различными приложениями, запущенными на одном или даже на разных компьютерах. Сущность технологии COM заключается в программировании с использованием компонентов – подход, который знаком всем программистам, использующим в своей работе среду разработки Delphi или C++ Builder. Под компонентом в данном случае понимается законченный (и откомпилированный) объект со своими свойствами и методами, который может легко встраиваться в различные приложения и распространяться как отдельный продукт.
Компоненты, созданные в соответствии со спецификацией COM, могут функционировать в различной языковой и операционной средах. Это значит, что если разработчик оформил некоторый набор функций как объект COM, то функциями этого объекта могут воспользоваться программисты самых разных языков программирования: C++, Delphi, Visual Basic и т. д. – достаточно, чтобы соответствующая среда разработки поддерживала технологию COM. По этой причине модель COM может являться базовой для создания распределенных информационных систем – составляющие ее объекты могут быть реализованы с использованием различных технологий и инструментов программирования, однако их взаимодействие может осуществляться в соответствии со спецификацией COM (посредством определенных интерфейсов и протоколов). Принципы обращения к свойствам и методам COM-объекта из других приложений полностью соответствуют модели клиент-сервер[15].
Компонент, в котором реализованы некоторые полезные свойства и методы, выступает в качестве COM-сервера, а обращающиеся к нему приложения – в качестве клиентов. Одно и то же приложение, очевидно, может выступать и в качестве клиента, и в качестве COM-сервера, в зависимости от характера взаимодействия с другими приложениями в каждый конкретный момент времени.
Для именования объектов COM используются так называемые глобальные уникальные идентификаторы (Globally unique identifier, GUID3). Глобальный уникальный идентификатор представляет собой 128-разрядное число, которое генерируется с использованием алгоритмов получения случайных чисел и специальной хеш-функции. Глобальный уникальный идентификатор принято записывать в следующем формате: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX, например: B502D1BE-9A57-11d0-8FDE-00C04FD9189D Операционная система должна хранить список доступных COM-объектов и информацию о месте их хранения (то есть путь к соответствующим исполняемым модулям, в которых реализованы сервисы этих объектов). В ОС Windows для этих целей используется специальный подраздел системного реестра: HKEY_CLASSES_ROOT\CLSID\, у которого в качестве вложенных подразделов выступают имена (глобальные уникальные идентификаторы) зарегистрированных в системе объектов, например: {00000000-0E4D-0463-87B5-D411BEBE0010} {00000001-4FEF-40D3-B3FA-E0531B897F98} {00000010-0000-0010-8000-00AA006D2EA4} {00000100-0000-0010-8000-00AA006D2EA4}[16].
Каждый из указанных разделов содержит описание свойств соответствующего COM-объекта. Например, свойство ProgID содержит программный идентификатор объекта – кодовое наименование, которое присваивается разработчиком и которое, в отличие от глобального уникального идентификатора, несет некоторую смысловую нагрузку. Чтобы задать местонахождение исполняемого модуля для объекта COM используются свойства InprocServer32 (если реализация объекта располагается в DLL-файле), LocalServer32 (если объект реализован как EXE-файл) или RemoteServer32 (для объектов, расположенных на удаленных ЭВМ в компьютерной сети). Операционная система, под управлением которой работает COM-сервер, должна иметь возможность единообразного получения адреса зарегистрированного COM-объекта, чтобы передавать соответствующую ссылку запросившим ее клиентам. Кроме того, для взаимодействия клиента с удаленными COM-серверами необходим специальный протокол сетевого взаимодействия, реализующий, в том числе, правила аутентификации и авторизации. На основании указанного выше можно сделать вывод, что создание полноценных COM-объектов – это весьма сложная задача, требующая от разработчика глубоких знаний в области системного и объектно-ориентированного программирования[17]. Среда разработки Borland C++ Builder предоставляют программисту возможность не только создавать собственные, но и эффективно использовать уже существующие COM-объекты в своих приложениях. В некоторых случаях взаимодействие создаваемого приложения с объектами COM реализуется незаметно («прозрачно») для разработчика, в других – требует от него осознанных действий. Полезным примером практического и осознанного использования технологии COM является использование механизма автоматизации для взаимодействия с внешними приложениями. Механизм автоматизации (Automation5) позволяет разработчикам приложения привлекать для обработки данных функциональные возможности других приложений. Например, для формирования отчетов часто используются возможности Microsoft Excel или Microsoft Word[18].
-
- Технология CORBA OMG
Все началось в 1989 году, когда группа компаний, в которую входили HP, Sun, American Airlines, Canon и некоторые другие производители, а также – что очень важно – и потребители программных продуктов, организовала некоммерческое сообщество, которое назвали Object Management Group (OMG). Стратегическая задача, которую поставило перед собой это сообщество, состояла в создании технологии, позволяющей объединить программные приложения, выполняющиеся на различных программных и аппаратных платформах, взаимодействующие по различным протоколам, написанные на разных языках программирования, созданные в различных уголках мира совершенно разными группами разработчиков. При этом были сформулированы два важнейших концептуальных момента.
- Результаты деятельности OMG должны представлять собой набор спецификаций, а не готовый продукт.
- В качестве идеологии построения такой технологии решили использовать объектно-ориентированный подход.
CORBA создавалась как технология, призванная объединить разрозненные сообщества компьютерных приложений. Архитектуру OMA, которая является основой CORBA, OMG назвала «архитектурой для объединения мира». С одной стороны, CORBA старается научить приложения общаться, причем не делает различия между «правоверными» объектно-ориентированными или «еретиками», написанными на Коболе. CORBA – демократическая технология и, несмотря на заведомую сложность (если не сказать – невыполнимость) подобной задачи, OMG всегда твердо стояла на своем:
- Объединяются приложения как новые, так и наследуемые (legacy).
- Эти приложения могут выполняться на различных операционных платформах (вплоть до самых экзотических, типа Open VMS, Digital UNIX или OS390).
- Стандарты не стоят ничего – их может получить и использовать любой желающий[19].
Когда мы первый раз увидели этот невероятный список принципов, нам показалось, что реализовать все это невозможно. Мы решили, что, как и во многих других случаях, прекрасные замыслы потихоньку растеряются по мере продвижения к результату. Велико было наше удивление, когда обнаружилось, что стандарты не просто позволяют использовать в распределенной среде «старые» приложения, но есть немалое число успешно реализованных проектов, которые построены именно таким образом. Огромное количество «тяжелых» корпоративных приложений, написанных на Коболе и выполняющихся на мэйнфреймах, благодаря технологии CORBA получили единственный шанс прижиться в современном мире Интернета и всеобщей открытости.
Возможно, именно поэтому, не поступаясь принципами, CORBA к концу XX века заняла подобающее место, а не стала еще одним печальным опытом построения «компьютерного коммунизма».
В OMG входят сотни компаний. Но компании состоят из людей, и развитие OMG определяется добровольной и самоотверженной работой сотен и тысяч специалистов – как лидеров компьютерной науки, так и их добросовестных помощников. Мы надеемся, что по мере чтения этой книги вы увидите, какие полезные и передовые идеи открыла для нас OMG. Мы не будем перечислять имен из боязни кого-то пропустить, а всех перечислить просто невозможно. В следующих главах вам встретятся некоторые известные фамилии, другие вы можете увидеть на сайтах OMG http://www.omg.org, http://www.corba.org и на других сайтах по технологии CORBA[20].