Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
96
Добавлен:
15.06.2014
Размер:
11.96 Mб
Скачать

2.5 Клиент-серверные приложения foxpro

2.5.1 Создание, регистрация и использование серверов автоматизации

2.5.2 Конфигурирование клиентов

2.5.1 Создание , регистрация и использование серверов автоматизации

Сервер автоматизации – это компонент COM(ComponentObjectModel), размещенный на сервере, причем удаленные клиенты могут обращаться к данному компоненту с целью использовать какие-то из его методов. Например, как это принято в современной терминологии,COM-объект может реализовать бизнес-методы, доступные для использования многим клиентам. В таком случае клиент вызывает метод сервера и передает ему параметры, например, для реализацииSQL-запроса на выборку данных.

Для создания сервера автоматизации необходимо построить обычный проект и поместить в нем классы, определенные как OLEPUBLIC. Обычно классы объявляются в программныхprg-файлах. В качестве простого примера возьмем следующий:

DEFINE class myserv AS CUSTOM OLEPUBLIC

  FirstName = SPACE(30)

  LastName = SPACE(45)

  PROCEDURE GetName

     RETURN THIS.FirstName + " " + THIS.LastName

  ENDPROC

  PROCEDURE PutName

Parameters F,L

   THIS.FirstName=F

THIS.LastName=L

  Return

ENDPROC

ENDDEFINE

В результате компиляции можно создать два типа сервера автоматизации. Первый тип работает автономно, возможно, на другом компьютере. Второй тип работает в том же адресном пространстве, что запустивший его процесс. Первый вариант соответствует исполняемому exe-файлу, второй – dll.функции, динамически подключаемой к выполняющемуся процессу.

Для компиляции сервера автоматизации необходимо выполнить следующие действия.

  1. В окне дизайнера проектов выбрать кнопку Build.

  2. В зависимости от типа создаваемого сервера выбрать далее кнопку Build ExecutableилиBuild DLL.

  1. Нажать OK.

В окне ProjectInformationможно задать дополнительные свойства проекта сервера автоматизации.

  • Single Use   В этом случае каждый клиент создает собственную версию сервера и работает с нею не разделяя с другими клиентами.

  • Multi Use   Многие клиенты разделяют работающее приложение сервера автомтаизации.

Разумеется, после изменения указанных свойств нужно выполнить повторную колмпиляцию.

В результате компиляции будут созданы следующие три файла:

  • .dllили.exe

  • библиотечный файл (.tlb)

  • файл регистрации (.vbr)

Библиотечный tlb-файл содержит в двоичном формате все методы класса сервера наряду с указанными в описаниях классов свойствами и событиями. Когда клиент обращается к какому-либо методу сервера именно из этого файла выполняется чтение.

Файл регистрации содержит уникальные идентификаторы для ссозданных классов сервера, которые сохраняются в реестре.

Сервер становится доступным для других процессов после того, как он будет зарегистрирован в реестре Windows. В результате компиляции сервер автоматически регистрируется в реестре машины, на которой компиляция выполнялась. При переносе сервера на другую машину его следует зарегистрировать на новой машине.

Для ручной регистрации exe-компонента сервера автоматизации нужно сделать следующее:

  • Выполнить exe-файл с опцией/regserver, например,

Myserver.exe /regserver

Для удаления файла из реестра необходимо

  • Выполнить .exeфайл с опцией/unregserver.

Для ручной регистрации .dllкомпонента сервера автоматизации необходимо

  • Выполнить программу REGSVR32 с именем сервера в качестве параметра, например:

REGSVR32 Myserver.dll

Для удаления из реестра dll-компоненты нужно выполнить:

REGSVR32 /u myserver.dll