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