суббота, 14 июля 2018 г.

"В очередь с... дети!"


Мало кто знает, а кто пользуется, мне вообще неизвестно, возможностью организовывать очередь на издание в АС-Библиотека-3. Это свойство нигде не описано, нет одной "кнопки", по которой можно было бы догадаться. Это свойство просто присутствует в распределённом виде, и грех им не пользоваться, если оно уже есть. Организация очереди, наиболее перспективно в периодике (по причине устаревания информации), если создать каталог с, хотя бы примитивным описанием и сократить время "на руках". Заодно получаем электронный учёт с автоматизированной статистикой! Давай посмотрим, как это работает. Я показываю на версии 3.3.58. Здесь это уже вполне работает. В 3.3.43 чего-то не хватало.
Итак, база "Демо". Таблица All__Delivery пуста (для простоты). Выдаём произвольный экземпляр Иванову. Обрати внимание: квадратик слева "белый". Это означает, что экземпляр свободен.



На "Контроле"



В таблице All__Delivery появляется строка



Всё как обычно. Теперь пришёл Петров и просит туже книгу. Теперь квадратик "затемнён" и состояние "Выдано".



Если провести тоже операции, что при выдаче мы, на самом деле, поставим "товарища" в очередь. В таблице All__Delivery новая строка



На вкладке "Контроль" "Зарезервированные издания" "Все читатели" "Текущий отдел"



Допустим, Сидоров зашёл в каталог через интернет и заказал эту же книгу.



Обрати внимание - "Издание поставлено в очередь".

В таблице All__Delivery



В "Абонементе" на вкладке "Контроль"



Теперь посмотрим, что будет происходить при возврате. Допустим, Иванов вернул книгу. Смотрим All__Delivery



Строки изменились. Сравни с предыдущим.

Смотрим "Контроль"



У Петрова стало "Зарезервировано", у Сидорова по прежнему "Заказано". Обрати внимание "Зарезервировано" может быть только одним читателем, а "Заказано" многими. Если выберем в "Абонементе" Петрова, то на вкладке "Выдача", без всякого поиска, его уже ожидает издание.



Остаётся только сообщить ему об этом. Допустим, для разнообразия, что он отказался. Нажимаем кнопку "Отменить заказ" и всё. Смотрим All__Delivery



Смотрим "Контроль"



Смотрим Сидорова на вкладке "Выдача"



Но Сидоров пользуется Интернетом



Теперь в колонке "Статус" - "Зарезервировано". Значит, он может смело прийти за изданием в библиотеку. Эта вкладка пока явно "недопилена". Кроме "Статуса" и "Отдела выдачи" ничего не выводится. Зато есть возможность отменить заказ.

Как видишь ничего сложного. Есть ещё множество полезных кнопок типа "Посмотреть очередь заявок на издание", "Статистика заказов издания", фильтры на вкладке "Контроль". Но это уже сам.
Есть вопросы - пиши в комментарий или на acbib3@yandex.ru.

пятница, 12 января 2018 г.

Настройка IIS

Сейчас стало популярным выставлять свой каталог в Интернет. А некоторые даже

осуществляют обслуживание: принимают заказы, ведут очереди и т.д. С другой стороны

установка и настройка веб-шлюза в АС-Библиотека-3 оставляет множество вопросов.

Особенно в части настройки IIS под веб-шлюз. Не будем полагаться на установщик АС-3,

а сделаем всё вручную. Причём упор будет сделан на минимальный набор модулей IIS,

необходимых для функционирования веб-шлюза. В этом и будет заключаться "эксперимент".

В чём смысл минимальности? Очень просто - сокращение "поверхности атаки". Чем больше

механизмов (большей частью не нужных) находится в "активном" состоянии тем больше

вероятности, что в каком-то найдётся "брешь". Кроме того это приводит к

дополнительной нагрузке на систему. Я буду показывать на 2016-м сервере, хотя все

необходимые модули, с теми же наименованиями, доступны в прежних версиях. В

клиентских ОС (например "семёрке") они доступны через "Программы и компоненты"-

>"Включение или отключение компонентов Windows". Кроме того, для 64-разрядных систем

отметим дополнительное действие, для разрешения запуска 32-разрядных процессов (АС-3

вся 32-разрядная).

Итак, предположим, что установщик АС-Библиотека-3 уже создал папку "EWWW" и настроил

веб-шлюз на локальный Z-сервер АС3 (они не обязательно должны быть на одном

физическом компьютере). Запускаем "Мастер добавления ролей и компонентов" и отмечаем

IIS.


Жмём далее, соглашаемся с добавлением "консоли управления" и, далее, до "Выбора служб

ролей".



В подразделе "Безопасность" нам понадобится элемент "Фильтрация запросов".



В общем то шлюз будет работать и без него, но если прочтёшь его описание (см.

картинку выше), сразу станет ясно чем "прикрыть" вывод нежелательных файлов (см.

статью "Шлюз"). Но об этом позже.
В подразделе "Исправность и диагностика" потребуется необязательный элемент "Ведение

журнала HTTP".



Это лог сервера IIS. В нём сохраняется вся активность пользователя - посещения сайта,

что искали, что заказали и т.д. Вещь весьма полезная для статистики. Кроме того,

можно вести учёт обращений. Одна проблема - нет парсера для обработки, а вручную

разбирать не серьёзно. Но начать накапливать статистику можно уже сейчас. Будем

считать этот элемент полезным.
Далее "Общие функции HTTP".


"Документ по умолчанию" абсолютно не обязателен, если указать ссылку на сайт в виде

http://xxxxxxxx.ru/Lib/Ewww.dll. Он просто добавит Ewww.dll для ссылки вида

http://xxxxxxxx.ru/Lib. Ставить или нет, решай сам. Я выбрал, для демонстрации

дальнейшей настройки.
"Статическое содержимое" абсолютно необходим. Через него пойдут все картинки и

вспомогательные файлы типа .css.

"Производительность" можно полностью отключить. Картинки, как правило, уже сжаты

JPEG, а текста мало.
"Разработка приложений" - странное название. Разрабатывать ничего не придется, а вот

выбрать "Расширения ISAPI" абсолютно необходимо, поскольку Ewww.dll - это и есть

расширение ISAPI.



"FTP сервер" пропускаем. Из "Средства администрирования" выбираем "Консоль управления

службами IIS".



Остальные отметки можно снять. Далее жмём установить, и наблюдаем за процессом.

Возможно, потребуется перезагрузка.
Запускаем "Диспетчер служб IIS" из "Администрирование". Нужна небольшая настройка.
Выделяем F16(F16\Администратор). F16 - это имя сервера, у тебя будет другое. Здесь

настройки для всего сервера. Настроим необходимые, потом добавим "Виртуальный

каталог" с АС-3 и завершим настройки.



Компонент "Ведение журнала". Здесь можно "подсмотреть" где IIS будет сохранять

журналы. Можно оставить как есть. Важен выбор формата "W3C".



И, возможно, я бы изменил "Переход на новый файл журнала->Расписание" на

"Ежемесячно". Таким образом, за год будет 12 файлов, которые хорошо сожмутся любым

архиватором.

Далее "Ограничения ISAPI и CGI". Добавляем путь к EWww.dll и разрешаем выполнение

пути расширения.



Результат на следующей картинке



Теперь, действие, необходимое для 64 разрядных ОС (а серверные ОС теперь все 64-

разрядные). Выделяем "Пулы приложений". Правой кнопкой по "DefaultAppPool" (в нём по

умолчанию будет работать EWww.dll) вызываем контекстное меню и "Дополнительные

параметры...". Разрешаем 32-разрядные приложения.



Настало время собственно "пристроить" наш сайт. Надо отметить, что вариантов здесь

немало. Чтобы не вносить путаницу я сделаю так, как это, раньше, делал установщик.

Поэтому просто добавим виртуальный каталог к сайту по умолчанию "Default Web Site".

Щёлкаем по нему правой кнопкой и выбираем "Добавить виртуальный каталог...". В

"Псевдониме" пишем "Lib" и указываем путь к папке "EWWW".



Выделяем только что добавленный "Lib" и сделаем настройки, относящиеся только к нему.
"Документ по умолчанию". Удаляем всё что есть (index.html, ...) и добавляем

"EWww.dll".



Далее "Сопоставление обработчиков". Щёлкаем правой кнопкой на "ISAPI-dll" и выбираем

в контекстном меню строку "Изменение разрешений функции ...". Ставим галочку на

"Выполнение".



Следующий компонент "Фильтрация запросов". Здесь можно ограничить доступ к некоторым

элементам сайта, а именно к настройкам. Почему это важно смотри в архиве статью

"Шлюз". Поскольку сам IIS прячет свои настройки в "Скрытые сегменты" я поступлю так

же. Просто добавим "EWww.xml".



Всё. Это тот минимум настроек IIS, необходимый для работы каталога в сети. Запускаем

браузер. Набираем "http://localhost/Lib".



Порядок настройки необязателен, но некоторые пункты зависят от предыдущих.
Напоследок один полезный совет. Чтобы сервер надёжно "перечитал" настройки, иногда,

бывает полезно завершить процесс "w3wp.exe" в диспетчере задач.



Это особенно актуально после изменения настроек самого шлюза в "EWww.exe".
Что делать, если у тебя уже установлены лишние модули IIS, решай сам. Однако
отключение указанных модулей или изменение их настроек приведёт к неработоспособности
каталога.
Есть вопросы - пиши в комментарий или на acbib3@yandex.ru.