2012-02-27 3 views
4

Я создаю пару сервисов, которые мне нужны для удаленного доступа друг к другу. В настоящее время я использую Spring RmiServiceExporter, но мне интересно, есть ли рамки, которые не зависят от классов java, серийного номера и т. Д. Другими словами, я не хочу делиться Java-кодом/классами между службами ,RPC Framework для Java

ответ

1

С RMI вы всегда будете преданы Java-классам. Могу ли я предложить вам взглянуть на подход веб-сервиса RESTful?

5

Ваши варианты включают в себя:

ОТДЫХ, в частности, на самом деле не RPC; он требует другого стиля мышления, где вы фокусируетесь на определении богатого набора ресурсов (существительных), а не на богатом наборе методов (глаголов).

Другие могут обеспечить более традиционный RPC, но с менее жесткой связью с Java, и поэтому независимы от языка программирования.

В SOAP вы можете написать интерфейс в WSDL или сгенерировать его из аннотированных классов Java.

В Thrift вы пишете интерфейс в TRLID IDL и генерируете классы Java из этого.

0

Protocol Buffers - это хороший способ избежать проблем с сериализацией/версией и оставаться агностиком.

0

Другой вариант: Versile Java (Я - один из разработчиков). Он находится в разработке, но уже достаточно стабилен, поэтому вы можете попробовать, если лицензия GNU Affero GPL будет работать для вашего проекта.

Вертикальная Java обрабатывает взаимодействие на уровне объекта. Выставление объектов и методов осуществляется прямолинейно, наследуя соответствующий базовый класс и используя аннотации. Ниже приведен простой пример.

import org.versile.orb.external.*; 
@Doc(doc="Provides an echo service") 
public class Echoer extends VExternal { 
    @Publish(show=true, ctx=false) 
    @Doc(doc="Echo service, returns the provided argument.") 
    public Object echo(Object obj) { 
     return obj; 
    } 
} 

В качестве бонуса вы также можете использовать его для взаимодействия с клиентами Versile Python или услуг.

+0

Спасибо. Я посмотрю – Mikhas

+0

@ Mikhas Надеюсь, что это соответствует вашим потребностям; не стесняйтесь использовать наш [форум] (https://versile.com/forum/), если у вас есть какие-либо вопросы – Versile

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