● 本プログラムについて

	本プログラムは、文部科学省科学技術振興調整費 重点課題解決型研究
	プロジェクト「危機管理対応情報共有技術による減災対策」において
	開発された、減災情報共有プロトコルに基づいて通信するデータベース
	管理サーバーです。本プロジェクトにおいて開発は産業技術総合研究所
	と防災科学技術研究所 地震防災フロンティア研究センター 川崎ラボラ
	トリーが共同で行いました。

	現在は、開発は主に産業技術総合研究所で行っています。

	現在、最新版は
		http://sourceforge.jp/projects/daruma/
	より取得することが可能です。

	質問、要望、その他分かりにくい点などが御座いましたら、
		開発者メーリングリスト daruma-dev@m.aist.go.jp
	もしくは
		下羅 弘樹   h.shimora@aist.go.jp
		野田 五十樹 I.Noda@aist.go.jp
	までメールをお願いします。
	バグレポートは歓迎致します。



● 実行環境について

	本プログラムは、実行する環境として、以下のソフトウェアが必要です。
	あらかじめ、インストールしておいて下さい。

		○ Java 2 Software Development Kit (J2SDK) 1.6.x or 1.5.x
			Java 開発環境
			・1.6 (推奨)
			  http://java.sun.com/javase/ja/6/download.html
			  http://java.sun.com/javase/downloads/index.jsp
			・1.5
			  http://java.sun.com/j2se/1.5.0/ja/download.html
			  http://java.sun.com/j2se/1.5.0/download.html
			--------
			! 重要 !
			--------
			JRE ではなく、JDK(JDK 5 or 6 Update X)を
			インストールして下さい。

			Mac OS X (Tiger,Leopard) の場合は、システム附属の
			Java が使えるためインストールの必要はありません。


		○ MySQL 5.1.x or 5.0.x
			--------
			!!! 重要 !!!
			--------
			MySQL は現時点ではバージョン 6 系統ではなく
			5 系統のものを選択して下さい。

			http://dev.mysql.com/downloads/mysql/5.1.html

	● Windows 上での MySQL のインストールについては、
	   doc/INSTALL-MySQL-on-Windows.txt を参照して下さい。
	   --------
	   ! 重要 !
	   --------
	   インストールに際し、インストール時の選択肢のうちいくつか重要な
	   ものが含まれています。
	   必ず doc/INSTALL-MySQL-on-Windows.txt のとおりインストールして
	   下さい。

	● Mac OS X 上での MySQL のインストールについては、
	   doc/INSTALL-MySQL-on-MacOSX を参照して下さい。

	● Linux/FreeBSD 上での MySQL インストールの際は、文字コードに必ず
	   UTF8 を指定して下さい。また、MySQL サーバに接続するためのコマンド
	   mysql も必要になるので、サーバをインストールしても存在しない場合は
	   インストールして下さい。
	   画像ファイル等、サイズの大きなデータを扱うためには、MySQL の設定を
	   変更する必要があります。
	   max_allowed_packet の値を(例えば 16M 等に)増やして下さい。



● インストール

	0. Java、MySQL をインストール、設定、起動
		上記を参考にインストールし、設定して下さい。
		もし、MySQL が起動されていない場合は起動して下さい。

	1. bin を適当な場所にコピー
		bin 以下をそのまま適当な場所にコピーして下さい。
		実行するためには bin 以外は必要ありません。

	2. セットアップ
		コピーした場所に移動し、以下のようにして
		セットアップスクリプトを実行して下さい。
		実行すると、パスワードを聞かれますので、MySQL の
		インストール時に設定したパスワードを入力して下さい。


		古いバージョンの DaRuMa からの移行の場合も
		以下の操作は必要です。

		--------
		! 注意 !
		--------
		もし、既にデータが入っていても消去されてしまいますので
		先にバックアップを取るなど、気を付けて下さい。


		・Unix 環境の場合
			./setup を実行

		・Mac OS X 環境の場合
			Terminal から ./setup を実行

		・Windows 環境の場合
			setup.bat をダブルクリック



● 実行方法、終了方法

	現在、開発はスタンドアローン版、HTTP 版(サーブレット版)の2系統が
	あります。

	もともとはスタンドアローン版として開発を進めてきたもので、
	TCP 5050 番ポートに直接 XML 文書を流す仕様になっています。
	具体的なプロトコルは doc/misp-1.00.XXX.pdf を参照して下さい。

	現在、WFS の規格にのっとり HTTP 上で動作するように実装を進めている
	ところです。こちらは、HTTP POST には対応していますが、HTTP GET の
	対応は GetCapabilities, DescribeFeatureType のみになっています。
	また、WFS の規格に準拠していない部分がありますのでこれらは順次
	変更する予定です。HTTP版を使う場合は ./bin/daruma.war を
	tomcat 等のサーブレットコンテナにデプロイして下さい。


	以下にスタンドアローン版の実行方法、終了方法を示します。

	○ 実行方法 (スタンドアローン版、ユーザ起動)
		コピーした場所に移動し、起動スクリプトを実行して下さい。

		run-debug のほうを実行するとデバッグモードとして
		実行され、詳細なログを出力するようになります。
		ただし、その分速度が大幅に落ちますので注意して下さい。

		・Unix 環境の場合
			./run を実行。
			もしくは ./run-debug を実行
			./run --help で利用可能なオプションが表示されます。

		・Mac OS X 環境の場合
			Terminal から ./run を実行。
			もしくは ./run-debug を実行
			./run --help で利用可能なオプションが表示されます。

		・Windows 環境の場合
			run.bat をダブルクリック。
			もしくは run-debug.bat をダブルクリック。

		これで、サーバーが開始されます。
		また、それに伴ない実行された場所に実行ログが生成されます。

		サーバーは、ポート番号 5050 で接続を待ち受け、
		減災情報共有プロトコルに基づいて通信を行います。
		接続時にはファイアウォール等の設定で 5050番ポートを
		閉じていないことを確認して下さい。

		サーバーと同じコンピュータからクライアントを接続することも
		可能です。

	○ 終了方法 (スタンドアローン版、ユーザ起動)
		終了は以下の方法で行なえます。

		・Unix/Mac OS X 環境の場合
			起動した端末で、Control-C を押す。

		・Windows 環境の場合
			サーバーが実行されているウィンドウを閉じる。
			しばらく時間がかかる場合があります。

		サーバーを終了しても、サーバー稼働時に入力されたデータは
		そのまま残り、次回起動時に取り出すことが出来ます。

		なお、セットアップスクリプトを実行し直すことで
		データを全て消去し、再初期化することが可能です。


	○ 起動、終了の自動化 (Unix 系 OS のみ)
		OS からの自動起動方法は各 OS に依ります。System V init のための
		スクリプトが package/init.d/ 以下に入っているので参考にして
		お使い下さい。


	○ 動作確認
		動作の確認と DaRuMa の動作の概観を掴んで頂くための
		サンプルデータが sample-data ディレクトリ以下に含まれています。
		まずは、sample-data/simple/ もしくは sample-data/simple-2/ を
		試してみることをお勧めします。

		動作確認を行なうためには、これらのサンプルデータをファイル名の
		先頭に付いている番号の順に直接 DaRuMa に送ります。

		まず、基本的な送り方を説明した後、サンプルデータを登録する
		ため詳細な手順を示します。


		○ スタンドアローン版の場合の送り方
			DaRuMa の場合 DaRuMa の待ち受けポート(通常 5050 番
			ポート)をオープンしバイト単位でそのまま送って下さい。

			最初の一歩としてはプログラム中でソケットをオープンして
			送るよりも、netcat コマンドや以下の darumaClient
			コマンド等のツールを使用して送るのが簡単です。

			・darumaClient コマンド
				以下から darumaClient-light をダウンロードして
				インストールして下さい。
				http://sourceforge.jp/projects/daruma/

			使い方は以下のとおりです。
			FILE.input.xml には実際のファイルを指定して
			使用して下さい。

				% darumaClient --help
				% darumaClient FILE.input.xml


		○ サーブレット版 DaRuMa の場合の送り方
			HTTP ヘッダ等を追加して POST オペレーションでデータを
			送ります。サンプルデータディレクトリに
			 http-darumaClient というコマンドを置いてあるので、
			それを使ってヘッダ等を自動で追加して送ることが
			できます。(http-darumaClient コマンド内部で
			darumaClient コマンドを使用しているため、こちらも
			darumaClientコマンドが必要です。)
			http-darumaClient の使い方は以下のように実行すると
			表示されます。
	
				% ./http-darumaClient --help



		動作確認の手順(スタンドアローン版、HTTP版)は以下のように
		なります。

			1) DaRuMaを起動する。

			2) 別端末で、sample-data/simple/ 等のディレクトリに
			   移動する。

			3) 上記のスタンドアローン版、サーブレット版それぞれの
			   方法でファイル名の先頭の数字の順番にファイルの
			   内容をDaRuMa に送る。

			4) DaRuMa を終了する。

			5) テストで不要なデータが DaRuMa に登録されているので
			   何も入っていない状態に戻す。
			   bin ディレクトリに移動して以下を実行する。
				% ./setup

	○ 詳細テスト
		(Unix/Mac OS X 環境のみ)
		テストデータを入力することで DaRuMa がきちんと
		動作しているかのチェックを行うことが可能です。

		そのためには先に以下の2つをコマンドをインストールしておく
		必要があります。

			・darumaClient 
				以下から darumaClient-light をダウンロードして
				インストールして下さい。
				http://sourceforge.jp/projects/daruma/

			・xmllint (libxml2)
				http://xmlsoft.org/

		テストは以下のように行ないます。
			1) DaRuMa(スタンドアローン版)を起動する。
			2) 別端末で、test/ ディレクトリに移動する。
			3) make コマンドを実行する。
				% make check

			   これでテストが一つ一つ順に実行されます。
			   それぞれのテスト結果で OK が出れば成功です。

			   一つでもエラーがあると、最後にエラーがあった項目の
			   リストが表示されます。エラーの内容は、test/
			   ディレクトリ以下のテストが失敗したディレクトリに
			   .error という拡張子のファイルに入っています。

			   (サーバ側にエラーのようなメッセージが出ることが
			    ありますが、これはテストセットに、不正なデータを
			    きちんと扱えるかチェックするために、わざと不正な
			    データを送るテストが含まれているためであり、
			    サーバ側でエラーのようなメッセージが出るのは
			    想定どおりの動作です。)

			   なお、以下のようにテストする DaRuMa の動いている
			   ホスト、ポートを指定して外部からテストを実行する
			   ことも可能です。
				% make HOST=... PORT=...
			   外部からのテストで失敗するときは、DaRuMa のポート
			   (デフォルトでは TCP 5050 番ポート)が
			   ファイアウォール等でブロックされていないか確認して
			   下さい。

			4) test/ 以下に出来たテスト結果のファイルを消去する。
			   test/ ディレクトリに移動して以下を実行する。
				% make clean

			5) DaRuMa を終了する。

			6) テストで不要なデータが DaRuMa に登録されているので
			   何も入っていない状態に戻す。
			   bin ディレクトリに移動して以下を実行する。
				% ./setup


● ファイル、ディレクトリ構成

	○ COPYING
		本プログラムのライセンスを記述しています。
		本プログラムのライセンスは、
		GNU General Public Licence Version 2 です。

	○ README-euc, README-sjis.txt
		このファイルです。
		この2つのファイルは文字コード以外は同じものです。

	○ doc/
		以下のドキュメントが入っています。

		・misp-1.00.XXX.pdf
			本サーバで扱う減災情報共有プロトコルを記述した
			ドキュメント

		・INSTALL-MySQL-on-Windows.txt
			Windows 上での MySQLのインストール方法を
			記述したドキュメント

		・INSTALL-MySQL-on-MacOSX.txt
			Mac OS X 上での MySQLのインストール方法を
			記述したドキュメント

	○ bin/
		実行に必要なプログラムが入っています。

		bin/lib/ 以下には、これら実行に必要な以下のライブラリを
		同梱してあります。これらは新たにインストールして頂く必要は
		ありません。

		これらは、MySQL AB, The Apache Software Foundation,
		Vivid Solutions, Inc. のそれぞれの組織、プロジェクトで
		開発されたものです。それぞれの組織、プロジェクトおよび
		各開発者の方々に謝意を表します。

		・mysql-connector-java
			http://www.mysql.com/products/connector-j/index.html

		・postgresql JDBC Driver
			http://jdbc.postgresql.org/download.html

		・Xerces2 Java
			http://xml.apache.org/xerces2-j/

		・Xalan-Java
			http://xml.apache.org/xalan-j/

		・log4j
			http://logging.apache.org/log4j/

		・JTS
			http://www.vividsolutions.com/jts/

		・Servlet API
			http://vmgump.apache.org/gump/public-jars/jakarta-servletapi/

		・junit-4.1.jar
			http://www.junit.org/

	○ bin/log/
		実行時にサーバーがログを吐き出す場所です。
		サーバー実行時に生成されますが、消してしまっても
		問題ありません。

	○ sample-data/
		サンプルデータが含まれています。

	○ src/
		ソースコードが含まれています。
		実行には必要ありません。

	○ test/
		自動テスト用サンプルデータが含まれています。
		入力、期待される出力の組のデータが多数入っています。
		基本的には小さい数値が付いているものから順に
		入出力のチェックを行なっています。
		src/java/test-util/bin/README にチェック用のプログラムの
		使い方が入っています。


● トラブルシューティング

	・ DaRuMa スタンドアローン版はデフォルトで TCP 5050 番ポートで
	   接続待ち受けを行っています。
	   ネットワーク経由で繋がらないときは、ファイアウォールが
	   TCP 5050 番ポート(もしくは他のポートを使っている場合はそのポート)を
	   通すよう設定していることを確認して下さい。
	   また、個々のコンピュータもウィルス対策、アタック対策ソフトウェアや
	   個々のコンピュータ内部のファイアウォールの設定を変更することが
	   必要な場合があります。
	   HTTP 版で使用する待ち受けポートは、8080 や 8180 など
	   サーブレットコンテナの設定に依って変わります。使用しているポートを
	   ファイアウォールで通すように設定して下さい。

	バグや疑問点については、このこの文書のトップに書いてある連絡先まで
	連絡をお願いします。
