Господа коллеги.
Ищу правильное решение следующей проблемы.
ДИСПОЗИЦИЯ.
Есть 2 компонента системы, один из которых является COM-сервером, а другой, соответственно, его клиентом (назовем их "s" и "c"). Существует 2 основные конфигурации их инсталляции:
1) на разных машинах
хост A хост B
s <------- c
2) на одной машине
хост A
s <--- c
обе конфигурации являются правильными и используемыми. Причем одна из них может плавно "перерасти" в другую в процессе эксплуатации. То есть система будучи поставлена в конфигурации (1) завтра может быть переставлена в конфигурации (2) etc.
ясно, что в случае (2) вся необходимая информация о COM-объектах "s" в реестр добавляется при инсталляции "s".
ясно, что в случае (1) эту информацию надо как-то добавлять руками.
ясно, что информация сия от случая к случаю различается.
ВНИМАНИЕ, ВОПРОС.
как правильно поступить в ситуации, когда конфигурация (2), скажем, превращается в конфигурацию (1)? А наоборот?
Что должен предпринять инсталлятор? Какой геморрой ожидается?
P.S. Если есть рецепты для InstallShield'а, то они были бы очень кстати.
Здравствуйте, Пашков Александр, Вы писали:
ПА>Господа коллеги. ПА>Ищу правильное решение следующей проблемы.
ПА>ДИСПОЗИЦИЯ. ПА>Есть 2 компонента системы, один из которых является COM-сервером, а другой, соответственно, его клиентом (назовем их "s" и "c"). Существует 2 основные конфигурации их инсталляции:
ПА>1) на разных машинах
ПА> хост A хост B ПА> s <------- c
ПА>2) на одной машине
ПА> хост A ПА> s <--- c
ПА>обе конфигурации являются правильными и используемыми. Причем одна из них может плавно "перерасти" в другую в процессе эксплуатации. То есть система будучи поставлена в конфигурации (1) завтра может быть переставлена в конфигурации (2) etc.
ПА>ясно, что в случае (2) вся необходимая информация о COM-объектах "s" в реестр добавляется при инсталляции "s". ПА>ясно, что в случае (1) эту информацию надо как-то добавлять руками. ПА>ясно, что информация сия от случая к случаю различается.
ПА>ВНИМАНИЕ, ВОПРОС. ПА>как правильно поступить в ситуации, когда конфигурация (2), скажем, превращается в конфигурацию (1)? А наоборот? ПА>Что должен предпринять инсталлятор? Какой геморрой ожидается?
по идее, если я не ошибаюсь то вызвать regsvr32 для сервера на другом хосте и все. Можно зашить в сервер, чтобы при запуске он проверял есть ли инфа о нем, и если нема, то сам бы регистрировался.
Здравствуйте, Пашков Александр, Вы писали:
ПА>Ищу правильное решение следующей проблемы.
ПА>Есть 2 компонента системы, один из которых является COM-сервером, а другой, соответственно, его клиентом (назовем их "s" и "c"). Существует 2 основные конфигурации их инсталляции:
ПА>1) на разных машинах
ПА> хост A хост B ПА> s <------- c
ПА>2) на одной машине
ПА> хост A ПА> s <--- c
У нас просто сделаны две инсталляшки — серверная и клиентская. Никто не мешает запустить клиентскую на сервере, что дает конфигурацию 2. Имя сервера при клиентской инсталляции дозапрашивается, если не может быть получено из специального файла.
ПА>ясно, что в случае (2) вся необходимая информация о COM-объектах "s" в реестр добавляется при инсталляции "s". ПА>ясно, что в случае (1) эту информацию надо как-то добавлять руками.
И не руками, а скриптом.
ПА>как правильно поступить в ситуации, когда конфигурация (2), скажем, превращается в конфигурацию (1)?
На клиенте прогоняется клиентская инсталляция.
ПА>А наоборот?
На сервере прогоняется клиентская инсталляция.
ПА>Что должен предпринять инсталлятор?
Прорегистрировать серверы и установить имя удаленной машины. Взяв его откуда-то и, возможно, проверив (пинганув и/или сделав пробный вызов по своему интерфейсу).
ПА>Какой геморрой ожидается?
Гоблины будут писать неверные имена серверов.
И еще — нераспределенная конфигурация может включать вызовы компонентов in-proc,а распределенная — через COM+. Я бы сразу делал через COM+. Иначе придется все это конфигурировать и, главное, никто не сможет гарантировать одинаковую работу таких конфигураций.
ПА>P.S. Если есть рецепты для InstallShield'а, то они были бы очень кстати.
Так какие-то компоненты ютильные дописаны, которые конфигурируют компоненты...