Некоторые технические аспекты создания веб-ресурсов

Приняв решение опубликовать в «СР» эту статью, редакция отдавала себе отчет, что значительному числу сетевых администраторов и начальников IT известно все (ну или почти все :) из нижеизложенного. Поэтому попрошу а) обратить внимание на рубрику, в которой опубликована эта статья и б) не закидывать редакцию электронным мылом с приаттаченными гнилыми помидорами по поводу того, что мы вас за неизвестно кого держим.
Но прошу учесть, что «СР», наряду с опытными сетевыми волками, читают и системные администраторы, которым по роду службы раньше не приходилось сталкиваться ни с IP-технологиями, ни с технологиями создания веб-ресурсов. И тут вдруг бац — пришла разнарядка: «Срочно построить веб-сайт организации — своими силами либо с привлечением подрядчиков». И повесили это на тех самых «системщиков» или, как говорят еще в гос. учреждениях — «программистов».
Вот именно им, главным образом, и адресована данная статья.

шеф-редактор

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

размещение сайта

Начнем рассмотрение с самого простого — "физического" места положения веб-сервера.

В зависимости от ваших потребностей и финансовых возможностей существует несколько вариантов:

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

Наличие собственного веб-сервера.Если вы не имеете территориально-разнесенных подразделений, представительств, линия продвижения ваших товаров и услуг не испытывает необходимости учета особенностей региональных рынков или представления и поддержки информации, отображающей маркетинговую линию "на местах", нет смысла иметь и поддерживать несколько сайтов, объединенных в единое информационное пространство. Достаточно иметь собственный веб-сервер. Если степень автоматизации вашего предприятия подразумевает наличие выделенного канала, то достаточно просто и весьма целесообразно иметь такой сервер, размещенный физически "на территории" вашей организации. В противном случае можно разместить сервер на площадке провайдера. Тут может быть три варианта: аренда у провайдера компьютера под ваш сервер (в англоязычной терминологии — dedicated server), аренда на провайдерском сервере места под ваш сайт (shared hosting) и размещение вашего собственного сервера (под сервером в данном случае понимаем собственно железо) на площадке провайдера (co-location).

Невозможно говорить конкретно о программно-аппаратной части решения и его стоимости, не изучив детально стоящие перед вами задачи. Например, стоимость аппаратной части, в некоторых случаях, может колебаться от десятков-сотен долларов (соответствующий компьютер с установленной Unix-совместимой операционной системой, без графической оболочки и даже не только без качественного, но и вообще любого монитора) до гораздо более серьезных сумм (например, сервер SUN).Независимо от аппаратного решения в большинстве случаев совершенно отсутствует внешняя разница в следующих составляющих:

— стиль;
— дизайн;
— предоставление информации;
— организация "двусторонней связи" с посетителями;
— реклама;
— большинство маркетинговых составляющих;
— возможность обновлений;
— организация поиска с использованием как внешних, так и собственных механизмов индексации документов;
— использование CУБД.

Отметим, что утверждение об "отсутствии внешней разницы" относительно. Все зависит в каждом конкретном случае от числа одновременных подключений удаленных пользователей, "ресурсоемкости" запускаемых на сервере процессов. Говоря проще, чем их больше, тем выше требования к программным и аппаратным ресурсам. Некоторые из перечисленных пунктов, особенно последний, сильно зависят от требований к производительности, сложности баз данных. Например, далеко не всегда и все можно реализовать при помощи СУБД MySQL, прекрасно работающей, скажем под Linux или даже Oracle под Linux на аппаратной платформе стоимостью 200 долларов.

Размещение сайта на "собственной" аппаратной платформе в ряде случаев экономически неоправдано. Действительно, необходим персонал, в обязанности которого входит поддержка аппаратных средств, некие работы и т. д. В этом случае, проще физически разместить свой сайт на сервере организации, предоставляющей подобные услуги. Речь не идет о бесплатных доменах и сервисах, предоставляемых в Интернет. Дело в том, что на имидж фирмы влияет и адрес ее Интернет — представительства. Если из адреса, например, можно понять, что организация использует бесплатный домен, экономя на десятке-другом долларов за регистрацию домена и достаточно небольших сумм за хостинг, при этом предлагая товары и услуги, стоимость которых несколько выше, то посетитель сайта может сделать негативные выводы, а может и не посетить такой сайт вообще, увидев адрес в рекламных материалах. Организации, работающие на рынке веб-услуг, часто предлагают регистрацию доменных имен в различных зонах Интернета (ru, by, com, org и т. д.) и предоставляют некий объем дискового пространства на своем сервере для размещения сайта /* это и есть shared hosting, упоинавшийся выше — прим. ред. */. Как правило, сопутствующей услугой является доступ по FTP для обновлений. Данный способ размещения сайта является наиболее простым и доступным практически для любой организации, независимо от наличия выделенного канала, соответствующих технических специалистов. Кроме того, одной из услуг, предоставляемых на соответствующем рынке, является поддержка сайтов, включающая в себя обновления, разработку и доработку различных элементов Интернет — представительств. Подробнее рассмотрим некоторые аспекты предоставляемой услуги, незначительно влияющие на стоимость решения, но предоставляющие широкие возможности для увеличения степени автоматизации:

— предоставление возможности использования скриптов CGI;
— предоставление возможности доступа к СУБД;
— предоставление дополнительных адресов электронной почты или почтовых доменов.

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

создание бизнес-приложений

Достаточно условно можно выделить две группы веб-приложений по способу реализации и работы.

1. Приложения, автоматически загружаемые в память компьютера посетителя вашего Интернет-представительства (а иногда и не только в память, а и, например, в подкаталог Downloaded Program Files каталога операционной системы удаленного компьютера, а возможно и инсталлируемые в системе, вносящие записи в реестр операционных систем от Microsoft). Такие приложения полностью выполняются на клиентском компьютере. Загрузка и даже инсталляция с внесением записей в реестр, может осуществляться, например, лишь при открытии страницы веб-браузером посетителя. Ниже описаны некоторые средства, основанные на подобных принципах. Основным преимуществом подобных решений является необходимость некоторых вложений в разработку и практически отсутствие затрат на дальнейшую поддержку, отсутствие дополнительных требований к аппаратным ресурсам сервера, использования дополнительных серверных приложений и механизмов, напрямую влияющих на стоимость решения. Недостатки же в том, что, во-первых, чем сложнее логика работы, тем более громоздко приложение, например, требуется больше времени на его загрузку, что далеко не всегда допустимо, занимаются ресурсы компьютера удаленного пользователя. Во-вторых, система безопасности средств Интернет операционных систем далеко не всегда в настройках по умолчанию позволяет загружать и выполнять, например, ActiveX-компоненты и для работы с подобными приложениями требуется сознательное снижение удаленным пользователем уровня безопасности. Это связано с тем, что, например, при открытии страниц со встроенными компонентами производится их автоматическая инсталляция в системе клиента, вносятся изменения в реестр. В-третьих, в некоторых нишах потенциальных клиентов по требованиям безопасности запрещены загрузка и выполнение подобных приложений.

2. Приложения, выполняемые на сервере. Удаленный посетитель вашего сайта лишь запускает их, передавая те или иные параметры. Как правило, пользовательский интерфейс страниц, предназначенных для работы с подобными приложениями, кроме необходимых элементов дизайна, текстов имеет соответствующие механизмы "организации двустороннего диалога с посетителем". Ими могут являться формы с соответствующими элементами, возможно выполненные в "привычном" виде, а возможно в виде, например, анкет. Приложения сервера получают необходимые параметры через соответствующий "шлюз", например, специальный скрипт (скажем, при использовании технологии CGI (Common Gateway Interface, общий шлюзовой интерфейс). Получив те или иные параметры (вопрос пользователя, результаты опроса, голосования, запроса и т. д.), серверное приложение выполняет то или иное действие — передает вопрос по электронной почте, возвращает результат запроса к СУБД и т. д. Под термином "приложение сервера" подразумевается не "приложение веб-сервера", а отдельный процесс, служба, демон, программа, работающая на сервере, например, почтовая система.

Кроме того, ряд технологий позволяет обращаться к приложениям, работающим совершенно не обязательно на том сервере, где "физически" установлено приложение (служба, демон) — веб-сервер.

Степень автоматизации двустороннего диалога с посетителем может быть совершенно различной, как и степень внесения имиджинговой, маркетинговой и других составляющих. Об этом немного ниже. Основными преимуществами использования данной категории приложений является максимальное снятие нагрузки с клиентских компьютеров, практически неограниченные возможности в реализации тех или иных задач. Задачи могут быть связаны не только с достаточно простыми вопросами, например, взаимодействием с почтовой системой, СУБД. Существуют и более сложные, такие, как ведение любых расчетов, анализа, отображения статистической информации, имеющие под собой не только достаточно сложную программную реализацию, но и непростой математический аппарат. К недостаткам же сложных серверных решений можно отнести практически неограниченную сложность реализации, повышенные требования к аппаратным ресурсам, квалификации обслуживающего и поддерживающего персонала, следствием чего является высокая стоимость.

Приведенная выше классификация весьма условна. В некоторых случаях, возможны, например, варианты, когда существует одновременно клиентская часть приложения, автоматически загружаемая и инсталлируемая, например, при открытии страницы посетителем и серверная часть, выполняемая на сервере. Например, кратко описанные ActiveX-компоненты — активные формы — приложения первой группы, вполне могут использоваться и для доступа к СУБД через Интернет, для решения задач в архитектуре клиент-сервер (например, в системах оплаты, системах расчетов и анализа и т. д.). Но такого использования лучше избегать, поскольку "самый тонкий" клиент этой архитектуры — веб-браузер — просто теряет свои качества.

JavaScript

Одним из средств, позволяющих создавать приложения первой группы, может являться JavaScript и JScript.
Во все распространенные веб-браузеры встроено ядро объектно-ориентированного языка сценариев JavaScript. Для пущей корректности поясним, что JavaScript является собственностью Netscape. Реализация от Microsoft носит название JScript. Нижеописанные возможности применимы к обеим реализациям, поэтому условно объединим их сокращением JS.
Рассмотрим пример бизнес-приложения, код которого полностью встроен в HTML-документ. Ограничимся лишь снимком экрана и небольшим толкованием (Рис. 1).

Рисунок 1. Приложение с использованием JScript (экран).

Код приложения JS, полностью встроенный в загружаемую веб-страницу, выполняется на клиентском компьютере, содержит в себе логику расчета стоимости оборудования в зависимости от конфигурации. Данный пример достаточно хорошо иллюстрирует возможности JS: удаленный посетитель заполняет поля, выбирает тип оборудования, нажимает кнопку "расчет", после чего приложение производит вычисления и выводит результат. Общий объем загружаемой страницы достаточно невелик и составляет приблизительно 25 килобайт, что несущественно даже при использовании низкоскоростного модемного доступа в Интернет.
Нельзя утверждать, что логика и математический аппарат, применяемый для расчетов в данном примере, сложны. Пример лишь иллюстрирует наиболее оптимальное применение JS.
В случае необходимости производить более сложные расчеты, объем загружаемой страницы возрастет (как и требования к ресурсам клиентского компьютера). Чем сложнее математический аппарат и требования к отображению результатов расчетов, тем менее эффективно применение JS и все преимущества подобных приложений (отсутствие затрат на дальнейшую поддержку, отсутствие дополнительных требований к аппаратным ресурсам сервера, использования дополнительных серверных приложений и механизмов, напрямую влияющих на стоимость решения) могут быть сведены на нет.
Приведенная в примере страница выполняет некие функции менеджера, занимающегося поставками оборудования и грамотно способного провести и обосновать расчеты. Также с некоторой степенью автоматизации реализуется "двусторонняя связь" с посетителем сайта.
К сожалению, большая степень автоматизации, которую можно реализовать с использованием JS, не всегда целесообразна, а иногда просто невозможна.

Java-апплеты

Достаточно кратко рассмотрим Java-апплеты. Подобные загружаемые приложения также относятся к первой группе. Это средство все же ближе к дизайну, хотя возможно создание достаточно мощных программ, выполняющих не только функции придания страницам сайта соответствующего внешнего вида. Сам Java-апплет является, как правило, файлом *.jar, физически находящимся в каталоге веб-сервера.
При открытии веб-браузером страниц, производится загрузка приложения и его выполнение на компьютере посетителя сайта.
Заметим, что чем сложнее составляющая дизайна и логика приложений, которые можно реализовать в виде Java-апплетов, тем большее время на их загрузку и выполнение потребуется посетителю сайта, он может уйти, не дождавшись появления в окне своего веб-браузера именно той информации, которую несет незагрузившийся апплет. Кроме того, ряд предприятий, организаций и фирм в целях обеспечения безопасности имеют ограничения на загрузку и выполнение подобных приложений веб-браузерами сотрудников или специфичные (иногда просто устаревшие) веб-браузеры, не поддерживающие Java.
Использование даже хорошего апплета с целью выполнения неких, скажем, маркетинговых функций, ассоциативно сравнимо с неграмотным использованием архитектуры "клиент-сервер". Когда, например, в качестве СУБД используется мощное средство, скажем Oracle или MsSQL Server, позволяющее выполнять на сервере хранимые процедуры и триггеры, а не очень грамотный программист возложил всю логику, которую способен выполнить сервер, на клиентское приложение. От подобных решений клиентское приложение становится чрезвычайно громоздким, способно порой вызвать зависание даже мощной рабочей станции, хотя трафик не очень плотный, а подобный "не тонкий" клиент обращается к данным, хранящимся в таблицах достаточно мощных СУБД, поддерживающих архитектуру "клиент-сервер".

активные формы

Существует еще один способ создания бизнес-приложений первой группы — полностью выполняемых на клиентском компьютере. Рассмотрим подобное решение на примере компонентов ActiveX — активных форм, которые можно использовать и для обращения через веб-интерфейс к серверным приложениям, например, к СУБД. Хотя для этого существуют "более приемлемые для Интернет" механизмы, например, PHP, IDC и "клиент-серверная" реализация технологии ActiveX — ASP. Использование активных форм в качестве клиентских частей архитектуры "клиент-сервер" в глобальных сетях не всегда целесообразно и чаще приемлемо в интрасетях. Приложения инсталлируются в системе, вносят изменения в реестр, для инсталляции и работы с ними требуется умышленное снижение уровня безопасности. Кроме того, "самый тонкий клиент" — веб-браузер теряет свои свойства, а сами файлы серьезных приложений, кроме того, имеют достаточно большой объем и время загрузки по низкоскоростным каналам доступа в Интернет.

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

Рассмотрим, что же такое активная форма, как она создается и размещается в Интернет? Представьте себе окно приложения, используемого вне глобальной сети, а скажем при неких экономических, статистических, бухгалтерских, технических и прочих расчетах, а возможно это... игра "lines". Допустим, данное приложение использует та или иная категория сотрудников или посетителей вашего офиса. А теперь представьте, что подобная программа "открывается" в окне веб-браузера удаленного посетителя соответствующего закрытого или открытого раздела вашего сайта, причем логика работы, да и пользовательский интерфейс ничем не отличается от того приложения, что вы, ваши сотрудники, посетители используете в офисе.

С технической точки зрения реализация описанных возможностей достаточно проста. Объектно-ориентированные среды программирования (например,s Borland Delphi и другие), позволяют программисту использовать те же механизмы, строки кода, объекты, свойства, методы, функции и навыки разработки для создания приложений на активных формах, что и на "обычных". Говоря проще, компилируется файл, имеющий не "более привычное" для приложений в операционных системах от Microsoft расширение *.exe, а *.ocx. Впоследствии данный файл просто размещается в каталоге веб-сервера. При таком (только "клиентском") использовании активных форм совершенно безразлично, под какой операционной системой проинсталлирован ваш веб-сервер.

Загрузка активной формы на машину посетителя сайта производится при открытии веб-браузером документа, в коде которого указан данный объект. Как правило, файл приложения сохраняется в подкаталоге Downloaded Program Files компьютера удаленного посетителя. Это в принципе исключает повторные загрузки, которые могут потребовать достаточно длительного времени. При этом происходит инсталляция приложения и вносятся записи в реестр. Далее в окне веб-браузера открывается интерфейс приложения-активной формы и можно начинать работу.

CGI

С помощью этого средства можно связывать исполняемые на сервере и запускаемые удаленным пользователем приложения. Приложения «запускает» посетитель вашего сайта, используя элементы интерфейса, например, формы. "Запускает" следует трактовать, как "посылает соответствующую строку, являющуюся командой на запуск приложения, выполняемого на сервере с некоторыми параметрами, определяющими выполнение тех или иных задач приложения. Фактически CGI-программу запускает веб-сервер, передавая в нее какие-то параметры (как указанные посетителем страницы, так и служебные — адрес посетителя, например). Отработав, такая программа выдает результат своей деятельности не на экран, а веб-серверу, который, в свою очередь, посылает этот «продукт жизнедеятельности» клиенту — браузеру посетителя. А в остальном CGI-программа — это обыкновенная программа, которая может быть написана на различных языках программирования. Чаще всего применяется Perl или C.

Степень автоматизации обработки обращения посетителя и формирования ответа может быть полной (например, посетитель передает запрос к СУБД и получает результат) или частичной (например, посетитель передает через веб-интерфейс вопрос в отдел поддержки решений).

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

На Рис. 2 приведен экран "горячей линии" русскоязычного сайта корпорации Ford в момент попытки удаленного посетителя сформировать и отправить запрос в адрес службы "горячей линии" без указания необходимых контактных координат. Удаленному посетителю предоставлена возможность задать интересующий вопрос, который передается в службу "Горячей линии". Кроме возможности формирования вопроса, организации передачи вопроса посетителя в соответствующую службу приложение следит за заполнением пользователем обязательных полей формы.

Рисунок 2. Пример использования CGI-приложения для организации "горячей линии".

PHP. Некоторые возможности для создания бизнес-приложений

PHP (PHP: Hypertext Preprocessor) — межплатформенный язык сценариев, позволяющий реализовать приложения, выполняемые на стороне сервера. Как и всякий язык, PHP имеет все необходимые атрибуты, содержит множество инструментов. Очень важно, что

PHP позволяет формировать динамически содержание страниц, доступных посетителю в окне веб-браузера.
Для PHP существует специальный модуль, подключаемый к веб-серверу Apache. Код PHP может выполняться как сценарий CGI будучи встроен в обычную HTML-страницу.

При помощи PHP можно производить практически неограниченную интеллектуальную обработку форм.
Кратко отметим группу, так называемых графических функций, позволяющую динамически создавать изображения, работая, например, с их цветом, формой и прочими характеристиками.
Неотъемлемой частью ряда современных бизнес-приложений, используемых даже вне сети, являются диаграммы, графики и другие, ставшие неотъемлемыми элементы отображения информации.
Подобное приложение становится громоздким, и все недостатки загружаемых и выполняемых на стороне клиента приложений могут просто "перечеркнуть" вложенные в них возможности. В связи с этим динамическое формирование потока изображений, как процесс сервера — достаточно важное свойство PHP.

На Рис. 3 приведен пример работы такого приложения — диаграмма средств анализа статистики реального ресурса.

Рисунок 3. Формирование графического потока изображений.

приложения, взаимодействующие с СУБД

В первой части материала кратко упоминалось о возможностях работы с СУБД для индексации документов сайта как для контекстного поиска, так и для поиска по необходимым признакам (полям). Подобные действия направлены, прежде всего, на предоставление посетителю средств быстрого нахождения необходимой информации в неизбежно растущей массе документов вашего интернет-представительства.

Взаимодействие с СУБД осуществляется через их собственные API. Очень важно, что PHP поддерживает ODBC через соответствующие драйверы для некоторых СУБД. Хотя ODBC достаточно часто применяется в операционных системах Microsoft, являясь промежуточным слоем, мостом между веб-сервером и СУБД, что далеко не всегда может положительно влиять на производительность системы в целом. Связь с СУБД в PHP может осуществляться и без какого-либо дополнительного "промежуточного слоя". Для взаимодействия с разными СУБД в PHP имеются все необходимые функции.

Не перечисляя всех, приведем неполный список поддерживаемых СУБД: Sybase, Oracle, MySQL, Informix, Interbase, FilePro(только чтение), DBM (отметим, что данные СУБД построены не по реляционному принципу), DBase (поясним, что файлы *.dbf являются лишь файлами последовательного доступа, данная СУБД не является настоящей "клиент- серверной"), Hyperwave Information Server.

Логика взаимодействия с СУБД через веб-интерфейс следующая:
— посетитель сайта формирует запрос, используя привычные элементы веб-интерфейса;
— запрос и его параметры передаются через соответствующий механизм взаимодействия веб-сервера и СУБД к самой СУБД, отрабатывающей запрос;
— после отработки запроса через соответствующий механизм, позволяющий динамически формировать страницы (например, PHP), пользователь получает в окне веб-браузера результат запроса. Лучше предоставить удаленному посетителю сайта сузить область поиска, поскольку информации может оказаться много и наличие возможности поиска в результатах запроса позволяет не пропустить ту самую строку, которая может повлиять на успех вашей организации.
Рассмотрим пример веб-интерфейса, позволяющего использовать приложение, реализованное по технологии PHP для доступа к СУБД.

Рисунок 4. Форма, использующаяся для работы с СУБД по технологии PHP.

Данное приложение выполняет задачи поиска учетных записей о 86773 книгах (Рис. 4). Посетитель сайта формирует запрос по 6 полям и ключевым значениям с учетом любой логики. Запрос отрабатывается СУБД. Результат выводится в окне браузера.

Использование подобных приложений эффективно в случаях:
— большого числа документов, когда неэффективен лишь контекстный поиск, требуется индексация по различным признакам и внесение дополнительной логики;
— широкого ассортимента товаров и услуг.

технологии от Microsoft (на примере ASP)

Рассмотрим теперь другой механизм, организующий сетевое взаимодействие между приложениями, использование которого также позволяет удаленному посетителю вашего сайта работать с большими объемами документов. Бессмысленно говорить о "явных преимуществах" CGI и PHP, используемых в Unix-системах или ASP в операционных системах от Microsoft.

/* Имейте в виду, что обе эти технологии за последние годы изрядно «окроссплатформились» — CGI поддерживается всеми приличными веб-серверами под Windows, многие из них дружат и с PHP, и наоборот — ASP вполне успешно работает под *nix. Не забывайте также о существовании Windows-реализации «традиционно юниксового» веб-сервера Apache — он также поддерживает все подряд ;) — прим. ред. */

Можно приводить множество примеров корпоративных сайтов, где применяются те или другие технологии, предоставляющие посетителю (которому все равно!) практически одинаковые сервисы. Развитие этих технологий, пожалуй, напоминает некую гонку и никто и никогда не сможет объективно оценить "кто у кого что позаимствовал" и что лучше.
Перейдем теперь к рассмотрению наиболее типичной для Microsoft технологии ASP (Active Server Pages) на примере работы IIS, MSSQL Server, ODBC и VBScript, но сначала достаточно кратко опишем все составляющие технологии.

механизм ODBC

Для взаимодействия с СУБД в Microsoft’овских операционных системах используется ODBC (Open Database Connectivity) — специальное средство для организации доступа к СУБД. Во всех современных операционных системах от Microsoft существует механизм, позволяющий с использованием графического интерфейса быстро настраивать так называемые источники данных ODBC. При указании того или иного источника, ему присваивается произвольное имя — DSN (Data Source Name) и драйвер ODBC, предназначенный для работы с той или иной СУБД (например, MSSQL Server). Важным свойством является возможность создания распределенных систем в глобальной сети. Дело в том, что при описании источника данных ODBC можно указывать "местом расположения" СУБД имя или IP-адрес сервера, физически расположенного где угодно и не обязательно на той машине, где, например, работает ваш корпоративный веб-сервер.

MSSQL Server

MSSQL Server является достаточно мощной и гибкой СУБД от Microsoft. Как и всякая современная реляционная СУБД, предназначенная для реализации приложений архитектуры "клиент-сервер", MSSQL-Server поддерживает различные форматы данных, язык SQL, хранимые процедуры и триггеры, выполняемые на сервере, имеет встроенные механизмы экспорта и импорта информации из или во внешние таблицы, механизм репликации и множество других функций, характеризующих современную СУБД.

VBScript. Доступ к СУБД

VBScript — специальный язык серверных сценариев, на котором можно "заставить запуститься и выполниться" некие процессы на сервере. Как и каждый язык VBScript имеет свой синтаксис, переменные, операторы, методы и т. д. В ядро IIS встроен механизм поддержки ASP. Данная технология может применяться не только для работы с СУБД. В любом случае одним из методов пользователь "запускает" файл *.asp, хранящийся в каталоге scripts. Особенностью данного каталога является запрещение доступа на просмотр, но разрешение на выполнение находящихся в нем приложений.

Логику работы можно описать следующим образом:
— пользователь передает некие параметры (например, сформированного запроса);
— запускается сценарий, описанный строками VBScript, которые содержит файл *.asp:
— устанавливается соединение с указанным в строках кода источником ODBC;
— передается запрос к СУБД через установленное соединение;
— сервер CУБД "отрабатывает" запрос и "возвращает результат";
— формируется динамическое содержание страницы, возвращаемой в окно веб-браузера пользователя, содержащее ответ от СУБД.

Алгоритм аналогичен приведенному в разделе "PHP", хотя пути реализации PHP и ASP совершенно различны.

Технология ASP далеко не всегда может быть использована только для работы с СУБД. Существуют и другие применения.
Лучшим показателем того или иного решения является его использование самим разработчиком. Рассмотрим пример с сайта компании Microsoft. Ниже приведена запросная форма, доступная на странице технической поддержки русскоязычного сайта. Для поиска документов используется технология ASP (Рис. 5).

Рисунок 5. Запросная форма для поиска документов сайта Microsoft

Рисунок 6. Экран терминала РБК

о платформах и стоимости решения

С одной стороны в пользу технологий Unix-систем часто приводят аргумент о "доступности и бесплатности", в противовес говоря о том, что за решения Microsoft нужно "платить больше денег".

Пока ваш сайт физически расположен на компьютере, скажем, под управлением Linux, затраты складываются из:
— стоимости аппаратного обеспечения (около $500)
— стоимости программного обеспечения (большинство составляющих бесплатны);
— стоимости подключения;
— стоимости создания, раскрутки и поддержки сайта.

Когда же вы придете к тому, что для решения ваших задач необходим, скажем, сервер SUN, сайт и все механизмы созданы в удобных для веб-использования Unix-системах, то "цена вопроса" будет вычисляться по вышеприведенной формуле, только стоимость аппаратного и программного обеспечения "несколько" возрастет.

Некоторые производители серверов (скажем HP) сделали хороший маркетинговый ход — модельный ряд оборудования поддерживает собственную Unix-систему и системы от Microsoft.

Возможно самим просчитать (или привлечь соответствующих специалистов) полную стоимость решения — корпоративного сайта, реализованного на разных программных и аппаратных платформах и выполняющего все возможные в глобальной сети функции с одинаковыми характеристиками. "Цена вопроса" не будет сильно отличаться для этих двух платформ. Но подобные расчеты необходимо производить с учетом ваших задач, возможных перспектив, и только на основе этих реальных цифр стоит делать выводы.
Может оказаться так, что для вас оптимальным не будет ни одно из вышеприведенных решений, а, возможно, лучше, быстрее, проще, эффективнее стоит разместить сайт в менее характерных для подобного использования операционных системах, но удобных именно для вашего случая (скажем Novell).

Алексей Рындин, главный инженер проектов компании Jet Infosystems.
обсуждение статьи



Сетевые решения. Статья была опубликована в номере 07 за 2003 год в рубрике технологии

©1999-2024 Сетевые решения