"Son of DCE"

This post is about IT, not software engineering, so I might be a bit out of my comfort zone but I've always been a UNIX fan. At the very least, I could use this post as a request-for-proposal for some IT consultancy to do the job.

The first version of UNIX I used was DEC OSF/1, which had some interesting features. One feature that that same OSF wrote was DCE, the Distributed Computing Environment. This is a layer on top of single-machine UNIX to implement in a coarse-grained manner the most useful features of a true distributed OS. So it's concerned with providing a general-purpose computing service to users, i.e. something that at least partially sits on your desk. I suspect it's a different set of requirements to running servers or a cloud. In DCE, the following services were provided.

DCE Wikipedia entry

Remote Procedure Call

This does a similar job to Sun/ONC RPC, but I suspect it to be a bit more complex/robust for larger networks. Sun RPC and UDP always seemed better suited to trusted LANs, not untrusted WANs like the Internet. Interesting that Microsoft use DCE RPC internally in Windows, I think it implements a lot of DCOM.

Sun RPC

But I personally would prefer to use Ada's Distributed Systems Annex instead when developing bespoke software.

DSA spec, a bit dense

One implementation

Directory service

The "directories" here are things like /etc/passwd & /etc/group. Sun invented NIS & NIS+ (otherwise known as yp) to do this job, similarly they're really good for trusted LANs. The modern equivalent is LDAP, which is better-supported than I remembered on Ubuntu. There are nice scripts to help (I failed to set this up in the past).

OpenBSD man page for yp ("Yellow Pee")

Ubuntu LDAP docs

Time service

This is simple, the modern equivalent is NTP.

Authentication service

The modern equivalent is Kerberos. I succeeded in setting this up once, it's not too difficult and well-documented for Ubuntu at least. Interesting that this is basically Microsoft's Active Directory product, but they extended it to be incompatible (boo!).

Ubuntu Kerberos docs

Distributed filesystem

Again, Sun's NFS seems appropriate only for trusted LANs. The popular replacement for modern Linux seems to be AFS, which has many interesting features (and some anti-features too, they had to drop some POSIX filesystem semantics for feasibility reasons when using a WAN which I found very interesting).

Maintained open-source implementation of AFS

Instructions for Edinburgh University

Introduction to differences to UNIX filesystems

More detail on differences

Conclusion

To clarify, the above services were implemented by DCE-specific protocols and software which failed commercially. I've just explored what seems obviously to have been their Sun ONC inspiration (although ONC never was designed to satisfy some modern security & WAN operation requirements), and modern equivalents for a UNIX (realistically, Linux) shop.

Compared to the older Sun software from which it took obvious inspiration (ONC RPC, yp, NFS) the modern Linux stack is more complex, but I suspect more suitable for large organizations or working over the Internet.

Also, on a topic that I have become more interested in, a Linux deployment using this software can provide availablity when other choices cannot. For example, if you use Microsoft's (or any corporation subject to US law, Amazon VDI would have the same problem) infrastructure, it just takes one word to the US Department of Justice and nothing will work for you like happened to the International Criminal Court judge--perhaps this has something to do with why Microsoft are eliminating local machine accounts. Off-topic, but it's like how my country is choosing warplanes to purchase and the thinking is that 10 inferior Saab Gripens in the air is a better choice than 10 superior F-35s that are stuck on the ground.

Sanctions on ICC judge

Back to my gemlog