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

From KDE TechBase
Revision as of 20:44, 29 June 2011 by Neverendingo (talk | contribs) (Text replace - "<code>" to "<syntaxhighlight lang="text">")


Development/Tutorials/Metadata/Nepomuk/NepomukServer


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服务的方法,列举所有运行的服务,并请求这些接口的基本信息:

<syntaxhighlight lang="text">QStringList availableServices() 列举所有可用的服务,运行着和没有运行的。

<syntaxhighlight lang="text">bool isServiceAutostarted(QString service) 服务是否自动启动。

<syntaxhighlight lang="text">bool isServiceInitialized(QString name) 服务是否已经启动并初始化过。(在运行的服务有可能还在初始化构成中)。

<syntaxhighlight lang="text">QStringList runningServices() 列举所有运行的服务。

<syntaxhighlight lang="text">void serviceInitialized(QString name) 标明服务是否已经完成初始化并随时待命可用。

<syntaxhighlight lang="text">void setServiceAutostarted(QString service, bool autostart) 改变自动启动的行为。

<syntaxhighlight lang="text">bool startService(QString name) 开启服务。同时打开所有依赖关系。

<syntaxhighlight lang="text">bool stopService(QString name) 停止服务,同时停止所有依赖关系。


遗留存储

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


配置

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

<syntaxhighlight lang="text">QString defaultRepository() 返回缺省仓库名(Soprano服务器提供一些存储服务的API,用于创建多个存储仓库。Nepomu只用一个:main)。

<syntaxhighlight lang="text">void enableNepomuk(bool enabled) 打开/关闭整个Nepomuk系统。enable设为false就可以停止所有服务。

<syntaxhighlight lang="text">void enableStrigi(bool enabled) 打开/关闭整Strigi文件索引。

<syntaxhighlight lang="text">bool isNepomukEnabled()Nepomuk是否打开。

<syntaxhighlight lang="text">bool isStrigiEnabled()Strigi是否打开。

<syntaxhighlight lang="text">void quit()退出Nepomuk服务器以及停止所有服务。注意:这个方法只做内部调试之用。

<syntaxhighlight lang="text">void reconfigure()刷新配置,一般没有必要调用。