Лабораторная
работа 4.
Разработка программы работы с MySQL в архитектуре клиент-сервер — 3 уровня. Программу, разработанную в лабораторной 3 (2-уровневая архитектура) переделать в трёхуровневую архитектуру:
[тонкий клиент: только интерфейс]<=>[обработка и взаимодействие с СУБД]<=>[СУБД]
или так:
[тонкий клиент: только интерфейс]<=>[сервер приложения и взаимодействие с СУБД]<=>[СУБД]
Каждый уровень — отдельная программа. Клиент располагается в клиентской ЭВМ (в АРМ пользователя fio). Сервер приложения располагается на сервере ИС. На сервере же может располагаться СУБД или СУБД располагается на отдельном сервере Базы Данных.
Взаимодействие клиента и сервера приложения раелизовать посредством механизма сокетов.
Разработать протокол информационного взаимодействия клиент-сервер.
Дополнительная информация: к заданию приложены примеры работы с сокетами при программировании терминальных программ.
Внимание! Непосредственно эти примеры в данной разрабокте использовать нельзя, потому что в бивблиотеке QT определён свой специальный класс для работы с сокетами — возникает конфликт имён. Поэтому, в данном проекте нужно воспользоваться соответствующим классом из QT.
1. Требования.
1.1. Программа должна быть написана на языках С или java в Linux. Для разработки может использоваться любой дисnрибутив Linux, но программа должна быть работоспособна в AltLinux, MOPS или Puppy, установленных в лаборатории 213.
1.2. В качестве среды разработки рекомендуется использовать: IDE qt4-designer.
1.3. Можно, но не рекомендуется использовать:
а) текстовый редактор (например, geany, kate, kwrite, встроенный редактор mc) + gcc;
б) IDE Eclipse (в AltLinux 6.х предустановлен).
1.4. Интерфейс с пользователем должен быть графический.
1.5. Установить и настроить СУБД Mysql на сервере.
1.6. Настроить сеть. Везде далее при работе в сети использовать только имена компьютеров, IP-адреса для удалённого доступа использовать запрещается.
2. Функциональность программы:
2.1. Программа должна в графическом режиме:
- подключиться к серверу, если он еще не запущен — ждать, опрашивая его раз в три секунды;
- сервер при запуске должен подключиться к СУБД (возможно, запущенной на отдельном сервере БД),
- открыть главное окно с меню (стандартно),
- предоставить пользователю fio следующие возможности:
- ввод данных,
- редактирование/изменение данных,
- удаление некоторых данных,
- формирование отчётов на экран и в файл для последующей печати.
- завершить работу с правильным выходом из сеанса с сервером приложения, а сервера приложения из сеанса с СУБД.
2.2. При завершении программы обеспечивать правильный выход из СУБД. При возникновении ошибок, выдавать диагностические сообщения в формате <код_ошибки: текст ошибки>.
2. Демонстрация программы:
2.1. Продемонстрировать работу программы.
2.2. Продемонстрировать, работу пользователя fio с ИС.
3. Порядок сдачи Лабораторной.
Странслировать программу, возможно что-то изменив (по указанию), на компах лаборатории 326.
Выполнить программы на компьютерах лаборатории 326. В процесс сдачи входит также обеспечение старта СУБД MySQL при включении машины.
Представить отчёт по лабораторной в составе:
- титульный лист — смотреть на стенде кафедры (3-ий корпус, стенд напротив к. 220).
- отчёт: шрифт DejaVu Serif 12 пунктов через 1.5 интервала; в отчёте должен быть титульный лист, описание выполненной работы, приложение — распечатка исходных текстов программы.
- отчёт выложить на свой сайт в формате HTML,
- срок сдачи — до 29.04.13.
Государственное
образовательное учреждение
высшего профессионального образования
Ульяновский Государственный Университет
Факультет Математики и Информационных технологий
Кафедра Коммуникационных технологий
ЛАБОРАТОРНАЯ РАБОТА № 4
Разработка программы работы с MySQL в
архитектуре клиент-сервер — 3 уровня
Работу выполнил студент ______ИС-31_____ ______________ Андреев А. Е.
группа подпись, дата Ф.И.О.
Преподаватель _____________________ _____________ __Чичёв А.А._____
должность
подпись, дата
Ф.И.О.
_________________
оценка
У Л Ь
Я Н О В С К
2013 г.
Цель работы: переделать программу для работы с электронной документацией для использования в трехуровневой архитектуре
Выполнение:
Для выполнения лабораторной работы был выбран язык программирования java и среда разработки Eclipse. В результате разработки программа была переделана под трехуровневую архитектуру. Сервер является консольным приложением, а клиент графическим
Рисунок 1 Внешний вид программы сервера
Рисунок 2 Внешний вид программы клиента
Код программы:
public class DbServer implements ServerActions {
public static void main(String[] args) {
DbServer server = new DbServer();
try {
ServerActions stub = (ServerActions)UnicastRemoteObject.exportObject(server,
0);
Registry registry = LocateRegistry.createRegistry(12345);
registry.bind("ServerActions", stub);
System.out.println(String.format("Север запущен на %s",InetAddress.getLocalHost()));
} catch (Exception e) {
System.out.println
("Error occured: " + e.getMessage());
System.exit
(1);
}
}
public class DbClient implements Remote {
public static void main(String[] args) {
try {
Registry registry = LocateRegistry.getRegistry(null, 12345);
final ServerActions server =
(ServerActions)registry.lookup("ServerActions");
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
MainWindow window = new MainWindow(server);
window.frame.setVisible(true);
}
catch (Exception e) {
e.printStackTrace();
}
}
});
} catch (Exception e) {
System.out.println ("Error occured:
" + e.getMessage());
System.exit (1);
}
}
}
Инструкция
системного администратора
Программа Электронный документооборот написана на языке java поэтому требует установленных пакетов jre. Установить нужные библиотеки можно из официальных репозиториев.
Рисунок 1 Внешний вид программы сервера
Рисунок 2 Внешний вид программы клиента
Для работы с бд MySQL, MySQL должна быть установлена на сервере. Пакет mysqld вы также можете найти в репозитории. Для установки пакетов лучше всего использовать программу Synaptic. Она позволяет в графическом режиме управлять пакетами системы, и удобна для неопытных пользователей.
Для того чтобы сервер мог подключиться к бд, для него необходимо указать путь к библиотекам mysqlconnector. Для этого в командной строке при запуске сервера следует добавить параметр –classpath <Путь к классам>