powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Просветите о методах взаимодействия приложений
25 сообщений из 71, страница 1 из 3
Просветите о методах взаимодействия приложений
    #37449306
Fixin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В плане систематизации знаний хочу узнать, какие существуют методы взаимодействия приложений (повторного использования кода) в Windows, Linux. Интересуют именно интранет-взаимодействия, а не интернет, т.е. не веб-сервисы.

Я знаю такие:
1. COM-технологии - существуют только в Windows. Приложение запускается как объект, у которого доступны свойства и методы.
2. Командная строка - запуск EXE-файла с ключами. В некоторых случаях можно управлять уже запущенным приложением через командную строку, а в некоторых интересен просто результат выполнения.
3. DLL. Использование скомпилированных функций из DLL.
4. DDE - что-то похожее на COM и уже устаревшее, поэтому, скорее всего, не актуальное.

Чего я еще не знаю?
...
Рейтинг: 0 / 0
Просветите о методах взаимодействия приложений
    #37449329
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fixinкакие существуют методы взаимодействия приложений (повторного использования кода)

или трусы наденьте, или крестик снимите.
FixinИнтересуют именно интранет-взаимодействия, а не интернет, т.е. не веб-сервисы.
вебсервиы!= интернет, вполне себе могут крутьться на localhost.

Если речь о взаимодействии процессов - добавьте CORBA, разделяемую память, именованые и неименованые каналы
...
Рейтинг: 0 / 0
Просветите о методах взаимодействия приложений
    #37449352
Fixin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилFixinкакие существуют методы взаимодействия приложений (повторного использования кода)

или трусы наденьте, или крестик снимите.
FixinИнтересуют именно интранет-взаимодействия, а не интернет, т.е. не веб-сервисы.
вебсервиы!= интернет, вполне себе могут крутьться на localhost.

Если речь о взаимодействии процессов - добавьте CORBA, разделяемую память, именованые и неименованые каналы

Я потому и просил исключить веб, что для поднятие веб-сервера нужно много телодвижений сделать. А вот запустить приложение из командной строки - ЛЕГКО!

Видимо, CORBA, разделяемая память и каналы из этой же сложной оперы.
...
Рейтинг: 0 / 0
Просветите о методах взаимодействия приложений
    #37449356
Fixin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я вижу такой идеальный метод для локального компьютера - зная, где находится EXE-файл приложения, вызываю его и он мне дает в виде объекта с свойствами и методами доступ к своему функционалу. Как называется такая технология?
...
Рейтинг: 0 / 0
Просветите о методах взаимодействия приложений
    #37449391
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FixinЯ вижу такой идеальный метод для локального компьютера - зная, где находится EXE-файл приложения, вызываю его и он мне дает в виде объекта с свойствами и методами доступ к своему функционалу. Как называется такая технология?

До идеала - далеко, COM подойдёт для реализации.
...
Рейтинг: 0 / 0
Просветите о методах взаимодействия приложений
    #37449557
авторh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилFixinкакие существуют методы взаимодействия приложений (повторного использования кода)

или трусы наденьте, или крестик снимите.
FixinИнтересуют именно интранет-взаимодействия, а не интернет, т.е. не веб-сервисы.
вебсервиы!= интернет, вполне себе могут крутьться на localhost.

Если речь о взаимодействии процессов - добавьте CORBA, разделяемую память, именованые и неименованые каналы
А также dbus и dcop. На линуксах вроде dbus сейчас постепенно заменяет bonobo и dcop.

Я через D-Bus мигрировал сотни торрентов с vuze в ktorrent, добавлял в него группы и торренты в группы через python'овскую dbus либу, больших неудобств не было.

Возвращать поддерживаемые методы и свойства DBus умеет (introspection)
...
Рейтинг: 0 / 0
Просветите о методах взаимодействия приложений
    #37449813
Fixin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилДо идеала - далеко, COM подойдёт для реализации.
Ну COM в эту схему добавляет только поиск исполнимого кода через реестр и некий стандарт на объявление методов и свойств.
А под "далеко" вы что подразумеваете? Что стандарты будут выработаны еще не скоро?

авторhВозвращать поддерживаемые методы и свойства DBus умеет (introspection)
У меня к вам просьба. Вот смотрите.
Технология COM позволяет зарегистрировать в реестре Windows некую библиотеку, после чего можно создавать по символическому имени объект, который будет иметь свойства и методы, а их реализация будет содержаться в этой библиотеке. Функционал библиотеки - это как раз функционал приложения, таких как текстовые редакторы, браузеры и т.п.

Можете так же кратко объяснить чайнику, что такое DBUS?
...
Рейтинг: 0 / 0
Просветите о методах взаимодействия приложений
    #37450379
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fixin...Технология COM позволяет зарегистрировать в реестре Windows...

ерунду несёте.
реестр и COM технология - две разные вещи. Рекомендую прочитать "основы COM" - есть такая популярная книга. в начале книги дано определение что такое COM - почитайте на досуге, не поленитесь. реестра там в помине нет. так что учите матч часть для начала...

или по другому...
технология на то и технология чтоб пофигу где быть реализованной.

удачи вам
(круглый)
...
Рейтинг: 0 / 0
Просветите о методах взаимодействия приложений
    #37450440
Fixin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kolobok0Fixin...Технология COM позволяет зарегистрировать в реестре Windows...

ерунду несёте.
реестр и COM технология - две разные вещи. Рекомендую прочитать "основы COM" - есть такая популярная книга. в начале книги дано определение что такое COM - почитайте на досуге, не поленитесь. реестра там в помине нет. так что учите матч часть для начала...


Любую технологию можно объяснить в двух словах. Если я неправ в деталях, это мелочи. Главное - суть. По сути что я не так описал в COM? По крайней мере часть COM, мне знакомую я описал правильно и так, чтобы любой, кто не работал с COM мог понять, что это такое.

Был бы благодарен за подобное же объяснение в двух предложениях сути DBUS.

Мне не нужно читать подробности, я хочу понимать "в общем виде".
...
Рейтинг: 0 / 0
Просветите о методах взаимодействия приложений
    #37450638
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FixinМне не нужно читать подробности, я хочу понимать "в общем виде".
В двух словах это можно назвать "Удалённый вызов процедур", RPC
...
Рейтинг: 0 / 0
Просветите о методах взаимодействия приложений
    #37450816
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не ограничивайте себя, изобретайте новые методы http://www.sql.ru/forum/actualthread.aspx?tid=882269
...
Рейтинг: 0 / 0
Просветите о методах взаимодействия приложений
    #37450897
Fixin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилFixinМне не нужно читать подробности, я хочу понимать "в общем виде".
В двух словах это можно назвать "Удалённый вызов процедур", RPC

Из ваших двух слов я ничего не понял. Приведите, пожалуйста, содержательное описание, если это возможно.
...
Рейтинг: 0 / 0
Просветите о методах взаимодействия приложений
    #37450940
Пётр Седов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Изопропил:
ИзопропилЕсли речь о взаимодействии процессов - добавьте CORBA, разделяемую память, именованые и неименованые каналы
+ виндовое оконное сообщение WM_COPYDATA -- очень простой способ меж-процессного взаимодействия. Работает медленнее тех же pipe-ов, но для многих задач сойдёт.

2 Fixin:

FixinЯ вижу такой идеальный метод для локального компьютера - зная, где находится EXE-файл приложения, вызываю его и он мне дает в виде объекта с свойствами и методами доступ к своему функционалу. Как называется такая технология?
Microsoft Automation. Основана на COM. Расположение .exe-файла знать не надо, вместо этого надо знать ProgId, например "Excel.Application".

Но если хочется, чтобы единственный бинарник "раздавал функциональность" всем желающим процессам на компьютере, то я бы скорее всего не стал заморачиваться с COM, а просто скомпилировал бы .dll-файл, выставляющий наружу C-шный API, и положил бы этот .dll-файл "на видное место", то есть в каталог, упомянутый в PATH (environment variable).

FixinПриведите, пожалуйста, содержательное описание, если это возможно.
Статья в Wikipedia сойдёт за содержательное описание?

2 kolobok0:
kolobok0реестр и COM технология - две разные вещи.
Использование COM-интерфейсов без реестра -- очень редкое явление. Единственный пример, который я знаю, -- это DirectX. Входящие в него API (например, Direct3D 9) сделаны как набор COM-интерфейсов, но реально DirectX не имеет отношения к COM-компонентам, даже функцию CoInitialize вызывать не надо.

2 netwind:
netwindне ограничивайте себя, изобретайте новые методы http://www.sql.ru/forum/actualthread.aspx?tid=882269
Меж-процессное взаимодействие через реестр, конечно, имеет право на жизнь (изменения, вносимые одним процессом, сразу же становятся видны остальным процессам), но я бы так делать не стал. Реестр -- он же для хранения настроек.
...
Рейтинг: 0 / 0
Просветите о методах взаимодействия приложений
    #37450990
boltachev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Точка зрения на взаимодействие программ может быть с двух сторон:

-я хочу пользоваться функционалом существующей программы;
-я хочу предоставить интерфейс к моей программе для других разработчиков.

Существующие программы зачастую не имеют интерфейса, даже наоборот, разработчик как будто пытается затруднить управление
с помощью эмуляции нажатия клавиш (вот, кстати, ещё технология, но она слаба, так как фокус в любой момент можно потерять)
В качестве примера такой программы: SMS-MMS-Desktop-Client-1.3.1.2-RU.exe


В реестр я бы вообще ничего не писал. Положи программу на флешку, да гоняй на любом компе, где есть интернет. А так приходится использовать удаленный рабочий стол, портирование приложений или виртуальные машины.

Так что, мне кажется, хорошо иметь .exe, рядом с ним .ini и .dll с описанием функций.
...
Рейтинг: 0 / 0
Просветите о методах взаимодействия приложений
    #37451037
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FixinВидимо, CORBA, разделяемая память и каналы из этой же сложной оперы.
Fixin такой фиксин. Если он в чем то не бум-бум, то считает что это не нужные технологии
...
Рейтинг: 0 / 0
Просветите о методах взаимодействия приложений
    #37451386
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пётр Седов...Использование COM-интерфейсов без реестра -- очень редкое явление. Единственный пример, который я знаю, -- это DirectX.....


для тех кто в танке...
1) речь шла не о явлениях. а о технологиях.
2) заявлялось равенство между реестром и COM

что Вам не понятно?
ышо раз..
OLE, реестр и прочии надстройки над технологией COM есть чисто форточные изобретения и носит отпечаток среды где это юзается. COM можно юзать где угодно где есть понятие бинарник. COM накрывает свои описанием способ динамического взаимодействия, описывая интерфейсный примитив.

(круглый)
ЗЫ
Меня поражает не умение людей видеть плюсы и обходить минусы в той или другой найденной инфе по жизни. COM это сама по себе замечательная технология и если есть потребность(по задаче) такая гибкость - то глупо её не юзать.
...
Рейтинг: 0 / 0
Просветите о методах взаимодействия приложений
    #37451606
Fixin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kolobok0[
OLE, реестр и прочии надстройки над технологией COM есть чисто форточные изобретения и носит отпечаток среды где это юзается. COM можно юзать где угодно где есть понятие бинарник. COM накрывает свои описанием способ динамического взаимодействия, описывая интерфейсный примитив.

Мы обсуждаем больше практические вещи, чем теоретические.
Где на практике используется COM, кроме OLE? Буду благодарен вам за информацию.
Я знак равенства не ставил, я описывал известную мне реализацию COM
...
Рейтинг: 0 / 0
Просветите о методах взаимодействия приложений
    #37451617
Fixin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пётр Седов Статья в Wikipedia сойдёт за содержательное описание?

Я просил такое описание, которое вкратче излагает суть или ваш личный опыт. Я не поленился и описал OLE-технологию в винде понятным языком, всего 2 предложения. Вы можете кратно, в двух предложениях, лаконично аннотировать статью из Вики? Я почитал и ничего не понял.
...
Рейтинг: 0 / 0
Просветите о методах взаимодействия приложений
    #37451620
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для Windows - должен быть DCOM. С CORBA - не знаком но те кто имели дело говорят - шибко сложная для начинания. Советуют выбрать любую другую альтернативу. Для .Net соответственно есть боле удобный Remouting.

Для *nix - модной фрондой должен быть D-Bus (хотя тоже не знаком).
...
Рейтинг: 0 / 0
Просветите о методах взаимодействия приложений
    #37451648
Fixin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То бишь, резюмируя, если разработчик хочет обеспечить доступ к функциональности своего приложения, самый простой способ - он должен сделать DLL, которую можно вызывать. Но тут возникает вопрос - а как управлять уже запущенным приложением.
Как разработчик должен в этой DLL описать обращение к уще запущенному приложению, если он хочет обеспечить такую возможность?
...
Рейтинг: 0 / 0
Просветите о методах взаимодействия приложений
    #37451652
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Читай про COM-серверы.
...
Рейтинг: 0 / 0
Просветите о методах взаимодействия приложений
    #37451672
Fixin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonЧитай про COM-серверы.
Ответ ни о чем. Вы же понимаете, что я не знаю, с чего начать читать и что именно читать.
Можно своими словами?
...
Рейтинг: 0 / 0
Просветите о методах взаимодействия приложений
    #37451742
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FixinmaytonЧитай про COM-серверы.
Ответ ни о чем. Вы же понимаете, что я не знаю, с чего начать читать и что именно читать.
Можно своими словами?
Замкнутый круг получается. Ты не знаешь с чего начать. И хочешь
сразу всё.

Ну вобщем такая телега: есть низкоуровневые механизмы
IPC (InterProcess communication). Это shared memory, и объекты
мультизадачности (всякие там мьютексы, атомарные счётчики и прочее).
Отдельной категорией стоят Pipes. Каналы между процессами.
Можно еще почитать про сокеты, и memory-mapped files хотя и не обязательно.
Начни читать с этого если хочешь. Если не хочешь - читай сразу
по архитектуре COM серверов. Дальше советы давать безсмысленно
т.к. твоё задание нам неведомо и соотв. непонятно что
добавлять к концепциям.
...
Рейтинг: 0 / 0
Просветите о методах взаимодействия приложений
    #37451748
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quote Fixin Я не поленился и описал OLE-технологию в винде понятным языком, всего 2 предложения. [/quote]
Вам это не удалось(ни понять технологию, ни описать)
...
Рейтинг: 0 / 0
Просветите о методах взаимодействия приложений
    #37454525
Fixin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилВам это не удалось(ни понять технологию, ни описать)
Ваше имхо против моего. Я считаю, что понял и описал адекватно, по крайней мере то, что щупал на практике. МОжете указать на ошибки, если хотите чего то доказать.

Возник практический вопрос.
Я хочу заказать программно управляемый браузер http://www.sql.ru/forum/actualthread.aspx?tid=661125&pg=5

Хочу управлять им из консоли.
Т.е. в памяти будет сидеть процесс PCB.EXE, а когда я буду запускать PCB.EXE с параметрами, этот второй процесс будет подключаться к первому и возвращать данные о состоянии или управлять первым процессом.

Вопрос - как по-другому можно сделать управление.
Из всех механизмов интеграции в 1С есть только COM и командная строка.

Можно создать еще HTTPRequest, если приложение будет способно отвечать на запросы на заданный порт. Но браузер будет портабельным, т.е. никаких изменений в системе, пока не работает, делать не будет.

Итак, какой самый простой, быстрый и незатратный способ взаимодействия можно изобразить в данном случае? Чтобы добавить конкретики.
...
Рейтинг: 0 / 0
25 сообщений из 71, страница 1 из 3
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Просветите о методах взаимодействия приложений
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]