Главная » Delphi » Соглашения по установке приложений в Internet (брандмауэры)

0

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

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

Компонент TWebConnection является производным от компонента TSoсketCon- nection и позволяет преобразовать трафик DataSnap в поток  протокола HTTP, ис пользующего самый  открытый порт  в мире — порт  НТТР  (по умолчанию порт  80). На самом деле этот  компонент поддерживает даже протокол SSL, благодаря чему можно воспользоваться безопасными соединениями и избежать проблем с брандмауэрами. В конце  концов, если какая либо  корпорация не предоставит возможности соединения по протоколу HTTP, то связаться с ней не удастся никакими другими средствами.

Это небольшое чудо осуществляется за счет расширения ISAPI компании Borland, с по мощью которого трафик HTTP можно преобразовать в поток DataSnap и наоборот. В этом отношении динамическая библиотека ISAPI будет работать точно так же, как и библиотека ScktSrvr для соединений типа сокетов. Расширение ISAPI (библиотека httpsrvr.dll) должно  находиться в каталоге, допускающем  выполнение кода. Например, в случае IIS4 для этого файла по умолчанию будет использоваться каталог C:\Inetpub\Scripts.

Еще одним  преимуществом использования компонента TWebConnection является

поддержка буферизации объектов (pooling). Это позволяет сэкономить ресурсы серве

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

Следующим шагом в этом направлении будет создание модуля удаленных  данных  в качестве Web службы. Применение модуля данных  SOAP не только  обеспечивает все преимущества компонента TWebConnection, но и позволяет клиенту  использовать промышленный стандарт протокола SOAP. Кроме  того,  это обеспечивает для сервера приложений возможность использовать такие  системы, как .Net,  Sun  ONE  и другие совместимые с SOAP промышленные стандарты.

Если  в приложении  DataSnap используется  буферизация модуля  удаленных   дан ных,  то  в  его  методе   UpdateRegistry необходимо вызывать  методы   Register- Pooled и UnRegisterPooled (пример реализации метода  UpdateRegistry содер жится   в  листинге 21.1).  Вызов  метода  RegisterPooled осуществляется приблизи тельно так:

RegisterPooled(ClassID, 16, 30);

В данной строке приложению DataSnap сообщается, что  в буфере  может  распола гаться 16 объектов и любой экземпляр объекта будет удален, если он не был активен в течение 30 минут. Если объекты удалять не нужно,  то присвойте этому параметру ну левое значение.

В клиентскую часть приложения не нужно вносить никаких существенных изменений. Просто используйте  компонент TWebConnection вместо  компонента TDispatchCon- nection, заполните его соответствующие свойства и клиент будет готов  взаимодейство вать с сервером по протоколу HTTP.  При  использовании компонента TWebConnection вместо задания имени или адреса компьютера, на котором установлен сервер, следует ука зать полный адрес URL файла  httpsrvr.dll. На рис. 21.11 представлен типичный фраг мент установки с использованием компонента TWebConnection.

Рис. 21.11. Установка компонента  TWebCon- nection во время разработки

Еще одним  преимуществом использования транспортного протокола HTTP  явля ется то, что операционная система  типа Windows NT Enterprise позволяет объединять серверы в кластеры. При  этом  для серверной части  приложения обеспечивается ре альная  отказоустойчивость и балансировка загрузки.  Более  подробная информация о кластеризации приведена на Web странице по адресу:

http://www.microsoft.com/ntserver/ntserverenterprise/exec/overview/

clusteringОграничения, обусловленные использованием компонента TWebConnection относительно невелики, при  этом  они  с лихвой  окупаются  увеличением количе ства  клиентов, которые могут обращаться к приложению сервера. Эти  ограниче ния  заключаются в том,  что  на компьютере клиента необходимо установить файл wininet.dll, а при  использовании компонента TWebConnection нельзя  приме нять обратные вызовы.

Резюме

В настоящей главе  представлены краткие сведения о технологии DataSnap. Здесь обозначены лишь  основные возможности этой  технологии, а рассмотрение всех  ее возможностей выходит за рамки  одного  раздела. Даже  изучив  все нюансы  DataSnap, можно  постоянно совершенствовать свои знания и расширять возможности созда ваемых  приложений, используя C++Builder  и JBuilder. В среде  JBuilder с использова нием все той же технологии DataSnap и концепций, изученных в данной главе, можно реализовать доступ к серверу  приложения с различных платформ и, тем самым,  дос тичь истинного совершенства.

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

Источник: Тейксейра, Стив, Пачеко, Ксавье.   Borland Delphi 6. Руководство разработчика. : Пер.  с англ. — М. : Издательский дом “Вильямс”, 2002. —  1120 с. : ил. — Парал. тит. англ.

По теме:

  • Комментарии