-
Notifications
You must be signed in to change notification settings - Fork 0
/
Readme.html
49 lines (42 loc) · 2.78 KB
/
Readme.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<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>