|
|
|
Просветите о методах взаимодействия приложений
|
|||
|---|---|---|---|
|
#18+
В плане систематизации знаний хочу узнать, какие существуют методы взаимодействия приложений (повторного использования кода) в Windows, Linux. Интересуют именно интранет-взаимодействия, а не интернет, т.е. не веб-сервисы. Я знаю такие: 1. COM-технологии - существуют только в Windows. Приложение запускается как объект, у которого доступны свойства и методы. 2. Командная строка - запуск EXE-файла с ключами. В некоторых случаях можно управлять уже запущенным приложением через командную строку, а в некоторых интересен просто результат выполнения. 3. DLL. Использование скомпилированных функций из DLL. 4. DDE - что-то похожее на COM и уже устаревшее, поэтому, скорее всего, не актуальное. Чего я еще не знаю? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2011, 10:48 |
|
||
|
Просветите о методах взаимодействия приложений
|
|||
|---|---|---|---|
|
#18+
Fixinкакие существуют методы взаимодействия приложений (повторного использования кода) или трусы наденьте, или крестик снимите. FixinИнтересуют именно интранет-взаимодействия, а не интернет, т.е. не веб-сервисы. вебсервиы!= интернет, вполне себе могут крутьться на localhost. Если речь о взаимодействии процессов - добавьте CORBA, разделяемую память, именованые и неименованые каналы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2011, 11:00 |
|
||
|
Просветите о методах взаимодействия приложений
|
|||
|---|---|---|---|
|
#18+
ИзопропилFixinкакие существуют методы взаимодействия приложений (повторного использования кода) или трусы наденьте, или крестик снимите. FixinИнтересуют именно интранет-взаимодействия, а не интернет, т.е. не веб-сервисы. вебсервиы!= интернет, вполне себе могут крутьться на localhost. Если речь о взаимодействии процессов - добавьте CORBA, разделяемую память, именованые и неименованые каналы Я потому и просил исключить веб, что для поднятие веб-сервера нужно много телодвижений сделать. А вот запустить приложение из командной строки - ЛЕГКО! Видимо, CORBA, разделяемая память и каналы из этой же сложной оперы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2011, 11:07 |
|
||
|
Просветите о методах взаимодействия приложений
|
|||
|---|---|---|---|
|
#18+
Я вижу такой идеальный метод для локального компьютера - зная, где находится EXE-файл приложения, вызываю его и он мне дает в виде объекта с свойствами и методами доступ к своему функционалу. Как называется такая технология? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2011, 11:08 |
|
||
|
Просветите о методах взаимодействия приложений
|
|||
|---|---|---|---|
|
#18+
FixinЯ вижу такой идеальный метод для локального компьютера - зная, где находится EXE-файл приложения, вызываю его и он мне дает в виде объекта с свойствами и методами доступ к своему функционалу. Как называется такая технология? До идеала - далеко, COM подойдёт для реализации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2011, 11:32 |
|
||
|
Просветите о методах взаимодействия приложений
|
|||
|---|---|---|---|
|
#18+
ИзопропилFixinкакие существуют методы взаимодействия приложений (повторного использования кода) или трусы наденьте, или крестик снимите. FixinИнтересуют именно интранет-взаимодействия, а не интернет, т.е. не веб-сервисы. вебсервиы!= интернет, вполне себе могут крутьться на localhost. Если речь о взаимодействии процессов - добавьте CORBA, разделяемую память, именованые и неименованые каналы А также dbus и dcop. На линуксах вроде dbus сейчас постепенно заменяет bonobo и dcop. Я через D-Bus мигрировал сотни торрентов с vuze в ktorrent, добавлял в него группы и торренты в группы через python'овскую dbus либу, больших неудобств не было. Возвращать поддерживаемые методы и свойства DBus умеет (introspection) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2011, 12:32 |
|
||
|
Просветите о методах взаимодействия приложений
|
|||
|---|---|---|---|
|
#18+
ИзопропилДо идеала - далеко, COM подойдёт для реализации. Ну COM в эту схему добавляет только поиск исполнимого кода через реестр и некий стандарт на объявление методов и свойств. А под "далеко" вы что подразумеваете? Что стандарты будут выработаны еще не скоро? авторhВозвращать поддерживаемые методы и свойства DBus умеет (introspection) У меня к вам просьба. Вот смотрите. Технология COM позволяет зарегистрировать в реестре Windows некую библиотеку, после чего можно создавать по символическому имени объект, который будет иметь свойства и методы, а их реализация будет содержаться в этой библиотеке. Функционал библиотеки - это как раз функционал приложения, таких как текстовые редакторы, браузеры и т.п. Можете так же кратко объяснить чайнику, что такое DBUS? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2011, 13:58 |
|
||
|
Просветите о методах взаимодействия приложений
|
|||
|---|---|---|---|
|
#18+
Fixin...Технология COM позволяет зарегистрировать в реестре Windows... ерунду несёте. реестр и COM технология - две разные вещи. Рекомендую прочитать "основы COM" - есть такая популярная книга. в начале книги дано определение что такое COM - почитайте на досуге, не поленитесь. реестра там в помине нет. так что учите матч часть для начала... или по другому... технология на то и технология чтоб пофигу где быть реализованной. удачи вам (круглый) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2011, 17:44 |
|
||
|
Просветите о методах взаимодействия приложений
|
|||
|---|---|---|---|
|
#18+
kolobok0Fixin...Технология COM позволяет зарегистрировать в реестре Windows... ерунду несёте. реестр и COM технология - две разные вещи. Рекомендую прочитать "основы COM" - есть такая популярная книга. в начале книги дано определение что такое COM - почитайте на досуге, не поленитесь. реестра там в помине нет. так что учите матч часть для начала... Любую технологию можно объяснить в двух словах. Если я неправ в деталях, это мелочи. Главное - суть. По сути что я не так описал в COM? По крайней мере часть COM, мне знакомую я описал правильно и так, чтобы любой, кто не работал с COM мог понять, что это такое. Был бы благодарен за подобное же объяснение в двух предложениях сути DBUS. Мне не нужно читать подробности, я хочу понимать "в общем виде". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2011, 18:17 |
|
||
|
Просветите о методах взаимодействия приложений
|
|||
|---|---|---|---|
|
#18+
FixinМне не нужно читать подробности, я хочу понимать "в общем виде". В двух словах это можно назвать "Удалённый вызов процедур", RPC ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2011, 20:43 |
|
||
|
Просветите о методах взаимодействия приложений
|
|||
|---|---|---|---|
|
#18+
не ограничивайте себя, изобретайте новые методы http://www.sql.ru/forum/actualthread.aspx?tid=882269 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2011, 23:11 |
|
||
|
Просветите о методах взаимодействия приложений
|
|||
|---|---|---|---|
|
#18+
ИзопропилFixinМне не нужно читать подробности, я хочу понимать "в общем виде". В двух словах это можно назвать "Удалённый вызов процедур", RPC Из ваших двух слов я ничего не понял. Приведите, пожалуйста, содержательное описание, если это возможно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2011, 01:03 |
|
||
|
Просветите о методах взаимодействия приложений
|
|||
|---|---|---|---|
|
#18+
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 Меж-процессное взаимодействие через реестр, конечно, имеет право на жизнь (изменения, вносимые одним процессом, сразу же становятся видны остальным процессам), но я бы так делать не стал. Реестр -- он же для хранения настроек. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2011, 02:55 |
|
||
|
Просветите о методах взаимодействия приложений
|
|||
|---|---|---|---|
|
#18+
Точка зрения на взаимодействие программ может быть с двух сторон: -я хочу пользоваться функционалом существующей программы; -я хочу предоставить интерфейс к моей программе для других разработчиков. Существующие программы зачастую не имеют интерфейса, даже наоборот, разработчик как будто пытается затруднить управление с помощью эмуляции нажатия клавиш (вот, кстати, ещё технология, но она слаба, так как фокус в любой момент можно потерять) В качестве примера такой программы: SMS-MMS-Desktop-Client-1.3.1.2-RU.exe В реестр я бы вообще ничего не писал. Положи программу на флешку, да гоняй на любом компе, где есть интернет. А так приходится использовать удаленный рабочий стол, портирование приложений или виртуальные машины. Так что, мне кажется, хорошо иметь .exe, рядом с ним .ini и .dll с описанием функций. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2011, 08:01 |
|
||
|
Просветите о методах взаимодействия приложений
|
|||
|---|---|---|---|
|
#18+
FixinВидимо, CORBA, разделяемая память и каналы из этой же сложной оперы. Fixin такой фиксин. Если он в чем то не бум-бум, то считает что это не нужные технологии ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2011, 09:25 |
|
||
|
Просветите о методах взаимодействия приложений
|
|||
|---|---|---|---|
|
#18+
Пётр Седов...Использование COM-интерфейсов без реестра -- очень редкое явление. Единственный пример, который я знаю, -- это DirectX..... для тех кто в танке... 1) речь шла не о явлениях. а о технологиях. 2) заявлялось равенство между реестром и COM что Вам не понятно? ышо раз.. OLE, реестр и прочии надстройки над технологией COM есть чисто форточные изобретения и носит отпечаток среды где это юзается. COM можно юзать где угодно где есть понятие бинарник. COM накрывает свои описанием способ динамического взаимодействия, описывая интерфейсный примитив. (круглый) ЗЫ Меня поражает не умение людей видеть плюсы и обходить минусы в той или другой найденной инфе по жизни. COM это сама по себе замечательная технология и если есть потребность(по задаче) такая гибкость - то глупо её не юзать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2011, 12:03 |
|
||
|
Просветите о методах взаимодействия приложений
|
|||
|---|---|---|---|
|
#18+
kolobok0[ OLE, реестр и прочии надстройки над технологией COM есть чисто форточные изобретения и носит отпечаток среды где это юзается. COM можно юзать где угодно где есть понятие бинарник. COM накрывает свои описанием способ динамического взаимодействия, описывая интерфейсный примитив. Мы обсуждаем больше практические вещи, чем теоретические. Где на практике используется COM, кроме OLE? Буду благодарен вам за информацию. Я знак равенства не ставил, я описывал известную мне реализацию COM ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2011, 13:38 |
|
||
|
Просветите о методах взаимодействия приложений
|
|||
|---|---|---|---|
|
#18+
Пётр Седов Статья в Wikipedia сойдёт за содержательное описание? Я просил такое описание, которое вкратче излагает суть или ваш личный опыт. Я не поленился и описал OLE-технологию в винде понятным языком, всего 2 предложения. Вы можете кратно, в двух предложениях, лаконично аннотировать статью из Вики? Я почитал и ничего не понял. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2011, 13:41 |
|
||
|
Просветите о методах взаимодействия приложений
|
|||
|---|---|---|---|
|
#18+
Для Windows - должен быть DCOM. С CORBA - не знаком но те кто имели дело говорят - шибко сложная для начинания. Советуют выбрать любую другую альтернативу. Для .Net соответственно есть боле удобный Remouting. Для *nix - модной фрондой должен быть D-Bus (хотя тоже не знаком). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2011, 13:42 |
|
||
|
Просветите о методах взаимодействия приложений
|
|||
|---|---|---|---|
|
#18+
То бишь, резюмируя, если разработчик хочет обеспечить доступ к функциональности своего приложения, самый простой способ - он должен сделать DLL, которую можно вызывать. Но тут возникает вопрос - а как управлять уже запущенным приложением. Как разработчик должен в этой DLL описать обращение к уще запущенному приложению, если он хочет обеспечить такую возможность? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2011, 13:57 |
|
||
|
Просветите о методах взаимодействия приложений
|
|||
|---|---|---|---|
|
#18+
Читай про COM-серверы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2011, 13:59 |
|
||
|
Просветите о методах взаимодействия приложений
|
|||
|---|---|---|---|
|
#18+
maytonЧитай про COM-серверы. Ответ ни о чем. Вы же понимаете, что я не знаю, с чего начать читать и что именно читать. Можно своими словами? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2011, 14:08 |
|
||
|
Просветите о методах взаимодействия приложений
|
|||
|---|---|---|---|
|
#18+
FixinmaytonЧитай про COM-серверы. Ответ ни о чем. Вы же понимаете, что я не знаю, с чего начать читать и что именно читать. Можно своими словами? Замкнутый круг получается. Ты не знаешь с чего начать. И хочешь сразу всё. Ну вобщем такая телега: есть низкоуровневые механизмы IPC (InterProcess communication). Это shared memory, и объекты мультизадачности (всякие там мьютексы, атомарные счётчики и прочее). Отдельной категорией стоят Pipes. Каналы между процессами. Можно еще почитать про сокеты, и memory-mapped files хотя и не обязательно. Начни читать с этого если хочешь. Если не хочешь - читай сразу по архитектуре COM серверов. Дальше советы давать безсмысленно т.к. твоё задание нам неведомо и соотв. непонятно что добавлять к концепциям. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2011, 14:43 |
|
||
|
Просветите о методах взаимодействия приложений
|
|||
|---|---|---|---|
|
#18+
[quote Fixin Я не поленился и описал OLE-технологию в винде понятным языком, всего 2 предложения. [/quote] Вам это не удалось(ни понять технологию, ни описать) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2011, 14:45 |
|
||
|
Просветите о методах взаимодействия приложений
|
|||
|---|---|---|---|
|
#18+
ИзопропилВам это не удалось(ни понять технологию, ни описать) Ваше имхо против моего. Я считаю, что понял и описал адекватно, по крайней мере то, что щупал на практике. МОжете указать на ошибки, если хотите чего то доказать. Возник практический вопрос. Я хочу заказать программно управляемый браузер http://www.sql.ru/forum/actualthread.aspx?tid=661125&pg=5 Хочу управлять им из консоли. Т.е. в памяти будет сидеть процесс PCB.EXE, а когда я буду запускать PCB.EXE с параметрами, этот второй процесс будет подключаться к первому и возвращать данные о состоянии или управлять первым процессом. Вопрос - как по-другому можно сделать управление. Из всех механизмов интеграции в 1С есть только COM и командная строка. Можно создать еще HTTPRequest, если приложение будет способно отвечать на запросы на заданный порт. Но браузер будет портабельным, т.е. никаких изменений в системе, пока не работает, делать не будет. Итак, какой самый простой, быстрый и незатратный способ взаимодействия можно изобразить в данном случае? Чтобы добавить конкретики. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2011, 23:37 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=37450379&tid=1342687]: |
0ms |
get settings: |
6ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
156ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
62ms |
get tp. blocked users: |
1ms |
| others: | 211ms |
| total: | 471ms |

| 0 / 0 |
