Дипломная работа.
Тема: "Перенос базы данных на WEB-сервер"
Сдавался: СПбГЭТУ(бывший ЛЭТИ), кафедра МО ЭВМ, 15.02.2000
Оценка: "отлично"
Выбор
темы для дипломного
проектирования.
Выбор темы
для дипломного
проектирования,
на мой взгляд,
достаточно
сложная вещь.
В дипломной
работе требуется
проявить
самостоятельность
с одной стороны
и уровень знаний
с другой. Но
помимо этого
хотелось осветить
проблему достаточно
интересную
и новую, поэтому
я выбрал тему
диплома связанную
с технологиями
Internet.
Internet
развивается
довольно
стремительно.
Быстро растет
количество
изданий, посвященных
Сети, что предвещает
широкое ее
распространение
даже в далеких
от техники
областях. Internet
превращается
из большой
игрушки для
интеллектуалов
в полноценный
источник
всевозможной
полезной информации
для всех. Процессы
развития глобальных
информационно-коммуникационных
технологий
очень динамичны
в настоящее
время, а их
возможности
для общества
и экономики
еще только
начинают масштабно
использоваться.
Еще два-три
года назад
Internet
рассматривался
преимущественно
как гигантская
библиотека
и главной его
задачей считалась
помощь в поиске
нужной информации
и организация
доступа к ней.
В настоящий
"коммуникационный"
этап своего
развития главной
задачей сети
Internet
является помощь
в поиске желательных
партнеров и
предоставление
средств для
организации
с ними нужного
вида коммуникаций
с необходимой
интенсивностью.
Результаты
последних
исследований
показали, что
использование
Internet-технологий
может принести
реальную экономию
и прибыль. Ожидается
существенный
рост увеличения
объемов Internet-коммерции,
особенно в
таких областях,
как путешествия,
розничная
торговля, финансы,
тематическая
реклама, а также
в компьютерном
секторе. В мире
накоплено
огромное количество
информации
по различным
вопросам. Чаще
всего эта информация
хранится в
базах данных
(БД). Чтобы опубликовать
её в Сети приходилось
экспортировать
БД в HTML-документы,
что требовало
больших затрат
и усложняло
поиск информации.
Сегодня имеется
большой опыт
подобных работ.
Практически
любой пользователь
Сети не раз
сталкивался
с подобными
БД. Например,
главное в работе
популярного
поискового
сервера Yahoo
(адрес- http::\\www.yahoo.com)
- это запросы
к базе данных
WWW-сервера
по ключевым
словам. Ответ
сервера - список
гипертекстовых
ссылок на найденные
в Сети страницы,
содержащие
нужную информацию.
Именно сегодня
проблема
Web-интерфейса
к БД как никогда
актуальна.
Разработка
технического
задания на
дипломное
проектирование.
Работая
в фирме «Телефонная
Коммерческая
Служба Санкт-Петербурга
008» передо мною,
было поставлена
задача:
Перенести
базу данных
по клиентам
фирмы с сервера
в локальной
сети телефонной
справочной
службы фирмы
на её WEB-сервер.
Выбрать
способ реализации.
Сделать
выбор между
доступными
на сегодняшний
день серверами
баз данных,
для дальнейшей
реализации,
на его основе,
базы данных
«Телефонной
Коммерческой
Службы Санкт-Петербурга
008».
Сделать
выбор между
способами
доступа к базе
данных.
Осуществить
разработку
доступа к базе
данных фирмы
с помощью
Internet-браузера.
Выбор
методов и средств
решения.
Выбор
сервера баз
данных.
В
данном разделе
требуется
определить
с помощью каких
методов и средств
решения можно
осуществить
реализацию
проекта. Сразу
надо сказать,
что средств
решения этой
задачи на сегодняшний
день достаточно
много, но практически
всегда всё
зависит от
количества
ресурсов
предоставляемых
для решения
– типом и характеристиками
сервера, операционной
системой и т.д.
Сразу надо
сказать, что
компьютер,
выделенный
под WEB-сервер
достаточно
мощный (Pentium
II
- 300Мг, 128Мб. оперативной
памяти, SCSI
– диск). На нём
установлена
операционная
система Microsoft
Windows
NT
4.0, так же установлен
WEB-сервер
Internet
Information
Server.
Доступная
потребителю
информация
о самих системах,
операционных
системах, программном
обеспечении
инфраструктуры
(СУБД и мониторы
обработки
транзакций)
как правило,
носит очень
общий характер.
Структура
аппаратных
средств, на
базе которых
работают программные
системы, стала
настолько
сложной, что
эксперты в
одной области
редко являются
таковыми в
другой.
Информация
о реальном
использовании
систем редко
является точной.
Более того,
пользователи
всегда находят
новые способы
использования
вычислительных
систем как
только становятся
доступными
новые возможности.
При стольких
неопределенностях
просто удивительно,
что многие
конфигурации
систем работают
достаточно
хорошо. Оценка
конфигурации
все еще остается
некоторым видом
искусства, но
к ней можно
подойти с научных
позиций. Намного
проще решить,
что определенная
конфигурация
не сможет
обрабатывать
определенные
виды нагрузки,
чем определить
с уверенностью,
что нагрузка
может обрабатываться
внутри определенных
ограничений
производительности.
Более того,
реальное
использование
систем показывает,
что имеет место
тенденция
заполнения
всех доступных
ресурсов. Как
следствие,
системы, даже
имеющие некоторые
избыточные
ресурсы, со
временем не
будут воспринимать
дополнительную
нагрузку.
Следует
отметить, что
выбор той или
иной аппаратной
платформы и
конфигурации
определяется
и рядом общих
требований,
которые предъявляются
к характеристикам
современных
вычислительных
систем.
К ним
относятся:
отношение
стоимость/производительность;
надежность
и отказоустойчивость;
масштабируемость;
совместимость
и мобильность
программного
обеспечения.
Уже
довольно давно
развитые коммерческие
СУБД основываются
на архитектуре
"клиент-сервер".
При этой организации
наиболее трудоемкие
операции над
базами данных
выполняются
на выделенном
компьютере-сервере,
который должен
быть достаточно
мощным и обладать
соответствующим
набором ресурсов
основной и
внешней памяти.
До поры серверная
часть СУБД
обладала простой
организацией:
запросы, поступающие
из клиентских
частей системы,
обрабатывались
последовательно
с небольшой
оптимизацией
для совмещения
процессорной
работы с работой
устройств
внешней памяти.
Однако с появлением
на рынке мультипроцессорных
симметричных
аппаратных
архитектур,
производители
СУБД были вынуждены
пересмотреть
организацию
своих серверов,
допустив в них
внутреннюю
параллельность.
Internet
действительно
неожиданно
бурно ворвался
в устоявшуюся
жизнь разработчиков
клиент-серверных
приложений.
Однако первоначальный
шок довольно
быстро прошел,
как только
наступило
осознание
нехитрого в
общем-то факта,
что структура
Internet/Intranet
приложений
имеет много
общего с традиционной
платформой
"клиент-сервер".
Правильнее
говоря, World Wide Web (WWW)
также основывается
на клиент-серверной
архитектуре.
В самом деле,
Web-браузер является
типичным клиентским
front-end'ом, основное
отличие которого
от клиентских
мест, построенных
с помощью Visual C++,
Visual Basic, Visual FoxPro и других
средств разработки,
состоит в более
гибко настраиваемой
функциональности,
которая может
определяться
даже во время
выполнения
программы. При
этом не требуется
ни перекомпиляции,
ни переустановки
модулей, что
уже само по
себе является
нетривиальной
задачей в больших
и сложных
клиент-серверных
системах масштаба
корпорации.
Правда, первоначально
браузеры
использовались
только как
средства
форматирования
статического
текста. Однако
активно развивающийся
в Internet бизнес вскоре
перестал
довольствоваться
простой публикацией
рекламы предприятия
и справочной
информации
о его деятельности.
Например, клиент
имел полное
право хотеть
выбрать из
рекламного
проспекта фирмы
понравившиеся
ему образцы
и совершить
покупку. Подобно
типичному
интерфейсу
клиентского
приложения
на VB, VFP и т.д., сценарий
работы предполагал
заполнение
клиентом некоторой
формы, населенной,
вообще говоря,
различными
элементами
управления,
отправку
соответствующего
запроса на
сервер и прием
результатов
обработки.
Таким образом,
требования
бизнеса выдвинули
на первый план
принципы
динамического
взаимодействия
браузера и
Web-сервера внутри
сессии, что
заставило
задуматься
как об активной
роли браузера,
так и о расширении
функциональности
сервера по
сравнению с
простым хранением
и пересылкой
HTML-документов.
Многие
фирмы-производители
программных
продуктов
выпускают или
разрабатывают
средства публикации
баз данных в
Internet-сетях.
Основные функции
таких программных
продуктов
данного вида
таковы:
обеспечить
отображение
интерфейса
пользователя
в формате HTML
для отображения
программой
просмотра
клиента, в частности
Internet-броузерами.
обеспечить
формирование
запросов к
базе данных
наиболее простыми
для неподготовленного
пользователя
средствами.
обеспечить
аутентификацию
пользователя
(для разграничения
доступа).
обеспечить
обработку
запроса и возврат
результата
в HTML
формате для
отображения
программой
просмотра
пользователя.
При
этом необходимо
помнить о защите
передаваемой
по Сети информации
и о привлекательности
и понятности
интерфейса.
Для
серийно выпускаемых
программных
продуктов
данного типа
характерны
высокая стоимость
самого программного
обеспечения
(ПО), аппаратной
платформы,
самой СУБД
(насколько мне
известно, ПО
для связи с WWW
пока не включается
в поставку
СУБД). К достоинствам
можно отнести
хорошую
документированность,
наличие технической
поддержки,
низкую стоимость
дальнейших
обновлений
программного
обеспечения.
Хотя в последнее
время начинают
появляться
программы
такого типа
для «настольных»
СУБД типа Visual
FoxPro,
Paradox
и т.д. Но здесь
другая проблема
- при низкой
стоимости
(некоторое ПО
можно получить
по Сети бесплатно
- нужно лишь
иметь СУБД)
отсутствует
мощность и
гибкость. Такое
ПО годится
разве что для
публикации
небольших по
объёму и несложных
баз данных.
Можно
упомянуть
следующие СУБД:
SQL-server
фирмы Microsoft
(требует мощного
сервера баз
данных под
управлением
ОС Microsoft
Windows
NT
server).
Sybase
System
фирмы Sybase
(требует мощного
UNIX-
сервера).
Informix
фирмы Informix
Software
(также требует
мощного UNIX-
сервера).
Progress
фирмы Progress
Software
(работает на
той же аппаратной
платформе, что
и два предыдущих).
InterBase
фирмы Borland
(есть вариант
для Windows
NT
и для UNIX).
Кроме
вышеперечисленных
достоинств
можно также
отметить хорошую
масштабирумость
(наращиваемость),
устойчивость
в работе, защиту
от несанкционированного
доступа и мощность
этих программных
продуктов. Всё
это ПО, как мне
кажется, очень
хорошо подходит
для работы с
крупными проектами
в области баз
данных.
Например,
в последнее
время, всё чаще
упоминают
Intranet
(«внутренняя»
Сеть). Это крупные
корпоративные
вычислительные
сети, основанные
на технологиях
Internet,
использующие
те же протоколы,
форматы данных
и т.д. имеющие
или не имеющие
выход глобальную
сеть Internet.
Достоинства
Intranet
в том, что не
надо переучивать
персонал при
переходе на
новое ПО (можно,
в принципе,
оставить старые
интерфейсы),
так как научив
один раз человека
пользоваться
Internet’
ом, можно легко
обучить его
работе с ПО
предприятия
- для отображения
информации
можно воспользоваться
теми же браузерами.
К общим чертам
вышеперечисленных
программных
продуктов можно
отнести поддержку
стандартного
языка запросов
к базам данных
SQL,
что облегчает
в случае надобности
переход от
одной СУБД к
другой, практическое
отсутствие
ограничений
на размеры
файлов баз
данных.
Оригинальная
версия SQL
– это интерпретируемый
язык, предназначенный
для выполнения
операций над
базами данных.
Язык SQL
был создан в
начале 70 х как
интерфейс для
взаимодействия
с базами данных,
основанными
на новой для
того времени
реляционной
теории. Реальные
приложения
обычно написаны
на других языках,
генерирующих
код на языке
SQL
и передающих
их в СУБД в виде
текста в формате
ASCII.
Нужно отметить
также, что
практически
все реальные
реляционные
(и не только
реляционные)
системы помимо
реализации
стандарта ANSI
SQL,
известного
сейчас в последней
редакции под
именем SQL2
(или SQL-92),
включают в себя
дополнительные
расширения,
например, поддержка
архитектуры
клиент-сервер
или средства
разработки
приложений.
Как говорилось
выше, выбор
реализации
того или иного
решения поставленной
задачи сопряжен,
прежде всего,
с техническими
показателями
компьютера-сервера,
а так же с операционной
системой,
установленной
на нём.
Microsoft SQL Server 7.0 входит
в состав семейства
Microsoft BackOffice, объединяющего
пять серверных
приложений,
разработанных
для совместного
функционирования
в качестве
интегрированной
системы. Она
позволяет
пользователям
повысить
производительность
процесса принятия
решений средствами
систем, базирующихся
на архитектуре
клиент-сервер.
Кроме того,
Microsoft SQL Server 7.0 завершает
линию средств
разработки,
включающих
Microsoft Access, Visual FoxPro®, Visual Basic и Visual
C++™.
Расширенные
возможности
масштабирования
и высокая
производительность.
Особое
внимание, которое
было уделено
повышению
производительности
СУБД, позволило
повысить скорость
выполнения
некоторых
операций почти
на 400% на многопроцессорных
компьютерах.
Это достигается
активным
использованием
многопроцеcсорной
архитектуры
компьютера
и многопоточной
архитектуры
операционной
системы. Среди
операций,
выполняющихся
параллельно,
можно назвать
сканирование
таблиц, загрузку,
создание/восстановление
страховочной
копии. Все это
позволяет
обеспечить
высокопроизводительную
работу с большими
и очень большими
базами данных.
Поддержка
очень больших
баз данных и
съемных носителей.
Для версии
4.21а очень большой
считалась база
данных размером
10-15 Гб (хотя некоторые
организации,
например, Sprint,
работали с
базами данных
размером 60 Гб
и более). Высокоскоростная
параллельная
обработка
делает возможной
поддержку
работы с базами
данных размером
100 Гб и более на
соответствующим
образом конфигурированных
системах. Не
только процесс
создания страховочных
копий выполняется
быстрее, но и
такие операции,
как проверка
целостности
базы данных
(выполняется
командой DBCC),
сильно выигрывают
от использования
параллельного
сканирования
и увеличенных
блоков ввода/вывода.
Возможность
сохранения
в страховочной
копии (восстановления
из копии) индивидуальных
таблиц позволяет
сократить
время, необходимое
на сохранение
(восстановление)
отдельных
таблиц базы
данных. Поддержка
распространения
баз данных на
съемных носителях
(таких как CD-ROM)
позволяет
выпускать
различного
рода справочники
или информационные
материалы.
Интересно
отметить, что
гибкость SQL Server
проявляется
и при работе
с очень маленькими
объемами информации.
Так, для того
чтобы базу
данных можно
было сохранить
на дискете, ее
минимальный
размер снижен
до 1 Мб.
Расширение
возможностей
языка и программного
доступа.
Существующая
версия SQL Server снабжена
мощным языком
программирования
-Transact-SQL, позволяющим
создавать
сложную логику
триггеров и
хранимых процедур.
В новой версии
язык значительно
расширен, теперь
он соответствует
стандарту
ANSI-92, и программисты
получили новые
возможности
(такие как новые,
соответствующие
ANSI-стандарту,
типы данных
и соответствующая
стандарту ANSI
поддержка
декларативной
целостности
данных). Помимо
перечисленных
возможностей,
программист
может воспользоваться
генератором,
автоматически
создающим
уникальные
значения для
ключевых полей
таблицы, возможностью
передавать
идентификаторы
и данные типа
TEXT и IMAGE как параметры
хранимым процедурам
и многое другое.
Использование
хранимых процедур,
которые запускаются
автоматически
при каждом
старте SQL Server, позволяет
создавать
системы, способные
выполнять
различного
рода задания
без участия
администратора.
Наиболее же
интересным
нововведением
являются
скроллируемые,
двунаправленные
курсоры. Курсоры
SQL Server поддерживают
все режимы,
определенные
расширенными
требованиями
ANSI, а также и ODBC
семантику; они
совместимы
с существующими
курсорами,
поддерживаемыми
API в DB-Library.
Производительность
и масштабируемость.
Microsoft SQL Server 7.0 имеет
параллельную
архитектуру,
интенсивно
использующую
много поточность
операционной
системы для
обеспечения
высокой производительности
и масштабируемости
на многопроцессорных
системах. Все
управление
задачами SQL Server
организовано
вытесняющим
для повышения
надежности
и изолирования
возможных
сбоев. За счет
динамического
распределения
нагрузки на
процессоры
SQL Server достигает
автоматической
балансировки
загрузки всех
ЦП компьютера.
Microsoft называет
это "симметричной
архитектурой
сервера".
Преимущества
симметричной
архитектуры.
Симметричная
архитектура
Microsoft SQL Server предоставляет
следующие
преимущества:
- снижает
сложность
системы.
SQL Server не дублирует
службы операционной
системы (такие
как диспетчирование,
распределение
памяти, управление
очередями), что
делает архитектуру
системы более
эффективной
и стабильной;
- повышает
производительность
.
SQL Server способен
обеспечить
высокую скорость
выполнения
транзакций
и обладает
высокой пропускной
способностью
на микропроцессорных
системах, даже
при одновременной
работе сотен
пользователей;
- адаптируется
к росту нагрузки.
Нагрузка
на SQL Server динамически
распределяется
по нескольким
ЦП, что повышает
масштабируемость
на симметричных
многопроцессорных
системах.
повышает
надежность
Задачи
пользователя
исполняются
в самостоятельных
потоках, и при
необходимости
одна задача
принудительно
завершается,
не оказывая
влияния на
выполнение
остальных.
Например, SQL Server
способен прервать
"спящий" процесс
без того, чтобы
это оказало
влияние на
работу всей
системы. Ни
одна задача
не может "выйти
из-под контроля".
Усовершенствования,
связанные с
параллельной
обработкой
данных в SQL Server 7.0 .
У SQL Server 7.0 Microsoft еще
более расширила
возможности
параллельной
обработки
симметричной
архитектуры
сервера. За
счет параллельного
выполнения
широкого диапазона
внутренних
функций СУБД
с использованием
множественных
потоков операционной
системы при
работе на много
процессорных
системах резко
возрастает
производительность
и масштабируемость
многих операций
(таких как
определенные
типы запросов,
сканирование
таблиц, создание
индексов,
создание/восстановление
страховочных
копий, проверка
целостности
базы данных
и т.д.).
Параллельное
сканирование
и асинхронное
опережающее
чтение.
Параллельное
сканирование
и асинхронное
опережающее
чтение повышает
на 40 - 400% скорость
выполнения
некоторых типов
запросов и
других операций
над базой данных
в многопроцессорных
системах. Повышение
производительности
достигается
за счет использования
SQL Server 7.0 множественных
потоков операционной
системы и алгоритмов
определения
следующего
блока данных,
необходимых
для вывода в
кэш. Эта операция
типична для
длительного
запроса с
вычислениями
или операции
создания отчета.
Подобная технология
обеспечивает
резкое повышение
производительности
для любой операции,
требующей
просмотра
таблиц, например,
SELECT, UPDATE и DELETE с необходимостью
поиска, CREATE INDEX, DBCC,
DUMP/LOAD и т.п.
Параллельная
загрузка.
При работе
с новой версией
SQL Server можно запускать
несколько
параллельно
работающих
копий BCP или SQL
Enterprise Manager и выполнять
параллельные
перекрывающиеся
операции загрузки
данных в SQL Server.
Подобные возможности
оказываются
особенно полезными
при необходимости
массивного
копирования
данных в ограниченные
сроки.
И
конечно же
безопасность:
Улучшенная
интеграция
с безопасностью
NT ;
Аутентификация
средствами
NT (как текущий
пользователь
- без пароля,
как другой -
login+pwd) ;
Mixed (возможна
аутентификация
средствами
SQL Srv) ;
Полная
поддержка
пользователей,
групп и ролей
;
Роли могут
быть приписаны
пользователям
и группам NT, а
также пользователям
Sphinx ;
Роли могут
быть вложены
;
Прикладные
роли для 3-уровневых
систем ;
Позволяют
назначать
права при доступе
через приложение,
а не isql ;
Гибкая
гранулярность
прав и системных
ролей ;
Предопределенные
роли
ServerAdmin, SecurityOfficer, ... ;
Поддержка
делегирования
в NT 4.0 ;
На 2-м сервере
не как удаленный
пользователь,
а под тем же
именем ;
Простое
и мощное
администрирование.
Потому
было принято
решение установить
сервером базы
данных – Microsoft
SQL
Server
7.0.
Выбор
методов доступа
к базе данных.
Далее
необходимо
сравнить способы
реализации
доступа к базе
данных. Схематически
можно представить
взаимодействие
базы данных
и WEB-сервера
так:
3.2.1 CGI – Common Gateway
Interface.
Первым
способом стали
приложения
Common Gateway Interface (CGI), поскольку
спецификация
CGI позволяет
браузеру вызвать
тот или иной
исполняемый
модуль или
скрипт на
Web-сервере, который
мог обратиться
с запросом к
базе данных,
построить в
HTML-кодах страницу
результатов
и передать ее
обратно Web-серверу,
который же, в
свою очередь,
отсылал результаты
браузеру.
CGI-приложения
могут содержать
вызовы других
программных
(написанных,
например, на
С++) или командных
(.bat, .cmd) файлов. С
помощью CGI-cкриптов,
а точнее на
языке PERL (Practical Extraction and
Reporting Language), построено
немало интерактивных
Web-приложений.
К сожалению,
каждый такой
скрипт исполняется
как иной, нежели
Web-сервер, процесс,
что быстро
"съедает" ресурсы
даже достаточно
"навороченной"
по сегодняшним
меркам машины,
особенно при
большом количестве
заходов на
сервер.
3.2.2 PHP - Personal Home Page Tools.
Модуль
PHP начал жизнь
как простая
небольшая CGI
оболочка, написанная
на Perl. Чтобы избавиться
от значительных
непроизводительных
затрат из-за
необходимости
запуска Perl при
каждом обращении
к серверу в
стандартном
обращении CGI.
Первоначально
использовался
для маленьких
Internet-страниц.
Позднее был
встроен инструмент
для включения
SQL
в WEB-страницы.
Это была CGI-оболочка,
которая анализирует
запросы SQL и
облегчает
создание форм
и таблиц, основанных
на этих запросах.
PHP/FI
версии 2.0 - полная
перезапись
из этих двух
пакетов, объединенных
в одиночную
программу. Это
теперь развилось
по сути в простой
язык программирования,
внедренный
внутрь HTML файлов.
PHP/FI сегодня используется
больше для
создания целых
WEB
серверов, чем
для малых домашних
страниц. Модуль
устраняет
потребность
в многочисленных
малых cgi программах
на Perl, позволяя
поместить
простые скрипт-программы
непосредственно
в ваши HTML файлы.
Пакет также
упрощает управление
большими WEB
серверами,
помещая все
компоненты
WEB
страницы в
одиночном файле
HTML.
Встроенная
поддержка
различных баз
данных делает
тривиальной
разработку
WEB
страниц с доступом
к базам данных.
Многие находят,
что иметь дело
с внедренным
в html-документы
языком намного
проще, чем создавать
отдельные HTML
и CGI файлы.
3.2.3
ISAPI
– приложения.
3.2.3.1
dBWeb.
Помимо
исполнения
CGI-скриптов,
Microsoft Internet Information Server (MS IIS) предоставляет
разработчикам
возможность
создания с
помощью соответствующего
API (ISAPI) приложений
в виде dll, запуск
которых происходит
в ответ на команду
или выбор линка
на Web-странице.
Каждое такое
приложение
выполняется
в адресном
пространстве
Web-сервера, что,
естественно,
повышает скорость
работы и существенно
экономит машинные
ресурсы. В
зависимости
от сложности
сайта и приложений,
dll могут быть
предзагружены
одновременно
с запуском
сервера, либо
подгружаться/выгружаться
из памяти по
мере необходимости.
К наиболее
известным
средствам
разработки
приложений
на основе ISAPI
относятся
входящий в
состав MS IIS Internet Database
Connector (IDC), а также свободно
распространяемый
dbWeb.
Microsoft dbWeb представляет
собой шлюз
между 32-битными
ODBC-ресурсами,
в качестве
которых могут
выступать,
например, Microsoft
SQL Server, Microsoft Access, Microsoft Visual FoxPro, Oracle и
т.д., и MS IIS. dbWeb предусматривает
создание схемы,
содержащей
описание данных
и связанных
с ними Web-страниц.
Он поддерживает
исполнение
запросов в
реальном режиме
времени на
основе "pull"-модели
публикации,
позволяя тем
самым создавать
активные
Web-страницы.
Рис.
1 Структура
dbWeb.
Microsoft dbWeb структурно
состоит из двух
основных компонент:
dbWeb Service и dbWeb Administrator. dbWeb Service является
типичным
ISAPI-приложением,
которое обрабатывает
пользовательские
запросы, направляемые
посетителем
страницы через
браузер, и управляет
соединениями
между браузером,
ODBC-ресурсом и
IIS. К функциям
dbWeb Administrator относится
создание
HTML-страниц, содержащих
результаты
выполнения
запросов на
основе уже
упоминавшихся
схем, с помощью
которых осуществляется
управление
публикуемыми
данными. Схемы
определяют
сам запрос и
структуру
страниц. При
этом не требуется
знания HTML или
ISAPI, так как в состав
dbWeb Administrator входит
интерактивный
мастер-построитель
схем (Schema Wizard), который
в традиционной
для любой
программы-мастера
манере позволяет
задать поля
поиска по методу
Query-by-Example (QBE), выбрать
поля для отображения
в таблице страницы
результатов
и определить
переходы из
списка записей
в отдельные
страницы, содержащие
развернутую
информацию
по текущей
записи. Настройкой
соответствующих
свойств можно
разрешать или
запрещать
операции вставки,
удаления и
редактирования.
Для проверки
прав пользователя
используется
система безопасности
той СУБД, к которой
происходит
доступ. dbWeb имеет
в своем составе
широкий спектр
шаблонов страниц,
которые при
необходимости
могут быть
легко откорректированы
и настроены
разработчиком
для более полного
соответствия
его задачам.
Таким образом,
dbWeb не является
конечным
пользовательским
приложением.
Скорее его
можно охарактеризовать
как достаточно
легкий в использовании
инструментарий
разработки,
который, как
всякий мастер,
не поддерживает
языка программирования.
Тем не менее,
эта программа
успешно справляется
с автоматизацией
большинства
рутинных операций
по организации
соединений
и публикации
данных из БД
и покрывает,
по разным оценкам,
порядка 40-60% потребностей
бизнеса
среднестатистической
фирмы при организации
доступа к своим
источникам
данных через
Internet.
3.2.3.2
IDC.
IDC является
другим примером
достаточно
давно и успешно
используемого
ISAPI-приложения.
Он входит в
состав MS IIS. С помощью
вызовов функций
ODBC API IDC обеспечивает
прямую связь
между полями
HTML-формы и соответствующим
ODBC-достижимым
источником
данных, например,
базой данных
MS SQL Server, без необходимости
написания
замысловатых
CGI-скриптов. Схема
работы IDC:
Рис.2
Схема работы
IDC.
Для доступа
к данным и публикации
на Web IDC использует
файлы двух
типов - .idc и .htx. Файл
с расширением
idc содержит всю
необходимую
информацию
о соединении
с источником
данных, текст
запроса, а также
ссылку на
соответствующий
htx-файл. Файл с
расширением
htx служит шаблоном
страницы, на
которой будут
опубликованы
данные из базы,
а также элементы
оформления
в виде статического
текста, графики,
видео и т.п. MS IIS
распознает
расширение
.idc как вызов
httpodbc.dll, которая
считывает
http-заголовки
из управляющего
блока ISAPI для
определения
параметров
запроса. Httpodbc.dll
читает и разбирает
idc-файл, указанный
в URL. Имя источника,
имя пользователя,
пароль и пр.
используются
для подключения
к соответствующему
ресурсу ODBC, после
чего httpodbc передает
на выполнение
SQL-запрос и получает
результаты.
Результаты
используются
для наполнения
заготовки в
виде htx-файла,
после чего
полученный
HTML-документ MS IIS
передает браузеру.
3.2.3.3
ADO – Active Data Objects.
Active
Data Objects. Когда
речь заходит
о компонентах
ActiveX, как правило,
неявно подразумевается
клиентская
часть приложения.
Microsoft Active Server Pages (ASP) - активные
серверные
страницы-
представляют
собой инструмент
для эффективной
разработки
серверных
Web-приложений,
интегрирующих
в своем составе
HTML-код, VBScript и компоненты
ActiveX. Это означает,
что в уже существующие
наработки легко
могут быть
встроены фрагменты
кода на VBScript или
JavaScript, а также вызовы
соответствующих
объектов ActiveX.
Как, наверное,
известно, VBScript -
это сужение
хорошо знакомого
языка программирования
Visual Basic на область
создания Web-страниц.
Основным идейным
отличием VBScript от
VB, на мой субъективный
взгляд, служит
то, что VBScript не
содержит операторов
файлового
ввода-вывода
и вообще средств
прямого доступа
к операционной
системе (напрашиваются
параллели, если
Java сопоставить
с С/С++, не правда
ли). Кроме этого,
в VBScript существует
только один
тип переменных
- variant, отсутствуют
декларативные
константы и
т.п. Наличие
привычного
синтаксиса
языка высокого
уровня существенно
упрощает создание
HTML-страниц. Кроме
этого, в состав
среды активных
серверных
страниц (ASP Framework)
входят следующие
5 основных встроенных
объектов.
Application (приложение)
- для разделения
информации
между всеми
пользователями
данного приложения.
Request (запрос)
- для получения
тех значений,
которые броузер
клиента передает
на сервер по
HTTP-запросу, т.е.,
грубо говоря,
для получения
информации
о пользователе
или от пользователя
Response (ответ)
- для передачи
информации
клиенту.
Server (сервер)
- предоставляет
возможность
обращения к
методам и свойствам
сервера для
управления
средой исполнения
ASP.
Session (сеанс)
- для хранения
информации,
относящейся
к данной пользовательской
сессии.
Помимо
базовых объектов,
ASP поддерживают
многочисленные
компоненты
ActiveX, которые упрощают
создание и
значительно
повышают
функциональность
активных Web-страниц.
К ним относятся
различные
элементы управления,
компоненты,
создающие
содержание
приложения,
компоненты
ввода/вывода
в файл и многие
другие. Но нас
в первую очередь
будут интересовать
компоненты,
позволяющие
организовать
доступ к базам
данных, или
Active Data Objects (ADO). В отличие
от хорошо известных
Data Access Objects (DAO) или Remote Data Objects
(RDO) ADO имеют менее
иерархически
строгую структуру
и потому более
удобны при
работе с базами
данных.
Рис.3
Структура DAO
и ADO.
ADO являются
универсальным
инструментом
доступа к данным.
Вы можете без
изменений
использовать
интерфейс ADO
из данного
примера при
работе с базами
данных на VB, Visual
FoxPro и т.д. Наконец,
с помощью ADO, в
свою очередь,
могут быть
построены
пользовательские
компоненты,
для обращения
к серверу баз
данных как со
стороны "толстого"
(Win32), так и со стороны
тонкого (Internet Browser)
клиента. Функции
обеспечения
целостности
транзакций,
сервисы безопасности
и согласованной
работы компонент
в распределенном
приложении
может взять
на себя Microsoft Transaction
Server.
ASP
(Active
Server
Page)
– Активные
серверные
страницы.
Особое
положение среди
средств разработки
занимают активные
серверные
страницы (Active
Server Pages или ASP). Они
предназначены
для организации
доступа к
WEB-серверу,
клиентов,
располагающих
только броузером.
ASP представляют
собой набор
интерпретируемых
сервером MS
IIS (Microsoft Internet
Information
Server)
сценариев,
содержащих
разметку HTML и
программный
код на языках
VBScript и Javascript, который
по желанию
разработчика,
может исполняться
либо на сервере,
либо на клиенте.
Это позволяет
в одном ASP-файле
сочетать серверную
и клиентскую
логику. Та часть
кода, которая
исполняется
на сервере,
может использовать
"родные" интерфейсы
для общения
с сервером и
реализации
как базовых,
так и расширенных
функций MAPI. При
этом общение
клиентской
и серверной
частей ASP-приложения
происходит
исключительно
средствами
протокола HTTP.
За поддержание
сессии между
клиентской
и серверной
частями отвечает
Internet Information Server.
Active
Server Pages являются
обычным ISAPI-фильтром,
работающим
в контексте
процесса MS Internet
Information Server, начиная
с версии 3.0. (Технология
ASP доступна и
для других
серверов. Фирмой
Chili!Soft выпускается
пакет Chili!ASP, после
установки
которого сервера
других производителей
начинают "понимать"
ASP – страницы.)
Отличие ASP от
препроцессора
заключается
в возможности
работы с COM-объектами
(в контексте
ASP их называют
Installable components).
Проект
под названием
Denali почти идеально
вписывается
в технологию
"клиент-сервер",
теперь уже не
настолько
популярную.
Хотя, что может
лучше подходить
для Сети, чем
технология
создания приложений
"логически
централизованных
- физически
децентрализованных".
Говоря простым
языком, логически
централизованные
- это распределенные
вычислительные
системы, доступные
и управляемые
из любой точки,
а физическая
децентрализация
- это возможность
расширения,
масштабирования,
повышения
надежности.
В первую
очередь, ASP имеет
достаточно
развитый командный
язык. И даже не
один, а как минимум
два: VBScript и JScript. "Как
минимум", потому
что объектная
модель OLE для
«скриптовых»
машин позволяет
легко встраивать
в среду другие
языки. Поэтому
разработчикам
на Perl или REXX можно
не переучиваться,
а использовать
свой накопленный
опыт. И все же
языком "по
умолчанию"
для ASP является
VBScript, фактически
подмножество
Visual Basic, и в этом, конечно
же, нет ничего
удивительного
- продукт Microsoft
Corporation. JScript, с другой
стороны, - подмножество
Java и так же похож
на С++. И у той, и
другой скрипт-машины
есть как свои
преимущества,
так и недостатки.
Если вкратце,
то JScript все-таки
кажется помощнее
и почти дотягивает
по возможностям
до нескриптовых
языков. Это
далеко не ассемблер,
практически
невозможно
поковыряться
в потрохах у
системы, но, по
всей видимости,
разработчики
ASP посчитали
это дополнительной
защитой от
вторжения
извне.
Само
кодирование
не требует
никаких дополнительных
затрат в виде
специальных
сред разработки.
Поскольку
ASP-файлы имеют
текстовый
формат, они
легко могут
быть модифицированы
для придания
клиентской
и серверной
частям необходимой
функциональности.
Microsoft рекомендует
использовать
MS InterDev, но почти во
всех современных
версиях HTML-редакторов
(например, Allaire
HomeSite) есть поддержка
тегов ASP. Код
"вставляется"
прямо в HTML-текст
в окружении
специального
тега <% ASP-код %>,
после этого
файлу нужно
дать с расширением
.asp, чтобы он был
передан на вход
ASP-фильтра для
переработки
в обычный HTML и
выдачи IIS-серверу,
который уже
и отдаст результат
браузеру. Причем
любому, не имеет
значения, MS IE это,
Netscape Navigator или браузер
"третьего мира".
Главное, чтобы
он понимал
HTML, а это ведь
вообще-то
первостепенная
задача браузера.
Чем не универсальная
платформа, к
которой долго
и упорно стремятся
все? Конечно,
все же есть
отличия в браузерах,
то есть в их
интерпретации
стандартного
HTML. Всем это знакомо:
одни и те же
странички,
написанные
на самом что
ни на есть
стандартнейшем
HTML, смотрятся
иногда совершенно
по-разному в
IE и NN. А вообще ASP
имеет возможность
справиться
и с этой "проблемой".
Просто определяется
тип браузера,
с которым пришли,
и навигация
идет по страницам,
написанным
для этого типа.
Происхождение
одной из труднейших
|