Java: сокеты или RMI? - PullRequest
       15

Java: сокеты или RMI?

7 голосов
/ 12 апреля 2010

Мне нужно разделить наше приложение на легкое графическое приложение и приложение бизнес-логики. Это не будет установка клиент / сервер как таковая, поскольку компонент «сервер» будет иметь только одного клиента.

Другое ограничение в приложении состоит в том, что оно имеет только одну точку входа / выхода. Поэтому, если бы мы использовали RMI, это было бы только для одной функции. Все данные формы уже заключены в строку и переданы через одну транспортную область.

Должен ли я просто использовать Java Sockets для улучшения этого приложения или использовать RMI? Или какая-то другая технология Java?

Я сделал предыдущий пост с изложением требований нашего приложения, однако оно осталось без ответа. https://stackoverflow.com/questions/2604528/terminal-panel-pc-single-server-solution-client-server-or-rdp

Приветствие.

Ответы [ 4 ]

6 голосов
/ 12 апреля 2010

лично RMI кажется излишним, если у вас есть только один метод для вызова, и все ваши данные уже заключены в строку. Я полагаю, простой сервер сокетов будет очень хорошо для ваших нужд. тем не менее, RMI дает вам кучу вещей бесплатно, например, многопоточность, распределенную сборку мусора, маршалинг объектов и т. д., однако, если у вас только 1 клиент, тогда многопоточность может быть бесполезна, и, поскольку вы выполняете маршаллинг своих собственных объектов, тогда эти преимущества могут вам ничего не дать.

здесь есть хорошая страница о возможностях rmi: http://java.sun.com/javase/technologies/core/basic/rmi/whitepaper/index.jsp

2 голосов
/ 12 апреля 2010

Создав приложения, которые использовали необработанные сокеты для связи, которые использовали RMI и SOAP, проще всего (тонким волоском) использовать RMI, но тогда вы строго обязаны использовать Java для всего. Ключ к тому, почему RMI является самым простым, заключается в том, что он обеспечивает отправку целых сообщений , а включает базовую инфраструктуру обнаружения, и в то же время он не имеет сложности SOAP (которая намного сложнее, чем все остальное перечисленные выше).

2 голосов
/ 12 апреля 2010

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

1 голос
/ 12 апреля 2010

Вы можете обернуть вашу точку входа сервера в сервлет и выполнить POST от клиента.

...