XPCOM

Материал из Википедии — свободной энциклопедии
Текущая версия страницы покане проверялась опытными участниками и может значительно отличаться отверсии, проверенной 15 марта 2022 года; проверки требуют11 правок.
Перейти к навигацииПерейти к поиску

XPCOM (англ. Cross Platform Component Object Model, «кроссплатформенная объектная модель компонентов») —кроссплатформенная компонентно-ориентированная модель разработки ПО отMozilla. Она схожа сCORBA иMicrosoftCOM. XPCOM позволяет писать компоненты на различных языках:C++,JavaScript,Java, и др. Осуществляется это через слой абстракцииXPConnect, а интерфейсы классов берутся из бинарных библиотек типов (англ. typelib).

Содержание

Модель

[править |править код]

XPCOM - одна из основных вещей, делающих прикладную среду Mozilla актуальным фреймворком. Это среда разработки, предоставляющая разработчику кроссплатформенного программного обеспечения следующие возможности:

  • Управление компонентами
  • Абстракция файлов
  • Передача объектных сообщений
  • Управление памятью

Объектно-компонентная модель делает практически всю функциональность Gecko доступной в виде ряда компонентов, или многократно используемых кроссплатформенных библиотек, доступ к которым можно получить из веб-браузера или с помощью сценариев из любого приложения Mozilla. Приложения, которым необходимо обращаться к различным библиотекам Mozilla XPCOM (сетевым, безопасности, DOM и т.д.), используют специальный слой XPCOM под названием XPConnect, который отражает интерфейсы библиотек на JavaScript или других языках. XPConnect приклеивает фронт-энд к компонентам XPCOM, основанным на языках программирования C++, C или Rust, и может быть расширен для включения поддержки сценариев для других языков: PyXPCOM уже предлагает поддержку Python. PerlConnect и plXPCOM обеспечивают поддержку Perl, а в настоящее время ведется работа по добавлению поддержки Common Language Infrastructure (CLI) и языка Ruby для XPConnect.

Разработчикам XPCOM позволяет писать компоненты на C++, C, JavaScript, Python или других языках, для которых созданы специальные связки, компилировать и запускать эти компоненты на десятках различных платформ, включая эти и другие, где поддерживается Mozilla.

Возможность повторного использования компонентов XPCOM из библиотеки Gecko и разработки новых компонентов, работающих на различных платформах, способствует быстрой разработке приложений и приводит к повышению производительности и удобству их сопровождения. Например, сетевая библиотека представляет собой набор XPCOM-компонентов, которые могут быть доступны и использованы любым приложением Mozilla. Файловый ввод/вывод, безопасность, управление паролями и профили также являются отдельными компонентами XPCOM, которые программисты могут использовать при разработке собственных приложений.

Чрезмерное использование в прошлом

[править |править код]

XPCOM добавляет много кода для маршалинга объектов, и в эпоху Netscape XPCOM слишком часто использовался для внутренних интерфейсов там, где это не было действительно необходимо, что приводило к раздуванию программного обеспечения.[1] Это стало основной причиной того, что в 2001 году компания Apple использовала KHTML, а не Gecko, для создания движка WebKit для своего браузера Safari.[2]

С тех пор компания Mozilla частично устранила раздутость XPCOM.[3] К 2008 году в сочетании с другими усилиями это привело к значительному повышению производительности Gecko.[4]

Примечания

[править |править код]
  1. Jorge O. Castro. Ars Technica sits down with Scott Collins from Mozilla.org  (неопр.). Ars Technica (15 июня 2004). Дата обращения: 16 февраля 2017. Архивировано 22 февраля 2018 года.
  2. Paul Festa. Apple snub stings Mozilla  (неопр.). CNET Networks (14 января 2003). Дата обращения: 16 февраля 2017. Архивировано изоригинала 25 октября 2012 года.
  3. Gecko:DeCOMtamination  (неопр.). Дата обращения: 24 ноября 2023. Архивировано 29 марта 2021 года.
  4. Ryan Paul. Why Mozilla is committed to Gecko as WebKit popularity grows  (неопр.) (9 сентября 2008). Дата обращения: 16 февраля 2017. Архивировано 20 января 2021 года.

Ссылки на статьи по теме

[править |править код]
intmain(){printf("Hi");return0;}
Этозаготовка статьи опрограммировании. Помогите Википедии, дополнив её.
Информация должна бытьпроверяема, иначе она может быть удалена. Вы можетеотредактировать статью, добавив ссылки наавторитетные источники в видесносок.(7 июля 2014)
Перейти к шаблону «Проекты Mozilla»
ПроектыMozilla
Браузеры
Другие проекты
Не развиваются
Инфраструктура
Компоненты
Источник —https://ru.wikipedia.org/w/index.php?title=XPCOM&oldid=140253059
Категории:
Скрытые категории: