MIDAS и создание серверов приложений

.<%d0%b8%d0%bc%d1%8f%20OLE-%d1%81%d0%b5%d1%80%d0%b2%d0%b5%d1%80%d0%b0>,%20%d0%bd%d0%b0%d0%bf%d1%80%d0%b8%d0%bc%d0%b5%d1%80%20MyAppSrv.MyRemDataMod1.%20%d0%a1%d0%b2%d0%be%d0%b9%d1%81%d1%82%d0%b2%d0%be%20ServerGUID%20%d0%bc%d0%be%d0%b6%d0%bd%d0%be%20%d0%bd%d0%b5%20%d1%83%d1%81%d1%82%d0%b0%d0%bd%d0%b0%d0%b2%d0%bb%d0%b8%d0%b2%d0%b0%d1%82%d1%8c.%20%d0%95%d1%81%d0%bb%d0%b8%20%d1%81%d0%b5%d1%80%d0%b2%d0%b5%d1%80%20%d0%bf%d1%80%d0%b8%d0%bb%d0%be%d0%b6%d0%b5%d0%bd%d0%b8%d0%b9%20%d0%bd%d0%b5%20%d0%b7%d0%b0%d1%80%d0%b5%d0%b3%d0%b8%d1%81%d1%82%d1%80%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%20%d0%bd%d0%b0%20%d0%ba%d0%be%d0%bc%d0%bf%d1%8c%d1%8e%d1%82%d0%b5%d1%80%d0%b5,%20%d0%b3%d0%b4%d0%b5%20%d1%80%d0%b0%d0%b7%d1%80%d0%b0%d0%b1%d0%b0%d1%82%d1%8b%d0%b2%d0%b0%d0%b5%d1%82%d1%81%d1%8f%20%d0%ba%d0%bb%d0%b8%d0%b5%d0%bd%d1%82,%20%d0%b7%d0%bd%d0%b0%d1%87%d0%b5%d0%bd%d0%b8%d0%b5%20%d1%8d%d1%82%d0%be%d0%b3%d0%be%20%d1%81%d0%b2%d0%be%d0%b9%d1%81%d1%82%d0%b2%d0%b0%20%d0%b4%d0%be%d0%bb%d0%b6%d0%bd%d0%be%20%d0%be%d1%81%d1%82%d0%b0%d1%82%d1%8c%d1%81%d1%8f%20%d0%bf%d1%83%d1%81%d1%82%d1%8b%d0%bc,%20%d0%b8%20%d1%8d%d1%82%d0%be%20%d0%bd%d0%b5%20%d0%bf%d0%be%d0%bc%d0%b5%d1%88%d0%b0%d0%b5%d1%82%20%d1%81%d0%be%d0%b2%d0%bc%d0%b5%d1%81%d1%82%d0%bd%d0%be%d0%b9%20%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%b5%20%d1%81%d0%b5%d1%80%d0%b2%d0%b5%d1%80%d0%b0%20%d0%b8%20%d0%ba%d0%bb%d0%b8%d0%b5%d0%bd%d1%82%d0%b0%20-%20%d0%b2%d0%b5%d0%b4%d1%8c%20%d0%b2%20%d0%be%d0%b1%d1%89%d0%b5%d0%bc%20%d1%81%d0%bb%d1%83%d1%87%d0%b0%d0%b5%20%d0%bf%d1%80%d0%b8%20%d1%80%d0%b0%d1%81%d0%bf%d1%80%d0%be%d1%81%d1%82%d1%80%d0%b0%d0%bd%d0%b5%d0%bd%d0%b8%d0%b8%20%d0%ba%d0%bb%d0%b8%d0%b5%d0%bd%d1%82%d1%81%d0%ba%d0%be%d0%b3%d0%be%20%d0%bf%d1%80%d0%b8%d0%bb%d0%be%d0%b6%d0%b5%d0%bd%d0%b8%d1%8f%20%d0%b8%d0%bb%d0%b8%20ActiveX%20%d1%87%d0%b5%d1%80%d0%b5%d0%b7%20Internet%20%d0%b2%20%d1%80%d0%b5%d0%b5%d1%81%d1%82%d1%80%d0%b5%20%d0%ba%d0%be%d0%bc%d0%bf%d1%8c%d1%8e%d1%82%d0%b5%d1%80%d0%b0,%20%d0%b3%d0%b4%d0%b5%20%d0%be%d0%bd%d0%be%20%d0%b1%d1%83%d0%b4%d0%b5%d1%82%20%d0%b2%d1%8b%d0%bf%d0%be%d0%bb%d0%bd%d1%8f%d1%82%d1%8c%d1%81%d1%8f,%20%d0%bd%d0%b5%d1%82%20%d0%b8%20%d0%bd%d0%b5%20%d0%bc%d0%be%d0%b6%d0%b5%d1%82%20%d0%b1%d1%8b%d1%82%d1%8c%20%d1%81%d0%b2%d0%b5%d0%b4%d0%b5%d0%bd%d0%b8%d0%b9%20%d0%be%20%d1%81%d0%b5%d1%80%d0%b2%d0%b5%d1%80%d0%b5%20%d0%bf%d1%80%d0%b8%d0%bb%d0%be%d0%b6%d0%b5%d0%bd%d0%b8%d0%b9.%20>Теперь, наконец, можно создать клиентское приложение. Для этого создадим обычную форму (или выберем со страницы ActiveX репозитария объектов пиктограмму ActiveForm

MIDAS и создание серверов приложений

Статья

Компьютеры, программирование

Другие статьи по предмету

Компьютеры, программирование

Сдать работу со 100% гаранией
ить?". Ответ достаточно прост: в этом случае возможна генерация дополнительных форм динамически при наступлении какого-либо события (например, нажатия на кнопку). Нужно только не забыть уничтожить созданную форму, когда она станет не нужна. Следует также помнить, что библиотека OCX, содержащая ActiveX, содержащий, в свою очередь, несколько форм, будет иметь больший размер, чем в случае ActiveX c одной формой.

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

Здравствуйте, Наталия Елманова!

Прочел вашу статью на Web-сайте www.interface.ru. Пробую создать сервер приложений с использованием ActiveForm. После создания и переноса CAB-файла и Web-страницы на Web-сервер страничка открывается, но на месте предполагаемой аппликации только квадратик. Разъясните, в чем может быть проблема.

С уважением Слава. Slava@ruslan-com.ru

Причин такого поведения может быть несколько. Первая причина связана с тем, что далеко не все броузеры поддерживают отображение ActiveX с помощью тега <OBJECT>. Для отображения ActiveX следует использовать только MS Internet Explorer версии 3.0 и выше. Вторая причина может быть связана с настройкой уровня безопасности броузера. В случае максимального уровня безопасности (значение, принятое по умолчанию) никакой исполняемый код (в том числе и ActiveX) в броузере не выполняется, а некоторые версии Internet Explorer не только не сгружают ActiveX и тем более не выполняют его, но при этом еще и ничего не сообщают пользователю. Есть еще и третья причина - настройки операционной системы компьютера пользователя таковы, что пользователю запрещено изменять реестр, и в этом случае ActiveX в нем, естественно, не зарегистрируется.

Поставка "тонких" клиентов

Как уже неоднократно отмечалось, поставка "тонких" клиентских приложений представляет собой намного более простой процесс, чем поставка "толстых" клиентов. Для функционирования такого клиента требуется, помимо исполняемого файла, наличие библиотеки dbclient.dll (ее можно найти в каталоге Windows\System на компьютере разработчика и скопировать либо в аналогичный каталог компьютера пользователя, либо в каталог, содержащий исполняемый файл клиентского приложения). Если речь идет о создании стандартного дистрибутива с помощью InstallShield Express или иного аналогичного средства, следует отказаться от включения BDE и SQL Links в его состав, а включить лишь файлы, необходимые для функционирования клиентского приложения, и библиотеку dbclient.dll.

Если клиентское приложение выполнено в виде иcполняемого в броузере ActiveX, следует выбрать dbclient.dll в закладке Deploy Additional Files диалоговой панели Web Deployment Options. При распространении ActiveX через Internet рекомендуется выбрать также опцию "Use CAB file compression" для уменьшения времени передачи его по сети.

Поставка серверов приложений

Если с поставкой "тонких" клиентов все более или менее ясно, то поставка серверов приложений и связанные с ней проблемы вызвали самый большой наплыв вопросов.

Нередко разработчики, создавшие сервер приложений и успешно протестировавшие его на компьютере, на котором производилась разработка, сталкиваются с трудностями при переносе этого сервера приложений на другой компьютер - он отказывается там выполняться либо работает некорректно. Вопросы по этому поводу обычно содержат описание проблемы и формулируются примерно следующим образом: "Что должно быть установлено на компьютере, на котором эксплуатируется сервер приложений?". Например, Георгий Буриков и Михаил Шунин из ВЦ ОАО "Аэрофлот-Российские Международные авиалинии" спрашивают в своем письме:

Мы пытаемся установить удаленное соединение с базой данных, используя компонент TMidasConnection. На серверной части (WindowsNT) работает серверное приложение - TProvider, TQuery и TDataBase в RemoteDataModule и главная форма, показывающая счетчик клиентов (аналог примера из DEMOS\ACTIVEFM\EMPEDIT\Server.dpr из поставки Delphi 3.01).

В директории с приложением-сервером находится программа scktsrvr.exe (она запускается как приложение ) и dbclient.dll. Приложение-сервер запущено.

Клиентское приложение содержит DataModule c ClientDataSet, Query и MidasConnection и главную форму с DBGrid, настроенным на Query. Свойства MidasConnection выставлены следующим образом:

ComputerName - IP-адрес сервера,

ConnectType - stSockets

ServerGuid - {56791B61-7625-11D1-A3B8-00C0DF817EF4} - (взято из текста

приложения сервера)

ServerPort - 211

UserBroker - False

При установке свойства Connected компонента MidasConnection равным true счетчик клиентов в приложении-сервере увеличивается на 1 и при сбросе Connected в false уменьшается. Т.е. вроде бы приложение-сервер "чувствует" подключение приложения-клиента. Однако при установке ClentDataSet.Active равным true возникает ошибка - "Ошибка при загрузке библиотеки" без дополнительных пояснений. О какой библиотеке идет речь?

С уважением, Михаил Шунин, Георгий Буриков ВЦ ОАО "Аэрофлот-Российские Международные авиалинии" burikov@hotmail.com shunin@aha.ru

Речь идет об одной из библиотек, которые входят в состав MIDAS и должны находиться на сервере приложений. Это библиотеки IDPROV32.DLL (она должна быть в том же каталоге, что и BDE), DBCLIENT.DLL и STDVCL32.DLL (эти библиотеки должны быть в каталоге Windows\System и должны быть зарегистрированы в реестре).

В целом же на этот и другие подобные вопросы можно ответить следующее. На компьютере, где выполняется сервер приложений, должен быть установлен MIDAS. В его состав входит BDE, SQL Explorer (ConstraintBroker Manager), вышеупомянутые библиотеки, а также OLEnterprise. В состав Delphi 3 Client/Server Suite входит только MIDAS Development Kit, включающий лицензию разработчика и ограниченную версию MIDAS, позволяющую создавать серверы приложений, тестировать их, но не позволяющую заниматься их поставкой. Для поставки и промышленной эксплуатации серверов приложений, созданных с помощью Delphi 3, требуется полная версия MIDAS, предоставляющая, наряду с необходимыми библиотеками и утилитами, право эксплуатации любого количества серверов приложений на том компьютере, где она установлена. Естественно, комплектов MIDAS нужно столько, сколько в сети имеется компьютеров с поддерживаемыми MIDAS серверами приложений. Эксплуатация серверов приложений без наличия полной версии MIDAS на компьютере, где они установлены, является нарушением лицензионного соглашения Delphi.

Некоторые другие вопросы

Посмотрел Вашу статью: http://www.interface.ru/Borland/MIDAS1/d3ap.htm. Очень понравилось. Не могли бы Вы уточнить, как вручную отредактировать реестр (какие ключи добавить или отредактировать), чтобы OLE-объект воспринимался не как локальный, а как удаленный? К сожалению, из статьи я этого не смог понять.

С уважением Алексей Гудков, ОАО ИК "РИФ" AGudkov@rif.nsk.su

В принципе это делается с помощью утилиты DCOMCNFG (в Windows NT 4 она есть, а для Windows 95 можно найти и эту утилиту, и сам клиент DCOM на Web-сервере Microsoft). Но если осуществлять соединение клиента и сервера с помощью DCOM, сервер при этом не сможет работать под управлением Windows 95. Кроме того, требуется на странице Access Control раздела Network в Control Panel выбрать опцию User Level Access Control, что отличается от установок, принятых по умолчанию, а также экспортировать с первичного контроллера домена сведения о пользователях, а затем описать, кому из них Вы разрешаете этот сервер запускать. Естественно, в сети при этом обязательно должен быть первичный контроллер домена.

С помощью OLEnterprise (в частности, Object Explorer) все это сделать проще, так как в этом случае наличие первичного контроллера домена не обязательно, экспорт имен тоже не требуется, и сервер может работать под управлением Windows 95. Чтобы сервер воспринимался как удаленный, в раздел компьютера-сервера HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{<CLSID Вашего сервера>} добавляется подраздел OLEnterpriseExport, а в раздел компьютера-клиента HKEY_CLASSES_ROOT\CLSID\{<CLSID Вашего сервера> } добавляется раздел Dap\DCEClient\<имя выполняемого файла>.<имя OLE-сервера> c набором параметров, представленных на рис. 6.

Рис.6 Раздел Dap\DCEClient\ реестра клиента при импорте объекта

Уважаемая Наталия Елманова!

Прочитав Вашу статью, я попробовал создать приложение-сервер, и у меня возник вопрос - как установить связь master-detail в удаленном модуле данных без компонентов DataSource?

Буду очень вам признателен за ответ.

С уважением Денис Бокатый den-nbk@usa.net

Можно создать модифицируемый SQL-запрос к обеим таблицам, содержащий предложение WHERE, и поместить его в удаленный модуль данных вместо компонентов TTable. Кроме того, можно поместить компонент TDataSource, используемый для связи таблиц, в обычный модуль данных или на форму. Иногда также можно связь master/detail установить не на сервере приложений, а в клиенте (при небольших объемах таблиц это может быть даже выгоднее с точки зрения производительности). Отметим, что наиболее общепринятый способ установки такой связи подразумевает описание ее в словаре данных сервера приложений с помощью SQL Explorer (ConstraintBroker Manager), входящего в состав MIDAS, с целью передачи сведений о ней клиентскому приложению.

Здравствуйте, Наталия!

Большое спасибо Вам за внимание, которое Вы нам уделили. Ваши советы нам помогли. ... Думаю, что было бы хорошо "обозреть" имеющиеся у пользователей Delphi средства для создания приложений для Internet, работающих с базами данных. По моему разумению, м

Похожие работы

<< < 1 2 3 4 >