![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| jecl |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 12.10.2007 Репутация: нет Всего: нет |
Приветствую!
Есть задача организации механизма общения между процессами. Процессами я называю здесь обычное приложения - будь то java,c/c++, python etc. Суть такова - все приложения изначально запущенны, но при работе с одним из приложений (допустим приложение А) может появиться необходимость быстрого перехода в другое приложение - в приложение Б (с передачей данных из приложения А). К примеру пользователь просматривает список маршруток, и хочет посмотреть их маршрут на карте. Список маршрутов и карта - 2 независимых приложения. Один из вариантов - RMI. Но данная технология применима только к java(ну есть вроде для плюсов реализация, но не в связке с разными языками). Почему применима, потому что на данный момент предпологается писать приложения на java, но очень хотелось бы независимости от языка. Но даже в предположении того, что все приложения будут на java, минусом данного варианта является то что RMI - сетевая технология для распределенных систем, в текущей же задаче, взаимодействие процессов следует осуществить только для локальной машины. Я бы хотел услышать возможные варианты взаимодействия java-процессов. Такое взаимодействие я вижу или через посредника(который будет висеть на определенном порту), или в качестве одноранговой модели, - все это сокеты. А если не через сокеты, ведь все локально? Возможен вариант через Runtime.exec(), с последующим гетом инпут/оутпут стримов. Этот вариант тоже интересен, даже в доке про Process написано The ProcessBuilder.start() and Runtime.exec methods create a native process and return an instance of a subclass of Process that can be used to control the process... Так вот этот самый control the process я вижу через придумывание своего протокола общения, с парсингом стримов(в принципе с сокетами тоже самое) - вариант. Итак, если имеем только java программы, возможен ли вызов методов разных java-процессов. Что-то типа Local Method Invocation. Если же программы написаны на разных языках, единственный способ общения - сокеты и свой протокол. Очень интерестны ваши мнения. |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
В принципе тема уже обсуждалась, и кроме тех способов что ты назвал (сеть и stdin/stdout) есть еще пайпы и файлы.
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |