Система хранения данных в веб-браузерах — «Закладки» — имеет ряд недостатков: отсутствие возможности описания хранимых ссылок, невозможность оперирования с группами вкладок и сложность при миграции данных между браузерами, — при этом, являясь одной из важнейших функций этого программного обеспечения. В статье представлено описание архитектуры программы, расширяющей привычный функционал модуля хранения данных о веб-ресурсах, набором новых операций, что позволяет осуществлять управление закладками с минимальными временными затратами, без опоры на конкретную платформу или тип браузера.
Ключевые слова: расширение для браузера, Bookmarks, Google extension API.
Технология «Интернет» сейчас является наиболее приоритетным способом поиска информации, преимущественно за счёт минимизации временных затрат на её получение. Альтернативной стороной становится вопрос хранения искомых данных. Исключая аппаратную составляющую, остается структура и форма хранения информации. Поскольку речь идет об «Интернет», то, приоритетным видом иерархии здесь является древовидная структура ссылок.
Критичность времени выполнения процессов сохранения и извлечения информации также актуальна, как при её поиске.
Для сохранения ссылок на искомые данные, в архитектуре браузеров предусмотрена операция «Закладки». Структура хранения информации в различных браузерах, отличается, как и ряд дополнительных функций, но ориентация на оперирование одиночными (не множеством) веб-ресурсами, прослеживается во всех распространённых программных продуктах такого рода.
Кроме того, к недочётам «закладок» можно отнести недостаточность описательной информации о сохраняемых источниках, обычно представляемую пиктограммой, заголовком страницы и ссылкой на неё.
В свою очередь, фактор мобильности вычислительных устройств, делает актуальным ещё одно требование — возможность переносимости/портируемости хранимой веб-информации между устройствами с разным аппаратным и программным обеспечением. Современные браузеры обладают подобной функциональностью, но только в пределах линейки продуктов конкретной компании, потому, реализация межпрограммного «перемещения» закладок, требует выполнения дополнительных действий со стороны пользователя.
Ввиду определения ряда подобных недостатков веб-браузеров, был проведён сравнительный анализ наиболее распространённых из этих приложений, с целью выявления решений отвечающих вышеобозначенным требованиям. Результат показал, что в полной мере, необходимую функциональность, не обеспечивает ни один из браузеров.
Аналогичный анализ решений был проведён и для «расширений» различных браузеров, где совокупность критериев: групповое взаимодействие с ссылками, возможность дополнительного описания и кроссплатформенная переносимость — в рамках одной программы, не были найдены.
Так, заключение сравнений стало прецедентом к принятию решения о создании нового приложения. Отвечающего не только вышеобозначенным требованиям, но, также, новым критериям, выявленным в ходе анализа. На диаграмме прецедентов (см. Рис. 1) представлены основные функциональные моменты, обозначенные для реализации.
Для соответствия условию — минимизации временных затрат при работе с ссылками, платформой для разработки стал сам браузер, а программа для управления закладками была «разбита» на два модульных, совместимых приложения — расширения.
Приложение «Open_Bookmarks» входит в приложение «Save_Bookmarks», и, соответственно, в программу «Bookmarks», и запускается из контекстного меню этого модуля. Но выпадающее меню требует выполнения излишних операций пользователя, поэтому прямой вызов обособленного приложения «Open_Bookmarks», которое программа предлагает установить как второе расширение, параллельно «Save_Bookmarks», при нажатии на соответствующую пиктограмму, значительно ускоряет процесс работы с закладками.
Из диаграммы пакетов (см. Рис. 2) видно, что управляющий файл расширения «Save_Bookmarks» — manifest.json, в ходе вызова приложения обращается к двум файлам: popup.html и background.js. Первый, это страница сохранения ссылок из открытых вкладок браузера. Второй, это файл формирования контекстного меню, с пунктами для быстрого открытия закладок («Open_Bookmarks»), и управления закладками и их группами.
Файл manifest.json пакета «Bookmarks_Show», как говорилось ранее, запускает «Open_Bookmarks» напрямую.
Рис. 1. Диаграмма прецедентов программы «Bookmarks»
Рис. 2. Диаграмма пакетов программы «Bookmarks»
Рис. 3. Диаграмма последовательности модуля создания ссылок
В результате, расширение «Save_Bookmarks», в соответствии с диаграммой последовательности (см. Рис. 3), реализует три операции:
– быстрое сохранение ссылки на веб-ресурс по нажатию на пиктограмму;
– сохранение ссылки с добавлением комментария, маркера, тега (вместе или раздельно);
– сохранение группы ссылок из открытых вкладок браузера (создание каталога или добавление в существующий).
Страница с каталогом закладок, вызываемая из контекстного меню «Save_Bookmarks», предназначена для управления хранимыми данными:
– создание, редактирование, удаление закладок;
– внутригрупповое и межгрупповое перемещение закладок;
– открытие выбранных закладок/групп во вкладках браузера;
– выгрузка хранимых данных во внешние ресурсы.
Последний пункт частично отражён на диаграмме последовательности (см. Рис 4). Программа «Bookmarks» допускает выгрузку хранимых данных в следующем виде:
– локальный HTML файл на компьютере;
– отправка «среза» закладок (выбранных) на указанный Email;
– синхронизация с облачными почтовыми хранилищами («Google Disk», «Облако» от mail.ru) и «электронными» органайзерами («Evernote»).
Рис. 4. Диаграмма последовательности модуля выгрузки данных
Быстрое извлечение информации из ссылок реализуется в «Open_Bookmarks» приложении, в соответствии с диаграммой последовательности (см. Рис 5) в форме операций:
– открытие закладки/группы закладок во вкладках браузера;
– управление расположением закладок в структуре хранимых данных.
В целом, «Bookmarks» программа не зависит от платформы и браузера, имеет одинаковый интерфейс и представляется для пользователя как один продукт, фактически являясь source-совместимым проектом, адаптируем под различные программные системы эквивалентным образом.
Рис. 5. Диаграмма последовательности модуля открытия закладок