Файлы конфигурации расширения браузера. Описание структуры API: компоненты коммуникаций, безопасности и работы с данными. Разработка расширения программирования Opera. Сущность масштабируемости как свойства аппаратной мощности и информационной системы.
Общие свойства открытых систем обычно формируются следующим образом: расширяемость/масштабируемость-extensibility/scalability, мобильность (переносимость) - portalility, интероперабельность (способность к взаимодействию с другими системами) - interoperability, дружественность к пользователю, в т.ч. Таким образом, Opera обладает свойством масштабируемости, так как браузеры должны быстро предоставлять информацию пользователю при частичном использовании ресурсов компьютера, и не допускать «пожирания» ресурсов, при увеличении числа вкладок или окон. Opera взаимодействует с почтовым клиентом, Bit Torrent клиентом, с поисковыми системами и социальными сетями также и с другими браузерами, получая от них логины и пароли, необходимые для пользователя и используемые на этих браузерах. Файл config.xml дает браузеру Опера актуальную информацию о расширении Opera, такие как имя, описание, версию, имя автора расширения, и т.д. Opera.extension.windows.GETLASTFOCUSED() - функция, позволяющая получить выбранное окно браузера, если такое имеется..insert() - функция, позволяющая вставить указанную группу вкладок или вкладку браузера в данное окно браузера, в указанное место..close() - функция, закрывающая окно браузера..focus() - функция, дающая возможность сосредоточиться на окне браузера.В данном реферате я рассматрива программный продукт браузер Opera на наличие признаков открытой информационной системы, исследовать API Opera. Во-первых, он обладает основными свойствами информационных систем, такими как расширяемость, интеграция, интероперабельность, переносимость. Во-вторых, браузер использует технологии, спецификации, интерфейсы, протоколы, которые описываются открытыми стандартами.
Введение
Применение подхода открытых систем в настоящее время является основной тенденцией в области информационных технологий и средств вычислительной техники, поддерживающих эти технологии. Идеологию открытых систем реализуют в своих последних разработках все ведущие фирмы - поставщики средств вычислительной техники, передачи информации, программного обеспечения и разработки прикладных информационных систем. Их результативность на рынке информационных технологий и систем определяется согласованной (в пред конкурентной фазе) научно-технической политикой и реализацией стандартов открытых систем.
Что понимается под открытыми системами?
"Открытая система - это система, которая состоит из компонентов, взаимодействующих друг с другом через стандартные интерфейсы". Это определение, данное одним из авторов упомянутого руководства Жаном-Мишелем Корну, подчеркивает системный аспект (структуру открытой системы).
"Исчерпывающий и согласованный набор международных стандартов информационных технологий и профилей функциональных стандартов, которые специфицируют интерфейсы, службы и поддерживающие форматы, чтобы обеспечить интероперабельность и мобильность приложений, данных и персонала". Это определение, данное специалистами ІЕЕЕ, подчеркивает аспект среды, которую предоставляет открытая система для ее использования (внешнее описание открытой системы).
Вероятно, одно достаточно полное и общепринятое определение открытых систем еще не сформировалось. Однако сказанного выше уже достаточно, чтобы можно было рассмотреть общие свойства открытых систем и выяснить существо связанных с ними проблем.
Общие свойства открытых систем обычно формируются следующим образом: расширяемость/масштабируемость -extensibility/scalability, мобильность (переносимость) - portalility, интероперабельность (способность к взаимодействию с другими системами) - interoperability, дружественность к пользователю, в т.ч. - легкая управляемость - driveability.
Эти свойства, взятые по отдельности, были свойственны и предыдущим поколениям информационных систем и средств вычислительной техники. Новый взгляд на открытые системы определяется тем, что эти черты рассматриваются в совокупности, как взаимосвязанные, и реализуются в комплексе.
1. Признаки открытости информационной системы
1.1 Расширяемость
Расширяемость заключается в изменении функционала приложения. Начиная с 1994 года, было создано большое число версий браузера. Последние версии поддерживают множество расширений (Tab Grouper, Auto Stack, WOT). Это различные приложения, облегчающие работу в интернете, темы для окон браузера и виджеты. Были встроены режимы Opera Turbo и Opera Link, которые встроены в пакет приложения.
Разработчики Opera предоставили возможность писать свои приложения, используя API Opera Link, который доступен через HTTP и REST. Можно использовать форматы XML или JSON. Можно использовать любой наиболее удобный для написания расширения серверный язык [2]. Используется аутентификация OAUTH, означающая, что каждое написанное приложение имеет свой собственный ключ и может быть идентифицирован однозначно. API для Link Опера призван обеспечить чтение и запись данных через HTTP протокол. API Opera похожа на интерфейсы API популярных web-сервисов и достаточно прост в использовании [3].
Существует возможность запросить конкретные инструменты, такие как одна закладка или заметка, части данных, целые папки закладок, или весь набор данных, а также вносить изменения в данные и добавлять новые элементы. С использованием API можно написать приложения для управления закладками, создать свою панель SPEEDDIAL, импортировать или экспортировать данные в любом формате, и т.д.
Все вышеперечисленное позволяет сторонним разработчикам увеличивать функционал приложения, но перед выходом все приложения тестируются разработчиками Opera, после чего включаются в набор.
Таким образом, Opera в полной мере обладает признаком расширяемости.
Масштабируемость - это свойство, при котором с увеличением аппаратной мощности увеличивается и производительность информационной системы. В программе уже реализованы алгоритмы быстрой работы как браузера, поэтому увеличение аппаратной мощности (объема оперативной памяти и частоты процессора) не сильно сказывается на работе приложения (не считая случаи, когда недостаточно оперативной памяти). Но 14 июня Новая версия получила новую технологию рендеринга. Благодаря свойствам движка Presto 2.9, Opera стала быстрее, чем раньше (до 20 % более быстрый рендеринг CSS и SVG). Также заметно повышена стабильность работы.
В последней 12 версии браузера организовано более разумное использование оперативной памяти компьютера при создании новых вкладок и ускорение отображения страниц. Максимальное число вкладок равно 100, объем используемой оперативной памяти растет линейно с увеличением числа вкладок.
Таким образом, Opera обладает свойством масштабируемости, так как браузеры должны быстро предоставлять информацию пользователю при частичном использовании ресурсов компьютера, и не допускать «пожирания» ресурсов, при увеличении числа вкладок или окон.
1.3 Интероперабельность
Интероперабельность - это возможность программы взаимодействовать с другими информационными системами.
Opera взаимодействует с почтовым клиентом, Bit Torrent клиентом, с поисковыми системами и социальными сетями также и с другими браузерами, получая от них логины и пароли, необходимые для пользователя и используемые на этих браузерах. Взаимодействует с информационными системами, разработанными в Opera Software 1.5 Интеграция
Интеграция определяет, может ли данный программный продукт являться частью другого более крупного, и наоборот.
В последних версиях Opera имеется возможность подключения плагинов (QSAVER, Page2CHM, СОСО, Download Master Integrator, YOUTUBE Download Center и др.). Большинство плагинов предназначены для улучшения работы и более компактного хранения web-страниц в оперативной памяти, но есть и узкоспециализированные.
Например, QSAVER - плагин предназначенный для быстрого сохранения в MHT или HTML, с автопереименованием (если такой файл уже существует). Позволяет сохранять все открытые страницы. Также может быстро сохранять изображения и делать скриншоты видимой части страницы. Download Center. Плагин, позволяющий скачивать видео с YOUTUBE, производить по иск видео, а также получать расширенную информацию о YOUTUBE.
Плагин для FLASHGET - плагин для скачек. Интегрирует FLASHGET в Opera. Благодаря нему закачки будут перехватываться и осуществляться не через встроенный мастер закачек Opera, а через продвинутый Flash Get. Также добавляется пункт "закачать через FLASHGET" в контекстное меню ссылки, ведущей к файлу (поддерживаемые форматы файлов: rar, zip, exe, mp3, pdf, wma, avi, mpeg и др.)
В Opera, так же как и в другие браузеры, могут быть интегрированы Adobe Acrobat для чтения определенных форматов файлов, Adobe Flash Player для работы с флэш-приложениями, а также другие продукты компании Adobe Systems.
В браузер, помимо собственной антифишинговой системы, возможна интеграция анти-баннеровой системы Kaspersky Internet Security 2012.
Таким образом, Opera обладает высокой степенью интеграции, но эта интеграция является односторонней, так как сам браузер нельзя использовать как часть другого ПО.
2. API Opera
2.1 Общая структура API
Opera extension API является глобальным объектом, содержащим модули, на которых строится API. На рис. 2.1 приведена структура API браузера Opera [4].
Основы и элементы пользовательского интерфейса: config.xml Функции предоставляемые API: injected scripts REST API для Link Опера призван обеспечить пользователям Storage Link чтение и запись данных через http-интерфейс. Link API схож с API популярных web-сервисов и является достаточно простым в использовании.
Всего поддерживается 4 метода работы (типа http-запросов) GET, POST, PUT, DELETE. Даже если пользователь плохо ознакомлен со всеми методами, или не ознакомлен с методами PUT и DELETE, имеется возможность использовать API в полном объеме, указав необходимое действие в параметрах POST запроса (с помощью него можно сделать любой из запросов). Запросы - это запросы исключительно для чтения, то есть, запрос никогда не будет изменять состояние запрашиваемого пункта на сервере. POST ,PUT и DELETE запросы, предназначенные для изменения данных пользователя, они будут приводить к изменению данных пользователя, в том случае, если будут успешными [5].
Запросы REST API не отслеживаются (не существует механизмов авторизации пользователя, сделавшего запрос).
REST API предоставляет доступ к таким типам данных как Bookmarks, Notes, Speed Dial.
Другие типы данных и дополнительные функции могут быть включены в будущем, при расширении API.
Структура браузера опера подробно рассмотрена в пункте «Подробная структура API».
2.2 Файлы конфигурации расширения браузера
Конфигурация программного обеспечения Существуют различные подходы к хранению конфигурации. Многие программы хранят настройки в текстовых файлах. Несмотря на то, что почти во всех случаях эти файлы можно редактировать вручную, во многих случаях для этого создается специальный интерфейс (как консольный, так и графический). В нашем случае файл конфигурации имеет формат .xml.
Файл config.xml дает браузеру Опера актуальную информацию о расширении Opera, такие как имя, описание, версию, имя автора расширения, и т.д. Ниже описаны элементы и атрибуты файла config.xml.
Widget element 3.ДЕТАЛЬНАЯ СТРУКТУРА API
3. Детальная структура API
3.1 Компоненты коммуникаций
Общение между различными частями расширения осуществляется либо с помощью фонового процесса или API сообщений.
Сценарий фона и введенный сценарии Фоновый процесс представляет собой процесс, постоянно работающий в фоновом режиме на протяжении всего времени работы приложения. Он отвечает за элементы пользовательского интерфейса браузера и действия браузера [4]..extension.BGPROCESS - ссылка на объект окна фонового процесса.
Opera.extension.onconnect / Opera.extension.ondisconnect - эти события слушателя вызываются, когда введенный сценарий, всплывающее окно, или предпочтенная страница создается / разрушается, и необходимо создать / разрушить связь.
Источником события является MESSAGEPORT, который обеспечивает связь с окружающей средой..extension.BROADCASTMESSAGE () - функция, используемая для передачи данных из фонового процесса во все подключенные среды, связанные с расширением (предпочтенные страницы, всплывающие окна, введенные сценарии).
Opera.extension.onmessage - это событие слушателя вызывается при получении сообщения от введенного сценария, всплывающего окна или предпочтенной страницы. Источником событие является MESSAGEPORT.
3.2 Компоненты для работы с данными
Объект Виджет - предоставляет функции для доступа к метаданным расширениям и хранимым данным. Это могут быть доступные из любой из среды расширения, такие как фоновый процесс, всплывающее окно или страница предпочтений.
Виджет также используется для получения информации из config.xml.
Объект виджет - это объект для чтения, он не может быть использован для редактирования или хранения записей. Widget.author Opera.POSTERROR() - функция, записывающая текст и номер ошибки в консоли ошибок.
3.3 Инфраструктурные компоненты
Эта часть касается контекста панели инструментов браузера, которая позволяет создавать и манипулировать кнопками, значками всплывающими окнами. Кнопки и значки являются основными компонентами пользовательского интерфейса.
Opera.contexts.toolbar.CREATEITEM () - функция, которая создает кнопку.
Opera.contexts.toolbar.ADDITEM() - функция, которая добавляет кнопку на панель инструментов браузера.
Opera.contexts.toolbar.REMOVEITEM() - функция, которая удаляет ранее созданную кнопку с панели инструментов браузера.
Button.disabled - это свойство указывает, отключена ли кнопка. По умолчанию ложно (то есть кнопка включена). Button.onclick - это свойство раскрывает, что будет выполняться при нажатии кнопки.
API окон
Окна браузера представляет собой графический пользовательский интерфейс, который может содержать ноль или более вкладок браузера или группу вкладке браузера. Каждое окно браузера имеет соответствующий набор вкладок и набор групп вкладок. Окно браузера - контекстное окно каждой вкладки браузера и группы вкладки браузера в пределах своего набора вкладок и набора групп вкладок соответственно. Коллекция из окон браузера, называется коллекцией окон.
Opera.extension.windows.create() -функция, создающая новое окно браузера..extension.windows.GETALL() - функция, которая дает возможность получить определенный набор окон.
Opera.extension.windows.GETLASTFOCUSED() - функция, позволяющая получить выбранное окно браузера, если такое имеется..insert() - функция, позволяющая вставить указанную группу вкладок или вкладку браузера в данное окно браузера, в указанное место..close() - функция, закрывающая окно браузера..focus() - функция, дающая возможность сосредоточиться на окне браузера.
BROWSERWINDOW.update() - функция, предоставляющая возможность обновления свойств окна браузера.
Фильтрация URL адресов для расширения опера определяется интерфейсом DOM, который позволяет добавить в расширение временные правила блокирования адресов, помимо правил установленных производителем. Правила, добавленные с помощью этого API, применяются до тех пор, пока расширение работает. После выхода из расширения или отключения браузера, временные правила игнорируются. Чтобы включить фильтр URL, оперы: URLFILTER функция должна быть добавлена в элемент «функция» в config.xml файле.
Opera.extension.urlfilter.block.add () - функция, добавляющая правило в виртуальный список заблокированных URL-адресов.
Opera.extension.urlfilter.block.remove() - функция, удаляющая правило из виртуального списка заблокированных URL-адресов..extension.urlfilter.allow.add() - функция, добавляющая правило, с сопутствующими вариантами, в виртуальный список разрешенных URL-адресов (белый список)..EXCLUDEDOMAINS / RULEOPTIONS.INCLUDEDOMAINS - массивы из нуля или более доменов, к которым не применимо/применимо данное правило URL-фильтрации. Эти два свойства передается в объект RULEOPTIONS в качестве параметров для функций фильтрации URL [4]. RULEOPTIONS.resources - значение, указывающее на типы ресурсов, к которым применимо данное правило URL-фильтрации. RULEOPTIONS.THIRDPARTY - логическое свойство, определяющее, распространяются ли данные правила URL-фильтрации на сторонние домены. Значение истина показывает, что фильтрация распространяется только на домены различного происхождения. Значение ложь показывает, что фильтрация распространяется только на домены того же самого происхождения. Значение NULL показывает, что все домены попадают под правило URL-фильтрации.
Синтаксис URL фильтра включает специальные символы, которые будут использоваться для более гибкой фильтрации. Символ «*» соответствует любому символу, символ «^» соответствует одному символу из следующего списка: ! "# $ & "() * , /:;? @ [\] ^` {|} ~, символ «| |» совпадает с началом любого хоста.
4. Разработка расширения программирования Opera
4.1 Среда программирования
Расширения для Opera пишутся с помощью общих открытых web-стандартов, поэтому все, что нужно, чтобы начать, это Opera (начиная с 11 версии) и текстовый редактор или IDE (Integrated Development Environment или Integrated Debugging Environment - интегрированная среда разработки). Под IDE чаще всего понимают набор таких средств как текстовый редактор Системные требования при создании расширения определяются типом используемого текстового редактора, и зависят от назначения расширения при его работе.
Например, если расширение создает большое число вкладок или окон, то необходимо наличие большого объема оперативной памяти.
В качестве среды программирования будет использоваться простейший текстовый редактор блокнот, который является частью системы Windows.
4.2 Элементы расширения
Опера расширения основаны на спецификации W3C Widgets ·/config.xml
·/index.html
·/background.js
·/popup.html
·/icons/example.png
·/locales/no/index.html
·/locales/no/background.js
·/locales/no/popup.html
·/options.html
Обязательны только первые 2 файла. Остальные создаются по необходимости (в зависимости от функционала приложения).
О файле config.xml подробно рассказано во второй главе. Файл index.html - это стартовый файл приложения. Он необходим, так как служит фоновым процессом расширения. Файл background.js - это файл, который содержит так называемые фоновые скрипты, которые контролируют фоновый процесс приложения. Можно создать столько файлов с фоновыми скриптами, сколько необходимо, и не обязательно называть эти файлы именно background.js. Popup.html - это файл (или файлы, так как может понадобится и более одного), который является содержимым всплывающего окна, запускается из фонового процесса. Также можно указать на внешний URL, как на содержимое одного из всплывающих окон, например, При написании расширения будут использоваться файлы config.xml, index.html и директория с изображениями.
4.3 Процесс написания расширения
The Milky Way extension - расширение для Opera, представляющее собой кнопку на панели инструментов браузера, при нажатии на которую будет открываться новая вкладка с панорамой Млечного пути (html-страница, расположенная на удаленном сайте).
Сначала создается папка, в которой будут расположены все файлы расширения. В ней создаем папку icons, в которую помещаем 2 (для данного приложения больше не требуется) изображения. Лучше всего подойдут изображения форматов PNG, JPEG или GIF (не анимированный). Одно из них будет отображаться в менеджере расширений (лучший размер 64х64 пикселя), другое - будет иконкой кнопки (лучший размер 16х16 или 18х18 пикселей).
Для начала, необходимо создать конфигурационный файл расширения config.xml, который содержит метаданные, описывающие расширение. В нем будет содержаться информация о названии расширения, его авторе и иконке для менеджера расширений.
На первом этапе создается файл config.txt, в котором пишется исходный код. При написании кода используется язык XML версии 1.0. Конфигурационный файл будет содержать следующие элементы: widget, name, description, author, icon (другие элементы для данного приложения не требуются). Элемент widget будет содержать в себе все остальные элементы. В элемент name заносится название расширения «The Milky Way». В description заносится краткое описание приложения «A button on an Opera toolbar which is opening a panorama of the Milky Way». В author заносится имя разработчика «Konoplyov Egor» (также можно указать страницу разработчика и адрес электронной почты). В параметр scr элемента icon заносится путь к изображению, которое находится внутри пакета с расширением, и которое будет отображаться в менеджере расширений. Расширение файла config меняется с .txt на .xml, после чего файл перемещается в папку будущего расширения Opera. Файл конфигурации создан.
На следующем этапе создается файл самого приложения index.html. Необходимо создать файл index.txt, в котором будет записан исходный код. При написании кода используется язык HTML. В данном документе будет использоваться API Opera.
Window.ADDEVENTLISTENER () - функция из API, которая добавляет слушателя к событию (будет содержать в себе все остальные функции).
Вторым параметром этой функции является «функция-контейнер», внутри которой содержится следующее.
Создаются переменные THEBUTTON (сама кнопка, как объект) и TOOLBARUIITEMPROPERTIES (свойства кнопки на панели инструментов). Заполняются свойства кнопки: в disabled заносится булевское значение false (кнопка активна); в title заносится текст «Panorama of the Milky Way», который будет отображаться при наведении курсора мыши на кнопку; в icon заносится путь к иконке кнопки, в onclick заносится то, что должно выполняться при нажатии на кнопку (описано позднее). После переменной THEBUTTON присваивается значение функции из API opera.contexts.toolbar.CREATEITEM (), единственным параметром которой является TOOLBARUIITEMPROPERTIES (кнопка создается). С помощью функции из API opera.contexts.toolbar.ADDITEM () с параметром THEBUTTON кнопка помещается на панель инструментов.
В onclick создается функция-контейнер, внутри которой содержится следующее.
Создается переменная tab и ей присваивается значение функции из API по созданию новой вкладки - opera.extension.tabs.create (), параметром которой является URL сайта с панорамой Млечного Пути. После с помощью функции из API tab.focus () браузер переключается на созданную вкладку.
Расширение файла index меняется с .txt на .html, после чего файл перемещается в папку будущего расширения Opera. Файл index. html создан.
Папка, содержащая все файлы созданного расширения, упаковывается с помощью WINRAR в zip-архив, после чего необходимо изменить расширение архива с .zip на .oex. Расширение «The Milky Way» готово к установке и работе.
Системные требования для работы данного расширения незначительны, по сравнению с требованиями браузера Opera. Для полноценной работы расширения необходимо подключение к сети Интернет.
Вывод
В данном реферате я рассматрива программный продукт браузер Opera на наличие признаков открытой информационной системы, исследовать API Opera.
Браузер Opera по многим параметрам является открытой информационной системой. Во-первых, он обладает основными свойствами информационных систем, такими как расширяемость, интеграция, интероперабельность, переносимость. Во-вторых, браузер использует технологии, спецификации, интерфейсы, протоколы, которые описываются открытыми стандартами. В-третьих, обладает узкоспециализированным, но достаточно широким набором API, который можно использовать для написания различных дополнений и расширений браузера. Последним этапом работы было написание приложения к браузеру, которое показывает возможность использования API Opera.
Учитывая все вышеперечисленное, можно, что Opera является открытой информационной системой.
В настоящее время, в связи с быстрыми темпами развития языков программирования, программного обеспечения и информационных систем в целом, увеличивается необходимость грамотной разработке архитектуры ПО, в которую легко бы включались новые элементы. Наличие большого числа появляющихся технологий требует стандартизации их взаимодействия. Важную роль в разработке программного обеспечения начинают играть сторонние разработчики, которые всесторонне анализируют недостатки ПО. Все это ведет к большей открытости информационных систем, их взаимодействию, объединению, расширению.
Список литературы
1. Отдел разработок Dev.Opera // Introducing the Opera Link API. URL: .
2. Группа по протоколам сети Интернет IETF: Стандарт RFC959 File Transfer Protocol (FTP). URL: .