Копировать ссылку на страницу

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

1.В конфигурационном файле Web.config каждого контроллера, которые необходимо связать, в секции system.serviceModel во вложенном элементе client укажите соседние контроллеры:

 

<system.serviceModel>
<client>
  <!-- Указываются все узлы, с которыми будет устанавливаться соединение.
     Для контроллера указываются его соседние контроллеры -->
  <endpoint address="http://<Адрес веб-узла соседнего контроллера1>:<Порт>/
    NpoComputer.Dics.Controller.svc"
    <!-- Указываются дополнительные параметры подключения контроллера -->
       binding="wsHttpBinding" bindingConfiguration="SafetyCommunicationBinding"
       contract="NpoComputer.Dics.Communication.INetCommunicator"
       name="{Имя соседнего контроллера 1}"
       behaviorConfiguration="SafetyClientBehavior">
      <identity>
        <dns value="{DNS-имя сервера, на котором развернут контроллер}"/>
        <!-- Если DNS-имени нет, то настройка не указывается -->
      </identity>
  </endpoint>
  <endpoint address="http://<Адрес веб-узла соседнего контроллера2>:<Порт>/
    NpoComputer.Dics.Controller.svc">
     ...
  </endpoint>
</client>
</system.serviceModel>

Например, если объединяются два контроллера, то на первом контроллере задаются настройки для подключения второго контроллера, а на втором – первого контроллера.

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

Пакеты данных передаются по цепочке. Связи напрямую нет. Поэтому для каждого контроллера, указываются данные его соседних контроллеров.

Подробное описание файла конфигурации см. в разделе «Файл Web.config».

 

2.На каждом контроллере, которые необходимо объединить, добавьте соседние контроллеры с помощью утилиты DicsManageUtil.exe. Выполните команду:

<Папка веб-узла>\BIN\DICSManageUtil.exe <Имя контроллера>Manager ADDCONTROLLER <Имя соседнего контроллера> <Имя соседнего контроллера>Manager

Подробное описание утилиты см. в разделе «Утилита DicsManageUtil.exe».

Свернуть/развернуть пример Пример объединения двух контроллеров

На первом контроллере добавляется второй контроллер, так как он является единственным соседним контроллером первому:

C:\inetpub\wwwroot\DICSControllerWebroot\BIN\DICSManageUtil.exe Controller1Manager ADDCONTROLLER Controller2 Controller2Manager

На втором контроллере аналогично добавляется первый контроллер:

C:\inetpub\wwwroot\DICSControllerWebroot\BIN\DICSManageUtil.exe Controller2Manager ADDCONTROLLER Controller1 Controller1Manager

Свернуть/развернуть пример Пример объединения трех контроллеров

Пример из схемы, расположенной выше.

На первом контроллере добавляется второй контроллер:

C:\inetpub\wwwroot\DICSControllerWebroot\BIN\DICSManageUtil.exe Controller1Manager ADDCONTROLLER Controller2 Controller2Manager

На втором контроллере добавляются третий и первый контроллеры, так как они оба являются соседними второму:

C:\inetpub\wwwroot\DICSControllerWebroot\BIN\DICSManageUtil.exe Controller2Manager ADDCONTROLLER Controller3 Controller3Manager

C:\inetpub\wwwroot\DICSControllerWebroot\BIN\DICSManageUtil.exe Controller2Manager ADDCONTROLLER Controller1 Controller1Manager

На третьем контроллере добавляется второй контроллер:

C:\inetpub\wwwroot\DICSControllerWebroot\BIN\DICSManageUtil.exe Controller3Manager ADDCONTROLLER Controller2 Controller2Manager

 

3.С помощью утилиты DicsManageUtil.exe на всех контроллерах, между которыми необходимо организовать взаимодействие, добавьте агенты, обслуживаемые ими. Выполните команду:

<Папка веб-узла>\BIN\DICSManageUtil.exe <Имя контроллера>Manager ADDAGENT <Имя присоединяемого контроллера>\<Имя агента, который обслуживается присоединяемым контроллером>

Свернуть/развернуть пример Пример объединения двух контроллеров

На первом контроллере добавляется агент, обслуживаемый вторым контроллером:

C:\inetpub\wwwroot\DICSControllerWebroot\BIN\DICSManageUtil.exe Controller1Manager ADDAGENT Controller2\Agent4

На втором контроллере добавляется агент, обслуживаемый первым контроллером:

C:\inetpub\wwwroot\DICSControllerWebroot\BIN\DICSManageUtil.exe Controller2Manager ADDAGENT Controller1\Agent1

Свернуть/развернуть пример Пример объединения трех контроллеров

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

На первом контроллере:

C:\inetpub\wwwroot\DICSControllerWebroot\BIN\DICSManageUtil.exe Controller1Manager ADDAGENT Controller3\Agent6

На третьем контроллере:

C:\inetpub\wwwroot\DICSControllerWebroot\BIN\DICSManageUtil.exe Controller3Manager ADDAGENT Controller1\Agent1

 

4.На всех контроллерах, между которыми необходимо организовать взаимодействие, добавьте маршрут в таблицу маршрутизации контроллера при помощи утилиты DicsManageUtil.exe. Выполните команду:

<Папка веб-узла>\BIN\DICSManageUtil.exe <Имя контроллера>Manager ACTIVEROUTE <Имя целевого контроллера> <Имя передающего контроллера>

Свернуть/развернуть пример Пример объединения двух контроллеров

На первом контроллере:

C:\inetpub\wwwroot\DICSControllerWebroot\BIN\DICSManageUtil.exe Controller1Manager ACTIVEROUTE Controller2 Controller1

На втором контроллере:

C:\inetpub\wwwroot\DICSControllerWebroot\BIN\DICSManageUtil.exe Controller2Manager ACTIVEROUTE Controller1 Controller2

Свернуть/развернуть пример Пример объединения трех контроллеров

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

На первом контроллере задается маршрут до третьего контроллера через второй, так как он является соседним первому и третьему:

C:\inetpub\wwwroot\DICSControllerWebroot\BIN\DICSManageUtil.exe Controller1Manager ACTIVEROUTE Controller3 Controller2

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

C:\inetpub\wwwroot\DICSControllerWebroot\BIN\DICSManageUtil.exe Controller2Manager ACTIVEROUTE Controller3 Controller2

C:\inetpub\wwwroot\DICSControllerWebroot\BIN\DICSManageUtil.exe Controller2Manager ACTIVEROUTE Controller1 Controller2

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

C:\inetpub\wwwroot\DICSControllerWebroot\BIN\DICSManageUtil.exe Controller3Manager ACTIVEROUTE Controller1 Controller2

 

5.На всех контроллерах перестройте таблицы маршрутизации с помощью утилиты DicsManageUtil.exe. Выполните команду:

<Папка веб-узла>\BIN\DICSManageUtil.exe <Имя контроллера>Manager REBUILDROUTE

© 2016 Компания DIRECTUM Сообщество пользователей DIRECTUM