some ideas

Discussion in 'Developers' Forum' started by meemu, Jun 18, 2007.

  1. meemu

    meemu ISPConfig Developer ISPConfig Developer


    I am fairly new to the ispconfig developper community so wanted to say hello to everyone here and how I got here. I was in the process of setting up a new web hosting environment for our small not-for-profit ISP when I came across ispconfig. I installed it and started playing around with it and find out how it would integrate into our current infrastructure. I was really impressed as it did a lot of the things that we used to script manually. For other things I did some patching and scripting as it wouldn't support a multi-server setup as we run it with dedicated db server, mail servers etc. Hence, I am really excited by the what I have seen is in store for ispconfig 3. After I had a look at the online demo for version 3 I've started wondering about a couple of ideas that I have come across during the last couple of years of researching cpanel like OSS solutions. To me it seems a lot of these are present in version 3 and so I wanted to share some thoughts.

    * User Interface Framework
    I do some web development work besides sysadmin and I have really gotten to like Drupal. It's very easy to extend, code is well maintained, and there is a huge developer community with a lot of momentum. It seems fairly security aware and is quick in identifying security problems. From a programmer's perspective it is very adaptable to a wide range of tasks.

    * Remote Procedure Calls:
    A friend from a sister company pointed me to some work a colleague of his had done about managing an array of servers via XML RPC. It's a simple technology. That means that different implementations work fairly well together. There are libraries for many programming languages. It's free from any proprietary stuff. It can be implemented in a very secure manner. Finally, though it is simple it can do fairly complicated stuff. In a way, it is on its way of becoming a de facto standard for RPC stuff (e.g. there is a patch for mailman, Drupal supports it, ...)

    Last I year worked on a project for a remote administration solution for mailman. The aim was to allow an administrator to create and delete new mailman lists via a comfortable interface. At the same time the mailman installation would host other mailing lists so security and privileges were an issue.
    The solution I developed combined Drupal and XML RPC. If you're interested you can download the Drupal module here
    It is not well documented but this is how it basically works:
    * The server (the machine mailman runs on) runs an XML RPC server. For this it uses a minimal apache-ssl with mod-php. This runs on a dedicated port so it can be firewalled plus it uses htdigest authentication so passwords need not be stored on either end. On top of that it's only accessible via SSL. Any communication between client and server are secure.
    The execution of XML RPC calls itself is left to the server. In this case it is set up so that the apache-ssl runs as a dedicated user that is allowed to do a couple of commands using sudo.
    * The client is a module in Drupal. All the authentication and user management stuff can be done using Drupal standard stuff. In other words it can rely on Drupal for being secure. Other parts of the user interface are also done using standard Drupal methods. So it doesn't have to worry about themes, generating HTML or anything like that. All it does besides the "normal Drupal stuff" is make XML RPC calls to the server when necessary. For instance, when the administrator creates a new list node, it calls the server to actually create the list. The server replies success or failure and accordingly the client creates a new node or informs the administrator.

    There is some beauty in this. Given that you don't have to worry about the web frontend, the communication between client and server, or security, "all" that is left to implement is the call on the client and the handler on the server.

    I think it's a very generic approach. It might be worth considering using something like this for ISPConfig v4 (if not 3). There would not be a need to develop the whole RPC thing, authentication thing, or web interface thing. It's already there for use.

    Let me know what you think
  2. till

    till Super Moderator Staff Member ISPConfig Developer


    ISPConfig 2.3.2 has already a framework like you described it above:

    It is currently not 100% complete as some of the newer functions are not available via remoting yet, but it generally works fine. SOAP is very similar then XML RPC, as far as I know XML-RPC is the ancestor of SOAP and soap is also supported in all major development languages.

    I plan to implement something similar in SOAP or xmlrpc for ISPConfig 3 too.

    I will have a look at the user interface framework from drupal.

Share This Page