Контрольная работа
Задание на контрольную работуОсновной целью контрольной работы является разработка распределенного клиент-серверного приложения.В качестве серверной части разработать базу данных в СУБД MySQL в соответствии с вариантом (раздел I методических указаний).
База данных должна содержать не менее двух таблиц.
Главная таблица – не менее двух полей и десяти записей.
Подчинённая таблица – не менее пяти полей и 25 записей.
Клиентская часть должна быть разработана на языке Java, желательно в среде Eclipse. Каждый запрос должен быть реализован отдельным методом. Все методы могут принадлежать одному классу. Отдельно должен быть реализован класс, содержащий метод main().
Таким образом, структура клиента должна быть приблизительно такая:
1. Класс, содержащий статический метод main() для демонстрации возможностей программы.
2. Класс, содержащий поля и методы для работы с удалённой базой данных:
Методы клиента:1. Выборка содержимого таблиц базы данных.
2. Добавление записи в таблицу.
3. Удаление записи из таблицы.
4. Обновление записи в таблице.
5. Поиск записи по признаку (на ваш выбор).
6. Запись в файл итогового отчёта по всем таблицам базы данных.
7. Вывод в консоль результатов выполнения каждого из описанных выше методов.
Варианты заданий (предметных областей баз данных)Вариант задания выбирается по двум последним цифрам пароля.1. Интернет-магазин.
2. Автосервис.
3. Сеть автозаправок.
4. Автовокзал.
5. Аэропорт.
6. Агентство недвижимости.
7. Сеть аптек.
8. Салон красоты (информация для клиентов).
9. Отдел кадров.
10. Библиотека.
11. Деканат.
12. Телефонная станция.
13. Видеопрокат (информация для клиентов).
14. Туристическое агентство.
15. Поликлиника.
16. Call-центр.
17. Служба занятости.
18. Рекламное агентство.
19. Кинотеатр (информация для зрителей).
20. Ресторан (информация для посетителей).
21. Аналитический отдел фирмы.
22. Издательство.
23. Кафедра.
24. Органайзер.
25. Кадровое агентство.
=============================================
Лабораторная работа №1Приёмы объектно-ориентированного программирования на языке Java 2Цель работы:Изучение принципов объектно-ориентированного программирования – инкапсуляции, наследования, полиморфизма.
Подготовка к лабораторной работе:1. Изучить лекционный материал дисциплины "Технологии разработки телекоммуникационных сервисов" по теме "Объектно-ориентированное программирование на языке Java".
2. Изучить соответствующие разделы в литературе [1, 2].
3. Повторить принципы работы в среде Eclipse.
Задание:1. Разработать суперкласс в соответствии с вариантом задания.
2. В суперклассе определить заданные поля и методы.
3. Описать конструктор суперкласса, определяющий значения полей.
4. Разработать три класса-потомка описанного выше суперкласса в соответствии с вариантом задания.
5. Определить, если это необходимо, дополнительные поля и методы подклассов, а также методы, переопределяющие методы суперкласса.
6. В каждом подклассе определить одно закрытое поле по вашему усмотрению и обеспечить вывод значения этого поля.
7. Создать класс, содержащий метод main(), в котором:
ü описать четыре объектные ссылки на объекты четырёх описанных выше классов;
ü создать четыре объекта описанных выше классов;
ü создать массив из четырёх элементов, тип которых определяется суперклассом;
ü присвоить четырем элементам массива ссылки на объекты описанные выше;
ü произвести действия со всеми элементами массива переопределёнными методами;
ü предусмотреть вывод результатов.
Порядок выполнения работы:1. Запустить среду Eclipse, установленную на компьютере.
2. Создать новый проект (FileÞNewÞJavaProject). Указать его название и местоположение.
3. Создать суперкласс (FileÞNewÞClass). Добавить его описание (конструктор, поля и методы).
4. Создать поочерёдно потомки суперкласса (FileÞNewÞClass).
Примечание 1: не забыть после создания класса-потомка добавить к его имени указание на то, что это подкласс суперкласса …extends…
5. Добавить их описание (собственные поля и методы).
6. Создать класс, содержащий метод main().
Примечание2:при создании класса поставить крыжик в поле [publicstaticvoidmain(String[] args)].
7. Скомпилировать и запустить на выполнение методmain().
8. При необходимости исправить найденные ошибки и повторить п.7.
9. Оформить отчёт.
10. Сдать лабораторную работу.
Контрольные вопросы:1. В чём заключается преимущество объектно-ориентированного программирования?
2. Что такое инкапсуляция.
3. Для чего применяется наследование?
4. В чём преимущества полиморфизма?
5. Поясните структуру класса в языке Java.
6. Для чего необходим метод main()?
7. Какие методы доступа в языке Java вы знаете?
Варианты задания:№ Варианта Суперкласс Поля Методы Подклассы
01 Компьютерная техника Процессор,
Оперативная память Вывод типа процессора,
Вывод объёма памяти Сервер,
Лэптоп,
Планшет
02 Мобильное устройство Тип соединения,
Операционная система Вывод типа соединения,
Выводтипа ОС Смартфон,
Коммуникатор,
Планшет
03 Связь Скорость передачи,
Среда передачи Вывод скорости,
Вывод типа связи Почта,
Телефон,
Интернет
04 Коммуникационное устройство Производитель,
Задержка обработки информации Выводпроизводителя,
Вывод параметра задержки Модем,
Коммутатор,
Роутер
05 Среда передачи Пропускная способность,
Затухание Выводпропускной способности,
Вывод затухания Кабель,
Оптоволокно,
Радиоэфир
06 Компилятор Производитель,
Вид компиляции Вывод производителя,
Вывод языка программирования Java,
C++,
Delphi
07 Фирма-производитель Страна,
Тип оборудования Вывод названия фирмы,
Вывод типа оборудования Huawei,
Siemens,
Ericsson
08 Оператор сотовой связи Торговая марка,
Количество абонентов в России Вывод торговой марки,
Вывод количества абонентов Beeline,
МТС,
Мегафон
09 Операционная система Производитель,
Тип устройства Вывод производителя,
Вывод типа устройства Windows Mobile,
Android,
Symbian
10 Среда разработки ПО Производитель,
Последняя версия Вывод производителя,
Вывод последней версии Visual Studio,
NetBeans,
Eclipse
11 Технология мобильной связи Поколение,
Разделение каналов Вывод поколения,
Вывод типа разделения каналов LTE,
WiMAX,
UMTS
12 Сетевой симулятор Производитель,
Версия Вывод производителя,
Вывод названия Ns2,
NetMaker,
OPNET
13 Кодер сигнала Наименование,
Скорость кодирования Вывод наименования,
Вывод скорости NRZ,
AMI,
MLT-3
14 Система подвижной радиосвязи Направленность связи,
Характеристика зон обслуживания Выводтипа связи,
Выводнаправленности связи Сотовая,
Пейджинговая,
Спутниковая
15 Широкополосный доступ Тип линий связи,
Пропускная способность Вывод типа линий связи,
Вывод пропускной способности Кабельный,
DSL,
Спутниковый
16 Технология LAN Метод доступа к среде,
Топология локальной сети Вывод метода доступа,
Вывод топологии Ethernet,
FDDI,
Token Ring
17 Вуз Новосибирска Дата основания
Количество студентов Вывод даты основания,
Вывод количества студентов СибГУТИ,
НГТУ,
НГУ
18 Компьютерная техника Процессор,
Объём жёсткого диска Вывод типа процессора,
Вывод объёма жёсткого диска Ноутбук,
Десктоп,
КПК
19 Мобильное устройство Тип доступа к Internet,
Объём внешней памяти Вывод типа доступа к Internet,
Вывод объёма внешней памяти Телефон,
iPhone,
Электронная книга
20 Связь Скорость передачи,
Среда передачи Вывод скорости,
Вывод типа среды передачи Мобильная связь,
Стационарный телефон,
Электросвязь
21 Коммуникационное устройство Производитель,
Потери Вывод производителя,
Вывод параметра потерь Hub,
Коммутатор,
Роутер
22 Среда передачи Пропускная способность,
Вероятность ошибки на бит Вывод пропускной способности,
Вывод значения BER Кабель,
Оптоволокно,
Радиоэфир
23 Компилятор Версия,
Метод синтаксического разбора Вывод версии,
Вывод метода VBA,
C#,
Pascal
24 Среда разработки ПО Производитель,
Последняя версия Вывод производителя,
Вывод последней версии Borland Developer Studio,
HiAsm,
Kylix
25 Оператор мобильной связи Торговая марка,
Технология передачи Вывод торговой марки,
Вывод технологии передачи Tele 2,
МТС,
Skylink
=============================================
Лабораторная работа №2РЕАЛИЗАЦИЯ КЛИЕНТ-СЕРВЕРНОЙ АРХИТЕКТУРЫ С ПОМОЩЬЮ СОКЕТОВЦель работы:Изучение методов программирования сокетов с использованием пакета java.net.
Подготовка к лабораторной работе:1. Изучить лекционный материал дисциплины "Технологии разработки телекоммуникационных сервисов" по темам "Распределённые приложения" и "Реализация клиент-серверной архитектуры на сокетах".
2. Изучить соответствующие разделы в литературе [3, 4].
3. Повторить принципы работы в среде Eclipse.
Задание:Создать два класса: Clientи Server, использующие классы и методы пакета java.net, для связи двух процессов на основе протокола TCP. Проверить передачу текстовой строки от клиента серверу и обратно. Использовать созданные классы для продолжительного сеанса связидвух процессов. Обеспечить ввод с клавиатуры потоков данных для передачи клиентом серверу и обратно, окончание сеанса связи, и закрытие сокетов (клиента и сервера) по введённому с клавиатуры кодовому слову, например, «END».
Порядок выполнения работы:1. Запустить среду Eclipse, установленную на компьютере.
2. Создать новый проект. Указать его название и местоположение.
3. Создать класс-клиент,содержащий метод main(). Добавить в класс средства для ввода строки с клавиатуры:
BufferedReader keyboard =
newBufferedReader(
newInputStreamReader(System.
in));
…
String str = keyboard.readLine();
4. Создать класс-сервер,содержащий метод main().
5. Компилировать классы.
6. При необходимости исправить найденные ошибки и повторить п.5.
7. Запустить на выполнение класс-сервер.
8. Запустить на выполнение класс-клиент.
9. Проследить за передачейтекста от клиента к серверу и обратно.
10. Обеспечить сеанс связиклиент-сервер до завершения его пользователем (передать несколько введённых с клавиатуры текстовых строк).
11. Если есть возможность, проверить работу клиент-серверного приложения на двух, соединённых в сеть, компьютерах.
12. Оформить отчёт.
13. Сдать работу.
Контрольные вопросы:1. Чем передача данных по протоколу UDPотличается от передачи по протоколу TCP?
2. Что такое сокет?
3. Какие существуют разновидности архитектуры клиент-сервер?
4. Чем отличается класс ServerSocketот класса Socket?
5. Какие классы сокетов для протокола UDPвы знаете?
6. Какой пакет java используется для работы с сокетами?
=============================================
Лабораторная работа №3 РАЗРАБОТКА МНОГОПОТОЧНОГО СОКЕТАЦель работы:Изучение методов программирования многопоточных сокетов с использованием пакетов java.net и java.lang.
Подготовка к лабораторной работе:1. Изучить лекционный материал дисциплины "Технологии разработки телекоммуникационных сервисов" по темам: "Архитектура клиент-сервер. Сокеты", "Разработка многопоточного сокета".
2. Изучить соответствующие разделы в литературе [1-4].
3. Повторить принципы работы в среде Eclipse.
Задание:Создать классы для реализации многопоточного соединения. Проверить передачу текстовой строки от клиента серверу и обратно. Использовать созданные классы для продолжительного сеанса связинескольких процессов. Обеспечить ввод с клавиатуры потоков данных для передачи клиентом серверу и обратно, окончание сеанса связи, и закрытие сокетов (клиента и сервера) по введённому с клавиатуры кодовому слову, например, «END».
Порядок выполнения работы:1. Запустить среду Eclipse, установленную на компьютере.
2. Создать новый проект. Указать его название и местоположение.
3. Создать класс-клиент,содержащий метод main(). Добавить в класс средства для ввода строки с клавиатуры:
BufferedReader keyboard =
newBufferedReader(
newInputStreamReader(System.
in));
…
String str = keyboard.readLine();
4. Создать класс-сервер,расширяющий Thread, и содержащий метод run() для реализации функций сервера.
5. Создать класс, содержащий метод main(), и осуществляющий соединение с клиентскими сокетами.
6. Компилировать классы.
7. При необходимости исправить найденные ошибки и повторить пп.6.
8. Запустить на выполнение класс-сервер.
9. Запустить на выполнение классы-клиенты.
10. Проследить за передачейтекста от клиентов к серверу и обратно.
11. Обеспечить сеанс связиклиент-сервер до завершения его пользователем (передать несколько введённых с клавиатуры текстовых строк).
12. Если есть такая возможность, обеспечить соединение нескольких клиентов, находящихся на разных компьютерах, с сервером.
13. Оформить отчёт.
14. Сдать работу.
Контрольные вопросы:1. Что такое многозадачность и многопоточность?
2. Какими способами можно организовать создание и работу потоков?
3. Для чего нужен метод start()?
4. Охарактеризуйте метод accept().
5. Перечислите классы и методы, входящие в состав класса ServerSocket.