SeisComP3 系统由一套独立的应用组成,每个应用执行独立的任务。应用之间的通讯由基于消息系统的 TCP/IP 实行。消息系统基于开源工具包 Spread, 该包提供了本地与广域网间的高性能消息服务。在 Spread 最上层,scmaster 处理 SeisComP3 的附加请求。消息系统用于元数据和配置的交换。
scmaster 被设计为内核,用于委派客户端的请求。因此,它是可信赖的关键应用。为加入到分布式系统中,客户端需要发送一个连接请求至 scmaster。接着主程序返回一个确认信息来通知客户端是否允许。另外,所有当前连接的客户端都会接到新成员的通知。
建立连接后,每条消息将首先传给主程序,然后传给目标组。一旦客户端处理完毕,将发送断开消息至主程序,主程序将通知所有剩余客户端。scmaster 可通过数据库插件进行配置。
消息在被 scmaster 分发之前会被写入指定数据库。如果遇到崩溃,所有必要的信息可以从数据库中恢复。目前,已有的驱动包括 MySQL、 PostgreSQL 和 sqlite。注意,scmaster可以不使用数据库而运行,但是会失去数据完整性。
通常 scmaster.cfg 看起来如下:
plugins = dbplugin
plugins.dbPlugin.dbDriver = mysql
plugins.dbPlugin.readConnection = "sysop:sysop@host/seiscomp3"
plugins.dbPlugin.writeConnection = "sysop:sysop@localhost/seiscomp3"
etc/defaults/global.cfg
etc/defaults/scmaster.cfg
etc/global.cfg
etc/scmaster.cfg
~/.seiscomp3/global.cfg
~/.seiscomp3/scmaster.cfg