Встраивание кэширующего TMS-сервиса в собственное приложение

Обсуждение материалов сайта: вопросы, замечания, предложения
Ответить
Аватара пользователя
Denis Rykov
Гуру
Сообщения: 3308
Зарегистрирован: 11 апр 2008, 21:09
Статьи: 33
Проекты: 9
Репутация: 489
Ваше звание: Author
Контактная информация:

Встраивание кэширующего TMS-сервиса в собственное приложение

Сообщение Denis Rykov » 17 июл 2013, 12:08

Написал статью, приглашаю к критике.
Spatial is now, more than ever, just another column- The Geometry Column.

bim2010
Гуру
Сообщения: 894
Зарегистрирован: 27 янв 2009, 22:57
Статьи: 1
Проекты: 2
Репутация: 212

Re: Встраивание кэширующего TMS-сервиса в собственное прилож

Сообщение bim2010 » 17 июл 2013, 12:28

Представленный вариант интеграции возможностей TileCache был использован компанией NextGIS при разработке картографической подсистемы портала системы государственного информационного обеспечения в сфере сельского хозяйства (СГИО СХ).
Нет ссылки на портал. Google нашел решение от компании 'Совзонд"

Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 8902
Зарегистрирован: 06 окт 2003, 20:20
Статьи: 231
Проекты: 12/6
Репутация: 642
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

Re: Встраивание кэширующего TMS-сервиса в собственное прилож

Сообщение Максим Дубинин » 17 июл 2013, 12:48

возможно и не будет ссылки, это к Ланиту вопрос, где он и работает ли вообще.
пристегивайтесь, турбулентность прямо по курсу

Аватара пользователя
vasnake
Интересующийся
Сообщения: 22
Зарегистрирован: 23 май 2013, 16:42
Статьи: 1
Репутация: 6
Откуда: Москва
Контактная информация:

Re: Встраивание кэширующего TMS-сервиса в собственное прилож

Сообщение vasnake » 18 июл 2013, 16:24

Отличная статья. На примере решения реальной задачи показаны способы использования толковых инструментов. Всё четко и ясно изложено.
Критика целиком положительная :)
It ain't easy. It just proves how great I am.

yellow-sky
Гуру
Сообщения: 588
Зарегистрирован: 30 мар 2009, 21:53
Статьи: 4
Проекты: 3
Репутация: 55
Откуда: Королев

Re: Встраивание кэширующего TMS-сервиса в собственное прилож

Сообщение yellow-sky » 20 июл 2013, 16:49

Статья супер!
Как и проделанная работа. Нужно бы взять на вооружение постгрес хранилище тайлов :)
Денис, а как у тайл бэкенда с производительностью? Как постгресс ведет себя при многопоточной записи? Если запустить принудительное сидирование в несколько процессов, как быстро идет процесс? Какова производительность записи тайлов в БД?
Не совсем понял, как осуществляется создание и контроль лок фалов? Или в ТайлКэш они не используются?

Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 8902
Зарегистрирован: 06 окт 2003, 20:20
Статьи: 231
Проекты: 12/6
Репутация: 642
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

Re: Встраивание кэширующего TMS-сервиса в собственное прилож

Сообщение Максим Дубинин » 20 июл 2013, 17:29

Денис, и введение хорошо бы переписать более четко, сейчас так много "если" и такая высокая вложенность, что приходится перечитывать раз 5, чтобы врубиться в чем же суть задачи.

Возможно стоит написать: Проблема, цель, задачи с краткими определениеми.

Я уверен, что они уже есть, но показалось, что малость тяжеловато изложено.
пристегивайтесь, турбулентность прямо по курсу

Аватара пользователя
Denis Rykov
Гуру
Сообщения: 3308
Зарегистрирован: 11 апр 2008, 21:09
Статьи: 33
Проекты: 9
Репутация: 489
Ваше звание: Author
Контактная информация:

Re: Встраивание кэширующего TMS-сервиса в собственное прилож

Сообщение Denis Rykov » 21 июл 2013, 13:07

2yellow-sky
Параметры производительности не тестировались, нужно будет попробовать как-нибудь. Поддержка лок файлов есть в Tilecache, но в случае с СУБД в роли бэкенда от них, в принципе, можно отказаться.

2Максим Дубинин
А можешь предложить свой вариант введения? я написал его как видится мне. Но если ты уловил его смысл, то, наверное, будет несложно переформулировать.
Spatial is now, more than ever, just another column- The Geometry Column.

Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 8902
Зарегистрирован: 06 окт 2003, 20:20
Статьи: 231
Проекты: 12/6
Репутация: 642
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

Re: Встраивание кэширующего TMS-сервиса в собственное прилож

Сообщение Максим Дубинин » 21 июл 2013, 17:47

Денис, глянь ка, я довольно серьезно там подредактировал, не уверен, что не поломал местами логику. Но мне кажется стало понятнее)
пристегивайтесь, турбулентность прямо по курсу

Аватара пользователя
Denis Rykov
Гуру
Сообщения: 3308
Зарегистрирован: 11 апр 2008, 21:09
Статьи: 33
Проекты: 9
Репутация: 489
Ваше звание: Author
Контактная информация:

Re: Встраивание кэширующего TMS-сервиса в собственное прилож

Сообщение Denis Rykov » 22 июл 2013, 13:17

Да, всё нормально, спасибо!
Spatial is now, more than ever, just another column- The Geometry Column.

Olax
Интересующийся
Сообщения: 16
Зарегистрирован: 11 мар 2009, 10:03
Репутация: 0

Re: Встраивание кэширующего TMS-сервиса в собственное прилож

Сообщение Olax » 26 июл 2013, 20:30

По поводу производительности, разработал такую схему:
OpenLayers делает запрос тайла с ТМС сервера, его встречает Nginx, проверяет, если такого файла на диске нет, то проксирует на TileCache. Далее тилекеш сконфигурирован обращаться на WMS (mapserver + apache2) за картинкой. В файл Service.py (из комплекта TileCache) вставляю вызов своей функции:
которой и передаю готовый обьект таил
if not image:
data = layer.render(tile, force=force)
if (data): image = self.cache.set(tile, data)
else: raise Exception("Zero length data returned from layer.")
+ pg_log.save_to_db(tile,(time.time() - start)) ##### добавленная строка
if layer.debug:
sys.stderr.write(
"Cache miss:layer %s, %s, Tile: x: %s, y: %s, z: %s, time: %s\n" % (
tile.layer.name, tile.bbox(), tile.x, tile.y, tile.z, (time.time() - start)) )
else:

вызываемая функция обрабатывает обьект, заносит в базу координаты бокса ссылку на обьект, xyz - координаты, имя слоя, четвертует для создания квадратичного дерева тайлов. Но сам файл в базу не попадает.

папка для кеша TileCache монтируется по сети с сервера с Nginx. И при повторном обращении к этому тайлу - он уже будет доступен для Nginx-а.

После генерации кеша - работает только специально заточенный для отдачи статики фронтэнд Nginx. База не нагружена. Питон не работает. Существенная экономия ресурсов)))

Если есть вопросы - в личку, обязательно помогу.

Olax
Интересующийся
Сообщения: 16
Зарегистрирован: 11 мар 2009, 10:03
Репутация: 0

Re: Встраивание кэширующего TMS-сервиса в собственное прилож

Сообщение Olax » 26 июл 2013, 20:51

А вообще статья мне понравилась. пишите еще, очень интересно!

Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 8902
Зарегистрирован: 06 окт 2003, 20:20
Статьи: 231
Проекты: 12/6
Репутация: 642
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

Re: Встраивание кэширующего TMS-сервиса в собственное прилож

Сообщение Максим Дубинин » 26 июл 2013, 23:24

Olax писал(а):Если есть вопросы - в личку, обязательно помогу.
Вы наступаете на больную мозоль и нарушаете правила (3.2.4). Здесь форум для открытого общения.

Здесь мы обсуждаем статью автора и технологию, которую он открыто написал и открыто предоставил для редакции и обсуждения. Он не написал: "Я сделал крутой тайловый кэш на питоне. Обращайтесь за подробностями в личку".

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

Olax
Интересующийся
Сообщения: 16
Зарегистрирован: 11 мар 2009, 10:03
Репутация: 0

Re: Встраивание кэширующего TMS-сервиса в собственное прилож

Сообщение Olax » 28 июл 2013, 10:56

Прошу прощения, за свое поведение, дело в том что мне пришлось до всего доходить самому, без чей либо подсказки, или тычка в верном направлении. Поэтому мои наработки выглядят, так сказать "непрофессионально". Вставил там строчку, там функцию и т.д. Исходя из этого, не чувствую за собой готовности выкладывать свои аматорские решения на весь мир и тем более писать статью о своих костылях.
Наверно единственное, чем я могу поделиться в виде статьи - это скрипт генерации кеша тайлов всех зумов и только определенного района. Дайте знать.

ericsson
Гуру
Сообщения: 3154
Зарегистрирован: 27 июл 2009, 19:26
Репутация: 664
Ваше звание: Вредитель полей

Re: Встраивание кэширующего TMS-сервиса в собственное прилож

Сообщение ericsson » 28 июл 2013, 11:36

Olax, вы в своем сообщении выше описали архитектурный принцип построения сервиса, упомянули конкретные средства реализации такой архитектуры и даже привели пример скрипта.
Это достаточно ценное описание, потому что о функциях отдельных инструментов всегда можно прочесть в документации, а вот совместное использование даже поверхностно бывает описано редко, тогда как любой серьезный проект требует как раз этого.

Ответить

Вернуться в «Материалы сайта»