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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

Из ваших двух слов я ничего не понял. Приведите, пожалуйста, содержательное описание, если это возможно.
...
Рейтинг: 0 / 0
22.09.2011, 02:55
    #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
22.09.2011, 08:01
    #37450990
boltachev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Просветите о методах взаимодействия приложений
Точка зрения на взаимодействие программ может быть с двух сторон:

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

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


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

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


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

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

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

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

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

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

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