Updated mcollective.init according to OSCI-658
[packages/precise/mcollective.git] / website / terminology.md
diff --git a/website/terminology.md b/website/terminology.md
new file mode 100644 (file)
index 0000000..122c13f
--- /dev/null
@@ -0,0 +1,101 @@
+---
+layout: default
+title: Terminology
+toc: false
+---
+[Software_agent]: http://en.wikipedia.org/wiki/Software_agent
+[Plugin]: http://en.wikipedia.org/wiki/Plugin
+[Publish_subscribe]: http://en.wikipedia.org/wiki/Publish_subscribe
+[Apache ActiveMQ]: http://activemq.apache.org/
+[SimpleRPCAgents]: /mcollective/simplerpc/agents.html
+[SimpleRPCIntroduction]: /mcollective/simplerpc/
+[WritingFactsPlugins]: /mcollective/reference/plugins/facts.html
+[Subcollective]: /mcollective/reference/basic/subcollectives.html
+[Registration]: /mcollective/reference/plugins/registration.html
+[SimpleRPCAuthorization]: /mcollective/simplerpc/authorization.html
+
+This page documents the various terms used in relation to mcollective.
+
+## Server
+The mcollective daemon, an app server for hosting Agents and managing
+the connection to your Middleware.
+
+## Node
+The Computer or Operating System that the Server runs on.
+
+## Agent
+A block of Ruby code that performs a specific role, the main reason for
+mcollective's existence is to host agents.  Agents can perform tasks like
+manipulate firewalls, services, packages etc. See [Wikipedia][Software_agent].
+
+Docs to write your own can be seen in [SimpleRPCAgents]
+
+## Plugins
+Ruby code that lives inside the server and takes on roles like security, connection
+handling, agents and so forth.  See [Wikipedia][Plugin]
+
+## Middleware
+A [publish subscribe][Publish_subscribe] based system like [Apache ActiveMQ].
+
+## Connector
+A plugin of the type *MCollective::Connector* that handles the communication with your chosen Middleware.
+
+## Name Space
+Currently messages are sent to the middleware directed at topics named */topic/mcollective.package.command*
+and replies come back on */topic/mcollective.package.reply*.
+
+In this example the namespace is "mcollective" and all servers and clients who wish to form part of the same
+Collective must use the same name space.
+
+Middleware can generally carry several namespaces and therefore several Collectives.
+
+## Collective
+A combination of Servers, Nodes and Middleware all operating in the same Namespace.
+
+Multiple collectives can be built sharing the same Middleware but kept separate by using different Namespaces.
+
+## Subcollective
+A server can belong to many Namespaces.  A [Subcollective] is a Namespace that only a subset of a full collectives nodes belong to.
+
+Subcolllectives are used to partition networks and to control broadcast domains in high traffic networks.
+
+## Simple RPC
+A Remote Procedure Call system built ontop of MCollective that makes it very simple to write feature
+full agents and clients.  See [SimpleRPCIntroduction].
+
+## Action
+Agents expose tasks, we call these tasks actions.  Each agent like a exim queue management agent might
+expose many tasks like *mailq*, *rm*, *retry* etc.  These are al actions provided by an agent.
+
+## Facts
+Discreet bits of information about your nodes. Examples could be the domain name, country,
+role, operating system release etc.
+
+Facts are provided by plugins of the type *MCollective::Facts*, you can read about writing
+your own in [WritingFactsPlugins]
+
+## Registration
+Servers can send regular messages to an agent called *registration*.  The code that sends the
+registration messages are plugins of the type *MCollective::Registration*.  See [Registration].
+
+## Security
+A plugin of the type *MCollective::Security* that takes care of encryption, authentication
+and encoding of messages on which will then be passed on to the Connector for delivery to the Collective.
+
+## Client
+Software that produce commands for agents to process, typically this would be a computer with
+the client package installed and someone using the commands like *mc-package* to interact with Agents.
+
+Often clients will use the *MCollective::Client* library to communicate to the Collective
+
+## User
+Servers and Clients all authenticate to the Middleware, user would generally refer to the username
+used to authenticate against the middleware.
+
+## Audit
+In relation to SimpleRPC an audit action is a step requests go through where they can get
+logged to disk or other similar action
+
+## Authorization
+In relation to SimpleRPC authorization is a processes whereby requests get allowed or denied
+based on some identifying information of the requester.  See [SimpleRPCAuthorization].