![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
kaa2006 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 46 Регистрация: 12.5.2006 Репутация: нет Всего: нет |
Всем привет.
Вот собираюсь писать программу в которой должна использоваться технология распределенных приложений CORBA. Необходимо в ней реализовать работу с файлами, т.е. передачу и прием файлов в сети через CORBA, но вот с текстовыми данными проблем не, а вот с файлами не понятно? Возможно реализовать работу с файлами через CORBA, если возможно то как или где можно посмотреть. Зараннее всем спасибо. ![]() |
|||
|
||||
Stampede |
|
|||
![]() Гносеолог ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 963 Регистрация: 25.4.2005 Где: Calgary, Alberta, Canada Репутация: 24 Всего: 144 |
Да в принципе там, где можно послать текст, можно послать все что угодно - вопрос оформления. В частности, двоичный файл можно всегда представить как массив байтов и переслать в виде той или иной закодирванной строковой последовательности: Base64 или Hex, например. Скорее всего, в CORBA байтовый массив можно передать в качестве парамтра и напрямую. Так что с этим проблем быть не должно. Пробема тут на самом деле вот какого рода: если передавать файл за один вызов, то время выполнения файловой операции может оказаться очень, в общем случай - просто опупительно очень большим. Кто когда-нибудь утягивал кинушки с файлообменников, тот знает, что один фильм может качаться и по полдня, и больше. Самое неприятное при этом - это то, что у пользователя данной функции не будет абсолютно никакого контроля за тем, что происходит. Сколько уже байт переслано? Сколько осталось? Сколько примерно времени еще ждать.? А представь ужас ситуации, когда после пяти часов ожидания в потемках тебе вываливается сообщение: связь отвалилась, запускайте заново.
Поэтому в реальной проге такого рода жизненно важно обеспечить возможность делать по крайней мере следующие вещи:
Возникает вопрос: как это реализовать? Тут я могу предложить одно достаточно простое решение: надо реализовать свой программный протокол, который пересылает файлы небольшими порциями. Например, внешний программный интерфейс такого компонента мог бы выглядеть следующим образом:
На сервере под этот интерфейс надо будет написать реализацию, а на клиенте - трансферного агента, который скрывает последовательность серверных вызовов, предоставляя прикладному программисту простую локальную сигнатуру: public void sendFile(File file) throws IOException. Можно, конечно, сделать и без всех этих заморочек, но в этом случая я бы старался в будущем избегать личной встречи с пользователями своего сервиса - для здоровья будет полезнее ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |