从哪里开始编程服务器应用程序

时间:2010-11-23 07:04:42

标签: python

问题:学习编写服务器应用程序的良好起点在哪里?


的信息:

我正在研究编写一个分布式计算系统,以收集在学院校园闲置的几百台计算机的闲置周期。有些系统已接近,但并不完全符合我需要的所有要求。 (最值得注意的是所有交易都必须通过SSH进行,因为网络会阻止其他所有事务)所以我决定编写自己的应用程序。部分是为了得到我想要的,但也为了体验。

重要功能:

  1. 用python编写
  2. 通过ssh进行的所有交易(通过简单使用pexpect解决)
  3. 服务器需要能够承受数百次点击。我稍后会优化,重点是模拟会话。
  4. 我觉得那些尝试和完成的东西并不荒谬。但是最后一个我不确定从哪里开始。我实际上已经完成了前两个并编写了一个程序,它将登录到我的服务器,然后在本地打印ls -l到一个文件。所以这并不难。但是我如何连接几个客户端要求服务器模拟数据同时处理?显然感觉线程在这里发挥作用,但不止于此我确定。

    这就是我的问题所在。哪个人甚至开始研究如何编写服务器应用程序?我甚至使用正确的措辞吗?哪些信息可以在互联网上免费获得和/或有哪些书籍?再一次,特别是python,但朝着正确的方向迈出的一步比我现在的更多。

    P.S。这个看起来更适合stackoverflow而不是serverfault。如果我错了,请纠正我。

3 个答案:

答案 0 :(得分:4)

查看以下有关SO

的讨论

另请参阅

的精彩介绍

答案 1 :(得分:1)

Twisted是一个事件循环框架,通常在Python中用于网络处理。

答案 2 :(得分:0)

这是一种方法。

  1. 在Python中编写“代理”。代理程序安装在各种计算机上。它可以在本地进行任何处理。它使用urllib2来生成服务器的RESTful HTTP请求。它可以发布数据或请求工作或应该发生的任何事情。

  2. 在Python中编写“服务器”。服务器安装在一台计算机上。这是使用wsgiref编写的,是一个简单的基于WSGI的服务器,可以处理分散在校园内的各个代理的请求。

  3. 虽然这需要安装代理,但它非常非常简单。它可以非常非常安全(使用HTTP摘要式身份验证)。代理的权限定义了漏洞的级别。如果代理程序在权限相对较少的帐户中运行,则非常安全。代理不应以root身份运行,并且不应允许代理的帐户susudo