6 A: M<Stem> is a general purpose networking toolkit and a suite of ready
7 to use network applications. Its goal is to transform common network
8 programming to configuration and make uncommon network programming much
9 simpler. Some M<Stem> users will use its suite of applications and
10 modules and just configure them to perform their needed network
11 tasks. Others will create new M<Stem> modules to perform their specific
12 tasks and integrate them with M<Stem>'s standard modules using
13 configurations. In both cases, M<Stem> will speed up network
14 application development, simplify maintenance, and lower lifetime costs.
17 Q: Where can I get M<Stem>?
18 A: 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.
22 Q: What Can I Do With M<Stem>?
23 A: M<Stem> is a general purpose networking toolkit. As such, it can
24 be the backbone or framework of almost any networked (distributed)
25 application you can imagine. M<Stem> is designed with standard modules
26 that are aimed at specific application niches. Some M<Stem> users
27 want a simple solution to common problems while others need a way to
28 accelerate network application development. Via this modular design,
29 M<Stem> can satisfy the differing needs of both groups.
32 Q: What Are the Top M<Stem> Applications?
33 A: The most commonly requested applications of
34 M<Stem> are log management, file distribution,
35 monitoring and remote command execution. For more on
36 M<Stem> applications, see the <A href="products.html">niches</A> page.
40 Overloaded Server Appears. \
45 Q: Why Should I Use M<Stem>?
46 A: You should use M<Stem> if:
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>
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>
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>
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>
74 <P>These are just a few of the many reasons why
75 M<Stem> should be in place on your network.
76 If you have questions on how M<Stem> will benefit
77 your individual needs, <A HREF="mailto:faq@stemsystems.com">please contact us</A>.
80 Q: Who Is Using M<Stem>?
81 A: A start up firm hired M<Stem Systems> to implement a specialized
82 web crawler. M<Stem> will be used as
83 the communications backbone for this multiprocessor system and
84 it will interconnect and manage all of its components. Some of
85 those components include subprocesses doing the page fetches,
86 site objects, html page parsers, custom filters, crawl management
90 Divers search limpid pools. \
91 Precious Perl is summer's find, \
92 But Stem is loved more. \
96 Q: How can I be notified about M<Stem> updates?
97 A: M<Stem Systems> has a email list dedicated to M<Stem> updates. To
98 subscribe, send an empty email to: news-subscribe@stemsystems.com. This
99 is a low volume list used for sending important news regarding M<Stem>
104 Q: Do I Need To Get Rid Of [Commercial Application] To Use M<Stem>?
105 A: No, M<Stem> can run in parallel with all of
106 your existing applications. As long as M<Stem>
107 can have access to its own TCP ports (which can be configured to
108 any available ones), it has no need to conflict with any of your current
113 tie the machines together \
114 stem keeps it all sane \
119 Q: What is a M<Stem> Hub?
120 A: A M<Stem> Hub is a single Perl process running
121 M<Stem>. It can function as a complete standalone
122 application or be connected to other M<Stem> Hubs in a
123 networked application. M<Stem> Hubs contain the
124 M<Stem> core system and M<Stem>
125 Cells that have been created by configuration files.
127 <P>For more on this, read the
128 <A href="technotes/arch_notes.html">architecture notes</A> document or find it
129 in the Design directory of the tarball.
131 Q: What is a M<Stem> Cell?
132 A: A M<Stem> Cell is a Perl object that has 3 major characteristics:
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
139 <LI><P>It sends messages to other cells.</P></LI>
146 Q: What is a M<Stem> Message?
147 A: M<Stem> Messages carry commands and data between
148 M<Stem> Cells. They are addressed with a
149 Hub/Cell/Target triplet.
151 <P>Messages can be any one of a wide range of types including command,
152 data, log, stderr etc. They can carry any form of data to a maximum
153 (to be designated later) size.
156 <A HREF="technotes/message_notes.html">message notes</A> document for more.
159 Nets catch more than fish. \
160 Data's trapped beneath the waves. \
161 Stem frees; packets breathe. \
166 Q: How Hard Is M<Stem> To Install/Configure?
167 A: M<Stem> is very easy to install. It only requires
168 Perl 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
170 M<Stem> is comprised of pure Perl modules.
172 <p>M<Stem> has a step by step installation
173 script that guides you through the installation process and any
174 required modules that are necessary for the normal functioning of M<Stem>.
175 It is easy to use and allows you to customize the installation to
176 your liking or take the default install.
178 <P>Much more on this can be found in the
179 <A href="technotes/config_notes.html">config notes</A>
180 document or in the Design directory of the tarball.
183 Q: Can M<Stem> Do Guaranteed Messaging?
184 A: M<Stem>'s core design does not directly support
185 guaranteed message delivery. It was designed this way, as the
186 technical market that M<Stem> targets
187 doesn't have a strong requirement for this feature as the
188 commercial/e-business markets have.
190 <P>Future releases of M<Stem> will support guaranteed delivery via a
191 separate module that is now under development.
195 Q: Does M<Stem> Use XML?
196 A: M<Stem>'s messages are designed to not be specific
197 to any format or encoding. They can carry data structure in any format the
198 designer wants, including XML. In fact, the message itself can also be in
199 any format as long as it is properly identified and a module to decode that
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
204 messages, configuration files, and logs, but as demand arises other message formats
205 including XML will be supported.
207 <P>One longer-term goal is that message formats from many other
208 systems will be supported by gateways modules, which will translate
209 between M<Stem> and external messages.
211 Q: What Kind Of Security Does M<Stem> Use?
212 A: M<Stem> doesn't do direct authentication and secure
213 transmissions. Currently it relies upon industry standard utilities such as ssh and
214 stunnel to provide the secure socket connections between
215 M<Stem> hubs (processes). Security is a great concern to
216 everyone and M<Stem> development is looking into the possibilities
217 of supporting various mechanisms and levels of security (i.e. - ssh, ssl, etc)
218 through configurable modules.
222 Can drown the sleepy server, \
223 But for Stem's shelter. \
228 Q: Can M<Stem> Do Central Configuration Management?
229 A: The log management project under development has this requirement. The
230 lists of log files on each system that need to be monitored are
231 maintained on the central system. Configuration files are autogenerated
232 from those lists and distributed to all the M<Stem> hubs in this network
233 application. The same mechanism can be used to distribute configuration
234 files for other applications and M<Stem> can also notify them to reload the
237 Q: Can M<Stem> Handle My Content Distribution?
238 A: Distributing content is similar to distributing configuration files and
239 will use the same mechanisms. What content is distributed to where can
240 all be easily controlled by M<Stem> configurations without any additional
244 S: Developing with M<Stem>
247 Q: Can I Extend M<Stem> Myself To Suit Our Needs?
248 A: M<Stem> is designed to be modified and extended very
249 easily. You can copy existing modules or use design ideas from them to
250 created new Cells for your own needs.
252 <P>The high level Cell API hides the complexities of
253 network communication and message transfer, leaving you free to focus on
254 the specific design and coding of your custom Cells.
258 Just one message lost \
259 could stop your business blooming. \
260 Fear not: grasp the stem! \
264 Q: Is There a M<Stem> Tutorial?
265 A: M<Stem> Development has created a <a href="cookbook.html" name="cookbook">cookbook</a> of examples that demonstrates the
266 design of M<Stem> cells from the simplest form up
267 to various levels of complexity.
270 Q: Should I Modify M<Stem> On My Own Or Use M<Stem>'s Development Team?
271 A: If your requirements are simple, and you have skilled staff to do the
272 work, there's no reason not to develop and maintain your own M<Stem>-based
273 systems. If your applications are complex applications, your staff new
274 to M<Stem>, or your time-frame short, you will probably find it more
275 cost-effective to let M<Stem Systems>' expert team develop your system for
278 <P>Otherwise, M<Stem Systems> can assist you in the design, development and
279 configuration of your application. How much assistance can be provided
280 depends on the customer subscription deal and any other contracts. If
281 you do not have a subscription, our support will be limited to bug fixes
282 and email and you will have to maintain your modified code on your own.
284 Q: Which Operating Systems Support M<Stem>?
285 A: M<Stem> runs runs without any modification under any Unix flavor (Solaris,
286 Linix, FreeBSD, etc.) Support for WinX is in the planning stage and is
287 expected to be released in the near future.
289 Q: What Is M<Stem>'s License?
290 A: M<Stem> will be released under the <a
291 href="http://www.gnu.org/copyleft/gpl.html" name="GPL">GNU General
292 Public License</a> starting with version 0.06. Our intent is for
293 M<Stem> to be free for non-commercial use. Commercial licenses can be
294 purchased through M<Stem Systems>. Please contact <a
295 href="mailto:info@stemsystems.com">Stem Systems</a> for more
296 information regarding commercial license.
302 Q: What Is M<Stem Systems>?
303 A: M<Stem Systems> is the company which is developing and maintaining M<Stem>. It
304 owns the copyright to the M<Stem> codebase and is releasing it to its
305 customers and the open source community. M<Stem Systems> also sells support
306 subscriptions to the M<Stem> user community.
309 Black chips nurture life. \
310 Data shoots out, seeking Spring. \
311 Stem makes all fertile. \
315 Q: What Is The Business Model Of M<Stem Systems>?
316 A: M<Stem Systems> has three business models,
318 <li>Development Projects</li>
319 <li>Support Subscriptions</li>
320 <li>3rd Party products and VAR's</li>
323 Q: How Much Does M<Stem> Cost?
324 A: 0.06 will be under the
325 <a href="http://www.gnu.org/copyleft/gpl.html" name="GPL">GNU General
326 Public License</a>. M<Stem> can be used freely for non-commercial
327 use. For commercial and acedemic licenses please contact us at <a
328 href="mailto:sales@stemsystems.com">Stem Systems</a> for more
332 Q: Who Are Your Technical Advisors?
333 A: Our technical advisors are listed <A HREF="company.html">here</A>.
338 Q: How Can I Learn M<Stem>?
339 A: The best way right now is to start with the technical notes and get a
340 basic understanding of M<Stem>, its architecture and
341 its nomenclature. Then run the various demo scripts and read their
342 configuration files. Developers will go next to the Cell documentation that
343 describes each Cell's function, their attributes and how to configure it.
344 Once some insight into each Cell is attained the next step would be to go
345 through M<Stem>'s <a href="cookbook.html" name="cookbook">cookbook</a>
346 of examples put together by the developers of M<Stem>. This will
347 show you how to extend M<Stem> with your own Cells.
349 <P>We are discussing the
350 creation of classes with a training firm when the demand arises.
352 Q: What Is The Future Of M<Stem>?
353 A: M<Stem> will constantly be growing its Cell library and adding support for
354 new features. Whenever any repeated networked operations can be
355 identified, M<Stem> will create a M<Stem> Cell to
356 perform it. Then M<Stem>'s
357 users can easily integrate that new Cell without programming or needing
358 to re-invent that wheel.
360 Q: Who Created M<Stem>?
361 A: M<Stem> was created by Uri Guttman, and is the
362 culmination of his long career in systems architecture and development. He has combined a
363 quarter century of experience designing and implementing event-driven
364 systems with his love of Perl to produce a powerful, yet easy-to-use
365 framework for network applications.
367 <P>For more on M<Stem>'s creator, see the
368 <A HREF="http://stemsystems.com/company.html">M<Stem> Team biographies</A>.
370 Q: How (and why) Was M<Stem> Conceived?
371 A: M<Stem> was created when its designer was contracted
372 to a network application development group who were constantly
373 putting out fires and creating a massive ad hoc system. It was clear that they needed a
374 framework to give structure to their network application design.
375 M<Stem> was the result.
379 System in conflagration. \
380 From ashes rose Stem. \
385 Q: What Does M<Stem> Stand For?
386 A: M<Stem> is not an acronym or an abbreviation, rather it is named from the
387 real word 'stem' which has several dictionary meanings that map well to M<Stem>.
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>
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.
397 <DL><DT><B>n.</B></DT>
398 <DD><OL><LI>A line of ancestry : STOCK; especially : a fundamental line from
399 which others have arisen. as in "stem cell" in biology.</OL></DD></DL>
403 To keep your network \
404 flowering when the heat's on, \
405 it needs a strong stem. \