Runtime Ontology : What ‘things’ comprise RapidSMS?
Application (‘App’)
An application performs one or more of the following functions:
- Processes messages from the Router
- Extends sthe data-model
- Present UI within the WebUI
Examples:
- Bednets: Bednet distribution supply management (message processing, model extension, UI)
- Rerporters and Groups (model extension, UI)
Note: If your code does not perform any of the above tasks it’s probably a Library not an App.
Library
A set of code, probably in the form of a Python Module (containing Class and/or Module functions) to perform any helper, utility, or domain specific functionality that can be usefully shared.
Examples of things that would make good libraries:
- Message parsers (Keyworder, Form processor etc…)
Backends
Backends receive messages from external sources. And delivers messages from RapidSMS to external sources.
External sources include:
- GSM Handset or Modem (via Spomc backend)
- HTTP clients: via HTTP backed
Router
Core code that distributes messages from Backends to Apps and which delivers messages from Apps to Backends.
WebUI
A Django application that presents a unified web UI for all the installed and active Apps that have UI components.
Currently WebUI presents a ‘dashboard’ overview and tabs for each App with a UI.
