Hessian/Burlap JavaScript implementation
От: ENP  
Дата: 25.04.08 13:03
Оценка:
Здравствуйте!

Правильно ли я понимаю, что реализация клиента Hessian/Burlap на JavaScript в принципе возможна, но никто до сих пор не собрался?
Re: Hessian/Burlap JavaScript implementation
От: Cyberax Марс  
Дата: 25.04.08 17:26
Оценка:
Здравствуйте, ENP, Вы писали:

ENP>Здравствуйте!

ENP>Правильно ли я понимаю, что реализация клиента Hessian/Burlap на JavaScript в принципе возможна, но никто до сих пор не собрался?
А зачем? Для JavaScript нужен JSON. Разбор Hessian/Burlap будет заметно тормозить.
Sapienti sat!
Re[2]: Java remote interface for JavaScript
От: ENP  
Дата: 30.04.08 19:54
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Здравствуйте, ENP, Вы писали:


ENP>>Здравствуйте!

ENP>>Правильно ли я понимаю, что реализация клиента Hessian/Burlap на JavaScript в принципе возможна, но никто до сих пор не собрался?
C>А зачем? Для JavaScript нужен JSON. Разбор Hessian/Burlap будет заметно тормозить.

А разбор XML-RPC, реализации которого для JavaScript вроде имеются, тормозить не будет? Во времена ExtJS и GWT это уже не аргумент

JSON — это всего лишь способ отобразить POJO на JavaScript, но никак не RPC.

Сформулирую задачу: есть некий веб-сервис, требуется написать к нему толстого и веб-клиента, при этом для обоих хочется выставить наружу один и тот же интерфейс и описать этот интерфейс в терминах RPC, а не REST, например. Ну или хотя бы иметь возможность вызов одного и тот же метода удаленного интерфейса представить и так, и эдак. Неужели это такая редкая задача?

Что можно сделать:

1. Использовать заведомо менее эффективный XML-RPC (отображение JSON <-> POJO, видимо, нужно будет прикручивать) — впрочем, не для всех приложений это снижение эффективности будет проблемой

2. Использовать разные технологии ремотинга — DWR для JavaScript (ну тут с JSON <-> POJO не все гладко) и Hessian/Burlap для Java (или даже Spring HTTP invoker — чтоб заведомо не иметь проблем с POJO. Как там с ними в Hessian/Burlap?)

3. Написать реализацию Hessian/Burlap для JavaScript. Как вариант — написать JavaScript-интерфейс для Spring HTTP invoker, заодно используя JSON для сериализации — но, боюсь, в обоих случаях овчинка не стоит выделки.
Re[3]: Java remote interface for JavaScript
От: Cyberax Марс  
Дата: 30.04.08 22:38
Оценка:
Здравствуйте, ENP, Вы писали:

ENP>Сформулирую задачу: есть некий веб-сервис, требуется написать к нему толстого и веб-клиента, при этом для обоих хочется выставить наружу один и тот же интерфейс и описать этот интерфейс в терминах RPC, а не REST, например. Ну или хотя бы иметь возможность вызов одного и тот же метода удаленного интерфейса представить и так, и эдак. Неужели это такая редкая задача?

Так какие проблемы? Просто экспортируешь сервис через два вида RPC: JSON и <твой-любимый-RPC>. Тем более, что ты Spring используешь — там это делается элементарно.

Могу поделиться JSON-экспортёром, если надо.

Выглядит примерно так:
    <bean name="/TagManagerService" class="com.geotags.utils.JSONServiceExporter">
        <property name="service" ref="tagManagerService"/>
        <property name="serviceInterface" value="com.geotags.services.TagManagerService"/>
    </bean>

В HTMLе:
    <script src="/res/prototype.js" type="text/javascript"></script>
    <script src="/res/jsonrpc.js" type="text/javascript"></script>

В JavaScript'е:
var tagManager=new JSONRpcClient("/remoting/TagManagerService");
tagManager.checkEnv(<параметры>, function(res){/*Функция обработки результата*/});
Sapienti sat!
Re[4]: Java remote interface for JavaScript
От: ENP  
Дата: 01.05.08 07:02
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Здравствуйте, ENP, Вы писали:


ENP>>Сформулирую задачу: есть некий веб-сервис, требуется написать к нему толстого и веб-клиента, при этом для обоих хочется выставить наружу один и тот же интерфейс и описать этот интерфейс в терминах RPC, а не REST, например. Ну или хотя бы иметь возможность вызов одного и тот же метода удаленного интерфейса представить и так, и эдак. Неужели это такая редкая задача?

C>Так какие проблемы? Просто экспортируешь сервис через два вида RPC: JSON и <твой-любимый-RPC>. Тем более, что ты Spring используешь — там это делается элементарно.

C>Могу поделиться JSON-экспортёром, если надо.


Поделись, пожалуйста. На jsonrpc.js тоже неплохо бы посмотреть.
Re[5]: Java remote interface for JavaScript
От: Cyberax Марс  
Дата: 01.05.08 07:20
Оценка:
Здравствуйте, ENP, Вы писали:

C>>Могу поделиться JSON-экспортёром, если надо.

ENP>Поделись, пожалуйста. На jsonrpc.js тоже неплохо бы посмотреть.
http://files.rsdn.ru/37054/exporter.zip , краткое HOWTO внутри. Не тестировалось со сложными параметрами методов, но при желании докрутить можно без проблем — json-lib это поддерживает.
Sapienti sat!
Re[6]: Java remote interface for JavaScript
От: ENP  
Дата: 01.05.08 12:49
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Здравствуйте, ENP, Вы писали:


C>>>Могу поделиться JSON-экспортёром, если надо.

ENP>>Поделись, пожалуйста. На jsonrpc.js тоже неплохо бы посмотреть.
C>http://files.rsdn.ru/37054/exporter.zip , краткое HOWTO внутри. Не тестировалось со сложными параметрами методов, но при желании докрутить можно без проблем — json-lib это поддерживает.

Спасибо, посмотрю
Re[6]: Java remote interface for JavaScript
От: ENP  
Дата: 03.05.08 19:57
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Здравствуйте, ENP, Вы писали:


C>>>Могу поделиться JSON-экспортёром, если надо.

ENP>>Поделись, пожалуйста. На jsonrpc.js тоже неплохо бы посмотреть.
C>http://files.rsdn.ru/37054/exporter.zip , краткое HOWTO внутри. Не тестировалось со сложными параметрами методов, но при желании докрутить можно без проблем — json-lib это поддерживает.

Многие TODO из JSONServiceExporter.handleRequest закрыты в JSONRPCServlet.service из jabsorb. Почему для реализации экспортера ты использовал менее функциональный json-lib, тем более, что клиент таки взят у предшественника jabsorb?
Re[7]: Java remote interface for JavaScript
От: Cyberax Марс  
Дата: 04.05.08 07:21
Оценка:
Здравствуйте, ENP, Вы писали:

C>>http://files.rsdn.ru/37054/exporter.zip , краткое HOWTO внутри. Не тестировалось со сложными параметрами методов, но при желании докрутить можно без проблем — json-lib это поддерживает.

ENP>Многие TODO из JSONServiceExporter.handleRequest закрыты в JSONRPCServlet.service из jabsorb. Почему для реализации экспортера ты использовал менее функциональный json-lib, тем более, что клиент таки взят у предшественника jabsorb?
Ага, я сначала смотрел jabsorb, но что-то мне в нём не понравилось. Сейчас уже не вспомню что.
Sapienti sat!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.