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