- Любовные романы
- Фантастика и фэнтези
- Ненаучная фантастика
- Ироническое фэнтези
- Научная Фантастика
- Фэнтези
- Ужасы и Мистика
- Боевая фантастика
- Альтернативная история
- Космическая фантастика
- Попаданцы
- Юмористическая фантастика
- Героическая фантастика
- Детективная фантастика
- Социально-психологическая
- Боевое фэнтези
- Русское фэнтези
- Киберпанк
- Романтическая фантастика
- Городская фантастика
- Технофэнтези
- Мистика
- Разная фантастика
- Иностранное фэнтези
- Историческое фэнтези
- LitRPG
- Эпическая фантастика
- Зарубежная фантастика
- Городское фентези
- Космоопера
- Разное фэнтези
- Книги магов
- Любовное фэнтези
- Постапокалипсис
- Бизнес
- Историческая фантастика
- Социально-философская фантастика
- Сказочная фантастика
- Стимпанк
- Романтическое фэнтези
- Ироническая фантастика
- Детективы и Триллеры
- Проза
- Юмор
- Феерия
- Новелла
- Русская классическая проза
- Современная проза
- Повести
- Контркультура
- Русская современная проза
- Историческая проза
- Проза
- Классическая проза
- Советская классическая проза
- О войне
- Зарубежная современная проза
- Рассказы
- Зарубежная классика
- Очерки
- Антисоветская литература
- Магический реализм
- Разное
- Сентиментальная проза
- Афоризмы
- Эссе
- Эпистолярная проза
- Семейный роман/Семейная сага
- Поэзия, Драматургия
- Приключения
- Детская литература
- Загадки
- Книга-игра
- Детская проза
- Детские приключения
- Сказка
- Прочая детская литература
- Детская фантастика
- Детские стихи
- Детская образовательная литература
- Детские остросюжетные
- Учебная литература
- Зарубежные детские книги
- Детский фольклор
- Буквари
- Книги для подростков
- Школьные учебники
- Внеклассное чтение
- Книги для дошкольников
- Детская познавательная и развивающая литература
- Детские детективы
- Домоводство, Дом и семья
- Юмор
- Документальные книги
- Бизнес
- Работа с клиентами
- Тайм-менеджмент
- Кадровый менеджмент
- Экономика
- Менеджмент и кадры
- Управление, подбор персонала
- О бизнесе популярно
- Интернет-бизнес
- Личные финансы
- Делопроизводство, офис
- Маркетинг, PR, реклама
- Поиск работы
- Бизнес
- Банковское дело
- Малый бизнес
- Ценные бумаги и инвестиции
- Краткое содержание
- Бухучет и аудит
- Ораторское искусство / риторика
- Корпоративная культура, бизнес
- Финансы
- Государственное и муниципальное управление
- Менеджмент
- Зарубежная деловая литература
- Продажи
- Переговоры
- Личная эффективность
- Торговля
- Научные и научно-популярные книги
- Биофизика
- География
- Экология
- Биохимия
- Рефераты
- Культурология
- Техническая литература
- История
- Психология
- Медицина
- Прочая научная литература
- Юриспруденция
- Биология
- Политика
- Литературоведение
- Религиоведение
- Научпоп
- Психология, личное
- Математика
- Психотерапия
- Социология
- Воспитание детей, педагогика
- Языкознание
- Беременность, ожидание детей
- Транспорт, военная техника
- Детская психология
- Науки: разное
- Педагогика
- Зарубежная психология
- Иностранные языки
- Филология
- Радиотехника
- Деловая литература
- Физика
- Альтернативная медицина
- Химия
- Государство и право
- Обществознание
- Образовательная литература
- Учебники
- Зоология
- Архитектура
- Науки о космосе
- Ботаника
- Астрология
- Ветеринария
- История Европы
- География
- Зарубежная публицистика
- О животных
- Шпаргалки
- Разная литература
- Зарубежная литература о культуре и искусстве
- Пословицы, поговорки
- Боевые искусства
- Прочее
- Периодические издания
- Фанфик
- Военное
- Цитаты из афоризмов
- Гиды, путеводители
- Литература 19 века
- Зарубежная образовательная литература
- Военная история
- Кино
- Современная литература
- Военная техника, оружие
- Культура и искусство
- Музыка, музыканты
- Газеты и журналы
- Современная зарубежная литература
- Визуальные искусства
- Отраслевые издания
- Шахматы
- Недвижимость
- Великолепные истории
- Музыка, танцы
- Авто и ПДД
- Изобразительное искусство, фотография
- Истории из жизни
- Готические новеллы
- Начинающие авторы
- Спецслужбы
- Подростковая литература
- Зарубежная прикладная литература
- Религия и духовность
- Старинная литература
- Справочная литература
- Компьютеры и Интернет
- Блог
Электронные издания - Владимир Вуль
Шрифт:
Интервал:
Закладка:
Технология IDC/HTX предусматривает следующую последовательность действий (рис. 10.9):
1. Активизацию пользователем в просматриваемом документе гиперссылки, указывающей на файл запроса.
2. Извлечение Web-сервером файла запроса из папки Scripts.
3. Получение из динамической библиотеки httpodbc.dll процедур, извлекающих из файла запроса имя источника внешних данных.
4. Активизацию и запуск в соответствии с источником данных нужного драйвера ODBC.
5. Соединение драйвера с базой данных и организация им выполнения запроса на языке SQL, а затем – возврат полученных результатов выбранной из библиотеки httpodbc.dll процедуре.
6. Извлечение процедурой библиотеки из файла запроса имени файла шаблона и формирование ею в соответствии с шаблоном HTML-файла.
7. Передачу этого файла Web-серверу и отсылку его пользователю.
Технология извлечения данных из удаленной БД, называемая ASP (Active Server Pages, или страницы активного сервера), отличается от IDC/HTX тем, что вместо простейшего алгоритма подстановки данных в поля шаблона используются специальные процедуры, содержащиеся в файле ASP и написанные на языке VBScript (возможно использование и JavaScript). VBScript представляет собой диалект языка Visual Basic, предназначенный для написания интерпретируемых процедур. Процедуры могут выполняться как на стороне пользователя, с помощью встроенного в браузер интерпретатора, так и на серверной стороне, где также должен быть интерпретатор, встроенный в Web-сервер или работающий совместно с ним. Файл ASP, хранимый в определенной папке на серверной стороне, содержит описание запроса к базе данных на языке SQL, описание шаблона для извлекаемых из базы данных и вложенные в это описание фрагменты на языке VBScript. Получив посредством гиперссылки запрос на ASP-файл, Web-сервер пересылает SQL-запрос СУБД, получает результат и выполняет над ним все процедуры VBScript, вложенные в текст шаблона. Таким образом, в этом случае (как и в предыдущем) никакой предварительной обработки запроса не производится, а все операции форматирования ответа должны быть заранее написаны в форме процедур VBScript. Технология разработана для работы преимущественно с СУБД фирмы Microsoft. Ее достоинства, возможно, проявятся в сложных информационных системах с архитектурой клиент-сервер при условии написания всех необходимых процедур на одном из языков программирования. В целом технологии IDC/HTX и ASP достаточно сложны в реализации и требуют использования определенных вычислительных ресурсов сервера.Рис. 10.9. Последовательность взаимодействия пользователя с удаленной базой данных в рамках технологии IDC/HTX
Аббревиатура CGI (Common Gateway Interface) означает ту часть Webсервера, которая может взаимодействовать с другими программами, выполняющимися на том же узле. CGI обеспечивает обмен данными между webсервером и программным модулем, который обрабатывает информацию, пришедшую Web-серверу от клиента. В этом смысле CGI является шлюзом для передачи клиентских данных программам их обработки. Таким образом, CGI – это программная среда, включающая в себя набор определенных переменных и протоколы взаимодействия с другими программами, функционирующими на Web-узле, например, с СУБД.
Одно из самых главных достоинств CGI – то, что этот интерфейс не накладывает никаких ограничений ни на язык программирования, на котором пишется программный модуль, выполняющийся на сервере, ни на операционную систему, под управлением которой работает Web-сервер. Так, модулем может быть как обычный исполняемый файл, написанный на языке программирования компилирующего типа, таком как C/C++ или Pascal, так и скрипт (script), написанный на языке командного интерпретатора UNIXсистем (например, bash или csh). CGI-технологии, как правило, используются в сочетании с наиболее распространенным Web-сервером Apache, обычно работающим под управлением операционной системы семейства UNIX (например, Linux). В качестве языка, на котором пишутся модули, исполняемые на сервере, и в особенности такие, которые организуют взаимодействие Web-сервера с какой-либо СУБД, большинство разработчиков использует язык Perl. В первую очередь хочется отметить, что использование языка Perl не снижает переносимость разработанного с использованием программного обеспечения интерфейса CGI. Так же, как интерфейс CGI поддерживают все "уважающие себя" Web-серверы, интерпретаторы языка Perl написаны для всех операционных систем и платформ. Очень важно также и то, что для языка Perl написан замечательный модуль CGI.pm (автор – Линкольн Штейн), с помощью которого довольно просто писать CGI-скрипты. Этот модуль предоставляет удобный интерфейс разработчику CGI-приложений, беря на себя всю черновую работу по реализации взаимодействия при помощи CGI-интерфейса. Остается добавить, что в последних версиях языка Perl этот модуль входит в стандартный комплект поставки.
Это наиболее существенные аргументы, так сказать, общего характера. Есть еще две серьезные причины отдать предпочтение CGI/Perl в случае написания приложения для Web-сервера, обеспечивающего именно взаимодействие с СУБД.
Первая из них – наличие модулей языка Perl для обеспечения взаимодействия со всеми распространенными СУБД: Ingres, Oracle, Informix, Interbase, Postgres, SyBase. Есть даже модуль для MS Excel. Нельзя не упомянуть и очень разумную внутреннюю организацию этих модулей, позволяющую максимально унифицировать интерфейс доступа к различным СУБД. Собственно, чтобы подсоединиться к какой-либо СУБД, вам надо установить два модуля: DBI.pm, обеспечивающий абстрактный интерфейс с СУБД, и собственно драйвер для взаимодействия с ней (например, DBD-Oracle.pm, если вы хотите работать с СУБД Oracle [38]). Преимущество такого подхода одно, но более чем значимое – универсальность и переносимость. Так, если вы писали в рамках стандарта языка SQL, не используя не стандартизованные расширения, а базу данных по неизвестным причинам решили перенести, скажем, под Informix, то в вашем CGI-скрипте, работающем с базой данных, достаточно будет поменять всего лишь одну строчку кода – подключение к драйверу взаимодействия с СУБД. В нашем случае (Informix вместо Oracle) надо заменить строчкуDBI->connect('dbi:Oracle:имябазы, …);
на
DBI->connect('dbi:Informix:имябазы, …);
Наконец, язык Perl обладает весьма гибкими и мощными средствами обработки текстовой информации, в том числе при помощи разветвленной системы регулярных выражений. Возможности языка Perl в обработке текстов, поиске и замене по шаблонам с помощью регулярных выражений позволяют проводить предварительную обработку данных практически любой сложности. А обработка данных перед занесением их в БД, их упорядочение и проверка целостности – важнейший этап взаимодействия пользователя с СУБД, и то, что эту задачу берет на себя CGI-скрипт, существенно улучшает и ускоряет работу СУБД и позволяет ей оптимально размещать и хранить данные. Серьезную помощь язык Perl может оказать и при реализации поиска в БД, позволяя данные, вводимые пользователем в удобном ему формате, преобразовывать в форму, удобную для "восприятия" СУБД, и тем самым предварительно оптимизируя поиск. Таким образом, язык Perl является едва ли не идеальным языком для реализации скриптов, т. е. "прослоек" между пользователем и большим программным продуктом с нетривиальным интерфейсом, коими являются практически все системы управления базами данных.
Однако, вернемся к основной теме этого раздела. Проектирование сетевой электронной библиотеки, как представляется автору, следует начать с создания информационного хранилища электронных изданий с качественной системой их поиска и извлечения. Функции хранения и извлечения учебных пособий, по нашему мнению, следует отделить от поисковой системы, т. е. структура хранилища должна быть двухуровневой (рис. 10.10):
✓ На нижнем уровне осуществляется хранение учебных пособий в электронном виде. Структурно хранение пособий осуществляется в виде гипертекстовой базы данных или же в форме иерархической файловой системы. Второй вариант автору представляется предпочтительным по причинам, которые будут изложены далее.
✓ На верхнем уровне проектируется атрибутивная база данных, в качестве атрибутов в которой используются фамилии преподавателей, названия учебных курсов, названия и шифры специальностей, конкретный вид учебного пособия, год издания, а также год и месяц его обновления и пр. Дополнительно к этому организуется хранение ключевых слов, характеризующих каждое пособие.
Методика и технология выбора (извлечения) ключевых слов и организация поиска по ключевым словам составляет то ноу-хау, которое отличает предложенный автором вариант организации электронной библиотеки. Результат поиска в этой базе данных представляется в виде списка пособий с миниатюрами (в простейшем случае они представляют собой уменьшенную фотографию электронной обложки или титула издания). Из этого списка читатель выбирает нужное издание и, при наличии соответствующих прав доступа, издание извлекается с нижнего уровня и передается на рабочее место пользователя.

