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

реклама
УДК 004.4(06) Технологии разработки программных систем
Ю.И. ЖУКОВ
Научный руководитель – И.В. ПРОХОРОВ, к.т.н.
ОАО «ВНИИНС», Москва
ВЗАИМОДЕЙСТВИЕ ОБЪЕКТОВ
В МНОГОКОМПОНЕНТНЫХ СИСТЕМАХ
Взаимодействие объектов в традиционной объектно-ориентированной технологии программирования происходит с
учетом интерфейсов других объектов. В многокомпонентных распределенных системах компоненты должны быть максимально независимы друг от друга, но при этом осуществлять взаимодействие между собой. В предлагаемой модели
взаимодействие объектов осуществляется с помощью протоколов взаимодействия, а не их интерфейсов.
Современное программное обеспечение, как правило, использует компонентные технологии (COM,
COM+, CORBA и т.д.). Эти технологии позволяют централизованно или распределенно хранить и обновлять
объекты, а также предоставлять их приложениям по требованию. Безусловно, такой подход высоко эффективен, особенно в больших и сложных проектах. Взаимодействие компонентов (объектов) происходит в соответствии с заранее определенным их интерфейсом. Таким образом, каждый объект должен обладать информацией (пусть даже самой общей) о других объектах, с которыми он взаимодействует. Таковы правила
объектно-ориентированного программирования (ООП). При взаимодействии объектов, как правило, преследуются следующие цели: управление другими объектами, получение данных от других объектов, предоставление данных другим объектам.
Но общеизвестные достоинства ООП могут стать и его недостатками, при взаимодействии объектов.
Действительно, если взять изолированность объектов, то, скрывая внутреннюю свою реализацию, внешний
интерфейс все-таки должен быть известен другим объектам. С другой стороны, для взаимодействия с группой объектов, последние должны быть наследниками опять же некоторого единого интерфейса. Получается,
что объекты в системе становятся "заложниками" интерфейсов других объектов. Это становится более очевидно, когда при взаимодействии объектов на первое место встают получение и предоставление данных.
Действительно, для компонентов, получающих и обрабатывающих данные, важно их именно получить от
определенной группы объектов, независимо от их интерфейсов. А для компонентов, предоставляющих данные, важно их отправить определенной группе объектов.
Таким образом, возникает новая модель взаимодействия компонентов. Она отличается от традиционного
объектно-ориентированного подхода взаимодействия объектов и предназначена, прежде всего, для управления информационным потоком между объектами. В данной модели на первом месте протокол данных, а не
интерфейс объектов. Она не противоречит принципам ООП. Напротив, компоненты продолжают быть теми
же объектами. Данная модель – это дополнительная возможность для взаимодействия объектов, позволяющая снизить зависимости между ними. Данная модель обладает следующими преимуществами: увеличение
изолированности компонентов, произвольная группировка объектов, распределенное взаимодействие компонент, протоколы взаимодействия компонент.
Увеличение изолированности компонентов происходит за счет того, что компоненты взаимодействуют с
помощью данных определенного протокола, а не их интерфейсов. Это позволяет менять не только реализацию компонента, но и его интерфейс, без внесения изменений в другие компоненты. С другой стороны, при
изменении протокола взаимодействия, необходимо модифицировать и использующие его компоненты. Но
это необходимо делать и в ООП, т.к. там структуры данных зависят от интерфейса. Произвольная группировка объектов означает, что осуществлять взаимодействие можно сразу с группой объектов. При этом,
данную группу объект может определить сам, настроив ее по нужным ему признакам, а не по определенному базовому интерфейсу. Это увеличивает гибкость взаимодействия и исключает необходимость в излишних наследованиях интерфейсов. Групповые рассылки, прием и обработка данных в данной модели позволяет естественным образом строить распределенные системы взаимодействующих компонент. Наличие протоколов позволяет осуществлять взаимодействие не только между компонентами одной программы, но и
между компонентами разных программ, в том числе и на разных компьютерах. Имеется в виду, что для передачи по сети не нужно дополнительно запаковывать и распаковывать данные, т.к. они уже находятся в
нужном виде в соответствии с протоколом.
В соответствии с вышеизложенными свойствами новой модели, была разработана специальная библиотека для ОС семейства Linux. Она обеспечивает: централизованное управление взаимодействием компонентов, универсальный механизм упаковки и распаковки данных, последовательную и параллельную обработку
данных, удаленное взаимодействие компонентов в разных программах.
________________________________________________________________________
ISBN 5-7262-0633-9. НАУЧНАЯ СЕССИЯ МИФИ-2006. Том 15
1
Скачать