Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Межпроцесное взаимодействие с Ява приложением или кодом.
|
|||
|---|---|---|---|
|
#18+
Добрый день. Прошу поделиться опытом решения таких задач. С одной стороны ява_код либо ява приложение, с другой стороны С++_код либо С++ приложение. Требуется со стороны С++ обрабатывать данные с потока вывода и передавать Яве(коду или приложению) и принимать данные от Ява (кода или приложения) всё надо делать асинхронно и кроссплатформенно(желательно) но можно и просто под Посикс. В Ява ветке пишут что нет возможности использовать Буст::Спирит из JNI, (да, со стороны С++ либо код Спирита, либо скомпилинный код), т.е. если код не вызвать (и нужно ли? там наверно жудкие тормоза) значить компилить парсеры, считывать поток вывода и как то его отдавать Ява приложению, варианты: 1.WSDL поделитесь историями успеха? есть библиотеки или как это прикрутить? 2. Через БД, был опыт исопльзования МуСКЛ С++ АПИ, впечатление оставил неизгладимое, с учетом того что парсеров не мало, между собой они не связаны, придется писать ЦУП с пулами, которому каждый парсер будет отдавать/принимать инфу, но прогресс не стоит на месте, новые стандарты.. м б ОРМы есть, но чувствую это не самый простой вариант. 3.Доменные сокеты Посикса, тсп-айпи, очереди.. и прочие артефакты из книг Стивенса))) Коллеги, подскажите что в тренде, как передать данные межды С++ и Явой, асинхронно, кроссплатформенно, и без голавников со стороны плюсов. Благодарю! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2013, 17:59 |
|
||
|
Межпроцесное взаимодействие с Ява приложением или кодом.
|
|||
|---|---|---|---|
|
#18+
kT_________как передать данные межды С++ и Явой, асинхронно, кроссплатформенно, и без голавников со стороны плюсов. TCP или UDP - проще и кросплатформеннее всего. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2013, 18:11 |
|
||
|
Межпроцесное взаимодействие с Ява приложением или кодом.
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovkT_________как передать данные межды С++ и Явой, асинхронно, кроссплатформенно, и без голавников со стороны плюсов. TCP или UDP - проще и кросплатформеннее всего. ммм, ну как проще... по мне так WSDL проще всего, а для тисипи-айпи это надо Буст::Асио или АСЕ ..что бы руками не прописывать: Код: plaintext 1. не.. всё таки 2013 год. А там маршалинг/демаршалинг, и если куча парсеров то на удп, не буду же я 100500 портов открывать на тсп. Спасибо Вам. Но грусно как-то.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2013, 18:17 |
|
||
|
Межпроцесное взаимодействие с Ява приложением или кодом.
|
|||
|---|---|---|---|
|
#18+
Безотносительно к языкам: - Самое простое и асинхронное - файлы. Две программы по очереди читают файлы, обрабатывают, пишут в новые файлы. Можно делать очереди, можно вешать любую из программ демоном и следить за появлением входящих данных. А можно и выключить любую из программ на день-неделю-месяц а потом запустить, обработать накопленную очередь и снова заснуть. - Обмен данными через БД это разновидность вышеописанного подхода. Тоже можно, но чуть сложнее - надо знать АПИ используемой СУБД и иметь сервер этой СУБД. - TCP/IP - можно и будет удобно, но требует чтобы обе программы были запущенны одновременно. Асинхронность теряется. Это все будет работать в случае любого используемого языка и любой платформы. Java в связке с C++: изучать JNI если смесь из двух языков действительно необходима. Но это в действительности очень редко нужно. Разве что при написании драйверов для какого-либо уникального железа. Все остальные задачи проще и надежней писать целиком на одном из языков. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2013, 18:19 |
|
||
|
Межпроцесное взаимодействие с Ява приложением или кодом.
|
|||
|---|---|---|---|
|
#18+
Не праильно назвал топик, надо было про WSDL и про ОРМы к БД, WSDL кажется есть в ВижлСтудии, попадался на глаза. Но компилить в ней библиотеки и бинарники для Убунты, это нормально?? Прошу прощения за такие вопросы =( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2013, 18:20 |
|
||
|
Межпроцесное взаимодействие с Ява приложением или кодом.
|
|||
|---|---|---|---|
|
#18+
kT_________а для тисипи-айпи это надо Буст::Асио или АСЕ ..что бы руками не прописывать: Код: plaintext 1. А что плохого в прописывании руками? Вообще, не понимаю я страсти к Бусту. Оно конечно навороченное и местами удобное, но если библиотека мешает решать задачу - нафига цепляться за эту библиотеку? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2013, 18:21 |
|
||
|
Межпроцесное взаимодействие с Ява приложением или кодом.
|
|||
|---|---|---|---|
|
#18+
White OwlБезотносительно к языкам: - Самое простое и асинхронное - файлы. Две программы по очереди читают файлы, обрабатывают, пишут в новые файлы. Можно делать очереди, можно вешать любую из программ демоном и следить за появлением входящих данных. А можно и выключить любую из программ на день-неделю-месяц а потом запустить, обработать накопленную очередь и снова заснуть. - Обмен данными через БД это разновидность вышеописанного подхода. Тоже можно, но чуть сложнее - надо знать АПИ используемой СУБД и иметь сервер этой СУБД. - TCP/IP - можно и будет удобно, но требует чтобы обе программы были запущенны одновременно. Асинхронность теряется. Это все будет работать в случае любого используемого языка и любой платформы. Java в связке с C++: изучать JNI если смесь из двух языков действительно необходима. Но это в действительности очень редко нужно. Разве что при написании драйверов для какого-либо уникального железа. Все остальные задачи проще и надежней писать целиком на одном из языков. Золотые слова. Но заманился я на Спирит, нет в Яве такого простого и гибкого решения. А! и быстрого))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2013, 18:22 |
|
||
|
Межпроцесное взаимодействие с Ява приложением или кодом.
|
|||
|---|---|---|---|
|
#18+
White OwlБезотносительно к языкам: - Самое простое и асинхронное - файлы. Две программы по очереди читают файлы, обрабатывают, пишут в новые файлы. Можно делать очереди, можно вешать любую из программ демоном и следить за появлением входящих данных. А можно и выключить любую из программ на день-неделю-месяц а потом запустить, обработать накопленную очередь и снова заснуть. - Обмен данными через БД это разновидность вышеописанного подхода. Тоже можно, но чуть сложнее - надо знать АПИ используемой СУБД и иметь сервер этой СУБД. - TCP/IP - можно и будет удобно, но требует чтобы обе программы были запущенны одновременно. Асинхронность теряется. Это все будет работать в случае любого используемого языка и любой платформы. Java в связке с C++: изучать JNI если смесь из двух языков действительно необходима. Но это в действительности очень редко нужно. Разве что при написании драйверов для какого-либо уникального железа. Все остальные задачи проще и надежней писать целиком на одном из языков. А вот скажите, файлами ощутимо медленнее? Ведь они же на есткий диск пишутся, можно создавать их виртуально и без записи на винт, тогда не до большого будет тупить, верно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2013, 18:25 |
|
||
|
Межпроцесное взаимодействие с Ява приложением или кодом.
|
|||
|---|---|---|---|
|
#18+
kT_________нет в Яве такого простого и гибкого решения. А! и быстрого))) В яве вообще нет ничего быстрого. По определению. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2013, 18:26 |
|
||
|
Межпроцесное взаимодействие с Ява приложением или кодом.
|
|||
|---|---|---|---|
|
#18+
Хочется использовать профиты и явы и плюсов. Я наивен)) Но на С++ писать не буду, буду генерить код, тут взаимодействие через файлы самый простой вариант).. Быстрый? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2013, 18:29 |
|
||
|
Межпроцесное взаимодействие с Ява приложением или кодом.
|
|||
|---|---|---|---|
|
#18+
kT_________Быстрый? Нет. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2013, 18:31 |
|
||
|
Межпроцесное взаимодействие с Ява приложением или кодом.
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovkT_________Быстрый? Нет. Дмитрий, а как сделать быстро и не напряжно? Ненапряжно, т.е. генерить С++ код из шаблонов ..и именно что бы шаблоны были не оверхедные. Файлы прекрасный вариант, а так думаю в виртуальной файловой системе это быстро... но они после перезагрузки исчезнут))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2013, 18:36 |
|
||
|
Межпроцесное взаимодействие с Ява приложением или кодом.
|
|||
|---|---|---|---|
|
#18+
kT_________а как сделать быстро и не напряжно? Нанять программиста. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2013, 18:43 |
|
||
|
Межпроцесное взаимодействие с Ява приложением или кодом.
|
|||
|---|---|---|---|
|
#18+
kT_________А вот скажите, файлами ощутимо медленнее? Ведь они же на есткий диск пишутся, можно создавать их виртуально и без записи на винт, тогда не до большого будет тупить, верно?Ощутимо медленнее по сравнению с чем? С прямым tcp/ip туннелем? Да, это будет намного медленнее. По сравнению с WSDL - скорее всего будет быстрее. Зависит от того как ты файлы читать/писать собираешься. Если у тебя обе программы на одной машине и писать ты будешь на локальный диск это одно. А если программы на разных машинах и писать/читать ты будешь по сети через netbios или ftp - то это совершенно другое. Главные плюсы файлового обмена: простота, надежность и универсальность. Главный минус: скорость. Что перевесит в твоем случае - тебе решать. А еще есть стандартные потоки. Они совмещают плюсы простоты доступа и скорости, но теряют асинхронность... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2013, 18:43 |
|
||
|
Межпроцесное взаимодействие с Ява приложением или кодом.
|
|||
|---|---|---|---|
|
#18+
White Owlтеряют асинхронность... Тут надо бы уточнить что именно автор понимает под "асинхронностью"... Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2013, 18:45 |
|
||
|
Межпроцесное взаимодействие с Ява приложением или кодом.
|
|||
|---|---|---|---|
|
#18+
kT_________Добрый день. Прошу поделиться опытом решения таких задач. С одной стороны ява_код либо ява приложение, с другой стороны С++_код либо С++ приложение. Требуется со стороны С++ обрабатывать данные с потока вывода и передавать Яве(коду или приложению) и принимать данные от Ява (кода или приложения) всё надо делать асинхронно и кроссплатформенно(желательно) но можно и просто под Посикс. Как бы прямой путь для этого -- CORBA. Я такое делал, даже всё работало. Но CORBA почему-то сейчас стала немодной, от неё все шарахаются как чёрт от ладана. Хотя есть работающие бесплатные решения (ORB-ы) и для Java, и для C++. автор варианты: 1.WSDL поделитесь историями успеха? есть библиотеки или как это прикрутить? Наверное, всё же SOAP, WSDL -- это для описания сервисов, сами протоколы -- это SOAL/HTTP/TPC-IP. Да, тоже можно. Я тоже такое делал на практике, в общем, это почти полный аналог решений на CORBA, толко руками и на спичках и изоленте. Работает примерно раза в 3-5 медленнее CORBA, но можно жать траффик, и не всегда скорость критична -- всё равно доли секунды. автор2. Через БД, был опыт исопльзования МуСКЛ С++ АПИ, впечатление оставил неизгладимое, с учетом того что парсеров не мало, между собой они не связаны, придется писать ЦУП с пулами, которому каждый парсер будет отдавать/принимать инфу, но прогресс не стоит на месте, новые стандарты.. м б ОРМы есть, но чувствую это не самый простой вариант. Это я вообще не понимаю как. Ты будешь записывать данные в БД только чтобы потом другая прога их прочитала и обработала ? Нахрен такое надо ? БД очень медленные всегда, да и записывать чтобы только прочитать -- странно. Тогда уж лучше делать сразу на Messaging-е, что-то типа ActiveMQ или Hornet. Кстати, тоже решение, и кстати автоматом асинхронное. Тоже делал (делаю вот прямо сейчас). И для C++, и для Java доступно. автор3.Доменные сокеты Посикса, тсп-айпи, очереди.. и прочие артефакты из книг Стивенса))) Ну это просто файлы, точнее -- потоки. Там у тебя не будет протоколов передачи данных, тебе придётся изобретать их самому. Впрочем, их придётся изобретать самому в том или ином виде в любых случаях, кроме CORBA. B CORBA на самом деле тоже придётся изобретать на уровне IDL, а далее всё -- автоматом. авторКоллеги, подскажите что в тренде, как передать данные межды С++ и Явой, асинхронно, кроссплатформенно, и без голавников со стороны плюсов. В тренде -- я наверное посоветовал бы SOAP или Messaging. Но SOAP вызов один -- строго синхронный. Асинхронным его тебе придётся делать самому, если это так надо. Messaging типа JMS/CMS -- наоборот, строго Асинхронный. Там наоборот чтобы сделать синхронно надо помучится (на самом деле это вообще невозможно, но возможна имитация). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2013, 18:52 |
|
||
|
Межпроцесное взаимодействие с Ява приложением или кодом.
|
|||
|---|---|---|---|
|
#18+
kT_________Dimitry Sibiryakovпропущено... TCP или UDP - проще и кросплатформеннее всего. ммм, ну как проще... по мне так WSDL проще всего, а для тисипи-айпи это надо Буст::Асио или АСЕ ..что бы руками не прописывать: Код: plaintext 1. не.. всё таки 2013 год. А там маршалинг/демаршалинг, и если куча парсеров то на удп, не буду же я 100500 портов открывать на тсп. Спасибо Вам. Но грусно как-то.. ACE -- это недоCORBA. Проблемы те же, а плюсов я и не знаю. Уж лучше нормальный ORB взять. И я не знаю, есть ли для ACE поддержка Java. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2013, 18:54 |
|
||
|
Межпроцесное взаимодействие с Ява приложением или кодом.
|
|||
|---|---|---|---|
|
#18+
kT_________ не.. всё таки 2013 год. А там маршалинг/демаршалинг, и если куча парсеров то на удп, не буду же я 100500 портов открывать на тсп. Чего? Какой UDP и 100 тыщ портов ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2013, 18:55 |
|
||
|
Межпроцесное взаимодействие с Ява приложением или кодом.
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovWhite Owlтеряют асинхронность... Тут надо бы уточнить что именно автор понимает под "асинхронностью"... Это когда не получил, ответил, другой получил, другой ответил, а... ответит, ответил, кто-то что-то получил, ещё, ещё.. вес для очередей, обработка чего-то срочного.. это не проблема написать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2013, 18:56 |
|
||
|
Межпроцесное взаимодействие с Ява приложением или кодом.
|
|||
|---|---|---|---|
|
#18+
kT_________Хочется использовать профиты и явы и плюсов. Я наивен)) Но на С++ писать не буду, буду генерить код, тут взаимодействие через файлы самый простой вариант).. Быстрый? Какие профиты у Java ? Я бы на ней 200 лет бы не писал, если бы не нужно было... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2013, 18:57 |
|
||
|
Межпроцесное взаимодействие с Ява приложением или кодом.
|
|||
|---|---|---|---|
|
#18+
kT_________Хочется использовать профиты и явы и плюсов. Я наивен)) Но на С++ писать не буду, буду генерить код, тут взаимодействие через файлы самый простой вариант).. Быстрый? Зачем, тогда уж через сокеты лучше... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2013, 18:58 |
|
||
|
Межпроцесное взаимодействие с Ява приложением или кодом.
|
|||
|---|---|---|---|
|
#18+
kT_________Dimitry Sibiryakovпропущено... Тут надо бы уточнить что именно автор понимает под "асинхронностью"... ответит, ответил, кто-то что-то получил, ещё, ещё.. вес для очередей, обработка чего-то срочного.. Тогда файлы хранимые на диске или маркированные блоки данных в БД - единственный вариант. Скорость доступа к данным в этом случае уже становится абсолютно не важной. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2013, 19:00 |
|
||
|
Межпроцесное взаимодействие с Ява приложением или кодом.
|
|||
|---|---|---|---|
|
#18+
tmpfs on /_files/fb/fb_temp_ram type tmpfs (rw,size=1024m) типо того)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2013, 19:03 |
|
||
|
Межпроцесное взаимодействие с Ява приложением или кодом.
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovВ яве вообще нет ничего быстрого. По определению.Вот так включается HotSpot: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. В данном конкретном случае надо переделывать подсчёт времени, но было лень и просто завернул цикл в System.nanoTime(): Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. 195. 196. 197. 198. 199. 200. 201. 202. 203. 204. 205. 206. 207. 208. 209. 210. 211. 212. 213. 214. 215. 216. 217. 218. 219. 220. 221. 222. 223. 224. 225. 226. 227. 228. 229. 230. 231. 232. 233. 234. 235. 236. 237. 238. 239. 240. 241. 242. 243. 244. 245. 246. 247. 248. 249. 250. 251. 252. 253. 254. 255. 256. 257. 258. 259. 260. 261. 262. 263. 264. 265. 266. 267. 268. 269. 270. 271. 272. 273. 274. 275. 276. 277. 278. 279. 280. 281. 282. 283. 284. 285. 286. 287. 288. 289. 290. 291. 292. 293. 294. 295. 296. 297. 298. 299. 300. 301. 302. 303. 304. 305. 306. 307. 308. 309. 310. 311. 312. 313. 314. 315. 316. 317. 318. 319. 320. 321. 322. 323. 324. 325. 326. 327. 328. 329. 330. 331. 332. 333. 334. 335. 336. 337. 338. 339. 340. 341. 342. 343. 344. 345. 346. 347. 348. 349. 350. 351. 352. 353. 354. 355. 356. 357. 358. 359. 360. 361. 362. 363. 364. 365. 366. 367. 368. 369. 370. 371. 372. 373. 374. 375. 376. 377. 378. 379. 380. 381. 382. 383. 384. 385. 386. 387. 388. 389. 390. 391. 392. 393. 394. 395. 396. 397. 398. 399. 400. 401. 402. 403. 404. 405. 406. 407. 408. 409. 410. 411. 412. 413. 414. 415. 416. 417. 418. 419. 420. 421. 422. 423. 424. 425. 426. 427. 428. 429. 430. 431. 432. 433. 434. 435. 436. 437. 438. 439. 440. 441. 442. 443. 444. 445. 446. 447. 448. 449. 450. 451. 452. 453. 454. 455. 456. 457. 458. 459. 460. 461. 462. 463. 464. 465. 466. 467. 468. 469. 470. 471. 472. 473. 474. 475. 476. 477. 478. 479. 480. 481. 482. 483. 484. 485. 486. 487. 488. 489. 490. 491. 492. 493. 494. 495. 496. 497. 498. 499. 500. 501. 502. 503. 504. 505. 506. 507. 508. 509. 510. 511. 512. 513. 514. 515. 516. 517. 518. 519. 520. 521. 522. 523. 524. 525. 526. 527. 528. 529. 530. 531. 532. 533. 534. 535. 536. 537. 538. 539. 540. 541. 542. 543. 544. 545. 546. 547. 548. 549. 550. 551. 552. 553. 554. 555. 556. 557. 558. 559. 560. 561. 562. 563. 564. 565. 566. 567. 568. 569. 570. 571. 572. 573. 574. 575. 576. 577. 578. 579. 580. 581. 582. 583. 584. 585. 586. 587. 588. 589. 590. 591. 592. 593. 594. 595. 596. 597. 598. 599. 600. 601. 602. 603. 604. 605. 606. 607. 608. 609. 610. 611. 612. 613. 614. 615. 616. 617. 618. 619. 620. 621. 622. 623. 624. 625. 626. 627. 628. 629. 630. 631. 632. 633. 634. 635. 636. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2013, 19:19 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=38337470&tid=2020073]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
75ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
65ms |
get tp. blocked users: |
2ms |
| others: | 14ms |
| total: | 207ms |

| 0 / 0 |
