|
|
|
сервер-клиент соединение (Spring MVC)
|
|||
|---|---|---|---|
|
#18+
В общем суть дела вот в чем: Есть серверное приложение (связь с БД, кеширование и небольшая логика) - *.jar проект Есть "Веб морда", запущенная на Tomcat *.war проект Каким образом можно организовать взаимодействие этой "Веб морды" с сервером? Я имею в веду такую ситуацию : 1. Юзер нажал кнопку 2. На контроллер отправился AJAX запрос 3. Контроллер (*.war) распознал запрос 4. Контроллеру (*.war) нужно обратиться к серверу (*.jar) что бы тот обработал данные и вернул результат (если нужно) 5. Контроллер (*.war) обработал результат с сервера (*.jar) и передал ответ на AJAX запрос. Пункты 3-5 должны выполнятся в приделах одного метода. К примеру: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. В данный момент на сервере реализовано только соединение через Java NIO, но в принципе дописать кусок для взаимодействия с "веб мордой" не проблема, если будет нужно. Жду помощи и предложений! :-) П.С. После 3 часов поисков информации в интернете, не зная как правильно гуглу объяснить чего я хочу - немного устал ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2016, 00:38 |
|
||
|
сервер-клиент соединение (Spring MVC)
|
|||
|---|---|---|---|
|
#18+
jar - это формат файла-архива. А приложение то какое? Консольное, GUI, ...? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2016, 01:32 |
|
||
|
сервер-клиент соединение (Spring MVC)
|
|||
|---|---|---|---|
|
#18+
BoJI4er, websocket тебе поможет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2016, 05:06 |
|
||
|
сервер-клиент соединение (Spring MVC)
|
|||
|---|---|---|---|
|
#18+
BoJI4erВ общем суть дела вот в чем: 3. Контроллер (*.war) распознал запрос 4. Контроллеру (*.war) нужно обратиться к серверу (*.jar) что бы тот обработал данные и вернул результат (если нужно) 5. Контроллер (*.war) обработал результат с сервера (*.jar) и передал ответ на AJAX запрос. Пункты 3-5 должны выполнятся в приделах одного метода. Выполнять бизнес логику, работу с базой в контроллерах - пример дурного тона. А по сути - не очень понятна суть вопроса. Контроллер принял запрос от клиента, делегировал бизнес часть соответствующим классам, получил результат, вернул его клиенту. Клиент принял ответ от сервера и инициировал соответствующую реакцию на веб морде. Код: javascript 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2016, 10:17 |
|
||
|
сервер-клиент соединение (Spring MVC)
|
|||
|---|---|---|---|
|
#18+
skywriter, консольное ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2016, 12:08 |
|
||
|
сервер-клиент соединение (Spring MVC)
|
|||
|---|---|---|---|
|
#18+
JonnySKS, никто в контроллерах работу с базой не хочет выполнять :-) ... просто мне сложно объяснить... попробую нарисовать: Этот "соответствующий класс", которому делегируется метод, должен быть соединением с другим приложением - Сервером... открытый сокет или еще что либо, что после обращения к нему будет отправлять пакет на сервер и ожидать ответа или ошибку. П.С. Не хочу придумывать велосипед, посему и ищу совета у вас. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2016, 12:24 |
|
||
|
сервер-клиент соединение (Spring MVC)
|
|||
|---|---|---|---|
|
#18+
вадя, Эмм... если ты мне предлагаешь отправлять запросы с сайта напрямую на сервер - это исключено, только через "WEB морду" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2016, 12:29 |
|
||
|
сервер-клиент соединение (Spring MVC)
|
|||
|---|---|---|---|
|
#18+
BoJI4erвадя, Эмм... если ты мне предлагаешь отправлять запросы с сайта напрямую на сервер - это исключено, только через "WEB морду" как мне кажется есть проблемы с терминалогией ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2016, 18:01 |
|
||
|
сервер-клиент соединение (Spring MVC)
|
|||
|---|---|---|---|
|
#18+
вадяBoJI4erвадя, Эмм... если ты мне предлагаешь отправлять запросы с сайта напрямую на сервер - это исключено, только через "WEB морду" как мне кажется есть проблемы с терминалогией ....??? ВикипедияWebSocket — протокол полнодуплексной связи поверх TCP-соединения, предназначенный для обмена сообщениями между браузером и веб-сервером в режиме реального времени. Мне нужно связать не браузер с веб сервером, а "Веб морду"(веб сервер) с "глобальным сервером"(консольное приложение, обеспечивающее бизнес логику и связи с БД). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2016, 18:42 |
|
||
|
сервер-клиент соединение (Spring MVC)
|
|||
|---|---|---|---|
|
#18+
авторМне нужно связать не браузер с веб сервером, а "Веб морду"(веб сервер) с "глобальным сервером"(консольное приложение, обеспечивающее бизнес логику и связи с БД). что всё это значит? всё на разных железках? а кто мешает железку с веб сервером связать железку с "глобальным сервером"(консольное приложение, обеспечивающее бизнес логику и связи с БД) по websocket? авторWebSocket — протокол полнодуплексной связи поверх TCP-соединения, предназначенный для обмена сообщениями между браузером и веб-сервером в режиме реального времени. читай первоисточники, а не всякую ерунду.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2016, 19:32 |
|
||
|
сервер-клиент соединение (Spring MVC)
|
|||
|---|---|---|---|
|
#18+
вадяавторМне нужно связать не браузер с веб сервером, а "Веб морду"(веб сервер) с "глобальным сервером"(консольное приложение, обеспечивающее бизнес логику и связи с БД). что всё это значит? всё на разных железках? а кто мешает железку с веб сервером связать железку с "глобальным сервером"(консольное приложение, обеспечивающее бизнес логику и связи с БД) по websocket? авторWebSocket — протокол полнодуплексной связи поверх TCP-соединения, предназначенный для обмена сообщениями между браузером и веб-сервером в режиме реального времени. читай первоисточники, а не всякую ерунду.... Да, они на разном железе. Зачем использовать websocket(по факту обертку для socket, см ниже) для связи двух приложений если в таком случае (не для ленивых) можно обойтись обычным Socket??? В перво источнике ( The WebSocket Protocol ) тоже самое что и на википедии написано... :\ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2016, 23:31 |
|
||
|
сервер-клиент соединение (Spring MVC)
|
|||
|---|---|---|---|
|
#18+
Так как нормальных предложений не поступало, решил все же сделать через Socket с блокировкой текущего потока до момента получения ответа. Временные интервалы (без обработки пакета на удаленном сервере (только пересылка туда-обратно )) и если не грузить сервер другими программами занимает в среднем 19`000 - 21`000 мс на 10`000 запросов с ожидание ответа (то есть около 2 - 3 мс на 1 запрос без обработки ). Как делал запросы на сервер Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2016, 23:51 |
|
||
|
сервер-клиент соединение (Spring MVC)
|
|||
|---|---|---|---|
|
#18+
BoJI4er, вообще зачем такоё геморой? всё можно организовать на war (твоей терминалогии) а jar - как "библиотека" и с apk связывается по ws и с браузером по ws. и всё из одного war. всё проще и быстрее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2016, 00:16 |
|
||
|
сервер-клиент соединение (Spring MVC)
|
|||
|---|---|---|---|
|
#18+
BoJI4er, я почитал все твои посты но совершенно не понял какая решается задача. Единственное что я не понял - тебя неопытного заставили рисовать архитектуру и ты не знаешь как ее правильно нарисовать. Те цветные квадратики что ты нарисовал концептуальны, но например с точки зрения TCP/hosts они совершенно неинформативны. А ведь это на 90% определяет выбор например ролей между хостами. Кто будет вызывающий а кто вызываемый. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2016, 01:06 |
|
||
|
сервер-клиент соединение (Spring MVC)
|
|||
|---|---|---|---|
|
#18+
вадяBoJI4er, вообще зачем такоё геморой? всё можно организовать на war (твоей терминалогии) а jar - как "библиотека" и с apk связывается по ws и с браузером по ws. и всё из одного war. всё проще и быстрее. WAR и JAR это 2а разных приложения, она могут быть запущенны на разном ЖЕЛЕЗЕ. JAR - это сервер (запущенный к примеру в Корее) WAR - один из вариантов UI(может быть запущен хоть у "Васи в подвале") ... Я считаю не разумно навязывать работу UI серверу. ... это абсолютно разные задачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2016, 11:29 |
|
||
|
сервер-клиент соединение (Spring MVC)
|
|||
|---|---|---|---|
|
#18+
maytonBoJI4er, я почитал все твои посты но совершенно не понял какая решается задача. Единственное что я не понял - тебя неопытного заставили рисовать архитектуру и ты не знаешь как ее правильно нарисовать. Те цветные квадратики что ты нарисовал концептуальны, но например с точки зрения TCP/hosts они совершенно неинформативны. А ведь это на 90% определяет выбор например ролей между хостами. Кто будет вызывающий а кто вызываемый. Скорее я не знаю как объяснить людям, что у меня в голове происходит :-) А вопрос был простой - есть ли средства что бы выполнить TCP запрос к удаленному серверу и получить ответ на запрос в пределах одного метода, что бы я не "создавал велосипед". .... я никого не просил помогать строить архитектуру :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2016, 11:34 |
|
||
|
сервер-клиент соединение (Spring MVC)
|
|||
|---|---|---|---|
|
#18+
BoJI4erесть ли средства что бы выполнить TCP запрос к удаленному серверу и получить ответ на запрос в пределах одного метода Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2016, 11:45 |
|
||
|
сервер-клиент соединение (Spring MVC)
|
|||
|---|---|---|---|
|
#18+
rema174BoJI4erесть ли средства что бы выполнить TCP запрос к удаленному серверу и получить ответ на запрос в пределах одного метода Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Это через Socket, это я и сам организовать могу... мне интересно есть ли какая нибудь красивая обертка? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2016, 12:42 |
|
||
|
сервер-клиент соединение (Spring MVC)
|
|||
|---|---|---|---|
|
#18+
BoJI4erЭто через Socket, это я и сам организовать могу... мне интересно есть ли какая нибудь красивая обертка? так тебе шашечки или ехать? :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2016, 12:47 |
|
||
|
сервер-клиент соединение (Spring MVC)
|
|||
|---|---|---|---|
|
#18+
rema174BoJI4erЭто через Socket, это я и сам организовать могу... мне интересно есть ли какая нибудь красивая обертка? так тебе шашечки или ехать? :-) Мне нужно название технологии что бы это можно было оформить красиво, или сказать "такой нет" буду использовать свою обертку для TCP ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2016, 13:02 |
|
||
|
сервер-клиент соединение (Spring MVC)
|
|||
|---|---|---|---|
|
#18+
BoJI4erЭто через Socket, это я и сам организовать могу... мне интересно есть ли какая нибудь красивая обертка? Таких обёрток много. RMI, JMX, HTTP/Rest, SOAP, Corba, Remoting(.Net) e.t.c и еще дохренища тех которые я не знаю. Чтобы их выбрать - нужно экспертное сравнение. Таблица. По вертикали названия технологий. По горизонтали - фичи. Нужны также ответы от тебя. 1) Что ты из них знаешь? Что знает твоя команда? Это разовая азработка или будешь очень долго сопровождать? 2) Что нужно сделать (1 метод или много методов) ? 3) Насколько оно комплексное (передаются только атомы или сущности более сложные) 4) Нужна ли секюрити? 5) Нужен ли сеанс? 6) Нужна-ли гетерогенность? Может быть тебе подойтет решение с сырым TCP сокетом. В принципе можно начать с него. Или я-бы начал с Rest. Если не хватит - искать другое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2016, 14:24 |
|
||
|
сервер-клиент соединение (Spring MVC)
|
|||
|---|---|---|---|
|
#18+
maytonBoJI4erЭто через Socket, это я и сам организовать могу... мне интересно есть ли какая нибудь красивая обертка? Таких обёрток много. RMI, JMX, HTTP/Rest, SOAP, Corba, Remoting(.Net) e.t.c и еще дохренища тех которые я не знаю. Чтобы их выбрать - нужно экспертное сравнение. Таблица. По вертикали названия технологий. По горизонтали - фичи. Нужны также ответы от тебя. 1) Что ты из них знаешь? Что знает твоя команда? Это разовая азработка или будешь очень долго сопровождать? 2) Что нужно сделать (1 метод или много методов) ? 3) Насколько оно комплексное (передаются только атомы или сущности более сложные) 4) Нужна ли секюрити? 5) Нужен ли сеанс? 6) Нужна-ли гетерогенность? Может быть тебе подойтет решение с сырым TCP сокетом. В принципе можно начать с него. Или я-бы начал с Rest. Если не хватит - искать другое. Ну я и начал с TCP (Rest не подойдет, так как передаваться будет скорее всего JSON)... с вопросами я понял, буду перерывать обертки для TCP в поисках чего то нужного, в случае если не сработает то что я руками наваял. спасибо! :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2016, 15:54 |
|
||
|
сервер-клиент соединение (Spring MVC)
|
|||
|---|---|---|---|
|
#18+
BoJI4erНу я и начал с TCP (Rest не подойдет, так как передаваться будет скорее всего JSON) Rest не помеха JSON Ябы сказал вообще... во френдах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2016, 15:57 |
|
||
|
сервер-клиент соединение (Spring MVC)
|
|||
|---|---|---|---|
|
#18+
BoJI4er, Всем голову заморочил, а тут банальный resr json и 99,9 всех проектов подобного рода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2016, 08:19 |
|
||
|
сервер-клиент соединение (Spring MVC)
|
|||
|---|---|---|---|
|
#18+
maytonBoJI4erНу я и начал с TCP (Rest не подойдет, так как передаваться будет скорее всего JSON) Rest не помеха JSON Ябы сказал вообще... во френдах. Rest меду приложениями? (WEB Servlet(Java Socket) <-> Console Application(Java Socket)) ... я чего то не понимаю или меня не правильно поняли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2016, 00:40 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39148966&tid=2124433]: |
0ms |
get settings: |
12ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
143ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
| others: | 286ms |
| total: | 535ms |

| 0 / 0 |
