Skip to content

Client-server application for access to remote file system.

Notifications You must be signed in to change notification settings

niktrop/remote-access

Repository files navigation

<html>
<body style="width:600px">
<h1>Remote access</h1>
<p>Клиент-серверное приложение для удаленной работы с файловой системой.
    Предполагает одновременное подключение к серверу не более одного клиента.</p>

<h2>Настройка</h2>
<p>Настройка осуществляется с помощью редактирования файлов <em>server.properties</em> и <em>client.properties</em>.
    Можно настроить сетевое соединение, а также указать список папок, которые будут доступны из программы.
    Подробности содержатся в самих файлах.</p>

<h2>Интерфейс</h2>
<p>Клиентский интерфейс позволяет перемещаться по образам файловой системы клиента и сервера,
    которые используются в программе, а также совершать различные действия с файлами и папками:
    копирование, переименование, удаление. Управление совершается с помощью мыши.
    Двойной клик на папке показывает ее содержимое, на файле - открывает файл, если он находится на клиенте.</p>
<p>Происхождение образа файловой системы (клиент или сервер) можно определить по цвету поля в выпадающем списке.
    Светло-зеленый цвет символизирует локальные файлы, светло-синий - файлы с сервера.</p>
<p>Интерфейс серверной части минимален, позволяет только выйти из программы.</p>

<h2>Структура программы</h2>
<p>Клиент и сервер устроены практически одинаково. Основные различия в интерфейсе и установке соединений.</p>

<h4>Образы файловой системы</h4>
<p>Для представления частей файловой системы, с которыми работает программа, используются классы из пакета
    remote_access.file_system_model. Древовидная структура реализована на базе библиотеки nu.xom,
    которая позволяет получать представление образов файловой системы в xml.</p>

<h4>Сетевое взаимодействие</h4>
<p>Работа с сетью осуществляется на базе библиотеки Netty. Программа использует два различных соединения:
    одно для передачи команд и образов файловой системы, другое - для передачи файлов.</p>

<h4>Команды</h4>
<p>Классы, которые реализуют интерфейс SerializableCommand, используются в основном для взаимодействия с
    файловой системой и управления образами файловой системы, а также для отображения сообщений.
    Могут исполняться локально или посылаться по сети.</p>

<h4>Controller</h4>
<p>Класс Controller объединяет в себе различные части программы. Он содержит ссылки на следующие компоненты:</p>
<ul>
    <li>Коллекция образов файловой системы (на сервере - только своих, на клиенте - своих и с сервера)</li>
    <li>CommandManager для исполнения и отправки команд</li>
    <li>FileTransferManager для отправки файлов</li>
    <li>NotificationManager для отображения сообщений пользователю</li>
    <li>FileSystemWatcher и FSChangeHandler - для отслеживания изменений файловой системы и их отражения в программе</li>
    <li>Дает возможность регистрировать слушателей и уведомлять их об изменениях своего состояния.</li>
</ul>
</body>
</html>

About

Client-server application for access to remote file system.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages