ВУЗ:
Составители:
12
TCorbaConnection – состоит в том, чтобы найти и соединиться с сервером
приложений . Поскольку они управляют соединениями сервера, можно также
использовать компоненты связи для вызова методов интерфейса сервера при-
ложений . Рассмотрим решение этих двух задач подробнее.
Перед поиском и соединением с сервером приложений необходимо уста-
новить свойства компонента связи, которые однозначно определяют сервер
приложений . Соединение открывается автоматически, когда набор данных кли-
ента обращается к серверу приложений . Компонент связи разрывает соедине-
ние с сервером приложений , если:
• устанавливается значение False свойства Connected;
• уничтожается компонент;
• изменяется какое- либо из свойств , однозначно определяющих сервер при-
ложений (ServerName, ServerGUID, ComputerName).
Эти свойства также позволяют переключаться между серверами прило-
жений во время исполнения клиентского приложения: при их изменении ком-
понент разрушает текущее соединение и устанавливает новое. Можно исполь-
зовать вместо одного компонента связи для переключения между серверами
приложений несколько компонентов связи.
Что касается второй задачи, то приложениям в большинстве случаев нет
необходимости вызывать интерфейс IAppServer непосредственно, потому что
соответствующие запросы делаются автоматически при использовании свойств
и методов набора данных клиента. В то же время, при добавлении к интерфейсу
своих собственных методов возникает необходимость прямого вызова интер -
фейса. Для этого можно использовать свойство AppServer компонента связи.
Например (на языке Object Pascal):
MyConnection.AppServer.MyMethod(x,у);
Этот способ обеспечивает позднее связывание вызовов интерфейса – свя-
зывание, которое происходит только во время исполнения, то есть в момент вы-
зова данного метода. Позднее связывание является очень гибким , но при его
использовании теряется много преимуществ , таких как проверка типов и про-
смотр непосредственно реализации метода. Кроме того , позднее связывание ра-
ботает более медленно , чем раннее, поскольку компилятор генерирует некото-
рые дополнительные вызовы интерфейса для посылки на сервер прежде, чем
будет вызван данный «полезный» метод .
Способ и возможности реализации раннего связывания зависят от выбо -
ра протоколов . Для использования раннего связывания с DCOM, библиотека
типов сервера должна быть зарегистрирована на клиентской машине. Для этого
надо использовать утилиту TRegsvr.exe, которая распространяется вместе с
Delphi. Для использования раннего связывания с CORBA надо добавить в сек -
цию uses программный модуль, у которого в имени есть расширение _tlb
(этот файл генерируется при создании библиотеки типов ).
При работе с протоколами TCP/IP или OLEnterprise нельзя использовать
раннее связывание, но поскольку удаленный модуль данных использует дуаль-
ный интерфейс, можно использовать диспинтерфейс (dispinterface) для улучше-
12 TCorbaConnection – состоит в том, чтобы найти и соединиться с сервером приложений. Поскольку они управляют соединениями сервера, можно также использовать компоненты связи для вызова методов интерфейса сервера при- ложений. Рассмотрим решение этих двух задач подробнее. Перед поиском и соединением с сервером приложений необходимо уста- новить свойства компонента связи, которые однозначно определяют сервер приложений. Соединение открывается автоматически, когда набор данных кли- ента обращается к серверу приложений. Компонент связи разрывает соедине- ние с сервером приложений, если: • устанавливается значение False свойства Connected ; • уничтожается компонент; • изменяется какое-либо из свойств, однозначно определяющих сервер при- ложений (ServerName , ServerGUID , ComputerName ). Эти свойства также позволяют переключаться между серверами прило- жений во время исполнения клиентского приложения: при их изменении ком- понент разрушает текущее соединение и устанавливает новое. Можно исполь- зовать вместо одного компонента связи для переключения между серверами приложений несколько компонентов связи. Что касается второй задачи, то приложениям в большинстве случаев нет необходимости вызывать интерфейс IAppServer непосредственно, потому что соответствующие запросы делаются автоматически при использовании свойств и методов набора данных клиента. В то же время, при добавлении к интерфейсу своих собственных методов возникает необходимость прямого вызова интер- фейса. Для этого можно использовать свойство AppServer компонента связи. Например (на языке Object Pascal): MyConnection.AppServer.MyMethod(x, у); Этот способ обеспечивает позднее связывание вызовов интерфейса – свя- зывание, которое происходит только во время исполнения, то есть в момент вы- зова данного метода. Позднее связывание является очень гибким, но при его использовании теряется много преимуществ, таких как проверка типов и про- смотр непосредственно реализации метода. Кроме того, позднее связывание ра- ботает более медленно, чем раннее, поскольку компилятор генерирует некото- рые дополнительные вызовы интерфейса для посылки на сервер прежде, чем будет вызван данный «полезный» метод. Способ и возможности реализации раннего связывания зависят от выбо- ра протоколов. Для использования раннего связывания с DCOM, библиотека типов сервера должна быть зарегистрирована на клиентской машине. Для этого надо использовать утилиту TRegsvr.exe, которая распространяется вместе с Delphi. Для использования раннего связывания с CORBA надо добавить в сек- цию uses программный модуль, у которого в имени есть расширение _tlb (этот файл генерируется при создании библиотеки типов). При работе с протоколами TCP/IP или OLEnterprise нельзя использовать раннее связывание, но поскольку удаленный модуль данных использует дуаль- ный интерфейс, можно использовать диспинтерфейс (dispinterface) для улучше-
Страницы
- « первая
- ‹ предыдущая
- …
- 10
- 11
- 12
- 13
- 14
- …
- следующая ›
- последняя »