What Can I Do With Stem? You should probably ask, "What can't I do with Stem?" :-). Stem is not bound by any narrow niche definition since it is a general purpose networking toolkit. As such it can be the backbone of almost any networked application. On the other hand Stem is designed with standard modules that are aimed at specific application niches. Some Stem users want a a way to accelerate network application development and others want a simple solution to common problems. Stem can satisfy the differing needs of both groups. What Are the Top Stem applications? The most commonly requested applications of Stem are log management, file distribution, monitoring and remote command execution. For more on Stem applications see the niches page. Why Should I Use Stem? You should use Stem if you are tired of reinventing the wheel for each network application you build. Or if you don't want to be forced to rely on a commercial monolithic network tool that everyone hates to use. Or if you want to dramatically reduce the development and maintenance costs of developing your new network applications. Or if you just want to use a well designed network system that will make your profession much more enjoyable. Please contact us if you want more reasons. Who Is Using Stem? Currently we are developing a Stem based log management system for a Fortune 500 company. It will watch growing log files on hundreds of systems and transfer the new log records to a central system for analysis and archiving. This complex system will use standard Stem modules and require only a single customized tool that creates the configuration files. Another Internet content provider company we are talking to is interested in a similar system. We don't know of any products that can manage logs over a network as simply and elegantly as Stem. What Existing Products Does Stem Improve On? Stem is not a direct improvement of any existing product. Rather it is a coherent integration of a range of network services as used by many products. Stem did not invent logging, monitoring, process management, file transfers, etc, but it has put them together under a simple architecture that meets the needs of the technical market. With Stem, solving many common network problems doesn't require any coding at all, just simple edits to text-based configuration files. Even when coding *is* required, Stem allows you to develop and maintain complex network applications much more cheaply and reliably than existing application frameworks. Do I Need To Get Rid Of [Commercial App] To Use Stem? No, Stem can run in parallel with all of your existing applications. As long as Stem can have access to its own TCP ports (which can be configured to any available ones), it has no need to conflict with any of your current systems. What is a Stem Hub? A Stem Hub is a single Perl process running Stem. It can function as a complete stand-alone application or be connected to other Stem Hubs in a networked application. Stem Hubs contain the Stem core system and Stem Cells that have been created by configuration files. For more on this read the arch_notes document or find it in the Design directory of the tarball. What is a Stem Cell? A Stem Cell is a Perl object which has to have 3 major characteristics: 1. It has been registered as a Cell in this Hub with a cell name and an optional target name. 2. It has to have a set of methods designated to handle messages directed at the Cell. 3. It has to be able to send messages to other cells. What is a Stem Message? Stem Messages carry commands and data between Stem Cells. They are addressed with a Hub/Cell/Target triplet. Messages can be any one of a wide range of types including command, data, log, stderr etc. They can carry any form of data to a maximum (to be designated later) size. See message_notes document for more. How Hard Is Stem To Install/Configure? Stem is very easy to install. It only requires Perl 5.005_03 and one code module Event.pm that you can get from CPAN. The rest of Stem is comprised of pure Perl modules which need no special installation handling. Read the INSTALL document for more on how to install it. The quickstart instruction is simply to cd to the stem download directory and say ./install.pl Much more on this can be found in the config_notes document or in the Design directory of the tarball. Can Stem Do Guaranteed Messaging? *Stem's core design does not directly support guaranteed message delivery. It was designed this way, as the technical market that Stem targets does not have that strong a requirement for this feature as the commercial/e-business markets have. Future releases of Stem will support guaranteed delivery via a separate module that is now under development. Does Stem Use XML? Stem's messages are designed to not be specific to any format or encoding. They can carry data structure in any format the designer wants including XML. In fact, the message itself can also be in any format as long as it is properly identified and a module to decode that format is installed. Currently only the Stem internal message format is used but as demand arises, other message formats, including XML will be supported. One longer term goal is that message formats from many other systems will be supported by gateway modules which will translate between Stem and external messages. What Kind Of Security Does Stem Use? Stem doesn't directly do authentication and secure transmissions. Rather it relies upon industry standard utilities such as SSL, ssh and stunnel to provide secure socket connections between Stem hubs (processes). Can Stem Do Central Configuration Management? The log management project under development has this requirement. The lists of log files on each system that need to be monitored are maintained on the central system. Configuration files are auto-generated from those lists and distributed to all the Stem hubs in this network application. The same mechanism can be used to distribute configuration files for other applications and Stem can also notify them to reload the new files. Can Stem Handle My Content Distribution? Distributing content is similar to distributing configuration files and will use the same mechanisms. What content is distributed to where can all be easily controlled by Stem configurations without any additional programming. Can I Extend Stem Myself To Suit Our Needs? Stem is designed to be modified and extended very easily. You can copy existing modules or use design ideas from them to created new Cells for your own needs. The high level Cell API hides the complexities of network communication and message transfer, leaving you free to focus on the specific design and coding of your custom Cells. Should I Modify Stem On My Own Or Use Stem's Development Team? If your requirements are simple, and you have skilled staff to do the work, there's no reason not to develop and maintain your own Stem-based systems. If your applications are complex applications, your staff new to Stem, or your time-frame short, you will probably find it more cost-effective to let Stem Systems' expert team develop your system for you. Otherwise Stem Systems can assist you in the design, development and configuration of your application. How much assistance can be provided depends on the customer subscription deal and any other contracts. If you do not have a subscription, our support will be limited to bug fixes and email and you will have to maintain your modified code on your own. Which Operating Systems Support Stem? Stem runs without any modification under any Unix flavor (Solaris, Linux, FreeBSD, etc.) Support for WinX is in the planning stage and is expected to be released in Q3 2002. How Can I Contribute to Stem? What Does Stem's Open Source License Allow Me To do? Is Stem Open Source? We are happy to announce that as of version 0.06, Stem is now under the GPL. What Is Stem Systems? Stem Systems is the company which is developing and maintaining Stem. It owns the copyright to the Stem code base and is releasing it to its customers and the open source community. Stem Systems also sells support subscriptions to the Stem user community. What Is the Business Model Of Stem Systems? Stem itself is free to use. Users can buy support subscriptions from Stem Systems which include Stem configuration and development assistance. Subscribers get earlier access to releases of new Stem versions and modules and direct support from Stem's development team. How Much Does a Stem Subscription Cost? The base price is an annual fee of $300 for each computer system (box) which is running Stem. Volume, site and educational discounts are available. Who Are Your Technical Advisors? What Are Your Resources? How Can I Learn Stem? The best way right now is to start with the technical notes and get a basic understanding of Stem, its architecture and its nomenclature. Then run the various demo scripts and read their configuration files. Developers will go next to the Cell documentation which describes each Cell's function, their attributes and how to configure it. There are no training materials now, but we are discussing the creation of classes with a training firm for when the demand arises. What Is the Future Of Stem? Stem will constantly be growing it Cell library and adding support for new features. Whenever any repeated networked operation can be identified, Stem will create a Stem Cell to perform it. Then Stem's users can easily integrate that new Cell without programming or needing to reinvent that wheel. Who Created Stem? Stem was created by Uri Guttman, and is the culmination of his long career in systems architecture and development. He has combined a quarter century of experience designing and implementing event-driven systems with his love of Perl to produce a powerful, yet easy-to-use framework for network applications. For more on Stem's creator, see the Stem Team biographies. How (and why) was Stem conceived? Stem was created when its designer was contracted to a network application development group where they were constantly putting out fires and creating a massive ad hoc system. It was clear that they needed a framework to give structure to their network application design. Stem was the result. What Does Stem Stand For? Stem is not an acronym or an abbreviation, rather it is named from the real word 'stem' which has several dictionary meanings that map well to Stem. v. tr. 1. To stop or hold back by or as if by damming; as in "stem the tide" n. 1. A slender stalk supporting or connecting another plant part, such as a leaf or flower. 2. A connecting or supporting part. n. 1. A line of ancestry : STOCK; especially : a fundamental line from which others have arisen. as in "stem cell" in biology.