init commit
[urisagit/Stem.git] / Design / index
CommitLineData
4536f655 1
2 Stem Technical Notes
3
4
5Stem Architecture
6
7 This describes the top level architecture of Stem, in particular
8 what its components are (Hubs and Cells) and how they work
9 together.
10
11Stem Cells
12
13 This describes Stem Cells, the primary components of a Stem
14 system. It covers both class and object type Cells, their
15 creation and registration and their method conventions.
16
17Stem Messages
18
19 This describes the content and fields of Stem messages. These are
20 used to communicate between Stem Cells.
21
22Stem Registry and Message Addresses
23
24 This describes how Cells are registered so they can receive
25 messages and the way messages are addressed.
26
27Cell Creation and Configuration
28
29 Stem Cells can be created internally via a constructor or from
30 external configurations. This describes the common systems used
31 to create and register Cells.
32
33Logging Subsystem
34
35 This describes the Stem logging subsystem including logical
36 logs, log files, log filters and how to submit log entries.
37
38Cron Subsystem
39
40 This describes the Stem Cron subsystem and how it can schedule
41 regular Stem message submissions based on time and date.
42
43Stem Events
44
45 This describes the low level Stem Event subsystem including
46 reading, writing and socket events.
47
48Security Notes
49
50 This describes the Stem security model and its features.
51
52
53 Stem Cell and Module Notes
54
55These are some of the Cells and modules in the Stem library. These notes
56will describe what they are, why they are needed and how they are
57used. Also some examples of their use and configuration are given. For
58detailed descriptions of their configuration, attributes, and methods
59see their documentation (available in the source tree or <HERE>)
60
61NOTE to jasmine: when we get the pod generation stuff going soon, we
62will make html versions of the pod docs and web them. they need to be
63linked from each cell tech notes and be in a documentation subdir with a
64nav bar link. this is later but i am just letting you know now.
65
66NOTE: also i am going to list all of the cells here, even if they don't
67have a tech notes page yet. make an empty one for them. we should come
68up with a template for their names, format, etc. i want to drop the
69'notes' part in most cases.
70
71
72Stem::Conf
73
74 This module parses and executes Stem configurations from both
75 local files and sent from remote Stem Hubs.
76
77Stem::Proc
78
79 This Cell forks off and manages external processes. They can be
80 monitored and all their I/O can be easily be integrated with
81 Stem via messages, logs and/or callbacks.
82
83Stem::SockMsg
84
85 This Cell connects to and accepts standard Internet
86 sockets. They can be monitored and all their I/O can be easily
87 be integrated with Stem via messages, logs and/or callbacks.
88
89Stem::Cron
90
91 This module creates and manages scheduled message submissions.
92
93Stem::Log
94
95 This module supports the Stem logging subsystem. It encompasses
96 the Stem::Log::File, Stem::Log::Filter and Stem::Log::Entry
97 classes.
98
99Stem::LogTail
100
101 This Cell monitors an active external log file. It sends new
102 data into the Stem logging subsystem on periodic basis or on
103 demand.
104
105Stem::Switch
106
107 This Cell is a general purpose Stem Message multiplexor.
108 Messages directed to this Cell can be
109
110Stem::Debug
111
112 This class is used to create standard and customized debug and
113 trace subs in any Stem module. The used
114
115Stem::Id
116
117 This class is used to create ID's for dynamically created
118 Cells that need unique addresses.
119
120Stem::Portal
121
122 This class creates and manages connections between Stem Hubs. It
123 converts Stem Messages to/from a stream format for transmission
124 over the connection.
125
126Stem::AsyncIO
127
128 This class is used by other Cells to create and manage buffered
129 I/O streams to sockets and process handles.
130
131Stem::Socket
132
133 This class is the low level API to create socket connections and
134 accepted sockets.
135
136Stem::TtyMsg
137
138 This class Cell is used to provide a TTY interface to a running
139 Stem Hub. Stem command messages can be entered and sent to Cells
140 and their responses are printed.