ВУЗ:
Составители:
Рубрика:
106
Отметим, однако, что в некоторых источниках термин Broker нередко означает
просто некую транспортную службу, обеспечивающую передачу серверу запросов
клиента и обмен данными между ними. При этом такая служба может быть реализована
внутри какого-либо служебного приложения (как, например, это сделано в Borland Socket
Server), а может фактически содержаться внутри самого сервера функциональности и
использующего его клиента (так, например, устроены клиенты и серверы Entera; при этом
сам термин broker в Entera означает Directory Service). В случае же CORBA этот термин
обозначает скорее концепцию, нежели конкретный подлежащий реализации сервис.
Лекция 2. Регистрационные базы данных и идентификация серверов и
сервисов
Рассмотрим вопрос запуска сервера по запросу клиента. Если реализация сервера
одна, и клиенту известно, как ее идентифицировать и на каком компьютере сети ее искать,
он обращается к сервису, ответственному за предоставление доступа к данной реализации
(Service Control Manager). В случае получения разрешения этот сервис обращается к
другому сервису, ответственному за запуск сервера функциональности (как было сказано
выше, оба сервиса могут и часто бывают реализованы в одном приложении). Этим другим
сервисом либо запускается соответствующее приложение (если сервер еще не запущен,
или если каждому клиенту нужен свой экземпляр сервера), либо внутри уже запущенного
сервера создаются объекты, взаимодействующие с данным клиентом.
Если реализаций сервиса несколько, удаленный запуск одной из них по запросу
клиента может быть осуществлен в том случае, если сведения о местоположении этих
реализаций доступны либо самому клиенту, либо сервису, который ищет реализацию по
его запросу. В простейшем случае список возможных реализаций просто содержится в
клиентском приложении. Например, компонент SimpleObjectBroker в Delphi 4 как раз
содержит такой список; клиентское приложение, содержащее такой компонент, будет при
каждом запуске случайным образом подключаться к одной из реализаций, указанной в
списке. Однако в общем случае, особенно когда для поиска реализации используются
специализированные сервисы, такой список хранится отдельно от клиентского
приложения.
Естественно, для этого в системе должна существовать некая специализированная
база данных, в которой содержатся сведения о сервисах и серверах, содержащих их
реализацию. Общей спецификации, которой могло бы подчиняться создание такой базы
данных, не существует, так как в общем случае такая база данных может содержаться на
любой платформе. В случае COM и его расширений (таких как OLEnterprise) роль такой
базы данных с успехом выполняет реестр Windows. В случае CORBA эти сведения
хранятся в двух репозитариях (в одном регистрируются интерфейсы сервера, в другом -
их реализации, то есть конкретные приложения-серверы). Inprise AppCenter использует
свою собственную базу данных (ее реализация существует для нескольких платформ), при
этом она управляется специальным приложеним, регистрирующим обращения к ней
других сервисов.
Отметим, что удаленный запуск сервера по запросу брокера или клиента
осуществляется в том случае, если выполняются условия, при которых он может быть
запущен. Как было сказано ранее, на компьютере должен быть запущен сервис,
предоставляющий разрешение на удаленный запуск данного сервера , и выполняются
условия, при которых это разрешение может быть получено (например, пользователь
клиентского приложения имеет право обращаться к этому серверу).
Необходимость регистрации серверов и сервисов зависит от конкретной реализации
способа удаленного доступа. COM-сервер автоматически регистрирует себя в реестре
Windows после первого запуска, но этот первый запуск должен быть осуществлен не
Отметим, однако, что в некоторых источниках термин Broker нередко означает
просто некую транспортную службу, обеспечивающую передачу серверу запросов
клиента и обмен данными между ними. При этом такая служба может быть реализована
внутри какого-либо служебного приложения (как, например, это сделано в Borland Socket
Server), а может фактически содержаться внутри самого сервера функциональности и
использующего его клиента (так, например, устроены клиенты и серверы Entera; при этом
сам термин broker в Entera означает Directory Service). В случае же CORBA этот термин
обозначает скорее концепцию, нежели конкретный подлежащий реализации сервис.
Лекция 2. Регистрационные базы данных и идентификация серверов и
сервисов
Рассмотрим вопрос запуска сервера по запросу клиента. Если реализация сервера
одна, и клиенту известно, как ее идентифицировать и на каком компьютере сети ее искать,
он обращается к сервису, ответственному за предоставление доступа к данной реализации
(Service Control Manager). В случае получения разрешения этот сервис обращается к
другому сервису, ответственному за запуск сервера функциональности (как было сказано
выше, оба сервиса могут и часто бывают реализованы в одном приложении). Этим другим
сервисом либо запускается соответствующее приложение (если сервер еще не запущен,
или если каждому клиенту нужен свой экземпляр сервера), либо внутри уже запущенного
сервера создаются объекты, взаимодействующие с данным клиентом.
Если реализаций сервиса несколько, удаленный запуск одной из них по запросу
клиента может быть осуществлен в том случае, если сведения о местоположении этих
реализаций доступны либо самому клиенту, либо сервису, который ищет реализацию по
его запросу. В простейшем случае список возможных реализаций просто содержится в
клиентском приложении. Например, компонент SimpleObjectBroker в Delphi 4 как раз
содержит такой список; клиентское приложение, содержащее такой компонент, будет при
каждом запуске случайным образом подключаться к одной из реализаций, указанной в
списке. Однако в общем случае, особенно когда для поиска реализации используются
специализированные сервисы, такой список хранится отдельно от клиентского
приложения.
Естественно, для этого в системе должна существовать некая специализированная
база данных, в которой содержатся сведения о сервисах и серверах, содержащих их
реализацию. Общей спецификации, которой могло бы подчиняться создание такой базы
данных, не существует, так как в общем случае такая база данных может содержаться на
любой платформе. В случае COM и его расширений (таких как OLEnterprise) роль такой
базы данных с успехом выполняет реестр Windows. В случае CORBA эти сведения
хранятся в двух репозитариях (в одном регистрируются интерфейсы сервера, в другом -
их реализации, то есть конкретные приложения-серверы). Inprise AppCenter использует
свою собственную базу данных (ее реализация существует для нескольких платформ), при
этом она управляется специальным приложеним, регистрирующим обращения к ней
других сервисов.
Отметим, что удаленный запуск сервера по запросу брокера или клиента
осуществляется в том случае, если выполняются условия, при которых он может быть
запущен. Как было сказано ранее, на компьютере должен быть запущен сервис,
предоставляющий разрешение на удаленный запуск данного сервера , и выполняются
условия, при которых это разрешение может быть получено (например, пользователь
клиентского приложения имеет право обращаться к этому серверу).
Необходимость регистрации серверов и сервисов зависит от конкретной реализации
способа удаленного доступа. COM-сервер автоматически регистрирует себя в реестре
Windows после первого запуска, но этот первый запуск должен быть осуществлен не
106
Страницы
- « первая
- ‹ предыдущая
- …
- 104
- 105
- 106
- 107
- 108
- …
- следующая ›
- последняя »
