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

09 Сентября 2024

Компонентный подход к построению распределенных имитационных моделей


Веселов А.А. (veselov_a_a@mail.ru) - Тверской государственный технический университет, доктор технических наук
Ключевые слова: удаленное взаимодействие, внешний представитель функционального модуля, функциональный модуль, компонента, распределенная система
Keywords: remote interaction, proxy of the functional module, the functional module, component, information processing system


     

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

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

-   использование автоматного подхода;

-   отделение внешних связей с компонентой от внутренних связей с ее составными частями;

-   разделение компоненты (узла) распределенной системы на взаимодействующие части – функциональную и представительскую.

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

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

-      внешние связи компоненты – связи между компонентами, расположенными на одном иерархическом уровне и не состоящими в отношении подчиненности друг к другу;

-      внутренние связи компоненты – связи между владеющей и подчиненными компонентами, расположенными на более низком иерархическом уровне и состоящими в отношении подчиненности к владеющей компоненте.

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

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

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

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

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

Реализацию внутренних связей предлагается осуществлять, используя механизмы удаленного доступа и/или механизмы обмена сообщениями и их обработки, основанные на активном использовании таких понятий, как события и делегаты. Для этого представители подчиненных компонент подписываются (обязуются) соответствующим образом реагировать на все сообщения, посылаемые для них модулем владеющей компоненты (на рис. 3 – сигналы управления модулем). В свою очередь, и модуль владеющей компоненты подписывается реагировать на все сообщения, отсылаемые ему подчиненными компонентами (на рис. 3 – ответные реакции модуля). Такое решение позволит обеспечить достаточно эффективное и надежное взаимодействие между владеющими и подчиненными компонентами распределенной модели.

Рассмотренный компонентный подход к построению распределенных систем был использован на кафедре ЭВМ Тверского государственного технического университета для построения распределенных дискретно-событийных имитационных моделей устройств цифровой автоматики и вычислительной техники на основе применения математического аппарата теории сетей Петри [3]. Полученные результаты полностью подтвердили эффективность предложенного подхода и перспективность его применения при построении распределенных имитационных моделей.

Литература

1. Таненбаум Э., ван Стеен М. Распределенные системы. Принципы и парадигмы. СПб: Питер, 2003.

2. Александров А.А. Распределенное имитационное моделирование: технологии, методы, средства // Вестн. НГУ: Сер. Информационные технологии. Вып. 3. Т. 7. 2009.

3. Веселов А.А. Моделирование устройств цифровой электронной техники D-расширением сетей Петри: монография. Тверь: ТГТУ, 2006.



http://swsys.ru/index.php?id=3102&lang=%29&page=article


Perhaps, you might be interested in the following articles of similar topics: