The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

			  Stem Technical Notes


Stem Architecture

	This describes the top level architecture of Stem, in particular
	what its components are (Hubs and Cells) and how they work
	together.

Stem Cells

	This describes Stem Cells, the primary components of a Stem
	system. It covers both class and object type Cells, their
	creation and registration and their method conventions.

Stem Messages

	This describes the content and fields of Stem messages. These are
	used to communicate between Stem Cells.

Stem Registry and Message Addresses

	This describes how Cells are registered so they can receive
	messages and the way messages are addressed.

Cell Creation and Configuration

	Stem Cells can be created internally via a constructor or from
	external configurations. This describes the common systems used
	to create and register Cells.

Logging Subsystem

	This describes the Stem logging subsystem including logical
	logs, log files, log filters and how to submit log entries.

Cron Subsystem

	This describes the Stem Cron subsystem and how it can schedule
	regular Stem message submissions based on time and date.

Stem Events

	This describes the low level Stem Event subsystem including
	reading, writing and socket events.

Security Notes

	This describes the Stem security model and its features.


	Stem Cell and Module Notes

These are some of the Cells and modules in the Stem library. These notes
will describe what they are, why they are needed and how they are
used. Also some examples of their use and configuration are given. For
detailed descriptions of their configuration, attributes, and methods
see their documentation (available in the source tree or <HERE>)

NOTE to jasmine: when we get the pod generation stuff going soon, we
will make html versions of the pod docs and web them. they need to be
linked from each cell tech notes and be in a documentation subdir with a
nav bar link. this is later but i am just letting you know now.

NOTE: also i am going to list all of the cells here, even if they don't
have a tech notes page yet. make an empty one for them. we should come
up with a template for their names, format, etc. i want to drop the
'notes' part in most cases.


Stem::Conf

	This module parses and executes Stem configurations from both
	local files and sent from remote Stem Hubs.

Stem::Proc

	This Cell forks off and manages external processes. They can be
	monitored and all their I/O can be easily be integrated with
	Stem via messages, logs and/or callbacks.

Stem::SockMsg

	This Cell connects to and accepts standard Internet
	sockets. They can be monitored and all their I/O can be easily
	be integrated with Stem via messages, logs and/or callbacks.

Stem::Cron

	This module creates and manages scheduled message submissions.

Stem::Log

	This module supports the Stem logging subsystem. It encompasses
	the Stem::Log::File, Stem::Log::Filter and Stem::Log::Entry
	classes. 

Stem::LogTail

	This Cell monitors an active external log file. It sends new
	data into the Stem logging subsystem on periodic basis or on
	demand.

Stem::Switch

	This Cell is a general purpose Stem Message multiplexor.
	Messages directed to this Cell can be

Stem::Debug

	This class is used to create standard and customized debug and
	trace subs in any Stem module. The  used

Stem::Id

	This class is used to create ID's for dynamically created
	Cells that need unique addresses.

Stem::Portal

	This class creates and manages connections between Stem Hubs. It
	converts Stem Messages to/from a stream format for transmission
	over the connection.

Stem::AsyncIO

	This class is used by other Cells to create and manage buffered
	I/O streams to sockets and process handles.

Stem::Socket

	This class is the low level API to create socket connections and
	accepted sockets.

Stem::TtyMsg

	This class Cell is used to provide a TTY interface to a running
	Stem Hub. Stem command messages can be entered and sent to Cells
	and their responses are printed.