<
  • Главная
Статьи

Розробка серверних Web-додатків на Delphi 5.0

  1. Налагодження серверних Web-додатків Якщо розроблено досить складне Web-додаток в стандарті ISAPI...
  2. Контроль налаштування реєстру NT при налагодженні Web-додатків під керуванням IIS 4.0

Налагодження серверних Web-додатків

Якщо розроблено досить складне Web-додаток в стандарті ISAPI (NSAPI), його необхідно налагодити. Цей процес істотно відрізняється від загальноприйнятої налагодження звичайних Windows-додатків в середовищі Delphi, так як створене Web-додаток запускається лише у відповідь на запити, одержувані від браузера клієнта через Web-сервер. Запуск навіть самого простого Web-додатки безпосередньо з середовища Delphi 5.0 неможливий, оскільки втрачається його зв'язок з Web-сервером. Тоді і додаток не може отримувати запити від клієнта і, отже, реагувати на них. Методи налагодження визначаються також типом Web-сервера.

На платформі NT в якості Web-сервера найдоцільніше з точки зору доступності використовувати MS IIS версій 2-4, а в якості браузера MS IE -версії не нижче четвертої. Операційна система Windows NT 4.0 поставляється в комплекті з MS IIS 2.0 (дистрибутив - в I386InetSrv). Можна також встановити безкоштовно розповсюджуваний пакет NTOptPak, в який входить MS IIS 4.0, більш поширена, ніж версії 2.0 і 3.0, і позбавлена ​​їх недоліків.

Налаштування налагодження Web-додатки разом з MS IIS 4.0 в інтегрованому середовищі Delphi досить складна і трудомістка, головним чином, через внесення безлічі змін до реєстру. Тому має сенс спочатку налагодити такий додаток з MS IIS версії 2 або 3.

ISAPI- і NSAPI-додатки є динамічні бібліотеки DLL з зумовленими адресами входу. Web-сервер запускає Web-додатки передачею запитів на ці адреси. Для забезпечення їх зв'язку потрібно встановити певні параметри. Причому перед тим, як почнеться робота Web-додатки, Web-сервер повинен бути зупинений.

При налагодженні Web-додатків з MS IIS в меню Run / Parameters вводиться наступне: Host Application: c: winntsystem32inetsrvinetinfo.exe (маршрут до файлу має відповідати фактичному) і Run / Parameters: -e w3svc. Це дозволить запускати MS IIS 2.0 і 3.0 і виробляти налагодження ISAPI DLL під управлінням Web-сервера.

Якщо на сервері встановлений MS IIS версії 4.0 або більш пізньої, то в конфігурацію Windows NT 4.0 доведеться внести цілий ряд змін.

  • За допомогою утиліти-конфігурувати DCOMCnfg потрібно змінити обліковий запис (user account) в розділі identify сервісу MS IIS Admin Service на ім'я того користувача, який буде виконувати налагодження.
  • З використанням редактора реєстру (REGEDIT) або аналогічної утиліти слід видалити імена LocalService з усіх подключей, пов'язаних з аналогічними структурами IISADMIN, які входять у галузь реєстру HKEY_CLASSES_ROOT / AppID і HKEY_ CLASSES_ROOT / CLSID. Розділ LocalService присутній в складі наступних подключей: {61738644-F196-11D0-9953-00C04FD919C1} // IIS WAMREG admin Service; {9F0BD3A0-EC01-11D0-A6A0-00A0C922E752} // IIS Admin Crypto Extension; {A9E69610-B80D-11D0-B9B9-00A0C922E750} // IISADMIN Service. Крім того, з двох перших подключей вузлів AppID потрібно видалити ім'я RunAs, а останній доповнити значенням Interactive User.
  • Далі із застосуванням REGEDIT необхідно додати підключи LocalService32 до всіх структур, пов'язаних з IISADMIN і належать до вузла CLSID. Іншими словами, кожен підключ вузла CLSID, вказаний в попередньому пункті, або будь-який інший, під яким знайдено ім'я LocalService keyword, слід доповнити підключити LocalService32. Після чого потрібно встановити за замовчуванням для цих нових подключей значення: c: winntsystem32inetsrvinetinfo.exe -e w3svc (з урахуванням фактичного розташування файлу inetinfo.exe).
  • Слід встановити в dword: 3 значення Start для подключей: HKEY_LOCAL_MACHINESYSTEM CurrentControlSetServicesIISADMIN, HKEY_LOCAL_MACHINESYSTEM CurrentControlSetServicesMSDTC і HKEY_LOCAL_MACHINESYSTEM CurrentControlSetServicesW3SVC.

Щоб повернути реєстр в початкове положення після закінчення процесу налагодження, необхідно виконати зворотні операції. Вони досить трудомісткі і вимагають підвищеної уваги. Але можна автоматизувати процес переналаштування реєстру, розробивши власну програму, що допоможе швидко визначити його стан без пошуку, за допомогою стандартних засобів перегляду і корекції, і перейти від налагодження до роботи ОС в штатному режимі. Така програма призначена для багаторазового використання. В якості основного класу при розробці можна вибрати Tregistry, а для аналізу, читання і запису значень, а також видалення подключей підійдуть численні методи цього компонента: ReadKey, WriteFloat, WriteString, CloseKey, DeleteKey і т. П.

Така програма допоможе також контролювати фактичний стан реєстру в потрібних підключити. Робота на цьому рівні дуже відповідальна, оскільки будь-яка помилка може викликати неприпустимі зміни в найважливішому для ОС механізмі і привести до перевстановлення всієї системи. Тому доцільно освоїти основні методи читання фрагментів реєстру, а видалення, створення та запис виконувати спочатку тільки на тестовій гілки системи. Якщо наведений нижче текст (лістинг 5) вставити, наприклад, в підпрограму, що реагує на подія відкриття форми OnActivate, то у вікні Label1 при налаштуванні реєстру на режим налагодження з'явиться ім'я підключа LocalServer32, а у вікні Edit1 - відповідне значення за замовчуванням: c: winntsystem32inetsrv inetinfo.exe -e w3svc.

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

При налагодженні Web-додатків з Personal Web Server під управлінням Windows 95/98 в меню Run / Parameters вводяться такі параметри: Host Application: c: Program Fileswebsvcsysteminetsw95.exe; Run Parameters: -w3svc. Вони дозволять запускати Personal Web Server і налагоджувати ISAPI DLL. Для настройки на налагодження Web-додатків з сервером Netscape Server версії 2.0 відповідно до рекомендацій фірми Borland потрібно додатково змінити конфігурацію. Спочатку слід скопіювати файл ISAPITER.DLL (з каталогу Bin) в каталог C: NetscapeServerNsapiExamples (з урахуванням фактичного розміщення файлів). Потім необхідно провести перетворення в серверних конфігураційних файлах, розташованих в каталозі C: ​​NetscapeServerHttpd-Config.

  • У файлі OBJ.CONF file після рядка Init fn = load-types mime-types = mime.types потрібно додати рядок Init funcs = «handle-isapi, check-isapi, log-isapi» fn = «load-modules» shlib = « c: / netscape / server / nsapi / examples / ISAPIter.dll ».
  • У секції
  • В кінці файлу OBJ.CONF необхідно додати секцію.
  • В кінці файлу MIME.TYPES слід додати рядок type = magnus-internal / isapi exts = dll.

Доповнення в першому і другому діях вносяться однієї безперервної рядком. Потім для налагодження Web-додатків під керуванням сервера Netscape Fast Track потрібно встановити параметри Host Application: c: Netscapeserverinhttpdhttpd.exe і Run Parameters: c: Netscapeserverhttpd-config. Вони дозволяють запустити сервер, а також вказують шлях до конфігураційним файлів.

Створення DLL-додатків для роботи під управлінням Windows NT також має свою специфіку. Необхідно розширити права користувача так, щоб стало можливим налагодити DLL-програми. Робить це адміністратор Windows NT через програму User Manager, призначивши Act As Part Of The Operating System (робота в режимі операційної системи) в меню Policies / User Rights (обов'язково вказавши Show Advanced User Rights) тому користувачеві-програмісту, який буде здійснювати операцію. Подібна процедура незручна тому, що після завершення налагодження потрібно відновити вихідні права користувача.

Перед запуском програми слід встановити у відповідних місцях початкового тексту програми точки переривання таким чином, щоб при передачі Web-сервером запиту в DLL-додаток переривалося б виконання програми і можна було б провести налагодження.

Після налагодження DLL-додатки в форматі ISAPI або NSAPI можна швидко перекомпіліровать вихідні тексти в exe-файл формату CGI / WinCGI, додавши налагоджений Web-модуль в репозитарій. При цьому потрібно присвоїти назву Web-модулю, дати опис, вибрати сторінку репозитария (наприклад, Data Modules) і ікону, вказати прізвище автора. Створений Web-модуль зберігається в якості шаблону. Потім через меню File / New слід викликати майстер Web Server Application. У діалозі New Web Server Application вибрати CGI або WinCGI. Стерти автоматично згенерований Web-модуль і через меню File / New встановити шаблон налагодженого додатки, який був раніше збережений на відповідній сторінці.

За допомогою Delphi 5.0 можна створювати CGI / WinCGI-додатки, які у вигляді exe-файлів повинні безпосередньо запускатися Web-сервером. Однак методика їх налагодження дещо складніше, ніж DLL-додатків, оскільки потрібно моделювати сервер шляхом створення конфігураційного файлу з параметрами, що включають інформацію з запиту. Потім потрібно запустити WinCGI-додаток, вказавши повні адреси файлу, що містить інформацію від клієнта, і файлу, в якому повинен бути записана відповідь. Після цього можна, як зазвичай, налагоджувати Web-додаток.

Механізм роботи CGI / WinCGI-додатків простіше, ніж у ISAPI / NSAPI-додатків. При кожному зверненні вони запускаються в окремому потоці, тому перетину з багатопотокових механізмом не відбувається. Крім того, в CGI / WinCGI-додатках не виникає проблем, що мають місце при кешуванні Web-модулів ISAPI / NSAPI-додатків.

Таким чином, можна полегшити настройку при налагодженні Web-додатків, використовуючи спрощену версію MS IIS 2.0. Отримані програми, як правило, можуть працювати і під управлінням MS IIS 4.0. При цьому слід враховувати деякі незначні на перший погляд деталі, які можуть істотно ускладнити процес налагодження серверних додатків, як-то: проблеми з установкою стану реєстру, попередня настройка доступу до певних каталогів і файлів і послідовність виконання операцій.

Розглянемо процес налагодження Web-серверного додатка iserver.dll, пропонованого розробниками Delphi 5.0. Його вихідні тексти (iserver.dpr, main.pas, main.dfm) знаходяться в каталозі ... Program FilesBorlandDelphi5 DemosWebserv, а файлова база даних - в каталозі ... Program FilesCommon FilesBorland SharedData. На цей же каталог повинен вказувати і DBDemos, відрегульована за допомогою програми-адміністратора bdeAdmin.exe, наявної в ... Program FilesCommon FilesBorland SharedBDE.

Саме DLL-додаток повинен бути скомпільовано в каталог, з якого Web-сервер може виробляти запуск exe-програм. Таким може бути, наприклад, створюваний за замовчуванням (при установці Web-сервера) віртуальний каталог Web-сервера SCRIPTS або аналогічний, створений заново. Після внесення рекомендованих змін до реєстру NT при налагодженні програми під управлінням MS IIS 4.0 Web-сервер може запускатися тільки з середовища Delphi 5.0. А в разі використання MS IIS 2.0 або 3.0 за роботою Web-сервера доводиться стежити програмісту, запускаючи і зупиняючи відповідний сервіс World Wide Web Publishing Service з вікна Services панелі управління.

0 за роботою Web-сервера доводиться стежити програмісту, запускаючи і зупиняючи відповідний сервіс World Wide Web Publishing Service з вікна Services панелі управління

Перед налагодженням MS IIS повинен бути зупинений, а починати роботу він буде запуском Web-додатки (DLL-програми) з середовища Delphi 5.0. Спочатку розумно перевірити, чи працює вже налагоджене додаток, таке як демонстраційний приклад Iserver.dll. Для цього потрібно помістити вихідний файл в розділ SCRIPTS. У вікні Services слід перевірити, чи підключений сервіс Wide Web Publishing Service, якщо ж ні - потрібно натиснути кнопку Start. Потім у вікні браузера потрібно набрати ім'я ПК або IP-адресу.

Іноді програма повністю не запускається, хоча все начебто виконано правильно, т. Е. MS IIS працює і є доступ до запуску DLL-додатки. В цьому випадку можуть з'явитися повідомлення про «внутрішньої» помилку сервера, наприклад про невдалу ініціалізації BDE, неможливості працювати з закритою таблицею і т. П. Подібна інформація свідчить про відсутність права користувача на доступ до каталогу ... BDE і / або ... DATA, який, якщо необхідно, відкривається або закривається натисканням правої кнопки миші на властивості (properties / Security / permissions) відповідного компонента (диска, каталогу або файлу).

Перед запуском MS IIS потрібно встановити протокол TCP / IP і вибрати який-небудь (фіктивний) IP-адреса, наприклад 222.10.1.220, оскільки при розробці та налагодженні серверних додатків ПК слід відключити від Internet. Роботу TCP / IP можна протестувати, набравши спочатку консольную команду ping 127.0.0.1, а потім ping 222.10.1.220. У разі успішного встановлення протоколу буде отримана відповідь типу? Reply from 127.0.0.1: bytes = 32 time

Включившись в роботу, завершите функціонування MS IIS з вікна Services панелі управління. Потім, запустивши Delphi 5.0 і відкривши вказаний проект, розставте точки зупину в тексті модуля main, а після установки параметрів завантажте налагоджувати модуль через меню Run / Add Breakpoint / Module Load Breakpoint. Відкрийте вікно Modules, натиснувши комбінацію клавіш ++ m, і переконайтеся, що там є рядок: iserver.dll not loaded. Потім, набравши комбінацію клавіш + (або натиснувши кнопку Run), запустіть Web-сервер. У вікні Modules з'явиться список модулів, запущених під управлінням MS IIS, але налагоджувати модуль ще не буде завантажений.

Функціонування модуля почнеться після запуску браузера і набору рядки типу http: // 222.10.1.220/scripts/iserver.dll/. При цьому у вікні Modules можна побачити все вхідні точки і модулі, пов'язані з налагоджувати додатком (рис. 7). Потім почнеться безпосередня налагодження, і в iserver.dpr на рядку Application.Initialize курсор зупиниться. Тепер потрібно знову запустити додаток, натиснувши кнопку Run. Наступний останов буде в точці переривання. Час в онлайні браузера з сервером обмежена певними параметрами налаштування браузера, а тому не слід зволікати, інакше зв'язок клієнт-сервер перерветься і процес налагодження припиниться. Тоді можна збільшити час з'єднання і продовжити налагодження.

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

література

1. Developer? S Guide. Borland Delphi 5 for Windows 95 & Windows NT. Inprise Corp.
2. Калверт Ч. Delphi 4. Енциклопедія користувача. - Київ: ДиаСофт, 1998..
3. Тейксейра С., Ксав'є П. Delphi 4. Керівництво розробника. - Київ; М .: Вільямс, 1999..
4. Дарахвелидзе П.Г., Марков Є.П. Delphi 4. - СПб .: БХВ-Санкт-Петербург, 1999..
5. Канту М., Гуч Т. Delphi. Керівництво розробника. - Київ: Століття ++; М .: ентропія, ДЕСС, 1999..
6. Чен В., Беррі В. Реєстр Windows NT для професіоналів. - СПб: Пітер Ком, 1999..
7. Даніелс Т. 1001 секрет Windows NT. - М .: Російська редакція, 1999..
8. Microsoft Internet Information Server. - М .: Російська редакція, 1997..
9. Microsoft Internet Information Server 4.0 і Microsoft Proxy Server 2.0. - М .: Російська редакція, 1997..

З автором Олександром Семеновичем Чубукова можна зв'язатися за адресами e-mail: [email protected] , а[email protected]

Контроль налаштування реєстру NT при налагодженні Web-додатків під керуванням IIS 4.0

var Reg: TRegistry; begin try Reg: = TRegistry.Create; Reg.RootKey: = HKEY_CLASSES_ROOT; Label1.Caption: =? LocalServer32 ?; if Reg.OpenKey (? CLSID {A9E69610-B80D- 11d0-B9B9-00A0C922E750} ?, False) then begin if not Reg.OpenKey (? CLSID {A9E69610- B80D-11d0-B9B9-00A0C922E750}? + ?? +? LocalServer32 ?, False) then Edit1.Text: = ?? else Edit1.Text: = Reg.ReadString (??); end; Reg.CloseKey; finally Reg.Free; end; // try Reg: = TRegistry.Create;

222.10.1.220. У разі успішного встановлення протоколу буде отримана відповідь типу?
1.Caption: =?
LocalServer32 ?
CLSID {A9E69610-B80D- 11d0-B9B9-00A0C922E750} ?
CLSID {A9E69610- B80D-11d0-B9B9-00A0C922E750}?
LocalServer32 ?
1.Text: = ?


Новости
  • Виртуальный хостинг

    Виртуальный хостинг. Возможности сервера распределяются в равной мере между всеми... 
    Читать полностью

  • Редизайн сайта

    Редизайн сайта – это полное либо частичное обновление дизайна существующего сайта.... 
    Читать полностью

  • Консалтинг, услуги контент-менеджера

    Сопровождение любых интернет ресурсов;- Знание HTML и CSS- Поиск и обновление контента;-... 
    Читать полностью

  • Трафик из соцсетей

    Сравнительно дешевый способ по сравнению с поисковым и контекстным видами раскрутки... 
    Читать полностью

  • Поисковая оптимизация

    Поисковая оптимизация (англ. search engine optimization, SEO) — поднятие позиций сайта в результатах... 
    Читать полностью