МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ Саратовский государственный университет имени Н.Г. Чернышевского

advertisement
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ
РОССИЙСКОЙ ФЕДЕРАЦИИ
Саратовский государственный университет имени Н.Г. Чернышевского
Социологический факультет
УТВЕРЖДАЮ
___________________________
"__" __________________20__ г.
Рабочая программа дисциплины
Управление информационными ресурсами
Направление подготовки
230700 Прикладная информатика
Профиль подготовки
Прикладная информатика в социологии
Квалификация (степень) выпускника
Бакалавр
Форма обучения
очная
Саратов,
2011 год
1. Цели освоения дисциплины
Целью освоения данной дисциплины является знакомство студентов с
архитектурами информационных приложений, принципами сетевого
программирования. Задачами дисциплины являются усвоение знаний по
организации информационных ресурсов и принципами их управления,
получение навыков работы с современными технологиями разработки и
публикации Web-ресурсов.
2.Место дисциплины в структуре ООП бакалавриата
Данная учебная дисциплина входит в раздел «Профессиональный цикл.
Базовая часть» ФГОС-3. Для изучения дисциплины необходимы
компетенции, сформированные у обучающихся в результате изучения
естественнонаучных и гуманитарных дисциплин в средних учебных
заведениях: основы информатики, математики, физики, истории и др., а
также дисциплин «Информатика и программирование», «Вычислительные
системы, сети и телекоммуникации», «Операционные системы».
14. Компетенции обучающегося, формируемые в результате освоения
дисциплины
Данная дисциплина способствует формированию у студентов
следующих компетенций:
- способен работать в коллективе, нести ответственность за
поддержание партнерских, доверительных отношений (ОК-3);
- способен самостоятельно приобретать и использовать в
практической деятельности новые знания и умения, стремится к
саморазвитию (ОК-5);
- способен осознавать социальную значимость своей будущей
профессии, обладать высокой мотивацией к выполнению
профессиональной деятельности (ОК-6);
- способен работать с информацией в глобальных компьютерных
сетях (ОК-8);
- способен принимать участие во внедрении, адаптации и настройке
прикладных ИС (ПК-13);
- способен анализировать и выбирать методы и средства обеспечения
информационной безопасности (ПК-18);
- способен анализировать рынок программно-технических средств,
информационных продуктов и услуг для решения прикладных задач
и создания информационных систем (ПК-19).
В результате освоения дисциплины обучающийся должен:
Знать:
- область
профессиональной
деятельности,
объекты
профессиональной деятельности, основные виды профессиональной
деятельности;
- назначение,
организацию,
принципы
функционирования,
последовательность и этапы разработки информационных
приложений, в том числе распределенных приложений;
- принципы, методы и способы комплексирования программных
средств при создании информационных приложений.
Уметь:
- использовать программные решения в области разработки
информационных ресурсов;
- извлекать полезную научно-техническую информацию из печатных
и электронных документов по разработке и управлению
информационными ресурсами.
Владеть:
- навыками системного анализа предметной области;
- навыками использования современных инструментальных и
вычислительных средств в профессиональной деятельности.
4. Структура и содержание дисциплины
Общая трудоемкость дисциплины составляет 8 зачетных единиц, 288
часов.
Сем
естр
Неделя
семестра
Архитектуры
информационных
приложений
Сетевое
программирование
6
1-2
Л:4
СР:2
КСР
:2
6
3-4
Л:4
СР:6
КСР
:2
6
5-6
Л:4
СР:5
КСР
:2
4
Взаимодействие
типа «клиентсервер»
Интерфейс сокетов
6
7-8
Л:4
CР:6
ПР:
4
КСР
:2
5
Архитектура WWW
6
9-10
Л:4
СР:6
ПР:
10
КСР
:4
6
Гипертекстовая
разметка документов
6
11-13
Л:6
СР:6
ПР:
10
КСР
:4
7
Управление
просмотром страниц
6
14-16
Л:6
СР:6
ПР:
8
КСР
:4
№
п/п
1
2
3
Раздел дисциплины
Виды учебной работы,
включая
самостоятельную работу
студентов и трудоемкость
(в часах)
Формы
текущего
контроля
успеваемости
(по неделям
семестра)
Формы
промежуточно
й аттестации
(по
семестрам)
Контрольные
вопросы на 2
неделе
Контрольные
вопросы на 4
неделе
Контрольные
вопросы на 6
неделе
Контрольная
работа на 8
неделе
Проверка
практических
заданий
Проверка
практических
заданий
Проверка
практических
Web-узла. JavaScript
7
1-3
Л:6
СР:10
ПР:
6
КСР
:4
9
CGI- средство
расширения
возможностей
технологии WWW
Технология ASP
7
4-5
Л:4
СР:4
ПР:
6
КСР
:2
10
Технология JSP
7
6-7
Л:4
СР:4
КСР
:2
11
Технология PHP
7
8-10
Л:6
СР:6
КСР
:4
12
Технология XML
7
11-14
Л:8
СР:12
ПР:
12
КСР
:4
13
Web-сервисы
7
15-18
Л:8
СР:12
ПР:
12
КСР
:4
68
85
68
40
8
Промежуточная аттестация
Промежуточная аттестация
ИТОГО
заданий.
Контрольная
работа на 16
неделе
Проверка
практических
заданий
Проверка
практических
заданий.
Контрольные
вопросы на 5
неделе
Контрольные
вопросы на 7
неделе
Контрольные
вопросы на 10
неделе
Проверка
практических
заданий
Проверка
практических
заданий.
Контрольная
работа на 18
неделе
Зачет в 6-м
семестре
Экзамен в 7-м
семестре
27
Раздел «Архитектуры информационных приложений».
Классификация архитектур информационных приложений. Технологии
построения современных распределенных систем: CORBA OMG, J2EE Sun,
.NET Microsoft. Их сравнительный анализ.
Раздел «Сетевое программирование».
Обмен данными по сети. Принципы обмена данными. Обработка данных
в
системах
типа
«клиент/сервер».
Интерфейс
прикладного
программирования. Определение API-интерфейса. Приложение эхо-повтора.
Раздел «Взаимодействие типа «клиент/сервер»».
Логическая трехзвенная модель Web-приложений.
реализации логической модели.
Физические
Раздел «Интерфейс сокетов».
Интерфейс прикладного программирования. API-интерфейс сокетов.
Сокеты и библиотеки сокетов. Связь через сокеты и ввод/вывод в системе
UNIX. Сокеты, дескрипторы и сетевой ввод/вывод. Параметры и APIинтерфейс сокетов.
Раздел «Архитектура WWW».
Протокол HTTP. Формат HTTP-сообщения. Клиентский запрос Client
Request. Ответ сервера Server Response.
Раздел «Гипертекстовая разметка документов».
Принципы гипертекстовой разметки. Структура HTML-документа. Тэги.
Таблицы. Фреймы. Формы. DHTML.
Раздел «Управление просмотром страниц Web-узла. JavaScript».
Модель объектов JavaScript. Наследование кода скриптов различными
страницами. Java, JavaScript и Plug-ins. Встраивание в HTML-документ.
Примеры скриптов.
Раздел «CGI – средство расширения возможностей технологии
WWW».
Механизмы обмена данными. Практика применения скриптов CGI.
Раздел «Технология ASP».
Описание технологии. Ввод и вывод. Взаимосвязь между отдельными
страницами. Управление приложением. Использование внешних компонент.
Работа с базами данных. Методики программирования.
Раздел «Технология JSP».
Описание технологии. Преимущества сервлетов по сравнении с CGI. Java
Server Pages. Преимущества JSP.
Раздел «Технология PHP».
Обзор PHP. Возможности PHP.
Раздел «Технология XML».
XML-документ. Правила создания XML-документа. Просмотр XMLдокументов. Стилевые таблицы XSL. Documents Type Definitions (DTD).
Схемы данных.
Раздел «Web-сервисы».
Обзор технологии. Service-Oriented Architecture (SOA). Стек технологий
Web-сервисов. Принципы взаимодействия Web-сервисов в рамках сервисноориентированной архитектуры.
На практических занятиях студенты получают индивидуальные задания,
пример которых приведен в разделе 6 настоящей программы. Задания
выполняются в компьютерном классе с использованием программного
обеспечения, указанного в разделе 7.
5. Образовательные технологии
В учебном процессе при реализации компетентностного подхода
используются такие активные и интерактивные формы проведения занятий
как модельный метод обучения, разбор конкретных ситуаций, мозговой
штурм, дебаты. Широко используются мультимедийные презентации при
представлении лекционного материала.
6. Учебно-методическое обеспечение самостоятельной работы
студентов. Оценочные средства для текущего контроля успеваемости,
промежуточной аттестации по итогам освоения дисциплины
Самостоятельная работа студентов заключается в углубленном
изучении материала курса по соответствующей тематике недели с
использованием научной и учебно-методической литературы и подготовке к
контрольным работам, зачету и экзамену.
Для текущего контроля успеваемости предназначены контрольные
вопросы и контрольные работы. Контрольная работа выполняется с целью
определения уровня подготовки студентов в области прикладной
информатики, а также проверки степени их знакомства с различными
аспектами использования информационных систем и сетей, технологий
сетевого программирования, технологий управления информационными
ресурсами.
Контрольная работа оформляется в виде отчета. Отчет должен
содержать два раздела.
В первый раздел отчета необходимо включить следующие вопросы:
- историю развития системы (технологии),
- существующие аналоги системы и возможные альтернативные
варианты технологий,
- описание функционально-структурной схемы реализации процесса
(системы, технологии),
- основные возможности и технические характеристики системы
(технологии).
Второй раздел должен быть посвящен описанию выбранной системы
или технологии.
Показатели качества отчета: степень соответствия заданию,
самостоятельность и грамотность изложения, аккуратность и четкость
оформления отчета, глубина проработки материала.
Примерный общий объем отчета составляет 10-15 страниц формата А4
(210*297 мм.) Относительный размер второго раздела должен составлять не
менее 70% общего объема.
Примерные
задания
на
контрольные
работы
по
дисциплине
«Управление информационными ресурсами»
На выбор студенту предлагается четыре темы, из которых он должен
выбрать три (две темы в 6-м семестре, одна тема в 7-м семестре).
Тема 1. Интернет и его использование.
- файл-обменные сети,
- электронная почта,
- Web-службы,
- общение в реальном времени (варианты: IRC, ICQ),
- передача файлов (варианты: модули службы FTP, управляющий сеанс и
сеанс передачи данных),
- потоковые технологии мультимедиа,
- создание и публикация Web-документов (варианты: создание Webдокументов, публикация Web-документов),
- поисковые ресурсы Интернет,
- защита информации в Интернет (варианты: безопасность компьютера и
сетевая безопасность; конфиденциальность, целостность и доступность
данных; угрозы, атаки и риски; шифрование, сертификат, электронная
подпись; идентификация, аутентификации, авторизация и аудит; технологии
защищенного канала, политика безопасности).
Тема 2. Технологии сетевого программирования.
- Интерфейс прикладного программирования;
- Технология AJAX;
- Технология JavaScript;
- Технология XML;
- Интерфейс сокетов;
- Протоколы HTTP и HTTPS.
Тема 3. Архитектуры информационных систем.
- Файл-серверные приложения;
- Intranet-приложения;
- Клиент-серверные приложения;
- Склады данных (DataWarehousing) и системы оперативной
аналитической обработки данных.
Тема 4. Разработка распределенных приложений.
- Технология CORBA;
- Технология Java2 Enterprise Edition;
- Технология .NET.
Примерные
контрольные
вопросы
для
текущего
контроля
успеваемости:
1. Что такое технология CORBA?
2. Все ли программные продукты поддерживают стандарт CORBA?
3. Верно ли, что за использование стандартов OMG надо оплачивать
регистрационный взнос?
4. Что является принципом интеграции приложений в CORBA?
5. Что относится к стандартам сервисов, определенным J2EE?
6. Сколько слоев в модели J2EE?
7. Перечислить уровни модели J2EE.
8. Какие функции выполняет уровень business-tier модели J2EE?
9. Компоненты каких типов определяет спецификация J2EE?
10.Все ли компоненты J2EE должны быть написаны на языке Java?
11.Верно ли, что технология COM поддерживает взаимодействия
приложений, выполняющихся только на одном компьютере?
12.Как называется программа, которая ожидает запросов на установление
соединения?
13.Как называется программа, которая является инициатором запросов на
установление соединения?
14.Перечислить последовательность операций, выполняемых в процессе
обмена данными между приложениями в Интернет.
15.Сколько уровней в логической модели Web-приложений?
16.Верно ли, что в системе, построенной с использованием Webтехнологий все особенности конкретной базы данных скрыты от
клиента, а все компоненты доступа к БД располагаются на Webсервере.
17.Являются ли понятия «библиотека сокетов» и «API-интерфейс
сокетов» тождественными?
18.Может ли API-интерфейс сокетов работать с параллельными
программами?
19.Какой протокол используется в Интернете для передачи
гипертекстовой информации?
20.Может ли стилевая таблица находится в файле отличном от того
документа, стиль которого она определяет?
21.Являются ли функции сокетов частью операционой системы?
22.Можно ли в JavaScript создавать собственные классы?
23.Возможно ли взаимодействие между applets и JavaScripts?
24.Что такое ASP?
25.Что такое JSP?
26. Является ли XML подмножеством SGML?
27.Указать последовательность этапов процесса обработки CFMLстраницы.
28.Накладываются
ли
ограничения
на
применение
языков
программирования Web-сервисов?
29.Что такое SOA?
30.Является ли SOA синонимом Web-сервисов?
31.Указать технологии, образующие технологический фундамент Webсервисов.
Примерные задания для выполнения практических
дисциплине «Управление информационными ресурсами»:
работ
по
Практическая работа №1. HTML.
Цели:
1. Изучение основ языка HTML и технологии доступа к HTMLдокументам в Интернете.
2. Подготовка простейших HTML-документов.
3. Освоение возможностей редактора HTML –страниц.
Средства/Подготовка:
Для выполнения работы необходим компьютер под ОС Windows, в составе
локальной сети (соответственно имеющий сетевой адаптер) и подключенный
к сети Интернет. Программа редактирования HTML-страниц, установленная
на персональном компьютере. Доступ к каталогу Web-раздела Web-сервера.
Ход работы:
Включите компьютер и введите свое имя и пароль для доступа к
операционной системе.
Шаг 1 – Создание простейших HTML-документов.
1. Отформатируйте произвольный текст с использованием тегов заголовков,
цветовыделения и пр. Просмотрите его через броузер Вашего компьютера.
Посмотрите исходный текст документа через меню броузера.
2. Поэкспериментируйте с изменением цвета фона документа и
использованием рисунка для фона.
Шаг 2 – Создайте html-документ с содержимым, состоящим из тегов
HTML.
Создайте файл HTML со следующим содержимым
<HTML>
<HEAD>
<TITLE>Простейший документ</TITLE>
</HEAD>
<BODY TEXT=#0000ff BACKGROUND=#f0f0f0>
<H1>Пример простого документа</H1>
<HR>
Формы HTML-документов
<UL>
<LI>Классическая
<LI>Фреймовая
</UL>
<HR>
</BODY>
</HTML>
Шаг 3 – Вставка графики .
Вставьте в документ, созданный на шаге 1, рисунок.
Шаг 4 – Связи.
Организуйте переходы в документа файла links.htm в соответствии с
содержимым текста в нем.
Шаг 5 – Создание таблиц
Создайте документ при просмотре, воспроизводящий приведенный ниже.
Шаг 6 – Создание фреймов
Создайте документ, содержащий три фрейма, в которые загружаются
различные страницы
Шаг 7 – Автоматическая перегрузка страниц через определенное время.
С помощью элемента META организуйте автоматическую циклическую
перезагрузку трех или более документов HTML.
Шаг 8 – Отчет по работе.
Покажите результаты работы преподавателю.
Практическая работа №2. HTTP.
Цель:
1. Изучение основ протокола HTTP.
2. Изучение структуры HTTP запросов и ответов.
3. Эмуляция запросов протокола HTTP .
Средства/Подготовка:
Для выполнения работы необходим компьютер под ОС Windows, в составе
локальной сети (соответственно имеющий сетевой адаптер) и подключенный
к сети Интернет.
Ход работы:
Включите компьютер и введите свое имя и пароль для доступа к
операционной системе.
Шаг 1 – Создание простейших HTML-документов и помещение их на
HTTP-сервер.
Создайте несколько HTML-документов (можно использовать документы,
созданные при выполнении работы №1).
Создайте в подкаталоге /LABS WWW-каталога WWW-сервера toiit.sgu.ru
свой подкаталог. Поместите документы в этот каталог.Проверьте, что доступ
к Вашим документам осуществляется по протоколу HTTP. Для этого
запустите броузер на Вашем компьютере и выполните запрос к Вашим
документам на компьютере toiit.sgu.ru.
Шаг 2 – Проверка HTTP-соединения средствами telnet.
Осуществите Telnet –соединение к серверу toiit.sgu.ru с номером порта 80.
Введите с клавиатуры HTTP-запрос к документам, которые вы поместили на
сервер. Используйте разные методы запроса. Приведите листинг ответов
сервера (в том числе и полученных вследствие ошибок).
Шаг 3 – Интерпретация ответов сервера.
Прокомментируйте каждую строку и элемент ответов HTTP-сервера.
Шаг 4 – Отчет по работе
Покажите результаты работы преподавателю.
Практическая работа №3. Обработка форм с помощью CGI –
приложения.
Цель:
1. освоение технологии динамической генерации веб-страниц CGI.
2. создание CGI-приложения обработки HTML-форм .
Средства/Подготовка:
Для выполнения работы необходим компьютер под ОС Windows, в составе
локальной сети (соответственно имеющий сетевой адаптер) и подключенный
к сети Интернет.
Ход работы:
Включите компьютер и введите свое имя и пароль для доступа к
операционной системе.
Задание 1.
Шаг 1 – Создание HTML-формы.
1.Откройте Visual Studio.
2.Создайте новый проект Visual C++ Projects/Win32 Project. Назовите
проект CGI и при создании проекта в Application Settings установите
Application Type – Console application.
Шаг 2 – Создание и отладка приложения обработки данных, вводимых
через HTML-форму.
3.Из файла CGI_.cpp скопируйте в файл CGI.cpp функции NextParam()и
_tmain().
4.Функция NextParam(query, param, value) принимает в качестве
аргумента строку запроса query (то, что после '?' в URL) и для очередной
пары name=string заносит значение name в строку param, а значение string в
строку value. В случае успеха NextParam() возвращает 0.
5.Используя функцию NextParam(), допишите текст функции _tmain() так,
чтобы
при
поступлении
строки
запроса
вида
MfcIsapiCommand=hello&name=your_name в окне браузера вывелось "Hello
your_name!".
Шаг 3 – Организация CGI-интерфейса.
6. Создайте на сервере museum.sgu.ru в каталоге /labs подкаталог с вашим
уникальным идентификатором, например «your_name».
7. Откомпилируйте программу и скопируйте файл CGI.exe в папку labs\
your_name.
Задание 2.
На основе результатов предыдущего задания организуйте интерактивное
взаимодействие посредством веб-форм с CGI-приложением.
Пример см. на http://appl.sgu.ru/
Отчет по работе
Покажите результаты работы преподавателю.
Практическая работа №4. Приложение интерактивной переписки.
Цель:
 Отработать технологию создания простейших клиент-серверных
приложений на примере приложения интерактивной переписки.
Теоретические основы.
В Интернете служба интерактивной переписки позволяет группе
пользователей общаться друг с другом, вводя текстовые сообщения, которые
отображаются на экранах всех прочих пользователей. Наше программное
обеспечение представляет собой упрощенную версию службы интерактивной
переписки, в работе которой может принимать участие только пара
пользователей: если один из пользователей вводит текст, то этот текст
отображается на экране другого пользователя, и наоборот. Более того, это
программное обеспечение интерактивной переписки может применяться для
обмена данными между любыми двумя компьютерами, подключенными к
Интернету. Один из пользователей активизирует систему, выбирая номер
приложения и вызывая на выполнение сервер. Например, предположим, что
сервер был запущен на выполнение пользователем компьютера
excalibur.cs.purdue.edu
chatserver 25000
Пользователь на другом компьютере может вызвать клиентскую
программу, которая установит соединение с сервером:
chatclient excalibur.cs.purdue.edu 25000
В целях максимального упрощения кода была выбрана схема, которая
требует от пользователей соблюдать очередь при вводе текста. И клиент, и
сервер выводят приглашение, когда их пользователь должен ввести строку
текста. Вначале приглашение к вводу строки получает пользователь
клиентской программы. Получив от пользователя строку текста, клиент
отправляет ее на сервер, и право на, ввод текста передается другому
пользователю. Пользователи по очереди вводят текст до тех пор, пока один
из них не введет обозначение конца файла (пустую строку).
Работа сервера начинается с перехода в состояние ожидания запроса на
установление соединения от клиента. Затем сервер входит в цикл, в котором
он получает и отображает строку текста, полученную от клиента, выводит
приглашение для локального пользователя, считывает строку, введенную с
клавиатуры, и отправляет эту строку клиентской программе. После этого
сервер последовательно переходит от отображения выходных данных, полученных от клиента, к отправке клиенту данных, введенных с клавиатуры,
до тех пор, пока не получит сообщение о конце файла.
Работа клиентской программы начинается с передачи серверу запроса на
установление соединения. После установления соединения клиент также
входит в цикл. При каждом проходе по циклу клиент выдает локальному
пользователю приглашение к вводу строки текста, считывает строку,
введенную с клавиатуры, отправляет ее на сервер, а затем получает и
отображает строку текста, полученную от сервера таким образом, клиент
последовательно переходит от отправки строки текста полученной от
пользователя, к отображению строки текста, принятой с сервера.
Код сервера интерактивной переписки.
/* chatserver.c */
#include <stdlib.h>
#include <stdio.h>
#include <cnaiapi.h>
#define BUFFSIZE
256
#define INPUT_PROMPT
"Input > "
#define RECEIVED_PROMPT "Received> "
int recvln(connection, char *, int);
int readln(char *, int);
/*----------------------------------------------------------------------*
* Program: chatserver
* Purpose: wait for a connection from a chatclient & allow users to chat
* Usage: chatserver <appnum>
*
*----------------------------------------------------------------------*/
int
main(int argc, char *argv[])
{
connection
conn;
int
len;
char
buff[BUFFSIZE];
if (argc != 2) {
(void) fprintf(stderr, "usage: %s <appnum>\n", argv[0]);
exit(1);
}
(void) printf("Chat Server Waiting For Connection.\n");
/* wait for a connection from a chatclient */
conn = await_contact((appnum) atoi(argv[1]));
if (conn < 0)
exit(1);
(void) printf("Chat Connection Established.\n");
/* iterate, reading from the client and the local user */
while((len = recvln(conn, buff, BUFFSIZE)) > 0) {
(void) printf(RECEIVED_PROMPT);
(void) fflush(stdout);
(void) write(STDOUT_FILENO, buff, len);
/* send a line to the chatclient */
(void) printf(INPUT_PROMPT);
(void) fflush(stdout);
if ((len = readln(buff, BUFFSIZE)) < 1)
break;
buff[len - 1] = '\n';
(void) send(conn, buff, len, 0);
}
/* iteration ends when EOF found on stdin or chat connection */
(void) send_eof(conn);
(void) printf("\nChat Connection Closed.\n\n");
return 0;
}
Функции recvln и readln упрощают код; каждая из них содержит цикл,
который выполняется до тех пор, пока не будет получена целая строка или
обнаружен конец файла. Функция recln вызывает функцию recv для
получения данных из сетевого соединения, а функция readln вызывает
функцию read для чтения символов, введенных с клавиатуры.
Общая структура программы сервера интерактивной переписки аналогична
программе эхо-сервера, описанной ранее. Как и эхо-сервер, сервер
интерактивной переписки принимает единственный параметр командной
строки, который представляет собой номер применяемого приложения. После
получения от клиента запроса на установление соединения сервер
интерактивной переписки выводит сообщение для локального пользователя и
входит в цикл. При каждом проходе по циклу сервер получает строку текста из
сетевого соединения, выводит строку на экран пользователя, считывает
строку ввода с клавиатуры и отправляет ее по сети. После обнаружения конца
файла сервер отправляет признак конца файла и завершает свою работу.
Код клиента интерактивной переписки.
/* chatclient.c */
#include <stdlib.h>
#include <stdio.h>
#include <cnaiapi.h>
#define BUFFSIZE
256
#define INPUT_PROMPT
"Input > "
#define RECEIVED_PROMPT "Received> "
int recvln(connection, char *, int);
int readln(char *, int);
/*----------------------------------------------------------------------*
* Program: chatclient
* Purpose: contact a chatserver and allow users to chat
* Usage: chatclient <compname> <appnum>
*
*----------------------------------------------------------------------*/
int
main(int argc, char *argv[])
{
computer
comp;
connection
conn;
char
buff[BUFFSIZE];
int
len;
if (argc != 3) {
(void) fprintf(stderr, "usage: %s <compname> <appnum>\n",
argv[0]);
exit(1);
}
/* convert the compname to binary form comp */
comp = cname_to_comp(argv[1]);
if (comp == -1)
exit(1);
/* make a connection to the chatserver */
conn = make_contact(comp, (appnum) atoi(argv[2]));
if (conn < 0)
exit(1);
(void) printf("Chat Connection Established.\n");
(void) printf(INPUT_PROMPT);
(void) fflush(stdout);
/* iterate, reading from local user and then from chatserver */
while((len = readln(buff, BUFFSIZE)) > 0) {
buff[len - 1] = '\n';
(void) send(conn, buff, len, 0);
/* receive and print a line from the chatserver */
if ((len = recvln(conn, buff, BUFFSIZE)) < 1)
break;
(void) printf(RECEIVED_PROMPT);
(void) fflush(stdout);
(void) write(STDOUT_FILENO, buff, len);
(void) printf(INPUT_PROMPT);
(void) fflush(stdout);
}
/* iteration ends when stdin or the connection indicates EOF */
(void) printf("\nChat Connection Closed.\n");
(void) send_eof(conn);
exit(0);
}
Выполнение клиентской программы начинается с передачи на сервер
запроса на установление соединения. После установления соединения
клиентская программа входит в цикл, в котором выполняется чтение данных с
клавиатуры, отправка данных на сервер, получение строки от сервера и
отображение ее на экран пользователя. Цикл продолжается до тех пор, пока
клиент не получит признак конца файла с сервера или с клавиатуры
(возвращаемая строка, длина которой равна нулю). В этот момент клиент
отправляет признак конца файла и завершает свою работу.
Ход работы
Задание 1.
Скомпилируйте программы сервера и клиента и выполните описанное
соединение и обмен данными.
Задание 2.
Программное обеспечение службы интерактивной переписки требует,
чтобы пользователи вводили текст по очереди. Перепишите программное
обеспечение, чтобы любой пользователь мог в любое время вводить
произвольное число строк. Подсказка: используйте потоки.
Задание 3.
Измените программу клиента службы интерактивной переписки, чтобы
она отправляла имя пользователя в каждом сообщении, и откорректируйте
программу сервера, чтобы она указывала имя пользователя при отображении
строки вывода.
Задание 4.
Дополните предыдущее упражнение, чтобы клиент и сервер службы интерактивной переписки не отправляли имя пользователя вместе с каждым
сообщением, а обменивались именами своих пользователей при установлении
соединения.
Задание 5.
Почему в примере кода используется совокупность вызовов функции write
и разных форм функции printf? Подсказка: предусмотрены ли в системе
Windows одинаковые способы работы с сокетами, файлами и каналами?
Задание 6.
Разработайте программное обеспечение, позволяющее создавать многосторонние сеансы интерактивной переписки, в которых каждый пользователь
имеет право присоединиться или выйти из сеанса в любое время.
Практическая работа №5. Создание XML и XSL документов.
Цели:
1. Изучение XML и XSLтехнологии.
2. Подготовка простейших XML-документов.
3. Задание стиля с помощью XSL-документа.
Ход работы:
Задание 1.
Создать XML документ, в котором содержится комплектующие
компьютера (monitor,
system block (case with power supply, motherboard,
processor, RAM, videocard, soundcard, HDD, floppy drive, CD-ROM drive,
keyboard, mouse)).
Задание 2.
Создать XSL документ, в котором будут задаваться стили для XML
документа (фоновый рисунок, цвет и размер шрифта для каждого компонента
или группы компонентов).
Отчет по работе. Покажите результаты работы преподавателю.
Практическая работа №6. Создание интерфейса к базе данных с
использованием технологии .NET.
Цели:
1. Изучение основ средств доступа к базам данных, предоставляемыми
Microsoft .Net Framework.
2. Написание простейшей программы для работы с базой данных.
Теоретические основы:
Microsoft ADO.NET.
Когда Microsoft начала разрабатывать .NET Framework, она имела
хорошую возможность пересмотреть модель доступа к данным. Решив не
продолжать разработку технологии ADO, специалисты Microsoft приступили
к созданию новой структуры доступа к данным, при этом сохранив акроним.
Microsoft разрабатывает ADO.NET на базе уже зарекомендовавшей себя
объектной технологии ADO. Но ADO.NET ориентируется на три важные
возможности, которые не поддерживаются ADO: поддержка модели доступа
к несвязанным данным, что является ключевым элементом для работы в
Web; поддержка тесной интеграции с XML; интеграция с .NET Framework
(например, совместимость с базовой библиотекой классов типичной
системы).
Архитектура ADO.NET.
На Рис.1 представлена архитектура ADO.NET. Объект Recordset, который
выполняет так много функций в ADO, здесь отсутствует. Вместо него в
ADO.NET предусмотрено несколько особых объектов, выполняющих
специфические задачи. Ниже описаны три из них: DataAdapter, DataReader и
DataSet.
Рис.1.
Поставщики данных .NET. Очень важный компонент ADO.NET,
провайдер данных .NET, реализует интерфейсы ADO.NET. В частности, он
реализует объект DataReader так, что его могут использовать и приложение,
и объект DataSet.
Поставщик данных .NET состоит из четырех основных компонентов:
Connection — для связи с источником данных; Command выполняет команды
над источником данных; DataReader читает данные из источника данных в
однонаправленном режиме «только чтение», и DataAdapter, который читает
данные из источника данных и использует их для заполнения объекта
DataSet.
Средства для эффективной разработки с использованием ADO.NET.
Visual Studio .NET содержит два поставщика данных .NET. Поставщик
данных SQL Server .NET обеспечивает связь с SQL Server 7.0 и более
поздними версиями. Этот метод доступа наиболее эффективен для SQL
Server 7.0 и выше, потому что поставщик данных SQL Server .NET
связывается напрямую с SQL Server через протокол Tabular Data Stream
(TDS). Поставщик данных OLE DB .NET необходим для соединения с
отличными от SQL Server базами данных, такими, как Oracle или IBM DB2.
Этот поставщик данных использует OLE DB для соответствующих баз
данных.
Рис. 2.
На Рис. 2 показаны различные пути, по которым приложение может
связываться с базой данных через ADO.NET. При выборе пути сначала
определяется, какой поставщик данных .NET будет использоваться. Если это
SQL Server 7.0 или более поздняя версия, то подключается поставщик
данных SQL Server.NET. Если база данных SQL Server 6.5 или отличная от
SQL Server (например, Oracle), понадобится поставщик данных OLE DB
.NET. Заметим, что можно задействовать поставщик данных OLE DB .NET
для баз данных SQL 7.0 и выше, но тогда потеряется выигрыш в
производительности, который дает прямое подключение к SQL Server через
протокол TDS. Однако в этом неспецифическом способе есть свой плюс —
мобильность, т. е. можно менять базы данных без модификации кода.
Далее необходимо определить, какую задачу требуется выполнить. Если
надо просто прочитать и отобразить данные из источника данных, объекта
Data Reader вполне достаточно. Но если предстоит манипулировать данными
(например, редактировать или удалять), нужно использовать объект Data Set.
Хотя задействовать этот объект следует только в случае необходимости,
потому что он работает медленнее, чем Data Reader (Data Set использует Data
Reader для заполнения таблиц).
Хотя в ADO.NET реализовано много новых возможностей, можно
продолжать применять ADO. При разработке нового приложения на .NET
следует отдать предпочтение ADO.NET. Но если процесс разработки
продолжается, можно оставить ADO в старых проектах и использовать
ADO.NET в новых. .NET Framework позволяет задействовать ADO в .NET
приложениях через COM, который поддерживает обратную совместимость
без необходимости модифицировать ADO.
Ход работы:
Шаг 1. Изучите структуру базы данных, находящейся в
файле Database.mdb.
Шаг 2. Откройте файл «SampleCSApplication.csproj», зачем в
появившейся среде разработки файл Form1.cs в режиме
дизайнера.
Шаг 3. Изучите атрибуты компонентов приложения:
oleDBConnection, oleDBDataAdapter, dsCurrentCatalogItems
используя закладку Properties.
Шаг 4. Откройте файл dsCatalogItems.xsd и проверьте
соответствие его структуры и структуры искомой базы
данных.
Шаг 5. Откройте файл Form1.cs в режиме кода.
Шаг 6. Проанализируйте ошибки препроцессора и внесите
изменения указанные в комментариях к программе.
Шаг 7. Запустите программу.
Шаг 8. Покажите результат преподавателю.
Литература:
1. ASP.NET Mania. ADO.NET. Работа с данными вчера, сегодня,
завтра. Typed dataset.
2. http://rsdn.ru/article/db/DBSpeed.xml.
Лабораторная работа № 7. Web Service на C#.
Цели:
1. Изучение основ Web Service.
2. Его реализация на языке программирования C#.
3. Создание простого клиента на C# для использования Web Service.
Теоретические основы:
Проблемы повторного использования программного обеспечения и
интегрирования различных информационных систем возникли на заре
развития IT индустрии. Пройдя на пути решения этих задач от
использования библиотек функций до объектно-ориентированного
программирования и бинарных стандартов вызовов объектов, таких COM,
CORBA, IT индустрия подошла вплотную к выработке стандартов в области
механизмов взаимодействия систем. На смену вопросу “Чей клей для
склеивания приложений лучше?” приходят вопросы “Где взять
универсальный клей?” и “Будет ли мой объект хорошо держаться
универсальным клеем?”. Какие механизмы и протоколы могут получить
широкое распространение и будут приняты в качестве стандартов?
Основанные на RPC (Remote Procedure Call), бинарные протоколы, помимо
того, что они несовместимы между собой, не могут решить задачи
взаимодействия в распределенных Web приложениях, поскольку только
HTTP трафик гарантированно переносит информацию через Firewalls.
Необходим новый подход.
Концепция Web Services призвана решить эту задачу объединения,
интеграции разнородных систем на основе открытых стандартов. Основанная
на SOAP и XML, эта концепция предлагает путь взаимодействия объектов,
реализованных в различных бинарных стандартах, через Internet. Web
Services являются поворотом от Internet обозревателей к Internet
распределенных приложений.
SOAP представляет собой протокол обмена XML сообщениями между
объектами для передачи информации о вызываемых методах, параметрах и
возвращаемых значениях. SOAP основан на XML и формат его сообщений не
зависит от транспортного протокола передачи сообщений. Реализация SOAP
поверх HTTP находится на рассмотрении W3C. Уже сейчас ведутся работы
по разработке реализаций поверх других транспортных протоколов передачи
сообщений, таких как SMTP, MSMQ. Но для построения распределенных
приложений одного формата обмена не достаточно. Нужен механизм
описания предоставляемых объектом интерфейсов. WSDL предназначен для
решения этой задачи. WSDL так же подан на рассмотрение в W3C
консорциум. Для перечисления Web Services, раскрываемых на данном Web
сервере, используется простейший протокол DISCO. Если провести аналогии
с C OM протоколом, то можно соотнести RPC (COM) и SOAP как протоколы
вызовов объектов, WSDL(COM) и Type Library (SOAP) как форматы
описания типов объектов, Registry(COM) и DISCO(SOAP) как хранилище
списка локально доступных объектов.
На наших глазах концепция Web Services выходит сегодня из стадии
только обсуждения и стандартизации в стадию реализации. Многие
производители ПО заявили о планах или уже выпускают инструментальные
средства для создания Web Services. Microsoft .NET Framework и Visual
Studio.NET, выпуск которых намечен на осень этого года, предоставляют
разработчикам мощный инструментарий для создания XML Web Services и
построения распределенных Web приложений.
Давайте
рассмотрим
процесс
создания
достаточно
простого
распределенного приложения, использующего Web Service. Клиентские
приложения будут реализовывать просмотр данных о продуктах из таблицы
Customers базы данных db1.mdb. C базой данных клиентские приложения
будут общаться через Web Service, по протоколу HTTP и SOAP.
Средства/Подготовка:
1. Вам понадобится операционная система с NT ядром и IIS/Peer-WebServices (Win NT4 SP 6, Win 2K SP2, Win XP), .NET Framework 1.1 (4.0).
2. Visual Studio .NET 2003 (2008).
Ход работы:
Шаг 1 – Создание проекта Web Servies на C#.
Запустите студию. Выберете в главном меню “File->Project…”. Project type
установите в “Visual C# projects”. Templates установите в “Web Service”. В
строке Location введите “http://localhost/MyFirstWebService”. Далее перейдите
к коду вашего сервиса. Это можно сделать, нажав правую кнопку мыши в
окне Solution Browser’a на файле Service1.asmx (если вы ничего не изменяли,
то файл должен называться именно так) и выбрав в меню пункт “View
Source”. Должен открыться файл Service1.asmx.cs. Замените его код на ниже
следующий и прочтите его:
namespace MyFirstWebService
{
/// <summary>
/// Summary description for Service1
/// </summary>
//Наследование от класса System.Web.Services.WebService как раз и
превращает наш класс в
//Web Service
public class Service1: System.Web.Services.WebService
{
public Service1
{
InitializeComponent();
}
#region Component Designer generated code
//Required by the Web Services Designer
private IContainer components = null;
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
}
/// <summary>
/// Clean up any resources being used.
/// </summary>
protected override void Dispose( bool disposing )
{
if(disposing && components != null)
{
components.Dispose();
}
base.Dispose(disposing);
}
#endregion
//Атрибут перед метод означает, что это не сеансовый метод
сервиса
[WebMethod]
//Первый метод берет заказчика по переданному Id
public string GetCustomerById(int id)
{
OleDbConnection connect = null;
try
{
//Создаем соединение с базой
сonnect = new
OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data
”+
//Здесь содержится путь к базе данных
“Source=C:\Inetpub\wwwroot\DbService\bin\db1.mdb;");
//Открываем соединение с базой
connect.Open();
//Непосредственно текст запрос к базе данных
string sql = "SELECT * FROM Customers WHERE id =
" + id.ToString();
//Получаем данные
OleDbDataAdapter adapter = new
OleDbDataAdapter(sql, connect);
DataSet ds = new DataSet();
adapter.Fill(ds);
//Приводим их в удобочитаемый вид
if(ds.Tables[0].Rows.Count > 0)
return "id = " + (int)ds.Tables[0].Rows[0][0] + " | "
+
"Name = " +
(string)ds.Tables[0].Rows[0][1] + " | " +
"Money = " +
(decimal)ds.Tables[0].Ro
ws[0][2] + "$";
//Если не нашлось данных подходящих нашему
запросу
return "No data correspond query.";
}
catch(Exception exc)
{
//Если возникла ошибка возвращаем ее
return exc.Message;
}
finally
{
//Если соединение создано
if(connect != null)
//Если соединение открыто
if(connect.State != ConnectionState.Closed)
//Закрываем его
connect.Close();
}
}
[WebMethod]
//Аналогично предыдущему методу только теперь берем
заказчика по Name.
//Изменяется только текст SQL запроса.
public string GetCustomerByName(string name)
{
OleDbConnection connect = null;
try
{
connect= new
OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.
0;Data” +
“Source=C:\Inetpub\wwwroot\DbService\bin\db1.mdb;");
connect.Open();
string sql = "SELECT * FROM Customers WHERE
name = '" + name + "'";
OleDbDataAdapter adapter = new
OleDbDataAdapter(sql, connect);
DataSet ds = new DataSet();
adapter.Fill(ds);
if(ds.Tables[0].Rows.Count > 0)
return "id = " + (int)ds.Tables[0].Rows[0][0]
+"|"+
"Name = " +
(string)ds.Tables[0].Rows[0][1]
+"|"+
"Money = " +
(decimal)ds.Tables[0].Ro
ws[0][2] + "$";
return "No data correspond query.";
}
catch(Exception exc)
{
return exc.Message;
}
finally
{
if(connect != null)
if(connect.State != ConnectionState.Closed)
connect.Close();
}
}
[WebMethod]
//Этот метод может возвращать группы заказчиков
непосредственно по SQL запросу к базе.
//В остальном метод идентичен двум другим.
public string GetCustomers(string query)
{
OleDbConnection connect = null;
try
{
string result = string.Empty;
connect= new
OleDbConnection(@"Provider=Microsoft.Jet.OLE
DB.4.0;Data “ +
“Source=C:\Inetpub\wwwroot\DbService\bin\db1.
mdb;");
connect.Open();
string sql = "SELECT * FROM Customers
WHERE " + query;
OleDbDataAdapter adapter = new
OleDbDataAdapter(sql, connect);
DataSet ds = new DataSet();
adapter.Fill(ds);
if(ds.Tables[0].Rows.Count > 0)
{
foreach(DataRow record in
ds.Tables[0].Rows)
{
result += "id = " + (int)record[0] + " | "
+
"Name = " +
record[1] + " | " +
"Money = " +
(decimal)record[2]
+ "$\n";
}
return result;
}
else
return "No data correspond query.";
}
catch(Exception exc)
{
return exc.Message;
}
finally
{
if(connect != null)
if(connect.State != ConnectionState.Closed)
connect.Close();
}
}
}
}
}
Шаг 2 – Компиляция и проверка Web Service.
Откомпилируйте, выбрав в главном меню студии Debug->Build. После
этого поместите в папку Debug получившегося проекта базу данных db1.mdb
(она должна состоять из одной таблицы Customers, в которой 2
целочисленных поля с названиями id и money и одно строковое поле с
названием name). Запустите проект без Debug. Это можно сделать, нажав
Ctrl+F5 или выбрав в главном меню студии Debug->Start Without Debugging.
Должно появиться следующее окно:
Отчет по работе: Покажите результат работы преподавателю.
Перечень вопросов для зачета по дисциплине «Управление
информационными ресурсами»:
1. Организация сетевого взаимодействия приложений.
2. Модели взаимодействия и тенденции развития.
3. Технология CORBA.
4. Технология J2EE.
5. Технология . NET.
6. Модели взаимодействия «точка-точка», «клиент-сервер».
7. Трехзвенные модели удаленного доступа к данным.
8. Средства идентификации и аутентификации в сетевых ОС.
9. Интерфейс сокетов.
10.Сокеты Беркли.
11.Технология «клиент-сервер» в Web.
12.Технология Web
как универсальный способ
информационных систем.
13.Протокол HTTP.
14.Языки и средства создания Web-приложений.
15.Язык разметки документов HTML.
16.Каскадные таблицы стилей.
17.Язык XML и XSL.
18.Скриптовые языки JavaScript и VBScript.
19.Технология DHTML.
построения
Перечень вопросов для экзамена по дисциплине «Управление
информационными ресурсами»:
1. Интерфейс CGI.
2. Механизм обмена данными.
3. Формирование документа на стороне сервера.
4. Практика применения скриптов CGI.
5. Технология ASP.
6. Ввод и вывод.
7. Взаимосвязь между отдельными страницами.
8. Управление приложением.
9. Работа с базами данных.
10.Методики программирования.
11.Технолгия JSP.
12.Преимущества сервлетов.
13.Преимущества JSP.
14.Технология РНР.
15.Возможности PHP.
16.Технология XML.
17.Правила создания XML-документов.
18.Просмотр XML-докуметнов.
19.Стилевые таблицы XSL.
20.Documents Type Definitions (DTD).
21.Схемы данных.
22.Вызов удаленных процедур и промежуточное программное
обеспечение.
23.Технология Web-сервисов.
24.Сервисно-ориентированная архитектура.
25.Стек технологий Web-сервисов.
7.
Учебно-методическое
и
информационное
обеспечение
дисциплины
а) основная литература:
1. Олифер В.Г., Олифер Н. А. Компьютерные сети. Принципы,
технологии, протоколы. — 3-е изд. — М. ; СПб.: Питер, 2007.
2. Олифер В.Г., Олифер Н. А. Компьютерные сети. Принципы,
технологии, протоколы. — 3-е изд. — М. ; СПб.: Питер, 2008.
3. Шилдт Г. Java 2 v5.0 (Tiger). Новые возможности. — СПб. : БХВПетербург, 2005.
б) дополнительная литература:
4. Рудикова Л.В. Базы данных. Разработка приложений. — СПб.:
БХВ-Петербург, 2006.
5. Сырецкий Г.А. Информатика. Фундаментальный курс: в 2 т.: Т. 1:
Основы информационной и вычислительной техники. — СПб.:
БХВ-Петербург, 2005.
6. Гиляревский Р. С. и др. Информатика как наука об информации.
Информационный, документальный, технологический,
экономический, социальный и организационный аспекты. —М.:
Фаир-Пресс: Гранд, 2006.
7. Пауэлл Т.А.WEB-дизайн. — 2-е изд., перераб. и доп. —СПб.: БХВПетербург, 2005.
8. Олифер В. Г., Олифер Н. А. Сетевые операционные системы —2-е
изд. —СПб.: Питер, 2009.
9. Шапошников И.В.Интернет программирование: практ. рук. — 2-е
изд. —СПб.: БХВ-Петербург, 2000.
10.Дейтел Х. М ., Дейтел , Сантри С. И. Технологии
программирования на Java 2. Кн. 2: Распределенные приложения.
—М.: Бином-Пресс, 2003.
11.Дейтел Х. М., Дейтел П. Дж., Сантри С. И. Технологии
программирования на Java 2. Кн. 3: Корпоративные системы,
сервлеты, JSP, Web-сервисы. —М.: БИНОМ, 2003.
в) программное обеспечение и Интернет-ресурсы:
ОC Windodw XP или Windows 7, ОС Linux, .NET Framework 4.0, Visual
Studio 2008.
8. Материально-техническое обеспечение дисциплины
Лекционная аудитория, оснащенная мультимедийным оборудованием
для организации презентаций (компьютер с проектором и акустической
системой и выходом в Интернет). Компьютерный класс, оснащенный
компьютерами с современной аппаратной платформой и с выходом в
Интернет.
Программа составлена в соответствии с требованиями ФГОС ВПО с
учетом рекомендаций и Примерной ООП ВПО по направлению и профилю
подготовки «Прикладная информатика в социологии».
Автор
доцент
________
Л.Б. Тяпаев
Программа одобрена на заседании кафедры социальной информатики от
«___» ________ 2011 года, протокол № ____.
Заведующий кафедрой
социальной информатики,
доцент
И.Г. Малинский
________
Декан социологического факультета,
профессор
________
Г.В. Дыльнов
Download