The Laws of Virtual Directories (Part 3)
Thursday, October 1, 2009 at 02:50AM In the previous two posts we looked at planning, implementing, and supporting a virtual directory environment in the context of Larry Aucoin's Top 10 Laws Of Virtual Directories. As the final installment of our series discussing his blog articles, we want to consider the topic of internal development. While this obviously includes planning, implementation, and support we see it as a separate and important group because it is orthogonal to all these aspects of a virtual directory infrastructure.
- Law X: A Virtual Directory MUST NOT require custom coding
We think this last law is only partly true. A virtual directory should provide the functionality to resolve most problems without requiring custom code. In our experience, Symlabs Virtual Directory Server deployments are handled using out-of-the-box functionality 99% of the time. The extensive list of included plug-ins that can easily be incorporated out-of-the-box into a configuration is the key to this.
All of our plug-ins are developed in a simple scripting language that allows a client to review the code and understand what it is doing, which means it's also easy customize. And, providing the option to quickly develop custom code puts power in the hands of the customer. It means that solutions can be developed which cater to very specific requirements, and also that the efficiency of solutions can be optimized. But, a 'one-size-fits-all' approach does not work - it results in bloated and inefficient systems that attempt to handle every possible scenario that anyone could think up, but almost always miss one that is unique to your situation.
In our hands-on experience with actual deployments, we have faced and solved many situations where client LDAP applications did not behave well. In most situations, the application behaved in a manner that was fairly unpredictable such that it's unlikely a virtual directory vendor could have anticipated it and coded a solution beforehand. It seems that sometimes there is no way to predict some problems, you simply must find them. You could choose to wait and see if any virtual directory vendor will release a product in the future that deals with your particular issue, or you could take advantage of a virtual directory that allows you (or the vendor) to quickly develop a custom solution that matches your own specific requirements.
By providing the option to develop custom code, problems are resolved quickly and efficiently. There is no need to wait for a vendor to provide a patch or new release. A unique solution can be coded for your requirements without affecting the core of the virtual directory server code, and you can code them yourself if you choose. Our DirectoryScript API is thoroughly documented and includes a very simple Scripting Guide which ensures that you can always take control of your own solution. It's important not to be wholly dependent on a vendor in uncertain economic times - what do you do if a product is locked up and suddenly you don't have access to the all pieces that create functionality you rely on heavily.
Finally, the ability to code your own solution means that you won't exhaust yourself trying to fit a square peg into a round hole. Vendors naturally try to think up the issues that you might want to resolve before you ever get to them, but often the result is that you are forced to solve your particular problem using a tool that isn't designed expressly to fit the specifics of your environment. Most of the time that's not a problem, otherwise we would never even bother to provide any plug-ins at all. But, every so often you find yourself confronted with a situation where the standard plug-ins just don't fit.
So, we think Law X should really read:
- Your Virtual Directory Server should solve most of your problems out-of-the-box, AND
should also be extensible and capable of modifications to suit your unique requirements
Fernando García Vegas








