Электронная библиотека книг Александра Фролова и Григория Фролова.
Shop2You.ru Создайте свой интернет-магазин
Библиотека
Братьев
Фроловых
[Назад] [Содержание] [Дальше]

Создание приложений с базами данных для Интернета и интрасетей: практическое руководство

(С) Александр Вячеславович Фролов, Григорий Вячеславович Фролов, 2000


Аннотация

Эта книга представляет собой практическое руководство по созданию приложений Web с базами данных для Интернета, а также для корпоративной интрасети. В ней рассмотрены современные технологии, созданные Microsoft для работы с базами данных. Основное внимание уделяется применению активных страниц Active Server Pages (ASP), расширений сервера Web на базе CGI и ISAPI, объектов ActiveX Data Objects (ADO), органов управления ActiveX, аплетов Java, сценариев JavaScript, а также средств Dynamic HTML (DHTML). Описаны основы использования и создания серверных элементов управления ActiveX (с применением библиотеки классов ATL), а также аплетов Java.

Материал книги проиллюстрирован множеством примеров, снабженных подробными описаниями. Читатель сможет использовать эти примеры в своих разработках. Приложение к книге содержит краткие справочные материалы, касающиеся сценариев ASP, средств DHTML, объектов ADO, и другие сведения, необходимые для разработки приложений с базами данных в Интернете и в интрасетях.

Книга предназначена тем, кто создает собственные серверы Web с базами данных в Интернете, разработчикам корпоративных баз данных в интрасетях, студентам высших учебных заведений. Она также полезна при самостоятельном изучении новых технологий, предназначенных для работы с базами данных.


Введение

Мы не слишком преувеличим, если скажем, что бурное развитие глобальной сети Интернет оказывает огромное влияние на многие сферы деятельности человека. И уж, конечно, Интернет вызвал поистине революционные изменения в индустрии программного обеспечения. Появилась новая категория приложений, специально разработанных для Интернета и учитывающих особенности серверов Web. Последние играют в “жизни” приложений основополагающую роль, именно поэтому программы для Интернета часто называют приложениями Web.

За примером далеко ходить не надо — это многочисленные Интернет-магазины, поисковые и справочные серверы, системы для Интернет-телефонии и обмена сообщениями в реальном времени, системы передачи живого видео через Интернет и т. д.

Для приложений Web характерно то, что пользователи общаются с ними при помощи обыкновенных браузеров, таких, как Microsoft Internet Explorer. При этом доступ к приложениям Web осуществляется как к обычным статическим страницам HTML по их адресу URL.

Однако по своему поведению приложения Web совсем не похожи на статические страницы HTML. При посредничестве сервера Web они способны обращаться к различным активным объектам, сервисам и системам, таким, например, как базы данных. Так, в ответ на запрос, введенный пользователем в окне браузера, сервер Web способен сформировать отчет и отобразить его в том же окне. Для получения данных при этом сервер Web генерирует запрос к базе данных.

Многоуровневый и компонентный подход к созданию приложений Web заметно сокращает сроки разработки и облегчает отладку. Многие достаточно сложные системы можно проектировать без применения таких сложных в использовании языков программирования, как C++.

Важно отметить, что приложения Web способны работать не только в Интернете, но и в корпоративных интрасетях. Применение браузера на компьютере конечного пользователя в качестве основного приложения для доступа к базам данных и другим корпоративным системам значительно уменьшает стоимость сопровождения крупных локальных сетей. При этом не только упрощается процедура установки программного обеспечения на рабочие станции сети, но и облегчается сопровождение корпоративных баз данных и других систем, работающих централизованно на специально выделенных серверах.

Для того чтобы показать преимущества применения приложений Web в интрасетях, приведем простой пример.

Предположим, две-три сотни сотрудников некоторой фирмы работают с одной базой данных MS SQL Server. При классической клиент-серверной архитектуре на каждую рабочую станцию помимо операционной системы необходимо установить клиент SQL Server и настроить его. Если клиентские приложения созданы при помощи Borland Delphi или аналогичного средства, каждой рабочей станции потребуется дополнительный клиентский модуль, необходимый для работы с базой данных.

Всякий раз при внесении изменений в прикладную программу или при модификации версии сервера SQL Server администратору сети скорее всего потребуется обновлять параметры всех компьютеров пользователей. Таких компьютеров — сотни, поэтому корректировка займет не одну неделю.

Если же для обращения к базе данных применяется браузер, на компьютеры рабочих станций достаточно установить только операционную систему Windows. Вся настройка будет заключаться в том, чтобы указать, какая страница сервера Web должна загружаться в окно браузера по умолчанию. Очевидно, эта процедура намного проще установки и настройки клиента сервера базы данных.

Так как все прикладное программное обеспечение хранится и работает на сервере, внесенные в него изменения сразу становятся доступными на всех рабочих станциях. Администратору больше не придется обходить две сотни пользователей только для того, чтобы изменить имя сервера базы данных или установить новый клиент. Удобно это и в случае выхода из строя рабочей станции — администратор может быстро заменить ее другой, из резерва, и настроить ее автоматически, индивидуальная настройка замененного компьютера не потребуется.

Справедливости ради следует заметить, что клиент-серверную архитектуру можно применять и в Интернете. Однако особенности этой сети делают использование данной архитектуры крайне неэффективной.

Во-первых, между сервером и клиентом иногда располагаются прокси-серверы и брандмауэры, затрудняющие или даже делающие невозможным доступ к серверу базы данных.

Во-вторых, клиент-серверная архитектура предполагает установку на компьютере пользователя специального клиентского программного обеспечения. Конечно, его можно загрузить через Интернет и затем установить, однако это длительная и утомительная для пользователя процедура.

В-третьих, пользователи Интернета работают с самым разным программным обеспечением — Unix, OS/2, Windows, MAC OS или чем-то еще. Если создатель базы данных желает обеспечить доступ к ней максимальному количеству пользователей, ему придется подготовить клиентские программы для всех мыслимых компьютерных платформ, а это нереально.

Кроме того, браузеры есть практически везде. Порт 80, применяемый для обращения к серверам Web, обычно никогда не блокируется прокси-серверами и брандмауэрами, поэтому здесь проблем тоже не предвидится. Что же касается совместимости браузеров, то в этой книге мы расскажем, как сделать Ваше приложение Web совместимым с наиболее популярными браузерами.

Обзор технологий Интернета

При создании приложений Web применяется множество технологий, с которыми мы постепенно будем Вас знакомить. А сейчас — кратко о том, что Вам нужно знать, чтобы успешно создавать приложения для Интернета.

·   Язык разметки гипертекстов HTML.

Этот язык широко используется для создания страниц сервера Web. Несмотря на изобилие визуальных средств проектирования документов HTML, глубокое знание языка HTML, на наш взгляд, необходимо. В частности, оно нужно для создания приложений Web, хорошо совместимых с различными браузерами и по-настоящему эффективных.

В нашей книге Вы тем не менее не найдете подробного описания языка HTML, хотя по ходу изложения мы будем делать необходимые пояснения. Языку HTML посвящено много книг, и мы надеемся, что Вы без труда их отыщете.

·   Динамический язык гипертекстовой разметки DHTML.

Он позволяет создавать динамические интерактивные страницы. Несмотря на то, что объектные модели наиболее популярных браузеров сильно различаются, интенсивное применение DHTML оправдано в первую очередь в тех случаях, когда на компьютере пользователя установлен браузер Microsoft Internet Explorer. Это возможно в интрасетях или при создании административных приложений Web, когда разработчик может установить на компьютере пользователя заранее выбранный браузер.

В этой книге мы не стали во всех подробностях описывать DHTML, а заострили внимание на его практическом применении при создании интерактивных страниц.

·   Языки сценариев JavaScript и VB Script.

Сценарии, написанные на языках JavaScript и VB Script, применяются как на стороне клиента, так и на стороне сервера Web. Клиентские сценарии встроены в документы HTML (или DHTML), загружаемые пользователем в окно браузера. Эти интерпретируемые программы, исполняемые браузером, способны оживить статические документы HTML; они связывают различные объекты, расположенные внутри таких документов. Серверные сценарии исполняются на сервере и служат для динамического формирования документов HTML, отправляемых пользователю.

К сожалению, клиентские сценарии работают по-разному в различных браузерах. Поэтому для обеспечения совместимости приходится принимать специальные меры. Серверные сценарии, напротив, не вызывают никаких проблем совместимости, так как исполняются непосредственно на компьютере сервера Web.

В нашей книге мы пользуемся и клиентскими, и серверными сценариями JavaScript. Сценариям полностью посвящена вторая глава нашей книги. Кроме того, в приложении к книге Вы найдете краткие справочные материалы по языку сценариев JavaScript — они пригодятся Вам для практической работы.

·   Активные страницы Active Server Pages (ASP).

Технология активных серверных страниц ASP является ключевой для создания приложений Web на базе сервера Microsoft Internet Information Server, поэтому в нашей книге мы посвятили ASP отдельную главу.

Приложения Web на базе Microsoft Internet Information Server основаны на наборе текстовых файлов с расширением имени asp. В первом приближении это документы HTML, в которые встроены серверные сценарии JScript (версия JavaScript, созданная Microsoft) или VB Script. Именно эти сценарии осуществляют обращение к базе данных или к другим активным серверным объектам.

·   Технология ActiveX Data Objects (ADO).

Она имеет самое непосредственное отношение к базам данных. Посредством объектов ADO серверные сценарии ASP обращаются к базе данных. Объектная модель ADO фактически предоставляет в распоряжение разработчика простой набор объектов и методов для доступа к базам данных. Объекты ADO вызываются не только из сценариев, но и из обычных приложений Windows, расширений CGI и ISAPI сервера Web, а также из других объектов ActiveX.

В нашей книге Вы найдете не только краткое описание интерфейсов ADO, но и практические примеры использования этой технологии.

·   Интерфейсы DB Library, ODBC и OLE DB.

Приложения, написанные на традиционных языках программирования, могут обращаться к базам данных через естественный прикладной интерфейс базы данных (DB Library) или через прикладной интерфейс ODBC. В этом случае обращение выполняется посредством вызова соответствующих функций программного интерфейса. Что же касается интерфейса OLE DB, то он основан на модели компонентных объектов COM.

Перечисленные выше интерфейсы недоступны из серверных сценариев, поэтому Вам удастся их использовать только в обычных приложениях или в расширениях CGI и ISAPI сервера Web. Последний случай мы и рассмотрим в нашей книге.

·   Расширения CGI и ISAPI сервера Web.

Расширения CGI и ISAPI сервера Web широко применяются вместе с ASP при создании активных серверов Web. Они представляют собой специальным образом составленные программы, выполняющиеся на компьютере сервера Web. Расширения сервера Web способны принимать данные от пользователя, динамически создавать новые документы HTML и отправлять их обратно.

Фактически Вы можете создавать приложения Web с базами данных только с использованием обычных статических страниц HTML и расширений CGI и ISAPI сервера Web. Однако такое решение чаще всего намного сложнее реализовать, чем решение, основанное на ASP и ADO.

·       Элементы управления ActiveX.

Как и сценарии JavaScript и VB Script, элементы управления ActiveX применяют как на стороне сервера, так и на стороне клиента. Фактически они представляют собой библиотеки динамической компоновки DLL, работающие либо на компьютере пользователя, либо на сервере.

Если элемент управления ActiveX работает на стороне клиента, то он может быть встроен в документ HTML и иметь или не иметь собственное окно. Обладая неограниченным доступом к ресурсам локального компьютера, элемент управления ActiveX способен получить и передать на сервер Web практически любую информацию. Эта возможность не всегда используется при передаче данных через Интернет из соображений их безопасности, однако в интрасетях она иногда оказывается очень полезной.

Элемент управления ActiveX допустимо также устанавливать на сервере Web, дабы расширить его возможности. Например, Вы можете создать такой компонент для снятия денег с кредитной карточки клиента, для автоматизированной регистрации купленного программного обеспечения или для выполнения других служебных функций.

Относительно недавно корпорация Microsoft создала  библиотеку шаблонов ActiveX Template Library (ATL). Ее применение упростило создание элементов управления ActiveX настолько, что оно перестало быть уделом узкого круга профи, досконально разбирающихся в тонкостях реализации модели компонентных объектов COM. Библиотека стандартных шаблонов STL также оказывает заметную помощь в разработке приложений вообще и элементов ActiveX в частности. В нашей книге рассказано, как создавать такие объекты, не затрачивая месяцы на изучение документации.

·       Аплеты Java.

Язык Java, разработанный Sun Microsystems, должен обеспечивать работоспособность приложений на различных платформах без перекомпиляции. И хотя до абсолютной совместимости еще далеко, приложения Java вполне работоспособны на большинстве наиболее популярных платформ.

В проектах для сети Интернет чаще всего применяются аплеты Java. Они представляют собой одну из разновидностей приложений Java. Аплеты Java встраиваются в документы HTML и работают под управлением браузера.

В отличие от органов управления ActiveX, возможности доступа аплетов к локальным ресурсам компьютера пользователя практически сведены к нулю, поэтому они не вызывают проблем с безопасностью данных. Однако есть и обратная сторона — такие ограничения во многом снижают пользу от аплетов.

Как правило, аплеты применяются для создания динамичного интерактивного пользовательского интерфейса на стороне клиента. Помимо этого, они способны взаимодействовать с расширениями CGI и ISAPI сервера Web, с которого они загружены. Именно эти варианты мы и рассмотрим в нашей книге.

Требования к читателям

Мы предполагаем, что Вы уже изучили язык HTML и имеете опыт создания хотя бы простейшего сервера Web. Это может быть домашняя страничка на сервере поставщика услуг Интернета, сервер в интрасети или даже сервер Web на Вашем локальном компьютере. Для создания сервера Web Вам необходимо хорошо знать Microsoft Internet Information Server версии 4.0 или более новой (мы рассказываем об установке и настройке именно этого сервера).

Неплохо также, если Вы освоите какие-нибудь средства визуального проектирования документов HTML, такие, как Microsoft FrontPage. Список литературы, которая понадобится Вам для этого, приведен в конце нашей книги.

Так как книга посвящена созданию приложений с базами данных, Вам нужно уметь работать с Microsoft SQL Server и знать язык SQL. Мы не рассматриваем здесь вопросы установки и администрирования SQL Server, а также приемы программирования на Transact SQL (хотя в книгу вставлены примеры программ на языке Transact SQL). Для изучения этих вопросов Вам нужно обратиться к дополнительной литературе.

Проектирование расширений CGI и ISAPI для сервера Web, а также элементов управления ActiveX обычно требует знаний языка программирования C++ и интерфейса Win32. Для работы с нашей книгой Вы должны владеть основами стандартной библиотеки классов STL. Заметим, что многие достаточно сложные приложения Web можно составлять и без них, обходясь готовыми элементами управления ActiveX, средствами DHTML, JavaScript, VB Script и ASP.

Мы не стали подробно описывать язык программирования Java, применению которого посвящена одна из глав книги. Мы рекомендуем Вам изучить этот язык, пользуясь списком дополнительной литературы.

Настоящая книга имеет практическую направленность. Предполагается, что Вы, читая ее, попытаетесь реализовать описанные в ней примеры приложений. Для этого Вам потребуется компьютер или локальная сеть с серверами Microsoft Internet Information Server 4.0 и Microsoft SQL Server 7.0. Эти приложения необходимо установить в среде Windows NT Server. Отдельные вопросы, не связанные с применением ASP, Вы сможете решить и в среде Microsoft Windows 98, однако это удается не всегда.

Разработку и отладку страниц ASP лучше всего выполнять в среде Microsoft Visual InterDev 6.0. Для создания расширений CGI и ISAPI сервера Web, а также элементов управления ActiveX Вам потребуется Microsoft Visual C++ 6.0. Аплеты Java можно разрабатывать средствами Microsoft Visual J++ 6.0 или Sun Java Workshop 1.0.

Ну и, конечно, Вашу работу значительно облегчит библиотека Microsoft MSDN Library, поставляемая на компакт-дисках. Она содержит исчерпывающую информацию (на английском языке) по всем вопросам использования технологий Microsoft для Интернета. Заметим, что библиотека Microsoft MSDN Library доступна не только в виде набора компакт-дисков, но и через Интернет (http://msdn.microsoft.com).

Структура книги

В первой главе описаны отличия приложений Web от обычных программ. Рассмотрен принцип работы сервера Web, объяснена разница между активными и пассивными серверами Web. Кроме того, из этой главы Вы узнаете о серверной активности, достигаемой средствами технологии ASP, расширений CGI и ISAPI, а также об активности на стороне клиента, связанной с применением сценариев JavaScript, VB Script, элементов управления ActiveX и аплетов Java. Здесь перечислены преимущества и недостатки использования серверной активности и активности на стороне клиента в различных ситуациях. Приведен краткий обзор методов интеграции сервера Web и сервера СУБД, связанных с использованием расширений CGI, ISAPI, драйверов ODBC, объектов OLE DB, и ADO. Анализируются недостатки и преимущества этих методов при создании приложений Web.

Практическая часть первой главы содержит рекомендации по установке программных средств, необходимых для дальнейшей работы с книгой, — MS IIS 4.0, MS SQL Server, MS Visual InterDev, MS Visual C++, MS FrontPage, пакетов обновлений операционной системы и инструментальных средств и т. д.

Во второй главе рассмотрены серверные и клиентские сценарии — их назначение и особенности, а также приемы конструирования интерфейса пользователя — важный этап создания приложений для Интернета, включающий применение сценариев. В нашей книге нет описания языка JavaScript (литературы на эту тему издано много), хотя в приложении имеется краткая справочная информация. Вместо этого мы уделили внимание объектной модели браузеров MS IE и Netscape, понимание которой необходимо для написания клиентских сценариев. Во второй главе рассмотрены практические приемы применения клиентских сценариев (а также средств DHTML) для создания пользовательских интерфейсов к базам данных, таких, как формы и отчеты. Затронуты проблемы совместимости сценариев и средств DHTML с различными версиями браузеров (и указаны методы решения этих проблем). Описана процедура отладки клиентских сценариев. Многие примеры сценариев из второй главы Вы сможете использовать для реализации новых проектов.

Третья глава посвящена технологии ASP. В ней рассказано, как построить активный сервер Web с применением расширений CGI, ISAPI и серверных сценариев. Описаны возможности и преимущества серверных сценариев JavaScript и VB Script в страницах ASP по сравнению с расширениями CGI, ISAPI и с клиентскими сценариями. Вводится понятие приложения ASP и рассказано о применении процедур, перечислений, переменных приложения и переменных сеанса, объектов ASP. Вы узнаете о том, как сделать выбор между JavaScript и VB Script при создании страниц ASP. На конкретных примерах мы проиллюстрируем методики создания форм и отчетов с применением ASP и клиентских сценариев.

В четвертой главе рассказано об использовании объектов ADO для связи приложений Web с базами данных. Рассмотрена программная и объектная модель ADO, методика обработки событий. Кратко описан программный интерфейс ADO. Приведены исходные тексты приложений Web, созданных с применением ADO, ASP и MS SQL Server. На их примере показана технология обработки ошибок. Мы также расскажем здесь, как интегрировать обычные приложения Windows и расширения сервера Web с базами данных при помощи ADO. Глава содержит многочисленные примеры страниц ASP виртуального книжного Интернет-магазина, подготовленные на основе реальных проектов.

Пятая и шестая главы посвящены вопросам применения интерфейсов OLE DB и ODBC для связи приложений с базами данных. Мы рассмотрим отличия этих интерфейсов от интерфейса ADO, кратко опишем программную и объектную модель OLE DB, а также программный интерфейс OLE DB и ODBC. Кроме того, здесь приведены примеры приложений, работающих с базами данных посредством указанных интерфейсов.

В седьмой главе описана структура расширений CGI и ISAPI сервера Web. Здесь рассказано об отличиях CGI и ISAPI, а также о критериях выбора нужной технологии. На конкретных примерах показано, как создавать расширения CGI и ISAPI для сервера Microsoft IIS, работающих с базами данных.

Восьмая глава посвящена элементам управления ActiveX. Здесь рассказано о возможности применении элементов управления ActiveX на стороне клиента, а также на стороне сервера для расширения объектной модели ASP. Описана методика быстрого создания элементов управления ActiveX с применением библиотеки ATL. Приведены примеры использования элементов управления ActiveX для связи сервера Web с сервером банка, выполняющим платежи в режиме on-line, а также для автоматической передачи почтовых сообщений с применением протокола SMTP.

Девятая глава посвящена использованию аплетов Java на стороне клиента для связи с расширениями сервера CGI и ISAPI. В ней приведены примеры аплетов Java, передающих информацию о кредитных карточках расширению сервера Web и серверному сценарию, расположенному на странице ASP.

Книга продается вместе с компакт-диском, содержащим полные листинги всех приложений, описанных в книге.

Благодарности

Авторы книги выражают признательность Максиму Синеву и Сергею Ноженко из компании Spektrum Web Development (http://www.spektrum.org.ru) за многочисленные консультации и предоставленные исходные тексты разработанных ими проектов, в частности, элемента управления MTASend, предназначенного для передачи почтовых сообщений. В нашей книге мы отразили накопленный ими опыт реализации коммерческих проектов в Интернете и интрасетях.

Об авторах

Эта книга написана братьями Александром Фроловым и Григорием Фроловым, знакомым читателям по книгам серий “Библиотека системного программиста” и “Персональный компьютер. Шаг за шагом”.

Вы можете связаться с авторами по электронной почте (frolov@glasnet.ru) или через домашнюю страничку http://www.glasnet.ru/~frolov.

[Назад] [Содержание] [Дальше]