Project

General

Profile

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
* функции обработки событий, поступающих от графического интерфейса