ISSN 0236-235X (P)
ISSN 2311-2735 (E)
1

16 Марта 2024

Новая информационная технология взаимодействия объектов


Масюков В.А. () - , Литвинов Ю.С. () -


     

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

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

Взаимодействие различных частей программного комплекса поддерживаемых ИТВО, представлена на рис 1, где взаимодействия объектов и направления их приложения обозначены стрелками.

Из рисунка видно, что стрелки соединяют два вида объектов:

1.   Программные объекты - любая часть программы, рассматриваемая как единое целое

2.   Объекты не управляемые программно, например, человек и некоторые объекты физического мира

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

Подпись:  
Рис. 1. Схема взаимодействия интерфейсов в программах
Современные потребности в распределенных приложениях требуют обеспечения согласованной работы приложений, работающих вне общего адресного пространства. Согласование обеспечивается специальной средой распределенной обработки. В простейшем случае среда обеспечения совместной работы организует только транспортный протокол передачи данных между приложениями, а организация совместной работы лежит на каждом из приложений.

Работа с объектами физического мира в пределах выбранной предметной области происходит не непосредственно, а на основе ее модели. Кроме простейших случаев модель состоит из двух частей резко отличающихся своим устройством:

1.   Совместно используемые данные, например, база данных

2.   Совместно используемые объекты

Отличие ИТВО от стандартных технологий межобъектного взаимодействия схематично представлены на рис. 2, где кружками обозначаются ресурсы объекта (процедуры, функции, свойства, доступные к использованию извне внутренние переменные и объекты), а стрелками обозначены их вызовы.

Отличия интерфейса взаимодействия по объектов стандартной технологии и ИТВО заключаются в следующем:

1.        Объект ИТВО содержит только одну обязательную стандартизированную процедуру(функцию), называемую процедурой взаимодействия или сам состоять из одной процедуры данного типа

2.        Под вызовом процедуры взаимодействия понимается механизм согласования входных и выходных параметров на основе заданной модели поведения объектов

Других ресурсов для доступа к объекту ИТВО не требует, но их наличие не противоречит данной концепции, хотя в некоторых случаях потребует согласования действий.

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

В рамках статьи рассматривается перечень вопросов учитываемых ИТВО при взаимодействия объектов в пределах одного адресного пространства (стрелки окрашенные серым цветом и объекты внутри программного интерфейса и интерфейса человек-компьютер).

2. Определение пользовательского интерфейса

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

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

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

Подпись:  
Рис. 2. Схема взаимодействия объектов в программах при стандартных технология и ИТВО
Присутствие человека в интерфейсе обусловлено четырьмя основными факторами:

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

2.   Модель, реализованная в программе, не совершенна. Тогда человек является поставщиком метаинформации, т.е такой информации которая недоступна системе

3.   Для решения проблем, возникающих в процессе работы программы

4.   Человек является средством ввода данных

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

Во-первых, способ обмена и представления информации с данным объектом со стороны программы резко отличается от способом обмена между объектами внутри программы (программными объектами).

Во-вторых, его характеризует необязательность реакции на программные события. В этом он похож на некоторые сетевые устройства, связь с которыми на некоторое время (или на все время работы программы) прерывается.

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

Эти особенности необходимо учитывать при проектировании программного приложения.

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

Со стороны человека общение представляет восприятие информации от компьютера и воздействие на отдельные части интерфейса - активные объекты. Под воздействием понимается такие действия как:

1.   Воздействие курсора на активный объект, например, его прохождение над объектом

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

3.   Ввод символьной информации с клавиатуры в определенные части(поля) активного объекта

4.   Нажатие "горячих" клавиш клавиатуры

5.   Работа с общим и контекстным меню

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

Набор типовых реакций и внешнего представления однотипных по функциональному признаку активных визуальных объектов будем называть моделью поведения.

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

2.1. Виды типовых реакций

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

·         Изменение внешнего вида активного объекта и объектов, связанных с текущим

·         Изменение информационного содержания в активных объектах

·         Вызов (активизация) другого объекта с передачей (без передачи) в него фокуса управления

2.1.1. Изменение внешнего вида активного объекта

Изменение внешнего вида проявляется, например, прожимании кнопки, изменения цвета надписей, раскрывания списка, установка признаков в групповых активных объектах.

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

В противном случае этот вопрос рассматривается в следующем пункте.

2.1.2. Изменение информационного содержания активного объекта

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

2.1.3. Вызов другого объекта

Поведение объекта, осуществляющего вызов, описывается двумя ситуациями:

·         Вызвавший объект продолжает свою работу, т.е. обеспечивается распараллеливание операций

·         Вызвавший объект приостанавливает свою работу

2.2. Участие пользователя в событиях им инициируемых

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

1.   Выполнения заранее предопределенных действий

2.   Получение доступа к другим активным объектам

После чего реакция программы подчиняются достаточно жесткому алгоритму:

I.    Выполнение заранее предопределенных действий влечет два варианта реакции

·         Удачное завершение начатого действия

·         Вариант завершения III.1

·         Не удачная обработка события. При этом, как правило, осуществляется вывод звукового и/или визуализация текстового/графического предупреждения

·         Реакция на неудачу обработки зависит от следующих обстоятельств:

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

·         Вариант завершения III.2

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

·         Вариант завершения III.2

·         Вариант завершения III.3

II. Для доступа к другому активному объекту, что может повлечь следующие действия:

·         Получение доступа к объекту

·         Подтверждение операции

·         Вариант завершения III.1

·         Отказ от доступа

·         Вариант завершения III.2

·         Отказ от обслуживания

·         Вариант завершения III.2 с выдачей предупреждения

III.        Варианты завершения инициированного события

1.   Занесение полученной информации в соответствующие объекты

2.   Восстановление первичного состояние инициированного объекта

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

Не смотря на "жесткость" алгоритма, могут существовать некоторые особенности в реакции объектов на стандартные события. Перечень моделей поведения объектов на события будем называть набор моделей реакций.

3. Определение программного интерфейса

      Программный интерфейс задает способ общения между активными объектами внутри программы.

Он проще пользовательского по способу реализации, но определяет сущность и функциональность программного комплекса в целом.

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

·         Доступ к внутренней структуре

·         Доступ к процедурам/функциям

·         Доступ к заранее определенным свойствам

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

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

4. Способы организации объектов

Автором языка Паскаль (а также некоторых других популярных языков) Н. Виртом была предложена формула (была также написана одноименная книга):

АЛГОРИТМЫ  +  СТРУКТУРЫ ДАННЫХ  =  ПРОГРАММЫ

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

На современном этапе формулу Вирта можно переписать так:

ОБЪЕКТЫ  +  АЛГОРИТМЫ ИХ ОБРАБОТКИ  =  ПРОГРАММЫ

С точки зрения программиста по функциональному признаку объекты можно разделить на две категории:

1.        Простые объекты - из которых не предполагается вызов или использование других объектов

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

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

4.1. Простой объект - таблица базы данных

Не смотря на громкое название "Таблица базы данных", объект имеет достаточно простую для использования структуру. Это прямоугольная таблица строки которой составляют записи, а колонки являются полями данной записи и содержат данные четко определенной структуры. Работа всегда производится с текущей записью. Доступны команды изменения текущей записи (первая, последняя, следующая, предыдущая, запись удовлетворяющая критерию). Можно обновить набор данных вставить новую запись, удалить текущую или изменить информацию в полях текущей записи.

Этот объект самодостаточен и удобен для многих операций с базой данных, что предопределило его широкое распространение в различных формам и реализациях.

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

4.2. Составной объект - визуализированная таблица базы данных

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

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

С точки зрения организации составных объектов существует два способа их объединения:

1.        Наследование

2.        Включение в состав основного объекта

5. Способы взаимодействия объектов

Существуют следующие основные способы использования объектов.

1.   Организация доступа к внутренней структуре объекта

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

2.   При помощи вызова объектных процедур и функций - стандартный (наиболее частый способ работы с объектом)

Это давний и естественный способ доступа к возможностям объекта. Хорошо продуманный их набор (состав и мнемонические названия) обеспечивает программисту - пользователю их легкое использование.

3.   Изменение и инициализация свойств объекта - способ, ставший стандартным дефакто

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

4.   С помощью обмена сообщениями

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

5.   Организация обработки исключительных ситуаций

Данный способ применяется в основном при обработке ошибочных ситуаций

Существует два варианта использования объекта:

1.   Без возврата значений. Например, инициализация переменных или свойств объекта или пересылка сообщения об уведомлении.

2.   С возвратом значений. Это наиболее частый способ организации работы с объектом рассматриваемый ниже.

Под стандартным (наиболее частым случаем) взаимодействием понимается доступ к возможностям предоставляемых объектов посредством вызова (процедуры, функции, свойства) и состоит из четырех последовательных этапов:

1.   Приведение типов параметров при подготовки вызова

2.   Вызов процедуры, функции, метода, свойства, и т.п.

3.   Анализ результата выполнения вызова

4.   Инициализация внутренних объектов данными, полученными в результате вызова

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

Независимо от методик организации взаимодействия объектов существуют некоторые общие способы их взаимодействия:

·         Простые вызовы

Объект A вызывает объект B с целью инициации выполнения некоторого действия и/или получения информации. По функциональному признаку объект A является клиентом, а объект B сервером.

·         Взаимодействие с обратной связью - синхронный режим

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

·         Обмен данными - асинхронный режим

В этом случае об очередности вызовов объектами друг друга речи не идет. Объект A обратившись к объекту B может не дожидаться ответа от него, а, если это предусмотрено, продолжать работу. Объект B при необходимости сам обратиться к объекту A.

Когда объект A (клиент) вызывает объект B (сервер) это не означает, что объект B выполнит данный вызов или выполнит его вовремя. По этому признаку вызовы делятся на два вида:

·         Вызов с гарантированным откликом

·         Не гарантированный вызов

6. Заключение

Из ограниченного объема статьи удалось кратко рассмотреть границы применимости новой информационной технологии взаимодействия объектов, в рамках которых она реализована, внедрена и успешно эксплуатируется в течении года. По дополнительным вопросам можно обращаться по e-mail litvinov@tversu.ru



http://swsys.ru/index.php?id=865&lang=.&page=article