powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Передача файла как параметр (клиент - сервер)
25 сообщений из 39, страница 1 из 2
Передача файла как параметр (клиент - сервер)
    #39265542
Vladmir K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть приложение:
клиент Swing, Сервер - Ejb

Допустим есть функционал: загрузить курсы валют из xml файла.
Сервер тянет по расписанию.
Пользователь тоже может загрузить файл, выбрав его со своего локального диска.

Сейчас в приложении логика по обработке файлов дублируется:
- Клиент разгребает файл локально и обращается к серверу только сохранить уже сформированные сущности.
- У сервера, собственно, свой фасадный метод, который не используется клиентом.

Мне такое дублирование кода не нравится. Я бы передал с клиента файл (например даже через byte[]), делегировав всю логику серверу.
Передавать файл на сервер не нравится архитектору.

Проясните меня, пжста, чем ему не нравится?
...
Рейтинг: 0 / 0
Передача файла как параметр (клиент - сервер)
    #39265557
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladmir Kклиент Swing, Сервер - Ejb

Протокол RMI?

Vladmir KМне такое дублирование кода не нравится.
Ну, не дублируйте код, кто вас заставляет?

Vladmir KЯ бы передал с клиента файл (например даже через byte[]), делегировав всю логику серверу.
Передавать файл на сервер не нравится архитектору.
Проясните меня, пжста, чем ему не нравится?
Ну, тут есть разумное зерно. Зачем делать на сервере то что можно сделать на клиенте. XML парсинг не самая быстрая штука.
...
Рейтинг: 0 / 0
Передача файла как параметр (клиент - сервер)
    #39265573
Vladmir K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlazkowiczVladmir Kклиент Swing, Сервер - Ejb

Протокол RMI?
Да

BlazkowiczVladmir KМне такое дублирование кода не нравится.
Ну, не дублируйте код, кто вас заставляет?
Сделать общий класс, использовать его и на сервере и на клиенте?
Меня смущает - что логика на сервере в сешионбине, в котором инжектится правильно логер, т.д. Как это все богатство затянуть на клиент?

И дело даже не в простом парсинге xml, чтобы загрузить, считываются доп настройки/плюшки.

BlazkowiczНу, тут есть разумное зерно. Зачем делать на сервере то что можно сделать на клиенте. XML парсинг не самая быстрая штука.
Вот я всегда наивно полагал обратное, что клиент - чем тупее, тем лучше....
Сервер - по определению мощнее, зачем на клиенте делать "небыстрые" штуки?
...
Рейтинг: 0 / 0
Передача файла как параметр (клиент - сервер)
    #39265589
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladmir KСделать общий класс, использовать его и на сервере и на клиенте?

Не обязательно класс. Мавеном что ли не пользуетесь? Общий код отдельным модулем.

Vladmir KМеня смущает - что логика на сервере в сешионбине, в котором инжектится правильно логер, т.д. Как это все богатство затянуть на клиент?

Зачем вам логировать детали разбора XML.

Vladmir KИ дело даже не в простом парсинге xml, чтобы загрузить, считываются доп настройки/плюшки.

Ну, что-то всё равно останется на сервере. А то что от сервера не зависит, можно пользовать на клиенте. Промежуточный результат передавать. Что не так-то?

Vladmir KВот я всегда наивно полагал обратное, что клиент - чем тупее, тем лучше....
Сервер - по определению мощнее, зачем на клиенте делать "небыстрые" штуки?
Сервер труднее масштабировать. Нагрузки на клиента минимальные. А сервер обслуживает тысячи клиентов. В 90х у нас были полностью тупые клиенты-браузеры. И где они сейчас? Сплошной DHTML вокруг.
...
Рейтинг: 0 / 0
Передача файла как параметр (клиент - сервер)
    #39265599
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladmir Kчто клиент - чем тупее, тем лучше....
не всегда.
Поэтому у тебя и есть архитектор.
...
Рейтинг: 0 / 0
Передача файла как параметр (клиент - сервер)
    #39265616
Vladmir K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlazkowiczVladmir KСделать общий класс, использовать его и на сервере и на клиенте?

Не обязательно класс. Мавеном что ли не пользуетесь? Общий код отдельным модулем.
Класс - модуль. Суть та же. Ясно.

BlazkowiczЗачем вам логировать детали разбора XML.
Да я и пытаюсь объяснить, что помимо простого разбора xml, есть еще подготовительные этапы:
считать доп параметры, принять решение, что делать в зависимости от параметров, т.д.

BlazkowiczНу, что-то всё равно останется на сервере. А то что от сервера не зависит, можно пользовать на клиенте. Промежуточный результат передавать. Что не так-то?
Видимо, так и придется рефакторить....
Я дублирование логики так и нашел - открылся баг. Начал копать. В двух разных классах (один на клиенте, второй на сервере) 90% кода совпадает. Даже методы такие же (по семантике). Общего модуля нет...
BlazkowiczСервер труднее масштабировать.
Сервер на горячую можно передеплоить.
А если расширяемость тугая, тут уж архитектурой попахивает, имхо

BlazkowiczНагрузки на клиента минимальные.
Ага, лишь бы не забыться... и не переборщить.
BlazkowiczВ 90х у нас были полностью тупые клиенты-браузеры. И где они сейчас?
Хорошее было время! :)
Графику оптимизировали до боли, комментарии удаляли, чтоб облегчить файлы!
И да, они были тупыми! По мне - так это хорошо :)


BlazkowiczСплошной DHTML
В такие моменты я с ужасом начинаю думать, что если переписывать такой толстый клиент (как у нас со Свинга на веб), то ... мама не горюй!

Спасибо за разъяснения.
...
Рейтинг: 0 / 0
Передача файла как параметр (клиент - сервер)
    #39265619
Vladmir K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123не всегда.
Вот я за расшифровкой и обратился на форум.

Petro123Поэтому у тебя и есть архитектор.
Благодарю :)
...
Рейтинг: 0 / 0
Передача файла как параметр (клиент - сервер)
    #39265636
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladmir KДа я и пытаюсь объяснить, что помимо простого разбора xml, есть еще подготовительные этапы:
считать доп параметры, принять решение, что делать в зависимости от параметров, т.д.
зовётся одним словом - бизнес-логика (БЛ).
В толстом клиенте - на клинте.
В тонком клиенте - на сервере.
Плюс вариации про 3-х звенку и т.д.
...
Рейтинг: 0 / 0
Передача файла как параметр (клиент - сервер)
    #39265639
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladmir KВидимо, так и придется рефакторить....
Я дублирование логики так и нашел - открылся баг. Начал копать. В двух разных классах (один на клиенте, второй на сервере) 90% кода совпадает. Даже методы такие же (по семантике). Общего модуля нет...
обычное каждодневное дело прогера. Не дублируй.
Удачи!
...
Рейтинг: 0 / 0
Передача файла как параметр (клиент - сервер)
    #39265640
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladmir KСервер на горячую можно передеплоить.

В теории. На практике получается далеко не у всех.

Vladmir KА если расширяемость тугая, тут уж архитектурой попахивает, имхо

Она просто сложнее в любом случае. Клиента масштабировать нет надобности в принципе.
...
Рейтинг: 0 / 0
Передача файла как параметр (клиент - сервер)
    #39265642
Vladmir K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123Плюс вариации про 3-х звенку и т.д.
Ну вот я и пытаюсь собрать инфу о камнях от умных людей при трехзвенке с БЛ на сервере при передаче сериализированного файла от клиента серверу.

Пока собрал
- масштабируемость сервера и нагрузку. Blazkowicz, как обычно, +1
...
Рейтинг: 0 / 0
Передача файла как параметр (клиент - сервер)
    #39265656
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если в процессе загрузки могут происходить какие-то события, требующие диалога с пользователем (GUI), то перенести на сервер "все не так очевидно" ( C ) дочь офицера

IMHO
...
Рейтинг: 0 / 0
Передача файла как параметр (клиент - сервер)
    #39265667
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladmir KНу вот я и пытаюсь собрать инфу
слишком общие вопросы.
Я бы например:
- при десктопе минимальные классы на сервере и все классы на клиенте.
- на сервере только то что поддерживает целостность Модели данных. Например, отношения один ко многим, связи и т.д.
Всё.
Дублировать нечего за исключением небольшой валидации чего либо при движении мышкой над контролами).
IMHO
...
Рейтинг: 0 / 0
Передача файла как параметр (клиент - сервер)
    #39265674
Vladmir K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid KudryavtsevЕсли в процессе загрузки могут происходить какие-то события, требующие диалога с пользователем (GUI), то перенести на сервер "все не так очевидно" ( C ) дочь офицера
В данном случае, пользователь выбирает только файл. Остальное делается по алгоритму, без доп уточнений пользователя.
...
Рейтинг: 0 / 0
Передача файла как параметр (клиент - сервер)
    #39265677
Vladmir K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123- при десктопе минимальные классы на сервере и все классы на клиенте.
Фасады больше не в моде?
...
Рейтинг: 0 / 0
Передача файла как параметр (клиент - сервер)
    #39265687
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladmir KPetro123- при десктопе минимальные классы на сервере и все классы на клиенте.
Фасады больше не в моде?
Фасад обычно прикрывает какю то кухню внутри или скрывает её недостатки.
Давай конкретнее.
...
Рейтинг: 0 / 0
Передача файла как параметр (клиент - сервер)
    #39265699
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladmir KВ данном случае, пользователь выбирает только файл. Остальное делается по алгоритму, без доп уточнений пользователя.
Модель данныйх какая для курса валют?
Табличка Дата и Курс?
Тогда на сервере только INSERT, а всё остальное на клиенте.
Т.к. парсер XML к Модели данных на сервере не имеет отношения.
...
Рейтинг: 0 / 0
Передача файла как параметр (клиент - сервер)
    #39265732
Vladmir K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123Фасад обычно прикрывает какю то кухню внутри или скрывает её недостатки.
- Считать доп настройки для конкретного подразделения: смещать ли дату (например на завтра) курса из файла, локальная валюта подразделения (RUB, GBP, etc)
- Распарсить xml
- собрать модель валюты.

Сойдет за кухню?


Petro123Модель данныйх какая для курса валют?
Табличка Дата и Курс?
примерно да:
дата - валюта С - валюта В


Petro123Тогда на сервере только INSERT, а всё остальное на клиенте.
ИМХО, зачем такой клиент? Переход на другой клиент = новый проект!

Petro123Т.к. парсер XML к Модели данных на сервере не имеет отношения
тут я согласен.
Вопрос только: как организовать автоматическую загрузку по расписанию? Если логика и парсинг на клиенте, а запуск задачи на сервере...
...
Рейтинг: 0 / 0
Передача файла как параметр (клиент - сервер)
    #39265783
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladmir KПереход на другой клиент = новый проект!
если новый это веб клиент, то да. А как иначе?
Если новый клиент опять десктоп, то нафига он нужен?
...
Рейтинг: 0 / 0
Передача файла как параметр (клиент - сервер)
    #39265790
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladmir Kкак организовать автоматическую загрузку по расписанию? Если логика и парсинг на клиенте, а запуск задачи на сервере...
тут надо определятся что в приоритете.
Если автомат и по расписанию, то всё что я говорил забыть. Серверные методы и классы тянут файлы из расшаренной папки или FTP или ....
Если вдруг с клиента надо подтолкнуть, то просто данный шедулер выставляется на время минутой позже чем сейчас.
Делать это JOB'ом СУБД или на АппСервере исключительно вопрос в наличии программиста по данному ЯП.
...
Рейтинг: 0 / 0
Передача файла как параметр (клиент - сервер)
    #39265923
Vladmir K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123тут надо определятся что в приоритете.
80% автоматом
20% пользователь
Petro123Если вдруг с клиента надо подтолкнуть, то просто данный шедулер выставляется на время минутой позже чем сейчас.
В динамике выставлять расписание шедуллера, при этом такие привилегии должны быть у юзера? Сомнительно.

А моя фраза
Vladmir KПользователь тоже может загрузить файл, выбрав его со своего локального диска.
вообще перечеркивает такую концепцию! :( Потому что не подтолкнуть, а совсем другой файл загрузить...

В итоге, подожду аргументы архитектора, и скорее всего, будет некий общий модуль, как и советовал Blazkowicz, ну что и очевидно...
Хотя мое мнение, что фасад тут совсем не лишний, а серьезных технических камней против сериализации файла в том или ином виде, я не услышал.....
...
Рейтинг: 0 / 0
Передача файла как параметр (клиент - сервер)
    #39265935
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladmir KВ динамике выставлять расписание шедуллера, при этом такие привилегии должны быть у юзера? Сомнительно.
какие привилегии?
Если мы про оракла код, то:
В JOB у сервера написана одна строка вызова хранимой процедуры
ИМЯ_ПАКЕТА.ЗагрузитьВсёВ_общейПапке;
Ты правда боишься вызвать эту хранимку с клиента?

Vladmir KХотя мое мнение, что фасад тут совсем не лишний
я лично не вижу у одной строки выше фасада)).
Удачи!
...
Рейтинг: 0 / 0
Передача файла как параметр (клиент - сервер)
    #39265937
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladmir Kа серьезных технических камней против сериализации файла в том или ином виде, я не услышал.....
дал поиск по слову сериализация по топику. Нет ни слова.
Ты про что?
...
Рейтинг: 0 / 0
Передача файла как параметр (клиент - сервер)
    #39265941
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И как файл можно сериализовать? Это вообще как?
...
Рейтинг: 0 / 0
Передача файла как параметр (клиент - сервер)
    #39265966
Vladmir K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123дал поиск по слову сериализация по топику. Нет ни слова.
Petro123ИМЯ_ПАКЕТА.ЗагрузитьВсёВ_общейПапке;
Ты правда боишься вызвать эту хранимку с клиента?
Нет, хранимку, конечно, не боюсь

Но вот если какой-то внешний шедуллер, например в данном проекте, quartz, то доступ к конфигурационнику не хочется давать клиенту. Ибо это привилегия одминов.
Petro123я лично не вижу у одной строки выше фасада)).
Удачи!
спасибо :)

Petro123дал поиск по слову сериализация по топику. Нет ни слова.

Leonid KudryavtsevИ как файл можно сериализовать? Это вообще как?

Я так рассуждаю:
передать файл, как File, от клиента к серверу через RMI не получится, потому что он проксироватьсян не будет. Ну если конечно путь будет не одинаковый с сервера и клиента, а это утопия.
Значит надо как-то сериализировать...

Варианта, на мой взгляд, два приходят на ум:
1. В частном случае, файл текстовый - можно передать в виде строки
2. Можно создать некий DTO:
Код: java
1.
2.
3.
4.
5.
class FileDTO implements Serializable {
  String fileName;
  Long size;
  byte[] data;
}
...
Рейтинг: 0 / 0
25 сообщений из 39, страница 1 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / Передача файла как параметр (клиент - сервер)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]