Лабораторная работа 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 EclipseAltLinux 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 <Путь к классам>