cleaned up some debug prints
[urisagit/Stem.git] / Doc / FAQ.txt
CommitLineData
4536f655 1What Can I Do With Stem?
2
3You should probably ask, "What can't I do with Stem?" :-). Stem is not
4bound by any narrow niche definition since it is a general purpose
5networking toolkit. As such it can be the backbone of almost any
6networked application. On the other hand Stem is designed with standard
7modules that are aimed at specific application niches. Some Stem users
8want a a way to accelerate network application development and others
9want a simple solution to common problems. Stem can satisfy the
10differing needs of both groups.
11
12What Are the Top Stem applications?
13
14The most commonly requested applications of Stem are log management,
15file distribution, monitoring and remote command execution. For more on
16Stem applications see the <A href="/app_niches.html">niches</A> page.
17
18Why Should I Use Stem?
19
20You should use Stem if you are tired of reinventing the wheel for each
21network application you build. Or if you don't want to be forced to rely
22on a commercial monolithic network tool that everyone hates to use. Or
23if you want to dramatically reduce the development and maintenance costs
24of developing your new network applications. Or if you just want to use
25a well designed network system that will make your profession much more
26enjoyable. Please contact us if you want more reasons.
27
28Who Is Using Stem?
29
30Currently we are developing a Stem based log management system for a
31Fortune 500 company. It will watch growing log files on hundreds of
32systems and transfer the new log records to a central system for
33analysis and archiving. This complex system will use standard Stem
34modules and require only a single customized tool that creates the
35configuration files. Another Internet content provider company we are
36talking to is interested in a similar system. We don't know of any
37products that can manage logs over a network as simply and elegantly as
38Stem.
39
40What Existing Products Does Stem Improve On?
41
42Stem is not a direct improvement of any existing product. Rather it is a
43coherent integration of a range of network services as used by many
44products. Stem did not invent logging, monitoring, process management,
45file transfers, etc, but it has put them together under a simple
46architecture that meets the needs of the technical market. With Stem,
47solving many common network problems doesn't require any coding at all,
48just simple edits to text-based configuration files. Even when coding
49*is* required, Stem allows you to develop and maintain complex network
50applications much more cheaply and reliably than existing application
51frameworks.
52
53Do I Need To Get Rid Of [Commercial App] To Use Stem?
54
55No, Stem can run in parallel with all of your existing applications. As long
56as Stem can have access to its own TCP ports (which can be configured to
57any available ones), it has no need to conflict with any of your current
58systems.
59
60What is a Stem Hub?
61
62A Stem Hub is a single Perl process running Stem. It can function as a
63complete stand-alone application or be connected to other Stem Hubs in a
64networked application. Stem Hubs contain the Stem core system and Stem
65Cells that have been created by configuration files. For more on this
66read the <A href="/tech_notes/arch_notes.html">arch_notes</A> document
67or find it in the Design directory of the tarball.
68
69What is a Stem Cell?
70
71A Stem Cell is a Perl object which has to have 3 major characteristics:
72
73 1. It has been registered as a Cell in this Hub with a cell name
74 and an optional target name.
75
76 2. It has to have a set of methods designated to handle messages
77 directed at the Cell.
78
79 3. It has to be able to send messages to other cells.
80
81What is a Stem Message?
82
83Stem Messages carry commands and data between Stem Cells. They are
84addressed with a Hub/Cell/Target triplet. Messages can be any one of a
85wide range of types including command, data, log, stderr etc. They can
86carry any form of data to a maximum (to be designated later) size. See
87<A /tech_notes/message_notes.html">message_notes</A> document for more.
88
89How Hard Is Stem To Install/Configure?
90
91Stem is very easy to install. It only requires Perl 5.005_03 and one
92code module Event.pm that you can get from CPAN. The rest of Stem is
93comprised of pure Perl modules which need no special installation
94handling. Read the INSTALL document for more on how to
95install it. The quickstart instruction is simply to cd to the stem
96download directory and say
97./install.pl
98
99Much more on this can be found in the <A
100href="/tech_notes/design_notes.html">config_notes</A> document or in
101the Design directory of the tarball.
102
103Can Stem Do Guaranteed Messaging?
104
105*Stem's core design does not directly support guaranteed message
106delivery. It was designed this way, as the technical market that Stem
107targets does not have that strong a requirement for this feature as the
108commercial/e-business markets have. Future releases of Stem will support
109guaranteed delivery via a separate module that is now under development.
110
111Does Stem Use XML?
112
113Stem's messages are designed to not be specific to any format or
114encoding. They can carry data structure in any format the designer wants
115including XML. In fact, the message itself can also be in any format as
116long as it is properly identified and a module to decode that format is
117installed. Currently only the Stem internal message format is used but
118as demand arises, other message formats, including XML will be
119supported. One longer term goal is that message formats from many other
120systems will be supported by gateway modules which will translate
121between Stem and external messages.
122
123What Kind Of Security Does Stem Use?
124
125Stem doesn't directly do authentication and secure transmissions. Rather
126it relies upon industry standard utilities such as SSL, ssh and stunnel to
127provide secure socket connections between Stem hubs (processes).
128
129Can Stem Do Central Configuration Management?
130
131The log management project under development has this requirement. The
132lists of log files on each system that need to be monitored are
133maintained on the central system. Configuration files are auto-generated
134from those lists and distributed to all the Stem hubs in this network
135application. The same mechanism can be used to distribute configuration
136files for other applications and Stem can also notify them to reload the
137new files.
138
139Can Stem Handle My Content Distribution?
140
141Distributing content is similar to distributing configuration files and
142will use the same mechanisms. What content is distributed to where can
143all be easily controlled by Stem configurations without any additional
144programming.
145
146Can I Extend Stem Myself To Suit Our Needs?
147
148Stem is designed to be modified and extended very easily. You can copy
149existing modules or use design ideas from them to created new Cells for
150your own needs. The high level Cell API hides the complexities of
151network communication and message transfer, leaving you free to focus on
152the specific design and coding of your custom Cells.
153
154Should I Modify Stem On My Own Or Use Stem's Development Team?
155
156If your requirements are simple, and you have skilled staff to do the
157work, there's no reason not to develop and maintain your own Stem-based
158systems. If your applications are complex applications, your staff new
159to Stem, or your time-frame short, you will probably find it more
160cost-effective to let Stem Systems' expert team develop your system for
161you.
162
163Otherwise Stem Systems can assist you in the design, development and
164configuration of your application. How much assistance can be provided
165depends on the customer subscription deal and any other contracts. If
166you do not have a subscription, our support will be limited to bug fixes
167and email and you will have to maintain your modified code on your own.
168
169Which Operating Systems Support Stem?
170
171Stem runs without any modification under any Unix flavor (Solaris,
172Linux, FreeBSD, etc.) Support for WinX is in the planning stage and is
173expected to be released in Q3 2002.
174
175How Can I Contribute to Stem?
176
177What Does Stem's Open Source License Allow Me To do?
178
179Is Stem Open Source?
180
181We are happy to announce that as of version 0.06, Stem is now under
182the GPL.
183
184What Is Stem Systems?
185
186Stem Systems is the company which is developing and maintaining Stem. It
187owns the copyright to the Stem code base and is releasing it to its
188customers and the open source community. Stem Systems also sells support
189subscriptions to the Stem user community.
190
191What Is the Business Model Of Stem Systems?
192
193Stem itself is free to use. Users can buy support subscriptions from
194Stem Systems which include Stem configuration and development
195assistance. Subscribers get earlier access to releases of new Stem
196versions and modules and direct support from Stem's development team.
197
198How Much Does a Stem Subscription Cost?
199
200The base price is an annual fee of $300 for each computer system (box)
201which is running Stem. Volume, site and educational discounts are
202available.
203
204Who Are Your Technical Advisors?
205
206
207
208What Are Your Resources?
209
210How Can I Learn Stem?
211
212The best way right now is to start with the technical notes and get a
213basic understanding of Stem, its architecture and its nomenclature. Then
214run the various demo scripts and read their configuration files.
215Developers will go next to the Cell documentation which describes each
216Cell's function, their attributes and how to configure it. There are no
217training materials now, but we are discussing the creation of classes
218with a training firm for when the demand arises.
219
220What Is the Future Of Stem?
221
222Stem will constantly be growing it Cell library and adding support for
223new features. Whenever any repeated networked operation can be
224identified, Stem will create a Stem Cell to perform it. Then Stem's
225users can easily integrate that new Cell without programming or needing
226to reinvent that wheel.
227
228Who Created Stem?
229
230Stem was created by Uri Guttman, and is the culmination of his long
231career in systems architecture and development. He has combined a
232quarter century of experience designing and implementing event-driven
233systems with his love of Perl to produce a powerful, yet easy-to-use
234framework for network applications. For more on Stem's creator, see the
235Stem Team biographies.
236
237How (and why) was Stem conceived?
238
239Stem was created when its designer was contracted to a network
240application development group where they were constantly putting out
241fires and creating a massive ad hoc system. It was clear that they
242needed a framework to give structure to their network application
243design. Stem was the result.
244
245What Does Stem Stand For?
246
247Stem is not an acronym or an abbreviation, rather it is named from the
248real word 'stem' which has several dictionary meanings that map well to Stem.
249
250v. tr.
251 1. To stop or hold back by or as if by damming; as in "stem the tide"
252
253n.
254 1. A slender stalk supporting or connecting another plant part, such
255 as a leaf or flower.
256 2. A connecting or supporting part.
257
258n.
259 1. A line of ancestry : STOCK; especially : a fundamental line from
260 which others have arisen. as in "stem cell" in biology.