Выбор протокола/технологии для клиент-сервера
От: ENP  
Дата: 20.05.06 15:45
Оценка:
Здравствуйте!

Планируется разработка серверного приложения с некоторой сложной внутренней логикой, количество одновременных подключений от 10 до 50, пиковая нагрузка не больше 1-2 запросов в секунду (а в основном значительно ниже), клиенты на Java и Delphi, но совсем отсекать VB и что-либо скриптовое (Python?) не хочется. Еще хочется вести разработку в терминах интерфейсов и методов, а не на уровне сокетов. А еще требуется авторизовать клиентов и на основании выданных им прав разрешать или или запрещать вызов методов (ну или всех методов одного интерфейса).

Варианты:

1. XMLRPC — реализации есть для всего, но понятие интерфейса отсутствует, более того, вместо:

Integer result = interface.method(param1, param2);


на клиенте придется писать:

Object[] params = new Object[]{param1, param2};
Integer result = (Integer)client.execute("interface.method", params);


что, впрочем решается путем описания на сервере фиктивного интерфейса и доставки сгенерированного враппера на клиента.

2. SOAP — реализации есть для всего, роль интерфейса играет WSDL, генерация врапперов уже есть, по крайней мере в Axis (а в Delphi есть?)

В обоих случаях поддержки авторизации нет, но можно задействовать средства сервлет-контейнера и что-нибудь вроде http://www.acegisecurity.org/ . Но нет ли каких ограничений на создание внутри Tomcat или Jetty собственных потоков?

3. RMI, EJB — похоже, что в Delphi малой кровью их не задействовать, или я не прав?

4. Corba — все совсем сложно, как использовать security непонятно, есть только одна проприетарная и небесплатная реализация ORB (VisiBroker), работающая с Java и Delphi.

Может я еще чего забыл? Какие будут соображения у присутствующих?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.