Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Общие вопросы: взаимодействие между приложениями 
:(
    Опции темы
AlexLF
Дата 23.4.2014, 13:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 23.4.2014

Репутация: нет
Всего: нет



Вопросы на понимание к уважаемой публике по взаимодействию между приложениями (я понимаю в php и JavaScript, но не в десктопных приложениях). Мне это нужно для заявки на патент и моего проекта. 



Допустим, мы делаем приложение "Антивирус" (1 на рисунке), которое проверяет файлы на диске. Файлы для анализа ему указывает (стрелка 3) другие приложения. Например и в частности, приложение "Редактор" (2).

Вопрос 1. Как можно реализовать доставку пути к файлу, которое передается от приложения "Редактор" к приложению "Антивирус".

Для веб-приложений, это я знаю в теории, взаимодействие между программами происходит через порты. Как обстоят дела и как это формулируется (в грамотных выражениях) для десктопных приложений? Слово API я слышал, но никогда сам не применял. "Приложение "Антивирус" предоставляет API сторонним приложениям …" – или как это называется правильными словами.


Далее. "Антивирус" может работать с самыми разными приложениями. И не всем им можно доверять. Я полагаю, что можно сделать область (область 4, выделенная пунктиром), которая находится под управлением "Антивируса". Там находятся кнопки "Проверить" и результаты проверки. 

Вопрос 2. Можно ли сделать так, что "Редактор" не будет знать, что находится в окошке, которое контролируется "Антивирусом"?

Вопрос 3. Можно ли сделать так, что область, выделенная пунктиром, будет перемещаться, при перемещении окна "Редактора" (мышкой), сворачиваться по крестику и правильно перекрываться другими окнами. Пользователь вообще не должен догадываться, что эта область находится под контролем "Антивируса". (В HTML это бы называлось iframe.) 


Далее. Результаты анализа (результаты проверки на вирусы) могут храниться в хранилище данных "Антивируса" (5 на рисунке). (Чтобы не проверять файлы на вирусы каждый раз.) Например: хеш файла такой-то – вирусов нет. Эти результаты также являются приватными.

Вопрос 4: где существуют места на жестком диске, где приложение "Антивирус" может устроить свое хранилище, так, чтобы оно было защищено от доступа других приложений? Предполагаю из общих, что на диск С: (где установлена система) или C:/User должны быть регламентированы права доступа приложений. Или как обстоят дела с доступом вообще? 

Вопрос 5: Надо ли шифровать данные в хранилище? – чтобы другие приложения не могли прочитать.

Вопрос 6: Могут ли сторонние приложения прочитать результаты анализа, которые сейчас находятся в оперативной памяти "Антивируса"?


Присоединённый файл ( Кол-во скачиваний: 15 )
Присоединённый файл  Снимок___копия__png_.PNG 810,19 Kb
PM MAIL   Вверх
tzirechnoy
Дата 24.4.2014, 01:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1173
Регистрация: 30.1.2009

Репутация: 2
Всего: 16



По-моему, зря Вы конкретно в "Антивирус" полезли. Криптозащита и защита от НСД -- это две области, принцыпиально не жалующие новичков.


Цитата
"Приложение "Антивирус" предоставляет API сторонним приложениям …" – или как это называется правильными словами.


Ну да, если это именно API (интэрфейс, описанный в терминах какого-то языка программирования) -- то так и называется. Типичное API описано либо на языке Си (файлы .h и библиотеки .dll), либо, под виндами -- в виде COM-интэрфейса.
Прежде чем писать своё -- имеет прямой смысл попробовать написать что-то под подобные библиотеки, чтобы посмотреть, как оно у людей делается.
Начать советую с Си, как минимум, потому, что он более портируем, чем COM.

Впрочем, кроме API можно предоставлять и протокол доступа. Такая вещь, на самом деле, должна быть знакома дажэ php-программисту. Указываешь каким-нибудь способом  метод соединения (например, tcp/ip-сокет или, например, под виндой -- named pipe с фиксированным именем), открываешь его в антивирусе и в приложэнии -- вот и получил двунаправленную трубу, по которой можно передавать какие-то данные. Определить для них протокол (как веб-программисту тебе будет проще взять для начала что-то вроде json-rpc), и по нему -- гонять все данные.


Цитата
Вопрос 2. Можно ли сделать так, что "Редактор" не будет знать, что находится в окошке, которое контролируется "Антивирусом"?


Как-то -- вроде можно. Но ненадолго, т.е. временно только перехватив на себя весь рабочий стол. Посмотри, как это сделали в UAC.

Цитата
Вопрос 3. Можно ли сделать так, что область, выделенная пунктиром, будет перемещаться, при перемещении окна "Редактора" (мышкой), сворачиваться по крестику и правильно перекрываться другими окнами. Пользователь вообще не должен догадываться, что эта область находится под контролем "Антивируса". (В HTML это бы называлось iframe.) 


Вместе с 2) -- скорее всего, нет.

Цитата
Вопрос 4: где существуют места на жестком диске, где приложение "Антивирус" может устроить свое хранилище, так, чтобы оно было защищено от доступа других приложений? Предполагаю из общих, что на диск С: (где установлена система) или C:/User должны быть регламентированы права доступа приложений. Или как обстоят дела с доступом вообще? 


Начни, пожалуй, отсюда http://msdn.microsoft.com/en-us/library/wi...0(v=vs.85).aspx
Хотя это всё, конечно, как вводная никуда не годится. Не могу придумать сейчас ничего сильно лучшэ.

Цитата
Вопрос 5: Надо ли шифровать данные в хранилище? – чтобы другие приложения не могли прочитать.


Это несущественно на этом уровне.

Цитата
Вопрос 6: Могут ли сторонние приложения прочитать результаты анализа, которые сейчас находятся в оперативной памяти "Антивируса"?


Да. Но, если ты правильно врубился в 4) -- то не любые приложэния.







PM MAIL   Вверх
AlexLF
Дата 24.4.2014, 16:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 23.4.2014

Репутация: нет
Всего: нет



Спасибо за комменты, переварю - может быть напишу сюда, как понял.

Цитата

По-моему, зря Вы конкретно в "Антивирус" полезли. Криптозащита и защита от НСД -- это две области, принцыпиально не жалующие новичков.

"Антивирус" - не антивирус, и "Редактор" - не редактор. Я занимаюсь заявкой на изобретение и программировать на С не собираюсь. Это будут делать программисты, мне нужно понять сейчас, что возможно, что нет.
PM MAIL   Вверх
xvr
Дата 25.4.2014, 12:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 60
Всего: 223



Цитата(AlexLF @  24.4.2014,  16:35 Найти цитируемый пост)
Я занимаюсь заявкой на изобретение

Судя по вашей картинке и вопросам изобрели вы велосипед  smile 

Ответы на ваши вопросы сильно зависят от 2х других вопросов -
  • Знает ли "Редактор" об "Антивирусе", т.е. имеется ли в его (редактора) коде явное взаимодействие с антивирусом
  • Доверяет ли "Антивирус" "Редактору"? Т.е. не будет ли "Редактор" предпренимать активных попыток изучить то, что ему предоставляет "Антивирус"?
Если ответы на об вопроса - да, то пункты 1-3 реализуются технологией ActiveX Controls.

Ответы на вопросы 4-6 зависят от степени пароноидальности "Антивируса"


PM MAIL   Вверх
AlexLF
Дата 26.4.2014, 16:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 23.4.2014

Репутация: нет
Всего: нет



Цитата

Ответы на ваши вопросы сильно зависят от 2х других вопросов -

Знает ли "Редактор" об "Антивирусе", т.е. имеется ли в его (редактора) коде явное взаимодействие с антивирусом
Доверяет ли "Антивирус" "Редактору"? Т.е. не будет ли "Редактор" предпренимать активных попыток изучить то, что ему предоставляет "Антивирус"?


Да, "Антивирус" о "Редакторе" знает. Наверно, "Редактору" сообщен какой-либо секретный номер, по котором он обращается к "Антивирусу". Чтобы не каждое приложение могло обращаться. И, пожалуй что, программисты "Редактора" предупреждены, что не стоит читать содержимое пунктирной области. Иначе их исключат из программы.

Цитата

Если ответы на об вопроса - да, то пункты 1-3 реализуются технологией ActiveX Controls.

Не очень понятно. Судя по Википедии, ActiveX - это про использование внутри Internet Explorer небольших приложений...

Цитата

Судя по вашей картинке и вопросам изобрели вы велосипед  smile 

Это полезный весипед. smile
PM MAIL   Вверх
xvr
Дата 26.4.2014, 18:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 60
Всего: 223



Цитата(AlexLF @  26.4.2014,  16:34 Найти цитируемый пост)
Судя по Википедии, ActiveX - это про использование внутри Internet Explorer небольших приложений...

Не читайте википедию на ночь  smile К Internet Explorer'у она имеет очень отдаленное отношение - он всего лишь один из пользователей этой технологии. 
ActiveX это технология, позволяющая использовать объекты из одного приложения (или dll), в другом в виде 'черного ящика'. А ActiveX Controls - это ее расширение, позволяющее использовать не только объекты, но и экранные образы.

В вашем случае "Антивирус" - это ActiveX сервер (в виде исполняемого приложения), а область 4 в "Редакторе" - это ActiveX Control, который управляется из ActiveX сервера (Антивируса). При этом Редактор не в курсе, что именно показывается в области 4. Для передачи от Редактора к Антивирусу информации об обрабатываемых файлах (стрелка 3) можно использовать другой ActiveX объект (не визуальный), который будет хостится тем же ActiveX сервером (Антивирусом).

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0519 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.