Re: ini-файлы
Пользователь:
Михайленко Илья (IP-адрес скрыт)
Дата: 23, April, 2007 12:26
> В связи с перераспределением параметров между
> клиентским и серверным INI-файлами можно подумать
> об идее ВЛОЖЕННЫХ INI-файлов (на стороне сервера)
> - это, действительно, позволит упростить работу
> администратора
Если вложенность возможно организовать - это будет фантастически хорошим нововведением. Хотя я плохо представляю как АРМ будет писать параметры во вложенные ini, и как ему запретить перезаписывать те или иные общие параметры. Одно решение я уже предлагал: добавить - два параметра, которые бы регулировали ИСПОЛНЕНИЕ ini-файла. Один параметр - ссылка на ini с общими параметрами(1), который читается ДО основного ini, второй - ссылка на файл, который читается ПОСЛЕ основного(2). АРМ при запуске последовательно читает и применяет эти 3 ini-файла(1-й, свой родной и 2-й). В дальнейшем спокойно работает в своем обычном режиме со своим ini-файлом.
Таким образом можно будет: 1. Задавть параметры "по умолчанию", 2. Задавать неизменяемые параметры. АРМ спокойно работает со своим ini-файлом. Зато при 1-м запуске можно создать ini всего с 2 параметрами - остальные АРМ сохранит при выходе. А при каждом запуске у АРМ будет возможность прочитать данные из 2-го файла (которые устанавливаются, к примеру, на группу и переопределяют параметры из 1 и основного ini-файлов - т.е. "навсегда" (до тех пор пока админ не решит иначе)). Вот и получаются и "профиль по-умолчанию" и "постоянные параметры" и "параметры на группу" и т.д...
Очень хорошее и развернутое обсуждение получается. Проблема действительно назрела.
Попробую еще раз обосновать необходимость почему клиентские ini-файлы должны содержать только ip и порт и быть при этом readonly.
Система в библиотеке развивается очень динамично - у меня, кпримеру, уже сейчас 40 пользователей-сотрудников. 80 серверных ini-файлов и 94 клиентских расшареных ини-файлов. Почему бы мне не хранить клиентские ini-на клиентских машинах? Потому что если у меня сотрудник переходит из подразделения в 6 корпуса в подразделение 10 корпуса, мне придется ехать в 6 корпус, чтобы забрать настройки пользователя, после чего ехать в 10 корпус что бы там эти настройки сложить. И это при наличии сети между корпусами. Не смогу я объяснить библиотекарю, что ему, находясь в 6 корпусе нужно такие-то файлы скопировать на сервер во 2 корпусе, после чего приехав в 10 корпус взять эти файлы и скопировать их себе на локальную машину. Да еще при этом мне нужно будет удостовериться что ярлык, который передастся ему средствами домена при логине в 10 корпусе будет указывать на нужный локальный путь. Плюс к этому обновление клиетской части будет означать поездку по всем корпусам, во все подразделения для обновления соответствующих исполняемых файлов. Если учесть, что доступ к АРМ Читатель мы сейчас начинаем распространять на факультетах и их классах, а так же что доступ к АРМ Книгообеспеченность в режиме ReadOnly так же просят факультеты, то естесственное желание настроить у клиентов все так, что бы все настройки сводились к созданию на рабочем столе ярлыка. Что бы обновление системы проходило централизовано. А учитывая, что люди на тех же ккафедрах работают разные, то желательно что бы и все файлы с этой "шары" были ReadOnly. Иначе первый же "шутник", удаливший все что может в этой шаре приведет к полной неработоспособности системы на местах.
А что делать, если, к примеру, для проведения тех. работ а сервере ИРБИСА (на железяке) мне потребуется временно перенести работу на другой сервер? При этом, т.к. "лишних" серверов нету, то ИРБИС переезжает на сервер, уже имеющий свой ip-адрес и имя. Если бы ini-файл клиентский лежал бы на файл-сервере и содержал бы только информацию о ip и номере порта, то вся работа бы заключалась во внесении изменений в этот файл ночью, когда АРМ выключены и переносе сервера на другую физ. площадку на следующее утро я бы уже мог спокойно проводить сервисные работы и клиенты даже не заметили бы что работают с другим физическим сервером. А какой объем работы мне необходимо будет выполнить сейчас? Проехаться ночью по всем корпусам и подразделениям? Это, по-моему, абсолютно не реально... Если клиентские ini лежат на шаре, то за ночь нужно будет поменять, к примеру, 150 ini-файлов на сервере. Админ то же человек. Ему еще и спать иногда хочется :)
Потому и есть такая огромная просьба - ВСЮ параметрию клиентских мест брать с сервера, оставляя клиенту только информацию о ip и номере порта.
И, кстати, ini-файл с контекстом можно хранить на клиенте - его имя ведь создается исходя из параметра основного ini файла (ForCirbisIni). Что может быть проще, чем создать такой ini, запустить АРМ с этим локальным ini, после закрытия АРМ удалить этот ini. Главное не забыть, что в клиентский ini-файл АРМ ничего писать не может :) поэтому удалять такой ini надо из запустившего АРМ (тем более, он все равно сейчас ждет завершения).
Только папку для хранения этого ini, конечно, нужно использовать другую. Это ведь, фактически, временный файл - и место ему в %TEMP%.
PS. Пишу много и подробно потому как действительно уже "наболело"