| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java EE (J2EE) и Spring > Из двухзвенки в трехзвенку |
| Автор: Zverek 30.10.2006, 13:02 |
| Здравствуйте! Подскажите пожалуйста, что мне лучше сделать в следующей ситуации: Небольшой оффтопик - вместо Applet'a у меня есть Java WebStart приложение (толстый клиент, используется Swing). Данное приложение работает с БД Oracle (строки выбираются, вставляются, удаляются и т.д.), коннектится напрямую через JDBC. Появилась необходимость сделать так, чтобы клиент общался с сервером только по Http, соответственно получить прямой коннект к БД не получится, придётся делать трёх звенную структуру приложения. Буду использовать Oracle AS (OC4J контейнер). Пока только размышляю, как это должно работать, поэтому назрело несколько вопросов: 1. Возможно ли это сделать, если клиент будет запускаться из-под Java WebStart ? 2. Как проще всего организовать работу серверной части нового приложения, какие технологии использывать ? 3. Как должны будут общаться между собой клиентская и серверная части (в виде чего будут передаваться данные) ? Заранее большое спасибо всем, кто откликнется! P.S. Я только учусь, поэтому извините меня, если вопросы покажутся глупыми. |
| Автор: LSD 30.10.2006, 13:14 |
| 1. Да. Java WebStart - это полноценное desktop приложение, так что оно может все, что может Java (даже Oracle установить на локальную машину 2. Проще всего наверно веб сервисы, хотя это зависит от объема передаваемых данных и частоты запросов. 3. Вариантов море, надо поподробней о задаче. Единственное чего не стоит делать, это пытаться пренести приложение "как есть". Т.е. не стоит просто гнать DML через сеть, надо пересмотреть логику работы приложения. |
| Автор: LSD 30.10.2006, 14:49 | ||
Думаю тут веб сервисы спокойно справятся. Да и вариантов для HTTP не так много. |
| Автор: Zverek 1.11.2006, 11:08 |
| Четвёртый день читаю форум, статьи, спецификацию...в голове пока ещё каша, но уже начинает вырисовываться определённая картина. Появился следующий вопрос. Клиентское и серверное приложение будут написаны на Java, нельзя ли исходя из этого использовать RMI (он вроде бы как побыстрее и попроще WS)? В исходных данных по задаче написал, что обязательное условие - передача по Http, но на самом деле просто необходима передача данных по 80 порту (сисадмин не согласен открывать другие порты). Т.е. возможна ли работа с RMI по 80 порту (или там есть ограничение, если не путаю с 1023 порта)? |
| Автор: tux 1.11.2006, 12:31 | ||
Думаю тебе есть смысл использовать не SOAP, какие-нибудь вебсервисы попроще, например, http://ws.apache.org/xmlrpc/, http://www.caucho.com/hessian/ или http://www.caucho.com/resin-3.0/protocols/burlap.xtp. Работать с ними еще проще чем с RMI, правда первый протокол крайней ограничен в смысле типов данных, а вот Hessian или Burlap думаю очень даже подойдут. |
| Автор: Zverek 1.11.2006, 13:52 |
| tux, Вот спасибо! Только что скачал библиотеку Burlap/Hessian, читаю спецификацию по ним. Уже склонялся к мысли использовать именно их, но ещё сомневался. Но теперь, после Вашего совета, сомнений не осталось, инструмент выбран, буду дерзать. Подскажите, в каком случае лучше использывать Burlap, а в каком Hessian ? LSD, tux, Большое спасибо за помощь! И всем форумчанам за множество познавательных тем. |
| Автор: tux 1.11.2006, 14:01 |
| Hessian точно более эффективен при передаче двоичных данных, а так они практически идентичны. |