[OSM-ja] (開発者募集)OSMタイル配信サーバの開発

Yoichi Kayama yoichi.kayama @ gmail.com
2013年 4月 5日 (金) 03:33:58 UTC


かやまです

いろいろ勉強しなきゃ役にたたないですが、とりあえず見習いで参加させてください


2013年4月5日 8:36 Hiroshi Miura(@osmf) <miurahr @ osmf.jp>:

>  マッパーの皆さん
>
> 三浦です。
>
> 現在、OSMタイルサーバを開発しています。日本のOSMコミュニティとして
> 独自レンダリングを実現したいと考えています。
>
> 開発への参加者を募集したいと思います。
>
> 同時に、日本らしい地図表現を行うためのmapnikでのレンダリングスタイルを
> 研究される方もWelcomeです。
>
> 開発は、github.com[*0]で行なっています。
>
> 名前は、キャッシュになっていますが、(最初はキャッシュの構築から開始したため)
> OSMの独自タイル配信サーバの機能をもたせる計画です。
>
> 開発に興味のある方、一緒に研究しませんか。
>
>
> <アーキテクチャ>
>
> OSMのwikiでは、apacheにmod_tile[*1]を導入し、mapnik[*3]ライブラリを使った
> Tirex[*2]がタイル画像を生成する方法が説明されています。
> また、DBMSには、PostGISを用いて、 osm2pgsqlツールによって最新データを
> 取り込むようです。osmosisツールを使うことで、自動更新ができます。
>
> 独自タイル配信サーバの開発では、次のアーキテクチャを考えています。
>
> <開発ロードマップ>
>
> Ver 0.8
>
> * nginxサーバで、タイルキャッシュ機能を提供します。(DONE)
> * リクエストのx/y/z値のチェックをおこなって不正なアクセスを
>   抑止します。(in progress)
> * tile.openstreetmap.orgの地域分散プログラム(CDN)へ参加可能な
> 機能を備えます。(DONE)
>
> Ver 0.9
>
> * PostGISデータベースに日本地域のOSMデータを日次で
>   自動更新できるようにします。(ほぼ完了)
> * アクセス元が日本国内かどうかを判定して、独自タイルの配信を
>    切り替えます。(done)
> * リクエストのx/y/z値をチェックして、レンダリング対象かどうかを
> 判定できます。(未実装)
> * 一部タイルについて、静的タイルを配信できるようにします。(done)
>
> Ver 1.0
>
> * nginxサーバのLUA拡張を利用して、mod_tile相当を実装します。
> * タイル生成は、Tirex[*2]で行います。
> * 生成されたタイル画像ファイルは、ファイルシステムに格納されます。
> * nginxサーバとTirexは、UDPソケット通信でコマンドをやり取りします。
> * mapnikのスタイルを改良します。(アイコンとか、色とか)
>
> mod_tile相当とは
> * 独自タイル生成を、リクエストに応じて、on the flyで実施します。
> * データベースの更新にあわせて、古くなったタイル画像を削除し、
> 再度生成されるようにします。
> * タイル画像が古い(expire)の場合でも、レスポンスを確保するため
> 古いタイルを返送するが、httpでの画像の有効期間を再生成に
> 必要な時間を動的に計算して、設定します。
> ユーザが再度表示しようとすると、新しいタイルになります。
>
> Ver 1.x
>
> * 日本らしい地図表現のバージョンアップをしていきます。
>
> Ver 2.0
>
> * Redis Key-Value-Storeを活用して、メタ情報を管理します。
> * Redis Pub/Subを利用して、コマンドをやり取りします。
> * Tirexを拡張して、redis pub/subに対応させます。
> * renderd_expireを拡張して、redis pub/subに対応させます。
> * nginx-luaから、redis pub/subを利用したコマンド利用させます。
>
> Ver 3.0
>
> * Redis KVSへタイルそのものを格納します。
> * Redisリプリケーションやnginxリバースプロキシ、Tirex分散等により
> 大規模サーバ構築可能にします。
> * 更新タイルやアクセスの少ないタイルのRedis自動expire機能によって
> DISK容量を削減可能にします。
> * 本家レンダリングのリプレースを狙います(?)
>
> <実行環境>
>
> 環境は、Ubuntu 11.10(64bit)です。
> Nightly buildのmapnikを使っています。[*5]
> nginxは、nginx-extra packageを使います。
> luaからredisデータベースへのアクセスは、OpenRestyのLua-redis[*6]
> モジュールを使います。
> Tirexは、ドキュメントに従ってmake debして、パッケージを導入します。[*7]
> redis-server パッケージを導入します。
>
> <インストール>
>
> 上記実行環境を整えたあと、
> $ git clone git://github.com/osmfj/tilecache.git
> $ cd pkgs
> $ sudo dpkg -i lua-nginx-redis_0.15-1_all.deb<https://github.com/osmfj/tilecache/blob/master/pkgs/lua-nginx-redis_0.15-1_all.deb>
>    これで、redisにアクセスできる環境ができます。このパッケージは
> Ubuntu raringからしか提供されていないので、同梱されています。
> $ cd tilecache
> $ (cd nginx; sudo ./install.sh)
>   これで、nginxの設定が導入されます。サーバ名はtileになっている想定です。
> $ cd render_expire
> $ make
> $ sudo make install
>   これで、render_expireが/opt/tileserver/bin に導入されます。
>
>
> [*0] https://github.com/osmfj/tilecache
> [*1] http://wiki.openstreetmap.org/wiki/Mod_tile
> [*2] http://wiki.openstreetmap.org/wiki/Tirex
> [*3] http://wiki.openstreetmap.org/wiki/Mapnik
> [*4] http://nginx.org/ja/
> [*5] https://launchpad.net/~mapnik/+archive/nightly-trunk
> [*6] https://github.com/agentzh/lua-resty-redis
> [*7] http://wiki.openstreetmap.org/wiki/Tirex/Building_and_Installing
>
>
>
> --
> Hiroshi Miura
> OpenStreetMap Foundation Japan
>
> _______________________________________________
> Talk-ja mailing list
> Talk-ja @ openstreetmap.org
> http://lists.openstreetmap.org/listinfo/talk-ja
>
>
-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: <http://lists.openstreetmap.org/pipermail/talk-ja/attachments/20130405/669b19e4/attachment.html>


Talk-ja メーリングリストの案内