Введение в корпоративные сети
.docВ сравнении с технологией Java технология ActiveX Controls имеет как недостатки, так и преимущества.
Недостатки связаны прежде всего с более низким уровнем безопасности распределенной обработки информации. Программные компоненты ActiveX Controls, загруженные на клиентскую систему, могут обращаться к любой ее части подобно обычному приложению. Microsoft реализовала в рамках ActiveX доверительную защиту на основе цифровых сертификатов, которые обеспечивают подтверждение подлинности загруженных с сети программных компонентов. Однако подтверждение подлинности еще не означает подтверждение безопасности. Кроме того, схема доверительной защиты ActiveX может оказаться недейственной, когда пользователи загружают программные компоненты ActiveX Controls из Internet, особенно из неизвестных или сомнительных источников.
Вместе с тем программные компоненты ActiveX Controls, в отличие от Java-аплетов, позволяют реализовать функции, свойственные полномасштабным программным приложениям. Эта особенность для корпоративной сети является существенным преимуществом при условии принятия соответствующих мер безопасности, например, при разрешении загрузки программ ActiveX Controls только с серверов корпорации.
Что же касается производительности, то поскольку Java является интерпретируемым языком, аплеты Java выполняются на виртуальной машине клиентской системы с меньшей скоростью, чем скомпилированные элементы ActiveX Controls. Но с другой стороны, аплеты Java очень компактны, поэтому загружаются быстро. Для загрузки же программ ActiveX Controls требуется большее время. Следует также учесть, что загруженные программы ActiveX Controls остаются в клиентской системе, тогда как все аплеты Java необходимо каждый раз загружать заново. Эта особенность с точки зрения безопасности является недостатком, так как нарушается централизация прикладной системы. Но с точки зрения производительности достигается преимущество перед Java-аплетами.
По независимости от аппаратных и операционных платформ ActiveX уступает Java-технологии. Несмотря на заявление компании Microsoft, что ActiveX обеспечивает открытую многоплатформенную поддержку операционных систем Macintosh, Windows и UNIX, технологии ActiveX лучше работают на платформах Microsoft Windows, поскольку разработаны преимущественно для использования функций, встроенных в эти операционные системы. Соответственно в полной мере ActiveX может использоваться в сетях, работающих под управлением операционных систем Microsoft Windows.
1.2.3. Доступ к реляционным базам данных. В архитектуре "клиент-сервер", основанной на Web-технологии, Web-сервер выступает в качестве информационного концентратора, который доставляет информацию из разных источников, а потом однородным образом с помощью Web-навигатора предоставляет ее пользователю. Непосредственная интеграция разнородной информации выполняется при визуализации и интерпретации Web-документов, которую реализует Web-навигатор при взаимодействии с Web-сервером, а также другими серверами по предоставлению информационных ресурсов.
Взаимодействие Web-навигатора с сервером системы управления базами данных (сервером СУБД) может осуществляться двумя основными способами:
- доступ к серверу СУБД через Web-сервер;
- доступ к серверу СУБД напрямую.
Доступ к серверу СУБД через Web-сервер
Для доступа Web-навигатора к серверу СУБД через Web-сервер используется система программных шлюзов (см. рис. 1.9). Программный шлюз, получив запрос от Web-сервера, выступает в качестве посредника между сервером Web и сервером СУБД. Программные шлюзы разрабатываются в соответствии с определенными стандартами, определяющими способы вызова Web-сервером прикладных программ или функций динамических библиотек, а также способы обмена информацией с этими программными объектами. Одними из наиболее распространенных стандартов данного типа являются интерфейс CGI (Common Gateway Interface — общий интерфейс шлюзов), а также его усовершенствованная спецификация, названная как FastCGI (ускоренный CGI).
Рис. 1.16. Схема доступа к СУБД через CGI-программу
1.2.3.1. Интерфейс CGI. Для доступа Web-навигатора к серверу СУБД через Web-сервер по стандарту CGI необходима соответствующая CGI-программа, выполняющая роль программного шлюза между Web-сервером и сервером СУБД (рис. 1.16).
CGI-приложения работают независимо от Web-сервера, а их запуск осуществляется по вызову с Web-документа при его обработке Web-навигатором. CGI-программа взаимодействует с Web-сервером посредством двустороннего обмена переменными среды через стандартные каналы ввода/вывода данного приложения.
Поскольку CGI-программы работают независимо от Web-сервера и имеют простой общий интерфейс, разработчики Web-документов имеют возможность создавать свои CGI-программы на любом языке, поддерживающем стандартные файловые операции ввода/вывода. Кроме того, при независимой разработке можно создавать такие приложения, которые легко переносятся с одного на другой Web-сервер. Существуют и стандартные CGI-программы, специально разработанные для взаимодействия Web-серверов с различными СУБД, например, программа WebDBC.
В качестве интерфейса между Web-навигатором и сервером СУБД в составе Web-документов применяют HTML-формы, которые позволяют формулировать запросы к базе данных. CGI-программа получает информацию от Web-сервера либо через переменные окружения, либо через стандартный ввод. Все зависит от метода доступа, который используется при обмене данными между Web-навигатором и Web-сервером. Далее CGI-программа через драйвер ODBC (Open DataBase Connectivity) обращается к серверу СУБД и возвращает Web-серверу ответ на запрос через стандартный вывод.
Драйвер ODBC обеспечивает унифицированный способ доступа к различным СУБД посредством стандартного языка запросов SQL. Благодаря стандарту ODBC прикладные программы могут использовать единственный диалект SQL и взаимодействовать с разными СУБД. Можно обойтись и без драйвера ODBC, но в этом случае CGI-программа должна быть написана с ориентацией на конкретную СУБД, функционирующую на сервере.
Таким образом, разработчику CGI-приложения не надо ничего знать о том, как устроен Web-сервер. Более того, ему вовсе не обязательно использовать сложные языки типа C++. CGI-программа может быть написана и на командном языке, например Peri. Главное выдержать все соглашения, накладываемые стандартом CGI. Такой подход существенно облегчает разработку прикладного программного обеспечения для Web вообще и для сопряжения баз данных с Web-сервером в частности.
Стандарт CGI обладает и недостатком — снижение скорости обработки запросов при увеличении интенсивности их поступления. При каждом вызове CGI-программы ее приходится загружать с диска (т. е. запускать новый процесс). По завершении работы программы требуется освободить использовавшиеся ею ресурсы. Такие операции создают заметную дополнительную нагрузку на сервер, что сказывается на его производительности. К тому же запуск нового процесса при каждом запросе снижает эффективность постоянных процессов и доступность данных. Информацию, которая сгенерирована в ходе обработки одного запроса, невозможно использовать при обработке другого.
1.2.3.2. Интерфейсы API и FastCGI. Для того чтобы обойти проблемы, связанные с быстродействием CGI, многие поставщики Web-серверов, включая Microsoft и Netscape, разработали соответствующие интерфейсы прикладного программирования (API). Корпорацией Microsoft был разработан интерфейс ISAPI (Internet Server API), a корпорацией Netscape — интерфейс NSAPI (Netscape Server API).
Эти интерфейсы тесно интегрированы с Web-сервером, позволяя сохранять доступность постоянно используемых процессов и данных. Программы с интерфейсом ISAPI компилируются в файлы динамически подключаемых библиотек DLL. Они загружаются в память во время первого обращения к ним и поэтому для повторного вызова этих программ не нужно порождать новый процесс. Функции интерфейса NSAPI загружаются в серверное пространство процессов. Соответственно при вызове этих функций также не порождаются дополнительные процессы. Благодаря API-интерфейсу использующая его программа может оставлять соединение с СУБД открытым, так что следующему запросу к базе данных не придется тратить время на открытие и закрытие соединения.
Однако API-интерфейсы Web-серверов — хоть и неплохое, но нестандартное решение. Большинство приложений нельзя переносить с одного API на другой, и очень редко удается переносить приложения на другие платформы. Кроме того, большинство приложений для Web-серверов все еще создаются для интерфейса CGI, поэтому переход к приложениям на базе API не представляется экономически оправданным.
Поэтому стали появляться способы построения некоторого промежуточного варианта, который, с одной стороны, удовлетворял бы требованиям мобильности, независимости и простоты программирования, а с другой стороны — был бы достаточно эффективным. Одним из таких решений является спецификация FastCGI. Идея этой спецификации в том, что прикладная программа использует способ передачи параметров и данных, который применяется в CGI, но при этом не удаляется из памяти, а остается резидентной, обрабатывая поступающие запросы.
Таким образом, приложения на базе FastCGI, подобно CGI-программам, работают независимо от Web-сервера и запускаются через стандартные ссылки в Web-документах. Но, как и программы на базе API, программы для FastCGI являются постоянно действующими. Когда программа заканчивает обработку очередного запроса, ее процесс остается открытым в ожидании нового запроса.
При доступе Web-навигатора к реляционной базе данных через интерфейс FastCGI получается схема, в которой фактически используются три сервера:
Web-сервер, FastCGI-программа и сервер базы данных. Web-сервер принимает запрос Web-навигатора и передает его FastCGI-программе, которая в свою очередь обращается к серверу баз данных. Результат возвращается по обратной цепочке.
1.2.3.3. Доступ к серверу СУБД напрямую. Для доступа Web-навигатора к серверу СУБД напрямую могут использоваться как Java-аплеты (рис. 1.17) и программные компоненты ActiveX Controls (рис. 1.18), так и подключаемые к навигатору специализированные программные модули (plug-ins).
Для использования Java-аплетов по доступу к различным серверам СУБД разработан стандартный интерфейс JDBC (Java DataBase Connectivity) (рис. 1.17). Данный интерфейс ориентирован на обеспечение взаимодействия с сервером СУБД не только Java-аплетов, выполняющихся на клиентских станциях, но и Java-программ, запускаемых на сервере.
Рис. 1.17. Схема доступа к СУБД с помощью Java-аплета
Доступ Web-навигатора к серверу СУБД с помощью программных компонентов ActiveX Controls (рис. 1.18) предполагает, как и в случае Java-аплетов, запрос и передачу соответствующей программы на рабочую станцию, а также ее дальнейшее выполнение на рабочей станции. В этом случае взаимодействие с сервером СУБД должно выполняться через интерфейс ODBC. Если учесть, что Java исполняется Web-навигатором в режиме интерпретации мобильного кода, то требования к аппаратуре рабочей станции по производительности и объему оперативной памяти существенно возрастают.
Рис. 1.18. Схема доступа к СУБД с помощью программного компонента ActiveX Controls
Использование для доступа Web-навигатора к серверу СУБД подключаемых к навигатору специализированных программных модулей (plug-ins) требует предварительной установки соответствующего программного дополнения на рабочей станции. После этого взаимодействие с сервером СУБД будет осуществлять установленное программное средство, получающее управление от Web-навигатора при обработке соответствующего вызова в Web-документе.
Для избежания несовместимости взаимодействие подключенных программных модулей с сервером СУБД, как и в случае программных компонентов ActiveX Controls, должно выполняться через интерфейс ODBC.
1.2.4. Управление информацией о ресурсах и пользователях сети. Масштабность и неоднородность современных компьютерных сетей не только усложняют администрирование и защиту компьютерных ресурсов, но и снижают удобство использования распределенных сетевых сервисов конечными пользователями. В этих условиях требуемый уровень управляемости, безопасности и удобства использования компьютерной сети может быть обеспечен только при наличии эффективного управления информацией о ее ресурсах и пользователях. В противном случае администратор не сможет осуществлять должный контроль компьютерных ресурсов, а пользователи не будут иметь возможности прозрачного доступа к любому сервису сети вне зависимости от его местонахождения.
Эффективное управление информацией о ресурсах и пользователях сети предполагает динамическое накопление и обновление этой информации, а также выдачу необходимых сведений по запросам пользователей и программ в соответствии с их полномочиями. Различают два вида управляемой информации о ресурсах и пользователях сети;
- административная информация, включающая сведения о пользователях и сетевых ресурсах, которые не детализируют описания информационных ресурсов на уровне отдельных файлов, например, файлов документов (Web-документов, обычных текстовых документов, документов Word, Excel и др.);
- детальные сведения об информационных ресурсах сети на уровне отдельных файлов, отражающие их содержимое и адреса.
Способы управления административной информацией о сети и детальными сведениями об информационных сетевых ресурсах были разработаны до появления Web-технологии. Однако при переходе на Web-архитектуру, благодаря которой повысились доступность и популярность, а соответственно и масштабность компьютерных сетей, эти способы получили новое развитие.
Для управления административной информацией о сети в состав современных сетевых операционных систем входит подсистема, названная службой каталогов (directory service). Данная служба поддерживает имена, описания и адреса ресурсов и пользователей сети, что существенно упрощает установление связей и управление работой сети. Благодаря службе каталогов создается единое унифицированное сетевое пространство для всех пользователей и сетевых сервисов за счет выделения единых точек доступа и единообразного управления ресурсами и пользователями сети.
1.2.4.1. Задачи службы каталогов. Служба каталогов обеспечивает решение следующих важных задач:
- автоматический поиск сетевых ресурсов и зарегистрированных пользователей, а также прозрачный доступ к ресурсам сети;
- административный контроль и учет компьютерных ресурсов и пользователей;
- поддержка удобной системы именования сетевых ресурсов и пользователей;
- однократная регистрация пользователей и ресурсов сети.
Поиск сетевых ресурсов и зарегистрированных пользователей реализуется с помощью службы каталогов прозрачным образом. Здесь уместна аналогия с "желтыми страницами", позволяющими определять местоположение нужной службы по имени в известном окружении, например, в каком-либо городе, или производить поиск по определенным категориям, например, по музеям. Служба каталогов выполняет функции поиска аналогичным образом, но в качестве окружения использует компьютерную сеть и в отличие от "желтых страниц" процесс поиска выполняется автоматически. Это обеспечивает возможность прямого доступа к любому сервису в сети вне зависимости от его местонахождения.
Служба каталогов позволяет охватить централизованным административным контролем все ресурсы и всех пользователей компьютерной сети любого масштаба, покончив с допотопным способом управления каждым сервером в отдельности. Эта служба помогает администраторам собирать и просматривать информацию о ресурсах, распределенных по узлам сети, и обеспечивает единообразное представление этой информации.
Одной из важнейших функций службы каталогов является установление соответствия между сетевыми именами пользователей и ресурсов и сетевыми адресами или, иными словами, перевод одних в другие. Данная функция, называемая службой имен, позволяет работать с удобопонятными псевдонимами, а также переводить эти имена в машинные адреса и выполнять обратный перевод. Современные службы каталогов поддерживают все стандартные системы именований, что дает возможность единым образом управлять различными пространствами имен в неоднородных компьютерных сетях.
Благодаря службе каталогов пользователи и ресурсы регистрируются в сети лишь один раз, и все серверы могут параллельно осуществлять доступ в одни и те же каталоги. Когда общесетевая служба каталогов отсутствовала, каждым сервером сети приходилось управлять в индивидуальном порядке. Пользователь, нуждавшийся в каких-либо ресурсах сервера, должен был иметь на нем свою учетную запись. Это приводило к тому, что многие конечные пользователи регистрировались на нескольких серверах сети масштаба предприятия, и им все время приходилось помнить, где и какие ресурсы размещены.
Множество учетных записей сказывалось весьма болезненно как на пользователях, так и на администраторах. Но, что более важно, подвергало риску систему безопасности. Из-за необходимости помнить множество имен и паролей пользователи либо записывали их на бумагу, либо хранили в незащищенных местах, либо использовали несколько легко идентифицируемых паролей или, что еще хуже, задавали один и тот же пароль для всех учетных записей.
При использовании службы каталогов наличие одного идентификатора и пароля для доступа в сеть позволяет свести к минимуму риск для системы безопасности и, кроме того, администраторы получают больший контроль над доступом пользователей к конкретным сетевым ресурсам. В случае однократной регистрации аутентификация конкретного пользователя осуществляется на основе одного пароля или аппаратного ключа. При этом пользователь получает доступ к любому сетевому ресурсу, на который администратор дал ему права.
1.2.4.2. Принципы построения службы каталогов. Служба каталогов обеспечивает единое согласованное представление сети и унифицированный доступ к административной информации о сетевых ресурсах и пользователях. В услугах данной службы нуждаются все пользователи и сервисы сети. Доступ любого пользователя или сервиса к службе каталогов реализуется в соответствии с его полномочиями.
Схема использования и организационная структура службы каталогов представлена на рис. 1.19. Доступ к любым административным сведениям о сети выполняется специализированной СУБД через интерфейсную подсистему, которая обеспечивает единый способ представления этих сведений. СУБД службы каталогов в процессе обработки запросов взаимодействует с подсистемой идентификации, предназначенной для установления соответствия между сетевыми именами пользователей и ресурсов и их реальными адресами в сети.
База данных службы каталогов организована в виде иерархий каталогов аналогично структуре каталогов файловой системы. Иерархии каталогов обеспечивают систематизацию хранящихся в них объектов путем их распределения по каталогам в соответствии с какими-либо признаками.
В базе данных службы каталогов объектами являются порции информации, характеризующие ресурсы и пользователей сети. Объекты объединяются в поименованные каталоги по определенному признаку, например, по принадлежности к подразделениям организации. Каждый каталог может содержать другие каталоги и объекты (рис. 1.20). Каталог, который не входит ни в какие другие каталоги, является корневым.
Рис. 1.19. Схема использования и организационная структура службы каталогов
Рис. 1.20. Древовидная структура корневого каталога базы данных службы каталогов
Таким образом, в древовидной структуре любого корневого каталога нелистовыми вершинами (имеющими выходные дуги) являются каталоги, а листовыми (не имеющими выходных дуг) - объекты. Для отдельных операционных систем, например, для Windows NT, база данных службы каталогов может включать несколько корневых каталогов, объединенных определенными типами отношений. В этом случае полное дерево корневого каталога называют доменом.
Объект в каталоге базы данных представляет собой ее запись, соответствующую реальному объекту или субъекту сети, например, принтеру или пользователю. Каждый объект каталога содержит информацию в виде набора свойств (атрибутов) и их значений. Например, сетевой принтер характеризуется в базе данных объектом Printer, для которого определены такие свойства, как имя, описание, местоположение и сетевой адрес. Одни и те же типы объектов обладают одинаковыми свойствами, в то время как у разных типов объектов свойства могут отличаться. Для каждого типа объектов определяются обязательные свойства, без указания значений которых объект данного типа не сможет быть создан. Например, обязательным свойством объектов всех типов является имя.
Различают следующие типы объектов базы данных службы каталогов:
- объект рабочая станция, содержащий описание рабочей станции сети;
- объект сервер, описывающий сервер сети;
- объект тома, характеризующий логический том на дисковом носителе информации;
- объект принтер, содержащий описание принтера;
- объект очередь, описывающий очередь заданий на печать;
- объект пользователь, содержащий учетную запись пользователя (идентификатор, фамилия и имя, пароль, полномочия, адрес электронной почты, сценарий регистрации и др.);
- объект группа, описывающий группу пользователей;
- объект профиль, описывающий задаваемые для пользователей параметры конфигурации;
- объект схема каталога, характеризующий каталог;
- другие объекты, зависящие от конкретной службы каталогов.
Объединение с помощью иерархий каталогов описаний реальных сетевых объектов и субъектов существенно упрощает администрирование сети, а также поиск ее ресурсов и пользователей.
Заполнение базы данных службы каталогов выполняют как соответствующие компоненты сетевой операционной системы и сетевые сервисы, так и администраторы сети.
Для высокой надежности функционирования компьютерной сети современные службы каталогов поддерживают функции тиражирования и синхронизации своих баз данных. Тиражирование предполагает формирование нескольких копий базы данных, распределенных по различным серверам. Синхронизация обеспечивает своевременное обновление распределенных копий базы данных для их поддержания в актуальном состоянии.
Современные службы каталогов соответствуют стандартам Х.500 и LDAP (Lightweight Directory Access Protocol — облегченный протокол доступа к каталогам). Наиболее распространенным является стандарт LDAP, который представляет собой подмножество протокола Directory Access Protocol (DAP), используемого для построения каталогов Х.500. Однако DAP работает только в стеках протоколов модели OSI (Open System Interconnection) и требует серьезных вычислительных мощностей. Протокол LDAP, как и DAP, предназначен для извлечения информации из иерархических каталогов, но в отличие от него, имеет ограничение по числу ответов на запрос к каталогу Х.500, что снижает загрузку сети. Преимуществом LDAP является также его программный интерфейс, более дружественный и легкий для использования, чем интерфейс Х.500 или DAP. Кроме того, LDAP проще реализуется, чем вышеупомянутые протоколы, поскольку в нем используются для кодирования обычные текстовые строки без дополнительного форматирования.
В сетевых операционных системах Novell NetWare используется служба каталогов Novell Directory Services (NDS). Microsoft Windows NT Server 4.0 включает службу каталогов Windows NT Directory Service (NTDS). Для пятой версии данной операционной системы разработана новая служба каталогов Active Directory (AD). Службы каталогов NDS и AD соответствуют протоколу LDAP.
1.2.4.3. Управление детальными сведениями об информационных ресурсах. Для управления детальными сведениями об информационных ресурсах сети на уровне отдельных файлов используются специализированные информационно-поисковые системы. Эти системы ориентированы на выполнение следующих функций:
- периодического сканирования файлов, хранящихся в узлах компьютерной сети с целью определения их содержимого;
- систематизации полученной при сканировании информации и занесение ее в базу данных об информационных ресурсах сети;
- поиска и выдачи необходимых сведений по запросам пользователей и программ в соответствии с их полномочиями.
Функцию поиска и выдачи необходимых сведений по запросам пользователей и профамм реализует специализированная СУБД на основе сведений об информационных ресурсах сети, хранящихся в базе данных информационно-поисковой системы (рис. 1.21 и 1.22). Результатом поиска является список указателей на удовлетворяющие запросу файлы вместе с их описаниями.
Рис. 1.21. Схема использования и организационная структура информационно-поисковой системы, основанной на построении каталогов
Рис. 1.22. Схема использования и организационная структура информационно-поисковой системы, основанной на построении индексов
В зависимости от автоматизации способа накопления сведений в базе данных об информационных ресурсах, а также ее структуры различают два типа информационно-поисковых систем:
- системы, основанные на построении каталогов, которые обеспечивают как поиск путем навигации по тематическим каталогам, так и поиск по ключевым словам;
- системы, основанные на построении индексов, которые обеспечивают только поиск по ключевым словам.
Существуют также комбинированные информационно-поисковые системы.
Общей особенностью перечисленных типов поисковых систем является используемый способ сканирования файлов, хранящихся в узлах компьютерной сети с целью определения их содержимого.
Сканирование файлов в сети для построения тематических каталогов и индексов выполняется автоматически. Основная задача сканирования файлов - формирование их описаний. Описание файла называют его поисковым образом, так как оно заменяет собой этот файл, и используется при поиске вместо реального файла.
Наиболее популярной моделью поискового образа файла является векторная модель, в которой каждому файлу приписывается список терминов, адекватно отражающих его описание. Если быть более точным, то файлу приписывается вектор размерности, равный числу терминов, которыми можно воспользоваться при поиске. При булевой векторной модели элемент вектора равен 1 или 0, в зависимости от наличия или отсутствия термина в поисковом образе. В более сложных моделях термины взвешиваются — элемент вектора равен не 1 или 0, а некоторому числу (весу), отражающему соответствие данного термина документу. Именно последняя модель стала наиболее популярной.
Процесс формирования поисковых образов файлов осуществляется включением в поисковый образ каждого файла относящихся к нему ключевых слов. Эту процедуру часто называют индексированием, что не совсем правильно, так как под индексированием понимается составление инвертированного списка, в котором каждому термину ставится в соответствие указатель (индекс) на список поисковых образов файлов, к которым этот термин имеет отношение.