Novell Netware Missing NDS API:
Novell Netware 4.x Directory Services is missing a critical piece which is the reason there's so few NDS aware Netware utilities. What is missing is a DOS assembler API interface for Netware Directory Services.
API stands for Application Interface. It's a layer in the Netware Shells that allows programmers, like myself, to write programs that can talk to Netware services. For example, I have a menu system and job control language called MarxMenu. It can put menu choices on the screen conditionally, based on what Netware groups a user is in. The way MarxMenu does this is that it makes Netware API calls and asks the Netware shell, "What groups am I in?" The shell receives the request from MarxMenu through the API that the shell provides and delivers to MarxMenu a list of group names.
There are several hundred Netware APIs that do all kinds of useful things such as capturing print queues, user identification, password authentication, drive mapping, messaging, server control, time services, and many others. Much of Novell's success in the marketplace can be traced back to it's rich set of APIs, which allowed programmers to write lots of useful products that take advantage of the rich Netware environment.
Novell's API interface is very extensive. It include every class of Netware services except one. The one class of services that is not supported is Netware Directory Services.
About Bindery Emulation:
Because of this missing API many products on the market today still require Bindery Emulation to work. Bindery Emulation is and API interface that allows programs, like my utilities, to continue to work in a Netware 4.x environment. Bindery Emulation is a software layer that fakes a bindery structure, so that bindery based programs thinks that there's a bindery out there. That way programs like MarxMenu can still read the list of groups that a user is in, more or less.
The problem with Bindery Emulation is that it has it's limitations. You can't for example, access personal login scripts through Bindery Emulation. You can only access the current context in write mode, and only the parts of the tree specified in a biery context command in read mode. Bindery Emulation is a software kludge that allows old programs to operate until they are migrated to become directory services aware.
But programs can't become NDS aware because there is no usable NDS Assembler interface for DOS and the C interface is virtually unusable. The reason the C interface is unusable is because it requires that you link in 170k of code that has to live in low memory (below 640k). And with everything else down there it doesn't give a programmer room to do anything else. You may have noticed that all the Novell utilities in the Public directory are now huge. That's because of this (lack of) NDS interface. Novell forces you to compile a lot of code that should be in the shell into the application software and that's why these utilities are so big and so slow.
Novell's Sorry Excuse:
"Why is this?", you might ask. It's one of the mysteries of the universe. I can't answer this because I think it's unbelievably stupid. But there's a story behind it and I'll tell you what it is.
Novell's official excuse is that "DOS is Dead". No one is using DOS anymore. This is hardly the truth because as most network supervisors know, Windows is a DOS program. In fact, Windows 95 is also a DOS program. Even though most users are using Windows, most network supervisors are running DOS to manage the network. One reason is that DOS runs batch files and Windows doesn't. You can hardly run a network with no batch files. Although Windows is a pretty interface for the end users, when you want to get real work done you go to the command line and run DOS utilities.
I have had several conversations about this issue with Novell folks and have concluded that the real reason that Novell hasn't implemented an NDS API is that they are just not smart enough to do it. It seems that NDS is over complex and that those who are responsible for writing the Netware shells are not a very sharp group and that the task of interfacing NDS is just to complex a task for them to accomplish. However, I do think that if Novell were motivated, the could fix this problem.
What it means to You:
Many of you have asked me when I will have an NDS aware MarxMenu and Network Survival Kit. Like all the other software vendors, I'm still waiting on Novell. If you have noticed, very few utilities are NDS aware. Like me, the rest of the industry is waiting on Novell as well. And what it means to you is that you're going to have to keep on waiting, just like I keep on waiting.
Do you want utilities that allow you complete control of NDS? Would you like to be able to dump and load NDS trees to and from text files. Would you like to be able to edit your NDS information any way you want? Do you want to give some people limited access to change some NDS object without having to let them use NWADMIN and really screw things up? Do you want automated process that can automatically update NDS information using a script language? Sure you do! And I want to sell it to you! But I can't!
If I get an NDS interface, I will have these products on the market in a very short period of time. Maybe within a week. I have complained loudly and bitterly about this. My letters have appeared in several Lan related magazines. But I need your help. I need you to help put pressure on Novell to deal with it. If you have any contacts in Novell that have any power, squeeze them for me.
Alternatively, Microsoft is developing their own Netware Requesters for Windows 95 and Windows NT. If Microsoft provided an interface, I would make my software talk to their API to control Netware's NDS. It might be better off if Microsoft does it because I'm beginning to become nervs about the future of Novell. I may be a small company, but I've seen a lot of big guys come and go, and you can only be stupid for so long before someone throws you out of the game.
Points to Remember:
It seems that the only way I know to get Novell to deal with this is to put the heat on them. If someone has a better idea, let me know. There are hundreds of people from hundreds of companies who have complained to Novell about it and Novell continues to blow us off. Of those hundreds of people, I am the loudest. Most vendors are afraid to piss Novell off. I'm not.
If you are a Novell customer, mention this problem to your Novell representative every chance you get. If you are a writer, write articles for computer magazines about it. If you have a web site that is visited by Novell users, put a link on your site to this page. If you just have a web browser, go to Novell Developer Relations and tell them about this.
One thing I want you to understand. I am not doing this to attack Novell. I am attempting to prevent Novell from losing market share to stupidity. And, I have a greedy motive. There are a LOT of NDS related utilities that I could write and make a lot of money with if I had these APIs. I have people calling me every day wanting programs to automate the manipulation of NDS information. If I had these APIs, I could sell and you could buy utilities to literally do anything you want with NDS. There are people who are holding off purchasing Netware 4 because they are waiting for these utilities.
So, Novell, I know you are reading this because my logs show you have accessed this page. Quit being so fucking stupid! Ray Noorda used to say that the reason for Novell's success was that they listened to the customer and gave them what they wanted. If Novell folk were you go back and read Ray Noorda's interviews in Lan Times magazine Novell would do just fine!
About the Author:
I'm Marc Perkel and I'm a geek. I'm the owner of a small software company called Computer Tyme. I write utilities for network supervisors such as MarxMenu and the Network Survival Kit. I'm also the Supreme Commander of the Nerd Liberation Movement. We're coming out of the Back Room!
- How to get MsDos 7 from Windows 95
Digital Research - The Untold Story behind the Novell Buyout