Design » History » Version 1
Алексей Филиппов, 02/22/2012 12:27 AM
1 | 1 | Алексей Филиппов | h1. Проект архитектуры |
---|---|---|---|
2 | |||
3 | Модель архитектуры представлена на следующей схеме: |
||
4 | |||
5 | !https://redmine.cs.karelia.ru/attachments/download/83/850px-MS_Arch_mods.png! |
||
6 | |||
7 | h2. Описание уровней архитектуры |
||
8 | |||
9 | *Сетевой уровень (Network layer)* объединяет используемые социальные сервисы и среду передачи данных. В архитектуре представлены сервисы ВКонтакте, Facebook и Flickr. Каждый сервис предоставляет доступ к данным посредством собственного протокола. В настоящий момент в проекте MySocials реализована поддержка протоколов на основе XML и JSON. |
||
10 | |||
11 | *Транспортный уровень (Transport layer)* представляет собой набор библиотек доступа к социальным сервисам (драйверов). Основная задача драйвера - выполнять запросы к сервису для получения или отправки данных. Один запрос к драйверу может быть реализован в виде серии запросов к сервису. |
||
12 | |||
13 | *Промежуточный уровень (Middleware layer)* обеспечивает единый программный интерфейс (MySocials API) доступа к социальным сервисам. API реализован на основе XML. Для более удобной реализации приложений с использованием социальных сервисов реализована Qt библиотека (Core). Библиотека предоставляет набор базовых классов, средства кэширования для автономной работы и объединяет составные запросы. |
||
14 | |||
15 | *Пользовательский уровень (User layer*) объединяет разработанные приложения и плагины. |
||
16 | * Плагины для Qt Messaging Framework (QMF plugins) предоставляют доступ к социальным сервисам аналогично доступу к почтовым сервисам. |
||
17 | * Плагины приложений (Application plugins) реализуют работу с социальными сервисами в различных приложениях. В настоящий момент реализован плагин для Telepathy framework и плагин импорта контактов в адресную книгу Maemo. |
||
18 | * Консольное тестовое приложение (Console application) позволяет проверить работоспособность драйверов и выполнять запросы на основе MySocials API. |
||
19 | * Приложение для просмотра изображений социальных сервисов (Gallery) |
||
20 | * Приложение для работы с социальными сервисами (MySocials) |
||
21 | |||
22 | h2. Описание подсистем |
||
23 | |||
24 | *Ядро (Core)* – Подпрограмма, отвечающая за перенаправление запросов от других модулей к драйверам и наоборот, контроль использования оперативной памяти программой, выполнение повторяющихся задач(проверка сообщений, проверка друзей и т.д.) |
||
25 | Включает в себя: |
||
26 | |||
27 | * Менеджер Событий - модуль, выполняющий через определенный промежуток времени повторяющиеся задача (проверка на новые сообщения и т.д.) |
||
28 | * Модуль перенаправления запросов - модуль, который перенаправляет запросы, полученные от подпрограмм к драйверам |
||
29 | |||
30 | *Драйвер (Driver)* - подпрограмма реализующая взаимодействие с определенным сервисом или их группой |
||
31 | Включает в себя: |
||
32 | |||
33 | * Модуль получения запросов от ядра |
||
34 | * Отправка запросов и получение ответов от сервиса |
||
35 | * Обработка ответа от сервиса |
||
36 | * Модуль отправки ответа ядру |
||
37 | |||
38 | *Интерфейс пользователя (UI)* - Подпрограмма содержащая графический интерфейс пользователя. Содержит функции по выводу информации пользователю, вызывает функции из виджетов. Включает в себя: |
||
39 | Включает в себя: |
||
40 | |||
41 | * Формы с компонентами из виджетов |
||
42 | |||
43 | *Виджеты (Widgets)* - Набор компнентов, содержащих логику работу интерфейса. Виджеты располагаются на уровне конечного приложения. Включают в себя: |
||
44 | |||
45 | * модули(менеджеры) для соединения графического интерфейса и ядра |
||
46 | * модели данных полученные от ядра и методы доступа к ним |
||
47 | * функции обработки событий, поступающих от графического интерфейса |