Опубликован: 11.12.2006 | Доступ: свободный | Студентов: 5356 / 282 | Оценка: 4.42 / 3.86 | Длительность: 57:15:00
Лекция 23:

Доступ к Microsoft SQL Server 2000 из Internet

< Лекция 22 || Лекция 23: 123 || Лекция 24 >
Аннотация: Все большее распространение сети Internet заставило разработчиков SQL Server встроить специальные функции в SQL Server 2000 для работы с базой данных в сети посредством операционной системы Windows 2000 и службы IIS5. Обзор применения технологий ISAPI и XML для работы в сети позволит вам самостоятельно решить, какие настройки и функциональность требуется для продуктивной работы.

Появление Microsoft SQL Server 2000 на платформе операционной системы Microsoft Windows 2000 упростило публикацию баз данных SQL Server в Internet. Сочетание Windows 2000 и Microsoft Internet Information Server (IIS) 5 образует обширный массив компонентов и интерфейсов, которые можно использовать для связи и взаимодействия с вашими базами данных SQL Server 2000. Эта лекция знакомит вас с базовыми концепциями доступа к Microsoft SQL Server из Internet с использованием разнообразных методов. Поскольку эта книга не является руководством по разработке, в данной лекции дается лишь обзор различных методов доступа. Выпущено много хороших книг, из которых вы можете получить информацию об особенностях программирования.

Эта лекция начинается с описания концепций программирования для Internet и используемых по умолчанию интерфейсов программирования для Internet, доступных в среде Microsoft Windows 2000. Вы ознакомитесь с основами ODBC-программирования и с ADO. Вы также ознакомитесь с ISAPI и ASP как средствами доступа к SQL Server. И, наконец, вы ознакомитесь с языком XML, узнаете, что это такое, и как его использовать. Эта лекция охватывает много тем, но она поможет вам понять работу базовых инструментов программирования для Internet.

Концепции программирования для Internet

В этом разделе вы ознакомитесь с основами подсоединения к SQL Server приложений, снабженных средствами Internet. Эти приложения содержат два различных интерфейса, причем необходимы оба интерфейса, поскольку они выполняют различные задачи: это интерфейс для пользователя и интерфейс для SQL Server. Данный раздел знакомит вас с возможностями соединения между приложением и SQL Server, и в нем рассматриваются методы соединения с помощью служб IIS и механизма ODBC.

Использование Windows 2000 и IIS 5 как платформы для Internet

Используя Windows 2000 IIS 5 как платформу для Internet-приложений, разработчики получают непревзойденные средства доступа к возможностям SQL Server. Разработчики могут использовать такие возможности, как сценарии выполняемые на сервере (server-side scripting) с интегрированным доступом к базам данных, источники данных открытого интерфейса доступа к базам данных, OLE DB (обширный набор интерфейсов модели компонентных объектов [COM] для универсального доступа к данным) и архитектура Web-приложений, известная под названием ISAPI (Internet Server API – интерфейс прикладного программирования Internet-сервера) (сильный "конкурент" традиционных приложений на основе общего шлюзового интерфейса CGI [Common Gateway Interface]).

Использование источников данных ODBC

ODBC, несомненно, является наиболее предпочтительным интерфейсом баз данных для платформы Microsoft Windows. Используя ODBC, разработчики могут получать доступ к широкому спектру разнородных источников данных, начиная с простых текстовых файлов, электронных таблиц Microsoft Excel и до баз данных Microsoft Access и SQL Server. ODBC обеспечивает общедоступный и при этом мощный уровень абстрагирования для программиста баз данных.

Разработка Internet-приложений с использованием SQL Server не является исключением. Источники данных ODBC являются главным средством доступа к базам данных SQL Server через Web-серверы. Они осуществляют это с помощью набора COM-объектов OLE DB, которые называют объектами данных ActiveX (ADO). ADO обеспечивает объектно-ориентированный интерфейсный доступ в источники данных ODBC, что является более простым методом, чем использование интерфейса API ODBC C. Используя ADO, разработчики могут реализовать простые объекты, представляющие соединения с базой данных, команды (такие как операторы SQL или хранимые процедуры) и наборы записей, аналогичные курсорам клиента и обладающие в значительной степени такими же функциональными возможностями, как курсоры баз данных сервера. Все эти объекты и интерфейсы баз данных делают Internet-разработку с помощью SQL Server почти тривиальной, обеспечивая при этом некоторые из более сильных возможностей, доступных в ODBC, такие как организация пула соединений (связного пула).

Наиболее важным аспектом Web-приложения на основе ODBC является надлежащее использование пула соединений. Организация пулов соединений позволяет приложению среднего звена поддерживать и использовать разделяемым образом соединения с базами данных SQL Server. Разделяемые (совместно используемые) соединения остаются открытыми в течение заданного периода времени и доступными для разделяемого использования пользователями. Установление соединений часто является операцией с интенсивным использованием ресурсов и может налагать большую дополнительную нагрузку на сервер базы данных. Поскольку Web-серверы и связанные с ними Internet-приложения обрабатывают большой объем трафика, то установление и, что еще более важно, – повторное установление соединений следует минимизировать с помощью пула соединений базы данных. Это позволит сократить время соединений для пользователей и снизит дополнительную нагрузку на ресурсы сервера баз данных. По умолчанию служба IIS 5 активизирует пул соединений с базами данных.

Примечание. При использовании источников данных ODBC и ADO вам следует использовать объекты соединений ADO на страничной основе. Создавая объекты соединений, только когда это требуется для страницы и освобождая их, когда они больше не нужны (в отличие от использования объекта для всего сеанса пользователя) соединение с базой данных можно возвращать в пул быстрее для использования другим соединением. Тем самым радикально снижается время ожидания соединения пользователями вашего Internet-приложения.
Выбор сетевой библиотеки

Хотя SQL Server поддерживает сетевые библиотеки, такие как named pipes (именованные каналы) и Banyan Vines, вам следует при развертывании базы данных SQL Server в Internet использовать в качестве сетевой библиотеки TCP/IP. TCP/IP обеспечивает гибкое использование сети и самую быструю возможность соединений при максимальной производительности среди всех сетевых библиотек в SQL Server. (О сетевых библиотеках см. "лекцию 11" .)

Используя в качестве сетевой библиотеки TCP/IP, вы ограничены использованием стандартного метода обеспечения безопасности как метода безопасности SQL Server. В этом методе для аутентификации используется учетная запись подключения (login-запись) SQL Server. Использование интегрированной системы безопасности, которая не поддерживается TCP/IP и в которой для аутентификации используются учетные записи Windows, обеспечивает более надежную защиту, и можно доказать, что эта система является наиболее эффективным средством поддержки централизованного управления учетными записями на предприятии. Однако по ряду причин использование интегрированной системы безопасности может приводить к снижению производительности*.

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

Во-вторых, соединения, базирующиеся на сетевой библиотеке named pipes (именованные каналы), наиболее часто используемой с интегрированной системой безопасности, обычно имеют низкую скорость. Кроме того, использование библиотеки named pipes создает проблемы для пулов соединений. Вы можете использовать пулы соединений в сочетании с named pipes путем использования учетной записи Anonymous как допустимого входа в SQL Server, но в большинстве реализаций для создания отдельных соединений с SQL Server используется аутентификация с запросом/подтверждением или базовая аутентификация. Это фактически сводит на нет любые улучшения производительности, которые могут быть получены с помощью пула соединений.

Если SQL Server инсталлируется на машине, отличной от Web-сервера, то использование интегрированной системы безопасности также ограничивает доступные возможности аутентификации. В этом случае нельзя использовать аутентификацию с запросом/подтверждением, и остаются только варианты базовой аутентификации и анонимной аутентификации. Анонимная аутентификация для системы, которая защищена каким-либо иным образом в Internet, обычно не рекомендуется, и, как уже отмечалось, использование базовой аутентификации ограничивает преимущества организации пула соединений.

< Лекция 22 || Лекция 23: 123 || Лекция 24 >
Артем Хмелев
Артем Хмелев
Россия, 5
Яна Разаренова
Яна Разаренова
Россия, НИУ ВШЭ