Python在受限制的企业环境中分布式应用程序架构

时间:2011-06-10 14:34:04

标签: python architecture distributed environment

这是我的场景:我开发了一个Python桌面应用程序,用于在运行它的同一台机器上探测服务/数据库的状态。

我需要使用我的应用程序监视两个“兄弟”Window Server 2003主机(两者的Python版本为2.5)。其中一个主机位于我自己的局域网中,另一个位于另一个可通过VPN访问的局域网中。

申请表由:

组成
  1. 图形用户界面(gui.py),它提供小部件来收集用户输入并启动...
  2. ...业务逻辑脚本(console.py),它反过来调用从属Python脚本,检查系统的服务和数据库使用/帐户状态/ ecc。然后将这些检查的文本输出返回给GUI。
  3. 我曾经在两台机器上直接执行应用程序,但将它转换为客户机/服务器应用程序会很棒,所以:

    • 用户只能在本地gui.py运行
    • gui.py将被认为是将参数传递给将在两个Windows主机上运行的console.py的某些服务器重制版
    • 然后,服务器将执行系统检查并将结果报告给将显示它们的客户端GUI。

    我想到了两种可能的解决方案:

    1. 在每台Windows主机上创建Windows服务,基本上执行console.py的代码并等待来自客户端的传入请求
    2. 打开从任何LAN主机到所述Windows主机的SSH连接,并直接在其上运行console.py
    3. 我正在开发一个企业环境,它有一些网络和主机限制:许多网络协议(如SSH)都由我们的企业防火墙过滤。此外,我对Windows主机没有管理权限,因此我无法在它们上安装系统服务......这很令人沮丧!

      我只是想问一下是否有其他方法让gui.pyconsole.py通过网络进行通信,而我没有考虑到这一点。有没有人有任何建议?请注意 - 如果可能的话 - 我不会要求ICT部门给我Windows主机的管理权限!

      提前致谢!

1 个答案:

答案 0 :(得分:0)

回答自己:我找到了一个可能的解决方案..

我很幸运,因为console.py脚本实际上正在调用许多从属python脚本,每个脚本都通过标准的第三方命令行工具执行一次系统检查,可以触发这些工具来检查远程主机上的功能

然后,我所做的是修改gui.pyconsole.py,以便用户可以参数化地指定必须在哪个Windows主机上执行检查。 通过这种方式,我可以获得一个ditributed应用程序...但我很幸运,如果一个或多个第三方CL工具不支持远程主机功能检查怎么办?