Kamaelia

Nuts & Bolts | Components | Tools | Cookbook | Systems
wiki:( guest720831, Dev Console, Index, Recent, Edit )


Home, News
Dev Console

How, Why
Project Blog
Summer of Code

Documentation
Download
SVN (web)
Sourceforge page

Project Admin
License

Contact Us

  Page Tags

No tags are defined for this page yet - how would you classify/think of this page? Add your notes below!

A Notation For Visualising Axon Systems

Summary:

This document presents a notation for diagrams to describe Axon systems. The notation is intended as both a design tool and documentation aid. Axon allows extraction of the information necessary to reconstruct the design from an active system. An overview of Axon - a software component system - is included.

Keywords: Axon, Component, Software, Architecture, Parallel Processing, Concurrent, Signal Processing, Message Passing

1 Essential Elements of an Axon System

Axon is a component system for creating large-scale highly parallel software systems. The system is designed to operate efficiently inside a single operating system process. (This is equivalent to a cook handling many tasks, rather than many cooks with many tasks.)
A system in Axon has the following key elements:

Components perform processing in parallel with other components. A component contains inboxes and outboxes. Inboxes are used by components to receive messages. After processing, the results are placed into an outbox.

Components may contain other components forming systems. Messages pass between components along linkages which join outboxes to inboxes. (More specifically linkages join data sources to data sinks) This is analogous to internal mail inside an organisation and having the postman know where messages should be delivered.

Components normally perform processing by providing a means of handling a "pausable" function. Such functions voluntarily pause themselves using a form of return & continue functionality provided by the language. As a result components are simply objects with lists of inboxes, outboxes and a wrapper for a pausable function. Users of the system customise components by providing alternative functionality for the various parts of the pausable function (initialisation, main loop, shutdown).

2 Overview of Notation

The purpose of this notation is to aid the following:
Design

There are 3 main types of diagram this notation covers:

It's worth noting that black box diagrams are used on glass box diagrams, and that both black & glass box diagrams are used on Lifecycle diagrams.

2.1 Black Box Single Component Static View

Figure 1 shows a black box view. This form of view does not contain any linkages, and simply shows public inboxes and outboxes. The notation provides clear differences between inboxes and outboxes.

Figure 1

Things to note regarding this diagram:

Figure 2 describes a sample existing component. A network server uses this component to send and receive data to a specific, already connected, client. For each connected client there is one connected socket adaptor.

Figure 2

This component has the following inputs and outputs:

The connected socket forms a functional communication link to a system outside Axon. This behaviour is represented in the name of the component – it is the reason the component is called an adaptor.

Similarly a component designed to read from a file could have a single outbox, and no inboxes. Internally such a component would have a filehandle for reading data. In such a scenario, the filehandle would be created at component creation time. As data is made available this could be passed to the component’s outbox. Due to the input from a non-Axon system, a file reader component operating in this manner would also be an adaptor.

A component that wrapped up all interaction with a GUI could have inboxes for receiving details of items to display, and outboxes for describing user events and input. This would also be an adaptor since it would be transforming input/output between the Axon system and the GUI system.

2.2 Glass Box Component System Static View

In the majority of cases, a glass box view will essentially be a snapshot of the system at a given point in time.

Figure 3 shows a rather complex glass box view.

Figure 3

This diagram contains the following visual cues:
(Note this component has no outbox – output to an end-user is via the connected socket adaptor.)

The reasons for using this notation is as follows:

2.3 Lifecycle Dynamic System View

One way of thinking about this is much like how a comic show time based events!
Lifecycle/dynamic views are presented as a sequence of glass box diagrams. The purpose of a lifecycle/dynamic system view is to clearly present how the system changes with time. Since the structure of the system is extractable from an active system verification that the system is following expected behaviour is potentially checkable visually.

There is no additional notation added for dynamic systems. There is one major difference though: whilst a static view may have subcomponents with dashed borders, a dynamic/lifecycle diagram in general will not. A dashed border for a component indicates this component will be defined at runtime. A dynamic/lifecycle diagram as a whole indicates how the system works when it's running. Unless the entire system is parameterisable (which is possible), there will normally be no subcomponents with dashed borders.

An example HTTP server component could follow the following lifecycle:

  1. The server component would be created:
  2. The server would allocate a listener:
  3. A client would connect, the server allocates a protocol handler and makes linkages:
  4. The client disconnects, the protocol handler & connected socket handler are discarded, and the server listens for new connections:
Steps 3 & 4 then repeat.

3 Summary

Valid reasons (non-exhaustive) for breaking these rules are:
This document has presented a notation for diagrams describing Axon components and systems. A summary of the notation is below. (it uses SHOULD/MUST /MAYin the same was an an RFC)

For all Axon diagrams:

The following applies to glass box diagrams:

Lifecycle diagrams:

Why use MAY/SHOULD/MUST? This notation forms a simple language, and by using it consistently we make it easier to pick up and run with Kamaelia systems.

Discussion

This document has been guiding Kamaelia development for a number of years now. It is likely to be extended for exogenous style components shortly.



Your tags for this page: If you had set UserPreferences (name & email) and validated them (simple single click in your email), you would be able to define personal tags

Versions: current , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8


(C) 2005 Kamaelia Contributors, including the British Broadcasting Corporation, All Rights Reserved,
This is an ongoing community based development site. As a result the contents of this page is the opinions of the contributors of the pages involved not the organisations involved. Specificially, this page may contain personal views which are not the views of the BBC.