
- •Вводный раздел
- •1. Информационные системы. Основные понятия
- •Моделирование информационных систем
- •2. Архитектуры распределенного приложения с базой данных. Функции клиента и сервера при различных вариантах расслоения. Типовые клиенты доступа к бд на основе различных технологий.
- •Модель Клиент – Сервер
- •Трехуровневая модель
- •Распределенная (многоуровневая) модель
- •4 Технологии программ расширений
- •Тема 1. Средства взаимодействия клиента и сервера бд
- •1.1 Сервисы сети Internet. Сетевая архитектура osi.
- •1.2 Протоколы прикладного уровня в стеке tcp/ip. Унифицированный локатор ресурса при работе с бд
- •1.3 Блоки данных в стеке протоколов
- •Тема 2. Удаленные базы данных
- •2.1 Понятие удаленных баз данных
- •2.2 Инструментальные средства проектирования структуры бд. Утилиты автоматизированного проектирования бд.
- •2.3 Характеристика субд удаленного доступа
- •Тема 3. Разработка и эксплуатация серверной части
- •3.1 Проектирование структуры базы данных (на самостоятельное изучение) Вопросы для самостоятельной работы
- •3.2 Создание баз данных, таблиц и индексов
- •Удаление баз данных, таблиц
- •Изменение структуры таблиц
- •3.3 Типы данных в MySql
- •Integer и его вариации
- •3.4 Методы заполнения полей базы данных Использование insert
- •Использование replace
- •Использование delete
- •Использование truncate
- •Использование update
- •Загрузка данных с помощью load data infile
- •Тема 4. Разработка и эксплуатация клиентской части.
- •4.1 Простые запросы
- •4.2 Выбор строк с помощью where
- •Удаление повторений с помощью distinct
- •Выбор групп с помощью having
- •Сортировка результатов поиска с помощью order by
- •Ограничение результатов поиска с помощью limit
- •4.4 Сложные запросы Объединение двух таблиц
- •Объединение нескольких таблиц
- •Самообъединение таблиц
- •Типы объединений
- •4.5 Создание подзапросов
- •4.6 Встроенные функции MySql
- •Операторы
- •Типы таблиц MySql
- •Тема 5. Язык html как средство внешнего представления данных.
- •5.1 Основные правила проектирования пользовательского интерфейса
- •5.2. Построение абзацев в гипертекстовом документе
- •5.3 Построение заголовков в гипертекстовом документе
- •Тема 6. Разработка бизнес-слоя и интерактивных компонентов
- •6.1 Perl как средство разработки программ –приложения
- •6.2 Типы данных в Рerl
- •Переменные
- •Скалярные переменные
- •Массивы
- •Ассоциативные массивы
- •6.3 Конструкции языка Рerl Простые и составные операторы
- •Условные операторы
- •Оператор unless
- •Оператор do
- •Циклы и ветвления
- •Цикл until
- •Циклы for и foreach
- •Оператор безусловного перехода goto
- •Генерация динамических выражений с помощью функции eval
- •6.4 Подпрограммы
- •Использование пакетов для изоляции подпрограмм
- •6.5 Операторы языка Perl .Операторы сравнения
- •Логические операторы
- •6.6 Работа с файлами и строками
- •Функция chop
- •Функция index
- •Функция length
- •Функция substr
- •Функция join
- •Функция split
- •Функции для обработки списков
- •Функция reverse
- •Функция sort
- •Функции работы с массивами
- •Функции push и pop
- •Функция shift
- •Функция unshift
- •Функция splice
- •Функция scalar
- •Функция grep
- •Функции обработки ассоциативных массивов
- •Функция keys
- •Функция values
- •Функция each
- •Функция delete
- •Пример скриптов для выполнения практического задания
- •1. Добавление информации в базу (на примере винного погреба -добавление страны)
- •Часть 1
- •Удаление информации из базы (удаление страны)
- •Часть 2
- •Часть 3
- •Поиск информации в базе данных
- •Занесение новой информации во все таблицы базы данных
- •Часть 1
- •Часть 2
Трехуровневая модель
К трехуровневой архитектуре добавляется промежуточный уровень, который помогает разгрузить и клиента, и сервер. Здесь происходит дальнейшее разделение функций и достижение большей модульности. При этом управление транзакциями, логика бизнес приложения и другие вспомогательные функции переходят на промежуточный уровень.
Промежуточный уровень размещается отдельно или с одной из частей - клиентом или сервером (в зависимости от вида конфигурации каждой из частей).
Преимущества такой архитектуры:
возрастают динамичность усовершенствования бизнес-логики проекта, уровень представления и хранения данных;
упрощается процесс разработки, сокращаются временные затраты;
совершенствуются возможности контроля, доступа и целостности данных;
технологическая мощность клиента может упрощаться.
По такой архитектуре строятся Intranet системы. Эти системы также работают на базе TCP/IP протоколов, но обычно изолированы от внешних сетей. В таких системах используется протокол HTTP (Hypertext Trasfer Protokol), что позволяет использовать для клиентской части WEB-browser.
Приложения, работающие с базой данных, могут работать и на двухуровневой архитектуре, но более типичная в этом случае трехуровневая или даже многоуровневая архитектура. Пример трехуровневой архитектуры с базами данных представлен на рисунке 3.
Рисунок 3. Трехуровневая архитектура клиент – сервер
В таких разработках серверную часть называют WEB-сервером. При разработке подобных архитектур, для клиента используют Internet Hxplorer, а сервер приложений формируется на базе Internet Information Server и сервера баз данных на основе MySQL Server.
Браузер посылает WEB-серверу запросы на доставку WEB-страниц или данных. WEB - сервер обслуживает запросы и передает их программе-расширению, которая преобразует эти запросы в форму, понятную серверу баз данных. Сервер баз данных обслуживает запрос и передает необходимые данные приложению сервера, которое конвертирует их в необходимый формат и передает серверу, а потом клиенту.
Распределенная (многоуровневая) модель
Если между клиентом и сервером существует несколько процессов, то говорят о многоуровневой архитектуре. Здесь выделяются WEB-сервер, программа-расширение, сервер баз данных и клиент в виде браузера.
В случае усложнения бизнес-логики. Возрастает нагрузка на сервер приложений. Приходится решать задачи обеспечения безопасности, аутентификации - представление определенного уровня доступа, защита, целостность данных, доступ к данным. В ряде случаев для группы этих задач выделяются отдельные единицы техники. Таким образом, средний уровень 3 уровневой модели становится все более Распределенным. Создаются специальные подсистемы для решения конкретных задач. Система становится многоуровневой. Чаще всего в целях ограничения доступа и безопасности такие системы проектируются как Intranet. В качестве систем управления базами данных можно использовать MуSQL Server, Oracle и др. СУБД.
4 Технологии программ расширений
Программы расширения серверной части используют различные технологии: CGI, гибридный CGI c API, ASP.
Рассмотрим расширения серверной части типа CGI. CGI является первым протоколом, который использовался для написания расширений WEB-серверов. Такого типа программы пишутся на таких языках программирования, как Perl, С, PHP, JavaScript и др. При каждом запросе клиента к базе данных WEB-сервер запускает CGI-программу, потом интерпретатор языка начинает выполнение программы. Такой процесс при большом количестве пользователей отнимает много ресурсов сервера, что сказывается на быстродействии. Большинство программ-расширений используют специальные HTML-страницы, именуемые шаблонами со специальными тегами, предназначенными для работы с определенными CGI-программами конкретной фирмы. Когда клиент формирует запрос к базе, фактически он переадресует CGI-программу к конкретному шаблону, который и обрабатывает запрос. Существует и второй вариант обработки запросов CGI-программами, при этом SQL-операторы внедряют в HTML-страницы, тогда потребность в шаблонах отпадает. CGI-программа форматирует SQL-операторы и передает их серверу баз данных.
При архитектуре гибридного CGI, программа расширения состоит из двух компонентов: CGI-программы небольшого размера и системного сервиса, процесс-партнера. Большинство известных нам серверов, WEB-серверы, серверы баз данных, FTP-серверы выполнены, в качестве системных сервисов или демонов. Основную работу выполняет процесс-партнер, причем один такой сервис может обслуживать несколько CGI-программ. В случае использования такой архитектуры увеличивается быстродействие, экономятся все остальные ресурсы.
Иногда WEB-серверы работают с программами расширениями, выполненными по технологии API-приложений. В таком случае программа расширение выполнена в виде динамических библиотек DLL, представляющих собой процедуры, вызываемые с WEB-сервера. В отличие от CGI, которая вызывается в цикле запроса один раз, процедуры API-приложения загружаются по мере необходимости. Наиболее популярные интерфейсы API-NSAPI - фирмы Netscape и ISAPI - фирмы Microsoft. Решение архитектуры с использованием API дает значительный выигрыш по быстродействию по сравнению с CGI, которую многократно загружают, в результате динамических процессов. Но используя API-интерфейсы, возможны вариант аварийного завершения, в случае сбоя в CGI-программе WEB-сервер продолжит функционирование.
Рассмотрим API-интерфейс - ODBC. Он используется для соединения с базами данных.
С помощью необходимых административных настроек подключаются нужные, для конкретной среды драйверы, а при изменении базы данных SQL-операторы не потребуют переписывания. ОDBC создает дополнительный уровень между вызывающей программой и базой данных.
ODBC состоит из 5 частей:
1. Программа-расширения сервера, которая транслирует запросы клиента в SQL-операторы и с помощью конкретных драйверов передает их источнику данных.
2. Менеджер драйвера ODBC – загружает необходимые драйверы, проверяет вызовы, осуществляет трассировку вызывающих функций.
3. Администратор ODBC – используется для ведения учета связывания источника данных с ODBC.
4. Драйверы ODBC – осуществляют взаимодействие с базой конкретного производителя, переводят SQL-операторы и производят вызов.
5. Источник данных, где хранятся непосредственные данные базы.
Обзор технологий активных и пассивных серверов и клиентов
Понятия пассивный и активный клиент, сервер.
Если содержимое программы представлено статическими страницами, которые содержат неизменную информацию и гиперссылки на другие страницы, то такое приложение называют пассивным. Если существуют пассивные приложения, то должны быть и активные или интерактивные, которые меняют свое содержимое в обмен на какие-то события или действия клиента или пользователя.
Рассмотрим некоторые из активных технологий серверов.
CGI - Common Gateway Interface - шлюзовой интерфейс. Информация собирается от пользователя через специальные поля и органы управления, которые включаются в некоторые формы. После заполнения формы пользователь нажимает специальную кнопку, и все данные из формы передаются программе CGI, эта программа обрабатывает данные и формирует или выбирает новый документ HTML или другого формата, возможно подключение информации из баз данных. Вновь сформированный документ предъявляется пользователю. Таким образом, CGI-программа представляет собой консольное приложение, которое загружается в оперативную память сервера и запускается только по запросу пользователя. После обработки запросов пользователя, программа CGI выгружается из памяти. Программа CGI представляет собой отдельный процесс, программа которого может быть написана на различных языках программирования, позволяющих создавать подобные модули.(PERL, PHP, C++).
ISAPI - приложения, работающие на базе Microsoft Internet Information Server. Эти приложения представляются в виде библиотек динамической загрузки. Их подразделяют на расширения и фильтры ISAPI. В случае использования технологии CGI процесс для каждого пользователя запускается отдельно, что отнимает больше времени. Расширения ISAPI работают быстрее, т. к. используемый при этом сервер Microsoft Internet Information Server позволяет загружать такие приложения в отдельное адресное пространство памяти и может быть задействовано без повторной загрузки. Естественно, что приложения ISAPI могут вызвать аварийное завершение работы Web-сервера, поэтому требуют тщательной отладки. Существуют еще и фильтры ISAPI, которые реализованы также в виде библиотек динамической загрузки DLL, но способны контролировать весь поток данных между браузером и сервером WEB по протоколу HTTP. Поэтому их часто применяют для решения задач шифрования, перекодировки, аутентификации, статистики служебной информации и т.д.
ASP - Active Server Page - Активные серверные страницы.
Само название этой технологии раскрывает метод создания активных Web-серверов. С помощью этой технологии можно создавать интерактивные страницы, которые выполняют обработку пользовательских данных, подключаются к базам данных, осуществляют поиск, выборку, фильтрацию, запись данных, выполняют массу служебных системных задач с помощью специальных активных объектов и компонентов. При обращении к ASP-странице, WEB-сервер интерпретирует код ASP, формирует HTML-страницу, которую представляют пользователю. Поэтому текст получаемой страницы изначально скрыт. С помощью методов активных элементов ADO можно усовершенствовать программу, таким образом, упрощается доступ к базам данных.
Чтобы сократить скорость обработки и объем передаваемых данных между клиентом и сервером, нужно проводить обработку этих данных на клиентской части. Для этого пишут код клиентской части на языках сценариев JavaScript, VBScript, используют активные элементы ACTIVX, апплеты Java и др.
JAVA.
Для создания динамичных страниц с визуальными звуковыми эффектами в страницы встраивают Апплеты Java. Существуют обширные библиотеки классов Java, позволяющие усовершенствовать интерфейс пользователя, использовать динамическую графику и прочие достижения сетевых технологий. Апплеты выполняются под управлением браузера, подгружаются из сети с WEB сервера.
Апплет - это маленькая программа, которая выполняется внутри более крупной, основной программы. Апплеты расширяют функциональность браузера.
Вопросы и задания для самоконтроля.
1 Дайте определение АИС. Для чего предназначена АИС?
2. Какие системы называют корпоративными?
3. Какие виды моделей выделяют в предметной области?
4. Назовите особенности архитектуры КИС
5. Перечислите известные Вам Internet технологии, применяемые для Web-разработок.
6. Дайте характеристику классической двухуровневой модели Клиент - Сервер.
7. Укажите преимущества трехуровневой архитектуры Клиент - Сервер.
8. Как Вы понимаете многоуровневую модель Клиент - Сервер?
9. Перечислите известные Вам технологии программ-расширений.
10. Охарактеризуйте понятия пассивный и активный клиент, сервер.
11. Объясните термины CGI, ISAPI, ASP.