Здравствуйте!
Планируется разработка серверного приложения с некоторой сложной внутренней логикой, количество одновременных подключений от 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.
Может я еще чего забыл? Какие будут соображения у присутствующих?