Архитектура распределенных приложений Python в ограниченной корпоративной среде - PullRequest
0 голосов
/ 10 июня 2011

Это мой сценарий: я разработал настольное приложение Python, которое я использую для проверки состояния сервисов / БД на той же машине, на которой он запущен.

Мне нужно отслеживать, используя мое приложениедва "брата" хоста Window Server 2003 (версия Python для обоих - 2.5).Один из хостов находится в моей собственной локальной сети, другой - в другой локальной сети, доступ к которой возможен через VPN.

Приложение состоит из:

  1. Графический интерфейс пользователя (gui.py), который предоставляет виджеты для сбора пользовательских данных и запускает скрипт бизнес-логики ...
  2. ... (console.py), который, в свою очередь, вызывает скрипты подчиненного Python, которые проверяют системные службы и БДиспользование / статус аккаунта / ecc.Текстовый вывод этих проверок затем возвращается обратно в графический интерфейс.

Я использовал для запуска приложения непосредственно на каждой из двух машин, но было бы здорово превратить его в приложение клиент / сервер, так что:

  • пользователи просто должны будут запускать gui.py локально
  • , gui.py должен передавать параметры некоторым серверным ремейкам console.py, которыебудет работать на обоих хостах Windows
  • , после чего серверы будут выполнять системные проверки и сообщать о результатах клиентскому графическому интерфейсу, который их отображает.

Я подумал о двух возможныхрешения:

  1. Создание службы Windows на каждом из хостов Windows, в основном выполнение кода console.py и ожидание входящих запросов от клиентов
  2. Открытие соединений SSH из любой локальной сетихост на установленном хосте Windows и напрямую запустите на нем console.py.

Я работаю в корпоративной среде, которая имеет некоторые ограничения сети и хоста: многие сетевые протоколы (например, SSH) фильтруются нашим корпоративным брандмауэром.Кроме того, у меня нет привилегий администратора на хостах Windows, поэтому я не могу устанавливать на них системные службы ... это расстраивает!

Я просто хотел спросить, есть ли другой способ сделатьgui.py и console.py общаются по сети и которые я не учел.У кого-нибудь есть предложения?Обратите внимание, что - если возможно - я не собираюсь просить отдел ИКТ предоставить мне привилегии администратора на хостах Windows!

Заранее спасибо!

1 Ответ

0 голосов
/ 13 июня 2011

Ответьте себе: я нашел одно возможное решение ..

Мне повезло, потому что скрипт console.py фактически вызывает много сценариев подчиненного Python, каждый из которых выполняет одну единственную проверку системы с помощью стандартной третьейсторонние инструменты командной строки, которые можно запускать для проверки функций на удаленных хостах.

Затем я изменил gui.py и console.py, чтобы пользователи могли параметрически указывать, на какой Windows размещать проверкидолжно быть выполнено.Таким образом, я могу получить распределенное приложение ... но мне повезло, что если один или несколько сторонних инструментов CL не поддерживают проверку функций удаленного хоста?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...