Stem: Simplified Creation of Client-Server Applications

In this section, we’ll look at Stem, a package that makes it very easy to create sophisticated client-server applications for administrative services. Stem is a relatively new open source package developed by Uri Guttman. The project’s home page is Stem can be used to create a variety of useful client-server applications, including ones that are network-based. In essence, Stem allows you to create complex applications with only script-level effort.


Running the Stem demonstration programs is a good way to get used to Stem’s capabilities. The ones discussed in this section are available from my website (

Installing Stem is straightforward. Once installed, Stem provides you with the ability to create communicating processes via simple configuration files and ordinary Unix commands (or scripts). Stem handles all interprocess communication for you transparently. As we’ll see, Stem can be used to create entirely new applications and can also serve as the conduit that allows existing commands and programs to communicate regardless of their individual interfaces.

To understand some Stem examples, we first need to define a few terms:

  • A hub is a Stem daemon running on a computer system. Stem applications consist of one or more interconnected hubs.

  • A Stem cell is an object within a Stem hub. Cells provide the various parts of the applications functionality. Stem cells are objects.[9] As ...

Get Essential System Administration, 3rd Edition now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.