added check for connected when triggered method is called. can't trigger
[urisagit/Stem.git] / Design / index
1
2                           Stem Technical Notes
3
4
5 Stem 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
11 Stem 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
17 Stem Messages
18
19         This describes the content and fields of Stem messages. These are
20         used to communicate between Stem Cells.
21
22 Stem 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
27 Cell 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
33 Logging Subsystem
34
35         This describes the Stem logging subsystem including logical
36         logs, log files, log filters and how to submit log entries.
37
38 Cron 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
43 Stem Events
44
45         This describes the low level Stem Event subsystem including
46         reading, writing and socket events.
47
48 Security Notes
49
50         This describes the Stem security model and its features.
51
52
53         Stem Cell and Module Notes
54
55 These are some of the Cells and modules in the Stem library. These notes
56 will describe what they are, why they are needed and how they are
57 used. Also some examples of their use and configuration are given. For
58 detailed descriptions of their configuration, attributes, and methods
59 see their documentation (available in the source tree or <HERE>)
60
61 NOTE to jasmine: when we get the pod generation stuff going soon, we
62 will make html versions of the pod docs and web them. they need to be
63 linked from each cell tech notes and be in a documentation subdir with a
64 nav bar link. this is later but i am just letting you know now.
65
66 NOTE: also i am going to list all of the cells here, even if they don't
67 have a tech notes page yet. make an empty one for them. we should come
68 up with a template for their names, format, etc. i want to drop the
69 'notes' part in most cases.
70
71
72 Stem::Conf
73
74         This module parses and executes Stem configurations from both
75         local files and sent from remote Stem Hubs.
76
77 Stem::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
83 Stem::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
89 Stem::Cron
90
91         This module creates and manages scheduled message submissions.
92
93 Stem::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
99 Stem::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
105 Stem::Switch
106
107         This Cell is a general purpose Stem Message multiplexor.
108         Messages directed to this Cell can be
109
110 Stem::Debug
111
112         This class is used to create standard and customized debug and
113         trace subs in any Stem module. The  used
114
115 Stem::Id
116
117         This class is used to create ID's for dynamically created
118         Cells that need unique addresses.
119
120 Stem::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
126 Stem::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
131 Stem::Socket
132
133         This class is the low level API to create socket connections and
134         accepted sockets.
135
136 Stem::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.