Asp средство создания веб серверов


Содержание

ASP.NET и разработка Web-приложений

Многие разработчики полагают, что технология ASP.NET является чем-то вроде продолжения ASP, т. е. что это, если так можно выразиться, перенесенная на платформу .NET версия ASP 3.0, несколько усовершенствованная и дополненная поддержкой новых языков. Подобное представление в корне неверно. ASP.NET является концептуально новой современной платформой, предназначенной для создания Web-приложений. Специалистами Microsoft в ASP.NET заложено все для того, чтобы сделать цикл разработки Web-приложения более быстрым, а поддержку — более простой.

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

Компилирование программного кода. Теперь написанный исходный код при первом обращении компилируется и впоследствии выполняется его скомпилированная версия. Это заметно ускоряет разработку приложений. Web-сервер сам выполняет компиляцию, и если исходный код заменить, то сервер автоматически при первом обращении к странице проведет перекомпиляцию. Тем, кто разрабатывал сервлеты и запускал их на таких Java-серверах, как tomcat, наверняка знакома сложная процедура перезапуска сервера после перекомпиляции. Приходится сначала самому компилировать сервлет, а затем прописывать его в конфигурационный файл, и при каждом изменении вновь перезагружать сервер. С ASP.NET быть разработчиком Web-приложений намного приятнее. Код выполняется быстрее, занимает меньше ресурсов, и при этом процесс разработки не усложнился. Скорее наоборот, так как в случае какого-либо сбоя можно получить полный листинг компилятора, с подробным описанием ошибки.

Библиотеки. Теперь при написании приложений можно задействовать набор компонентов, поставляемых с .NET, а он достаточно велик. Использование библиотеки классов Common Language Runtime (CLR) уменьшает количество кода, ускоряет процесс разработки, установки и переноса приложения.

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

Поддержка средств разработки. Visual Studio.NET предоставляет возможность создания и редактирования приложений в режиме WYSWYG, включает в себя средства, упрощающие разработку и перенос приложений, а также отладку сценариев. Но, несомненно, никто не отнимает права написания кода в любимом редакторе, будь то CodeWright, EditPlus или NotePad.

Языковая независимость. ASP.NET работает в рамках Common Language Runtime, что позволяет писать код на любом языке, для которого существует компилятор, поддерживающий эту технологию. Сейчас имеется поддержка для JScript, VB, Perl и C#.

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

Обработка ошибок. В связи с новыми концепциями (в частности, с компиляцией программных текстов) в ASP.NET добавлены более широкие возможности обработки ошибок. На стадии разработки можно получить полную информацию об ошибке и листинг нужного куска кода. Для обработки ошибок, которые могут случиться во время выполнения приложения, можно использовать новую директиву ErrorPage.

Объектно-ориентированная разработка. Использование C# позволяет в полной мере задействовать концепции, методы и шаблоны объектно-ориентированной разработки.

Повторное применение. Помимо возможностей объектно-ориентированного программирования, ASP.NET представляет новые технологии, такие, как пользовательские элементы управления (user controls), новую концепцию установки (bin) и другие возможности.

Набор серверных компонентов ASP.NET. В комплект ASP.NET входят различные серверные компоненты: от самых простых (кнопка, список) до нестандартных и более функционально богатых (календарь).

Структура

Теперь немного поговорим о внутренней организации ASP.NET. Если продолжить сравнение с ASP, надо отметить, что в связи с описанными нововведениями внутренняя организация не могла остаться прежней. Если ASP представляла собой ISAPI DLL, с набором компонентов и несколькими системными файлами, то ASP.NET — часть глобальной платформы .NET. Создание этой платформы — важнейшее направление новой стратегии Microsoft; она соответствует всем современным стандартам разработки как для распределенных систем, так и для настольных приложений. На Рисунке 1 приведена схема, на которой показано взаимодействие различных частей .NET. Взаимодействие строится следующим образом: библиотека .NET Framework предоставляет интерфейс приложениям, а сама при этом взаимодействует непосредственно с операционной системой. Выше лежит интерфейс приложений ASP.NET, на котором, в свою очередь, базируются Web-формы (страницы ASP.NET) и Web-службы. Интерфейс .NET Framework позволяет стандартизировать обращение к системным вызовам и предоставляет среду для более быстрой и удобной разработки.

Рисунок 1. Схема работы .NET.

Intermediate Language — общий промежуточный язык, в который компилируется любой код под .NET, независимо от того, был ли он написан на C#, VB.NET или другом языке, — позволяет создавать системы на любом языке. И независимо от того, используется ли C#, VB.NET, JScript.NET или Perl.NET, на выходе получается готовый к выполнению код. На Рисунке 2 показана схема процесса компиляции и выполнения приложения ASP.NET. При запросе страницы проверяется, есть ли на диске ее скомпилированная версия и не обновлялась ли страница с момента компиляции. Если есть актуальная версия, она подгружается с диска и выполняется средой .NET. Результат выполнения страницы отсылается клиенту. Если же такая версия не была найдена, страница сначала компилируется. Для этого используются соответствующие компиляторы, которым на вход подается исходный код самой страницы, ее code-behind (т. е. непосредственно исполняемый код, стоящий за Web-формой, который написан отдельно — он может отсутствовать) и код элементов управления. Полученный в результате код сохраняется на диске. В некоторых случаях, а именно, когда в кэше имеется сохраненный результат обработки страницы, MSIL-код даже не приходится выполнять.

Рисунок 2. Схема работы ASP.NET.

На практике

Данный процесс кажется сложным, но разработчики всей этой сложности не замечают — процедура создания страниц ASP.NET достаточно проста. В подтверждение своих слов я хочу создать простейшую ASP.NET-форму. Для написания формы нужно сначала установить, собственно, ASP.NET. Установка начинается с получения комплекта .NET Framework SDK. Размер дистрибутива достигает 90 Мбайт, однако имеется возможность загрузки SDK в виде набора маленьких файлов. После загрузки требуется запустить файл setup.exe и следовать его инструкциям. ASP.NET распространяется как составная часть .NET SDK — сборника всех технологий, необходимых для создания, сборки и тестирования приложений, основанных на .NET Framework. Перед установкой ASP.NET следует инсталлировать Internet Explorer 6. NET SDK можно взять и с компакт-диска Windows Component Update из Visual Studio.NET. Если VS.NET на сервере установлен, то для того, чтобы запускать приложения ASP.NET, уже все есть.

Первую форму мы создадим с привлечением минимальных средств — нам падобится .NET Framework, Internet Information Services 5 и текстовый редактор. Создание формы начнем с написания приложения на Web-сервере. Создадим папку, в которой будет находиться приложение. Предположим, C:SampleApplication. Затем запустим Internet Services Manager. Создадим на сервере новый виртуальный каталог. Для этого нужно вызвать контекстное меню Web-сервера и выбрать пункт NewVirtual Director. На экране появится мастер Virtual Directory Creation Wizard. С его помощью нужно указать имя нового приложения, пусть это будет CustomApp. Далее следует указать каталог, в котором будут находиться файлы приложения. В нашем случае это C:SampleApplication. Следующий шаг — назначить права доступа к приложению (их можно оставить заданными по умолчанию). Далее в полученной папке создадим файл Default.aspx (см. Листинг 1).

Листинг 1. Default.aspx.

Опишу вкратце код этого листинга.

В первой строчке стоит директива @ Page, которая задает параметры страницы. Здесь, в частности, указано, что мы пишем на C#, что на странице у нас будет проводиться дополнительная программная обработка, определенная в файле Default.aspx.cs (мы его еще напишем), а наследоваться страница будет от класса Default (который будет описан в файле Default.aspx.cs).

Далее следует форма. Все серверные элементы управления должны быть включены в серверную форму (

Как правильно создать сервер с использованием ASP.NET Web API?

Судя по вашим требованиям (агреграция данных с веб-ресурса и складирование их куда-либо), то что у вас должно получиться в итоге — это скорее «демон», а не «сервер». Для решения основной задачи вам нужен веб-клиент (в дотнете их достаточно, разных по свежести и актуальности, например Microsoft.AspNet.WebApi.Client, пример использования), и какой-нибудь способ выполнять код на сервере/хостинге в режиме демона/сервиса. WebAPI вы можете применить разве что для реализации web-управления вашим агрегатором — например обрабатывать GET и PUT/POST запросы на урл /status для получения и изменения статуса (запуск/остановка/приостановка) агрегатора, или использовать POST /tasks и GET /tasks/ для добавления вашему агрегатору новых заданий и получения информации об их выполнении.

Если вы пользуетесь Azure, можете посмотреть на Worker Role — это как раз тот тип приложений, что вам нужен (выполнение задач в бэкграунде, например кодирование видео). Вот в этой статье есть неплохой пример, с которого можно начать — воркер с собственным рабочим циклом (в вашем случае это будут запросы через упомянутый выше веб-клиент с засыпанием на час после каждой процедуры агрегации) плюс небольшое API, сможете задеплоить на свой аккаунт в Ажуре.

Не забывайте про особенности работы в многопоточном/асинхронном режиме (здесь WebAPI работает независимо от основного рабочего цикла) и потребление ресурсов облака.

Веб-серверы их функции. Методы взаимодействия с клиентом. Виды веб-серверов. Open Source WEB сервер Apache и его характеристики. Характеристики IIS (Internet Information Server от Microsoft)

Назад [Выбор лекции]

Сегодня Internet/Intranet устойчиво ассоциируется с Web: каждая страница и графическое изображение поступают с какого-либо Web-сервера. Внимание публики приковано к Web-броузерам, в частности NetscapeNavigator и MicrosoftInternetExplorer, но без Web-серверов не было бы ни «Всемирной паутины», ни корпоративных интрасетей.

Основные функции Web-серверов

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

Функции, выполняемые Web-серверами:

· прием запроса от Web-браузера по протоколу HTTP с использованием TCP/IP;

· поиск и отсылка файла гипертекста или документа в браузер по HTTP;

· обслуживание запросов mailto, ftp, telnet и др.;

· запуск прикладных программ на Web-сервере с передачей и возвратом параметров обработки через интерфейс CGI;

· обслуживание навигационных карт изображения imagemap;

· служит источником загружаемых программ на языке Java;

· контроль доступа на основе имен и паролей доступа;

· ведение регистрационного журнала;

· административное и оперативное управление сервером.

Web-браузеры общаются с Web-серверами через протокол передачи гипертекстовых сообщений (HypertextTransferProtocol, HTTP), простой протокол запросов и ответов для пересылки информации с использованием TCP/IP. Web-сервер получает запрос, находит файл, посылает его браузеру и потом разрывает соединение. Имеющаяся на странице графика обрабатывается точно так же. Затем настает очередь браузера вывести на экран загруженный из сети HTML-документ.

Хотя обычно Web-серверы содержат HTML-страницы и графику, на них могут храниться любые файлы, в том числе текстовые, документы текстовых процессоров, видео- и аудиоинформация. Сегодня, если не считать анкет, заполняемых пользователем, основная часть трафика Web передается в одном направлении — браузеры читают файлы с Web-сервера, — но положение изменится после повсеместного принятия описанного в проекте HTTP 1.1 метода put, позволяющего записывать файлы на Web-сервер. Сегодня метод put используется в основном создателями страниц Web, но в перспективе он может пригодиться и конечным пользователям для обратной связи с информационными узлами.

Статический веб-сервер , или стек, состоит из компьютера (железо) с сервером HTTP (ПО). Мы называем это “статикой”, потому что сервер посылает размещенные на нем файлы в браузер “как есть”.

Динамический веб-сервер состоит из статического веб-сервера плюс дополнительного программного обеспечения, наиболее часто сервером приложений и базы данных. Мы называем его “динамический”, потому что сервер приложений изменяет исходные файлы перед отправкой в ваш браузер по HTTP.

Открытое программное обеспечение — альтернативное название свободного программного обеспечения, введённое из ‐ за неоднозначности выражения «free software» в английском языке. Выражение означает доступность произведения и материалов, использованных для его создания, по свободной/открытой лицензии.

Apache HTTP-сервер (назван именем группы племён североамериканских индейцев апачей; кроме того, является сокращением от англ. a patchy server; среди русских пользователей общепринято искажённое апа́ч) — свободный веб-сервер. Apache является кроссплатформенным ПО, поддерживает операционные системы Linux, BSD, Mac OS, Microsoft Windows, Novell NetWare, BeOS.

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

Сервер был написан в начале 1995 года и считается, что его имя восходит к шуточному названию «a patchy» (англ. «заплаточка»), так как он устранял ошибки популярного тогда сервера Всемирной паутины NCSA HTTPd 1.3. В дальнейшем, с версии 2.х, сервер был переписан заново и теперь не содержит кода NCSA. Веб-сервер Apache разрабатывается и поддерживается открытым сообществом разработчиков под эгидой Apache Software Foundation и включён во многие программные продукты, среди которых СУБД Oracle и IBM WebSphere.

Ядро Apache включает в себя основные функциональные возможности, такие как обработка конфигурационных файлов, протокол HTTP и система загрузки модулей. Ядро (в отличие от модулей) полностью разрабатывается Apache Software Foundation , без участия сторонних программистов. Теоретически, ядро apache может функционировать в чистом виде, без использования модулей. Однако, функциональность такого решения крайне ограничена. Ядро Apache полностью написано на языке программирования C .

Система конфигурации Apache основана на текстовых конфигурационных файлах . Имеет три условных уровня конфигурации:

· Конфигурация сервера (httpd.conf).

· Конфигурация виртуального хоста (httpd.conf c версии 2.2, extra/httpd-vhosts.conf).

· Конфигурация уровня директории (.htaccess).

Имеет собственный язык конфигурационных файлов, основанный на блоках директив. Практически все параметры ядра могут быть изменены через конфигурационные файлы, вплоть до управления MPM. Большая часть модулей имеет собственные параметры. Часть модулей использует в своей работе конфигурационные файлы операционной системы (например /etc/passwd и /etc/hosts ). Помимо этого, параметры могут быть заданы через ключи командной строки .

Интеграция с другим ПО и языками программирования

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

К ним относятся: PHP (mod_php), Python ( mod python , mod wsgi ).

Кроме того, Apache поддерживает механизмы CGI и FastCGI , что позволяет исполнять программы на практически всех языках программирования, в том числе C , C++ , Lua , sh , Java .

Безопасность

Apache имеет различные механизмы обеспечения безопасности и разграничения доступа к данным. Основными являются:

· Ограничение доступа к определённым директориям или файлам.

· Механизм авторизации пользователей для доступа к директории на основе HTTP-аутентификации (mod_auth_basic) и digest-аутентификации (mod_auth_digest).

· Ограничение доступа к определённым директориям или всему серверу, основанное на IP-адресах пользователей.

· Запрет доступа к определённым типам файлов для всех или части пользователей, например, запрет доступа к конфигурационным файлам и файлам баз данных.

· Существуют модули, реализующие авторизацию через СУБД или PAM.

В некоторых MPM-модулях присутствует возможность запуска каждого процесса Apache используя различные uid и gid с соответствующими этим пользователям и группам пользователей.

Также, существует механизм suexec , используемый для запуска скриптов и CGI -приложений с правами и идентификационными данными пользователя.

Для реализации шифрования данных, передающихся между клиентом и сервером используется механизм SSL , реализованный через библиотеку OpenSSL . Для удостоверения подлинности веб-сервера используются сертификаты X.509 .

Существуют внешние средства обеспечения безопасности, например , mod_security .

Интернационализация

Начиная с версии 2.0 появилась возможность определения сервером локали пользователя. Сообщения об ошибках и событиях, посылаемые браузеру, теперь представлены на нескольких языках и используют SSI технологию.

Также, можно реализовать средствами сервера отображение различных страниц для пользователей с различными локалями. Apache поддерживает множество кодировок, в том числе Unicode , что позволяет использовать страницы, созданные в любых кодировках и на любых языках.

Обработка событий

Администратор может установить собственные страницы и обработчики для всех HTTP ошибок и событий, таких как 404 (Not Found) или 403 (Forbidden). В том числе существует возможность запуска скриптов и отображения сообщений на разных языках.

IIS (Internet Information Services, до версии 5.1 — Internet Information Server) —проприетарный набор серверов для нескольких служб Интернета от компании Майкрософт. IIS распространяется с операционными системами семейства Windows NT.

Основным компонентом IIS является веб-сервер, который позволяет размещать в Интернете сайты. IIS поддерживает протоколы HTTP, HTTPS, FTP, POP3, SMTP, NNTP. По данным компании Netcraft на июнь 2015 года, почти 22 млн сайтов обслуживаются веб-сервером IIS, что составляет 12,32 % от общего числа веб-сайтов.

Проприета́рное программное обеспечение (англ. proprietary software; от proprietary — частное, патентованное, в составе собственности и software — программное обеспечение) — программное обеспечение, являющееся частной собственностью авторов или правообладателей и не удовлетворяющее критериям свободного ПО (наличия открытого программного кода недостаточно). Правообладатель проприетарного ПО сохраняет за собой монополию на его использование, копирование и модификацию, полностью или в существенных моментах. Обычно проприетарным называют любое несвободное ПО, включая полусвободное.

Реализация веб-приложений для IIS


Веб-сервер IIS поддерживает несколько различных технологий создания веб-приложений :

· ASP.NET — разработанная Microsoft технология; для IIS это — основное на сегодняшний день средство создания веб-приложений и веб-служб. IIS 6.0 поставляется вместе с операционными системами, в которые также изначально входит .NET Framework, так что поддержка ASP.NET как будто уже встроена в IIS 6.0; для более ранних версий необходимо отдельно загрузить и установить.NET Framework.

· ASP — предшествовавшая ASP.NET технология создания динамических веб-страниц на основе сценариев. Входит в поставку IIS начиная с версии 3.0.

· CGI — стандартная межплатформенная низкоуровневая технология создания динамических веб-страниц.

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

· ISAPI — низкоуровневая технология, аналогичная интерфейсу модулей Apache, предоставляющая полный доступ ко всем возможностям IIS, возможность разработки веб-приложений в машинном коде и возможность переопределения части функций IIS и добавления к нему функций, как связанных с генерацией контента, так и не связанных с этим. Подсистема исполнения скриптов ASP и подсистема ASP.NET выполнены как модули ISAPI.

· SSI — включение в одни страницы текста из других страниц. Строго говоря, веб-приложением не является, поскольку IIS поддерживает лишь ограниченный набор возможностей и без того малофункционального SSI. В частности, IIS5 поддерживает только статическое включение и игнорирует команды условного ветвления.

Сам сервер поддерживает только CGI, FastCGI, ISAPI и SSI. Все остальные технологии являются надстройками, работающими через CGI, FastCGI или ISAPI. При помощи CGI приложения для IIS могут разрабатываться на основе практически любых, в том числе сторонних, инструментов, допускающих запись в стандартный поток вывода и чтение переменных среды — Perl , C / С++ и даже средствами интерпретатора командной строки Cmd.exe .

Технология ISAPI позволяет, с одной стороны, создавать специальные приложения для IIS, требующие особенно тесного взаимодействия с механизмом сервера, а с другой стороны, является удобной платформой для организации эффективного взаимодействия IIS с другими технологиями разработки веб-приложений — например, PHP и Perl .

Asp средство создания веб серверов

Опубликовано: Февраль 2012 г.

Обновлено: Февраль 2012 г.

Назначение: Windows Server 2012, Windows Server 2012 R2

В этом документе описан процесс установки веб-сервера IIS и его настройки для обслуживания статического содержимого. Статическим содержимым является веб-страница (HTML), которая доставляется пользователю в том виде, в котором она хранится. И наоборот, динамическое содержимое формируется веб-приложением, таким как ASP.NET, классическим приложением ASP или приложением PHP. Статическое содержимое отображает одинаковые сведения для всех пользователей; динамическое содержимое может отображать сведения о конкретном пользователе, например имя пользователя.

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

Содержание документа

Чтобы получить максимум от этого учебника, необходимо иметь компьютер, который работает под управлением одной из следующих операционных систем:

    Windows Server® 2012

Для установки служб IIS и работающих на их базе приложений можно использовать установщик веб-платформы. Установщик веб-платформы устанавливает последние версии доступных предложений для веб-платформы, включая обновления. Дополнительные сведения об установщике веб-платформы см. в статье Дополнительные сведения об установщике веб-платформы и его установке. Если для установки служб IIS используется установщик веб-платформы, шаг 2 можно пропустить.

Эту процедуру можно также выполнить с помощью пользовательского интерфейса Windows или командной строки.

На начальной странице щелкните плитку Диспетчер сервера, а затем нажмите кнопку ОК.

В диспетчере сервера выберите Панель мониторинга и щелкните Добавить роли и компоненты.

В мастере добавления ролей и компонентов на странице Перед началом нажмите кнопку Далее.

На странице Выбор типа установки выберите Установка ролей или компонентов и нажмите кнопку Далее.

На странице Выбор целевого сервера выберите Выбор сервера из пула серверов, выберите имя своего компьютера и нажмите кнопку Далее.

На странице Выбор ролей сервера укажите Веб-сервер (IIS) и нажмите кнопку Далее.

На странице Выбор компонентов просмотрите выбранные по умолчанию компоненты, а затем нажмите кнопку Далее.

На странице Роль веб-сервера (IIS) нажмите кнопку Далее.

На странице Выбор служб ролей просмотрите выбранные службы и нажмите кнопку Далее.

Примечание
Установите службы ролей IIS 8 по умолчанию для веб-сервера статического содержимого.

На странице Подтверждение выбранных элементов для установки подтвердите свой выбор, а затем нажмите кнопку Установить.

На странице Ход выполнения установки убедитесь, что установка роли веб-сервера (IIS) и требуемых служб ролей успешно завершена, а затем нажмите кнопку Закрыть.

Чтобы убедиться, что службы IIS успешно установлены, введите в веб-браузере следующее:

http://localhost

Должна отобразиться страница приветствия служб IIS по умолчанию.

На начальной странице введите Панель управления, а затем в результатах поиска щелкните значок Панель управления.

В панели управления выберите Программы, а затем Включение и отключение компонентов Windows.

В диалоговом окне Компоненты Windows щелкните Службы IIS, а затем нажмите кнопку ОК.

Будет установлен набор компонентов IIS 8 по умолчанию. Установите только компоненты по умолчанию для веб-сервера статического содержимого.

Чтобы убедиться, что службы IIS успешно установлены, введите в веб-браузер следующее:

http://localhost

Должна отобразиться страница приветствия служб IIS по умолчанию.

В командную строку с повышенными привилегиями или в скрипт введите следующую команду:

Start /w pkgmgr /iu:IIS-WebServerRole;IIS-WebServer;IIS-CommonHttpFeatures;IIS-StaticContent;IIS-DefaultDocument;IIS-DirectoryBrowsing;IIS-HttpErrors;IIS-HealthAndDiagnostics;IIS-HttpLogging;IIS-LoggingLibraries;IIS-RequestMonitor;IIS-Security;IIS-RequestFiltering;IIS-HttpCompressionStatic;IIS-WebServerManagementTools;IIS-ManagementConsole;WAS-WindowsActivationService;WAS-ProcessModel;WAS-NetFxEnvironment;WAS-ConfigurationAPI

На этом шаге поясняется, как добавить веб-сайт для служб IIS с помощью пользовательского интерфейса диспетчера служб IIS или путем запуска команд Appcmd.exe в окне командной строки

Откройте диспетчер служб IIS.

    При работе в Windows Server 2012 на начальной странице щелкните Диспетчер сервера, а затем нажмите кнопку ОК. В диспетчере сервера выберите меню Сервис, а затем выберите Диспетчер служб IIS.

При работе в Windows 8 на начальной странице введите Панель управления, а затем в результатах поиска щелкните значок Панель управления. На экране Панель управления выберите Системы и безопасность, затем Администрирование, после чего выберите Диспетчер служб IIS.

На панели Соединения правой кнопкой мыши щелкните узел Сайты, а затем выберите Добавить веб-сайт.

В диалоговом окне Добавление веб-сайта в поле Имя сайта введите понятное имя веб-сайта.

Щелкните Выбрать, если нужно выбрать пул приложений, отличный от пула, указанного в поле Пул приложений. В диалоговом окне Выбор пула приложений в списке Пул приложений выберите пул приложений, а затем нажмите кнопку ОК.

В поле Физический путь введите физический путь к папке веб-сайта или нажмите кнопку обзора (. ), чтобы перейти к файловой системе для поиска папки.

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

В списке Тип выберите протокол для веб-сайта.

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

В поле Порт введите номер порта.

Дополнительно введите имя заголовка узла для веб-сайта в поле Заголовок узла.

Если не следует вносить изменения в параметры веб-сайта и следует сделать его незамедлительно доступным, установите флажок Запустить веб-сайт немедленно.

Нажмите кнопку ОК.

В командной строке с повышенными привилегиями или в скрипте используйте следующий синтаксис:

Примечание
Чтобы этот синтаксис работал, необходимо либо находиться в следующем каталоге, либо иметь каталог в пути: %windir%\system32\inetsrv

appcmd add site /name:string /id:цел_чис_без_зн /physicalPath:строка /bindings:строка

Переменная name является именем, а переменная id — положительным целым числом, которое следует назначить сайту. Переменные name и id являются единственными переменными, которые требуются для добавления сайта с помощью команды appcmd. Но при добавлении сайта без задания значений атрибутов bindings и physicalPath сайт будет невозможно запустить.

Переменная physicalPath является абсолютным путем к содержимому сайта в файловой системе.

Переменная bindings содержит сведения, используемые для доступа к сайту. Она должна иметь вид протокол/IP_адрес:порт:заголовок_узла. Например, если указать для веб-сайта привязку http/*:85: , то это будет означать, что он прослушивает HTTP-запросы на порту 85 для всех IP-адресов и доменных имен (также известных как заголовки узлов или имена узлов). С другой стороны, привязка http/*:85: marketing.contoso.com настраивает сайт для прослушивания HTTP-запросов на порту 85 для всех IP-адресов и доменного имени marketing.contoso.com.

Чтобы добавить веб-сайт contoso с идентификатором 2 и содержимым в папке c:\contoso, который прослушивает HTTP-запросы на порту 85 для всех IP-адресов и доменного имени marketing.contoso.com, введите в командную строку следующее:

appcmd add site /name:contoso /id:2 /physicalPath:c:\contoso /bindings:http/*:85:marketing.contoso.com

Анонимный доступ предоставляет пользователям доступ к общедоступным зонам веб-сайта без запроса имени пользователя и пароля. Анонимную проверку подлинности можно настроить с использованием учетной записи анонимного пользователя по умолчанию (IUSR) или можно настроить учетную запись локального пользователя для анонимных пользователей.

В представлении Просмотр возможностей диспетчера служб IIS дважды щелкните пункт Проверка подлинности.

На странице Проверка подлинности выберите Анонимная проверка подлинности.

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

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

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

Если нужно, чтобы процессы служб IIS запускались с помощью учетной записи, указанной в настоящий момент на странице свойств пула приложений, выберите Удостоверение пула приложений. По умолчанию этим удостоверением является учетная запись IUSR.

Важно
При использовании учетной записи IUSR анонимным пользователям предоставляется возможность с помощью этой учетной записи осуществлять доступ ко всей внутренней сети.

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

Используйте следующий синтаксис, чтобы изменить учетную запись по умолчанию для анонимного доступа:

appcmd set config /section:anonymousAuthentication /userName:строка /password:строка

Переменная username является учетной записью, используемой службами IIS для анонимного доступа, а переменная password — это пароль, который хранится в файле конфигурации по умолчанию в зашифрованном виде. Например, чтобы использовать учетную запись Moe и пароль pssword1 для анонимного доступа, в командной строке введите следующее:

appcmd set config /section:anonymousAuthentication /userName:Moe /password:pssword1


Если клиентский запрос к веб-сайту не содержит имени документа, службы IIS ищут файл, имя которого определено в качестве документа по умолчанию. Обычно именем документа по умолчанию является Default.htm. Можно определить список имен документов по умолчанию в порядке старшинства.

В представлении Просмотр возможностей диспетчера служб IIS дважды щелкните пункт Документ по умолчанию.

На панели Действия нажмите кнопку Добавить.

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

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

Документ по умолчанию также можно выбрать в списке и на панели Действия нажать кнопку Удалить, чтобы удалить любые имена файлов, которые не следует использовать в качестве документов по умолчанию.

Чтобы добавить имя файла в список документов по умолчанию, используйте следующий синтаксис:

appcmd set config /section:defaultDocument /+files.[value=’строка‘]

Переменная string является добавляемым в список именем файла. Например, чтобы добавить файл home.html в список документов по умолчанию, в командной строке введите следующее:

appcmd set config /section:defaultDocument /+files.[value=’home.html’]

Чтобы удалить файл home.html из списка документов по умолчанию, в командной строке введите следующую команду и нажмите клавишу ВВОД:

appcmd set config /section:defaultDocument /-files.[value=’home.html’]

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

В представлении Просмотр возможностей диспетчера служб IIS дважды щелкните пункт Сжатие.

Выберите Включить сжатие статического содержимого для сжатия службами IIS статического содержимого.

В поле Статическое содержимое настройте следующие параметры:

    Выберите Сжимать только файлы размером более (в байтах) и введите минимальный размер файла, при котором файлы будут сжиматься службами IIS (необязательный шаг). Размер по умолчанию — 256 байт.

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

Кроме того, можно установить флажок Лимит места на диске на пул приложений (в МБ) и ввести максимальный размер дискового пространства (в мегабайтах), отводимого для каждого пула приложений, которое будет использоваться службами IIS при сжатии статического содержимого. Например, если существует 20 пулов приложений на сервере и параметр Лимит места на диске равен 100, максимальный объем дискового пространства будет равен 2 ГБ. Если выбрать параметр Лимит места на диске на пул приложений (в МБ) и ввести в текстовом поле определенное значение, то при достижении порогового значения службы IIS автоматически очистят временную папку в соответствии с правилом удаления наиболее давно использовавшихся файлов. Значение по умолчанию — 100 МБ для каждого пула приложений.

Нажмите кнопку Применить на панели Действия.

Чтобы включить сжатие HTTP статического содержимого, в командной строке введите следующую команду и нажмите клавишу ВВОД:

appcmd set config /section:urlCompression /doStaticCompression:True

Чтобы настроить параметры сжатия статического содержимого, используйте следующий синтаксис:

appcmd set config /section:urlCompression /minFileSizeforComp:цел_чис /directory:строка /maxDiskSpace:цел_чис

Переменная minFileSizeforComp служит для задания минимального размера файла в байтах, подлежащего сжатию. Значение по умолчанию — 256. Переменная directory служит для указания каталога, где временно сохраняются и кэшируются сжатые версии статических файлов. По умолчанию используется следующая папка:

%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files

Переменная maxDiskSpace служит для определения максимального количества места на диске (в мегабайтах) для каждого пула приложений, которое будет использоваться службами IIS при сжатии статического содержимого. Значение по умолчанию — 100 МБ для каждого пула приложений.

Тщательно проверьте веб-сайт, чтобы удостовериться, что он работает надлежащим образом. Затем рассмотрите возможность настройки следующих функций.

    Чтобы облегчить устранение проблем или оптимизацию производительности веб-сервера, настройте ведение журнала служб IIS. Инструкции см. в статье Настройка ведения журнала в IIS.

Для повышения защищенности веб-сервера настройте фильтрацию запросов. Инструкции см. в статье Настройка фильтрации запросов в IIS.

Создание серверных компонентов для ASP-приложений

ASP (Active Server Pages) — технология создания Web-страниц, содержащих код, выполняемый Web-сервером (подробнее об истории и современном состоянии этой технологии см. в статье Алексея Федорова «Технология ASP+», № 9’2000, а о практических вопросах применения ASP см. в цикле статей Рубена Садояна , № 9-11’2000. — Прим. ред.). Современная версия данной технологии позволяет использовать в ASP-страницах сторонние серверные компоненты, созданию которых и посвящена данная статья.

В качестве средства разработки ASP-объектов будет использоваться Borland Delphi 5, Enterprise-версия которого позволяет это делать. К сожалению, в документации, поставляемой с Delphi 5, крайне скупо сказано о назначении, последовательности создания и тестирования серверных объектов ASP; кроме того в комплекте поставки Delphi 5 отсутствуют примеры работающих ASP-объектов. Настоящая публикация частично восполняет эти пробелы.

Клиентское приложение, использующее ASP-объекты, представляет собой HTML-документ (этот документ может также включать клиентский и серверный коды на скриптовых языках. — Прим. ред.), который в принципе можно прочесть с помощью любого Web-браузера. Обычно такие HTML-документы размещаются на каком-либо Web-сервере (как правило, это Microsoft Internet Information Server версии 3.0 и выше). Web-сервер, получив требование о предоставлении документа, считывает его из локального хранилища и передает клиенту, при этом часть информации вносится в документ Web-сервером динамически; сам же Web-сервер может обращаться к ASP-объектам, входящим в комплект поставки Internet Information Server или созданным сторонними разработчиками. Обычно Web-документы, содержащие обращения к ASP-объектам, имеют расширение *.asp. Примеры подобных документов можно найти в каталогах, создаваемых при установке Internet Information Server.

Некоторые Web-дизайнеры полагают, что технология ASP заключается, грубо говоря, в замене расширения *.htm в HTML-файле на расширение *.asp. Действительно, при работе с Internet Information Server изменение расширения файла позволит корректно отображать находящийся в нем HTML-документ. Однако на самом деле технология ASP — это обращение к методам специальных объектов, называемых ASP-объектами и представляющих собой COM-серверы. Типичный пример обращения к ASP-серверу из HTML-документа, представляющий собой фрагмент кода на языке VBScript, выглядит следующим образом:

Несмотря на наличие кода на скриптовых языках (VBScript или JavaScript), ASP-страница может быть доступна клиентам, работающим в других операционных системах, например в UNIX. На первый взгляд это может показаться странным, поскольку UNIX-компьютеры не используют ни Basic, ни тем более VBScript. Но дело в том, что скрипты, содержащиеся в ASP-документах, выполняются на сервере, а клиент получает HTML-документ, который является результатом выполнения этого скрипта.

Серверные объекты ASP выполняются в адресном пространстве Internet Information Server (Internet Information Services), работающего под управлением операционной системы Windows NT (Windows 2000) либо Windows 98.

По существу ASP-сервер представляет собой сервер автоматизации, в котором предопределено несколько интерфейсов; среди них — IRequest и IResponse. Интерфейс IRequest содержит методы, вызов которых позволяет передать параметры, введенные пользователем и заполненные на клиенте (об этом будет рассказано ниже). IResponse содержит методы, вызов которых приводит к формированию HTML-документа и передаче данного документа пользователю. Наличие этих признаков делает ASP-сервер похожим на CGI-приложения и ISAPI/NSAPI DLLl (далее — Web-приложения). Идеология выполнения методов в ASP-объекте и Web-приложениях также аналогична: сначала анализируется запрос клиента, затем динамически формируется отклик. Различие заключается в том, что Web-приложения формируют HTML-документ целиком, в то время как отклик ASP-объекта вставляется в исходную HTML-страницу. Например, если документ ASP представлен в виде:

и результат выполнения метода ScriptContent возвращает строку ‘First call to ASP server’, то пользователь, получивший данный документ, увидит следующее (рис. 1).

Иными словами, отклик ASP-объекта добавляется к HTML-документу. В одном документе допустимо обращение к нескольким ASP-объектам, и результат их отклика формируется в единый документ — этого невозможно достичь при использовании Web-приложений. Впрочем, имеется одно ограничение: набор ASP-серверов, к которым производится обращение из одного документа, должен быть зарегистрирован на одном и том же Internet Information Server — нельзя обращаться по различным адресам для формирования одного HTML-документа.

Как было сказано выше, Enterprise-версия Delphi 5 содержит эксперт для создания ASP-объектов. Для запуска этого эксперта следует выбрать пункт главного меню File|New среды разработки Delphi, а затем со страницы ActiveX репозитария объектов — пиктограмму Active Server Object.

ASP-сервер, содержащий ASP-объекты, реализуется в виде как исполняемых файлов *.exe, так и библиотек *.dll — это разрешается при создании серверов автоматизации. ASP-сервер, реализованный в виде исполняемого файла, запускается каждый раз в ответ на запрос клиента. При использовании внутренних (in-process) ASP-серверов, выполненных в виде динамически загружаемых библиотек, один экземпляр DLL, загруженный в адресное пространство Internet Information Server, способен обслуживать одновременно нескольких клиентов. При этом возможно либо создание отдельного экземпляра COM-объекта для каждого клиента, либо обслуживание нескольких клиентов единственным экземпляром COM-объекта. Это зависит от модели работы в потоках (Threading Model), выбранной при заполнении диалога, который появляется при запуске эксперта создания ASP-объектов.

Рассмотрим теперь, каким образом работает ASP-сервер на конкретном примере создания внутреннего (in-process) ASP-сервера. Для простоты ограничимся сервером, который выполняет один запрос. Итак, выберем пункт главного меню File|New среды разработки Delphi, со страницы ActiveX репозитария объектов — пиктограмму ActiveX Library и нажмем кнопку OK. В итоге получим новый проект, который сохраним, например, под именем ASP01. Теперь снова выберем пункт главного меню File|New среды разработки Delphi, со страницы ActiveX репозитария объектов — пиктограмму Active Server Object. В появившемся диалоге определим имя будущего COM-класса, например Test.

Поскольку мы создаем in-process-сервер, параметр Instancing не имеет значения — он важен только для исполняемых файлов. Зато в данном случае серьезную роль играет параметр Threading Model. При значении этого параметра равным Single работа сервера неэффективна, поскольку при одновременном обращении к нему нескольких клиентов сервер выполняет запросы последовательно, и если один из клиентов обращается с длительным запросом, то остальные вынуждены ожидать его окончания, даже если их запросы не требуют большого количества времени для выполнения. При этом у пользователей создается впечатление «зависания» браузера, что зачастую приводит к попыткам разными методами прервать задачу. Значение Apartment приводит к разделению запросов клиентов по потокам, причем для каждого клиента будет создан свой экземпляр COM-объекта, в данном примере — класса TTest. При этом при написании методов COM-класса не требуется защиты переменных класса внутри потоков — клиент может свободно модифицировать их, что упрощает разработку кода приложения. Недостаток данной модели состоит в следующем: проект оказывается ресурсоемким и переменные класса инициализируются при каждом обращении, что увеличивает время отклика на запрос. Этих недостатков лишена модель Free, в которой единственный экземпляр COM-объекта обслуживает нескольких клиентов. Однако возможность изменения данных внутри COM-объекта влечет за собой необходимость защиты общих переменных от их изменений из разных потоков, что существенно усложняет процедуру реализации кода приложения и является потенциальным источником трудноуловимых ошибок. Как правило, эту модель используют в ASP-серверах, которые только предоставляют данные, но не позволяют клиенту их модифицировать.

Группа элементов управления Active Server Type дает возможность выбрать назначение ASP-сервера. Если сервер планируется использовать под управлением Internet Information Server версий 3 или 4, то выбирается опция Page Level Events Methods. Объекты, созданные с применением этой опции, можно будет использовать и с Internet Information Services 5.0, но в этом случае опция Object Context позволит создать объект, работающий более эффективно. Эту же опцию следует выбирать, если работой ASP-сервера управляет Microsoft Transaction Server (Windows NT) или Component Services (Windows 2000). Фактически Internet Information Services 5.0 также управляет этим сервером при помощи Component Services, так как оба этих продукта тесно интегрированы.

Опцию Generate a Template Test Script for this object следует оставлять всегда включенной. В этом случае Delphi создаст небольшой HTML-документ, который можно использовать для тестирования ASP-сервера.

Заполнив опции диалога, необходимо нажать кнопку OK, после чего будет создан файл реализации интерфейсов Unit1.pas, который следует сохранить (например, под именем U1_01). Кроме того, будет создана библиотека типов, появятся ее редактор и файл, описывающий библиотеку типов, в данном примере — TEST_TLB.pas.

Если была выбрана опция Page Level Events Methods (как в нашем примере), то библиотека типов будет содержать два предопределенных метода — OnStartPage и OnEndPage. Также будет создан файл Test.asp, который содержит HTML-документ с заготовками на языке VBScript для тестирования сервера. Если заглянуть в файл реализации (U1_01.pas) , то можно увидеть, что класс ТТest является потомком класса TASPObject.

Если была выбрана опция Object Context, библиотека типов не будет содержать предопределенных методов, а сам класс Ttest будет являться потомком класса TASPMTSObject. Оба класса-предка TTest содержат абсолютно одинаковые методы и свойства, но класс TASPObject дополнительно содержит пару методов интерфейса IASPObject — OnStartPage и OnEndPage.

Далее создадим метод, который будет заполнять HTML-документ. Для этого в редакторе библиотеки типов (рис. 2) отметим интерфейс ITest и вызовем команду New Method нажатием кнопки 1.

Назовем вновь созданный метод ScriptContent, отредактировав его название, заданное по умолчанию. Данный метод не должен иметь параметров. Затем вызовем команду Refresh нажатием кнопки 2. После этого в модуле реализации (U1_01.pas) появится заготовка, где следует описать реализацию. Метод реализуем следующим образом:

В данном примере происходит обращение к методу Write интерфейса IResponse. Проверка Assigned(Response) гарантирует, что в момент записи сообщений имеется ссылка на интерфейс.

После этого следует модифицировать созданный Delphi HTML-документ для тестирования сервера, хранящегося в файле Test.asp. В этом документе имеется следующий фрагмент кода на языке VBScript:

В таком виде этот скрипт работать не будет. Необходимо заменить фразу в фигурных скобках на имя метода ASP-сервера, который генерирует отклик. В нашем примере это имя ScriptContent. Исправленный фрагмент выглядит следующим образом:

Теперь наш проект необходимо скомпилировать, после чего можно приступить к тестированию созданного ASP-объекта. Для этого необходимо создать виртуальную директорию Internet Information Server, которая обязана иметь разрешение как на чтение (из нее будут читаться данные), так и на выполнениe (из нее будет загружена и запущена библиотека ASP01.dll). Альтернатива — разместить эти файлы в разных директориях, одна из которых имеет доступ Read, а вторая — Execute. Однако в любом случае выбранные директории должны быть доступны с помощью протокола HTTP. Поэтому в первую очередь необходимо обратиться к WWW-сервису Internet Information Server, посмотреть список доступных директорий и при необходимости создать новые с соответствующими правами доступа.

В нашем примере на компьютере, который имеет IP-адрес 10.10.10.65, была создана виртуальная директория /Test, имеющая права доступа Read и Execute и соответствующая физическому адресу на компьютере C:\ASPTest. В эту директорию были скопированы оба файла. Далее в Microsoft Internet Explorer в поле Address был введен следующий URL: HTTP://10.10.10.65/Test/Test.asp. Результат выполнения этого запроса показан на рис. 1. Видно, что скрипт (текст между ) был замещен результатом выполнения метода ScriptContent созданного нами ASP-объекта.

Теперь подробнее рассмотрим, каким образом выполняется скрипт на странице Test.asp. Internet Information Server, получающий запрос о показе этой страницы, считывает ее содержимое, находит скрипт и выполняет его. При этом запускается интерпретатор VBScript и вызывается команда CreateObject. В случае если ASP01.dll ранее не была загружена, происходит ее загрузка. Для данного запроса создается COM-объект — экземпляр класса TTest (он описан в модуле реализации, для данного примера — U1_01.pas). Ссылка на интерфейс IDispatch (он поддерживается в классе TTest) сохраняется в переменной DelphiASPObj.

При последующем написании кода после имени переменной, хранящей ссылку на интерфейс IDispatch, можно набирать практически любой текст. Интерпретатор VBScript использует текст, который содержится в скрипте и следует после имени переменной (в нашем примере: переменная — DelphiASPObj, метод — .ScriptContent), для того чтобы передать его ASP-серверу. Если ASP-сервер найдет метод с данным именем, он его выполнит. В противном случае генерируется исключение. Поэтому при написании скриптов для ASP-сервера следует быть внимательным в названиях методов и при наличии исключений в первую очередь проверить корректность имен методов. При вызове какого-либо метода ASP-серверу становятся доступными интерфейсы IRequest и IResponse.

А теперь рассмотрим пример создания более сложного ASP-сервера, где запрос клиента анализируется при помощи методов интерфейса IRequest. Задачу поставим следующим образом: дадим возможность клиенту найти запись по фрагменту поля ENAME таблицы EMP в базе данных ORCL, сгенерированной Oracle 8.0.4 при его установке. Для этого в каком-либо редакторе форм создадим форму, содержащую однострочный редактор текста и кнопку Submit. HTML-документ с такой формой выглядит следующим образом:

При реализации этой формы вместо IP-адреса 10.10.10.65 следует указать IP-адрес компьютера, на котором установлен ASP-сервер.

Поместим этот документ в директорию C:\ASPTest, которая имеет доступ на чтение и выполнение (см. выше) под именем Name.htm. Но прежде чем создавать модуль данных и обращаться к серверу баз данных, необходимо выяснить, каким образом анализируется запрос клиента в ASP-объекте.

Запрос клиента можно анализировать при помощи вызова методов интерфейса IRequest, ссылка на который находится в свойстве Request класса TASPObject — предка класса, где реализуется ASP-объект. Интерфейс IRequest предоставляет три свойства: QueryString, Form и Body, в которых находятся ссылки на интерфейс IRequestDictionary. QueryString содержит параметры запроса, Form — список элементов управления, предоставляемых клиенту, а Body — данные, которые клиент ввел в эти элементы управления. Нам потребуются данные, поэтому мы будем анализировать свойство Body, однако все сказанное ниже о методах IRequestDisctionary применимо и к любому другому свойству типа ICustomDictionary — QueryString и Form.

IRequestDictionary определен в модуле ASPTlb.pas следующим образом:

Документация о свойствах этого интерфейса в Delphi отсутствует, и остается только догадываться, каким образом из него можно извлечь параметры запроса, введенные пользователем. Привлекая документацию по компоненту TWebDispatcher, который используется при создании CGI-приложений и ISAPI DLL, где также можно анализировать параметры запроса пользователя, можно понять, что свойство Count содержит число элементов управления на форме — для формы, содержащейся в документе Name.htm, оно равно 2. Свойство Key содержит имена элементов управления; для формы, содержащейся в документе Name.htm, это имена T1 (текстовое поле) и B1 (кнопка). И наконец, свойство Item содержит введенные пользователем значения.

Свойство Count работает как положено, то есть возвращает двойку для примера, приведенного выше. При попытке же извлечь имена элементов управления обнаруживается неприятная особенность: в коллекции Key[] индексы начинаются с единицы, а не с нуля, как это принято в приложениях подобного типа. Но все же, обращаясь к коллекции Key с соответствующим индексом — 1 или 2 для нашего примера, можно получить названия элементов управления в виде строковых переменных.

Аналогичная попытка извлечь данные, введенные пользователем в элементы управления, ни к чему хорошему не приводит. Так, при присвоении строковой переменной значения из коллекции Item[] (которая объявлена аналогично коллекции Key[]) происходит исключение. При анализе значения, возвращаемого коллекцией Item[I], обнаруживается, что возвращается интерфейс — потомок IDispatch. Методы и свойства этого интерфейса также не описаны.

Отсутствие описания интерфейса, а также возврат ссылки на него в переменной типа OLEVariant (а не IDispatch) обычно характерно для продуктов, которые находятся в стадии разработки. В этом случае заголовки методов интерфейса, список параметров методов и их число постоянно меняются, а во избежание исключений в клиентских приложениях часто используется позднее связывание. Этот факт настораживает: не исключена возможность изменения методов интерфейса в будущем, что может привести к потере работоспособности созданных ранее ASP-серверов. Однако хочется надеяться, что данный интерфейс устоялся, а в Microsoft по какой-либо причине просто забыли внести изменения в интерфейсный модуль.

Интерфейс — потомок IDispatch имеет два свойства: Count, которое всегда возвращает 1, и Item[]-коллекцию, которая возвращает текст, введенный клиентом в элементах управления. Коллекция Item начинается с индекса 1.

Для понимания и тестирования запроса в ASP-объекте сделаем небольшое дополнение к проекту. Воспользовавшись редактором библиотек типов, создадим новый метод RequestProp, как это было описано ранее (см. рис. 2). Напишем следующий код для метода RequestProp:

Скомпилируем проект и в созданном ранее файле Test.asp изменим код на языке VBScript следующим образом: вместо строки DelphiASPObj.ScriptContent напишем строку DelphiASPObj. RequestProp. После этого в Internet Explorer необходимо обратиться к странице Name.htm командой http://10.10.10.65/Test/Name.htm, где вместо 10.10.10.65 следует набрать IP-адрес сервера.

В полученной форме (рис. 3) введем какое-либо значение в элемент управления для редактирования данных и нажмем кнопку Submit. В итоге имеем результат выполнения приведенного выше кода метода RequestProp:

Итак, для определения параметров, введенных клиентом в какой-либо элемент управления, необходимо просмотреть всю коллекцию Keys, найти индекс интересующего нас элемента управления (в нашем примере — это 1, что соответствует ключу T1) и извлечь значение, введенное клиентом, посредством вызова команды Request.Body.Item[Index].Item[1].

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

Модуль данных, в который можно помещать невизуальные компоненты, экспертом создания ASP-объекта не генерируется — его необходимо создавать отдельно. Поэтому выберем пункт File|New главного меню среды разработки и из репозитария объектов выберем пиктограмму Data Module. В результате к проекту будет добавлен модуль данных, который мы сохраним под именем U1_02.pas. В этот модуль данных будут помещены невизуальные компоненты доступа к данным (визуальные компоненты в ASP-объектах использовать нельзя).

Вообще говоря, в Web-приложениях (ASP, ISAPI/NSAPI, CGI) показ модальных форм с элементами управления (а диалоги — частный вид таких форм) ни к чему хорошему не приводит. При попытке показать диалог элементы управления на диалоге будут созданы, и приложение будет ожидать, когда диалог будет закрыт (нажатием кнопки OK или Cancel), чтобы продолжить свою работу. Особенность заключается в том, что диалог невидим. Поэтому его нельзя закрыть ни с помощью нажатия на кнопки (они не получают сообщения OnClick), ни с помощью клавиш-акселераторов (сигналы с клавиатуры не посылаются невидимым элементам управления). Визуально программист наблюдает следующее: приложение «висит», отклика от ASP-объекта клиент не получает, а для повторной компиляции проекта требуется перезапуск Internet Information Server либо перезагрузка операционной системы. Даже если команды показа диалогов в ASP-сервере отсутствуют, они могут быть показаны в процессе работы приложения — например, какая-либо из библиотек, используемых приложением, пришлет сообщение об ошибке. Данный факт надо принимать во внимание при написании кода, в котором следует тщательно проверять данные перед их использованием, чтобы внешние приложения или библиотеки не присылали сообщений об ошибках в виде диалогов.

Традиционно доступ к данным в Delphi оcуществляется с помощью механизма Borland Database Engine (BDE), при этом необходимо использовать компоненты TSession, TDatabase и TQuery. Однако при создании ASP-объектов для доступа к данным выяснилось, что в них нельзя использовать BDE для доступа к SQL-серверам — при попытке соединиться с базой данных после передачи параметров, содержащих имя пользователя и пароль, происходит исключение (данный факт был проверен для Oracle 8.0.4 и IB Database 5.5). Через BDE удалось получить доступ только к базе данных DBDEMOS, которая не требует аутентификации пользователя при обращении к данным. К сказанному следует добавить, что в Windows 2000 нельзя получить доступ к данным через BDE в традиционных Web-серверных приложениях ISAPI DLL и CGI, в отличие от предыдущих версий Windows (95/98/NT).

К счастью, в Delphi 5 имеется альтернативный способ доступа к данным — с помощью ADO (ActiveX Data Objects). Для работы с ADO прежде всего необходимо использовать компонент TADOConnection. Поместим его в модуль данных. В инспекторе объектов выберем свойство ConnectionString и вызовем диалог для создания строки. В предложенном диалоге выберем Microsoft OLE DB Provider for Oracle и нажмем кнопку Next (рис. 4).

На второй странице диалога необходимо указать имя сервера (в данном примере — beq-local) и параметры аутентификации: имя пользователя (SCOTT) и пароль (TIGER). Обязательно следует отметить опцию Allow Saving Password, иначе ASP-объект попытается показать диалог ввода имени пользователя и пароля. Протестировать соединение можно нажатием кнопки Test Connection — должно появиться сообщение об успешном соединении с сервером.


Далее в инспекторе объектов следует установить свойство LoginPromp равным False. При работе с другими примерами нужно также изменять свойство DefaultDatabase — имя базы данных, но для данного примера это не обязательно. Проверить правильность установок можно при помощи установления свойства Connected равным True, при этом не должны появляться ни диалог ввода имени пользователя и пароля, ни информация об исключении.

Поместим компонент TADOQuery в модуль данных и в его свойстве Connection сошлемся на определенный выше компонент ADOConnection1.

Следует учесть, что только что разработанный модуль данных автоматически при загрузке ASP-сервера или при обращении клиента к ASP-объекту создаваться не будет. Поэтому необходимо переписать конструктор и деструктор класса TTest, реализация которого находится в файле U1_01.pas. Сошлемся на модуль U1_02.pas в модуле U1_01.pas. В объявлении класса TTest в секции private определим переменную FData типа TDataModule1. В секции public объявим процедуры AfterConstruction и BeforeDesctruction c обязательной директивой override:

Реализуем процедуры AfterConstruction и BeforeDestruction в секции реализации:

Далее в библиотеке типов (см. рис. 2) следует создать новый метод, который назовем QueryResponse. Реализуем его следующим образом:

В данном методе динамически создается SQL-запрос, при этом используются параметры, введенные клиентом в форму на рис. 3. С этим запросом происходит обращение к серверу баз данных, и возвращаемые данные помещаются в HTML-документ. В созданном ранее файле Test.asp изменим код на VBScript следующим образом: вместо строки DelphiASPObj.ScriptContent напишем строку DelphiASPObj. QueryResponse. После этого запустим Microsoft Internet Explorer и снова обратимся к странице Name.htm. Результат выполнения запроса приведен на рис. 5.

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

Пример проиллюстрируем следующим образом: определим в заголовке класса TTest (U1_01.pas) две переменные: FCompanyName:string и FCopyrightYear:string. Определим в библиотеке типов (см. рис. 2) два новых свойства: CompanyName:string и CopyrightYear:integer. В методах *Read и *Wirte для этих свойств определим чтение и возврат данных из описанных выше переменных. В библиотеку типов добавим новый метод ShowCopyright, который реализуем следующим образом:

В созданном ранее файле Test.asp изменим код на языке VBScript:

Результатом обращения к ASP-объекту при помощи команды http://10.10.10.65/Test/Test.asp (вместо 10.10.10.65 следует ввести IP-адрес вашего сервера) будет генерация следующей страницы (рис. 6).

Если в файле Test.asp изменить имя компании (а это можно сделать при помощи любого текстового редактора), соответствующие изменения отобразятся в HTML-документе.

При помощи ASP-объектов можно передавать не только текстовую информацию, но и двоичную, например графические изображения. Создадим обычную HTML-страницу следующего вида:

Файл Test1.asp выглядит следующим образом:

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

Метод GetPicture реализуем следующим образом:

Для передачи двоичных данных необходимо указать их тип в свойстве Response.ContentType и воспользоваться методом BinaryWrite объекта Response. В качестве параметра этого метода используется переменная типа OLEVariant. В этой переменной должны находиться двоичные данные в виде массива байтов. Этот массив передается как отклик. В результате обращения к исходному HTML-документу клиент получит отклик (рис. 7).

До сих пор мы рассматривали in-process-серверы, которые работают в адресном пространстве Internet Information Server и реализуются в динамически загружаемых библиотеках — DLL. В заключение следует сказать и о создании out-of-process ASP-серверов. Такие серверы реализуются в виде исполняемых файлов и работают в отдельном адресном пространстве.

Для создания out-of-process-сервера необходимо открыть готовый проект, компиляция которого приводит к созданию исполняемого файла, или создать новый проект с помощью пункта меню File|New Application. После этого следует выбрать пункт главного меню File|New среды разработки Delphi, а затем со страницы ActiveX репозитария объектов — пиктограмму Active Server Object. В результате будет сгенерирована библиотека типов, содержащая методы OnStartPage и OnEndPage. Все, что было сказано выше по поводу in-process-сервера, справедливо и в отношении out-of-process-сервера: разработка ASP-объекта заключается в создании новых методов, которые будут вызываться из VBScript-кода ASP-страницы.

Сложности возникают при попытке протестировать out-of-process-сервер. По умолчанию параметры настройки Internet Information Server таковы, что запуск им приложений запрещен, а разрешена только загрузка DLL. Более того, в администраторе Internet Information Server отсутствует опция, позволяющая разрешить или запретить использование приложений как ASP-серверов. Для разрешения запуска исполняемого файла как ASP-сервера необходимо выполнить следующий код:

Для выполнения данного скрипта необходимо, чтобы пользователь, инициирующий его выполнение, имел статус администратора. По этой причине данный скрипт бесполезно определять в HTML-документе и запускать его с использованием Internet Explorer, так как любой пользователь Internet имеет статус гостя (Guest), а не администратора. Скрипт необходимо поместить в обработчик какого-либо события в среде разработки Visual Basic или VBA и запустить его оттуда (либо использовать Windows Scripting Host. — Прим.ред.).

К сожалению, в Delphi отсутствует метод, аналогичный методу VBScript GetObject. Очевидно, что метод GetObject возвращает ссылку на интерфейс IDispatch Internet Information Server. Однако при этом в качестве параметра он использует строку, которая не является классовой (ее GUID отсутствует в системном реестре). В Delphi аналогичных методов нет, по крайней мере, в виде простых вспомогательных функций. Возможно, подобный метод станет доступным в следующих версиях Delphi.

В15. Скриптовые языки программирования (Java, Perl, HTML, XML). Инструментальные средства создания web-серверов и web-сайтов (PHP, ASP NET, Delphi). Основы web-дизайна.

Сцена́рный язы́к или скри́птовый язы́к (англ. scripting language, в русской литературе принято название язык сценариев) — высокоуровневый язык программирования для написания сценариев — кратких описаний выполняемых системой действий. Разница между программами и сценариями довольно размыта. Сценарий — это программа, имеющая дело с готовыми программными компонентами.

Согласно Джону Устерхауту, автору языка Tcl, высокоуровневые языки можно разделить на языки системного программирования (англ. system programming languages) и сценарные языки(англ. scripting languages). Последние он также назвал склеивающими языками(англ. glue languages) или языками системной интеграции(англ. system integration languages). Сценарии обычно интерпретируются, а не компилируются, хотя сценарные языки программирования один за другим обзаводятся JIT-компиляторами.

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

JavaScript

JavaScript — это язык программирования от компании Netscape, который является реализацией стандарта ECMAScript.

В большинстве случаев при упоминании JavaScript подразумевается так называемый клиентский JavaScript, интерпретатор которого встроен в Web-браузеры. Однако JavaScript изначально был разработан как универсальный язык программирования для встраивания в любое приложение и обеспечения возможности написания в нем сценариев. Например, ActionScript, язык сценариев, доступный в Macromedia Flash 5 и MX, также смоделирован в соответствии со стандартом ECMAScript.

Интерпретатор JavaScript от Netscape был выпущен в виде открытого исходного кода и доступен через организацию Mozilla (http://www.mozilla.org/js/). Mozilla предоставляет две различные версии интерпретатора JavaScript — «SpiderMonkey» (написана на С) и «Rhino» (написана на Java).

Perl — интерпретируемый скриптовый язык программирования, один из самых распространённых в области веб-программирования. По одной из версий, Perl — аббревиатура, которая расшифровывается как «Practical Extraction and Report Language» (практический язык извлечений и отчётов).

Основной особенностью языка считаются его богатые возможности для работы с текстом, реализованные при помощи регулярных выражений (regular expressions). Перл также знаменит огромной коллекцией дополнительных модулей CPAN, находящейся по адресу http://www.cpan.org/.

eXtensible Markup Language (XML, расширяемый язык разметки) — метаязык разметки, очень похож на HTML, с возможностью добавлять свои собственные теги, на котором пишутся специализированные языки разметки (XML-приложения), описывающие данные определенной предметной области и структуры.

HTML (Hypertext Markup Language) — язык разметки гипертекста.

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

Гиперссылка — фрагмент текста (как правило отличающегося элементами форматирования: цвет, подчеркивание, курсив) или графика, выбор которого позволяет выполнить переход к другому фрагменту текста (файла, Web-странице).

Разметка — вставка в текст дополнительных служебных символов.

Служебные символы в HTML (теги) представляет собой команды, которые указывают браузеру логическую структуру документа (заголовок, параграф, цитата, абзац и т.д.).

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

Web-сервер и Web-сайт

Информация, доступная пользователям Internet, располагается на компьютерах (Web-серверах), на которых установлено специальное программное обеспечение. Значительная часть этой информации организованна в виде Web-сайтов. Каждый из них имеет свое имя (адрес) в Internet. Web-сайт — это информация, представленная в определенном виде, которая располагается на Web-сервере и имеет свое имя (адрес). Для просмотра Web-сайтов на компьютере пользователя используются специальные программы, которые называются браузерами. Наиболее распространенными браузерами в настоящее время являются InternetExplorer и NetscapeNavigator. В зависимости от того, какое имя (адрес) сайта мы зададим в строке «Адрес«, браузер будет загружать в свое окно соответствующую информацию.

Web-сайт состоит из связанных между собой Web-страниц. Web-страница представляет собой текстовый файл с расширением *.htm, который содержит текстовую информацию и специальные команды — HTML-коды, определяющие в каком виде эта информация будет отображаться в окне браузера. Вся графическая, аудио- и видео информация непосредственно в Web-страницу не входит и представляет собой отдельные файлы с расширениями *.gif, *.jpg (графика), *.mid, *.mp3 (звук), *.avi (видео). В HTML-коде страницы содержатся только указания на такие файлы (рис. 1.1).

Web-страницы можно создавать вручную с помощью языка HTML (HyperText Mark-up Language — язык разметки гипертекста), при этом ввод HTML-кода выполняется в любом текстовом редакторе или с помощью HTML-редакторов.

Наиболее известные редакторы Web-страниц DreameWeaver, NetscapeComposer, HotDog, Word97 и последующие версии, а также MicrosoftFrontPage, который мы и будем изучать.

Для создания элементов страниц используются следующие инструментальные средства: графические редакторы (AdobePhotoshop, Fireworks, PaintShopPro, Painter и др.) для создания графических файлов, текстовые редакторы для создания текстов, звуковые редакторы для создания звуковых файлов.

PHP (англ. PHP: Hypertext Preprocessor — «PHP: препроцессор гипертекста»; первоначально Personal Home Page Tools[3] — «Инструменты для создания персональных веб-страниц») — скриптовый язык программирования общего назначения, интенсивно применяемый для разработки веб-приложений. В настоящее время поддерживается подавляющим большинством хостинг-провайдеров и является одним из лидеров среди языков программирования, применяющихся для создания динамических веб-сайтов.

Язык и его интерпретатор разрабатываются группой энтузиастов в рамках проекта с открытым кодом. Проект распространяется под собственной лицензией.

В области программирования для сети Интернет PHP — один из популярных скриптовых языков (наряду с JSP, Perl и языками, используемыми в ASP.NET) благодаря своей простоте, скорости выполнения, богатой функциональности, кроссплатформенности и распространению исходных кодов на основе лицензии PHP.

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

· автоматическое извлечение POST и GET-параметров, а также переменных окружения веб-сервера в предопределённые массивы;

· взаимодействие с большим количеством различных систем управления базами данных (MySQL, MySQLi, SQLite, PostgreSQL, Oracle (OCI8), Oracle, Microsoft SQL Server, Sybase, ODBC, mSQL, IBM DB2, Cloudscape и Apache Derby, Informix, Ovrimos SQL, Lotus Notes, DB++, DBM, dBase, DBX, FrontBase, FilePro, Ingres II, SESAM, Firebird / InterBase, Paradox File Access, MaxDB, Интерфейс PDO);

· автоматизированная отправка HTTP-заголовков;

· работа с HTTP-авторизацией;

· работа с cookies и сессиями;

· работа с локальными и удалёнными файлами, сокетами;

· обработка файлов, загружаемых на сервер;

· работа с XForms.

Delphi (Де́лфи, произносится /ˈdɛlˌfi:/[1]) — императивный, структурированный, объектно-ориентированный язык программирования, диалект Object Pascal[2]. Начиная со среды разработки Delphi 7.0, в официальных документах Borland стала использовать название Delphi для обозначения языка Object Pascal. Начиная с 2007 года уже язык Delphi (производный от Object Pascal) начал жить своей самостоятельной жизнью и претерпевал различные изменения, связанные с современными тенденциями (например, с развитием платформы .NET) развития языков программирования: появились class helpers, перегрузки операторов и другое.

ASP.NET — технология создания веб-приложений и веб-сервисов от компании Майкрософт. Она является составной частью платформы Microsoft .NET и развитием более старой технологии Microsoft ASP. На данный момент последней версией этой технологии является ASP.NET 4.5.

Разработчики могут писать код для ASP.NET, используя практически любые языки программирования, входящие в комплект .NET Framework (C#, Visual Basic.NET и JScript .NET). ASP.NET имеет преимущество в скорости по сравнению со скриптовыми технологиями, так как при первом обращении код компилируется и помещается в специальный кэш, и впоследствии только исполняется, не требуя затрат времени на парсинг, оптимизацию, и т. д.

Пять областей охватывают основные аспекты Web-дизайна.

Содержимое. Сюда входят форма и организация содержимого сайта. Возможный диапазон — от того, как написан текст до того, как он организован, представлен и структурирован с помощью технологии разметки, такой как HTML.

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

Технология. Хотя применение разнообразных базовых Web-технологий вроде HTML или CSS попадает в эту категорию, под технологией в этом контексте чаще подразумеваются различные интерактивные элементы сайта, в особенности созданные с использованием программных методов.Это могут быть элементы в диапазоне от языков сценариев, работающих на стороне клиента, наподобие JavaScript, до серверных приложений, таких как Java-сервлеты, PHP-сценарии.

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

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

В.16. Системы управления базами данных. Структура данных, модели данных, создание базы данных и таблиц. БазыданныхAccess, Oracle, MySQL, Foxpro, dBase, SQLServerидр. Основы языка SQL и построение SQL-запросов.

Систе́ма управле́ния ба́зами да́нных (СУБД) — совокупность программных и лингвистических средств общего или специального назначения, обеспечивающих управление созданием и использованием баз данных [1] .

MicrosoftAccess — реляционная СУБД корпорации Microsoft. Имеет широкий спектр функций, включая связанные запросы, связь с внешними таблицами и базами данных. Благодаря встроенному языку VBA, в самом Access можно писать приложения, работающие с базами данных.

Oracle Database 10g – первая в мире база данных, разработанная специально для работы в сетях распределенных вычислений. Oracle Database 10g предоставляет возможность автоматической настройки и управления, которая делает ее использование простым и экономически выгодным. Ее уникальные возможности осуществлять управление всеми данными предприятия — от обычных операций с бизнес-информацией до динамического многомерного анализа данных (OLAP).

MySQL — свободная система управления базами данных. MySQL является решением для малых и средних приложений. Обычно MySQL используется в качестве сервера, к которому обращаются локальные или удалённые клиенты, однако в дистрибутив входит библиотека внутреннего сервера, позволяющая включать MySQL в автономные программы.

Гибкость СУБД MySQL обеспечивается поддержкой большого количества типов таблиц: пользователи могут выбрать как таблицы типа MyISAM, поддерживающие полнотекстовый поиск, так и таблицы InnoDB, поддерживающие транзакции на уровне отдельных записей..

SQL является, прежде всего, информационно-логическим языком, предназначенным для описания, изменения и извлечения данных, хранимых в реляционных базах данных. SQL нельзя назвать языком программирования

Изначально, SQL был основным способом работы пользователя с базой данных и позволял выполнять следующий набор операций: создание в базе данных новой таблицы; добавление в таблицу новых записей; изменение записей; удаление записей; выборка записей из одной или нескольких таблиц (в соответствии с заданным условием); изменение структур таблиц.

Со временем, SQL усложнился — обогатился новыми конструкциями, обеспечил возможность описания и управления новыми хранимыми объектами (например, индексы, представления, триггеры и хранимые процедуры) — и стал приобретать черты, свойственные языкам программирования.

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

Каждое предложение SQL — это либо запрос данных из базы, либо обращение к базе данных, которое приводит к изменению данных в базе. В соответствии с тем, какие изменения происходят в базе данных, различают следующие типы запросов: запросы на создание или изменение в базе данных новых или существующих объектов (при этом в запросе описывается тип и структура создаваемого или изменяемого объекта); запросы на получение данных; запросы на добавление новых данных (записей) запросы на удаление данных; обращения к СУБД.

Основным объектом хранения реляционной базы данных является таблица, поэтому все SQL-запросы — это операции над таблицами. В соответствии с этим, запросы делятся на

запросы, оперирующие самими таблицами (создание и изменение таблиц);

запросы, оперирующие с отдельными записями (или строками таблиц) или наборами записей.

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

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

Таким образом, использование SQL сводится, по сути, к формированию всевозможных выборок строк и совершению операций над всеми записями, входящими в набор.


В17. Методы и средства защиты информации. Кодирование и декодирование информации. Защита от несанкционированного доступа к данным. Классы безопасности компьютерных систем. Электронная подпись. Организационно-правовые аспекты защиты информации и авторское право.

Методы обеспечения безопасности информации в ИС:

· противодействие атакам вредоносных программ;

Препятствие – метод физического преграждения пути злоумышленнику к защищаемой информации (к аппаратуре, носителям информации и т.д.).

Управление доступом – методы защиты информации регулированием использования всех ресурсов ИС и ИТ. Эти методы должны противостоять всем возможным путям несанкционированного доступа к информации.

Управление доступом включает следующие функции зашиты:

· идентификацию пользователей, персонала и ресурсов системы (присвоение каждому объекту персонального идентификатора);

· опознание (установление подлинности) объекта или субъекта по предъявленному им идентификатору;

· проверку полномочий (проверка соответствия дня недели, времени суток, запрашиваемых ресурсов и процедур установленному регламенту);

· разрешение и создание условий работы в пределах установленного регламента;

· регистрацию (протоколирование) обращений к защищаемым ресурсам;

· реагирование (сигнализация, отключение, задержка работ, отказ в запросе и т.п.) при попытках несанкционированных действий.

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

Противодействие атакам вредоносных программ предполагает комплекс разнообразных мер организационного характера и исполь­зование антивирусных программ. Цели принимаемых мер – это уменьшение вероятности инфицирования АИС, выявление фактов заражения системы; уменьшение последствий информационных инфекций, локализация или уничтожение вирусов; восстановление информации в ИС. Овладение этим комплексом мер и средств требует знакомства со специальной литературой.

Регламентация – создание таких условий автоматизированной обработки, хранения и передачи защищаемой информации, при кото­рых нормы и стандарты по защите выполняются в наибольшей степени.

Принуждение – метод защиты, при котором пользователи и персонал ИС вынуждены соблюдать правила обработки, передачи и использования защищаемой информации под угрозой материальной, административной или уголовной ответственности.

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

Вся совокупность технических средств подразделяется на аппаратные и физические.

Аппаратные средства – устройства, встраиваемые непосредственно в вычислительную технику, или устройства, которые сопрягаются с ней по стандартному интерфейсу.

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

Программные средства – это специальные программы и программные комплексы, предназначенные для защиты информации в ИС. Как отмечалось, многие из них слиты с ПО самой ИС.

Из средств ПО системы защиты выделим еще программные средства, реализующие механизмы шифрования (криптографии). Криптография – это наука об обеспечении секретности и/или аутентичности (подлинности) передаваемых сообщений.

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

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

Морально-этическиесредства защиты включают всевозможные нормы поведения (которые традиционно сложились ранее), складываются по мере распространения ИС и ИТ в стране и в мире или специально разрабатываются. Морально-этические нормы могут быть неписаные (например честность) либо оформленные в некий свод (устав) правил или предписаний. Эти нормы, как правило, не являются законодательно утвержденными, но поскольку их несоблюдение приводит к падению престижа организации, они считаются обязательными для исполнения. Характерным примером таких предписаний является Кодекс профессионального поведения членов Ассоциации пользователей ЭВМ США.

КОДИРОВАНИЕ И ДЕКОДИРОВАНИЕ

— процесс представления информации в определенной стандартнойформе и обратный процесс восстановления информации по ее такому представлению. В математич.литературе кодированием наз. отображение произвольного множества Ав множество конечныхпоследовательностей (слов) в нек-ром алфавите В, а декодированием — обратное отображение. Примерамикодирования являются: представление натуральных чисел в r-ичной системе счисления, при к-ром каждомучислу N=i,2, . ставится в соответствие слово b1b2 . bl в алфавите В r= <0, 1, . r-1>такое, что b1 неравно 0 иb1r l -1 +. + bl-1r+bl=N; преобразование текстов на русском языке с помощью телеграфного кода впоследовательности, составленные из посылок тока и пауз различной длительности; отображение,применяемое при написании цифр почтового индекса (см. рис.). В последнем случае каждой десятичнойцифре соответствует слово в алфавите В 2= <0, 1>длины 9, в котором символами 1 отмечены номераиспользованных линий (напр., цифре 5 соответствует слово 110010011). Исследование различных свойств К.и д. и построение эффективных в определенном смысле кодирований, обладающих требуемымисвойствами, составляет проблематику теории кодирования. Обычно критерий эффективности кодированиятак или иначе связан с минимизацией длин кодовых слов (образов

элементов множества А), а требуемые свойства кодирования связаны с обеспечением заданного уровняпомехоустойчивости, понимаемой в том или ином смысле. В частности, под помехоустойчивостьюпонимается возможность однозначного декодирования при отсутствии или допустимом уровне искажений вкодовых словах. Помимо помехоустойчивости, к кодированию может предъявляться ряд дополнительныхтребований. Напр., при выборе кодирования для цифр почтового индекса необходимо согласование собычным способом написания цифр. В качестве дополнительных требований часто используютсяограничения, связанные с допустимой сложностью схем, осуществляющих К. и д. Проблематика теориикодирования в основном создавалась под влиянием разработанной К. Шенноном (С. Shannon, [1])теориипередачи информации. Источником новых задач теории кодирования служат создание и совершенствованиеавтоматизированных систем сбора, хранения, передачи и обработки информации. Методы решения задачтеории кодирования главным образом комбинаторные, теоретико-вероятностные и алгебраические.Произвольное кодирование f множества (алфавита) Асловами в алфавите Вможно распространить намножество А* всех слов в А(сообщений) следующим образом:

где i=1, 2, . . ., k. Такое отображение f: наз. побуквенным кодированием сооб. щений.Более общий класс кодирований сообщений образуют автоматные кодирования, реализуемыеинициальными асинхронными автоматами, выдающими в каждый момент времени нек-рое (быть может,пустое) слово в алфавите В. Содержательный смысл этого обобщения заключается в том, что автомат вразных состояниях реализует различные кодирования букв алфавита сообщений. Побуквенное кодирование- это автоматное кодирование, реализуемое автоматом с одним состоянием: Одним из направлений теориикодирования является изучение общих свойств кодирования и построение алгоритмов распознавания этихсвойств (см. Кодирование алфавитное). В частности, для побуквенных и автоматных кодирований найденынеобходимые и достаточные условия для того, чтобы:

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

Большинство задач теории кодирования сводится к изучению конечных или счетных множеств слов валфавите В r. Такие множества наз. кодами. В частности, каждому однозначному кодированию f : (и побуквенному кодированию ) соответствует код Одноиз основных утверждений теории кодирования состоит в том, что условие взаимной однозначностипобуквенного кодирования накладывает следующее ограничение на длины li=l,if )кодовыхслов f(i):

Справедливо и обратное утверждение: если (l, ..., lm-1)- набор натуральных чисел, удовлетворяющих (1), тосуществует взаимно однозначное побуквенное кодирование такое, что слово f(i)имеет длинуli;. При этом, если числа li упорядочены по возрастанию, то в качестве f(i) можно взять первые после запятойli символов разложения числа в r-ичную дробь (метод Шеннона).

Наиболее законченные результаты в теории кодирования связаны с построением эффективных взаимнооднозначных кодирований. Описанные здесь конструкции используются на практике для сжатия информациии выборки информации из памяти. Понятие эффективности кодирования зависит от выбора критериястоимости. При определении стоимости L(f)взаимно однозначного побуквенного кодирования предполагается, что каждому числу поставлено в соответствие положительноечисло р i и Р=, . Pm-1). Исследованы следующие варианты определения стоимости L(f):

причем предполагается, что в первых двух случаях р i— вероятности, с к-рыми некоторый бернуллиевыйисточник порождает соответствующие буквы алфавита В т а в третьем случае р i-заданные длины кодовых слов. При первом определении стоимость равна средней длине кодового слова,при втором определении с ростом параметра tболее длинные кодовые слова оказывают все большеевлияние на стоимость ( при и при ), при. третьемопределении стоимость равна максимальному превышению длины li кодового слова над заданной длиной рi. Задача построения взаимно однозначного побуквенного кодирования f : В* т->В*r, минимизирующегостоимость L(f), равносильна задаче минимизации функции L(f) на наборах (l, . 1 т-1 )из натуральных чисел,удовлетворяющих (1). Решение этой задачи известно при каждом из указанных определений стоимости.Пусть минимум величины L(f)на наборах (l, . . ., lm-1 )из произвольных (не обязательно натуральных) чиселравен Lr(P)и достигается на наборе (l (Р), . l т-1 (Р)). Неотрицательная величина I(f) = L(f) — Lr(P)наз.избыточностью, а величина I(f)/L(f)- относительной избыточностью кодирования f. Для избыточности взаимнооднозначного кодирования построенного по методу Шеннона для длин справедливо неравенство I(f) -1 может быть произвольным образом доопределено на r п -тсловах из не являющихся кодовыми. В частности, если множество разбито на тнепересекающихсяподмножеств D, . .., Dm-1 таких, что а декодирование f -1 доопределено так, что f -1 (Di)=i, то придекодировании будут исправлены все ошибки, преобразующие кодовое слово f(i) в Di, i=0, . т-1.Аналогичная возможность имеется и в случае ошибок других типов таких, как стирание символа (замещениесимволом другого алфавита), изменение числового значения кодового слова на b=1, . r-1, i=0, 1, . (арифметическая ошибка), выпадение или вставка символа и т. п.

В теории передачи информации (см. Информации передача )рассматриваются вероятностные моделиобразования ошибок, называемые каналами. Простейший канал без памяти задается вероятностями р ijзамещения символа iсимволом j. Для канала определяется величина (пропускная способность)

где максимум берется по всем наборам (q, . . ., qm-1 )таким, что и Эффективностькодирования f характеризуется скоростью передачи R(f), а помехоустойчивость — средней вероятностьюошибки декодирования Р(f) (при наилучшем разбиении. В n r на подмножества Di). Основной результат теориипередачи информации (теорема Шеннона) состоит в том, что пропускная способность Сявляется верхнейгранью чисел Rтаких, что для любого е>0 при всех п, начиная с нек-рого, существует кодирование

для к-рого и Р(f) n r сисправлением tошибок равносильна задаче плотнейшей упаковки метрического пространства шарамирадиуса t. Код для цифр почтового индекса не является кодом с исправлением одной ошибки, так как d(f(0),f(8))=1 и d(f(5), f(8)) = 2, хотя все другие расстояния между кодовыми словами не менее 3.

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

причем достигается «мощностная» граница, основанная на подсчете числа слов длины пв шаре радиуса t.Асимптотика величины Ir(n, t )при г>2, а также при r=2 для многих других типов ошибок (напр., арифметич.ошибок, выпадений и вставок) не известна (1978). Во втором случае, когда t=[pn], где р — некотороефиксированное число, 0 n 2, для к-рого существуетдекодер, состоящий из регистра сдвига и одного мажоритарного элемента и исправляющий одну ошибку,имеет порядок (ср. с (2)). В качестве математич. модели кодера и декодера обычно рассматриваютсхемы из функциональных элементов и под сложностью понимают число элементов в схеме. Для известныхклассов кодов с исправлением ошибок проведено исследование возможных алгоритмов К. и д. и полученыверхние границы сложности кодера и декодера. Найдены также нек-рые соотношения между скоростьюпередачи кодирования, помехоустойчивостью кодирования и сложностью декодера (см. [5]).

Еще одно направление исследований в теории кодирования связано с тем, что многие результаты (напр.,теорема Шеннона и граница (3)) не являются «конструктивными», а представляют собой теоремысуществования бесконечных последовательностей п> кодов В связи с этим предпринимаютсяусилия, чтобы доказать эти результаты в классе таких последовательностей п> кодов, для к-рых существуетмашина Тьюринга, распознающая принадлежность произвольного слова длины lмножеству завремя, имеющее медленный порядок роста относительно l(напр., llog l).

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

В.18. Математические модели и численные методы решения задач в различных предметных областях. Модели, приводящие к необходимости численного дифференцирования и интегрирования функций. Основные методы и характеристики погрешности.

Дата добавления: 2020-02-25 ; просмотров: 2116 | Нарушение авторских прав

Инструментальные средства создания web-серверов и web-сайтов.

ОБЗОР ИНСТРУМЕНТАЛЬНЫХ СРЕДСТВ

Кроме Web-браузеров, необходимо иметь программы для редактирования HTML-документов.

Сейчас на рынке программного обеспечения представлено большое количество продуктов для создания Web-страниц или HTML-документов: от мощнейших профессиональных пакетов типа FrontPage и Dreamweaver до таких популярных программ семейства текстовых процессоров, как Microsoft Word Pad, Microsoft Word и Corel WordPerfect.

Достаточно востребованным для создания Web-сайтов является ряд визуальных приложений, называемых WYSIWYG-редакторами (What You See Is What You Get — что видишь, то и получишь). Эти программы ускоряют создание Web-документов и избавляют от необходимости вручную набирать основной программный HTML-код. Все необходимые операции выполняются автоматически.

Так же Web-страницы можно создавать вручную с помощью языка HTML (HyperText Mark-up Language – язык разметки гипертекста), при этом ввод HTML-кода выполняется в любом текстовом редакторе или с помощью HTML-редакторов.

Для создания элементов страниц используются следующие инструментальные средства: графические редакторы (Adobe Photoshop, Fireworks, Paint Shop Pro, Painter и др.) для создания графических файлов, текстовые редакторы для создания текстов, звуковые редакторы для создания звуковых файлов.

Обычно новичок думает следующим образом: «Все свои привычные документы я создаю посредством программ WYSIWYG ( ) — тексты я создаю в MS Word, презентации — в MS PowerPoint, так возьму-ка я и для создания web-странички подобную программу — MS FrontPage. » Приняв такое решение, вы дважды обкрадываете себя.

Первый раз — в смысле рационального использования web-пространства. Дело в том, что все визуальные редакторы web-страниц, к которым относится и упомянутый MS FrontPage, вставляют в создаваемые страницы отсебятину — множество лишних ненужных тегов. Исключением, пожалуй, является Macromedia Dreamweaver (за что он снискал себе заслуженную популярность как среди новичков, так и среди профессионалов). Но даже он в этом плане не идеален — любит засорять исходный текст кавычками (в большинстве случаев совершенно ненужными), а также вставлять символы неразрывного пробела в самых неподходящих для этого местах.

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

Этапы разработки Web-сайта

планирование, реализация, публикация, продвижение, поддержка.

На стадии планирования определяется следующее: • цели создания Web-сайта (Зачем? Какие задачи он должен выполнять и на какую аудиторию он рассчитан?); • характер содержимого; • структура (Юзабилити – удобство пользования); • особенности оформления (определяется структура каждой страницы и разрабатывается графика).

Любую страницу можно оценить по трем параметрам: контенту, внешнему виду и навигации.

Если сайт рассчитан на долгое вдумчивое чтение, то он должен иметь хорошую читабельностб, меньше отвлекающих динамических эффектов, не утомляющее цветовое сочетание фона и текста.

И наоборот: сократите текстовые блоки до минимума, если Вы создаете сайт, дающий посетителю, прежде всего визуальную и другую мультимедийную информацию.

При создании достаточно больших документов надо помнить о том, что не все из посетителей имеют высокоскоростной доступ в Internet

Реализация. Это и есть работа по созданию сайта. На этом этапе проводится подготовка текстового и графического материала (печать, сканирование). Материал разбивается по файлам в соответствии со структурой. Организуются ссылки между файлами сайта.

Тестирование. Завершив работу по размещению страниц на Web-сайте, необходимо выполнить тестирование. Оно состоит из двух этапов: тестирование на работоспособность и тестирование на удобство пользования интерфейсом.

Публикация. Готовый Web-сайт необходимо опубликовать на Web-сервере, чтобы он был доступен через Internet. Если ваш сайт создан посредством редактора FrontPage, то на сервере должны быть инсталлированы серверные расширения FrontPage, что обеспечит полную поддержку доступных в FrontPage компонентов, которые были помещены на странице в процессе создания сайта.

Если у вас нет собственного сервера, то в Сети можно найти огромное количество ссылок на free web pages, где некоторые провайдеры предоставляют своим клиентам бесплатное место под страницу.

Основы web-дизайна.

Веб-дизайн — графическое оформление сайта, которое способствует положительному восприятию сайта посетителем.

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

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

Составляется предварительный план работы.

Основы веб-дизайна. Проектирование навигации на сайте.

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

Грамотно расположенные информационные блоки и простая, понятная, навигация залог успеха будущего сайта.

Основы веб-дизайна. Элементы дизайна сайта.

Особое внимание уделяется элементам в веб-дизайне, которые должны гармонично сочетаться между собой и быть един целым с дизайном сайта.

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

Правильно разработанный сайт включает такие важные моменты как:

— упорядоченные информационные блоки

— все материалы сайта должны иметь тематическую направленность сайта (для определенного круга пользователей)

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

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

Не нашли то, что искали? Воспользуйтесь поиском:

Лучшие изречения: При сдаче лабораторной работы, студент делает вид, что все знает; преподаватель делает вид, что верит ему. 9336 — | 7293 — или читать все.


188.64.174.135 © studopedia.ru Не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования. Есть нарушение авторского права? Напишите нам | Обратная связь.

Отключите adBlock!
и обновите страницу (F5)

очень нужно

Публикация баз «1С:Предприятия» 8.3 на веб-сервере IIS в Microsoft Windows Server 2008/2012

В данной статье я подробно опишу процесс организации веб- доступа к базам данных «1С:Предприятие» 8.3 на веб-сервере IIS (Internet Information Server), входящего в поставку Microsoft Windows Server. Для более старых версий «1С:Предприятие» ( 8.1 и 8.2 ) алгоритм публикации баз данных в целом аналогичен. Будет рассмотрен алгоритм настройки IIS для работы «1С:Предприятие», а также описан процесс публикации баз данных на веб-сервере как для 32-разрядного , так и для 64-разрядного модуля расширения веб-сервера.

0. Оглавление

  1. Что понадобится
  2. Установка веб-сервера IIS
  3. Установка компонент «1С:Предприятие»
  4. Настройка операционной системы
  5. Публикация базы данных на веб-сервере
  6. Настройка IIS для использования 32-разрядного модуля расширения веб-сервера
  7. Настройка IIS для использования 64-разрядного модуля расширения веб-сервера
  8. Подключение к опубликованной информационной базе через веб-браузер
  9. Подключение к опубликованной информационной базе через клиент «1С:Предприятия»
  10. Конфигурационные файлы виртуального каталога
    1. Файл default.vrd
    2. Файл web.config

1. Что понадобится

  1. Компьютер отвечающий минимальным системным требованиям для работы веб-сервера под управлением одной из операционных систем:
    • Microsoft Windows Server 2012 (R2)
    • Microsoft Windows Server 2008 (R2)
  2. Права локального администратора на данном компьютере.
  3. Дистрибутив для установки компонент «1С:Предприятие». Для настройки 64-разрядного модуля расширения веб-сервера, дистрибутив для установки 64-разрядного сервера «1С:Предприятие». В данном примере используется версия 8.3.4.389. Для более старых версий «1С:Предприятие» (8.1 и 8.2) алгоритм публикации баз данных в целом аналогичен.

2. Установка веб-сервера IIS

Устанавливаем веб-сервер Internet Information Server, который по умолчанию входит в поставку Microsoft Windows Server. При установке обязательно выбираем компоненты:

  • Общие функции HTTP (Common HTTP Features)
    • Статическое содержимое (Static Content)
    • Документ по умолчанию (Default Document)
    • Обзор каталогов (Directory Browsing)
    • Ошибки HTTP (HTTP Errors)
  • Разработка приложений (Application Development)
    • ASP
    • ASP.NET 3.5
    • Расширяемость .NET 3.5 (.NET Extensibility 3.5)
    • Расширения ISAPI (ISAPI Extensions)
    • Фильтры ISAPI (ISAPI Filters)
  • Исправление и диагностика (Health and Diagnostics)
    • Ведение журнала HTTP (HTTP Logging)
    • Монитор запросов (Request Monitor)
  • Средства управления (Management Tools)
    • Консоль управления IIS (IIS Management Console)

Подробно про процесс развертывания веб-сервера IIS я писал:

  • В Microsoft Windows Server 2012 (R2) — здесь. IIS версии 8, после установки должны увидеть страницу Default Web Site вида:
  • В Microsoft Windows Server 2008 (R2) — здесь. IIS версии 7, после установки должны увидеть страницу Default Web Site вида:

3. Установка компонент «1С:Предприятие»

На этот же сервер, где развернут веб-сервер IIS, устанавливаем «1С:Предприятие» (32-разрядные компоненты) обязательно выбрав при установке компоненты:

  • 1С:Предприятие
  • Модули расширения веб-сервера

Если планируется настроить 64-разрядный модуль расширения веб-сервера, то необходимо дополнительно запустить программу установки 64-разрядного сервера из соответствующей поставки «1С:Предприятие» и установить компоненту:

  • Модуль расширения веб-сервера

4. Настройка операционной системы

Теперь необходимо установить необходимые права на ключевые папки, используемые при работе веб-доступа к базам данных «1С:Предприятие». Для каталога хранения файлов веб-сайтов, опубликованных на веб-сервере (по умолчанию C:inetpubwwwroot ) необходимо дать полные права группе «Пользователи» (Users). В принципе, этот шаг можно пропустить, но тогда для публикации или изменения публикации базы данных надо будет запускать «1С:Предприятие» от имени администратора. Для настройки безопасности данного каталога, кликаем по нему правой кнопкой мыши и в контекстном меню выбираем «Свойства» (Properties).

В открывшемся окне свойств, переходим на вкладку «Безопасность» (Security) и нажимаем кнопку «Изменить» (Edit…), для изменения действующих разрешений. Появится окно разрешений для данного каталога. В списке Групп или пользователей (Groups or user names) выделим группу «Пользователи» (Users) и в списке разрешений для выбранной группы установим флаг «Польный доступ» (Full control). Затем нажмем «Применить» (Apply) для записи изменений и закроем все окна при помощи кнопки «ОК».

Далее необходимо дать полные права на каталог с установленными файлами «1С:Предприятие» (по умолчанию C:Program Files (x86)1cv8 для 32-разрядного модуля расширения и C:Program Files1cv8 для 64-разрядного) группе IIS_IUSRS. Для этого выполняем аналогичные описанным выше действия, с той лишь разницей, что для того чтобы необходимая группа появилась в списке «Группы или пользователи» (Groups or user names) необходимо нажать расположенную под списком кнопку «Добавить» (Add..), а в окне выбора групп или пользователей нажать «Дополнительно» (Advanced…).

Затем нажимаем расположенную справа кнопку «Поиск» (Find Now), после чего выбираем необходимую группу IIS_IUSRS в таблице результатов поиска и нажимаем «ОК».

Группа IIS_IUSRS появится в списке групп или пользователей. Даем ей полные права на на выбранную директорию и нажимаем «Применить» (Apply) для сохранения изменений.

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

5. Публикация базы данных на веб-сервере

Переходим к непосредственной публикации базы данных на веб-сервере. Для этого запускаем «1С:Предприятие» в режиме Конфигуратор для той базы, которую требуется опубликовать. Затем в меню выбираем «Администрирование» — «Публикация на веб-сервере…»

Откроется окно настройки свойств публикации на веб-сервере. Основные поля необходимые для публикации уже заполнены по умолчанию:

  • Имя виртуального каталога — имя по которому будет происходить обращение к база данных на веб-сервере. Может состоять только из символов латинского алфавита.
  • Веб сервер — выбирается из списка найденных на текущем компьютере веб-серверов. В нашем случае это Internet Information Services.
  • Каталог — физическое расположение каталога, в котором будут располагаться файлы виртуального приложения.
  • Соответствующими флагами можно указать типы клиентов для публикации, а также указать возможность публикации Web-сервисов. В расположенной ниже таблице можно отредактировать список Web-сервисов которые будут опубликованы, а также в столбце «Адрес» изменить синоним, по которому будет происходить обращение к данному Web-сервису.
  • Также для веб-сервера IIS есть возможность указать необходимость выполнения аутентификации на веб-сервере средствами ОС, установив соответствующий флаг.

Выбрав необходимые настройки публикации нажимаем «Опубликовать».

Если публикация прошла без ошибок, увидим соответствующее сообщение.

Публикация на веб-сервере IIS всегда выполняется для веб-сайта по умолчанию и для пула приложения по умолчанию. Стоит иметь ввиду, что при выполнении публикации из конфигуратора будет зарегистрирован 32-разрядный модуль расширения веб-сервера, а используемый по умолчанию пул приложений — DefaultAppPool — без настройки работает только с 64-разрядными приложениями. Соответственно, дальнейшие действия зависят от разрядности модуля расширения веб-сервера, который планируется использовать. Для 32-разрядного модуля расширения веб-сервера, необходимо разрешить пулу приложений использовать 32-разрядные приложения, либо же зарегистрировать 64-разрядный модуль расширения веб-сервера. Об этом пойдет речь ниже

6. Настройка IIS для использования 32-разрядного модуля расширения веб-сервера

Запустим Диспетчер служб IIS (Internet Information Services (IIS) Manager). Сделать это можно из Диспетчера серверов (Server Manager) выбрав в меню пункт «Средства» (Tools) — «Диспетчер служб IIS» (Internet Information Services (IIS) Manager).

Здесь, развернув дерево в окне подключений, увидим, что для веб-сайта по умолчанию —Default Web Site — появился преобразованный в приложение виртуальный каталог с именем, которое мы задавали при публикации базы данных. Для завершения публикации осталось только разрешить 32-разрядные приложения для пула приложений по умолчанию. Для этого перейдем в дереве подключений на вкладку «Пулы приложений» (Application Pools).

В списке пулов приложений найдем пул с именем DefaultAppPool. Кликнем по нему правой кнопкой мыши и в контекстном меню выберем пункт «Дополнительные параметры» (Advanced Settings).

В открывшемся окне параметров пула приложения, в группе «Общие» (General) найдем пункт «Разрешены 32-разрядные приложения» (Enable 32-Bit Applications) и установим значение параметра равным True. Затем сохраним изменения нажав «ОК».

7. Настройка IIS для использования 64-разрядного модуля расширения веб-сервера

Зарегистрировать 64-разрядный модуль расширения веб-сервера можно с помощью утилиты webinst.exe соответствующей версии, расположенной в каталоге bin, каталога с установленной программой «1С:Предприятие», либо воспользоваться приведенным ниже способом.

Запустим Диспетчер служб IIS (Internet Information Services (IIS) Manager). Сделать это можно из Диспетчера серверов (Server Manager) выбрав в меню пункт «Средства» (Tools) — «Диспетчер служб IIS» (Internet Information Services (IIS) Manager).

Здесь, развернув дерево в окне подключений, увидим, что для веб-сайта по умолчанию —Default Web Site — появился преобразованный в приложение виртуальный каталог с именем, которым мы задавали при публикации базы данных. Для завершения публикации осталось только указать данному приложению использовать 64-разрядный обработчик запросов. Для этого откроем страницу настройки сопоставления обработчиков для данного виртуально каталога, выбрав пункт «Сопоставление обработчиков» (Handler Mappings) на начальной странице приложения.

В таблице сопоставлений обработчиков найдем обработчик «1С Web-service Extension». Откроем данный обработчик, кликнув 2 раза по соответствующей строке в таблице.

Отредактируем обработчик, заменив путь к исполняемой dll 32-разрядного модуля расширения веб-сервера, который выбран в данный момент, на путь к 64-разрядной версии библиотеки. В данном примере меняем путь c «C:Program Files (x86)1cv88.3.4.389binwsisapi.dll» на «C:Program Files1cv88.3.4.389binwsisapi.dll» воспользовавшись кнопкой выбора. Изменив путь нажимаем «ОК» для сохранения изменений.

8. Подключение к опубликованной информационной базе через веб-браузер

Ну вот вроде и все. Для подключений к только что опубликованной базе данных, запускаем Internet Explorer, и в строке адреса вводим путь вида http://localhost/ . В данном примере это http://localhost/DemoAccounting/.

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

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

9. Подключение к опубликованной информационной базе через клиент «1С:Предприятия»

К опубликованной на веб-сервере информационной базе можно подключиться и с помощью тонкого клиента «1С:Предприятия». Для подключения откроем окно запуска «1С:Предприятие» и нажмем кнопку «Добавить» для добавления информационной базы.


В окне добавления информационной базы/группы установим переключатель в «Добавление в список существующей информационной базы» и нажмем «Далее».

Введем имя базы данных, как она будет отображаться в списке информационных баз (должно быть уникальным для данного списка), тип расположения выберем «На веб-сервере» и нажмем «Далее».

Вводим строку адреса для подключения к информационной базе (без префикса /ru_RU/). Также здесь можно указать параметры прокси-сервера (если есть) и способ аутентификации на веб-сервере. Указав необходимые настройки снова жмем «Далее».

Указываем параметры запуска для информационной базы и нажимаем «Готово» для завершения работы мастера.

После чего данная информационная база появится в списке баз окна запуска «1С:Предприятие». Обратим внимание что режим запуска Конфигуратор недоступен для данного типа подключения. Нажимаем «1С:Предприятие» для подключения к информационной базе.

10. Конфигурационные файлы виртуального каталога

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

Перейдем в каталог, который мы указывали во время публикации базы данных. В нем увидим два файла:

  • default.vrd
  • web.config

Оба файла доступны для просмотра и редактирования с помощью любого текстового редактора, например программы «Блокнот» (Notepad). Рассмотрим структуру этих файлов подробнее.

10.1. Файл default.vrd

В файле default.vrd описываются опубликованные Web-сервисы (элемент ), а также указывается имя виртуального приложения (атрибут base) и строка подключения к информационной базе «1С:Предприятие» (атрибут ib). В данном примере для файловой информационной базы, строка подключения будет следующей:

Как видно из примера, если в строке подключения встречаются символы, недопустимые с точки зрения стандарта XML (http://www.w3.org/TR/xml11/), они должны быть заменены соответствующим образом.

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

Для серверной информационной базы строка подключения будет иметь вид:

Где WIN2012 — имя кластера серверов «1С:Предприятие», а Accounting — имя базы данных в кластере.

Подробнее про структуру данного файла можно почитать в книге «Руководство администратора» 2-е издание , Приложение 2, глава 3.12.

10.2. Файл web.config

Файл web.config — это файл, определяющий параметры для ASP.NET web-приложения. В каждом web-приложении должен быть файл web.config, находящийся в его корневом каталоге. Наш виртуальный каталог не является исключением. В текущем файле содержатся данные об обработчике «1С Web-service Extension», обрабатывающем запросы к данному приложению. Обработчик настроен таким образом, что все запросы передаются библиотеке wsisapi.dll, расположенной в каталоге bin, каталога с файлами «1С:Предприятие». В случае использования серверных информационных баз, версия библиотеки должна соответствовать версии кластера серверов «1С:Предприятия».

Данный обработчик можно найти (или добавить, если его нет) в Диспетчере служб IIS. Для этого необходимо выделить вкладку с текущим приложением и в окне свойств выбрать пункт «Сопоставления обработчиков» (Handler Mappings).

В таблице сопоставлений обработчиков увидим наш обработчик «1С Web-service Extension». Если такого обработчика в списке нет, его следует добавить выбрав в окне «Действия» (Actions) пункт «Добавление сопоставления сценария с подстановочными знаками» (Add Wildcard Script Map…).

При добавлении вводим имя обработчика и указываем путь к файлу wsisapi.dll. Данные параметры можно изменить и для действующего обработчика выбрав пункт «Изменить…» (Edit…) в окне списка действий.

Необходимо также убедиться, что для обработчика стоит флаг «Выполнение» (Execute) в окне изменений разрешений функции. Вызвать данное окно можно выбрав пункт «Изменение разрешений функции…» (Edit Feature Permissions…) в окне «Действия» (Actions).

LAV_ СИТспец_маг2014-15 / Модуль1_2013-14 / Web-приложения ASP_NET

Разработка Web-приложений ASP .NET с использованием Visual Studio .NET

Принципы работы и структура Web-приложений на основе ASP.NET

Основы работы в Visial Studio .NET

Основы Web-программирования с использованием ASP.NET

Принципы разработки пользовательского интерфейса интернет-приложения

Использование Master Page и навигация при построении интернет-приложений

Навигация по Web-приложению

Использование тем при оформлении Web-приложения

Использование кэширования в Web-приложениях

Использование баз данных в приложениях ASP.NET

Принципы работы и структура Web-приложений на основе ASP.NET

Рассматривается архитектура современных Web-приложений, взаимодействие клиентской и серверной частей таких приложений, принципы их организации в среде ASP.NET

Цель лекции: познакомиться с архитектурой и особенностями организации Web-приложений, особенностями архитектуры ASP.NET и .NET Framework, принципами взаимодействия клиента и сервера при выполнении Web-приложения на основе ASP.NET.

Web-приложения представляют собой особый тип программ, построенных по архитектуре «клиент-сервер». Особенность их заключается в том, что само Web-приложение находится и выполняется на сервере — клиент при этом получает только результаты работы. Работа приложения основывается на получении запросов от пользователя (клиента), их обработке и выдачи результата. Передача запросов и результатов их обработки происходит через Интернет ( рис.1.1).

Рис. 1.1. Архитектура Web-приложения

Отображением результатов запросов, а также приемом данных от клиента и их передачей на сервер обычно занимается специальное приложение — браузер (Internet Expolrer, Mozilla, Opera и т. д.). Как известно, одной из функций браузера является отображение данных, полученных из Интернета, в виде страницы, описанной на языке HTML, следовательно, результат, передаваемый сервером клиенту, должен быть представлен на этом языке.

На стороне сервера Web-приложение выполняется специальным программным обеспечением (Web-сервером), который и принимает запросы клиентов, обрабатывает их, формирует ответ в виде страницы, описанной на языке HTML, и передает его клиенту. Одним из таких Web-серверов является Internet Information Services (IIS) компании Microsoft. Это единственный Web-сервер, который способен выполнять Web-приложения, созданные с использованием технологии ASP.NET.

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

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

прием данных от пользователя и сохранение их на сервере;

выполнение различных действий по запросу пользователя: извлечение данных из базы данных (БД), добавление, удаление, изменение данных в БД, проведение сложных вычислений;

аутентифицирование пользователя и отображение интерфейса системы, соответствующего данному пользователю;

отображение постоянно изменяющейся оперативной информации и т. д.

Краткое описание архитектуры ASP.NET и .NET Framework

ASP.NET — это платформа для создания Web-приложений и Web-сервисов, работающих под управлением IIS. Сегодня существуют другие технологии, позволяющие создавать Web-приложения. К ним относятся прежде всего, очень популярные сегодня языки PHP и PERL, более старая и менее популярная технология CGI и т. д. Однако ASP.NET отличается от них высокой степенью интеграции с серверными продуктами, а также с инструментами Microsoft для разработки доступа к данным и обеспечения безопасности. Кроме того, ASP.NET позволяет разрабатывать Web- и Windows-приложения, используя очень похожие технологические цепочки, одинаковые языки программирования, технологии доступа к данным и т. д. Более того, базовые языки программирования, с помощью которых сегодня возможна разработка Web-приложений, являются полностью объектно-ориентированными, что делает разработку исполнимой части, а также ее модификацию, обслуживание, отладку и повторное использование гораздо более простым занятием, чем в других технологиях. Существует достаточно большой перечень сильных сторон использования ASP.NET для создания сложных Web-приложений. Целью данного курса не является описание всех сильных и слабых сторон этой платформы.

Заметим лишь, что ASP.NET функционирует исключительно на серверах Windows, так как требует наличия IIS. Для создания Web-приложений, не требующих IIS, а использующих, например, Web-сервер Apache и работающих на серверах под управлением операционных систем, отличных от Windows, применяются другие технологии.

Важным моментом в понимании архитектуры ASP.NET является тот факт, что она является частью инфраструктуры .NET Framework. Более подробно об архитектуре и принципах работы .NET Framework можно узнать в [2]. Так как эта тема является слишком объемной и выходит за рамки данного курса, ограничимся лишь кратким описанием инфраструктуры .NET Framework.

Архитектура .NET Framework

Как утверждает корпорация Microsoft, до 80% средств, направленных на исследования и разработки, тратится на платформу .NET и связанные с ней технологии. Результаты такой политики на сегодняшний день выглядят впечатляюще. Так, область охвата платформы .NET просто огромна. Платформа состоит из четырех групп программных продуктов:

набор языков, куда входят С# и Visual Basic .NET; набор инструментальных средств разработки, в том числе Visual Studio .NET; обширная библиотека классов для построения Web-служб и приложений, работающих в Windows и в Интернете; а также среда выполнения программ CLR (Common Language Runtime — общеязыковая среда выполнения), в которой выполняются объекты, построенные на этой платформе;

набор серверов .NET Enterprise Servers, ранее известных под именами SQL Server 2000, Exchange 2000, BizTalk 2000 и др., которые предоставляют специализированные функциональные возможности для обращения к реляционным базам данных, использования электронной почты, оказания коммерческих услуг «бизнес-бизнес» (В2В) и т. д.;

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

новые некомпьютерные устройства, поддерживающие средства .NET, — от сотовых телефонов до игровых приставок.

Microsoft .NET поддерживает не только языковую независимость, но и языковую интеграцию. Это означает, что разработчик может наследовать от классов, обрабатывать исключения и использовать преимущества полиморфизма при одновременной работе с несколькими языками. Платформа .NET Framework предоставляет такую возможность с помощью спецификации CTS (Common Type System — общая система типов), которая полностью описывает все типы данных, поддерживаемые средой выполнения, определяет, как одни типы данных могут взаимодействовать с другими и как они будут представлены в формате метаданных .NET. Например, в .NET любая сущность является объектом какого-нибудь класса, производного от корневого класса System.Object. Спецификация CTS поддерживает такие общие понятия, как классы, делегаты (с поддержкой обратных вызовов), ссылочные и размерные типы.

Важно понимать, что не во всех языках программирования .NET обязательно должны поддерживаться все типы данных, которые определены в CTS. Спецификация CLS (Common Language Specification — общая языковая спецификация) устанавливает основные правила, определяющие законы, которым должны следовать все языки: ключевые слова, типы, примитивные типы, перегрузки методов и т. п. Спецификация CLS определяет минимальные требования, предъявляемые к языку платформы .NET. Компиляторы, удовлетворяющие этой спецификации, создают объекты, способные взаимодействовать друг с другом. Любой язык, соответствующий требованиям CLS, может использовать все возможности библиотеки FCL (Framework Class Library — библиотека классов платформы). CLS позволяет и разработчикам, и поставщикам, и производителям программного обеспечения не выходить за пределы общего набора правил для языков, компиляторов и типов данных.

Платформа .NET Framework является надстройкой над операционной системой, в качестве которой может выступать любая версия Windows 1) . На сегодняшний день платформа .NET Framework включает в себя:

четыре официальных языка: С#, VB.NET, Managed C++ (управляемый C++) и JScript .NET;

объектно-ориентированную среду CLR (Common Language Runtime), совместно используемую этими языками для создания приложений под Windows и для Internet;

ряд связанных между собой библиотек классов под общим именем FCL (Framework Class Library).

Отношения архитектурных компонентов платформы .NET Framework с концептуальной точки зрения представлены на рис.1.2.

Рис. 1.2. Архитектура .NET Framework

Самым важным компонентом платформы .NET Framework является CLR (Common Language Runtime), предоставляющая среду, в которой выполняются программы. Главная ее роль заключается в том, чтобы обнаруживать и загружать типы .NET и производить управление ими в соответствии с полученными командами. CLR включает в себя виртуальную машину, во многих отношениях аналогичную виртуальной машине Java. На верхнем уровне среда активизирует объекты, производит проверку безопасности, размещает объекты в памяти, выполняет их, а также запускает сборщик мусора.

Под сборкой мусора понимается освобождение памяти, занятой объектами, которые стали бесполезными и не используются в дальнейшей работе приложения. В ряде языков программирования (например, C/C++) память освобождает сам программист, в явной форме отдавая команды как на создание, так и на удаление объекта. В этом есть своя логика — «я тебя породил, я тебя и убью». Однако в CLR задача сборки мусора (и другие вопросы, связанные с использованием памяти) решается в нужное время и в нужном месте исполнительной средой, ответственной за выполнение вычислений.

На на рис.1.2. над уровнем CLR находится набор базовых классов платформы, над ним расположены слой классов данных и XML, а также слой классов для создания Web-служб (Web Services), Web- и Windows-приложений (Web Forms и Windows Forms). Собранные воедино, эти классы известны под общим именем FCL (Framework Class Library). Это одна из самых больших библиотек классов в истории программирования. Она открывает доступ к системным функциям, включая и те, что прежде были доступны только через API Windows, а также к прикладным функциям для Web-разработки (ASP.NET), доступа к данным (ADO.NET), обеспечения безопасности и удаленного управления. Имея в своем составе более 4000 классов, библиотека FCL способствует быстрой разработке настольных, клиент-серверных и других приложений и Web-служб.

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

Над этим уровнем находится уровень классов, которые расширяют базовые классы с целью обеспечения управления данными и XML. Классы данных позволяют реализовать управление информацией, хранящейся в серверных базах данных. В число этих классов входят классы SQL (Structured Query Language, язык структурированных запросов), дающие программисту возможность обращаться к долговременным хранилищам данных через стандартный интерфейс SQL. Кроме того, набор классов, называемый ADO.NET, позволяет оперировать постоянными данными. Платформа .NET Framework поддерживает также целый ряд классов, позволяющих манипулировать XML-данными и выполнять поиск и преобразования XML.

Базовые классы, классы данных и XML расширяются классами, предназначенными для построения приложений на основе трех различных технологий: Web Services (Web-службы), Web Forms (Web-формы) и Windows Forms (Windows-формы). Web-службы включают в себя ряд классов, поддерживающих разработку облегченных распределяемых компонентов, которые могут работать даже с брандмауэрами и программами трансляции сетевых адресов (NAT). Поскольку Web-службы применяют в качестве базовых протоколов связи стандартные протоколы HTTP и SOAP, эти компоненты поддерживают в киберпространстве подход «Plug & Play».

Инструментальные средства Web Forms и Windows Forms позволяют применять технику RAD (Rapid Application Development — быстрая разработка приложений) для построения Web- и Windows-приложений. Эта техника сводится к перетаскиванию элементов управления с панели инструментов на форму, двойному щелчку по элементу и написанию кода, который обрабатывает события, связанные с этим элементом.

Компиляция и язык MSIL

.NET-приложения исполняются иначе, чем традиционные Windows-приложения. Такие программы компилируются фактически в два этапа. На первом этапе исходный код компилируется во время построения проекта и вместо исполняемого файла с машинными кодами получается сборка 2) (assembly), содержащая команды промежуточного языка MSIL (Microsoft Intermediate Languageпромежуточный язык Microsoft). Код IL сохраняется в файле на диске. При этом файлы MSIL (сокращенно IL), генерируемые компилятором, например, С#, идентичны IL-файлам, генерируемым компиляторами с других языков .NET. В этом смысле платформа остается в неведении относительно языка. Самой важной характеристикой среды CLR является то, что она общая; одна среда выполняет как программы, написанные на С#, так и программы на языке VB.NET.

Второй этап компиляции наступает непосредственно перед фактическим выполнением страницы. На этом этапе CLR транслирует промежуточный код IL в низкоуровневый собственный машинный код, выполняемый процессором. Процесс происходит следующим образом: при выполнении .NET-программы системы CLR активизирует JIT-компилятор, который затем превращает MSIL во внутренний код процессора. Этот этап известен как оперативная компиляция «точно к нужному моменту» (Just-In-Time) или JIT-компиляция (JIT’ing), и он проходит одинаково для всех приложений .NET (включая, например, приложения Windows). При исполнении программы CLR берет на себя управление памятью, контроль типов и решает за приложение ряд других задач. На рис.1.3. показан этот двухэтапный процесс компиляции.

Рис. 1.3. Схема компиляции .NET-приложения

Стандартный JIT-компилятор работает по запросу. Когда вызывается тот или иной метод, JIT-компилятор анализирует IL-код и производит высокоэффективный машинный код, выполняемый очень быстро. JIT-компилятор достаточно интеллектуален, чтобы распознать, был ли код уже скомпилирован, поэтому во время выполнения программы компиляция происходит лишь при необходимости. По ходу своего выполнения .NET-программа работает все быстрее и быстрее, так как повторно используется уже скомпилированный код.

Спецификация CLS подразумевает, что все языки платформы .NET генерируют очень похожий IL-код. Кроме того, при компилировании программы в дополнение к MSIL формируется еще один компонент — метаданные. Они описывают данные, используемые программой, и это позволяет коду взаимодействовать с другим кодом. В результате объекты, созданные на одном языке, доступны и могут наследоваться на другом. То есть можно создать базовый класс на языке VB.NET, а производный от него класс — на языке С#.

В целом при написании приложения создается так называемый управляемый код (managed code), который выполняется под контролем среды исполнения CLR-приложения, не зависящей от языка. Поскольку приложение запускается под контролем CLR, управляемый код должен соответствовать определенным требованиям (т. е. компилятор должен создать MSIL-файл, предназначенный для CLR, а также использовать библиотеки .Net Framework 3) ), при выполнении которых он получает множество преимуществ, включая современное управление памятью, способность совмещать языки, высокий уровень безопасности передачи данных, поддержку контроля версии и понятный способ взаимодействия компонентов программного обеспечения 4) .

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

Конечно, компиляция не будет столь полезна, если ее выполнение будет необходимо каждый раз при запросе пользователем Web-страницы. К счастью, приложения ASP.NET не нужно компилировать всякий раз при запросе Web-страницы или Web-службы. Вместо этого код IL создается один раз и повторно генерируется только при изменении исходного кода. Подобным образом файлы собственного машинного кода кэшируются в системном каталоге с путем вроде С:\[WinDir]\Microsoft.NET\ Framework\[Version]\Temporary ASP.NET Files, где WinDir является каталогом Windows, a Version — номером установленной в данный момент версии .NET.


Каждое Web-приложение, разрабатываемое на основе ASP.NET состоит из информационной части, программного кода и сведений о конфигурации.

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

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

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

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

На рис.1.4. представлен пример простейшей страницы Web-приложения, содержащего всего лишь один элемент — кнопку. Как видно из рисунка, основой страницы является тело стандартного HTML-документа, внутри которого находится элемент form, а также кнопка button. Кроме того, в начале документа здесь присутствуют некоторые дополнительные элементы, которые будут рассмотрены позднее.

Рис. 1.4. Пример простейшей страницы Web-приложения

При запуске приложения данная страница отображается в окне браузера и выглядит следующим образом (рис.1.5.).

Рис. 1.5. Отображение страницы Web-приложения в окне браузера

В свою очередь, с кнопкой связан программный код, который выполняется при нажатии на нее. Этот код располагается в отдельном файле, окно которого в момент разработки выглядит как на рис.1.6.

Рис. 1.6. Файл, содержащий программный код Web-страницы

На самом деле при разработке Web-приложений на основе ASP.NET возможны два варианта организации Web-форм.

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

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

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

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

Рис. 1.7. Пример Web-формы, содержащей описание формы и программный код в одном файле

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

Рис. 1.8. Типовой сценарий взаимодействия элементов Web-приложения с клиентом

Как видно из рис.1.8, при обращении клиента к Web-приложению последнее запускается на сервере IIS. Запущенное приложение формирует отклик. Для этого на сервере создается экземпляр запрошенной Web-формы, она генерирует HTML-текст отклика, который и передается браузеру клиента. Сразу после этого экземпляр Web-формы уничтожается. Пользователь, получив HTML-страницу, сгенерированную приложением, имеет возможность заполнять различные поля формы (тестовые поля, переключатели и т. п.). После заполнения всех необходимых полей формы пользователь инициирует отправку данных, введенных им в страницу, обратно на сервер. Это происходит за счет использования технологии обратной отсылки, которая вызывается при выполнении определенных действий (например, нажатия на кнопку). Получив данные от пользователя, сервер создает новый экземпляр Web-формы, заполняет его полученными данными и обрабатывает все необходимые события. По окончании обработки сервер формирует HTML-код ответа и отправляет его клиенту, а затем уничтожает экземпляр Web-формы. Более подробно описанный сценарий изображен на рис. 1.9 и 1.10

Рис. 1.9. Подробный сценарий взаимодействия элементов Web-приложения с клиентом при первом запросе

Рис. 1.10. Подробный сценарий взаимодействия элементов Web-приложения с клиентом при запросе обратной отсылки

В момент окончания работы с Web-приложением пользователь либо закрывает браузер, либо переходит на другую интернет-страницу. В этот момент завершается сеанс работы пользователя с данным приложением, однако само приложение может быть завершено сервером не сразу после окончания последнего сеанса работы пользователя. Это связано с управлением распределением памяти платформой .NET Framework, которая основана на периодической проверке ссылок объектов. Если в результате такой проверки обнаружится, что объект больше не используется, сервер уничтожает его, освобождая таким образом занимаемую им память. Поэтому нельзя точно сказать, когда именно наступит событие Application_End для данного Web-приложения.

Такой принцип организации выполнения Web-приложений хорошо подходит для масштабируемых приложений с интенсивным сетевым обменом. Однако у него есть и недостатки. В частности, оказывается невозможным сохранять данные, принадлежащие форме, даже в течение работы пользователя с приложением. Т. е. если мы захотим создать некую переменную, хранящую, например идентификатор заказа, с которым мы в данный момент работаем, сделать это будет невозможно, т. к. форма после отправки клиенту сразу же уничтожается. Чтобы обойти этот недостаток, ASP.NET использует специальный механизм для сохранения данных, введенных в элементы управления Web-формы. Согласно этому принципу, в рамках каждого запроса на сервер отправляются все данные, которые были введены в элементы управления. При этом, как уже упоминалось выше, на сервере возникает событие Page_Init, целью которого является создание Web-формы и ее инициализация. В процессе инициализации в элементы управления созданной формы записываются переданные от клиента данные. Теперь эти данные становятся доступны приложению посредством обработки события Page_Load, возникающего при каждом обращении к странице.

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

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

После этого инициируется событие Page_Load. Большинство Web-страниц используют это событие для выполнения инициализации, например, заполнения полей данными, установки начальных значений для элементов управления и т. д. Кроме того, в процедуре обработки данного события возможно определение того, была ли загружена страница впервые или обращение к ней осуществляется повторно в рамках технологии обратной отсылки, произошедшей в результате нажатия пользователем кнопки либо другого элемента управления, размещенного на странице. В английской терминологии обратная отсылка данных на сервер называется post back. Для определения текущего состояния страницы необходимо проверить свойство Page.IsPostBack, которое будет иметь значение false при первом запуске страницы. Определение того, производится ли первое обращение к данной странице либо повторное, важно, так как позволяет производить инициализацию только в том случае, когда страница запрашивается впервые. Так, например, при обратной отсылке данных на сервер не только нет необходимости производить инициализацию, устанавливая начальные значения элементов управления, но это даже может быть ошибкой, так как эти элементы управления должны получить значения, переданные им от пользователя. В дальнейшем, в случае, если для страницы была произведена обратная отсылка, вызываются события элементов управления, размещенных на странице. Эти события запоминаются в тот момент, когда пользователь производил действия с элементами управления в окне браузера, а при передаче данных на сервер исполняются по порядку.

После вызова события Page_Load происходит так называемая проверка достоверности страницы. Необходимость такой проверки возникает тогда, когда пользователь ввел в элементы управления, расположенные на странице, данные, которые впоследствии необходимо сохранить или использовать для обработки. В идеале проверка достоверности должна происходить на стороне клиента, чтобы пользователь был проинформирован о проблемах с вводом данных перед их отправкой на сервер, т. к. это позволяет уменьшить объем информации, передаваемой по сети, и ускорить процесс обмена данными с сервером. Однако, независимо от того, была ли произведена проверка достоверности данных на стороне клиента или нет, ее необходимо осуществлять и на стороне сервера. Осуществление проверки достоверности — достаточно сложная задача. Сложность эта обусловлена различием моделей клиентского и серверного программирования. В ASP.NET существует несколько элементов управления проверкой достоверности. Они выполняют автоматическую клиентскую и серверную проверку. В случае, если проверка достоверности выявила ошибки во введенных данных, ASP.NET уведомит об этом пользователя и не позволит осуществлять дальнейшую работу со страницей до устранения ошибок. Более подробно организация проверки достоверности рассматривается в лекции 5.

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

Пусть у нас существует страница с кнопкой (Button) «Отправить» и текстовым полем (TextBox) без автоматической обратной отсылки. При изменении текста в текстовом поле и щелчке на кнопке «Отправить» инициируется обратная отправка данных страницы на сервер (этого не произошло при изменении текста в текстовом поле, так как соответствующая опция этого элемента управления AutoPostBack установлена в false). В момент обратной отправки страницы на сервер ASP.NET запускает следующие события:

В результате обработки всех инициированных событий генерируется HTML-код страницы, который и передается клиенту, после чего выполняется Очистка, в рамках которой инициируется событие Page_Unload. Оно предназначено для освобождения ресурсов, занятых данной страницей. Событие Page.PreRender инициируется после того, как сервер обработал все события страницы, но генерация ее HTML-кода еще не произошла. Обычно это событие используется ASP.NET для привязки элементов управления к источникам данных непосредственно перед созданием HTML-кода и отправкой его клиенту.

Описанная последовательность событий позволяет создать описание жизненного цикла Web-страницы, изображенного на рис 1.11.

Рис. 1.11. Жизненный цикл страницы ASP.NET

Вернемся, однако, к проблеме сохранения данных страницы в промежутке между обращениями к ней. Для реализации этого механизма в ASP.NET используются состояния отображения (view state). Состояние отображения Web-формы доступно только внутри этой Web-формы. Если необходимо сделать данные, введенные в Web-форму, доступными другим Web-формам одного и того же приложения, эти данные необходимо сохранить в объектах с более глобальной областью видимости, которые называют переменными состояния. Объектов переменных состояний два: Application и Session. Переменные состояния Application доступны всем пользователям приложения и могут рассматриваться как глобальные переменные, обращение к которым возможно из любых сеансов. Переменные состояния Session доступны только в рамках одного сеанса, и поэтому они оказываются доступными только одному пользователю. В переменных состояния можно хранить данные любого типа. В силу того, что переменные состояния фактически являются глобальными переменными, для работы с ними желательно выработать стратегию их использования в приложении.

Более подробно работа с состояниями отображения и переменными состояния будет рассмотрена в разделе «Класс Page» в лекции 2.

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

Существует несколько технологий разработки информационных систем, ориентированных на Интернет. Одной из наиболее мощных технологий является ASP.NET. Web-приложения, разработанные на основе ASP.NET работают исключительно в среде IIS платформы Windows. ASP.NET является частью инфраструктуры .NET Framework. Данная архитектура является основой для построения современных приложений, ориентированных на работу в среде Windows, и может использовать любой из совместимых языков программирования для написания программного кода. Особенностью .NET Framework является то, что различные модули одной и той же программной системы могут быть написаны на различных языках программирования. Одним из важнейших элементов данной архитектуры является наличие сборщика мусора, осуществляющего очистку неиспользуемых областей памяти и избавляющего программиста от проблемы «утечки памяти».

Каждое Web-приложение ASP.NET состоит из 3 частей: информационной, программного кода и сведений о конфигурации. Информационная часть включает в себя описание страницы в формате HTML и содержит как элементы языка гипертекстовой разметки документа, так и элементы ASP.NET. Программный код реализует бизнес-логику, оформленную в виде процедур обработки данных. Этот код исполняется сервером и взаимодействует с динамическими элементами информационной части, позволяя динамически формировать содержимое страницы, передаваемой клиенту. Сведения о конфигурации содержат параметры, определяющие способ исполнения приложения на сервере, параметры безопасности, реакцию на возникающие ошибки и др.

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

1) Благодаря архитектуре среды CLR в качестве операционной системы может выступать любая версия Unix и вообще любая ОС. 2) Сборка (assembly) – это коллекция файлов, которая предстает перед программистом в виде единой библиотеки динамической компоновки (DLL) или исполняемого файла (EXE). В технологии .NET сборка является базовой единицей для повторного использования, контроля версий, защиты и развертывания. Среда CLR представляет программисту ряд классов, позволяющих манипулировать сборками. 3) Библиотека классов .NET открывает доступ ко всем возможностям CLR. Классы, составляющие эту библиотеку, организованы при помощи пространств имен. Каждое пространство имен заключает в себе классы, выполняющие близкие функции. 4) Альтернативой управляемому коду является неуправляемый код, который не выполняется CLR. Однако до появления .NET Framework все Windows-программы использовали именно неуправляемый код.

Asp средство создания веб серверов

Приняв решение опубликовать в «СР» эту статью, редакция отдавала себе отчет, что значительному числу сетевых администраторов и начальников 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.
обсуждение статьи

Илон Маск рекомендует:  Приложение b отличия от css1
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL