Автор Гілка: Аналог COM в Linux  (Прочитано 7190 раз)

Відсутній Юрій Ткаченко

  • Дописувач
  • **
  • дописів: 60
  • Карма: +0/-0
Аналог COM в Linux
« : 2005-02-15 11:42:17 »
У мене сьогодні виникло запитання: а чи існує у Linux аналог технологій MS COM/OLE?
Колись давно я чув про якусь інтеграцію GNOME та CORBA, але якось цим не цікавився. А зараз стало цікаво (подумав, що замість інтерфейсів SWIG для різних мов програмування можна було б зробити один загальний). Хто що може про це сказати?

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 3820
  • Карма: +11/-0
  • Програміст
Re: Аналог COM в Linux
« Відповідей #1 : 2005-02-15 13:10:10 »
Є відразу три аналоги:
Gnome: Bonobo
Mozila: XPCOM
KDE: KParts

Але вони призначені лише для GUI.

Робити загальносистемний COM, CORBA чи RPC інтерфейс до всіх системних бібліотек мабуть немає сенсу - така реалізація буде значно повільніша (на практиці - в 5-10 раз) за реалізацію на прямих викликах.

Можливо легше стане, коли більше бібліотек портують на Яву - там такої проблеми нема, будь-який клас можна проаналізувати під час виконання.
[Fedora Linux]

Відсутній Yaroslav Fedevych

  • Літератор
  • ******
  • дописів: 1069
  • Карма: +0/-0
  • Людина — ніщо, справа — все
Re: Аналог COM в Linux
« Відповідей #2 : 2005-02-15 14:56:11 »
А чим воно функціонально краще за конвеєри?

Відсутній Анатолій Сахнік

  • Дописувач
  • **
  • дописів: 58
  • Карма: +0/-0
  • Що новенького?
Re: Аналог COM в Linux
« Відповідей #3 : 2005-02-15 15:55:46 »
Колись давно я чув про якусь інтеграцію GNOME та CORBA, але якось цим не цікавився.
Наскільки мені відомо, немає загальносистемної реалізації моделі об’єктних компонентів у Юнікс. Тим більше нічого не можна знайти про згадувану в MSDN "COM for unix". Проте є різні реалізації CORBA, найбільш цікавою з яких я вважаю ACE::TAO. До набору інструментів розробника Відкритого Офісу входить дуже розвинена бібліотека UNO (Universal Network Objects). Обидві названі мають спільну рису крім безкоштовності: переносність на різні платформи.
Життя — це диво!

Сергій Кудрик

  • Гість
Re: Аналог COM в Linux
« Відповідей #4 : 2005-02-16 20:11:56 »
У ближчому майбутьному KDE та GOME перейдуть
 на один IPC -   D-BUS.

http://www.freedesktop.org/wiki/Software_2fdbus


Відсутній Юрій Ткаченко

  • Дописувач
  • **
  • дописів: 60
  • Карма: +0/-0
Re: Аналог COM в Linux
« Відповідей #5 : 2005-02-21 13:23:14 »
Конкретизую питання.
Мені довелося займатися тривіальною для пострадянських часів задачею - підключення торгового обладнання до комп'ютера (з Windows, звичайно  :) ). Драйвер  я зробив у вигляді COM-об'єкта. Це дало змогу користуватися ним відразу і без проблем з MS Office, 1C...
Після цього я подумав: а як це могло б виглядати в Linux?
Схоже питання я знайшов тут:
http://slashdot.org/article.pl?sid=00/10/20/2259228&mode=thread
Але після цього вже пройшло багато часу. Думав, що можливо щось змінилося. Та схоже на те, що ні.
В принципі, SWIG - це зараз мабуть найкращий спосіб взаємодії скриптів з бібліотеками на C/C++ в Linux.

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 3820
  • Карма: +11/-0
  • Програміст
Re: Аналог COM в Linux
« Відповідей #6 : 2005-02-24 13:37:10 »
Конкретизую питання.
Мені довелося займатися тривіальною для пострадянських часів задачею - підключення торгового обладнання до комп'ютера (з Windows, звичайно  :) ). Драйвер  я зробив у вигляді COM-об'єкта. Це дало змогу користуватися ним відразу і без проблем з MS Office, 1C...
Після цього я подумав: а як це могло б виглядати в Linux?
Зараз у Лінуксу напевно треба робити бібліотеку на Сі та лакти чи плагіни до програм, які мали б її використовувати. :-(

Можливо з часом Ява (яка чудово компілюється gcc-кою і може бути зінтегрована напевно з будь-якою мовою) стане таким стандартом - тоді будь-яку скомпільовану gcc-кою явовську бібліотеку можна буде викликати напряму з інтерпретаторів приблизно так само як в JavaScript, JPython, etc.

Цитата
Схоже питання я знайшов тут:
http://slashdot.org/article.pl?sid=00/10/20/2259228&mode=thread
Але після цього вже пройшло багато часу. Думав, що можливо щось змінилося. Та схоже на те, що ні.
В принципі, SWIG - це зараз мабуть найкращий спосіб взаємодії скриптів з бібліотеками на C/C++ в Linux.
Напевно що так. Але коло інтерпретаторів, які підтримуються SWIG-ом, все ще обмежене.
[Fedora Linux]

Відсутній Юрій Ткаченко

  • Дописувач
  • **
  • дописів: 60
  • Карма: +0/-0
Re: Аналог COM в Linux
« Відповідей #7 : 2005-02-25 14:30:17 »

Можливо з часом Ява (яка чудово компілюється gcc-кою і може бути зінтегрована напевно з будь-якою мовою) стане таким стандартом - тоді будь-яку скомпільовану gcc-кою явовську бібліотеку можна буде викликати напряму з інтерпретаторів приблизно так само як в JavaScript, JPython, etc.

Яким чином? Через JNI? (я ніколи серйозно не працював з Java, тому цікаво)

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 3820
  • Карма: +11/-0
  • Програміст
Re: Аналог COM в Linux
« Відповідей #8 : 2005-02-28 20:41:39 »

Яким чином? Через JNI? (я ніколи серйозно не працював з Java, тому цікаво)

Напевно що. Доступ може бути і через Cygnus Native Interface - тобто програми на C++ будуть мати прямий досту, без врапання. Gcj може скомпілювати .jar-ку в .so-ку.

Скриптові оболнки використовуватимуть або JNI або CNI для доступу до якогось двигунця, який використовуватиме reflection для динамічного аналізу наявних бібліотек та класів та передання викликів з скриптової мови у явівські класи та навпаки та врапер для передачі складних об'єктів у обидві сторони (щоб викликана функція могла повертати та приймати не лише прості типи). Це не є складно, таких двигунців вже є багато (кожна скриптова мова на Яві має такий), їх просто треба використати.
[Fedora Linux]