Студенческий сайт КФУ - ex ТНУ » Учебный раздел » Учебные файлы »ПРОГРАММИРОВАНИЕ

Удаленный рабочий стол для Linux

Тип: курсовая работа
Категория: ПРОГРАММИРОВАНИЕ
Скачать
Купить
Разработка приложения, которое осуществляет удаленный доступ управления компьютером с операционной системой Linux с компьютера с ОС Windows. Реализация функциональной части. Графический интерфейс клиента и сервера. Разработка интеграционных тестов.
Краткое сожержание материала:

Размещено на

Размещено на

Содержание

ВВЕДЕНИЕ

1. АНАЛИЗ ИСХОДНЫХ ДАННЫХ

1.1 Анализ предметной области

1.2 Специальное и общесистемное программное обеспечение

2. ПРОГРАММНОЕ ПРОЕКТИРОВАНИЕ

2.1 Пользовательский интерфейс

2.2 Функциональное обеспечение

2.3 Структурное обеспечение

2.4 Алгоритмическое обеспечение

2.5 Архитектурное обеспечение

2.6 Информационные структуры

3. ПРОГРАММНАЯ РЕАЛИЗАЦИЯ

3.1 Детальная реализация функциональных частей ПО

3.1.1 Реализация функциональной части

3.1.2 Разработка пользовательского интерфейса

3.2 Сопроводительная документация программного обеспечения

3.2.1 Разработка описания программы

3.2.2 Разработка руководства пользователя

3.2.3 Разработка методики интеграционных тестов

3.3 Анализ программного обеспечения

3.3.1 Анализ исходного кода приложения

3.3.2 Анализ производительности приложения

3.4 Тестирование программного обеспечения

3.4.1 Разработка модульных тестов

3.4.2 Результаты интегрированного тестирования

ЗАКЛЮЧЕНИЕ

СПИСОК ЛИТЕРАТУРЫ

ПРИЛОЖЕНИЯ

Введение

Целью данного курсового проекта является разработка приложения, которое осуществляет удаленный доступ управления компьютером c операционной системой Linux с компьютера с операционной системой Windows.

По мере развития компьютерных сетей, все большую актуальность получает проблема взаимодействия не компьютеров внутри сети, а взаимодействие персональных компьютеров, находящихся в разных сетях. При этом открывается ряд возможностей, недоступных ранее, и в связи с этим возникает ряд технических проблем и сложностей, которые необходимо решить.

Главной проблемой, которую необходимо решить, является возможность объединения в сети персональных компьютеров, физически расположенных в различных точках, скажем в разных офисах или даже в разных офисных зданиях. При этом возникают проблемы не только по организации работы сотрудников с совместными данными, но и с администрированием персональных компьютеров и решением проблем, возникающих у сотрудников в техническом плане.

Аналогом проекта, который также осуществляет удаленный доступ, является программа Team Viewer[1]. Приложение предлагает следующие функции:

- обеспечение удаленного доступа;

- передача файлов;

- видео конференция, чат;

- удаленный доступ с несколькими клиентами;

- работа с качеством транслируемого изображения;

- делать скриншоты;

- удаленная перезагрузка;

- запись сеанса для документирования, включая звук и видео;

- удаленная печать с домашнего офиса;

Один из минусов этой программы заключается в том, что при желании осуществить удаленный доступ, невозможно просмотреть весь список доступных для подключения ПК, требуется ввести только один определенный ID компьютера. Второй недостаток - программа недостаточно оптимизирована в плане требований к скорости интернет соединения, даже при выборе наихудшего качества транслируемого видео.

приложение удаленный доступ linux

1. Анализ исходных данных

1.1 Анализ предметной области

Предметной областью разрабатываемого проекта является осуществление удаленного администрирования к компьютеру с ОС Linux. Важнейшими аспектами для исследования является соединение клиента с сервером.

Требуется разработать приложение, которое включает в себя следующие функциональные части:

Разработка серверного приложения. Сервер должен предоставлять возможность подключаться к клиенту, делать скриншоты и отсылать их клиенту, а также принимать от клиента информацию о событиях и исполнять их в операционной системе.

Разработка клиентского приложения. Клиент должен представлять собой GUI-приложение, которое должно иметь возможность подключения к клиенту, отображения скриншотов, а также перехватка событий, осуществленных благодаря действиям пользователя и отсылку информации о выполненных действиях серверу.

1.2 Специальное и общесистемное программное обеспечение

При написании данного курсового проекта планируется использовать следующее стороннее программное обеспечение и инструментарий:

- QTCreator[2] - кросс-платформенная свободная IDE для разработки приложений на языках C, C++ и QML. Продукт компании Troltech для работы с фрейммворком QT;

- Qt[2] - кросс-платформенный инструментарий разработки ПО на языке программирования C++.

- Microsoft Office Word 2010 - для создания пояснительной записки.

- Enterprice Architect[3] - для разработки диаграмм.

- X Window System[4] -- оконная система, обеспечивающая стандартные инструменты и протоколы для построения графического интерфейса пользователя.

Разработка сервера будет осуществляться на ОС Ubuntu 12.04. Интерфейс сервера будет иметь довольно простой вид, что обусловлено малым взаимодействием с пользователем. Разработка клиента будет осуществляться на ОС Windows7 использованием виджетов, осуществляющих взаимодействие пользователя с самим приложением.

2. Программное проектирование

2.1 Пользовательский интерфейс

Пользовательский интерфейс клиента.

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

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

Основное пространство отображения информации в приложении будет представлено в виде поля, в котором отображается скриншот - результат действия пользователя с приложением. Окно приложения должно подстраиваться под разрешение экрана на компьютере с ОС Linux для корректного выполнения событий, информация о которых отсылается серверному приложению.

После составления вышеописанных требований был составлен прототип интерфейса главного окна (Рис.1.1).

Рисунок 1.1 - Прототип интерфейса главного окна

Пользовательский интерфейс сервера.

Серверное приложение должно иметь простой интерфейс, содержащий меню, в котором пользователь выбирает нужное ему действие.

Рис 1.2 - Прототип интерфейса главного окна

2.2 Функциональное обеспечение

Прежде, чем начинать разработку необходимо заранее определить требуемый функционал нашего программного обеспечения, чтобы это сделать было решено составить диаграмму вариантов использования (прецедентов).

В данном проекте в качестве актеров выступают пользователь, (клиентское приложение) и сервер.

Пользователь взаимодействует непосредственно с клиентским приложением и должен иметь возможность выполнить следующие действия:

Ввести IP-адрес компьютера, на котором находится серверное приложение.

Осуществлять нажатия мыши и клавиатуры при активном клиентском приложении.

На основании вышесказанного была построена диаграмма вариантов использования, представленная в Приложении А.

2.3 Структурное обеспечение

Клиент состоит из двух классов:

MainWindow - класс, отвечающий за визуализацию приложения, создание окна и за перехватку событий, информация о которых отсылается серверному приложению. Наследует QMainWindow и использует такие стандартные виджеты, как меню и лэйбл, который в свою очередь используется для отображения скриншота на экране, строка состояния, отображающая состояние о соединении.

MyClient - класс, отвечающий за реализацию TCP соединения между приложениями, отправку и прием сообщений. Является наследником класса QObject.

Классы содержат следующие методы:

void Display - метод, отображающий полученный скриншот в самом приложении, также на основании загруженного изображения, изменяет размер главного окна, и в этом метода вызывается метод из класса MyServer, в который в качестве параметров передаются сведения о произошедших событиях мыши и клавиатуры.

virtual void mousePressEvent, virtual void mouseReleaseEvent, virtual void mouseMoveEvent, virtual void mouseDoubleClickEvent, virtual void keyPressEvent, virtual void keyReleaseEvent, virtual void wheelEvent - переопределенные специализированные методы, благодаря которым обрабатываются события клавиатуры и мыши и информация о которых в дальнейшем поступлением этой информации серверному приложению.

Слоты:

void slotConnection и void about - методы, которые вызываются при выборе пользователем полей пунктов в меню Connection и About. В слоте slotCon...

Другие файлы:

Используем удаленный рабочий стол в Windows XP
Если вы включите функцию "Удаленный рабочий стол" в Windows XP, то сможете получить доступ к вашему рабочему столу с удаленного компьютера. Вы сможете...

Java Programming on Linux
Java Programming on Linux is a detailed how-to book on using Java on a Linux operating system. Topics include installing and enabling a Java runtime e...

Foundations of CentOS Linux: Enterprise Linux On the Cheap
You need to maintain clients, servers and networks, while acquiring new skills. Foundations of Cent OS Linux: Enterprise Linux On the Cheap covers a...

Mastering Linux. Second edition
Newly revised and updated, Mastering Linux, Second Edition is the best all-in-one Linux resource available anywhere. Inside, you'll find everything yo...

Spring Into Linux
The power and flexibility of the Linux desktop-for working professionals who need to get up-to-speed fast on Linux. From Janet Valade, best-selling PH...