<ol><li><a href="#Softwarearchitecture">Software architecture</a></li></ol>

Software architecture

A SeisComP3 automatic system consists of a set of independent applications each performing a discrete task. The communication between the applications is realized by a TCP/IP based messaging system. This messaging system is based on the open source toolkit “Spread” that provides a high performance messaging service across local and wide area networks. At the top of “Spread” a mediator, called scmaster handling additional requirements of SeisComP3 that are not natively provided by “Spread”. The messaging system is used for the exchange of meta data (e.g. picks) and administration of the program modules. The data model of SeisComP3 is based on the QuakeML schema version 0.5. QuakeML is also used as database object schema. By default SeisComP3 uses a MySQL database, but PostgreSQL is supported too. Figure 4-1 shows a simplified SeisComP3 system.


Figure 4-1: Simplified SeisComP3 system

The waveform data acquisition is based on the well established SeedLink protocol and the new ArcLink protocol both developed at the GFZ Potsdam. The applications in SeisComP3 can be divided in four different groups: data acquisition, processing, graphical user interfaces and utilities. Detailed descriptions of the applications are in chapter 5. Table 4-1 shows a brief overview of the applications.

ApplicationTypeDescription
Seedlink data acquisition providing realtime waveform data
Arclink data acquisition providing archive waveform data
scmaster processing handling messaging
scqc processing determination of waveform quality parameter
scautopick processing automatic picking
scautoloc processing automatic event detection and localization
scamp processing amplitude calculation
scmag processing magnitude calculation
scevent processing origin association, best, magnitude selection, best origin selection
scrttv graphical user interface real-time waveform monitor
scmv graphical user interface map overview showing,actual station status and events
scesv graphical user interface summary view of most important event information
scolv graphical user interface reviewing and revising origins, manual picking tool
scqcv graphical user interface showing station quality status
scmm graphical user interface message monitoring
scbulletin utility creating bulletins of events from the database
scdb utility inserting objects from QuakeML file or messaging into the database
scevtlog utility logging the event history
scevtls utility listing events for a given time range
scevtstreams utility listing all waveform streams used for event detection
scimex utility exchange of meta data objects between SeisComP3 systems with filter functionality
scimport utility forwarding of meta data objects from one messaging system to another
scm utility performance monitor similar to UNIX top
scproclat utility logging message history
scvoice utility event alert with optional voice output
scxmldump utility event dump to QuakeML file from database
sczip utility zip implementation of SeisComP3

Table 4-1: Short description of SeisComP3 applications

One requirement of SeisComP3 was to minimize database (DB) access. Therefore most of the applications have an internal cache storing objects received from the messaging. One rule which is consequently implemented is that SeisComP3 applications generally have only read access to the DB. The only application with writing permission to the DB is scmaster. Scmaster receives messages determines the receiver group and forwards the messages similar to a mailman. If instructed, scmaster also writes the included object to the DB. All applications communicate only via the messaging system. For communication three types of messages are used. The “data message” contains plain objects like QuakeML objects (Figure 4-2).


Figure 4-2: Schematic data and notifier message

Normally this message type is used for non persistent information. The “notifier message” is the primary message used for QuakeML object exchange between the different applications. It contains a data object (e.g. a QuakeML object) and an instruction what to do with this object. Available instructions are add, update and remove. Scmaster follows these instructions and applies it to the DB. For example in case of an add instruction it adds the included objects to the DB. All message types are additionally classified to messages groups that define the receivers of the message. Such message groups are for example PICK or LOCATION. The third message group is responsible for SeisComP3 administration called “service messages”.

Attachments