Партнерка на США и Канаду по недвижимости, выплаты в крипто

  • 30% recurring commission
  • Выплаты в USDT
  • Вывод каждую неделю
  • Комиссия до 5 лет за каждого referral

Ю. И. ЖУКОВ

Научный руководитель – И. В. ПРОХОРОВ, к. т.н.

, Москва

Взаимодействие объектов
в многокомпонентных системах

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

Современное программное обеспечение, как правило, использует компонентные технологии (COM, COM+, CORBA и т. д.). Эти технологии позволяют централизованно или распределенно хранить и обновлять объекты, а также предоставлять их приложениям по требованию. Безусловно, такой подход высоко эффективен, особенно в больших и сложных проектах. Взаимодействие компонентов (объектов) происходит в соответствии с заранее определенным их интерфейсом. Таким образом, каждый объект должен обладать информацией (пусть даже самой общей) о других объектах, с которыми он взаимодействует. Таковы правила объектно-ориентированного программирования (ООП). При взаимодействии объектов, как правило, преследуются следующие цели: управление другими объектами, получение данных от других объектов, предоставление данных другим объектам.

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

НЕ нашли? Не то? Что вы ищете?

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

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

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