Дмитрий Полщанов дата публикации 10-09-1999 00:00 Открытые системы. Интернет-обзор. Введение.
Данный документ есть обзор статей по схожей или близкой тематике и изначально имел цель :
- дать наиболее четкие определения ряду терминов, применяемых в литературе as is;
- сделать некоторые обобщения правил создания открытых систем (они немного по разному понимаются при обычном программировании и программировании БД).
Открытая система
Открытая система - это система, которая состоит из компонентов, взаимодействующих друг с другом через стандартные интерфейсы.
Для пользователя открытые системы обеспечивают следующее:
- новые возможности сохранения сделанных вложений благодаря свойствам эволюции, постепенного развития функций систем, замены отдельных компонентов без перестройки всей системы;
- освобождение от зависимости от одного поставщика аппаратных или программных средств, возможность выбора продуктов из предложенных на рынке при условии соблюдения поставщиком соответствующих стандартов открытых систем;
- дружественность среды, в которой работает пользователь, мобильность персонала в процессе эволюции системы;
- возможность использования информационных ресурсов, имеющихся в других системах (организациях).
Расширяемость
Под расширяемостью понимается возможность добавления к системе новых типов объектов и
методов их обработки без переработки какой-либо
части системы или с минимальными изменениями, не затрагивающими ее ядра.
- Определение новых типов объектов
- Объект является самостоятельной единицей информации. Информация (данные) как объект
обладают уникальным свойством мультипликативности, которое заключается в том, что можно создавать
много абсолютно идентичных копий какой-либо информации.
Новые типы объектов, определенные на базе существующих, должны создаваться, обрабатываться и
уничтожатся точно также как и объекты уже имеющиеся типов. То есть, во время своей жизни, объект
нового типа должен уметь обрабатываться существующими в системе сервисами или при создании
уникального для системы объекта должны создаваться и сервисы его обработки.
Определение нового типа данных сводится к указанию в его имени, размера и идентификатора в
глобальной структуре, описывающей типы данных, а также создание некоторого набора операций
(сервисов) над этим типом данных, обеспечивающих требуемую функциональность. Как только новый
тип данных определен, то все операции системы выполняются над ним, как над данными стандартного
типа, то есть система рассматривает новый тип данных как базовый.
- Определение новых сервисов
- Сервис представляет собой автономный программный модуль, выполняющий
определенные функции и оперирующий определенным ресурсом.
Доступ к ресурсу осуществляется только через соответствующий сервис. Каждый сервис
подчиняется определенной дисциплине и общается с клиентами по определенному протоколу.
Сервис может одновременно иметь несколько дисциплин и протоколов и использовать их в
соответствии с потребностями сервисов-клиентов.
Дисциплина
Дисциплина определяет как функционирует сервис - какие действия в каком порядке
в какое время, в каком случае и как их совершает. В конечном итоге сервис имеет
набор экспортируемых дисциплин,
единственно доступных другим сервисам и системе в целом.
Протокол
Протокол определяет какая информация, в каком формате и в каком смысле передается от
сервиса-клиента к сервису-серверу и обратно.
- Модернизируемость
- Внутренняя оптимизация сервиса с целью увеличения производительности или
изменение внутреннего поведения объекта, которые, согласно модели, не выходит за рамки протокола и
дисциплины системы в целом и на работу других сервисов повлиять не может.
Масштабируемость
Масштабируемость трактуется как качество системы,
гарантирующее, что в условиях резкого изменения характеристик задач (рост объемов данных,
увеличение числа пользователей, усложнение запросов, переход к распределенной обработке
данных) система способна к ним адаптироваться. Масштабируемость системы достигается
предусмотрением разработчиками возможности расширения масштаба задач, оценкой направлений
возможных изменений, применением специальные решений и механизмов. В более узком смысле
масштабируемость можно трактовать как способность тонкой настройки системы при изменении
характеристик среды функционирования.
Масштабируемость достигается реализацией в системе подсистем (набора
функционально-независимых модулей), непосредственно взаимодействующих с
платформой, в которой функционирует система, и являющихся своего рода прослойкой
между функциональной частью системы и платформой. Смена или изменение платформы
потребует изменения этих прослоек (аппаратно-зависимых модулей).
При этом гарантируется, что остальная часть системы не потребует изменений.
- Вертикальная масштабируемость
- Под вертикальная масштабируемость понимают, как правило, возможность замены платформы,
в которой функционирует система, на новую, обладающую большей
производительностью и/или надежностью
- Горизонтальная масштабируемость
- Под горизонтальной масштабируемостью, как правило, подразумевают
возможность увеличения производительности системы за счет добавления в платформу,
на которой функционирует система, дополнительных программных или аппаратных средств
Интероперабельность
Интероперабельность есть способность к взаимодействию с другими системами. Интероперабельность может
рассматриваться как еще один вид расширяемости, но на более высоком уровне, чем уровень самой системы.
- Единая трактовка всех типов данных
- Взаимодействующие системы должны трактовать все типы данных
(включая абстрактные), участвующие во взаимодействии одинаковым образом.
- Процедуры преобразования
- В случае полного различия взаимодействующих частей в одной из них или в обеих должны
присутствовать процедуры преобразования сообщений и типов данных в формат представления друг друга.
- Протокол взаимодействия
- Протокол должен описывать как, в каких случаях и с помощью чего системы будут взаимодействовать.
Дружественность
Дружественность трактуется как легкая управляемость параметрами системы и простота
использования ее конечными пользователями
- Соответствие решаемой задаче
-
- Удобство использования
-
- Логичность интерфейса
- Логичность интерфейса и удобство использования связаны скорей не с моделью, а с пониманием
создателей программной системы потребностей пользователя, специфики применения и условий эксплуатации
- Скорость
- Скорость зависит от качества программирования и соответствия средств программирования решаемой задаче.
- Переконфигурация "на ходу".
- Возможность изменения настроек внешнего вида системы (форм представления, графиков, мнемосхем)
и условий обработки информации о технологическом объекте (шкалы, установки, размерность и т.д.) в
конкретной подсистеме не прерывая и не мешая другим подсистемам.
Клиент системы в любой момент работы может переконфигурировать свою информацию на сервисе, удалить
часть конфигурации или добавить. Эта возможность следует из свойств сервиса, заложенных при его создании.
- Надежность
- Надежность имеет непосредственное отношение к функциональной модели.
Например, выход из строя какого-либо сервиса по любой причине (ошибки программирования,
разрушение ресурса и т.д.) не приведет к выходу из строя остальных сервисов системы.
Литература
- Джей Милн, Network Computing, http://ccc.ru/magazine/depot/97_07/str_038.htm
- CA-OpenIngres, Система управления реляционными базами данных,
http://www-old.jet.msk.su/prod/potoki/ca_open_004.html
- Сергей Кузнецов, http://www.citforum.ru/database/articles/art_19.shtml
- Дмитрий Пустовалов, http://www.swd.ru/qnx/articles/texts/article2.htm
- Г.Буч. Объектно ориентрированный анализ и проектирование
Дмитрий В. Полщанов, ЗАО НПК «Катрен», Новосибирск.
[TComponent] [TFileStream] [Проектирование, постановка задачи, средства разработки]
Обсуждение материала нет сообщений |