Россия, г. Санкт-Петербург |
Доступ к Microsoft SQL Server 2000 из Internet
Появление 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 активизирует пул соединений с базами данных.
![](icon2.gif)
Выбор сетевой библиотеки
Хотя 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, обычно не рекомендуется, и, как уже отмечалось, использование базовой аутентификации ограничивает преимущества организации пула соединений.