Этот баннер — требование Роскомнадзора для исполнения 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 |
|
||
|
Межпроцесное взаимодействие с Ява приложением или кодом.
|
|||
|---|---|---|---|
|
#18+
Парни, огромное Вам спасибо! Очень доходчиво и в красках. Беру файлы в tmpfs и CMS. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2013, 19:20 |
|
||
|
Межпроцесное взаимодействие с Ява приложением или кодом.
|
|||
|---|---|---|---|
|
#18+
MasterZivНо CORBA почему-то сейчас стала немодной, от неё все шарахаются как чёрт от ладанаДык - "Сложно" :) P.S. Сегодня долго вкуривал helper-ы и holder-ы, но зато стало ясно как улучшить то, что есть. Может даже и "быстрее" будет, чем прежний вариант рефакторинга, хотя ощущение некоторой замороченности - осталось :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2013, 19:25 |
|
||
|
Межпроцесное взаимодействие с Ява приложением или кодом.
|
|||
|---|---|---|---|
|
#18+
kT_________, Я бы выбрал SOAP. Во всяком случае, если ты задумываешься о масштабируемости (например, предполагаешь, что возникнет в будущем необходимость разнести клиента (Java) и сервис (С++)), то файлы будут сдерживающим фактором. Для реализации SOAP сервиса на С++ можешь посмотреть в сторону gSOAP ( http://gsoap2.sourceforge.net/). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2013, 11:40 |
|
||
|
Межпроцесное взаимодействие с Ява приложением или кодом.
|
|||
|---|---|---|---|
|
#18+
kT_________Добрый день. Прошу поделиться опытом решения таких задач. С одной стороны ява_код либо ява приложение, с другой стороны С++_код либо С++ приложение. Требуется со стороны С++ обрабатывать данные с потока вывода и передавать Яве(коду или приложению) и принимать данные от Ява (кода или приложения) всё надо делать асинхронно и кроссплатформенно(желательно) но можно и просто под Посикс. В Ява ветке пишут что нет возможности использовать Буст::Спирит из JNI, (да, со стороны С++ либо код Спирита, либо скомпилинный код), т.е. если код не вызвать (и нужно ли? там наверно жудкие тормоза) значить компилить парсеры, считывать поток вывода и как то его отдавать Ява приложению, варианты: 1.WSDL поделитесь историями успеха? есть библиотеки или как это прикрутить? 2. Через БД, был опыт исопльзования МуСКЛ С++ АПИ, впечатление оставил неизгладимое, с учетом того что парсеров не мало, между собой они не связаны, придется писать ЦУП с пулами, которому каждый парсер будет отдавать/принимать инфу, но прогресс не стоит на месте, новые стандарты.. м б ОРМы есть, но чувствую это не самый простой вариант. 3.Доменные сокеты Посикса, тсп-айпи, очереди.. и прочие артефакты из книг Стивенса))) Коллеги, подскажите что в тренде, как передать данные межды С++ и Явой, асинхронно, кроссплатформенно, и без голавников со стороны плюсов. Благодарю! Какое сборище модно-бесполезных терминов. Еще не хватает обязательного слова "энтерпрайз". И совершенно не понятно какое boost::spirit (библиотека DSL для создания не самых быстрых, простых парсеров) имеет отношение к ipc. Еще судя по вашему посту, не понятно что вы хотите, какое именно взаимодействие. Поэтому вам начали советовать совершенно различные вещи начиная от пайпов, файлов заканчивая SOAP-ом. То что вы называете "передавать данные между двумя приложениями" может иметь абсолютно различные виды. Например сюда можно засунуть следующие: browser<->webserver, dbclient <->dbserver, главный процесс - порожденные процессы для обслуживания подключений, и уйма других видов, каждый из которых имеет свои требования (скорость, надежность, персистентность, сессионность, кол-во подключений, транзакционность, и мн. др.) Чтобы получить правильные советы, нужно дать четкую постановку задачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2013, 12:47 |
|
||
|
Межпроцесное взаимодействие с Ява приложением или кодом.
|
|||
|---|---|---|---|
|
#18+
MasterZivВ тренде -- я наверное посоветовал бы SOAP или Messaging. А в чем вообще преимущества этого SOAP помимо тренда по сравнению с передачей по TCP-IP данных сериализованных любым способом? SOAP по сути это передача данных в XML-формате поверх прикладного протокола. Чем это лучше, чем передача XML по TCP-IP или чем передача не-XML по TCP-IP, тем что обеспечивается прямая совместимость при добавлении новых параметров в XML? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2013, 15:18 |
|
||
|
Межпроцесное взаимодействие с Ява приложением или кодом.
|
|||
|---|---|---|---|
|
#18+
в чем преимущества SOAP?, Ну, во-первых это стандарт, во-вторых при написании клиента тебе остается сгенерить STUB по WSDL для целевой платформы, чтобы система "заиграла". А так, конечно, можно и самопал - никто не запрещает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2013, 16:12 |
|
||
|
Межпроцесное взаимодействие с Ява приложением или кодом.
|
|||
|---|---|---|---|
|
#18+
Анатолий Широковв чем преимущества SOAP?, Ну, во-первых это стандарт, во-вторых при написании клиента тебе остается сгенерить STUB по WSDL для целевой платформы, чтобы система "заиграла". А так, конечно, можно и самопал - никто не запрещает. согласен, с сетью кода больше руками писать, даже если его и генерить а не писать ;) Мне понравился вариант через очереди ActiveMQ либы для плюсов прикрутил, ночью хелловорд попробую в яву отправить. Файлы во временной ФС как план Б))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2013, 22:10 |
|
||
|
Межпроцесное взаимодействие с Ява приложением или кодом.
|
|||
|---|---|---|---|
|
#18+
kT_________Анатолий Широковв чем преимущества SOAP?, Ну, во-первых это стандарт, во-вторых при написании клиента тебе остается сгенерить STUB по WSDL для целевой платформы, чтобы система "заиграла". А так, конечно, можно и самопал - никто не запрещает. согласен, с сетью кода больше руками писать, даже если его и генерить а не писать ;) Мне понравился вариант через очереди ActiveMQ либы для плюсов прикрутил, ночью хелловорд попробую в яву отправить. Файлы во временной ФС как план Б))) Там примеров дофига в библиотеках AMQ-шных. Доаументация как бы не очень хорошая, но зато примеры правильные и много. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2013, 00:35 |
|
||
|
Межпроцесное взаимодействие с Ява приложением или кодом.
|
|||
|---|---|---|---|
|
#18+
в чем преимущества SOAP?MasterZivВ тренде -- я наверное посоветовал бы SOAP или Messaging. А в чем вообще преимущества этого SOAP помимо тренда по сравнению с передачей по TCP-IP данных сериализованных любым способом? SOAP по сути это передача данных в XML-формате поверх прикладного протокола. Чем это лучше, чем передача XML по TCP-IP или чем передача не-XML по TCP-IP, тем что обеспечивается прямая совместимость при добавлении новых параметров в XML? Совместимость чего с чем ? Старой версии программы с новой ? Её не будет даже в SOAP, на сколько я помню. А так, HTTP даёт дополнительно возможность шифрации и сжатия, задаёт собственно протокол обмена (при работе через TCP его нужно делать самому или брать готовый, типа STOMP или XMPP), возможности задавать параметры и возможность аутентификации. SOAP сверху по сравнению с голым XML даёт в общем мало чего, там какие-то общесистемные служебные возможности, не помню. Но главное от SOAP -- это возможность генерации автоматической кода по маршалингу/демаршалингу XML-я. Хотя её наверное можно прикрутить руками и в случае использования чистого XML, только вот вопрос -- зачем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2013, 00:42 |
|
||
|
Межпроцесное взаимодействие с Ява приложением или кодом.
|
|||
|---|---|---|---|
|
#18+
АктивМКу, ода! Примеров много, документацию особо не глядел. Примеры душевные, но установка долгоиграющая. Ставил активмку-спп часть много зависимостей ..пути к заголовкам, библиотекам - сурово для Убунту(((, сам сервис - пользователи, права, папки..куча конфигов. Норм, работает.Спасибо за совет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2013, 14:03 |
|
||
|
Межпроцесное взаимодействие с Ява приложением или кодом.
|
|||
|---|---|---|---|
|
#18+
kT_________АктивМКу, ода! Примеров много, документацию особо не глядел. Примеры душевные, но установка долгоиграющая. Ставил активмку-спп часть много зависимостей ..пути к заголовкам, библиотекам - сурово для Убунту(((, сам сервис - пользователи, права, папки..куча конфигов. Норм, работает.Спасибо за совет. Больше одного конфига уже куча;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2013, 14:04 |
|
||
|
Межпроцесное взаимодействие с Ява приложением или кодом.
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovkT_________нет в Яве такого простого и гибкого решения. А! и быстрого))) В яве вообще нет ничего быстрого. По определению. Это миф из девяностых. По определению ява как раз может работать быстрей, речь конечно о серверной jvm, т.к. она делает оптимизацию вместе с либами, основываясь при этом на профиле исполнения и конкретном железе. Напрмиер, тривиальные геттеры-сеттеры внутри либы она может заинлайнить, чего плюсы не могут сделать даже теоретически. Сегодняшняя ява идентичный с плюсами код компилит в идентичный же асм, в этом можно убедиться, запустив jvm с плагином hdis. Единственное большое отличие си - соглашения о передаче параметров через стек. Изза этого в си сильно убивается производительность на рекурсивных программах типа факториала и ява работает раза в 3 быстрей. Во всех остальных случаях асм весьма оптимален -> скорость идентична. Т.е. я хочу сказать, что на сегодня 99% тормозов связаны с говнокодом, который есть и в плюсовых и в явовских либах. и мой реальный опыт это подтверждает. Написав говняную либу "правильно" ее можно разгнать во много раз. Лично я порвал json_spirit раз в 100 по производительности своим парсером на яве. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2013, 18:18 |
|
||
|
Межпроцесное взаимодействие с Ява приложением или кодом.
|
|||
|---|---|---|---|
|
#18+
Это миф из девяностых. Ну в общем да... По определению ява как раз может работать быстрей, речь конечно о серверной jvm, т.к. она делает оптимизацию вместе с либами, основываясь при этом на профиле исполнения и конкретном железе. Напрмиер, тривиальные геттеры-сеттеры внутри либы она может заинлайнить, чего плюсы не могут сделать даже теоретически. Почему же не могут? Могут, и делают... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2013, 02:35 |
|
||
|
Межпроцесное взаимодействие с Ява приложением или кодом.
|
|||
|---|---|---|---|
|
#18+
chabapok, плюсы умеют инлайнить больше чем ты просишь, в том числе и тела библиотечных функций. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2013, 14:35 |
|
||
|
Межпроцесное взаимодействие с Ява приложением или кодом.
|
|||
|---|---|---|---|
|
#18+
Анатолий Широковплюсы умеют инлайнить больше чем ты просишь, в том числе и тела библиотечных функций.JIT может не только встроить то, что можно встроить "прям щас", но и отменить встраивание, если ситуация изменилась. Прямо в процессе исполнения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2013, 18:32 |
|
||
|
Межпроцесное взаимодействие с Ява приложением или кодом.
|
|||
|---|---|---|---|
|
#18+
chabapokНаписав говняную либу "правильно" ее можно разгнать во много раз. А можно для примера какую-нибудь не "говняную" либу (или уже разогнанную) для комплексных чисел (или там двух/трехмерных векторов)? Чтобы операции с большими массивами этих комплексных чисел (векторов) по скорости не уступали C++, где все данные будут одним куском лежать без лишней косвенности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2013, 20:48 |
|
||
|
|

start [/forum/topic.php?all=1&fid=57&tid=2020073]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
49ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
65ms |
get tp. blocked users: |
1ms |
| others: | 9ms |
| total: | 165ms |

| 0 / 0 |
