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.
Application | Type | Description |
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
-
SeisComP3_system.jpg
(190.0 KB) - added by jabe
-
Schematic_data_and_notifier_message.jpg
(60.0 KB) - added by jabe