Archive:Development/Tutorials/Metadata/Nepomuk/NepomukServer (zh CN)

From KDE TechBase


Nepomuk服务器程序
Tutorial Series   [[../|Nepomuk]]
Previous  
What's Next   高级查询
Further Reading   RDF和本体介绍, [[../Resources|用Nepomuk处理资源]], Nepomuk服务

Nepomuk服务器

Nepomuk架构

Nepomuk服务器是个后台守护进程,所有的Nepomuk服务包括Nepomuk数据仓库都由他控制。通常情况下,在KDE启动时他会自动启动。手工的话,在命令行打"nepomukserver"就行了。这样会启动这个守护进程和所有的服务。

"nepomukservicestub"是个包装程序,用以在独立进程中启动该项服务。这样的安排是为了增强Nepomuk的健壮性和稳定性。服务以实现Nepomuk::Service的子类开始,对外以KDE插件形式展现。Nepomuk::Service文档有具体介绍。

KDEBase已经有了些缺省服务。存储服务基本上就是RDF数据库,用于保存Nepomuk相关数据。Nepomuk 服务有详细介绍.

服务器使用

Nepomuk服务器注册为一个DBus服务-org.kde.NepomukServer,同时提供了三个DBus接口:服务管理接口,遗留存储桥接接口,和标准配置接口。

服务管理

服务管理DBus接口称为org.kde.nepomuk.ServiceManager,发布在servicemanager;可以提供打开关闭Nepomuk服务的方法,列举所有运行的服务,并请求这些接口的基本信息:

QStringList availableServices()

列举所有可用的服务,运行着和没有运行的。

bool isServiceAutostarted(QString service)

服务是否自动启动。

bool isServiceInitialized(QString name)

服务是否已经启动并初始化过。(在运行的服务有可能还在初始化构成中)。

QStringList runningServices()

列举所有运行的服务。

void serviceInitialized(QString name)

标明服务是否已经完成初始化并随时待命可用。

void setServiceAutostarted(QString service, bool autostart)

改变自动启动的行为。

bool startService(QString name)

开启服务。同时打开所有依赖关系。

bool stopService(QString name)

停止服务,同时停止所有依赖关系。


遗留存储

发布在org.soprano.Server遗留存储接口只是个简单的包装,把存储服务包装一下,而且不应再被新的应用程序所使用。


配置

称为org.kde.NepomukServerNepomuk服务配置接口nepomukserver发布,可以用来配置服务器。Nepomuk KCM以下列方式使用这些方法:

QString defaultRepository()

返回缺省仓库名(Soprano服务器提供一些存储服务的API,用于创建多个存储仓库。Nepomu只用一个:main)。

void enableNepomuk(bool enabled)

打开/关闭整个Nepomuk系统。enable设为false就可以停止所有服务。

void enableStrigi(bool enabled)

打开/关闭整Strigi文件索引。

bool isNepomukEnabled()

Nepomuk是否打开。

bool isStrigiEnabled()

Strigi是否打开。

void quit()

退出Nepomuk服务器以及停止所有服务。注意:这个方法只做内部调试之用。

void reconfigure()

刷新配置,一般没有必要调用。