XPCOM: различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[отпатрулированная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
м →‎top: орфография, пунктуация
Спасено источников — 3, отмечено мёртвыми — 0. Сообщить об ошибке. См. FAQ.) #IABot (v2.0.9.5
 
(не показано 9 промежуточных версий 2 участников)
Строка 1: Строка 1:
'''XPCOM''' ({{lang-en|Cross Platform Component Object Model}}, «кроссплатформенная объектная модель компонентов») — кроссплатформенная компонентно-ориентированная модель разработки ПО от [[Mozilla Foundation|Mozilla]]. Она схожа с [[CORBA]] и [[Microsoft]] [[Component Object Model|COM]]. XPCOM позволяет писать компоненты на различных языках: C++, JavaScript, Java, и др. Осуществляется это через слой абстракции [[XPConnect]], а интерфейсы классов берутся из бинарных библиотек типов ({{lang-en|typelib}}).
'''XPCOM''' ({{lang-en|Cross Platform Component Object Model}}, «кроссплатформенная объектная модель компонентов») — [[Кроссплатформенность|кроссплатформенная]] компонентно-ориентированная модель разработки ПО от [[Mozilla Foundation|Mozilla]]. Она схожа с [[CORBA]] и [[Microsoft]] [[Component Object Model|COM]]. XPCOM позволяет писать компоненты на различных языках: [[C++]], [[JavaScript]], [[Java]], и др. Осуществляется это через слой абстракции [[XPConnect]], а интерфейсы классов берутся из бинарных библиотек типов ({{lang-en|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 слишком часто использовался для внутренних интерфейсов там, где это не было действительно необходимо, что приводило к раздуванию программного обеспечения.<ref>{{cite web|url=https://arstechnica.com/information-technology/2004/06/collins-interview/2/|title=Ars Technica sits down with Scott Collins from Mozilla.org|author=Jorge O. Castro|date=2004-06-15|publisher=Ars Technica|access-date=2017-02-16|archive-date=2018-02-22|archive-url=https://web.archive.org/web/20180222104837/https://arstechnica.com/information-technology/2004/06/collins-interview/2/|url-status=live}}</ref> Это стало основной причиной того, что в 2001 году компания Apple использовала KHTML, а не Gecko, для создания движка WebKit для своего браузера Safari.<ref>{{cite web|url=http://news.cnet.com/2100-1023-980492.html|title=Apple snub stings Mozilla|author=Paul Festa|author-link=Paul Festa|date=2003-01-14|publisher=[[CNET Networks]]|archive-url=https://web.archive.org/web/20121025015655/http://news.cnet.com/2100-1023-980492.html|archive-date=2012-10-25|access-date=2017-02-16|url-status=dead}}</ref>

С тех пор компания Mozilla частично устранила раздутость XPCOM.<ref>{{cite web|url=https://wiki.mozilla.org/Gecko:DeCOMtamination|title=Gecko:DeCOMtamination|access-date=2023-11-24|archive-date=2021-03-29|archive-url=https://web.archive.org/web/20210329020549/https://wiki.mozilla.org/Gecko:DeCOMtamination|url-status=live}}</ref> К 2008 году в сочетании с другими усилиями это привело к значительному повышению производительности Gecko.<ref>{{cite web|url=https://arstechnica.com/information-technology/2008/09/mozilla-committed-to-gecko/|title=Why Mozilla is committed to Gecko as WebKit popularity grows|author=Ryan Paul|date=2008-09-09|access-date=2017-02-16|archive-date=2021-01-20|archive-url=https://web.archive.org/web/20210120145725/https://arstechnica.com/information-technology/2008/09/mozilla-committed-to-gecko/|url-status=live}}</ref>

== Примечания ==
<references />


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

Текущая версия от 06:11, 11 февраля 2024

XPCOM (англ. Cross Platform Component Object Model, «кроссплатформенная объектная модель компонентов») — кроссплатформенная компонентно-ориентированная модель разработки ПО от Mozilla. Она схожа с CORBA и Microsoft COM. 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 года.

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

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