S: About M Q: What is M? A: M is a general purpose networking toolkit and a suite of ready to use network applications. Its goal is to transform common network programming to configuration and make uncommon network programming much simpler. Some M users will use its suite of applications and modules and just configure them to perform their needed network tasks. Others will create new M modules to perform their specific tasks and integrate them with M's standard modules using configurations. In both cases, M will speed up network application development, simplify maintenance, and lower lifetime costs. Q: Where can I get M? A: M can now be downloaded by the general public. Go to the download page to get the latest version. Q: What Can I Do With M? A: M is a general purpose networking toolkit. As such, it can be the backbone or framework of almost any networked (distributed) application you can imagine. M is designed with standard modules that are aimed at specific application niches. Some M users want a simple solution to common problems while others need a way to accelerate network application development. Via this modular design, M can satisfy the differing needs of both groups. Q: What Are the Top M Applications? A: The most commonly requested applications of M are log management, file distribution, monitoring and remote command execution. For more on M applications, see the niches page. QUOTE< Stem Monitoring. \ Overloaded Server Appears. \ Remediation. \ -- U.G. \ > Q: Why Should I Use M? A: You should use M if:
  • You are tired of reinventing the wheel for each network application you build. M provides you with all the common services that a network application needs and makes them very simple to use.

  • You don't want to be forced to rely on a commercial monolithic network tool that everyone hates to use. M is low cost and Open Source. You can easily write new modules to customize M to your needs.

  • You want to dramatically reduce the development and maintenance costs of developing your new network applications. M tranforms common network programming to configuration. Even if you create new M modules, it is very simple to connect them together with M configurations. This lowers your development time and costs in many ways.

  • You just want to use a well-designed network system that will make your profession much more enjoyable. M is architected to be easy to use at both the configuration and coding levels. Our goal is for all M users to enjoy working with it and reduce the frustrations and stress of network management.

These are just a few of the many reasons why M should be in place on your network. If you have questions on how M will benefit your individual needs, please contact us. Q: Who Is Using M? A: A start up firm hired M to implement a specialized web crawler. M will be used as the communications backbone for this multiprocessor system and it will interconnect and manage all of its components. Some of those components include subprocesses doing the page fetches, site objects, html page parsers, custom filters, crawl management and a database. QUOTE< Divers search limpid pools. \ Precious Perl is summer's find, \ But Stem is loved more. \ -- D.G. \ > Q: How can I be notified about M updates? A: M has a email list dedicated to M updates. To subscribe, send an empty email to: news-subscribe@stemsystems.com. This is a low volume list used for sending important news regarding M (ie - new releases). S: M Design Q: Do I Need To Get Rid Of [Commercial Application] To Use M? A: No, M can run in parallel with all of your existing applications. As long as M 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. QUOTE< superglue the net \ tie the machines together \ stem keeps it all sane \ -- U.G. \ > Q: What is a M Hub? A: A M Hub is a single Perl process running M. It can function as a complete standalone application or be connected to other M Hubs in a networked application. M Hubs contain the M core system and M Cells that have been created by configuration files.

For more on this, read the architecture notes document or find it in the Design directory of the tarball. Q: What is a M Cell? A: A M Cell is a Perl object that has 3 major characteristics:

  1. First, it is registered as a Cell in this Hub with a cell name and an optional target name

  2. It has a set of methods designated to handle messages directed at the Cell

  3. It sends messages to other cells.

S: M Features Q: What is a M Message? A: M Messages carry commands and data between M 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. QUOTE< Nets catch more than fish. \ Data's trapped beneath the waves. \ Stem frees; packets breathe. \ -- D.G. \ > Q: How Hard Is M To Install/Configure? A: M 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 M is comprised of pure Perl modules.

M has a step by step installation script that guides you through the installation process and any required modules that are necessary for the normal functioning of M. It is easy to use and allows you to customize the installation to your liking or take the default install.

Much more on this can be found in the config notes document or in the Design directory of the tarball. Q: Can M Do Guaranteed Messaging? A: M's core design does not directly support guaranteed message delivery. It was designed this way, as the technical market that M targets doesn't have a strong requirement for this feature as the commercial/e-business markets have.

Future releases of M will support guaranteed delivery via a separate module that is now under development. Q: Does M Use XML? A: M'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.

M is currently in the process of including YAML as its primary format for messages, configuration files, and logs, 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 gateways modules, which will translate between M and external messages. Q: What Kind Of Security Does M Use? A: M doesn't do direct authentication and secure transmissions. Currently it relies upon industry standard utilities such as ssh and stunnel to provide the secure socket connections between M hubs (processes). Security is a great concern to everyone and M development is looking into the possibilities of supporting various mechanisms and levels of security (i.e. - ssh, ssl, etc) through configurable modules. QUOTE< Information rain \ Can drown the sleepy server, \ But for Stem's shelter. \ -- D.G. \ > Q: Can M Do Central Configuration Management? A: 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 autogenerated from those lists and distributed to all the M hubs in this network application. The same mechanism can be used to distribute configuration files for other applications and M can also notify them to reload the new files. Q: Can M Handle My Content Distribution? A: 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 M configurations without any additional programming. S: Developing with M Q: Can I Extend M Myself To Suit Our Needs? A: M 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. QUOTE< Just one message lost \ could stop your business blooming. \ Fear not: grasp the stem! \ -- D.G. \ > Q: Is There a M Tutorial? A: M Development has created a cookbook of examples that demonstrates the design of M cells from the simplest form up to various levels of complexity. Q: Should I Modify M On My Own Or Use M's Development Team? A: 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 M-based systems. If your applications are complex applications, your staff new to M, or your time-frame short, you will probably find it more cost-effective to let M' expert team develop your system for you.

Otherwise, M 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. Q: Which Operating Systems Support M? A: M runs runs without any modification under any Unix flavor (Solaris, Linix, FreeBSD, etc.) Support for WinX is in the planning stage and is expected to be released in the near future. Q: What Is M's License? A: M will be released under the GNU General Public License starting with version 0.06. Our intent is for M to be free for non-commercial use. Commercial licenses can be purchased through M. Please contact Stem Systems for more information regarding commercial license. S: M Q: What Is M? A: M is the company which is developing and maintaining M. It owns the copyright to the M codebase and is releasing it to its customers and the open source community. M also sells support subscriptions to the M user community. QUOTE< Black chips nurture life. \ Data shoots out, seeking Spring. \ Stem makes all fertile. \ -- D.G. \ > Q: What Is The Business Model Of M? A: M has three business models,

  1. Development Projects
  2. Support Subscriptions
  3. 3rd Party products and VAR's
Q: How Much Does M Cost? A: 0.06 will be under the GNU General Public License. M can be used freely for non-commercial use. For commercial and acedemic licenses please contact us at Stem Systems for more information. Q: Who Are Your Technical Advisors? A: Our technical advisors are listed here. S: Miscellaneous Q: How Can I Learn M? A: The best way right now is to start with the technical notes and get a basic understanding of M, its architecture and its nomenclature. Then run the various demo scripts and read their configuration files. Developers will go next to the Cell documentation that describes each Cell's function, their attributes and how to configure it. Once some insight into each Cell is attained the next step would be to go through M's cookbook of examples put together by the developers of M. This will show you how to extend M with your own Cells.

We are discussing the creation of classes with a training firm when the demand arises. Q: What Is The Future Of M? A: M will constantly be growing its Cell library and adding support for new features. Whenever any repeated networked operations can be identified, M will create a M Cell to perform it. Then M's users can easily integrate that new Cell without programming or needing to re-invent that wheel. Q: Who Created M? A: M 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 M's creator, see the M Team biographies. Q: How (and why) Was M Conceived? A: M was created when its designer was contracted to a network application development group who 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. M was the result. QUOTE< Coders or firemen? \ System in conflagration. \ From ashes rose Stem. \ -- U.G. \ > Q: What Does M Stand For? A: M 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 M.

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.
QUOTE< To keep your network \ flowering when the heat's on, \ it needs a strong stem. \ -- D.C. \ >