Archive:Development/Architecture/KDE4/Akonadi (zh CN)

From KDE TechBase
Revision as of 03:07, 25 September 2009 by Hualiang.miao (talk | contribs) (Created page with '{{Template:I18n/Language Navigation Bar|Development/Architecture/KDE4/Akonadi}} '''Akonadi''' 通讯,日历和保存他人信息是每日工作和私人生活的一部分。 A...')
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)


Development/Architecture/KDE4/Akonadi

Akonadi

通讯,日历和保存他人信息是每日工作和私人生活的一部分。 As a provider of an application development framework and of a 自由软件桌面系统,KDE采用了和PIM架构紧密集成的Akonadi来达到这个目的。

KDE实现了Akonadi客户端类库栈,用AKonadi数据源开发的应用或是用Akonadi主体存取实际数据存储的应用都很容易开发了。

概念

Akonadi的设计遵循分散关注点的原则,每个组件只做一件事,做到最好。.

有三个主要组件,每个都运行在独立进程中;这样可以提高系统健壮性和互不依赖:

  • Akonadi 服务器
  • Akonadi 主体
  • Akonadi 应用

Akonadi 服务器

服务器有两个角色:控制和缓存。

控制由一个名为akonadi_control的进程实现。It is the first to start and controls the life cycle of all components other than end user applications.

缓存由一个名为akonadiserver的进程实现。 It is the hub for the data flow, tracks changes and is responsible for system consistency, e.g. ensures unique identifiers, etc.

All communication with these two roles is implemented in the KDE client libraries for Akonadi and available to developers at different level of abstraction.

Tip
Thinking about the server as a proxy-like service helps to avoid misinterpreting its task, e.g. it is caching data on behalf of its clients, not interpreting or permanently storing it.


Akonadi 主体

The agent category describes processes which perform their task without human interaction. This includes a special role also referred to as Akonadi Resources, agents which transport data between the cache and the data's actual persistant storage locations, e.g. files.

The KDE client libraries for Akonadi provide convenience classes to ease development of generic agents as well as the resource subtype. The KDE PIM project provides a set of commonly required implementations as part of their runtime module.

Akonadi 应用

The application category refers to the usual end user visible application, e.g. address book, calendar or e-mail program. Implementations of this category can sometimes be referred to as Akonadi Clients, since agents can be seen as part of the server-like functionality, both from the point of view of users as well as application developers.

The KDE client libraries for Akonadi provide both a low level job based API as well as high level data models, views and standard actions.

深入阅读