Archive:Development/Architecture/KDE4/Akonadi (zh CN)
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.
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.
KDE客户端Akonadi类库给主体的开发以及资源子类的开发提供了强大的支持. KDE PIM项目自带了一系列相关实现.
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.
KDE客户端Akonadi类库即提供了系列初级基于任务的API, 有提供了系列数据模型, 试图和标准行为.