cleaned up demo scripts locations
[urisagit/Stem.git] / FAQ / faq.text
CommitLineData
4536f655 1S: About M<Stem>
2
3
4Q: What is M<Stem>?
5
6A: M<Stem> is a general purpose networking toolkit and a suite of ready
7to use network applications. Its goal is to transform common network
8programming to configuration and make uncommon network programming much
9simpler. Some M<Stem> users will use its suite of applications and
10modules and just configure them to perform their needed network
11tasks. Others will create new M<Stem> modules to perform their specific
12tasks and integrate them with M<Stem>'s standard modules using
13configurations. In both cases, M<Stem> will speed up network
14application development, simplify maintenance, and lower lifetime costs.
15
16
17Q: Where can I get M<Stem>?
18A: M<Stem> can now be downloaded by the general public. Go to the
19<A HREF="download.html">download</A> page to get the latest version.
20
21
22Q: What Can I Do With M<Stem>?
23A: M<Stem> is a general purpose networking toolkit. As such, it can
24be the backbone or framework of almost any networked (distributed)
25application you can imagine. M<Stem> is designed with standard modules
26that are aimed at specific application niches. Some M<Stem> users
27want a simple solution to common problems while others need a way to
28accelerate network application development. Via this modular design,
29M<Stem> can satisfy the differing needs of both groups.
30
31
32Q: What Are the Top M<Stem> Applications?
33A: The most commonly requested applications of
34M<Stem> are log management, file distribution,
35monitoring and remote command execution. For more on
36M<Stem> applications, see the <A href="products.html">niches</A> page.
37
38QUOTE<
39 Stem Monitoring. \
40 Overloaded Server Appears. \
41 Remediation. \
42 -- U.G. \
43 >
44
45Q: Why Should I Use M<Stem>?
46A: You should use M<Stem> if:
47<UL>
48 <LI><P>You are tired of reinventing the wheel for each
49 network application you build. M<Stem> provides you with all
50 the common services that a network application needs and
51 makes them very simple to use.</P></LI>
52
53 <LI><P>You don't want to be forced to rely on a commercial
54 monolithic network tool that everyone hates to use. M<Stem> is
55 low cost and Open Source. You can easily write new modules
56 to customize M<Stem> to your needs.</P></LI>
57
58 <LI><P>You want to dramatically reduce the development
59 and maintenance costs of developing your new
60 network applications. M<Stem> tranforms common network
61 programming to configuration. Even if you create new M<Stem>
62 modules, it is very simple to connect them together with
63 M<Stem> configurations. This lowers your development time and
64 costs in many ways.</P></LI>
65
66 <LI><P>You just want to use a well-designed network system that
67 will make your profession much more enjoyable. M<Stem> is
68 architected to be easy to use at both the configuration and
69 coding levels. Our goal is for all M<Stem> users to enjoy
70 working with it and reduce the frustrations and stress of
71 network management.</P></LI>
72</UL>
73
74<P>These are just a few of the many reasons why
75M<Stem> should be in place on your network.
76If you have questions on how M<Stem> will benefit
77your individual needs, <A HREF="mailto:faq@stemsystems.com">please contact us</A>.
78
79
80Q: Who Is Using M<Stem>?
81A: A start up firm hired M<Stem Systems> to implement a specialized
82web crawler. M<Stem> will be used as
83the communications backbone for this multiprocessor system and
84it will interconnect and manage all of its components. Some of
85those components include subprocesses doing the page fetches,
86site objects, html page parsers, custom filters, crawl management
87and a database.
88
89QUOTE<
90 Divers search limpid pools. \
91 Precious Perl is summer's find, \
92 But Stem is loved more. \
93 -- D.G. \
94>
95
96Q: How can I be notified about M<Stem> updates?
97A: M<Stem Systems> has a email list dedicated to M<Stem> updates. To
98subscribe, send an empty email to: news-subscribe@stemsystems.com. This
99is a low volume list used for sending important news regarding M<Stem>
100(ie - new releases).
101
102S: M<Stem> Design
103
104Q: Do I Need To Get Rid Of [Commercial Application] To Use M<Stem>?
105A: No, M<Stem> can run in parallel with all of
106your existing applications. As long as M<Stem>
107can have access to its own TCP ports (which can be configured to
108any available ones), it has no need to conflict with any of your current
109systems.
110
111QUOTE<
112 superglue the net \
113 tie the machines together \
114 stem keeps it all sane \
115 -- U.G. \
116>
117
118
119Q: What is a M<Stem> Hub?
120A: A M<Stem> Hub is a single Perl process running
121M<Stem>. It can function as a complete standalone
122application or be connected to other M<Stem> Hubs in a
123networked application. M<Stem> Hubs contain the
124M<Stem> core system and M<Stem>
125Cells that have been created by configuration files.
126
127<P>For more on this, read the
128<A href="technotes/arch_notes.html">architecture notes</A> document or find it
129in the Design directory of the tarball.
130
131Q: What is a M<Stem> Cell?
132A: A M<Stem> Cell is a Perl object that has 3 major characteristics:
133
134<OL>
135 <LI><P>First, it is registered as a Cell in this Hub with a cell name and
136 an optional target name</P></LI>
137 <LI><P>It has a set of methods designated to handle messages directed at
138 the Cell</P></LI>
139 <LI><P>It sends messages to other cells.</P></LI>
140</OL>
141
142
143S: M<Stem> Features
144
145
146Q: What is a M<Stem> Message?
147A: M<Stem> Messages carry commands and data between
148M<Stem> Cells. They are addressed with a
149Hub/Cell/Target triplet.
150
151<P>Messages can be any one of a wide range of types including command,
152data, log, stderr etc. They can carry any form of data to a maximum
153(to be designated later) size.
154
155<P>See
156<A HREF="technotes/message_notes.html">message notes</A> document for more.
157
158QUOTE<
159 Nets catch more than fish. \
160 Data's trapped beneath the waves. \
161 Stem frees; packets breathe. \
162 -- D.G. \
163>
164
165
166Q: How Hard Is M<Stem> To Install/Configure?
167A: M<Stem> is very easy to install. It only requires
168Perl 5.005_03 and one code module Event.pm that you can get from
169<A HREF="http://search.cpan.org">CPAN</A>. The rest of
170M<Stem> is comprised of pure Perl modules.
171
172<p>M<Stem> has a step by step installation
173script that guides you through the installation process and any
174required modules that are necessary for the normal functioning of M<Stem>.
175It is easy to use and allows you to customize the installation to
176your liking or take the default install.
177
178<P>Much more on this can be found in the
179<A href="technotes/config_notes.html">config notes</A>
180document or in the Design directory of the tarball.
181
182
183Q: Can M<Stem> Do Guaranteed Messaging?
184A: M<Stem>'s core design does not directly support
185guaranteed message delivery. It was designed this way, as the
186technical market that M<Stem> targets
187doesn't have a strong requirement for this feature as the
188commercial/e-business markets have.
189
190<P>Future releases of M<Stem> will support guaranteed delivery via a
191separate module that is now under development.
192
193
194
195Q: Does M<Stem> Use XML?
196A: M<Stem>'s messages are designed to not be specific
197to any format or encoding. They can carry data structure in any format the
198designer wants, including XML. In fact, the message itself can also be in
199any format as long as it is properly identified and a module to decode that
200format is installed.
201
202<p>M<Stem> is currently in the process of including
203<a href="http://www.yaml.org" name="YAML">YAML</a> as its primary format for
204messages, configuration files, and logs, but as demand arises other message formats
205including XML will be supported.
206
207<P>One longer-term goal is that message formats from many other
208systems will be supported by gateways modules, which will translate
209between M<Stem> and external messages.
210
211Q: What Kind Of Security Does M<Stem> Use?
212A: M<Stem> doesn't do direct authentication and secure
213transmissions. Currently it relies upon industry standard utilities such as ssh and
214stunnel to provide the secure socket connections between
215M<Stem> hubs (processes). Security is a great concern to
216everyone and M<Stem> development is looking into the possibilities
217of supporting various mechanisms and levels of security (i.e. - ssh, ssl, etc)
218through configurable modules.
219
220QUOTE<
221 Information rain \
222 Can drown the sleepy server, \
223 But for Stem's shelter. \
224 -- D.G. \
225>
226
227
228Q: Can M<Stem> Do Central Configuration Management?
229A: The log management project under development has this requirement. The
230lists of log files on each system that need to be monitored are
231maintained on the central system. Configuration files are autogenerated
232from those lists and distributed to all the M<Stem> hubs in this network
233application. The same mechanism can be used to distribute configuration
234files for other applications and M<Stem> can also notify them to reload the
235new files.
236
237Q: Can M<Stem> Handle My Content Distribution?
238A: Distributing content is similar to distributing configuration files and
239will use the same mechanisms. What content is distributed to where can
240all be easily controlled by M<Stem> configurations without any additional
241programming.
242
243
244S: Developing with M<Stem>
245
246
247Q: Can I Extend M<Stem> Myself To Suit Our Needs?
248A: M<Stem> is designed to be modified and extended very
249easily. You can copy existing modules or use design ideas from them to
250created new Cells for your own needs.
251
252<P>The high level Cell API hides the complexities of
253network communication and message transfer, leaving you free to focus on
254the specific design and coding of your custom Cells.
255
256
257QUOTE<
258 Just one message lost \
259 could stop your business blooming. \
260 Fear not: grasp the stem! \
261 -- D.G. \
262>
263
264Q: Is There a M<Stem> Tutorial?
265A: M<Stem> Development has created a <a href="cookbook.html" name="cookbook">cookbook</a> of examples that demonstrates the
266design of M<Stem> cells from the simplest form up
267to various levels of complexity.
268
269
270Q: Should I Modify M<Stem> On My Own Or Use M<Stem>'s Development Team?
271A: If your requirements are simple, and you have skilled staff to do the
272work, there's no reason not to develop and maintain your own M<Stem>-based
273systems. If your applications are complex applications, your staff new
274to M<Stem>, or your time-frame short, you will probably find it more
275cost-effective to let M<Stem Systems>' expert team develop your system for
276you.
277
278<P>Otherwise, M<Stem Systems> can assist you in the design, development and
279configuration of your application. How much assistance can be provided
280depends on the customer subscription deal and any other contracts. If
281you do not have a subscription, our support will be limited to bug fixes
282and email and you will have to maintain your modified code on your own.
283
284Q: Which Operating Systems Support M<Stem>?
285A: M<Stem> runs runs without any modification under any Unix flavor (Solaris,
286Linix, FreeBSD, etc.) Support for WinX is in the planning stage and is
287expected to be released in the near future.
288
289Q: What Is M<Stem>'s License?
290A: M<Stem> will be released under the <a
291href="http://www.gnu.org/copyleft/gpl.html" name="GPL">GNU General
292Public License</a> starting with version 0.06. Our intent is for
293M<Stem> to be free for non-commercial use. Commercial licenses can be
294purchased through M<Stem Systems>. Please contact <a
295href="mailto:info@stemsystems.com">Stem Systems</a> for more
296information regarding commercial license.
297
298
299S: M<Stem Systems>
300
301
302Q: What Is M<Stem Systems>?
303A: M<Stem Systems> is the company which is developing and maintaining M<Stem>. It
304owns the copyright to the M<Stem> codebase and is releasing it to its
305customers and the open source community. M<Stem Systems> also sells support
306subscriptions to the M<Stem> user community.
307
308QUOTE<
309 Black chips nurture life. \
310 Data shoots out, seeking Spring. \
311 Stem makes all fertile. \
312 -- D.G. \
313>
314
315Q: What Is The Business Model Of M<Stem Systems>?
316A: M<Stem Systems> has three business models,
317<ol>
318 <li>Development Projects</li>
319 <li>Support Subscriptions</li>
320 <li>3rd Party products and VAR's</li>
321</ol>
322
323Q: How Much Does M<Stem> Cost?
324A: 0.06 will be under the
325<a href="http://www.gnu.org/copyleft/gpl.html" name="GPL">GNU General
326Public License</a>. M<Stem> can be used freely for non-commercial
327use. For commercial and acedemic licenses please contact us at <a
328href="mailto:sales@stemsystems.com">Stem Systems</a> for more
329information.
330
331
332Q: Who Are Your Technical Advisors?
333A: Our technical advisors are listed <A HREF="company.html">here</A>.
334
335S: Miscellaneous
336
337
338Q: How Can I Learn M<Stem>?
339A: The best way right now is to start with the technical notes and get a
340basic understanding of M<Stem>, its architecture and
341its nomenclature. Then run the various demo scripts and read their
342configuration files. Developers will go next to the Cell documentation that
343describes each Cell's function, their attributes and how to configure it.
344Once some insight into each Cell is attained the next step would be to go
345through M<Stem>'s <a href="cookbook.html" name="cookbook">cookbook</a>
346of examples put together by the developers of M<Stem>. This will
347show you how to extend M<Stem> with your own Cells.
348
349<P>We are discussing the
350creation of classes with a training firm when the demand arises.
351
352Q: What Is The Future Of M<Stem>?
353A: M<Stem> will constantly be growing its Cell library and adding support for
354new features. Whenever any repeated networked operations can be
355identified, M<Stem> will create a M<Stem> Cell to
356perform it. Then M<Stem>'s
357users can easily integrate that new Cell without programming or needing
358to re-invent that wheel.
359
360Q: Who Created M<Stem>?
361A: M<Stem> was created by Uri Guttman, and is the
362culmination of his long career in systems architecture and development. He has combined a
363quarter century of experience designing and implementing event-driven
364systems with his love of Perl to produce a powerful, yet easy-to-use
365framework for network applications.
366
367<P>For more on M<Stem>'s creator, see the
368<A HREF="http://stemsystems.com/company.html">M<Stem> Team biographies</A>.
369
370Q: How (and why) Was M<Stem> Conceived?
371A: M<Stem> was created when its designer was contracted
372to a network application development group who were constantly
373putting out fires and creating a massive ad hoc system. It was clear that they needed a
374framework to give structure to their network application design.
375M<Stem> was the result.
376
377QUOTE<
378 Coders or firemen? \
379 System in conflagration. \
380 From ashes rose Stem. \
381 -- U.G. \
382>
383
384
385Q: What Does M<Stem> Stand For?
386A: M<Stem> is not an acronym or an abbreviation, rather it is named from the
387real word 'stem' which has several dictionary meanings that map well to M<Stem>.
388
389<DL><DT><B>v. tr.</B></DT>
390<DD><OL><LI>To stop or hold back by or as if by damming; as in "stem the tide"</OL></DD></DL>
391
392<DL><DT><B>n.</B></DT>
393<DD><OL><LI>A slender stalk supporting or connecting another plant part, such as a leaf or flower.
394 <LI>A connecting or supporting part.
395</OL></DD></DL>
396
397<DL><DT><B>n.</B></DT>
398<DD><OL><LI>A line of ancestry : STOCK; especially : a fundamental line from
399which others have arisen. as in "stem cell" in biology.</OL></DD></DL>
400
401
402QUOTE<
403 To keep your network \
404 flowering when the heat's on, \
405 it needs a strong stem. \
406 -- D.C. \
407>