From: Randall S. <ra...@tn...> - 2004-03-25 04:54:05
|
I am working on a project in which I have chosen to use xmlrpc. As I set out to look for an app server, I wanted one that would allow code changes without restarting the process(es) and one that is non-blocking. I considered building my own from the Python standard library, and I considered twisted. I'm not comfortable with twisted's deffered solution for writing non-blocking code, and neither solution would let me easily manage the server and reload modules, etc. I had used Webware before for building a website and thought it sure would be nice if Webware did XMLRPC. And lo and behold, to my delight, it does! Multi-threaded, easily managed, dynamically realoading modules. And written in pure Python. So I'm happy. So I ponder. Why isn't Webware more aggressive as a general webservices app server. Is there a SOAP implementation? Would it be difficult to create one? Probably not much more difficult to impement than xmprpc. It seems like such a natural fit. Here are its advantages as I see them: 1. Decoupled from the webserver. Apache does a great job of managing connections. Why try to beat it? Webware focuses on the application side. 2. Multi-threaded. Although the global interpreter lock may prevent scaling on SMP machines (hence twisteds async), I've found the performance to be superb in my experience. It is very responsive while handling simultaneous requests. 3. Manageable. The web interface for managing the service is nice. Being able to reload modules with the server running means more uptime. Webware can also watch mtimes on the files to reload them when they are changed. So what else do you want in an app server? Is there a better app server that 'all the other' Pythoneers are using and I'm just missing? If not, ring the bell! Webware is such a simple and powerful framework for building web apps. It lets me program in Python (unlike Zope) and doesn't force me to use a specialized abstracted framework, but provides easy access to the things I need (http request info). So back to my question. Is Webware intended to be a webservices (web/xmlrpc/soap) app server? If not why? I understand it is not like twisted, supporting every protocol under the sun. It should not be. I think it should stay with http based protocols. But why not support them all? If the glove fits. Randall |