2012-05-05 4 views
0

У меня есть локально работающий JAVA RMI Applicaton (сервер & клиент). Я использовал Eclipse & плагин (Genady) для записи & для запуска этих приложений.Java RMI - удаленное развертывание

Есть три части в моем проекте: 1. Сервер 2. Интерфейс (общий для обоих клиента & сервера) 3. Клиент

Локальное развертывание, с помощью Eclipse (+ плагин), работает отлично. Клиент использует общий интерфейс (добавленный к «Путь сборки») для связи (на n) с сервером (который также имеет общий интерфейс, добавленный к его пути сборки в eclipse).

И теперь я планирую протестировать ту же систему на двух разных компьютерах, имеющих подключение к Интернету. Что мне теперь делать? Должен ли я устанавливать Apache на одном компьютере (Server) &, поместите файлы Server + Interface (class-files) в каталог, доступный в Интернете? & затем запустите клиентские файлы (имеющие как файлы интерфейса интерфейса клиента &) с другого компьютера (клиента)?

Может кто-нибудь помочь мне настроить это? Я имею в виду, пошаговое руководство относительно того, что я должен делать для того, чтобы удаленное развертывание работало?

Является ли использование Apache (или любого приложения веб-сервера) обязательным? Любая другая альтернатива для моего приложения работать без использования веб-сервера (я имею в виду, как прямое подключение или что-то еще?)?

(я чувствую, что я дал всю информацию, которая необходима. Но если больше информации необходимо, пожалуйста, спрашивайте.)

Это мой последний год проект & мой последний демо Скоро! Спасибо, заранее!

+0

Вам не нужен сервер Apache, если вы не используете функцию codebase. Остальная часть вашего вопроса слишком расплывчата, чтобы ответить. Вам необходимо развернуть серверные классы на сервере; клиентские классы для клиента; и разделяемые классы для обоих. – EJP

ответ

0

Я не знаю, что делает Genady, так как я редко использую Eclipse. Разработка приложений RMI очень проста в любом случае.

Упакуйте код сервера и запустите его на удаленном компьютере (R в RMI) (как хост сервера), он должен зарегистрироваться в реестре, который по умолчанию использует порт 1099, но вы можете создать реестр в любом порту, который вы как:

MyRemoteInterface stub = (MyRemoteInterface) UnicastRemoteObject.exportObject(server, 0); //I don't know if this is needed anymore, or you could make the "server" extend UnicastRemoteObject 
int thePortUsedInTheServer = 1099; //default 
Registry registry = Registry.createRegistry(thePortUsedInTheServer); 
registry.rebind("Server", stub)); 

Упаковать код клиента и запустить его на клиента (ов) (М + I в RMI), он должен найти в реестре в удаленном компьютере (хост + порт):

String host = ...; //the host where the server is 
int port = ...; //the port used in the server 
Registry registry = LocateRegistry.getRegistry(host, port); 
MyRemoteInterface stub = (MyRemoteInterface)registry.lookup("Server"); 
stub.myRemoteMethod(); //call your remote methods 

Javadoc должен помочь вам. Больше ничего не требуется, нет Apache и т. Д. Следите за агрессивным антивирусным программным обеспечением, брандмауэрами и т. П. Это единственные реальные проблемы после того, как вы получите суть этого.

Смежные вопросы