農業シミュレーションモデルにおける分散協調シス
テムのためのフレームワークに関する研究
メタデータ

言語: Japanese
出版者:
公開日: 2019-03-22
キーワード (Ja):
キーワード (En):作成者: 田中, 慶
メールアドレス:所属:

URL

https://doi.org/10.24514/00001564

中央農研研究報告

20：１－ 115
（2013）

1

Bull.NARO.Agric.Res.Cent.

農業シミュレーションモデルにおける分散協調システムのためのフレームワークに関する研究
田中

慶

目

次

I. 緒言......................................................................................................... 1

4. フレームワーク......................................................................39

1. はじめに........................................................................................ 1

5. 農業モデル用フレームワーク.....................................40

2. 背景................................................................................................... 2

6. アプリケーション構築.....................................................53

3. 農業シミュレーションモデル....................................... 3

7. 考察.................................................................................................53

4. 農業モデル用データ...........................................................12

IV. AMADIS 要素間連携手法...............................................56

5. 国内の農業分野における情報化................................12

1. はじめに......................................................................................56

6. 国内の農業モデルアプリケーションの問題.....12

2. メッセージ交換......................................................................56

7. 研究事例......................................................................................14

3. サーバサイドアプリケーション................................66

8. 提案.................................................................................................15

4. SIMRIW を利用した水稲栽培可能性予測支援

9. 研究方針......................................................................................16

ツール.................................................................................................77

II. 農業モデル・データベース分散協調システム

5. 考察.................................................................................................89

AMADIS...............................................................................................17

V. 総合考察..........................................................................................90

1. はじめに......................................................................................17

1. 各章の考察.................................................................................90

2. 農業モデル・データベース分散協調システム

2. 本システムの有効性...........................................................91の構成要素......................................................................................17

3. 残された課題...........................................................................92

3. 考察.................................................................................................27

4. 今後の展望.................................................................................93

III. 農業モデル用フレームワーク JAMF......................29

謝辞............................................................................................................94

1. はじめに......................................................................................29

引用文献.................................................................................................95

2. 開発言語......................................................................................29

摘要.........................................................................................................109

3. モジュール構造......................................................................36

Summary............................................................................................113

Ⅰ．緒言
1.

はじめに

ンモデル（以降，農業モデルと記す）の歴史，農業

本論文では，食糧不安や気候変動の影響の予測，モデルのプログラム開発，拡張，保守における問題

農作業の意思決定支援，圃場試験の代替などのため点について述べる．また，これらの問題を解決するに，農業分野での有用なシミュレーションモデルやための農業モデル・データベース分散協調システム

データベースを組み合わせて利用できるシステムをを提案し，その構成要素を実現するための研究方針

提案し，その実現のために行った研究について述べを述べる．

る．また，研究成果を利用して農業用の意思決定支〈II〉では，緒言で提案した農業モデル・データベー

援システムを構築することにより行った評価についス分散協調システム（AMADIS）の構成と主要なて述べる．

構成要素の概要について述べる．また，本論文での〈I〉では，研究の背景である農業シミュレーショ

研究対象範囲を示す．

平成 25 年 3 月 11日受付

平成 25 年 8 月 6 日受理* 農研機構 中央農業総合研究センター 情報利用研究領域

中央農業総合研究センター研究報告2

第 20 号（2013. 11）〈III〉の前半では，農業モデル用フレームワーク

動植物の遺伝や性質の知識，化学肥料，農薬，農業を構築するために，過去に開発された主要な農業モ

機器，灌漑，保存料，冷蔵技術などの農耕技術とそ

デルの開発言語やモジュール構造に関する研究にの基礎となっている科学知識によって生き延びてついて述べる．後半では，前半での研究をもとに，いることを意味している．そして多くの農業技術は

AMADIS の構成要素として農業モデルを Web アプ

20 世紀に発達した (219)．

リケーションとして実装するために構築した，農業

しかし，途上国を中心に満足な食糧を得られない

モデル用フレームワーク JAMF の機能と特徴につ人々が未だに多く存在している．さらに近年の，異いて述べる．最後に，JAMF を利用して農業モデ

常気象による洪水や干ばつ，新興国での食糧需要のルのプログラムを実装したときの効果を示す．

増加や食生活の欧米化，燃料高騰や温暖化対策のた〈IV〉の前半では，AMADIS の各要素を連携さめのバイオエタノール原料としの需要増などの新しせるためのメッセージ交換手法に関する研究についい原因により，食糧不安はますます高まっている (50)．

て述べる．後半では，農業モデルを Ajax アプリケー

このような状況の中，一朝一夕に食糧生産を増大

ションやマッシュアップアプリケーションとして実させることは難しいが，世界中には耕作適地であり装するための技術について述べる．最後に，実アプながら耕作が行われていないところ，最適な栽培品

リケーションを構築することにより，
〈III〉
，
〈IV〉

種の選択の行われていないところが存在する．国内の成果が開発効率，拡張性，保守性の面で優れていでは第 3 期科学技術基本計画における国家基幹技術ることを示す．また，ネットワーク上に分散していの一つとして，データ統合・解析システム（Data

る複数の農業モデルを連携させて，農業用の意思決

Integration and Analysis System; DIAS）(42) におい

定支援システムを構築できることを示す．

て，農業モデルを用いて農作物の栽培適地の探索を〈V〉では，各章の考察を行い，AMADIS がネッ行っている．農作物の栽培可能性を農業モデルによトワーク上に分散した農業モデルやデータベース

り予測できるようになれば，2008 年に世界を揺る等の資源を連携させて有効活用でき，AMADIS のがせたような食糧高騰による社会不安を未然に回避

主要な構成要素である農業モデルを JAMF によできるようになり，発展途上国の農業を発展させ，り Web アプリケーションとして実装できることに貧困対策としても大いに役立つことが期待できる．

よって，本論文の提案と研究の有用性を示す．また，残された課題や今後の展望について検討し，本論文のまとめを行う．

2） 気候変動

地球の平均気温は 20 世紀の間に 0.74℃上昇し，後半になるに従って上昇が加速している (104)．気候
本論文の題目での「フレームワーク」は，分散変動の影響は，世界各国の都市部や山間部など地域

協調システムにおいて様々な農業モデルとデータを毎に固有な形で現れることが予想される．そのたネットワーク経由でつなぎ，有機的に機能させるため，各国が連携して様々な地球観測データや予測めの構造のことを意味し，〈III〉での「フレームワー

データを蓄積し，これらのデータを統融合して人類ク」は，農業モデルを Web アプリケーションとしに有益な情報に変換することをめざす Global Earthて構築するためのプログラムの枠組みのことを意味

Observation System of Systems（GEOSS）の 10 年

している．

実施計画が進められている (62)．日本では DIAS がGEOSS の推進母体として活動している．GEOSS で2.

背景は国際的に共通な利用ニーズとして 9 項目の公共的

1） 食糧事情

利益分野が設定され，その 1 項目が農業分野である．

約 1 万年前の農耕と牧畜が開始される以前，人類

気候変動（Climate Change）は植物季節（Plant

は天然の果実や野草の採取と動物の狩猟のみから食

Phenology）に影響を与え，適切な栽培期間が変動

糧を得ていたため，地球全体で 1000 万人の命しかして農作業時期が移動したり，最適な栽培品種が維持できなかった．ところが 2005 年には人類は 65変化したりする．水稲栽培では登熟期が高温期と億人にまでに増加している．これは人類の 99.9% が，重ならないように栽培する必要があるため，最適

田中慶：農業シミュレーションモデルにおける分散協調システムのためのフレームワークに関する研究

出穂期は関東より西では遅くなり，北では早くな(82)

3

ア双方の情報技術が欠かせない．農林水産省による．また，温暖化により発育速度が高まり，生育

委託プロジェクト「農作業の軽労化に向けた農業自期間が短縮すると，減収や品質低下につながる．果動化・アシストシステムの開発」（2010 ～）では，

樹栽培では冬期の低温が不十分だと自発休眠覚醒

そのための研究が進められている．

る（Endodormancy）が不十分となり，開花時期がずれて受粉樹の開花と揃わなくなる．ひどい場合には開花しないこともある

(234)

．

3.

農業シミュレーションモデル

1950 年代にシステム理論（System Theory）をこのような将来の気候変動を想定した研究を行う

工 学 分 野 に 応 用 し て い た Massachusetts 工 科 大にあたり，すべての実験を人工気象室や，実験条件

学（MIT） は， イ ン ダ ス ト リ ア ル ダ イ ナ ミ ク スの気候に似た別の地域で行うわけにはいかず，農業（Industrial Dynamics）(53) で，計算機シミュレーショ

モデルを利用したシミュレーションによる代替試験

ンによる企業の経済活動をシミュレーションした．

の果たす役割は大きい．文部科学省による「気候変さらに，ローマクラブ（Club of Rome）から委託さ動適応戦略イニシアチブ」気候変動適応研究推進プ

れて作成された報告書「成長の限界」(152) では，地球ログラム（2010 ～）では，気候変動に対応した農全体の人間の行動様式を求める世界モデルを，ワー業モデルの開発が進められている．

ルドダイナミクス（World Dynamics）(54) を用いてシミュレーションを行い，適切な政策が行なわれず

3） 国内農業問題に人口と資本の成長が続けば，破局を避けられない

国内の農業現場は，農産物の輸入圧力や，生産という警告を出した．これらの研究を総称してシス者の担い手不足といった問題を抱えている．日本はテムダイナミクス（System Dynamics）と呼ばれて海外の農業国から農産物に対する輸入障壁の解放をいる．

求められており，工業製品輸出の競争力を維持する

システムダイナミクスの成果を受け，農業分野

ためにも，自由貿易協定（Free Trade Agreement;

でもモデルによるシミュレーションを行う動きが起FTA）や環太平洋戦略的経済連携協定（Trans-Pacific

こった．1970 年代始めに有用な農業シミュレーショ

Partnership; TPP）参加への議論が高まっている．

ン用プログラムライブラリ群が登場すると，研究者

このような中，品質や価格で競争力を持つ農産物をが農業モデルのプログラムを開発するようになっ生産するための最適農業を実現するために，農作業た．1980 年 代 に 意 思 決 定 支 援（Decision Supportの意思決定支援へ農業モデルなどの情報技術の利用

System; DSS）用として開発された農業モデルの中が進められている．

で成功したものはなかったが，作物生産における生また，農業者が大幅に減少し，高齢化が進んでい理学的プロセスのモデル化技術は進歩した．その後，るという問題に対し，新規農業生産者の参入，育成

以下で紹介する開発グループの活躍により，現在でが喫緊の課題となっている．農業生産は気象や土壌は農業モデルが農業研究のツールとして受け入れらなどの影響を強く受けるとともに，家族経営が主でれている (224)．

あり，個々の農家の経験や知識に頼る作業工程が多モデル化の対象は作物，病害虫，農業気象と幅広く存在するため，農作業の標準化が困難である．新く，相互の影響を考慮できる統合モデルも存在する．

規農業者が営農を始めるためには，篤農家の暗黙知モデル化の手法はミクロなモデルを積み上げるシスを可視化し，他の農業者等に継承する仕組みが必要

テム的（メカニスティック）モデルや，観測データである．篤農家の暗黙知は一度失われると復活は難から関係性を推定する統計モデルなどがあり，モデしいため，篤農家の高齢化を考慮すると，残されてルの規模は様々である．モデル開発体制は，世界的いる時間は少ない．暗黙知は意思決定から農業機械

なネットワークを構成して，世界中の研究者や先進の操作まで広範な知識を含んでいるため，それらを農家が利用できるモデルを開発するグループもあれ可視化するためには農作業内容，環境情報，生体情ば，県の農業試験場で県内の普及員や農家を対象と報の計測，モデル化，データベース化，データマイしたモデルを開発するグループもある．これらのモ

ニングなどを行うためのソフトウェアとハードウェ

デル情報を収集し農業モデルのデータベースとして

中央農業総合研究センター研究報告4

まとめる試みも行われた (203,122)．

を受ける．施肥された半乾燥地域や，軽しょ

本節では，主に作物モデル開発の歴史について述
べた後，作物モデルと関連性の高い病害虫モデルや第 20 号（2013. 11）

う土での集約栽培で起こる．
生産レベル 3：

気象モデルについて述べる．

成長期に窒素ストレスを受け，加えて水ストレスを受けたり，天候不順だったりする．世界中でよく起こる状況である．

1） 作物モデル

生産レベル 4： 成長期にリンや他のミネラルの

初期の作物モデル（Crop Model）の目的は，植不足により成長が制限される．施肥されずに物成長を科学的知見から説明することにあったが，ひどく利用された土地で起こる．

次第に成長予測機能を持った意思決定支援用アプリ
ケーションが開発されるようになった．また，時間とコストのかかる圃場試験の効率化のために，一部

また，作物モデルの開発を以下の 3 段階に分類している (199)．

を作物モデルによるシミュレーションに置き換えるために利用されている (115)．

予備段階（Preliminary Phase）：作物成長の理解

作物モデルの主な開発グループとして，オランダや説明を行うために，モデルを定式化し，シの Wageningen グループ，アメリカの IBSNAT グ

ステムの状態，変数などの概念化を行う．

ループ，オーストラリアの APSRU グループの 3 つ

包括段階（Comprehensive Phase）：状態，変数が挙げられる．Wageningen グループと IBSNATの間の関係を実験から明らかにし，モデルのグループは 1991 年に協力関係を結び，1994 年にプロセスとして組み込んでいき，モデルのプInternational Consortium for Agricultural Systems

ログラミングと検証を行う．

(25)

が 設 立 さ れ た．1993 年

要約段階（Summary Phase）：モデルの評価と感に 10 年 間 の IBSNAT プ ロ ジ ェ ク ト が 終 了 し た

度分析（Sensitivity Analysis）を行った後，

IBSNAT グループは ICASA に引き継がれた．1995

複雑になりすぎ，入手しづらい観測データを

年には APSRU グループとも協力関係が結ばれ，そ入力として利用するようになっていたモデルの後もいくつかの地域のグループと結ばれた．図 1を簡素化し，現場で実利用できるようにする．

Applications（ICASA）に作物モデル開発グループの関係と，開発された作物モデルの系図を示す．

de Wit は，門司・佐伯によって発展させられていた群落光合成モデル (157) を数値モデル化 (38) し，作（1） Wageningen グループ

物成長の動的モデルの基礎とした．そのため，‘School

Wageningen での作物モデル開発は，de Wit と，of de Wit’ のモデルの多くは光合成駆動である．主Department of Theoretical Production Ecology

なモデルとして以下のものがある．1960 年代はモof the Wageningen Agricultural University（TPE-

デル開発の予備段階であり，光合成モデルである

WAU）と DLO-Research Institute for Agrobiology

Elementary Crop Growth Simulator（ELCROS）(40)

and Soil Fertility（AB-DLO）の彼の同僚によってが最初の動的作物成長シミュレータとして開発され

始められた

(39)

．その後に続くモデルを含めて ‘Schoolof de Wit’ と呼ばれている

(26)

．

た．
1970 年 代 は 包 括 段 階 と な り， 栄 養 相 に お け る

Wageningen グループでは，作物生産システムの成 長 と 蒸 散 の モ デ ル で あ る Basic Crop Growth

成長制限要因を，以下の 4 つの生産レベルに分類しSimulator（BACROS）(41) が ELCROS を発展させてている (201)．

開発された．BACROS からは 1 日の光合成，呼吸，蒸散をシミュレートするための Simulation of Daily

生産レベル 1： 十分な水と栄養があり（潜在成長），どの生産レベルよりも高い収量を得る．

Photosynthesis and Transpiration（PHOTON） が派生した．

天候（日射量，気温）にのみ影響を受ける．

1980 年代は要約段階となり，作物パラメータに生産レベル 2： 成長期に水ストレスの影響のみ

よって多くの作物に対応した Simple and Universal

69
田中慶：農業シミュレーションモデルにおける分散協調システムのためのフレームワークに関する研究

1980

1985

1990

Monteith
1972

1995

5

2000

SIMRIW
1990

ELCROS
1970
BACROS
1978

SUCROS
1982
MACROS
1989

Wageningen
グループ

ORYZA
1994

BEANGRO1990
SOYGRO1983
PEANUTGRO
1987
IBSNAT
グループ

CERESWheat 1985
Maize 1986

D
S
S
A
T
v2.1

C
R
O
P
G
R
O
1991

1989

CERESRice 1990, Sorghum 1991
Millet 1991, Barley 1991

ORYZA
2000

D
S
S
A
T
v3.0

D
S
S
A
T
v4.0

1994

2004

SUBSTORPotato 1993, Aroid 1991
CROPSIM-Cassava 1994
AUSIM
1991

APSRU
グループ

PERFECT
1991

APSIM
1994

Wageningen グループ
IBSNAT グループ

ICASA グループ
APSRU グループ

図 1 作物モデルの系図と開発グループの関係

Crop growth Simulator（SUCROS）(275) が開発されの実運用指向モデルで，ユーザフレンドリなイ

た．SUCROS には生産レベル 1 のための SUCROS1

ンタフェースを持ち，ヨーロッパの生産力調査と，生産レベル 2 のための SUCROS2 の 2 種類がに お い て 成 功 を 収 め た．Modules of an Annual

あ る．SUCROS は SUCROS87 を 経 て， 最 新 版 がCrop Simulator（MACROS）(201) は Simulation and〉のソースコードSUCROS97 (281) で，FST〈III.2.2）

Systems Analysis for Rice Production（SARP）プを Wageningen 大学の Web サイトからダウンロー

ロジェクトの一部として開発され，東南アジアの研

ドできる

(286)

．また，
SUCROS はモデルとソフトウェ

ア品質の改善のテストにも利用された．
WOFOST(276)

は SUCROS か ら 派 生 し た 最 初

究者にシミュレーションとシステム解析の技術を移転するために利用された．
ORYZA は International Rice Research Institute中央農業総合研究センター研究報告6

第 20 号（2013. 11）（IRRI） と Wageningen 大 学 に よ り，MACROS と（2） IBSNAT グループ

SUCROS をもとにして開発された熱帯低地の水稲International Benchmark Sites Network for(129)

Agrotechnology Transfer（IBSNAT）(269,270,267) プ ロ

は潜在収量を求めるモデルで，その後，水ストレス

ジェクトの目的は，途上国の農業者に技術移転をす

生育モデルである．最初に開発された ORYZA1ありの場合の ORYZA_W
場合の ORYZA_N

(300)

(46)

，窒素ストレスありのることにより，限りある資源を有効利用することに(4)，ORYZA1N ，窒素ストレス(263)あった．技術移転に当たっては，試行錯誤による非が開発され効率的な方法でなく，意思決定支援モデルを利用すた．その後，すべての種類の ORYZA が統合され，る方法がとられた．そのために，世界中の研究者ありで低日射量の場合の ORYZA_0
ORYZA2000

(27)

となった．

ネットワークが形成され，意思決定支援モデルの開ORYZA は 1994 年 に リ リ ー ス さ れ て 以

発，検証，適用が行われた．IBSNAT プロジェク

降，ORYZA2000（2001），v2.0（2003），v2.1

トの主な成果として，最小データセットの定義と，（2004），v2.13（2009） と 改 良 が 重 ね ら れ て い る．

DSSAT の開発が挙げられる．

ORYZA2000 は IRRI の Web ページからダウンロー
ドできる

最小データセット〈I.4〉は，モデルの対象や精

(105)

．

度により，観測すべき気象，土壌，作物成長，農作

図 2 は SUCROS の生産レベル 1 の場合を，フロー業管理に関するデータの種類 (99)（表 2）と，その観ダイアグラム (53,137) で示したものである．フローダ

測間隔 (172)（表 3）を 3 段階で分類したものである．

イアグラム記法は，‘School of de Wit’ のモデルやモ

これにより，試験場などの観測者にとっては観測す

ジュールの説明をするために多用されている．作物べき最低限のデータ種別が明確になり，モデル開発

や各生産レベルの違いによるモデルの変更点の確認者にとっては開発したモデルに必要なデータが揃わや，プログラム作成時のコンポーネント設計に役立

ず，モデルを利用できないということを避けられる．

てられている．図中のバルブ形は速度変数（Rate

また，観測データのデータベース化を考慮した記録

Variable），長方形は速度変数を積分した状態変数

書式についても定義された (289)．
Decision Support System for Agrotechnology（State Variable）， 楕 円 形 は 補 助 変 数（Auxiliary
Variable）， 下 線 は 駆 動 変 数（Driving Variable），
70
実線は物質の流れ，点線は情報の流れを意味していTransfer（DSSAT）(113,115)

る．

のモデルをモジュール化して統合した意思決定支援

気温

日射量

は，CROPGRO (23,24)

や
(216)

Crop Environment Resource Synthesis（CERES）

光合成効率

成長速度
LAI

光合成
発育
ステージ
貯蔵

分配

地上部
生物量
地下部
生物量

成長
転換効率
維持

図 2 ‘School of de Wit’ の典型的な作物成長モデルのフローダイアグラム (200)
バルブ形は速度変数，長方形は状態変数，楕円形は補助変数，下線は駆動変数，実線は物質の流れ，点線は情報の流れを意
味する (53,137)．

田中慶：農業シミュレーションモデルにおける分散協調システムのためのフレームワークに関する研究

7

モデルである．さらに，作物モデルを活用するため

理，土壌生産性の傾向などの影響をシミュレーショ

の，気象，土壌，遺伝子，病害虫，圃場実験を扱ンする能力，③よく設計，テストされ，柔軟性と信う，データベースや支援ソフトウェアと，4 種類の頼性のあるソースコードを持つ，という 3 点の優先

シミュレーションを行うためのアプリケーションを事項を設けて開発が行われた．

持っている（図 3）．

Agricultural Production Systems Simulator

DSSAT は 1989 年に v2.1 がリリースされて以降，（APSIM）(150,116) は，CERES-Maize (112) をモジュール

v2.5，
v3.0（1994），
v3.5（1998），
v4.0（2004），
v4.5（2008）

化しつつ，3 点のモデル開発優先事項を満たすようと改良が重ねられている．その間に 100 ヶ国以上のに開発された AUSIM (149) と，土壌浸食の影響を評

研究者に配布され，食糧生産問題を検討するために価する PERFECT (140) を統合して開発された．

利用されてきた．また，対象作物は 11 から 27 に増APSIM は 1994 年 に リ リ ー ス さ れ て 以 降，v5.3

加している．現在は ICASA によって DSSAT の研（2007），v6.0（2008），v7.0（2009）と改良が重ねら

修活動や更新が行われている．DSSAT は ICASA

れ，研修活動も行われている．APSIM は Web ペーの Web ページから購入できる

(103)

．

ジからダウンロードし，ライセンス文書を送付することで利用できる (14)．

（3） APSRU グループ
Agricultural Production Systems Research
Unit（APSRU） は Commonwealth Scientific andIndustrial Research Organization（CSIRO）とオーストラリアの Queensland 州による農業モデル開発（4） その他の作物モデル
上記の作物開発グループ (26) に属さない作物モデルの開発も行われている．
CropSyst (227,228) は 1990 年代初めに Washington 州立大学で開発されたプロセスベースのモデルであ71

事業により 1991 年に組織された．
より良い農業戦略を決定するツールのためのソフ

る．CropSyst は気候，土壌特性，作物特性，管理

トウェア要求として，①入力データに対する高感度が作物システムの生産性と環境へ与える影響を研究

な作物モデル，②作物，作付け順序，混作，栽培管するための分析ツールとして開発されており，1 日

データベースモデル

アプリケーション

気象

作物モデル

検証 /
感度分析

土壌

CROPGRO
CERES

遺伝子支援ソフトウェア

病害虫
実験
経済

時期的
戦略分析

グラフィックス
気象
土壌
遺伝子

DSSAT ユーザ
インタフェース

輪作 /連作分析
空間分析 /GIS 連携病害虫
実験
経済

図 3 DSSAT の構成図 (115)
モデルで利用される各種データはデータベースから取得されてモデルに入力されるか，支援ソフトウェアで加工されてから入力される．例えば気象データでは，WGEN ルーチンでデータの補間を行ったり，HMET ルーチンで日別値から時別値を生成したりする．モデルの結果は 4 種類のアプリケーションにより，モデルの検証，意思決定支援に利用される．これらの操作は DSSAT ユーザインタフェースを通して行われる．

DVR; 式 1）を積分した発育指数（Developmental
Index; DVI; 式 2）で作物の発育ステージを決定しているため，発育速度（DVR）モデルと呼ばれている．
8

中央農業総合研究センター研究報告

毎のステップ，複数年，複数作物対応のシミュレー
ションモデルである．DSSAT より早くから輪作シ
ミュレーションに対応し，大規模シミュレーション

DVR �

第 20 号（2013.
11）
1‐������������

G�1�������������� �������� � � ����
���

式1

式2

生殖成長相（Re�� ��� � ���� � � 0�� ���

成熟相（Matura
1

式 2 ��� � ��� �1 �
0

DVR は気温 T と日長 L の関数である．G は出穂ただし
は気温 T と日長 L の関数である．
G は出穂まはある日長条件下で発育速度
CropSyst は DSSAT と異なり，すべての作物の DVRまでの最小日数，Th�� ��� �
での最小日数，Th
はある日長条件下で発育速度が�� �1��
が 1/2 になる気温，Lc は限界日長，A は温度係数，
成長シミュレーションに対して同じアプローチを用
1/2 になる気温，Lc
は限界日長，A は温度係数，B�� ��� � 1‐��B は日長係数で，品種ごとに用意されるパラメータ
いている．この手法のために，作物成長プロセスのは日長係数で，品種ごとに用意されるパラメータでである．DVI 値の 0 は出芽を，1 は出穂を意味して記述の単純化が行われた．このことは，
作物パラメー
ある．DVI 値の 0 は出芽を，1 は出穂を意味してい
DVR は式 1 と同いる．
タ設定と検証を容易にし，ユーザのモデル導入の助る．
また，作物の物質生産を考える際に重要となるのGj は各発育相のけとなっている (33)．
また，作物の物質生産を考える際に重要となるのが光合成モデル (38) であるが，国内で de Wit に先駆育速度が 1/2 にな
CropSyst は 1992 年にリリースされて以降，v1が光合成モデル (38) であるが，国内で de Wit に先駆 (157)係数，Bj は日長係
けて，門司・佐伯により植物群落の光合成モデル（1993），v2（1998），v3（2000），v4（2005）と改良
けて，門司・佐伯により植物群落の光合成モデル (157)
育指数，DVI2*はが研究されていた．この段階で開発された水稲生育が重ねられている．CropSyst は Web ページからダが研究されていた．この段階で開発された水稲生育ごとに用意されモデル (107) やヒマワリ成長モデル (93) では植物体の乾ウンロードできる (290)．
モデル (107) やヒマワリ成長モデル (93) では植物体のThj，Lcj，Aj，Bj
物重の予測のみを行え，収量予測はできなかった．
乾物重の予測のみを行え，収量予測はできなかった．
相で同じ値であ(158,159)(158,159)の考えに基づく，日射 ― 乾物変
Monteith（5） 国内の作物モデルの考えに基づく，日射―乾物変換
Monteith
定し，精度の向換効率タイプのモデルの流れを汲み，収量予測も国内において 1960 年代以前には，気象データと効率タイプのモデルの流れを汲み，収量予測も行え
DVI を求める行える国内の代表的モデルが水稲生育予測モデ
豊凶考照試験データの間の相関関係を調べ，相関のる 国 内の代表的モデルが水稲生育予測モデル
は出芽（Emergen
ル Simulation
Model for Rice-Weather
Relations
高い要素を機械的に組み合わせた統計学的な生育・
Simulation
Model for Rice-Weather
Relations（SIMRIW）
2 は出穂（Head(95,97)である．SIMRIW
は発育速度の計算
収量予測モデル (148) が作られた．しかし，モデル作(95,97) （SIMRIW）
である．SIMRIW
は発育速度の計算において，ージを意味してにおいて，日長感応性の時期であるかと，発育相が 国内では，上成のために観測を行った地域や期間を超えての利用日長感応性の時期であるかと，発育相が栄養成長相用ツールとして役立てられている．

栄養成長相
（式 3）
，
生殖成長相
（式 4）
，
成熟相（式 5）ができなかったため，栽培管理に利用することは難（式 3），生殖成長相（式4），成熟相（式5）かによ
ユーザが利用でしかった．

って DVR
計算式を使い分けて予測精度向上を図っ
かによって
DVR 計算式を使い分けて予測精度向上かあるが，
小規模(94,164)(94,164)．
．
1970 年代には，気象と作物生産の関係を生理学ているを図っている
海外の開発グルでは明示的に扱われていない窒
その後，SIMRIW
では明示的に扱われていないニングや改良の的プロセスと結びつけるモデルが研究されるように その後，SIMRIW

を 取 り 入 れ た Java Java
versionof Programof ofワークを形成し窒素動態を取り入れた
versionof Program
なった．初期のモデル (162,231) は生育期間の全部また素 動 態
Oryza-Nitrogen
relationfor
Crop
GrowthAnalysis
Oryza-Nitrogen relation for Crop Growth Analysisい (78)．
は一定期間の気象データを入力データとする静的モ(79,246,80)が開発された．JAPONICAが開発された．JAPONICA は7（JAPONICA）(79,246,80)
デルであった．静的モデルは時間をパラメータとし（JAPONICA）
7
は発育速度の計算において，さらに栄養成長相，生発育速度の計算において，さらに栄養成長相，生殖7 （6） 水稲生
たステップごとの計算を行わないため，生育途中の殖成長相，成熟相ごとに DVR 計算式のパラメータ 7 水稲はアジア
成長相，成熟相ごとに DVR 計算式のパラメータをある時点での生育状況を判断することができないこを使い分けて予測精度向上を図っている．
その後，連立微分方程式による動的モデルがシス
多くの水稲生育栄養成長相（Vegetative
Phase）：
使い分けて予測精度向上を図っている．
とが欠点であった．
その後，連立微分方程式による動的モデルがシス
栄養成長相（Vegetative Phase）：
テムとしての作物成長の理解に役立つことが示され生育モデルを表
その後，連立微分方程式による動的モデルがシス
栄養成長相（Vegetative
Phase）： � ����∗ �
その後，連立微分方程式による動的モデルがシス������ ���
栄養成長相（Vegetative
Phase）：
テムとしての作物成長の理解に役立つことが示されその後，連立微分方程式による動的モデルがシス∗�
栄養成長相（Vegetative
Phase）
：
(40)
���
����
�
�
���
∗
�
�
．このモデルは発育速度（Developmental Rate;た��� � ��� ��� � �� ��� ���� � ���� � � � ���
式3テムとしての作物成長の理解に役立つことが示され∗(40)
テムとしての作物成長の理解に役立つことが示され��� � � ��� ���� �����
��．このモデルは発育速度（Developmental Rate;た��� � �0�������
���∗��∗��������
�∗���
���
テムとしての作物成長の理解に役立つことが示され
式3
�
����
�
���
(40)
���
����
�
�
�
���
∗
�
DVR;
式 1）を積分した発育指数（Developmental� ���(40) ．このモデルは発育速度（Developmental
Rate;
た
∗�� �
���� ���� � ��0� ��� � �� ��� ����
� ���
���
式
式3
�
(40) ．このモデルは発育速度（Developmental Rate;
�
�
�
���
た
∗
式 1）を積分した発育指数（Developmental．このモデルは発育速度（Developmental
Rate;
たDVR;
��� � ��� ���� �� ��� ���������������
式3
� � �∗ ��
����
�
�
0
���
Index;
DVI;
式2）で作物の発育ステージを決定してDVR;式1）を積分した発育指数（Developmental
生殖成長相（Reproductive���� �Phase）
�：
� ���
0
��� ∗ � ：DVR;式1）を積分した発育指数（Developmental
1）を積分した発育指数（Developmental
Index;
式 2）で作物の発育ステージを決定して
DVR;
式DVI;
生殖成長相（Reproductive
Phase）
生殖成長相（Reproductive
Phase）
：
いるため，
発育速度
（DVR）
モデルと呼ばれている．
Index; DVI; 式 2）で作物の発育ステージを決定して∗生殖成長相（Reproductive
Phase）：
�� ��� � �� ��� ���� � ���� � � � ���
Index;
DVI;
式 2）で作物の発育ステージを決定し
いるため，
発育速度
（DVR）モデルと呼ばれている． 生殖成長相（Reproductive
Index;
DVI;
式2）で作物の発育ステージを決定して∗Phase）：
���������
���∗�� �� ������
���いるため，発育速度（DVR）モデルと呼ばれている．
��� � � 0�� ��� � �� ��� ����式4
�∗∗ � � � ������� �
�0� ��� � �� ��� ����
� ���
���
ているため，発育速度（DVR）モデルと呼ばれて�� � � ���いるため，発育速度（DVR）
モデルと呼ばれている．
∗�
���
�
�
式
式4
∗
�
���
����
�
�
���
���������
���
���
����
�
�
�
�
���
�
�
�
���
∗
�
�
�
�
�
1‐��� ���������
∗����� � ����
� ���
� ���
0 ���
���
��� � � �
式4
� ��
∗
�
�
いる．
式
1
DVR �
1‐�������
���� � ���� ������ ∗ ���� � � 0 � ���
式4�� � �
������������� �
������
�
式1
DVR � G�1�
成熟相（Maturating
Phase）：
1‐���
���
∗� �
��������
�� �
���
����
�
�
���
�
�
��
�
����
成熟相（Maturating
Phase）
：
�
�
G�1�
���
式
1
DVR � 1‐��� ����������
成熟相（Maturating Phase）：
�
式 1式 1�
DVR � G�1����
成熟相（Maturating
Phase）：1������� ����� �����
G�1��������
成熟相（Maturating
Phase）： ��� � �� � ���1 �1 � ���
式2���� ������ �������� � �
���
���
�
�
�1
式
�
�
式55
� �1 � ���� �� � ���
式2������ ������ ������� � 1�0�� �1 � ������� ������ �� � ��
式5�������
���
���
�����
��
式
2
������ � ������� � ���01� � ��� �
� �
式5
�
����
��
���
���
式2
������ � ������������ ��� 0
式5
ただし
��
�
���
���
ただし 0
�� � ���
���
ただし
1
DVR は気温 T と日長 L の関数である．G は出穂まただし
� � ��� ��� � 1���
1 ����� ��
DVR は気温 T と日長 L の関数である．G は出穂ま ただし
式6�� ��� � �� �1��������� � 1���
での最小日数，Th
はある日長条件下で発育速度が1 � ������ ���
DVR は気温 T と日長
L の関数である．G は出穂ま
式6
���
�
�
�� ��� � �� �1����
での最小日数，Th
はある日長条件下で発育速度が� �� � 1���1
DVR は気温 T と日長
L の関数である．G は出穂ま式6�� �� � 1���� �����
������
������� ���
1/2になる気温，Lc はある日長条件下で発育速度がは限界日長，A は温度係数，B� �� � ���
での最小日数，Th�1������� ���1‐
式
���
���
�
1���
式 67
���
�������� �� �
���������
1/2 になる気温，Lc
は限界日長，A は温度係数，B�
での最小日数，Th
はある日長条件下で発育速度が
�
�
1�
���
���
��
�
式7
��
� 1‐���
� 1���
は日長係数で，品種ごとに用意されるパラメータで1/2 になる気温，Lc は限界日長，A は温度係数，B�� � 1���
式7
� ��� � 1‐������ ������ ��

式式
1 1
式式
2 2

G は出穂ま
は出穂ま
発育速度が
育速度が

度係数，B
係数，B
ラメータで
メータで

意味してい
味してい

要となるの
となるの
Wit
に先駆
t に先駆

(157)
モデル
(157)

デル
た水稲生育
水稲生育
は植物体の
植物体の

�� ����� ���

∗���� � ���∗ ������ � �����

成熟相（Maturating
Phase）
成熟相（Maturating
Phase）：：

11
�1 � ������� ������ �� � �� � ���
�1� � ������� ������ �� � �� � ������ �田中慶：農業シミュレーションモデルにおける分散協調システムのためのフレームワークに関する研究����� � ���式式
5 50
�� � ���
0�� � ���

ただし
ただし

1
1
� � ��� ��� � 1���� � ���
����� ������ �� �� � 1����� �1����
����� ������ ���� �1����
�

9ム Pest Management Executive（PMEX）(34,293) が，

式式
6式66

Michigan 州立大学で開発された．もとはリンゴの

式式
7式77

IPM 用に開発されたが，後に様々な作物に適用さ

DVRは式
T と日長
L の関数であは式1 1と同様に気温と同様に気温
DVR
T と日長
L の関数である．
DVR
は式 1 と同様に気温T と日長
L の関数である．
る．G
j は各発育相の最小日数，Thj はある日長条
j は各発育相の最小日数，j はある日長条件下で発は各発育相の最小日数，
ThTh
Gj G
j はある日長条件下で発界日件 下 で1/2
発1/2
育速 度 が 1/2 に は限界日長，Aなj は限界日長，Aる 温 度，Lcj はは温度
育速度がになる温度，Lc
j限
は温度
育速度が
になる温度，Lc

病害モデル（Disease Model）の実行には，
入力デー��� ������ ���� � 1����� ��� � 1‐����� � 1���� 1‐������ ������ ���� ���

jj*
は日長に感応し始める発係数，B
温 度 係 数，Bj *は長 係 数，DVI1* は 日 長
長，Aは日長係数，DVI
j は日長係数，DVI
1日
j は
係数，B
j
1 は日長に感応し始める発*育指数，DVI* 2 は日長感応性を失う発育指数で，品種に感応し始める発育指数，DVI
2* は日長感応性を育指数，DVI
2 は日長感応性を失う発育指数で，品種ごとに用意されるパラメータである．
SIMRIW
Gj，失う発育指数で，品種ごとに用意されるパラメー
ごとに用意されるパラメータである．
SIMRIWのの
Gj，j，Bj の各品種パラメータはすべての発育
タj，Lc
で あj，A
る．SIMRIWの Gj，Thj，Lcj，Aj，Bj の 各 品
ThThj，Lcj，Aj，Bj の各品種パラメータはすべての発育なかった．
相で同じ値であるが，JAPONICAでは異なる値を設かった．
種パラメータはすべての発育相で同じ値であるが，相で同じ値であるが，JAPONICAでは異なる値を設―乾物変換
定し，精度の向上を図っている．
乾物変換
JAPONICA では異なる値を設定し，精度の向上を定し，精度の向上を図っている．
予測も行え
DVI
を求める式は式2 と同じである．DVI
値の
測も行え
DVI
を求める式は式2 と同じである．DVI
値の0 0図っている．
測モデル
は出芽（Emergence）
1 は幼穂分化（Panicle
Initiation）
モデル
は出芽（Emergence）
，1，
は幼穂分化
（Panicle
Initiation），，
DVIを求める式は式2 と同じである．DVI
値の（SIMRIW）
2 は出穂（Heading）
は成熟（Maturity）の各ステ
SIMRIW） 2 は出穂（Heading），3，3
は成熟（Maturity）の各ステ
0 は 出 芽（Emergence），1 は 幼 穂 分 化（Panicle
(163)
において，
．
ージを意味している
(163)
おいて，
．
ージを意味している
Initiation），
2 は出穂（Heading），
3 は成熟（Maturity）
栄養成長相
国内では，上記のような作物モデルが開発され，
養成長相
(163)
国内では，上記のような作物モデルが開発され，の各ステージを意味している ．
5）かによ
ユーザが利用できるようになっているものがいくつ）かによユーザが利用できるようになっているものがいくつ
国内では，
上記のような作物モデルが開発され，
ユー
向上を図っ
かあるが，
小規模な開発グループによるものである．
上を図っ
かあるが，
小規模な開発グループによるものである．
ザが利用できるようになっているものがいくつかある
海外の開発グループのように，普及のためのトレー
海外の開発グループのように，普及のためのトレー
が，小規模な開発グループによるものである．海外のていない窒
ニングや改良のための栽培試験を，全国的なネット
いない窒
ニングや改良のための栽培試験を，全国的なネット開発グループのように，普及のためのトレーニングやrogramof of
ワークを形成して継続的に行っているような例はな
gram
ワークを形成して継続的に行っているような例はな
改良のための栽培試験を，全国的なネットワークを形(78)
hAnalysis
Analysis(78)．．
いい成して継続的に行っているような例はない (78)．
APONICAPONICA
成長相，生（6）
水稲生育モデル
長相，生（6）
水稲生育モデル
(142)
パラメータ
（6）
水稲生育モデル
ため，水稲はアジアにおける主要作物である
(142)
ラメータ
ため，
水稲はアジアにおける主要作物である(142)．
水稲はアジアにおける主要作物である
ため，多くの水稲生育モデルが開発されてきた．主な水稲
多くの水稲生育モデルが開発されてきた．主な水稲
多くの水稲生育モデルが開発されてきた．主な水稲生育モデルを表1 に示す．多くは水稲のみを対象と生育モデルを表1 に示す．多くは水稲のみを対象とれた．
タとして気温，降水量などの気象データと，葉の濡れ時間などの圃場データが必要である．病害は潜伏，感染，拡大の 3 段階で進行する (272)．病害虫モデルの開発，検証においても，IBSNAT グループによる気象データベース作成のための最小データセット〈I.4〉，気象データモジュールや，研究者ネットワー
クが役立てられた (264)．
病害虫は作物の成長や収量に影響を与えるので，正確で迅速な意思決定支援を行うためには，作物モ
デルと病害虫モデルを連携させる必要がある．連携にあたっては，病害虫モデルから作物モデルへ一方向に影響を与えるのでなく，双方向に，しかも，時間ステップごとにお互いの状態変数に影響を与えるようにするのが望ましい (265)．双方向連携により，農薬使用時期や使用回数による，減収と農薬使用コ
ストを比較するようなシミュレーションを行うことができる．

3） 気象モデル

作物モデルの実行には気象データが必須である．

規模の小さな作物モデルでは気象データベースから取得して保存したファイルや，圃場で実測した気象データのファイルから読み込んで利用することが多生育モデルを表 1 に示す．多くは水稲のみを対象とい．ある程度の規模の作物モデルは気象ジェネレー

するモデルであるが，DSSAT に含まれる CERES-

タを通して気象データを取得している．気象ジェネ

Rice や CropSyst のような複数の作物を対象とする

レータは気象データを気象データベースから取得すソフトウェアでは，稲－麦－大豆といった輪作シるだけなく，欠測値の補間，予測用の未来のデータ

ミュレーションも行える．また，潜在成長のみをシの生成，気象データを作物モデルが定めた形式で出

ミュレートするモデルと，水や窒素ストレスのある力するなどの機能を提供する．

場合もシミュレートするモデルがある．国内のよう

また，利用頻度が低かったり，観測機器が高価でな灌漑施設が整い，十分な施肥を行える水田での稲あったりして，観測されていない気象要素は，気象

作をシミュレートするには，研究で利用する場合をモデル（Meteorological Model）をサブモデル的に除いて，入力データやパラメータの少ない前者のモ利用して，他の気象要素から推定することがある．

デルが適している．

（1） 気象ジェネレータ

2） 病害虫モデル

現代においても農業ほど天候に依存する人類の活1975 年 に 計 算 機 ベ ー ス の 最 初 の Integrated

動はない．そのため，農業関連のシミュレーション

Pest Management（IPM） 用 の 情 報 発 信 シ ス テにおける気象データの重要度は高い．世界気象機関

72
中央農業総合研究センター研究報告10

第 20 号（2013. 11）

表 1 主な水稲生育モデル
栽培条件
水
窒素
不足 不足

モデルの名称

モデルの特徴RICEMOD (151)

IRRI で開発された灌漑水田と天水田用の簡易モ
デル

●

●

－

CERES-Rice(DSSAT) (214)

IBSNAT プロジェクトで Michigan 州立大学が
DSSAT 用に開発したモデル

●

●

●

WOFOST (276)

世界食料生産可能量の研究のために，CWFS と
Wageningen 大学が開発したモデル

●

●

●

(201)

SARP プロジェクトで開発され，CSMP のモジュールとして構成されたモデル

●

●

●

RICESYS (75)

マダガスカルで Makalioka34 を対象に，人口動態
モデルを適用したモデル●

Rice Clock (57)

揚子江流域で 4 品種を対象に開発した出穂期を求める簡易モデル●－－

ORYZA (129)

SARP プロジェクトで IRRI と Wageningen 大学が開発したモデル●●●

RICAM (306)

Rice Growth Calendar Simulation Model●

Very Simple Model

●

－

－

RLRice (55)

タ イ の 天 水 田 （ Rainfed Lowland ） に お け る
KDML105 を対象に開発したモデル●●

SIMRIW (95)

日本の各県で収量予測や気候変動の影響を予測するために利用されているモデル

●

－

－

JAPONICA (79)

窒素の影響を考慮したモデル

●

－

●

RICEPSM (302)

Rice Population Simulation Model●

TRYM (297)Temperature Rice Yield Model●

プロセスベースの作物モデル●

GEMRICE (98)

Genotype by Environment simulation Model for
RICE 遺伝子型－環境相互作用を考慮したモデル●

PRYSBI (108)Process-based Regional-scale Rice Yield Simulator
with Bayesian Inference 広域収量予測モデル●

RiceGrow (262)Physiological Development Time（PDT）を用いた
Rice Clock の発展モデル●

MACROS

VSM(124)

CropSyst

(33)

最適
条件

●

●

●

●

●

栽培条件が空白の場合は，水稲生育モデルの栽培条件が不明．

（World Meteorological Organization; WMO） に よ(299)

レータでは，降水の有無をマルコフ連鎖（Markov

では，気象要素の計測

Chain）で，降水量，最高・最低気温，日射量を，方法，観測データの保存方法や統計解析手法，各気各種分布（ガンマ分布，正規分布，ベータ分布）を象が作物生育に与える影響や気候変動による影響に用いて計算している．計算式中のパラメータを求めついて述べられている．

るために，過去 20 ～ 30 年間の気象データを利用する農業気象に関する指針

気象ジェネレータ（Weather Generator）は作物

ることが多い．

成長モデルや病害モデルの実行に必要な気象データ

1980 年 代 に は， 作 物 モ デ ル の プ ロ グ ラ ム で 利を生成するプログラムである．多くの気象ジェネ

用できるように，気象ジェネレータのプログラム

田中慶：農業シミュレーションモデルにおける分散協調システムのためのフレームワークに関する研究

が FORTRAN で 開 発 さ れ た (29,132)．DSSAT で 利
用 さ れ る WeatherMan(202,296)

は，WGEN(210,211)とSIMMETEO (61) を含む気象ジェネレータである．

11

デルは月別値を対象としていたが，その後，日別値を対象とするモデル (174,125) や時別値を対象とするモ
デル (146) が研究された．

Weather System (277) は Wageningen グループの作物モデル用の FORTRAN ライブラリとして開発（3） 水田水温モデル

された気象ジェネレータであるが，統計的に気象

水稲生育モデルの中には，成長や収量をより正確

データを生成する機能はなく，気象データを気象に計算するために，気温だけでなく水田水温を利用

データベースから読み込む機能の他に，欠測値の補するモデル (79,246,33) がある．また，水温は温暖化ガス

間機能と日照時間を日射量に変換する機能がある．

であるメタンの水田からの排出にも影響している．

(166)

は CropSyst〈I.3.1）（4）〉で利用される

そのため，水田水温を気温，日射量，風速，相対湿

気象ジェネレータである．基本的な部分は WGEN

度から推定するモデル (131) が開発されていた．水田と同じであるが，降水量の生成にガンマ分布よりパへの日射は葉により遮られるため，水田水温モデル

ラメータ生成が容易なワイブル分布を利用し，気は，水稲生育モデルの Leaf Area Index（LAI）と温，日射量に加えて，蒸気圧と風速も生成できる．

相互作用しながら計算される．

ClimGen

CLIMA(43,45)は C# で開発された気象ジェネレータ

で，気温，蒸発散，降水量，日射量，風速，葉の濡（4） 葉の濡れモデル

れを生成できる．コンポーネント指向で開発されて葉 の 濡 れ 時 間（Leaf Wetness Duration） は 病

いるのが特徴で，各要素の生成を行うための複数の害感染プロセスの重要な要素にも関わらず，農業

モデルコンポーネントが用意されており，その合計試験場においてさえ，あまり観測されている項目

は 300 以上ある．

でないため，病害モデルの実行可否を決める限定

気象ジェネレータの利用の妨げとなるのが，パラ要因になっていた．そこで，葉の濡れを推定する

メータを決定するために必要な長期間の日別気象値

DEWFOR (292) や Surface Wetness Energy Balanceを用意しなければならないことである．特に途上国（SWEB）(143) などのモデルが開発された．

への技術移転のために作物モデルや病害虫モデルを利用した指導を行う場合には，気象データ観測網が（5） 日長時間モデル

整備されておらず，問題となることがある．そのた

日長時間は光周性 (58,59) のある作物の生態反応や，め，10 年間程度の気象データや，日別値でなく月

昆虫の休眠誘起などのシミュレーションを行う場合

別値を利用する気象ジェネレータの研究も行われてには必須のデータである．日長時間を緯度から計算いる．

する式は複雑ではないので，農業モデルのプログラ
ム内に計算式を持って，求めている場合 (97,246) も多（2） 日照時間－日射量モデル

い．

日射量は植物の成長，地温などへ影響を与える

農業モデルで利用されるのは日長時間のみである

重要な気象要素であるが，アメダス観測地点で観測が，夜明，日出，日南中，日没，日暮の各時刻を求されておらず，気象官署や試験場などで観測されためられる計算式もあり，その BASIC プログラムとデータに頼っていた．作物モデルは温度時間によりともに資料としてまとめられている (118)．

ステージを決定し，日射量により収量を計算することが多いため，収量計算部分がオプション扱いされ（6） グリッドていることもある．

ア メ ダ ス（Automated Meteorological Data

日照時間と日射量の関係を推定する研究は古Acquisition System; AMeDAS）(119) の観測地点は約

く か ら 行 わ れ て い た (7,19)． 最 初 の モ デ ル で あ る

850 地点で，設置間隔は約 21km（降水量のみならÅngström 式は日射量と快晴時の日射量の比と，日約 1300 地点，約 17km）あり，国内の地形の複雑

照時間と可照時間の比の間の線形関数で表されておさを考慮すると，十分な設置間隔とはいえない．圃

り，その後のモデルの基本となっている．初期のモ場の周辺の気象観測地点を作物モデルで利用する場

中央農業総合研究センター研究報告12

第 20 号（2013. 11）合，実際の気象値と観測地点の値との差がモデルのがパソコンを所有し，29.5% がインターネットを利

結果に無視できない影響を与える可能性がある．特用していた (181)．同様に，47.5% が携帯電話を所有し，に，地形の複雑な地域ではその可能性が大きい．

18.2% がインターネットを利用していた．このうち国内では，アメダスデータを 1km メッシュ化す(223)のパソコン所有者の 4 割，携帯電話所有者の 3 割がが作成され，各県の農業試験場な

農業経営に利用しているか，利用意向を持っていた．

どで利用されている．このプログラムでは，実測値

パソコンの利用内容としては，インターネットをの地形因子を除いてから内挿することにより，推定利用しない場合は，簿記・青色申告などの経営管理

精度の向上が図られている．

（61.4%）が最も多かったのに対し，インターネット

るプログラムま た， 全 球 で は The global dataset of Solarを利用する場合は，栽培技術等の生産管理情報の収Radiation (SR) and Temperature of near surface

集（61.5%）が最も多かった．携帯電話を利用する

Air (TA)（GD-DR&TR，1961 ～ 2000 年）により，場合は，市況・気象等の情報収集（47.9%）が最も

1 度グリッド（陸地のみ）の気温，降水量，日射量多かった．以上のことから，農家による意思決定にを利用できるようになっている．

おいて，情報機器によるインターネット経由で取得できる情報に，期待を寄せていたことをうかがうこ

4.

農業モデル用データとができる．

途上国への農業技術移転のための意思決定支援シ

農業情報の実利用の例としては，①センサを利用ステムとして農業モデルを導入する場合，農業モデした施設栽培の自動化，Global Positioning System

ルとともに，それが利用するデータの利用可能性の（GPS）や衛星画像を利用した圃場管理，畜産にお検討が重要である．農業モデルの実行地点で，モデける個体管理，市場評価向上のためのトレーサビリ

ルが必要とするデータを揃えられなければモデルを

ティシステムなどの生産管理への利用，②インター実行することができない．また，データの利用を見ネットや携帯電話メールを利用した気象，農業技術，

越して不必要なデータの観測を要求すれば，人的，市況などの情報発信への利用，③直売所の Point of

物的資源の無駄遣いになる．農業モデルで必要とさSale System（POS）を利用した効率的な出荷，販れるデータは，IBSNAT グループによって最小デー

売への利用などがある (183)．この中で農業モデルはタセット（Minimum Data Set; MDS）として表 2②において，生育予測や病害虫発生予察情報の発信のように定義された(99)．また，農業モデルの分析のために利用されている．

レベルに依存して表 3 のように 3 段階に分類された
(172)

．

MDS ではデータ観測方法についても触れられて

6.

国内の農業モデルアプリケーショ
ンの問題

いる．気温は WMO が定めた標準測定法があるが，国内で開発された農業モデルアプリケーション

圃場での測定に適した小規模な装置の利用が許されは数多くあるが (122)，開発グループを構成して開発ている．土壌データはいくつかの測定方法 (213) があされることは少なく，各研究室や研究者単位で開発るが難しいため，他のデータからの推定や，表の利されてきた．そのため，プログラム設計やドキュメ用が許されている．作物データの観測は土壌養分，

ント整備を十分に行った開発がされず，保守や再利

水分，病害虫，耕作方法などの外的要因の影響を除用に支障をきたすことがある．また，開発時には最去するのが難しいことを指摘し，測定箇所の選定に新のハードウェアやソフトウェア技術の利用を心があたって圃場の中央と外側，列間，個体数などの注けていたとしても，開発終了後の保守が不十分で意点を挙げている．

陳腐化してしまったレガシープログラム（Legacy
Program）も多い．レガシー化の原因としては，以5.

国内の農業分野における情報化

下のようなことが挙げられる．

国内でのパソコンや携帯電話などの情報（IT）

機器の進化と普及の影響は，21 世紀に入ると農家• 使用したプログラム開発言語の実行環境を用意でレベルにも及ぶようになった．2002 年末には 46.4%

きなかったり，バージョンの違いによるプログラ田中慶：農業シミュレーションモデルにおける分散協調システムのためのフレームワークに関する研究

13

ム修正が必要であったりする．

状態になっておらず，存在を知ることができない．

• 気象データなどの入力データを用意できないか，• 農業モデルの内容は論文等で公開されているが，入力データ用の書式への変更が困難である．

モデルのプログラムまでは公開されていない．ま• フロッピーディスクなどのレガシー化した記憶媒

たは，論文の情報のみからプログラムを開発する

体に保存しており，読み込み装置を用意できない．

ことが難しい．

• 十分なドキュメントが用意されておらず，実行方
法や，入出力データの書式や内容が分からない．

上記の問題のうち，いくつかは MS-DOS 時代に• 農業モデルのパラメータに地域に関するものが含開発されたプログラムを Windows 世代のユーザがまれ，パラメータを決定するために利用したデー

利用しようとしたときのコンピュータ・リテラシー

タの観測地以外での予測精度が悪い．

の問題であり，ネットワークやソフトウェア技術を• インストーラが付属せず，ファイルのコピー，設

利用して解決可能なものもある．ハードウェアやデ定情報の編集といったインストール作業が煩雑でバイスに起因する問題は，時を経るにつれ，それらある．

の入手が困難になるため深刻である．

• コンソールアプリケーションでのコマンド入力に慣れていない．
• 農業モデルの情報がインターネットで検索できる

水稲モデルの場合，水稲モデルが含まれていて，保守作業の行われている ORYZA や DSSAT を導73
入することも選択肢の 1 つである．しかし，現在そ

表 2 最小データセット (99)
データの種類

実行用データ74

校正用データ
評価用データ

分類
圃場
気象
土壌
初期状態

内容
緯度，経度，高度，年平均気温，土地形状（勾配），水はけ
日別日射量，最高最低気温，降水量
土壌の特徴，有機炭素，有機窒素，pH，リン，カリウムの量前に栽培した作物，根粒菌の量，土壌中の水分，窒素量
作物名，移植日（深さ，方法），灌漑（日付，方法，量，深さ），
管理
施肥，残渣量，農薬，耕作，収穫実行用データ + 発芽日，開花日，成熟日，LAI，乾物重，病害虫被害
ジャックナイフ法：6 個のデータセット→5 個を校正用，1 個を評価用

表 3 最小データセットの対象モデルによる階層 (172)
レベル 0

レベル 1
成長や収量用のプロセス
ベースモデル
日別

対象モデル

単純な作物モデル

観測間隔

週別・実測または気象ジェネ
レータで生成・降水量（圃場で観測） 降水量，日射量，最高最低・日射量，最高最低気温， 気温，蒸発能（圃場で観測）
蒸発能（圃場または近隣の気象観測点）播種，開花，成熟時の土壌
土壌水分，栄養状態，pH 水分と栄養状態
pH，電気伝導率
乾物重，収穫量，播種日， 成長ステージごとの部位
開花日，収穫日
別乾物重，LAI
耕作，施肥，灌漑，除草 耕作，施肥，灌漑，除草剤，剤，殺虫剤（日付と量） 殺虫剤（日付と量）

気象データ

土壌データ
作物データ
管理データ

レベル 2
光合成，呼吸，蒸発，
形態発生，養分吸収
時別または数分別

中央農業総合研究センター研究報告14

第 20 号（2013. 11）

れらのモデルを国内で利用している例が少なく (78)，

ロジェクトの狙いは，全国のΣワークステーション

SIMRIW などの国内で開発されたモデルやその改で作られたソフトウェア部品を，通産省内に構築予良版が利用されている．国内の水稲モデルは対応定だったΣセンターのメインフレームで一元管理，

品種やモデル開発時の栽培環境が似ていることや，供給し，ソフトウェア開発を単なるソフトウェア部

ORYZA や DSSAT と比べ，モデルが単純で実行に品の組み合わせとすることで，高度なソフトウェア

必要な観測データの種類が少ないことが，利用され技術者不足に対応することにあった．しかし，計算ている理由として挙げられる．このことを考慮する

機がこれ以上進化しないという誤った前提のもとと，国内の他のレガシー化している水稲モデルのプ

で，ハードウェア指向で進行したために，5 年間でログラムの中には，レガシーモデル対策をして有効成果を出すことができなかった．

利用できるものがある程度存在すると思われる．

その後もソフトウェアの部品化と，それを利用したプログラムの自動生成についての研究と開発は行

7.

研究事例

われた．汎用的なアプリケーション開発を目指した

1） モジュール化

ツールでは，ツールが想定したアプリケーションの

プ ロ グ ラ ム の 開 発， 保 守 の 効 率 化， 有 効

範囲内での開発はうまくいっても，その範囲を超え

活 用 の 手 法 と し て， プ ロ グ ラ ム の モ ジ ュ ー ルるアプリケーション開発をするのが難しかった．そ化（Modulization），もしくはコンポーネント化のためには，ツールの解析を行ったうえで，機能を（Componentization）がある．このような構造化プ拡張するためのプログラム開発を行うため，一からログラミング（Structured Programming）の手法開発した場合と手間が変わらず，汎用的アプリケー

は 1970 年代には存在しており，作物モデル開発グション開発のための部品化による方法は成功しな

ループ〈I.3.1）〉においても，モデルのモジュール

かった．

(114)

．オブジェクただし，データベースの内容を表示し，ユーザ

ト指向プログラミングが登場すると，その利点の説

操作をデータベースに反映させるようなアプリケー

明をしやすかったこともあり，モジュール化が再びションに限定すると，処理の流れが共通であるため，注目を集めることになった．モジュール化はレガ

Model–View–Controller（MVC）デザインパターン

シーモデルの有効利用のためのキーとなる技術の 1（図 4）の手法がうまく機能し，最小限のプログラ

つではあるが，その分かりやすい利点にのみ注目し，ミングでアプリケーション開発を行える．画面の表

失敗した事例も多い．

示を行うのが View，データやロジックを扱うのが化についての研究が行われていた

計算機の性能が向上するにつれ，ソフトウェアにModel，画面に対するイベントに応じて，処理を行求められる機能は複雑化し，1980 年代には将来的う Model を呼び出し，更新を行う View に通知するなソフトウェア技術者の不足が不安視されていた．

のが Controller である．

そのような背景のなか，1985 年に通商産業省（現経済産業省）がΣプロジェクトを立ち上げた．Σプ

Controller
処理依頼

Response

結果通知
Model
・データ
・ロジック

Request

表示依頼

データ
取得

View
・画面
・CSS, DOM

図 4 MVC デザインパターン

ユーザ

75

田中慶：農業シミュレーションモデルにおける分散協調システムのためのフレームワークに関する研究

152） Web アプリケーション

元で保守性を維持しつつ，相互連携により詳細で複動くアプリケーションのことである．初期の Web

ステムを構築できると考えられる．

Web アプリケーションとは，Web ブラウザ上で雑な農業モデルを動的に構成可能な意思決定支援シ

アプリケーションは，Web サーバから送信された初期の分散協調型の農業情報システムの例としHyperText Markup Language（HTML）による静て，複数の分散したデータベースを協調させて利用的な画面を表示し，ユーザのアクションごとにペーする，MetBroker (168,171) や病害虫防除支援システム

ジ遷移が生じていた．その後，JavaScript を利用し

（PaDB）(126,127,169) がある．MetBroker は〈II〉で述べた Ajax の仕組みにより，画面遷移をせずに動的にる分散協調システムの一要素であるが，それ自身が生成される画面を利用さできるようになった．この複数の気象データベースを協調させるためのデータような表現力の高い Web アプリケーションはリッ

仲介システムとなっている．PaDB は病害虫図鑑，

チインターネットアプリケーション（Rich Internet

病害虫防除指針，農薬情報の 3 種類のデータベース

Application; RIA）と呼ばれている．

を協調させ，1 つのシステム上で，病害虫同定からインターネットの普及と，RIA の登場により，ア防除と農薬に関する情報を得ることができる．

プリケーションの実装方法の主流がスタンドアロン
から Web アプリケーションへと移行した．Web ア
プリケーションの利点は，インストール作業を必要

8.

提案

海 外 の 大 学 や 研 究 機 関 で は DSSAT，APSIM，としなかったり，アプリケーション更新の反映が容CropSyst のような大規模な作物モデル統合システ

易であったりすることである．

ムが構築されていたのに対し，国内では個々の作物

Web アプリケーション構築においては，MVCを対象とした小規模なモデルしか開発されていな

デザインパターンを基本としたフレームワークとかった．しかもその多くは，文献として公開されていう，アプリケーションの半完成品を利用したいるだけか，プログラムが公開されていたとしても開発が行われている．主なフレームワークにはレガシー化していて，実行するのが困難なことが多JavaServer Faces（JSF），Apache Struts，Apacheい．

Tapestry などがあり，プログラム開発を最小限にしかし，今後は国内の作物生育予測を，海外の作留めることにより，Web アプリケーション構築の物モデル統合システムに委ねればよいというわけに効率化に貢献している．

もいかない．なぜなら，国内の栽培地域や，国内で栽培されている品種用のパラメータが用意されてい3） 分散協調システム

るか，使いこなすための十分な情報が国内で蓄積さ分散協調システムは，分散（Distributed）して存れているか，修正や改良の要望への対応が迅速に行在する各要素が協調的（Cooperative）に相互作用

われるか，表示言語の選択ができるかなどの問題がしながら，全体としての振る舞いをするシステムのあるからである．

ことである．

近年の情報技術の進歩は，コンポーネントを利用

農業における意思決定では，気象データ，作物デー

したプログラム開発，フレームワークを利用したア

タ，土壌データなどの様々なデータを，栽培品種選

プリケーション構築，データベースアクセスを容易択，病害防除，灌漑管理などの様々な目的で共通しにする仲介ソフトウェア，インターネットの普及，て利用するという特徴がある．さらに，農業モデル

Web 検索技術，充実した Web コンポーネント群なと各種データは地域性が高く，全国の普及所，農協，

ど，レガシー化したプログラムの再利用を可能とす

大学，試験場などで開発され，分散した状態で運用

る多くの技術をもたらした．

されている．そのため，農業用の意思決定支援シス

そこで，モデル本体，サブモデル，気象データ

テムを，データを一元管理する集中型のシステムとを含む各種データなどをコンポーネント化し，ユー

して構築することは難しい．その反面，分散協調シザの要求に応えて柔軟に農業モデルを Web アプリ

ステムでは，各々をネットワークで結び，相互連携

ケーションとして構築できるシステムを提案する．

させる仕組みの構築の面での難しさはあるが，運用

このシステムは各コンポーネントが開発元のサーバ

中央農業総合研究センター研究報告16

第 20 号（2013. 11）で運用されて，お互いにネットワークで結びつく分ることができる仕組みとなるような設計，実装を意

散協調型の構成とする．分散協調型とすることで運識する必要がある．

用面での複雑さが増すという欠点はあるが，各コン
ポーネントが開発元で運用されることにより，ユー
ザは常に保守された状態のコンポーネントを利用す

9.

研究方針

最初に〈II〉で，本章で提案した AMADIS の概ることができる．また，農業モデルが Web アプリ

念を定義し，その構成要素についてまとめる．本論

ケーションとして実装されることにより，モデルの文では主に，農業モデルを Web アプリケーション

改良が行われるたびにプログラムをインストールしとして構築するために必要な構成要素についての設直したり，実行前に必要なデータをダウンロードし計と実装のための研究を行う．残りの構成要素は協たりしておくような煩雑な作業から解放される．ま

力研究の成果を利用する．

た，中央集中型の構成をとると，ややもするとハー

次に〈III〉で，AMADIS の構成要素として農業

ドウェア指向に陥ったり，汎用的なソフトウェア部

モデルを Web アプリケーションとして実装するた品開発に集中したりして，具体的な利用場面での成めに，農業モデル用フレームワークを構築する．フ

果が出せなかったという，Σプロジェクトの失敗とレームワークの構築に当り，海外の主要な開発グ

いう反面教師があることからも，本研究では分散協ループにより開発された作物モデル統合システムの調型を選択した．

構造や実装に関する研究を行い，農業モデルを実装

作物モデル統合システムでは，モデルを構成すするために必要なコンポーネント群を設計，実装するサブモデルレベルでのコンポーネント化が行わるための参考とする．また，フレームワークを利用

れ，モジュール構造やインタフェースが定義されてして農業モデルを実装し，開発効率などにより評価いる．それに対し，提案する農業モデル・データ

を行う．

(85)

では，モデル自身や各

次に〈IV〉で，複数の作物モデルや病害虫モデル，

種データベースまでをコンポーネント化し，さらに気象モデルなどのサブモデルと連携，相互作用を可ネットワーク上に分散した状態で運用することに能とする仕組みを実装するために，複数のメッセーなる．ここで，農業モデル・データベース分散協ジ交換手法についての研究を行う．メッセージ交換

調システムを英語名から Agricultural Models and手法を〈III〉で構築した農業モデル用フレームワー

Databases with Distributed Cooperative System かクに組み込む改良を行うことにより，新たな農業モ

ベース分散協調システム†

ら AMADIS （アマディス）と名付ける．

デル用フレームワークを構築する．同時に，農業モ

AMADIS を実現するためには，①各コンポーネ

デルを Ajax アプリケーションやマッシュアップア

ントの所在情報を管理するためのディレクトリベー

プリケーションとして実装できる機能も組み込む．

スの構築，②各コンポーネントを結びつけるための

さらに，〈II〉～〈IV〉で開発したコンポーネント

インタフェースの定義，③コンポーネント間でネッ群やフレームワークを利用して，実アプリケーショ

トワークを介して情報をやりとりするためのプロトンを構築することにより，本研究で構築したフレー

コルの選定，④レガシープログラムを再利用する

ムワークが，開発効率，拡張性，保守性の面で優れ手法の検討，⑤作物モデルやデータベースで利用さていることを確認する．

れるデータの名前の違いを解決するためのオントロ

最後に〈V〉で，総合考察として本研究で構築しジーの整備など多くの課題がある．本研究ではこれたシステム全体の評価を行い，AMADIS のためのらの課題のうち，②～④に関する研究を行う．情報

農業モデル実装基盤技術が確立したことと，提案し技術の進展は速いので，AMADIS を構築するにあた分散協調システム型アーキテクチャの正当性を検たっては，今後登場する優れた技術を随時取り入れ証する．

† Garci Rodríguez de Montalvo による Amadis de Gaula は 14 世紀頃にスペイン語で書かれた騎士道物語である．
Cervantes による小説 Don Quijote de La Mancha の主人公が多くの中世の騎士道物語を読んだ中で，最も強い影響を受けたものとして知られている．

田中慶：農業シミュレーションモデルにおける分散協調システムのためのフレームワークに関する研究

I.
1.

17

Ⅱ．農業モデル・データベース分散協調システム AMADIS

はじめにについて述べる．

農業分野における情報技術研究は，農林水産技術会議予算による一般別枠研究「増殖情報ベースによる生産支援システム開発のための基盤研究」（増殖2.

農業モデル・データベース分散協調システムの構成要素

情報ベース，1997 ～ 2000 年度）(175,167) や，農林水産

農 業 モ デ ル・ デ ー タ ベ ー ス 分 散 協 調 シ ス テ ム

省の委託による「農林水産研究情報デジタルコミュ（AMADIS）の構成要素群（図 5）のうち，特に農ニティの構築」の一環としての「データベース・モ

業モデルの実装に関連する要素技術について述べ

デル協調システムの開発」（協調システム，2001 ～る．AMADIS は農業を対象としたシステムである(179,182)で実施されてきた．

ので，各要素で利用される技術は農業分野で利用さ農業分野では，予測できない天候，地域や圃場ごれることを想定したカスタマイズがされているものとに異なる土壌や栽培方法，作物や品種の違いなど，もある．また，ユーザとして研究者，普及指導員だ

多くの条件が複雑に絡み合うため，既存の情報技術

けでなく，農家も対象としているため，ユーザに応の当てはめだけではうまく機能しなかった．2 つのじた複数のユーザインタフェースを用意して，切りプロジェクトでは，問題を解決するために必要な要替えられるようにしている．

2005 年度）

素技術を，農業，工学，情報科学の研究者が学際的に研究，開発する体制をとり，インターネットを活用して各成果を組み合わせ，実際の現場で利用でき

1） AMADIS サーバ

AMADIS サーバ (123,92) は AMADIS の中心にあっる農業 IT システムを構築することを目的としていて，各サーバ要素の連携，調整役として働く．また，た．特に，近年の農業関連の課題である「食の安全入出力インタフェースを通してユーザと情報のやりと安心」，「環境に優しい持続的農業生産」，「競争力

とりも担う．AMADIS サーバとディレクトリベーのある農業生産」，「生産から消費にいたる情報の流スサーバ〈II.2.3）〉は，木浦らによって開発が行わ通」，「高齢化・新規就農対策」に力点を置いていた．

れた．

こ れ ま で の 農 業 情 報 シ ス テ ム で は， プ ロ グ ラ

ユーザの質問に対する回答を出力する場合（図ムとデータが常に対になって開発されており，こ6） を 例 と し て，AMADIS の 働 き を 以 下 に 示 す．

れがシステムを複雑で高コストにする原因であっ① Web ブラウザの質問入力欄に記入されたユー

た．プロジェクトでは，農業モデルやデータベー

ザの質問文が AMADIS サーバに送信される．②

スをコンポーネント化して分離することにより，

AMADIS サーバは質問文を概念検索サーバに送り，

開 発（Development）， 運 用（Operation），拡張

自然文による検索を行う．③概念検索サーバによる，（Extension），保守（Maintenance）の容易化を図っ

回答を得るための農業モデルやデータベースの情報

た．さらに，それらをインターネット上で共有し，が AMADIS サーバへ返される．④ AMADIS サー

実行時に適宜組み合わせて必要な機能を実現するこ

バは農業モデルやデータベースの情報をディレクトとによりコストダウンを図った(84,85)．

リベースサーバに送り，所在情報検索を行う．⑤

図 5 はプロジェクトにおいて提案された農業モ

ディレクトリベースサーバにより農業モデルやデー

デル・データベース分散協調システム（AMADIS）

タベースのネットワーク上の所在情報が AMADIS(170)．各種サーバ，農業モデル，データベース，

サーバに返される．⑥ AMADIS サーバは農業モデ

観測機器などから構成され，ユーザが求める機能をルを実行し，データベースを検索するために，所在実現するために，ネットワーク上に存在する分散オ情報を実行サーバに送り，実行サーバはネットワー

ブジェクトが結びつけられる．AMADIS は巨大なク上に分散している農業モデルやデータベースを呼システムであるため，本研究では主に，AMADIS

び出す．⑦実行サーバは呼び出した農業モデルを統実現のために必要な要素モデル構築手法と要素間連合して実行するか，データベースの検索を行う．⑧

携手法を扱い，本章では AMADIS の各要素の詳細⑨実行サーバによる農業モデルの実行結果や，デー

である

76
中央農業総合研究センター研究報告18

第 20 号（2013. 11）

ディレクトリベース

生育予測モデル

作物特性データ

MetBroker

事例ベース

病害虫予察モデル

気象データ（アメダス）

インターネット
フィールドサーバ

気象データ（NOAA/NWS）

土壌データ

青果物市況情報

データ規格

意思決定者

営農計画

図 5 農業モデル・データベース分散協調システム（AMADIS）の概念図
ディレクトリベース，各種データベース，農業モデルなどの要素群がネットワーク上に分散して存在している．AMADIS では，それらの要素が連携することによって，様々な機能を実現する．

タベースの検索結果が AMADIS サーバに返され，トとして返される．
さらに，質問の答えに焦点を当てた要約技術 (90)ユーザに示される．

を応用し，概念検索で得られた複数の文書から，質2） 概念検索サーバ

問への回答とその背景を知ることができる要約文をユーザが膨大な情報の中から知りたいものを得る

生成する，複数文書要約手法 (160) が導入された．重ために，検索システムの役割は重要である．Yahoo!

要文抽出には，質問に対する文節の関連度と文節(303)や Google(64)などの検索サイトも AMADIS 構想

間の類似度の両方を考慮して，共通箇所の検出（冗当時から存在していたが，検索結果の候補数が多す

長性削除）と相違点の検出（内容の網羅）を同時ぎたり，AMADIS が対象とする農業関連以外の候に行なう事ができる Maximal Marginal Relevance補も含まれたりして，検索に慣れないユーザにとっ（MMR）(32) を利用している．

ては，そのままでは利用しづらかった．AMADIS
では農業事例データの検索用に開発されていた概念
検索（Concept Search）を採用した．解決したいことや，疑問に思ったことをそのまま自然文で検索できることが概念検索の特徴である

(194)

．

3） ディレクトリベースサーバ

半世紀に渡り，多くの農業モデルのアプリケー

ションが開発されており，農業モデルのデータベー
スとして，ソフトウェア・データベース所在情報 (122)

概念検索は要素情報の格納，検索に多次元ベク

や CAMASE (203) などが整備されてきた．これらにトル空間で表現するベクトル空間法（Vector-Spaceは，モデルの名称，更新日，形態（モデル，ライブ(221)

Model）の一種である潜在意味解析法（Latent(37)

ラリ，ツール，…），目的，対象，概要，変数や入Semantic Indexing; LSA） を用いている．格納部

出力データの詳細，開発環境，動作環境，開発者，

では要素情報を形態素解析して各品詞に分けた後，連絡先などの情報が記録されている．

名詞の出現頻度をもとに情報を表現するベクトルを

AMADIS に お け る モ デ ル 検 索 機 能 と し て は，作成し，ディレクトリベースに蓄積する．検索部で〈II.2.2）〉で目的に合う農業モデルを検索するためのは問い合わせ文のベクトルと要素情報のベクトルが概念検索サーバについて述べたが，ネットワーク上比較され，類似度の大きい順に検索結果候補がリスに分散して存在するそれらの農業モデルを統合して

77
田中慶：農業シミュレーションモデルにおける分散協調システムのためのフレームワークに関する研究

概念検索
サーバ

A 大学の
農業モデル

ディレクトリ
ベースサーバ③関連データ・農業モデル19④各モデルの所在情報検索

②自然文に
よる検索文

⑤各モデル
の所在情報

⑥各モデル
とデータの
呼び出し

⑧実行結果

B 研究所の
気象モデル

実行サーバ

AMADIS サーバ⑦モデルの統合と実行

入出力インタフェース
気象データ
ベース
①収量最大とな
る水稲品種と移植日は？

⑨コシヒカリを
5 月 1 日に移植して下さい．

栽培データ
ベース
ネットワーク
上に分散している要素群

ユーザ

図 6 モデル検索と実行時の AMADIS の構成
ユーザが①「収量最大となる水稲品種と移植日」について質問した場合の分散協調システムの各要素の働きを示す．②③概
念検索サーバによって，質問を解決するのに必要な農業モデルが検索される．AMADIS サーバは，④ディレクトリベースサー
バに農業モデルや気象データベースの所在情報を問い合わせる．⑤⑥⑦所在情報に基づいて，実行サーバはネットワーク上に分散している農業モデルや気象データベースを呼び出し，それらを統合して実行する．⑧⑨結果がユーザに示される．

利用するためには，ネットワーク上の所在，プログ

実行サーバでは，農業モデルを実行するために必ラムの呼び出し方，実行に必要なデータやサブモデ

要なデータやサブモデルの所在情報をディレクトリ

ル，モデル間連携のインタフェースなどの情報が必

ベースから取得して，それらを呼び出し，農業モデ要になる．これらの情報を管理，提供するのがディルと統合される．農業モデルの実行も実行サーバ内

レクトリベース（Directory Base）サーバ

(123)

である．

で行われるため，ユーザが農業モデルのプログラムを直接扱う必要はない．実行結果は AMADIS サー

4） 実行サーバ

バを通して，ユーザに示される．

より，目的に合う農業モデルを見つけることができ

5） MetBroker

概念検索やディレクトリベースを利用することにたとしても，実行に必要な動作環境を満たしている

農業モデルにおいて気象データは必須のデータでかの確認，他に必要なプログラムやデータの準備とある．それゆえに各機関で多様な気象データベース

いった煩雑な作業は，ユーザが行わなければならなが構築されている．それらのうち，いくつかはインかった．

ターネット経由でアクセス可能である．しかし，気中央農業総合研究センター研究報告20

第 20 号（2013. 11）

象データベースごとにアクセス方法や出力形式が異ようになったため，様々なプログラミング言語からなっているため，各農業モデルがデータベースを扱利用可能である．MetBroker の Web ページ (176) でうためのプログラムを持つことは，同じようなプロは，開発に必要なドキュメント (134) の参照，JAR ファ

グラムを何度も書くことになり，開発や保守の面でイル（genericbroker.jar）のダウンロードができる．

非効率であった．

MetBroker を利用した気象観測地点リストや気象

この問題の解決策として，ミドルウェアまたは仲介ソフトウェア(294,295)がある．仲介ソフトウェア

データの取得の容易性を示すために，図 8 にサンプ
ルプログラムを，図 9 にその実行結果を示す．

はデータベースとアプリケーションの間にあり，ア

本研究で開発した農業モデル用フレームワークでプリケーションに対して，データベースへの統一しは，MetBroker を気象ジェネレータの主要な気象

たアクセス方法と出力形式を提供することにより，データ提供元とし，気象観測地点選択用のユーザイ

データベースごとのアクセス方法や出力形式の違い

ンタフェース，時系列データ用ユーティリティなどを隠蔽する働きをする．

を提供している．また，MetBroker のパッケージ

MetBroker（図 7）は，ネットワーク上に分散すには，時系列データ用クラスなどの多くの有用なク

る気象データベースとアプリケーションを結ぶ仲介

ラスが含まれているので，農業モデルが扱うデータ(177,133,135)．データベースアクセを格納するために利用している．さらに，農業モデ

スと，データベース出力を MetBroker のオブジェ

ルの実装時に，MetBroker に不足している機能や，クトに格納するドライバプログラムを開発すること改善点を挙げることにより，MetBroker の改良ににより，MetBroker と気象データベースは結ばれる．

貢献した．

ソフトウェアである

MetBroker は Laurenson らによって開発が行われ，現時点では 17 の気象データベース，8.6 万ヶ所の気象観測地点（表 4）に対応している．

6） フィールドサーバ

フィールドサーバ (56,87) は，
Web サーバ，
気温，湿度，

各農業モデルのプログラムが MetBroker を通し

日射量，土壌水分などのセンサ，デジタルカメラ，て気象データベースにアクセスするように開発され無線 LAN 通信モジュール，LED 照明など様々な電れば，各気象データベース用のプログラムをいくつ

子機器を搭載し，フィールド（圃場）に長期間設置も開発することから解放される．また，気象データ

して，環境の計測，動植物のモニタリング，農園のベースのアクセス方法が変更されたり，MetBroker

監視等を行うための超分散モニタリングデバイスでから新たな気象データベースが利用できるようにある．平藤らによって開発が行われ，改良が続けらなったりしても，MetBroker 側で対応がなされる

れている．

ため，アプリケーションのプログラムを修正する必フィールドサーバ開発の当初の目的は，農業モ
デル実行に必要な気象データを圃場で観測し，農業要が生じない．
MetBroker の特徴的な機能として，スペシャル

モデルを実行可能にしたり，実行結果の精度を上げ

アクセスとデータ集計がある．スペシャルアクセス

たりすることであった．アメダス気象観測地点の設

は 2 点の緯度経度によって指定する矩形内に含まれ置間隔は約 21km であるため，圃場と観測地点が離るすべての気象観測地点のデータを取得する機能でれていると地形の影響を受け，予測精度に影響が生ある．データ集計は気象観測地点が指定された観測じる程度の気象値の差がある．アメダス観測網の粗間隔で観測を行っていなくても，より短い間隔で観さへの対策として，1km メッシュ化 (223) が行われて測を行っていれば，自動的に集計する機能である．

いるが，日別値などの短期間では誤差が大きい．まこれらの機能は，ユーザが気象データベースや気象

た，アメダス観測地点では収量の予測に欠かせない

観測地点の位置，地点 ID や観測間隔といった詳細

日射量の観測が行われていない．これらの問題はを知らなくても，アプリケーションでの気象データ

フィールドサーバを圃場に設置し，その観測データ取得に支障をきたさないようにしている．

を MetBroker 経由 (86) で利用できるようにすること

MetBroker は Java のインタフェースのみ提供していたが，SOAP(284)のインタフェースも提供する

で解決を図った．
フ ィ ー ル ド サ ー バ が 観 測 し た 気 象 デ ー タ は，

78

田中慶：農業シミュレーションモデルにおける分散協調システムのためのフレームワークに関する研究21

気象データ仲介ソフトウェア

アメダス

生育予測モデル

MetBroker

A 県の気象データ

病害虫予察モデル

メタデータ
アプリケーション層

ドライバ
プログラム

データベース層（形式の異なる気象
データベース）

仲介層（各種農業モデル）

B 国の気象データ

図 7 MetBroker の概念図
各種農業モデルは MetBroker を介して気象データを取得するため，形式の異なる気象データベースを統一された手法で操作でき，同一な形式で気象データを取得できる．また，対応する気象データベースが増加したり，気象データベースの操作方法が変更されたりしても，農業モデルプログラム側では修正の必要がない．
MetBroker と各気象データベースは，MetBroker 管理者によるドライバプログラムの開発によって結びつけられる．

79

表 4 MetBroker が扱う気象データベースと気象要素
日射
量
●■

相対
湿度
●■

葉の
濡れ

観測
地点数
154

気温

雨量

風速

●■

●■

●■

2065

●■

●■

●■

37

●

●

●

●

●

●

北海道農業研究センター

1

●

●

●

●

●

●

北海道芽室町マメダス

8

●

●

●

●

●

神奈川県農林水産情報センター

14

●■

●■

●■

●■

●■

●■

2

●

●

●

●

●

●

●

■

■
●■

●■

気象データベース
気象官署
アメダス

(119)

フィールドサーバ(87)

千葉県農林総合研究センター

137

和歌山県雨量現況
NOAA/WMO (173,298)

■

■

■

1002

■

■

■

64800

■

■

ソウル大学

11

●■

●■

フィールドサーバ（タイ）

82

●

●

フロリダ農業気象ネットワーク

29

●

●

ジョージア農業気象ネットワーク

39

■

■

オレゴン IPPC (Integrated Plant Protection Center)

152

■

■

南アフリカ砂糖会

12■■

WRDC (World Radiation Data Center)
Global Dataset of DR and TR

●
●
●
●■

■
●■

日照
時間
●■
●■

●

19431
(301)

地温

●■

●■

●

●

●

●

●

■

■

■

●：時別値 ■：日別値 を観測（一部の観測地点では観測していない気象要素がある）

●

●

22

中央農業総合研究センター研究報告第 20 号（2013. 11）80

import java.text.*;
import java.util.*;import net.agmodel.physical.*;import net.agmodel.weatherData.*;public class MetBrokerDemo{public static void main(String[] args){
MetBrokerHTTP broker = null;
String sessionID = null;
try{
String host = "www.agmodel.org";
broker = new MetBrokerHTTP(host, 80);
Locale locale = Locale.getDefault();
String language = locale.getLanguage();
String country = locale.getCountry();
String encoding = System.getProperty("file.encoding");sessionID = broker.getConnection("test", language, country, encoding);
System.out.println("MetBroker に接続しました．(sessionID = " + sessionID + ")¥n");① MetBrokerと接続

MetSourceDetail[] sources = broker.listMetSourceDetails(sessionID);
System.out.println("データベースリストを表示します．");for(int i=0; i<sources.length; i++)
System.out.println(sources[i]);② MetBroker
が扱う気象データベース
リストを表示String sourceID = "amedas";String regionID = "08";
WeatherStation[] stations = broker.listStations(sessionID, sourceID, regionID);
System.out.println("¥n アメダスの気象観測地点リストを表示します．");for(int i=0; i<stations.length; i++)
System.out.println(stations[i]);③アメダス（茨城県）の
気象観測地点リストを表示Calendar start = new GregorianCalendar(2010, Calendar.APRIL, 1);
Calendar end = (Calendar)start.clone();end.add(Calendar.MONTH, 1);
Interval interval = new Interval(start.getTime(), end.getTime());
MetDuration resolution = MetDuration.DAILY;
Set<MetElement> elements = new HashSet<MetElement>();elements.add(MetElement.AIRTEMPERATURE);
elements.add(MetElement.RAIN);
String stationID = "40336";//つくば
boolean summarise = true;//集計機能を利用
boolean interpolation = false;//補完機能を利用せず
StationMetRequest stmr = new StationMetRequest(interval, elements, resolution,
sourceID, stationID, summarise, interpolation);
System.out.println("¥n リクエストの内容" + stmr + "¥n");
StationDataSet data = broker.supplyMetData(sessionID, stmr);
DateFormat df = DateFormat.getDateInstance();
String str = data.dumpDuration(df, ",¥t", "¥n", "日時","欠測");
System.out.println(str);
Location2D nw = new Location2D(36.8683, 139.7167);
Location2D se = new Location2D(35.89, 140.77);
GeographicalArea area = new GeographicalBox(nw, se);SpatialMetRequest spmr = new SpatialMetRequest(interval, elements, resolution,area, summarise, interpolation);
System.out.println("リクエストの内容” + spmr + "¥n");
SpatialMetSet sms = broker.supplyMetData(sessionID, spmr);

図 8―1 MetBroker を利用するサンプルプログラム

2010/4/1 ～1 ヶ月間
日別
気温・降水量④地点リクエストの生成
MetBroker から
気象データを取得⑤気象データを表示（簡易な方法）⑥エリア・リク
エスト（茨城県を含む矩形）の生成
MetBroker から気象データを取得

田中慶：農業シミュレーションモデルにおける分散協調システムのためのフレームワークに関する研究23

81

JigsawQuantity jqTemp, jqRain;
NumberFormat nf = new DecimalFormat("0.00");
String devoid = "x";//欠測値
String delimiter = "¥t¥t";//区切り文字for(int i=0; i<sms.getNumberOfStations(); i++){data = sms.getStationDataSet(i);WeatherStation station = data.getWeatherStation();AirTemperature temp = (AirTemperature)data.getSequence(MetElement.AIRTEMPERATURE);
Rain rain = (Rain)data.getSequence(MetElement.RAIN);
System.out.println("¥n"+ station.getMetSourceName() +" "+ station.getPlaceName());
System.out.println("¥t¥t 最低気温(℃)¥t 最高気温(℃)¥t 平均気温(℃)¥t 降水量(mm)");if(temp != null || rain != null){Interval inte = new Interval(start.getTime(), Duration.ONE_DAY);
while(interval.encompasses(inte)){String date = df.format(inte.getEnd());
System.out.print(date +"¥t");if(temp != null){jqTemp = temp.getMinimum(inte);
System.out.print((jqTemp.getCoverage() > JigsawQuantity.DEVOID ?
nf.format(jqTemp.getAmount()) : devoid) + delimiter);jqTemp = temp.getMaximum(inte);
System.out.print((jqTemp.getCoverage() > JigsawQuantity.DEVOID ?
nf.format(jqTemp.getAmount()) : devoid) + delimiter);jqTemp = temp.getAverage(inte);
System.out.print((jqTemp.getCoverage() > JigsawQuantity.DEVOID ?
nf.format(jqTemp.getAmount()) : devoid) + delimiter);}if(rain != null){jqRain = rain.getTotal(inte);
System.out.print((jqRain.getCoverage() > JigsawQuantity.DEVOID ?
nf.format(jqRain.getAmount()) : devoid));}
System.out.println("");
inte = new Interval(inte.getEnd(), Duration.ONE_DAY);
}
}
}

}

}

}
catch(Exception e){e.printStackTrace();}finally{try{
if(broker != null){broker.disconnect(sessionID);
System.out.println("MetBroker との接続を切断しました．
(sessionID = " + sessionID + ")¥n");}}catch(Exception e){}
}

⑦気象
データ
を表示

MetBroker との接続終了

図 8―2 MetBroker を利用するサンプルプログラム
MetBroker に接続後，データベースリストと気象観測地点リストを出力し，リクエストによって MetBroker から気象データを取得して出力するサンプルプログラム．
コンパイル方法 javac –classpath genericbroker.jar MetBrokerDemo.java
実行方法
java –classpath .;genericbroker.jar MetBrokerDemo

24

中央農業総合研究センター研究報告第 20 号（2013. 11）

82

MetBroker に接続しました．
(sessionID = MetBroker session31107) ①
データベースリストを表示します．
日本国内気象官署
アメダス
フィールドサーバ（時別）
NOAA/WMO
・・・②

アメダスの気象観測地点リストを表示します．
・・・
40242 筑波山 lat:36.2233 lon:140.1017 alt:868.0
40243 筑波山 lat:36.2233 lon:140.1017 alt:868.0
・・・
40341 土浦 lat:36.095 lon:140.2067 alt:26.0
40336 つくば lat:36.0567 lon:140.125 alt:25.0
・・・
リクエストの内容
net.agmodel.weatherData.StationMetRequest
2010/04/01 0:00:00 - 2010/05/01 0:00:00
elements 気温 雨量
resolution
日別値
Summarise true
Interpolate false
sourceamedasstation
40336

③

④

dumpDuration start 2010/04/01 end 2010/05/01
日時,,,
2010/04/02,
2010/04/03,
・・・

気温,
最小,
(℃),
1.9,
8.3,

,
最大,
(℃),
20.7,
19.9,

,
平均,
(℃),
12.458,13.512,

雨量
合計
(mm)
0
3.5

リクエストの内容
net.agmodel.weatherData.SpatialMetRequest
2010/04/01 0:00:00 - 2010/05/01 0:00:00
elements 気温 雨量
resolution
日別値
Summarise true
Interpolate
false
area NW: lat:36.87 lon:139.72 SE: lat:35.89 lon:140.77

⑤

⑥

・・・
アメダス 土浦
最低気温(℃) 最高気温(℃) 平均気温(℃) 降水量(mm)2010/04/02 3.60
20.40
12.94
0.00
2010/04/03 8.50
19.80
13.52
2.50
アメダス つくば
最低気温(℃) 最高気温(℃) 平均気温(℃) 降水量(mm)2010/04/02 1.90
20.70
12.46
0.00
2010/04/03 8.30
19.90
13.51
3.50
・・・

図 9 図 8 のサンプルプログラムの実行結果
図中の番号は，図 8 中の番号に対応している．

⑦

83
田中慶：農業シミュレーションモデルにおける分散協調システムのためのフレームワークに関する研究

25<?xml version="1.0" encoding="Shift_JIS" ?><?xml-stylesheet type="text/xsl" href="../fs01_data.xsl" ?><One_Day_Data><Object><Param_Xml>./../../../../mnt/data4/WeNARC/fs01/
フィールド
fs01_profile.unix.xml</Param_Xml><Name>fs01</Name>
サーバ情報<IP>192.168.39.100</IP><Standard_Time>JST</Standard_Time><Today>2010/04/01</Today></Object><Data><Date>2010/04/01</Date><Time>00:01:25</Time><RA0>226</RA0><RA1>45</RA1><RA2>1023</RA2><RA3>0</RA3><RA5>26</RA5><RB4>Low</RB4><RB5>High</RB5>

センサの
出力値

<Air-Temp. unit="C">12.3</Air-Temp.><Humid. unit="%RH">100</Humid.><PPFD unit="umol/m^2/s">0</PPFD><I-Temp. unit="C">26</I-Temp.><LED>Low</LED><cam>High</cam>

換算値</Data><Data>...
</Data>...
</One_Day_Data>

次の時刻の
観測データ

図 10 フィールドサーバが観測して記録した気象データ
フィールドサーバは観測した気象データを XML 形式でサーバに蓄積する．
One_Day_Data 要素は 1 つの Object 要素と複数の Data 要素を持ち，1 日分の観測データが記録される．Object 要素にはフィールドサーバの情報が記録され，Data 要素には 1 回分の観測データが，生データと，気象値に変換したデータとして記録される．

XML 形式（図 10）
でサーバに蓄積されている．フィー
ルドサーバのデータは MetBroker 経由で取得する
他，直接 XML 形式のデータを取得して表示（図(252,254)

11）

したり，アプリケーションで利用したりすることも可能である．

7） 農業モデル

農業モデルには，作物の生育速度，施肥の効果，

収量予測を行うための作物モデルや，病害虫の発生を予測して防除計画に反映させるための病害虫発生予察モデルがある．また，気象データの実測値を気本研究で開発した農業モデル用フレームワー

象データベースから取得できない場合に，それを他

クには XML 処理のためのユーティリティプログのデータから推定する気象モデルなどのサブモデル

ラムが含まれている．XML データのパーサにはがある．

Document Object Model（DOM） や Simple API

モデルの複雑さはパラメータや入力データの数にfor XML（SAX）などの API がある．DOM は木構比例する．複雑なモデルは作物の成長を細かく再現

造を利用して直感的に操作でき，SAX はメモリ消できるが，パラメータを推定するときに利用した実費量が少なく，処理速度が速いという特徴がある．

験データの観測誤差を含み，新たなデータで予測をフィールドサーバの数百行程度の情報ファイルの操行うときに，かえって予測誤差が大きくなる場合が作には DOM でも良いが，1 日当り 1 万行を超えるある (94)．また，パラメータ数が多いと，それを推フィールドサーバの 1 年分のデータ処理では 10 分定するために必要な観測データ数や計算量が多くな程度を要するため，30 秒程度で行える SAX が適しる．さらに，必要な入力データの種類が多くなると，

ている

(254)

．

入力データを用意できないためにモデルの利用が制

84
中央農業総合研究センター研究報告26

第 20 号（2013. 11）

図 11―1 フィールドサーバ・データビューワ (254)
http://pc105.narc.affrc.go.jp/fieldserver/（上）フィールドサーバ選択用画面（下）フィールドサーバの情報と，データ取得設定画面

限されることがある．

るために，複数のモデルが相互作用しながら実行さ農業モデルにはソフトウェアの規模に応じて，作れることもある．ただし，モデル間で相互作用させ物モデル統合モデル〈I.3.1）〉と個々の作物モデル

るためには，相互にデータのやりとりを行うためのがある．AMADIS のコンポーネントとして扱うのインタフェースが備えられていなければならない．

に適したプログラムサイズは個々の作物モデルであ作物モデル統合システムは，内部に複数のモデルをる．作物モデル統合モデルにはソースコードやイン持ち，データ交換のためのインタフェースも定義さ

タフェースのドキュメントが公開されているものもれている．個々の農業モデルも AMADIS 用にコンあるので，それらのサブモデルレベルで AMADIS

ポーネント化されれば，相互作用実行に必要な機能のコンポーネントとして利用できる可能性がある．

を満たすことができる．

作物生育予測モデルと病害虫発生予察モデルは，単独で実行されることもあるが，混作，連作，輪作や病害虫による作物生育への影響をシミュレートす8） パラメータ修正

作物モデルは品種や地域ごとのパラメータを持つ

85
田中慶：農業シミュレーションモデルにおける分散協調システムのためのフレームワークに関する研究

27

図 11―2 フィールドサーバ・データビューワ（上）フィールドサーバによる観測データのグラフ表示画面（下）フィールドサーバによる観測データの表による表示画面

ことにより，ユーザの栽培条件に合うように計算式に無い場合，気象データは MetBroker から，水稲をカスタマイズして精度を上げている．作物モデルの栽培情報はイネデータベース (180,308) から近くの試を開発するために利用した品種や地域のパラメータ

験場のデータを取得できる．イネデータベースはは用意されているが，それ以外の品種，地域におい

MetBroker から気象データを取得し，栽培データて作物モデルによる予測を行う場合，あらかじめパと結合して提供する機能も備えている．

ラメータ修正（Parameter Correction）を行わないと，期待通りの精度の結果を得られない．
パラメータを修正する方法にはシンプレックス
法（Simplex Method）(77) や，遺伝的アルゴリズム(91,121)（Genetic Algorithm; GA）などがある．また，

3.

考察

本章では，
〈I.8〉で提案した農業モデル・データベー

ス分散協調システム AMADIS の概要と，構成要素の詳細を示した．

学習用データとテスト用データとして，気象データ，

増殖情報プロジェクトが始まる前から，多くの農移植日，開花日，収穫日や収量などの実測データを業モデルのプログラムやデータベースが各地の大学数年分用意する必要がある．それらのデータが手元や試験場で開発されていた．これらを有効活用し，

中央農業総合研究センター研究報告28

第 20 号（2013. 11）

さらに各機関で開発された複数の農業モデルやデーなっている．実例として，Google による様々な検タベースを組み合わせ，より詳細な意思決定支援を索が多くのサーバを利用して行われているにも関わ行えるシステムを構築しようとした場合，すべてをらず，ミリ秒単位で結果が返ってくることなどが挙集めてパッケージ化する集中型のシステムと，各機げられる．ただし，個々の農業モデルやデータベー

関を結ぶネットワークを利用して結びつける分散型

スへの改善や修正の要望を直接開発者に届けることのシステムがある．

はできず，AMADIS 管理者経由で挙げるために，集中型のシステムを構築する場合，中核となる機対応に時間を要する場合がある．

関のサーバにプログラムやデータベースを収集し，

AMADIS の個々の要素については，気象データ

管理，運用，保守を行うことになる．それを実現す

取得の MetBroker の担う役割は大きい．データベーるためには，各農業モデルやデータベースの研究者

スアクセスのためのプログラム開発は，熟練者がまや開発者が開発グループのような体制をとり，永続とめて行えば効率良く行えるが，個々の農業モデル

的に維持するための中核機関のための資金や人材をのプログラム開発者には敷居が高かった．そのた確保する必要がある．しかし，期限のあるプロジェ

めに農業モデルが利用する気象データを，ローカル

クト研究では，システム構築まではできたとしても，なテキストデータから取得するように開発されてし開発者の手を離れてサーバに集められたプログラム

まうと，後のプログラム公開段階でユーザに不便をやデータベースを維持していくのは難しい．

強いることになり，普及の妨げになる．MetBroker

分散型システムの場合，その特徴は図 5 に示さ経由で気象データを取得するように農業モデルを実れるようにネットワークを介して様々な構成要素

装しさえすれば，自動的に多くの気象データベースが結びついていることである．分散協調システムを利用でき，新しい気象データベースへの対応のた

AMADIS の構成要素となる各要素がネットワーク

めの作業は MetBroker の管理者に委ねることがで上に分散して協調するためには，各要素間でメッ

きる．

セージ交換を行うために，プロトコルや書式を統一

フィールドサーバは，ユーザの圃場近くに気象しておく必要がある．増殖情報プロジェクト研究

データ観測地点がない場合に，ユーザ自身によっの初期にはメッセージ交換に HORB〈IV.2.2）〉やて気象データを低コストで観測することを可能にしJava RMI〈IV.2.3）〉が利用され，開発や運用面でた．観測データはネットワーク経由で自動的にサー問題が生じることがあったが，その後，通信にはバに蓄積され，
MetBroker 経由で取得できる．また，HTTP を利用し，書式には処理が容易な XML 形式

取り付けるセンサ，デジタルカメラ，通信方法や電を利用することが一般的になったため，プロトコル

源などを目的，設置場所やコストに応じて選択できや書式の統一が問題になることは少ない．サーバがる柔軟性がある．

分散していることにより，かえって各要素による機AMADIS の構成要素となる農業モデルは，ネッ

能がサーバ単位で完結し，カプセル化の要件を自然

トワークを通して AMADIS サーバから呼び出されに満たすことになっている．ただし，それぞれのサーたり，他の農業モデルと結びつけられたりするため，

バの運用は各要素の担当者に任されるため，サービ

Web アプリケーションである必要がある．農業モスが休止されたり，廃止されたりする恐れがある．

デルが必要とする入力データやパラメータ，計算のAMADIS の構成は図 6 に示されるように複雑に内容は様々であるが，動的モデルであれば時間ルー

見えるが，ユーザからは AMADIS サーバが見える

プにより繰り返し計算を行う構造は共通である．こ

のみで，AMADIS サーバの先で複数のサーバが稼の共通部分を農業モデル用フレームワークとして働していることを意識させない．ネットワークを介構築し，農業モデルのプログラム開発，保守を効率して多くのサーバを利用した場合の応答時間は，10的に行えるようにするのが本研究の目的の 1 つであ数年前ならともかく現在では考慮するほどではなくる．その具体的な内容は〈III〉で述べていく．

田中慶：農業シミュレーションモデルにおける分散協調システムのためのフレームワークに関する研究

II.
1.

29

Ⅲ．農業モデル用フレームワーク JAMF

はじめに

ケーションも数年でレガシー化することがある．そ作物モデル統合システムで利用されている，デーのため，農業モデルの中心となる計算部分はフレー

タ構造，気象データ取得方法，モジュール構造によムワークと分離可能な構成とし，フレームワーク構る開発について検討し，農業モデルを AMADIS の築に利用した技術が古くなったときには，新しいフコンポーネントとして実装するための手法を提案す

レームワークに乗り換えることで，最新の技術を利る．

用できるようにする．

農業モデル用プログラムが開発されるようになっ本章では，最初に農業モデル用フレームワークをて 40 年の間にソフトウェアの開発環境は大きく変構築するための開発言語について検討する．続いて化した．CPU の性能は 100 万倍に，プログラミン

3 つの作物モデル開発グループによるモジュール構

グ言語は手続き型言語の FORTRAN から C を経て造による作物モデル実装手法を比較しながら，農業

C++ や Java などのオブジェクト指向言語へ，アプ

モデル用フレームワークが備えるべき機能を抽出す

リケーション構築はメインフレーム用 OS ベースかる．次に農業モデル用フレームワークの全体像と，ら，MS-DOS ベース，Windows ベースを経て Web

各機能の詳細を示す．最後に農業モデル用フレーム

ベースへと変遷し，情報の表現方法は文字から画ワークを利用したサンプルアプリケーションの構築

像主体へ，操作方法はキーボードによるコマンドを行い，それを利用したことによる効果を示す．

入力を行う CUI 操作からマウスによる GUI 上での操作へ，実行形態はユーザサイドでのスタンドアロ
ン実行からネットワークを利用したサーバサイド

2.

開発言語

新規にアプリケーションを構築するにあたり，開へ，データ表現方法は固定長フィールドや Comma-

発言語の選択は重要である．過去のプログラム資産

Separated Values（CSV）などのテキスト形式からを全く利用しないのであれば，アプリケーション構(282)

Extensible Markup Language（XML）

形式へと

変化した．

築に適した，今後もしばらく主流であり続けるプロ
グラミング言語を選択すればよい．過去のプログ

近年，Web アプリケーションが主流となると，ラムを利用する場合でも，大規模な変更や移植作業

様々な Web アプリケーション構築用のフレームを伴わなければ，ラッパープログラム（Wrapper

ワークが登場した．フレームワーク

(266)

とは，アプ

リケーションを構築するときに，それに当てはめていけば出来上がっていくような枠組みのことである．フレームワークを利用したアプリケーション構

Program）などで対処 (307) でき，開発言語選択の自由度は高い．
開発言語の選択における基準として，以下のことを考慮した．

築は，プログラミング経験の浅いモデル開発者にとっては，サンプルプログラムやドキュメントを参• 開発，拡張，保守のコストが高くない（可読性が考にアプリケーション開発が行えることが期待でき高く，修正，変更が容易）．

る．また，プログラミング開発経験の長い開発者に• プラットフォーム非依存である．

とっても，開発作業を削減してくれる有用なもので• Web アプリケーションを構築できる（ネットワー

ある．

クの利用が容易）．

農業モデルの実行では，期間や地点の設定，気象• 開発環境の構築が容易である（フリーの開発ツー

データの取得，モデルの計算，結果の表示といった，

ル）．

共通した処理が多い．そのため，コンポーネント用• 主流である（更新頻度が高い．ユーザが多く，参モデルをいくつも実装するためには，農業モデル用考情報を得やすい）．

フレームワークを構築し，それを利用して農業モデルを実装するのが効果的である．また，情報技術の以上の条件を満たす開発言語選択のために，主要進歩は非常に速く，一度構築した農業モデルアプリ

なプログラミング言語と，既存の作物モデルの開発

中央農業総合研究センター研究報告30

第 20 号（2013. 11）

言語について述べた後，AMADIS を実装するため産を継承するために，ユーザインタフェース開発なの開発言語を決定する．

どへの利用にとどめられ，モデルの主要部分の開発

1940 年代に登場した計算機のプログラミングででは FORTRAN が使い続けられた．

は機械語やアセンブリ言語が使われていた．1950

1990 年代にオブジェクト指向によるプログラミ

年代後半には FORTRAN，LISP，COBOL といっ

ングの有効性が認められると，C++ や Java などた高級言語が登場し，その後のほとんどのプログラのオブジェクト指向言語での作物モデル実装や，

ミング言語は，これらから派生したものである（図FORTRAN プログラムからの移植が行われるよう

12）
．

になった．

FORTRAN，ALGOL，PL/I が登場すると，自然2000 年代はネットワークを利用するアプリケー

界における複雑な非線形システム解析への利用が提ション構築が普及し，スタンドアロンのアプリケー

案され，1960 年代にシミュレーション言語が登場ションから，Web ブラウザをユーザインタフェー

すると，動的な作物モデル実装に利用された．

スとして利用する Web アプリケーションが主流と1980 年代には作物モデル実装用の FORTRAN のなった．Web アプリケーションでは，プレゼンテー

プログラミング環境やユーティリティが，作物モション層（ユーザインタフェース），ビジネスロジッ

デル開発グループにより開発され，FORTRAN でク層（アプリケーションサーバ），データ層（デー作物モデルが実装されるようになった．その後，
86
BASIC や C のような主要なプログラミング言語がタベース）の 3 つの処理区分に分けて開発する 3登場したが，FORTRAN で書かれたプログラム資プレゼンテーション層の開発には，Rich Internet

1960

1955

1965

1970

FORTRAN
1954

層モデル（Three-Tier Model）が利用されている．

1975

1980

Fortran 90
1991

FORTRAN 77
1978
COBOL-68
1968

COBOL
1959

1990

1985

1995
Fortran 95
1995

COBOL-85
1985

COBOL-74
1974

PL/I
1964
BASIC
1964

Visual Basic
1991

ALGOL
1958
Pascal1970

Object Pascal
1985

Delphi
1995

C
1971
Simula
1964

C++
1983
Smalltalk
1971

Lisp
1958

Oak
1991

Java
1995

Common Lisp
1984
JavaScript
1995

図 12 プログラミング言語の系統図

田中慶：農業シミュレーションモデルにおける分散協調システムのためのフレームワークに関する研究

Application（RIA）と呼ばれる，動的な Web ペー
ジ を 記 述 で き る，JavaScript，Dynamic HTML312） FSE / FST

Wageningen グループでは作物モデルプログラ（DHTML; JavaScript + CSS），
Ajax（Asynchronous

ム開発のための環境構築が進められた．1990 年にJavaScript + XML），JavaServer Pages（JSP），

は，ファイルや画面の入出力，文字列操作，日付(2)

ActionScript（Flash） などが利用されている．ビ

時刻処理などのための 100 以上のサブルーチンを集

ジネスロジック層では Java や C++，データ層ではめた，FORTRAN ユーティリティライブラリであStructured Query Language（SQL）が利用されてる TTUTIL (280) が開発された．TTUTIL はプラットいる．

フォーム非依存であるので，異なるハードウェア間や，OS 間での可搬性を保証していた．

1） シミュレーション言語
シミュレーション言語(30)

1991 年 に は， 農 業 プ ロ セ ス の シ ミ ュ レ ー シ ョはシミュレーション専

ンのためのプログラミング環境を FORTRAN の用のプログラミング言語のことで，シミュレーショ

モ ジ ュ ー ル 構 造 と し て ま と め た，FORTRAN

ンで使用する各種コンポーネントが提供されている

Simulation Environment（FSE）が開発された (279)．

ため，プログラミングよりも生物プロセスの解析にFSE ではモデル特有の科学的プロセスと，そうで集中できる．数学や計算機の専門的知識のない者にない入出力などの部分が分離され，モデル開発者がとって，シミュレーション言語はシンプルで学習し前者の開発に集中できるようになっている．後者でやすく，動的モデル実装が容易であるという利点がは TTUTIL のサブルーチンを多用しており，前者

あった

(28)

．

とは FSE ドライバによって結ばれる．ORYZA シ

シミュレーション言語には，製造ライン，物流，

リーズは FSE で開発されている．

通信ネットワークなどを対象とした待ち行列型モデ

1990 年代には FORTRAN コンパイラは利用しやルの離散型（Discrete-Event）シミュレーション言すく，求めやすくなっていたため，多くの科学コミュ

語と，化学プロセス，生態系の予測，流体解析，熱ニティが CSMP から FORTRAN へと移行してい伝導解析などを対象とした連立微分方程式モデルのた．CSMP の実行環境自体も Wageningen 大学の連続型（Continuous）シミュレーション言語がある．

計算機センターのいくつかの計算機でのみ維持され作物モデルを実装するには連続型シミュレーショ

ている状態であった．そのため，1994 年に CSMP

ン言語が適している．システムダイナミクス〈III.3〉のプログラムをモジュール構造の FSE-FORTRANで作成されたモデルの論理演算をするために開発さに変換できる (139) FORTRAN Simulation Translator

れ た Dynamic Model（DYNAMO）(212) は， 水 稲 生（FST）が開発された (278,208)．FST はシミュレーショ

育モデル (107) で利用されている．また，Continuous

ン 言 語 で も あ る．FST は 変 換 対 象 の ソ ー ス コ ー(102)

System Modeling Program III（CSMP III）
Wit らによる SUCROS などの初期のモデル
マワリ生育モデル

(93)

は de

(114)

やヒ

で利用されている．

CSMP は連続プロセスのシミュレーションを容易

ドを FORTRAN 77 によるソースコード MODEL.
FOR に変換し，ライブラリをリンクする（図 14）．
気象データはデータベースから取得され，プログラ
ム内にハードコーディングされる．

にする問題向き言語である．構文は FORTRAN に

FST，FSE は 2001 年に Wageningen 大学による似ており，FORTRAN でサブルーチンを書くこと

プロジェクトで Windows 版が開発され，現在でももできる．CSMP ではプログラム文が自動的に計算利用されている．FSTWin，FSEWin は Web ペー

順序通りにソートされるので，実行順に記述する必

ジからダウンロードできる (288) が，実行するには別要がない．そのため，プロセスやシステムについて

途 Visual Fortran コンパイラを用意する必要があ

最も理解しやすく，読みやすい順序での記述が可能

る．

である

(17,138)．図 13 は CSMP による単純な乾物重生

産シミュレーションプログラムの例である．

3） FORTRANFORTRAN (106,271) は 1954 年に開発された最初の高級言語であり，主に数値計算用に利用されてきた．

87
中央農業総合研究センター研究報告32

第 20 号（2013. 11）

TITLE DRY MATTER PRODUCTION* total dry matter weight
TWT = WSH + WRT* sum of dry matter weight of shoots and roots
WSH = INTGRL(WSHI, GSH)
WRT = INTGRL(WRTI, GRT)

GPHST

* initial conditions
INCON WSHI = 50., WRTI = 50.
* growth rates
GSH = 0.7 * GTW
GRT = 0.3 * GTWMAINTPool of
Carbohydrates* net rate of total dry matter increase
GTW = (GPHOT - MAINT) * CVF

0.7

GTW

* maintenance respiration
MAINT = (GSH + WRT) * 0.015* gross photosynthetic rate
GPHOT = GPHST * (1. –EXP(-.7 * LAI))* leaf area index
LAI = AMIN1(WSH / 500, 5.)

SYNT

0.3

WSH

WRT

* parameters
PARAM CVF = .7, GPHST = 400.
* timer variables* FINTIM: time of finishing the simulation* DELT: size of time step for integration* PRDEL: printed output interval* OUTDEL: plotted output interval
TIMER FINTIM = 100., DELT = 1., PRDEL = 5., OUTDEL = 5.
* perform simulation using rectanglar method after Euler
METHOD RECT
* printed variables
PRINT TWT, WSH, WRT, GTW* plotted varible
OUTPUT TWT* end of simulation model
END* end of simulation program
STOP* finish computer job
ENDJOB

図 13 CSMP による乾物重生産のシミュレーションプログラム (17)
CSMP の構文は FORTRAN に似ており，FORTRAN でサブルーチンを書くこともできる．CSMP ではプログラム文が自動的に計算順序通りにソートされるので，実行順に記述する必要がない．

その後の何度かの仕様改訂を経て（図 12，Fortran

FORTRAN 77 を，IBSNAT グ ル ー プ の DSSAT

90 から Fortran と表記）
，現在でも利用されている．

で は Fortran 90 を， 国 内 の SIMRIW で は MS-

地球シミュレータでは並列化 Fortran の一種である

FORTRAN を 利 用 し て 実 装 さ れ た．Wageningen

High Performance Fortran（HPF）が利用されていグループでは，FORTRAN 77 用のユーティリティ

る．

TTUTIL を開発し，FSE を通して Compaq Visual

生 育 モ デ ル 実 装 に お い て も FORTRAN は 広
く 利 用 さ れ，APSRU グ ル ー プ の APSIM で は

Fortran を利用している．
その後，多くのプログラミング言語が登場したが，

田中慶：農業シミュレーションモデルにおける分散協調システムのためのフレームワークに関する研究

33

FORTRAN の既存コードを書き換えるコスト以上

い，オブジェクトとそれに対して送られるメッセーのメリットがなかったため，FORTRAN が使い続ジだけで世界を表現するオブジェクト指向プログラ

けられている(150)．

ミングであった．オブジェクト指向プログラミン
グでは，データ抽象化（Data Abstraction），継承4） オブジェクト指向プログラミング言語（Inheritance），
動的結合（Dynamic Binding）といっ

オ ブ ジ ェ ク ト 指 向 プ ロ グ ラ ミ ン グ（Object-

た特徴を持つ．

Oriented Programming; OOP）が生まれた背景には，

データ抽象化とは，公開されたインタフェース

計算機の性能向上に伴い，より巨大で複雑になったを通してのみ，オブジェクト内部のデータや属性に

アプリケーションの開発や保守コストの上昇が無視

アクセスしたり，変更したりできるようにすること(22,218,109)．このような状況である．このようにデータとそれに対する操作をひで最初に提唱されたのが C や Pascal などの構造化とまとめにすることをカプセル化（Encapsulation）

プログラミング言語により，関数を部品化することと呼ぶ．データ抽象化の利点は，カプセル内の変更であった．部品の独立性を高めることにより，部品が外部に及ぶことを防ぐ変更に対する耐久性と，イを再利用して新規開発するコード量を減らし，部品

ンタフェース以外の具体的な内部構造を隠蔽できるの修正が他の部品へ影響することを防ぐことができ概念の抽象化にある．

できなくなったことがある

る．しかし，部品を修正せずにそのまま利用できる継承とは，あるオブジェクトの機能を受け継いで，ことは少なく，データの表現には基本データ型を利

新しいオブジェクトを作成することである．継承に用するままで，データの抽象化が行われなかった．
88次の段階で提唱されたのが，状態としてのデーより既存のオブジェクトに機能を加えたり，修正しタと機能としてのメソッドをオブジェクトとして扱

動的結合とは，プログラムで実行するメソッドのFST ソースコード+ FORTRAN 77 によるサブルーチン

たりでき，プログラムの再利用性を向上させられる．

メインプログラム（FST ソースコード）

GLA

サブルーチンSUBEAIASSIMTOTASS

ASTRO
変換

生成された
FORTRAN 77
のファイル
気象データ

MODEL.FOR
サブルーチンライブラリ

サブルーチンライブラリ
TTUTIL.LIB
WEATHER.LIB
DRIVER.LIB

MODEL.DATTIMER.DATRERUNS.DAT

図 14 FST による FORTRAN への変換の仕組み
FST ソースコードは FORTRAN 77 によるソースコード MODEL.FOR に変換され，ライブラリがリンクされる．気象データ
はデータベースから取得され，プログラム内にハードコーディングされる (278)．
MODEL.DAT にはモデルの標準パラメータが格納されている．TIMER.DAT には時間ループや積算に関する情報が格納されている．RERUNS.DAT にはモデルのパラメータを変更して繰り返し実行する場合のパラメータセットが格納されている (139)．

中央農業総合研究センター研究報告34

第 20 号（2013. 11）

属するクラスを実行時に動的に決めることであり，引き継いでいる．定義したクラス（Class）をもとプログラムに柔軟性を持たせられる．

にインスタンス（Instance）が生成される．プログ

これらの技法により開発や保守の複雑さを低減

ラムは複数のクラスから構成され，クラスを実体化し，開発効率と保守性を高める．どんなに成功した

した複数のオブジェクト（Object）がメッセージを

ソフトウェアもいずれは保守期間に移行し，ソフト交換しながら実行される．

ウェア保守コストがソフトウェア開発コストを上回(21)

Java は静的型付けを採用しており，コンパイル．

時の型検査によりプログラムの間違いを発見でき最初のオブジェクト指向プログラミング言語

る．また，C や C++ のプログラムでは，ポインタ（OOPL）は 1960 年代に登場した Simple Universal

やメモリ管理に起因するプログラムの不具合を起こ

Language（Simula） で あ る（ 図 12）．Simula は もしやすかったが，Java ではポインタを廃止し，ガと も と Simulation Language の 略 で， シ ミ ュ レ ー

ベージコレクションによりメモリ管理を行うように

ション言語でもあった．Simula にはシミュレーショ

なったため，プログラムの頑健性が増し，安全性，ンを行うためのオブジェクト，クラス，継承，メ

開発効率，保守性が向上した．

ることもあるため，これらの特徴は重要である

ソッドなどのオブジェクト指向の概念があった．そJava プログラムはコンパイルされると，機械語のため，それ以前のプログラミング言語では記述すではなくバイトコード（Byte Code）と呼ばれる中ることが難しかった，シミュレーション対象（オブ間言語に変換される．バイトコードは堅牢な実行環

ジェクト）の状態と振る舞いを表現し，かつ，並列境である Java 仮想マシン（Java Virtual Machine;に相互作用させるようなプログラムの開発が可能でJava VM）のもとで動作する．各プラットフォー

あった．Simula 自身は広く普及することはなかっ

ム用の Java VM で同じバイトコードを実行できる

たが，オブジェクト指向の概念は C++ など多くのので，プラットフォーム非依存という特徴を持ち，言語へと引き継がれていった．ちなみに，「オブジェ“Write Once, Run Anywhere” は初期の Java の標語

クト指向」という言葉は，1970 年代に Alan Kay がでもあった．初期の頃には実行時にバイトコードを

Smalltalk の概念として使い始めたのが最初である．

インタプリタで機械語に変換していたため，実行速

作物モデルでのオブジェクト指向プログラミン

度が遅いという問題があったが，ジャストインタイ

グ言語を利用した初期の例として，個体や各器官

ム（Just In Time; JIT）コンパイル方式で改善されをオブジェクトの階層構造で表現し，相互作用をた．

，CERES-Wheat

Java に は 標 準 で 充 実 し た Application Program

をオブジェクト指向版として C++ で書き直した

Interface（API）が用意されており，
マルチスレッド，

シミュレートした綿花モデル
(215)

(226)

(31)

，時間，気象，作物，土壌，作業，害虫

ネットワーク，XML 文書，GUI コンポーネントなといったコンポーネントとそのインタフェースをどを利用し，多言語対応なプログラムを簡単に開発

CropSim(273)

が Turbo

できる．また，プログラム開発時に，コード中に定Pascal で実装されたことなどを挙げられる．また，められた書式で処理，変数，返り値の内容など記述

情報工学分野で行われている，オブジェクト指向手しておけば，Javadoc により保守に必須の参照しや法によるモデルとシミュレーションに関する研究

すい HTML 形式のドキュメントを生成できる．

提供する作物システムモデル CropSyst(309)

も参考になる．

Web アプリケーション構築においては，サーバ側では 2000 年前後に Java サーブレット（Servlet）

5） JavaJava(235,16,20)が急速に普及し，多くのサーバプログラムの開発には 1990 年代に Sun Microsystems（2010

利用されている．クライアント側では，初期の頃の年に Oracle により買収された）の James GoslingJava アプレット（Applet）の起動に時間がかかっによって開発され，1995 年に公開されたクラスベーた問題が解消され，RIA 開発に利用されている．デスのオブジェクト指向プログラミング言語である．

スクトップアプリケーション構築においても，計算従来のプログラミング言語の良い部分を引き継ぎ，

機性能の向上と Java VM，Java コンパイラの改良

欠点を克服するよう設計され，C や C++ の構文をにより，NetBeans (236) や Eclipse (48) などの統合開発

田中慶：農業シミュレーションモデルにおける分散協調システムのためのフレームワークに関する研究

35

環境（Integrated Development Environment; IDE）

構造図の一種でオブジェクト同士の関係を表現す

が Java で開発されている．

る た め の オ ブ ジ ェ ク ト 図（Object Diagram），振Java で構築したアプリケーションのサーバへのる舞い図の一種でオブジェクト間のメッセージの配 備 は，Java ア プ レ ッ ト は Java Archive（JAR）

やりとりを表現するためのコミュニケーション図

ファイル，Java サーブレットは Web Application（Communication Diagram）がある．

Resources（WAR）ファイルという，プログラムを

UML の農業モデルへの適用は Florida 大学を中ZIP 形式でアーカイブしたファイルを，Web サー

心に行われた．特に農業モデルを再利用するためのバやサーブレットコンテナの所定の位置にコピーすドキュメント記述用ツールとしての役割に注目してるだけである．

いる (195,196,197)．

携帯端末などのリソースの限られた実行環境用

さらに，年々登場する新たな技術に対し，アーには，Java の小型セット Java Micro Edition（Java

キテクチャと設計を分離することで対応しようとす

ME）があり，多くの携帯電話や Personal Digital

る，モデル駆動型アーキテクチャ（Model-Driven

Assistant（PDA）に搭載され，携帯端末用アプリケー

Architecture; MDA）(191) が提唱された．複雑な農業

ション開発に利用されている．

システム構築のために，UML を利用した農業モデ

以上のような，オブジェクト指向プログラミングによる開発効率と保守性の良さ，ネットワーク，分ル実装を発展させた，MDA を利用したコード生成が試みられた (198)．

散オブジェクト，XML 文書などを扱うための豊富な API 群，また，アプリケーションが広く利用されるための必須条件である Web アプリケーション

7） JavaScript

JavaScript は Netscape Communications（1998

としての構築，多言語対応といった Java の優れた

年に AOL に買収された）の Brendan Eich によっ

多くの特徴により，本研究での提案を実装するためて開発され，1995 年に公開された，プロトタイプの開発言語として Java を採用することにした．

ベースのオブジェクト指向スクリプト言語である．
開発当初は LiveScript と呼ばれていたが，同時期

6） UML

に登場した Java が大きな注目を浴びていたため，

統 一 モ デ リ ン グ 言 語（Unified Modeling(189)

Language; UML）

は，オブジェクト指向プログ

JavaScript という名前に変更された．しばしば混同されるが，JavaScript と Java は別物である．

ラミングによるモデル化の設計，分析を行うための1996 年に Internet Explorer に搭載されると，手モデリング（仕様記述）言語である．グラフィカル

軽に動的な Web ページを構築できることから急速な記述を用いるため，大規模なプログラムの構造やに普及していったが，各 Web ブラウザで独自の拡動きを理解しやすくし，グループ開発におけるコ張が行われたため，Web ブラウザ間での互換性はミュニケーションツールとして機能する．

低かった．1997 年に通信に関する標準を策定する

プ ロ グ ラ ム を 図 解 す る 方 法 と し て は， フ ロ ー

国際団体 Ecma International によって，JavaScript

チャートやデータフロー図などがあった．オブジェの仕様が ECMAScript (49) として標準化され，多く

クト指向言語が注目されるようになると，それらの Web ブラウザで利用できるようになった．しかを図解するために，Booch 法
Technique（OMT）法

(218)

(22)

や Object Modelingなどが登場した．これら

し，Web ブラウザの実装の違いによる互換性の問
題は完全には解消されていない．

の多様なモデリング言語の存在による混乱を回避す

Google マップが公開されると，Ajax を利用したるために，統一仕様としてまとめられたのが UML

高機能な Web アプリケーション開発言語として再である．
UML はシステムの静的な構造を表現するためのび注目を集めるようになった．さらに YUI Library，Ext JS (225) などの本格的な GUI ライブラリの登(304)

構造図（Structure Diagram）と，振る舞いを表現

場により，デスクトップアプリケーションと同様なす る た め の 振 る 舞 い 図（Behaviour Diagram） か

ユーザインタフェースの構築が可能になった．

ら成る．特にオブジェクトに注目した図として，

中央農業総合研究センター研究報告36

3.

モジュール構造第 20 号（2013. 11）

リンクできる．

気象や土壌水分，窒素の影響のみを利用する作物• プログラムがモジュール単位でカプセル化されるモデルの精度を向上させようと，既存のプログラム

ので，モデルの保守性が高まり，利用年数が延びに雑草や病害虫の影響を追加していくだけでは，複る．

雑で保守不可能なプログラムとなるか，もとのプロ• 研究者は科学的な機能のモジュール開発に専念

グラムの大幅な書き換えを強いられることになる．

し，それ以外のプログラムを開発するプログラマ

そのため，モデルのプログラム開発にあたっては，と役割分担ができる．

あらかじめ開発，機能追加や保守の効率性を考慮したプログラム構造を採用することが重要である．
ICASA に参加する 3 つの作物モデル開発グルー

1） 作物モデルのプログラム構造（1） Wageningen グループプ〈I.3.1）〉のすべてに共通していることは，
モジュー

Wageningen グ ル ー プ〈I.3.1）（1）〉 は SUCROS

ル構造（Module Structure）によるモデル実装を行っや ORYZA などを FSE〈III.2.2）〉で実装している．

ていることである(114)．

図 15 は FSE による作物モデル実行の流れを表して

IBSNAT グループの DSSAT では CERES 由来のいる．FSE では開始，成長速度計算，集計，終了

モデルの保守が困難になったため，モジュール構造の 4 つのセクションを持つ．作物モデルの実行が開の CROPGRO への移行作業が行われていた．この始されて初期化が行われると時間ループに入る．時

作業は APSRU グループによる APSIM のモジュー間ループ内では，成長速度計算と集計が時間Δ t だ

ル構造に動機付けられていた．さらに，APSIM はけ進みながら，終了条件が成立するまで繰り返され

Wageningen グループによる FSE/FST のモジュー

る．その後，終了処理が行われて作物モデルの実行

ル構造の手法を利用していたというように，各グが終了する．この開始から終了までの流れは FSE

ループはモジュール化について相互に影響を与えてドライバによって管理される．

いた

(115)

．

図 16 はモデル実行時の FSE ドライバとモジューモジュール構造の要件として，以下のことが挙げられる(1,209)．

ルの関係を表している．FSE ドライバでの初期化，集計，終了処理に合わせて，作物や土壌モジュールの対応する処理が実行される．集計では FSE ドラ• モジュールは容易に機能ごとに分離可能である．

イバによって，モジュール内部の状態が参照され，• モジュールは最小限の入出力変数を持ち，インタ

次のループでその状態が他のモジュールに反映されフェースを通してのみ入出力を行う．

る．

• あるモジュールに対する修正の影響が他のモジュールへ及ばず，他のモジュールと独立に検証（2） IBSNAT グループされている．

IBSNAT グ ル ー プ〈I.3.1）（2）〉 に よ る DSSATの実装は，世界中の多くの機関に分散している開発

また，モジュール構造の要件を満たすことによる利点として，以下のことが挙げられる

(114)

．

者の協力によって行われるため，実装された様々な作物モデルに互換性がなく，保守に支障をきた
すようになっていた (114)．この問題点に対応するた• メインプログラムや他のモジュールとは，インタ

めに，DSSAT の v3.5 から v4.0 への改良において，フェースを通してのみ影響を与えるので，わずか

DSSAT-Cropping System Model（CSM）を用いたな変更でコンポーネントを追加したり，分離した

作物モデル実装への移行が行われた (115)．DSSAT-りできる．

CSM のプログラムはモジュール構造になっていて，• 同じ目的の異なるモデルの比較が，モジュール単〈I.3〉で挙げたモジュール構造の利点を享受してい位で容易に行える．

る．

• ソースコードの文書化や共有が容易である．
• 異なるプログラミング言語で記述されたモデルを

図 17 は DSSAT-CSM の コ ン ポ ー ネ ン ト と モ
ジュール構造の概要を示している．メインプログ

田中慶：農業シミュレーションモデルにおける分散協調システムのためのフレームワークに関する研究

37

ラムはランドユニットモジュールを通して，各モルは同じような土壌モデルを内部に持っていたが，ジュールを呼び出している．モジュールの呼び出

DSSAT-CSM 導入により，作物モデルと土壌モデ

しはプライマリモジュールと，その配下のモジュー

ルは分離され，独立したモジュールとなった．これ

ルの 2 段階で行われる．各モジュールの入出力やにより，モデル構造が単純化され，実行，保守が効

実行は独立していて，インタフェースを通しての率化された．

みコミュニケーションするため，モジュールの入れ替えが容易である．初期の DSSAT の各作物モデ開始

新しい作物モデルを追加するには 2 つの方法が89ある．新しいモジュールを作成する CERES モデル

初期化
集計

駆動変数計算
モジュール
作物
状態
成長速度
土壌
状態

time = time +Δt

成長速度
成長速度計算終了条件確認
終了処理

終了

90

出力

図 15 FSE による作物モデル実行の基本構造 (279)作物モデルの実行が「開始」されると初期化が行われる．その後，時間Δt だけ進めながら，「成長速度計算」と「集計」が終了条件成立まで繰り返される．終了処理が行われると，作物モデルの実行が「終了」する．

FSE ドライバ

モデル（モジュール）

初期化
作物
初期化

時間ループ

集計

精度確認

駆動変数計算
成長速度計算
終了処理
土壌
初期化

出力

駆動変数計算
成長速度計算終了処理

終了処理

図 16 FSE によるシミュレーションループ (139)
FSE ドライバでの初期化，集計，終了処理に合わせて，作物や土壌モジュールの対応する処理が実行される．

中央農業総合研究センター研究報告

38の方法と，テンプレートの値を変更することによ第 20 号（2013. 11）

る．

る CROPGRO モデルの方法がある（図 17 右下）．
CROPGRO のテンプレートは，作物の特性を定義（3） APSRU グループする，生態系（ECO）ファイルと品種（CUL）ファAPSRU グループ〈I.3.1）（3）〉は，作物モデルのイルから構成され，現在，DSSAT の作物モデル実実装時に十分なソフトウェア設計を行わなかったこ

装の主流となっている．

とに起因するモデルの複雑さが，ソフトウェアを不図 18 はメインプログラムとモジュールの実行時安定で柔軟性がないものにした先例に学び，開発当の関係を表している．各モジュールの実行サイクル

初から十分なソフトウェア設計を行い，モジュール

は，開始時の初期化，時期毎の初期化，計算，集計，構造による作物モデル実装を行った (114)．APSIM の

要約，出力の 6 ステップになっている．メインプロ

作物モジュールの約 50% のコードが作物ライブラ

グラムが実行サイクルと，ステップに応じてどのモリの汎用ルーチンで構成されていることが示すようジュールを呼び出すかを制御している．メインプロに，モジュール化は同じコードが複数のモジュール
91に存在することを防ぎ，開発，保守の効率化に貢献

グラムの役割は基本的に FSE ドライバと同じであ

プライマリ
モジュール

メイン プログラム

モジュール
気候変動

開始
気象

播種
収穫
灌漑

実行前初期化管理
時期毎初期化

時期ループ
日ループ

計算

集計

ランド
ユニット
モジュール
（ステップ毎にメインプログラムから呼ばれ，
プライマリ
モジュールを呼ぶ）

施肥
残渣処理
土の動的性質

土壌

土壌温度
土壌水分
土壌 窒素 & 炭素

土壌－植物－
大気 連続系

CROPGRO Template
SoybeanPeanutDry Bean

出力

CROPGRO

Tomato

病害虫
要約

作物

CERES-Maize
CERES-Wheat
CERES-Rice

終了

SUBTOR-Potato

図 17 DSSAT-CSM のコンポーネントとモジュール構造の概要 (115)
メインプログラムはランドユニットモジュールを通して，プライマリモジュールと，その配下のモジュールの 2 段階で各モジュールを呼び出す．

田中慶：農業シミュレーションモデルにおける分散協調システムのためのフレームワークに関する研究

する．

39

ジンなどの機能や，各モジュールがインタフェース

APSIM のモジュール構造の中心となる要素は，
図 19 に示されるコミュニケーションフレームワー

を通して中核部分と容易に結合，分離できることは類似している．

ク（APSIM エンジン）である．APSIM エンジン

しかし，同じような仕組みに見えても，パラメーはモジュールインタフェースを通して各モジュール

タ，初期値，データの読み込みメソッド，モジューとリンクする．また，リンクの解除や，モジュールル間の交換メッセージ，計算順序，イベント処理なの交換も容易である．このモジュール方式は柔軟性

どの実装に多くの違いがあった．そのため，他のグがあるので，複数の生物モジュールを組み込むこと

ループのモジュールを利用するためには，無視できにより，複雑な農業システムを構築できる．

ない量のプログラミングが必要であった (114)．

図には示されていないが，APSIM エンジンは，

1990 年 代 後 半 に は，Java の 登 場 と 同 時 に 注 目

CLOCK モジュールを用いてシミュレーション内のされ始めたオブジェクト指向プログラミングをモ

時間を管理し，各モジュール間の同期をとりながら，ジュール構造での実装に取り入れる研究が開始され1 日ごとや数時間ごとの様々な間隔で繰り返し実行ている．

を行っている．また，APSIM は FSE ドライバのように，初期化，前処理，処理，後処理のような実行

4.

フレームワーク

フレームワーク（Framework）とは，特定の目サイクルを持っている．
3 つの作物モデル開発グループによるモジュール化は一定のレベルに達している．どのモジュール構
92
造も，作物モデル実行の中核部分である FSE ドラ
イバ，DSSAT のメインプログラム，APSIM エン

メイン プログラム
開始

的のアプリケーション構築のために再利用できる
ようにまとめられたプログラムライブラリである(110,111)．フレームワークは半完成品のアプリケーショ

ンのようなものである．フレームワークを利用した

作物モジュール
実行前初期化

入力ファイル

計算
実行前初期化

集計
出力

出力ファイル要約
計算
日ループ

気象モジュール
集計

実行前初期化
計算
要約

出力

要約

土壌水分
モジュール
実行前初期化

入力ファイル

計算
集計
終了

出力

出力ファイル要約

図 18 DSSAT におけるメインプログラムとモジュールの実行時の関係 (204,114)
メインプログラムが実行サイクルと，ステップに応じてどのモジュールを呼び出すかを制御するのは，FSE ドライバと同じである．

中央農業総合研究センター研究報告40

第 20 号（2013. 11）

アプリケーション構築は，フレームワークのデフォ

OpenMI (76)，TIME (206)，Jena Adaptable Modelling

ルトの機能と異なる部分を新たに開発することに複数のフレー
System（JAMS）(128) などがある．また，

よって行われる．新たに開発されたプログラムは，

ムワークで利用可能なコンポーネントについても研

アプリケーション実行時にフレームワークから呼び究されている (15)．

出される．この点がプログラムから呼び出される側

作物モデル用のフレームワークは，作物モデルにある普通のライブラリと異なるところである．開開発グループによりモジュール構造による作物モ

発効率を高めるためのフレームワークであるが，依デル実装の研究が十分に行われていたので，公開存しすぎると他のフレームワークへの乗り換えが制されているものは多くないが，農業生態系シミュ

限され，かえってプログラムの再利用性が低下する

レーションモデル用の ModCom (83,287,274) などがある．

こともある (217,44)．

ModCom は FSE ドライバと同様なモデル実行エン

デフォルトの機能は継承して，新しい機能のみ

ジンの機能や，各種コンポーネントを記述するインを開発するために，フレームワークでは一般的にタフェースの仕様を提供する．開発言語とオペレー

オブジェクト指向言語が利用される．Java による

ティングシステムに依存しないために，コンポーネWeb アプリケーション構築用フレームワークとしント間通信に Component Object Model（COM）をて，Apache Struts
Apache Tapestry

(11)

(240)

，JavaServer Faces（JSF） ，(12)，Google Web Toolkit(73)

利用している．

などが

5.

ある．

農業モデル用フレームワーク〈I.3〉のモジュール構造は，作物モデル開発グルー

水文モデル用には，いくつかのフレームワークが構築され，実運用されているアプリケーション構

プでのみ利用されており，グループ外でモデル実装

築に利用されているものがある．主な水文モデル用に利用されていなかった．モジュール構造の開発時

フレームワークとして Modular Modeling System期から対象はスタンドアロンのアプリケーションで93あり，Web アプリケーションとして，また，ネッ

(136)

(35)

（MMS） ，Object Modeling System（OMS） ，プログラム管理モジュール
管理
調停

リポート

生物モジュール
OZCOT

環境モジュール

APSIM-Maize
作物

QNUT
QSUN
CERES-Wheat

牧草
残渣

Light

APSIM
エンジン

GRAZPLAN
GRASP

SoilWatAPSWIM

土壌水分

SoilN

土壌窒素

Erosion

土壌浸食

Residue
経済

図 19 APSIM の plug-in pull-out システムの構成 (150)APSIM のモジュール構造のキー要素である APSIM エンジンは，モジュールインタフェースを通して各モジュールとリンクする．また，リンクの解除やモジュールの交換も容易である．

田中慶：農業シミュレーションモデルにおける分散協調システムのためのフレームワークに関する研究

41

トワーク上に分散したコンポーネントとして開発すやパラメータの設定部分に対応する JAMF のクラることを想定していなかった．

スを継承したり，インタフェースを実装したりする

AMADIS 用の農業モデルの実装を助けるためのプログラムパッケージは，単なるプログラムライブ

だけでよい (253)．以下で JAMF の詳細を，プログラ
ムのコードの一部を示しながら紹介する．

ラリとしてではなく，GUI コンポーネントも含め農業モデルの実行の流れは，作物モデル開発グて，農業モデルの Web アプリケーションのすべて

ループのモデル構造（図 15 ～図 19）を参考に，図を構築できるパッケージとなっていることが望まし

20 のような，モデル実行エンジンによる実行用デー

い．それを満たす，Java による農業モデル実装フタから結果データへの変換処理として表すことがレームワークを構築する．このフレームワークは英できる．また，この変換処理のために，データ構造

語 名 の Java Agricultural Model Framework か らや GUI コンポーネント群が付随している．この処

JAMF（ジャムフ）と名付ける．

理やデータなどを機能によりパッケージとして分類

JAMF では農業モデルに共通するモデル実行機能

したものが，JAMF のパッケージ構成（表 5）であ（モデルエンジン），データ構造，気象データの取得

る．すべての JAMF パッケージと，パッケージに機能や，GUI コンポーネントによるデータの表示機
94
能が提供されている．農業モデル実装時には，個々含まれるクラスやインタフェースのドキュメントの農業モデルに固有な計算部分や，利用するデータとして閲覧できる．JAMF を利用したサンプルモ

は，
Javadoc により生成された Web ドキュメント (249)

datareader

ユーザインタフェース

気象データ生成気象
データベースModelDataReader

data

MetBroker

実行用データ

気象モデル

ExecutionData

推定データ・パラメータ（地点・作物）
・気象データ種別

平年データ

平年値 XML
ファイル・メイン・パラメータ設定
・実行地点選択・気象 DB 選択
・推定モデル選択

CSV
ファイル

ユーザデータmodel

モデル実行エンジン

モデル計算

ModelExecutor

Model（シミュレーションの数式）（日別・時別による繰り返し計算）（条件成立時の処理）・実行状況表示・エラー内容表示

モデル間の相互作用

gui

data

結果表示・保存

結果データ
ResultData

地図・DVI，乾物重などの時系列データ
・収穫日，収量などの日付や値グラフ

表

ダウンロード（XML，CSV）

・結果表示設定
・結果表示
・ダウンロード
形式設定

図 20 農業モデル実行の流れ
JAMF での農業モデルの実行の流れと，実行時に画面表示されるユーザインタフェース．
各要素の Courier 体の文字列は，その機能を開発するために利用される JAMF パッケージ名（破線内）と，インタフェー
ス名やクラス名（実線内）である．

95
中央農業総合研究センター研究報告42

第 20 号（2013. 11）

表 5 農業モデルフレームワーク JAMF のパッケージ構成（主要部）
分類

気象ジェネレータ〈III.5.1）〉

モデルデータ〈III.5.2）〉

ユーザインタフェース〈III.5.4）〉

モデル実行エンジン〈III.5.3）〉

その他

パッケージ名brokerパッケージの内容
MetBroker や ChizuBroker を扱うためのクラスを提供datareader

MetBroker を含む，各データリーダのイ
ンタフェース，およびクラスを提供

data.normalvalue

平年気象データに関するクラスを提供

data

モデルのデータクラスに関するクラス
を提供

data.xml

モデルのデータをXML 形式のデータとして扱うためのクラスを提供

guiGUI クラスを提供

gui.chart

グラフを利用するための GUI クラスを提供

gui.map

地図上にデータを表示するための GUIクラスを提供gui.metbroker

MetBroker 設定用の GUI クラスを提供

model

モデル実行エンジンのためのクラスを
提供

text

各種データのための書式に関するクラ
スを提供

util

様々なユーティリティクラスを提供

xml

様々なXML ドキュメント用ユーティリ
ティクラスを提供

すべての JAMF パッケージと，パッケージに含まれるクラスのドキュメントは Web ドキュメント (249) として参照できる．

デルのプログラム開発のための解説もあるので，ア

り，生成されたりした気象データは，書式の定義さプリケーション開発者は JAMF を利用した農業モれたテキストファイルで扱われるため，気象データ

デル実装技術を円滑に身につけることができる．

ベースからデータを取得するためのデータベースア

JAMF を利用した Java アプレット版の農業モデ

クセス機能は備えていない．

ル実装に必要なプログラムファイルは，表 6 に挙AMADIS の構成要素である農業モデルも実行にげる約 10 個のプログラムファイルから構成される．

は気象データが必須であるため，JAMF は気象ジェプログラムファイルの数は，モデルが扱うデータ種

ネレータ関連パッケージを提供し，農業モデルが複

別，設定画面の数，対応言語の数により増減する．

数の方法で気象データを取得できるようにしている．JAMF の気象ジェネレータの気象データ取得

1） 気象ジェネレータ

元は，MetBroker（気象データベース），気象デー

農業モデル統合システムで利用される気象データ

タ推定モデル，平年気象データ，ユーザデータ（テは，気象ジェネレータ〈I.3.3）（1）〉によって提供

キストファイル）の 4 種類からなる（図 21）．また，される．これらの気象ジェネレータの主な役割は，取得した気象データに欠測値があった場合のための

過去の気象データから気象モデル用のパラメータを補間機能がある．

生成することと，作物モデルを利用した予測用の未MetBroker〈II.2.5）〉は気象データベースアクセ

来の気象データを生成することである．観測されたスの中核機能となっている．MetBroker を利用す

96
田中慶：農業シミュレーションモデルにおける分散協調システムのためのフレームワークに関する研究

43

表 6 個別農業モデル実装に必要な追加的プログラム
分類

データ

モデル実行
エンジン

ユーザイン
タフェース

クラス名
SampleConstants

クラスの内容農業モデルで扱うデータを特定するためのキーを定義する．

SampleData(ExecutionDataImpl)

農業モデルが利用するデータを扱う．時系列
データの読み込み元の設定や，その他のデー
タの初期値設定を行う．

SampleResultData(ResultDataImpl)

Sample(AbstractModel)

農業モデルの実行結果（値・日付・時系列データ）を扱う．
設定されたパラメータや取得された気象デー
タを利用してモデルの計算を行う．

SampleMain(ModelMain)

農業モデルを Java アプレットまたはアプリケーションとして起動する．実行時にパラメー
タが渡された場合は，その設定も行う．

SampleUI(AbstractModelUI)
SampleTableUI(ModelTableFrame）
SampleMap(MultipleStationResultMap)

メイン画面に表示する GUI の設定とレイアウトを行う．また，GUI のイベントを処理する．
モデルの計算後に，モデルの結果データの内
容を表やグラフとして表示する．
モデルの結果データの内容を地図上に表示する．

SampleResources
SampleResources_ja(ModelResources)

モデルの実行環境に応じて，適切な言語を表示するためのリソースファイル．デフォルト
用と，その他の対応言語用がある．

各クラスは，クラス名の下の括弧内のパッケージに含まれるクラスや抽象クラスを継承したり，インタフェースを実装した97りすることにより，個別モデルごとの機能の違いを実現する．
クラス名は農業モデルの名前が Sample の場合．SIMRIW モデルなら，各クラス名の Sample の部分が Simriw となる．

農業モデル

リクエスト
（地点，期間， 気象データ
MetSequence
観測間隔）
MetRequest

MetBroker

MetBrokerReader

気象データ
推定モデル

DataEstimateModel

17 種類の気象データベース（8.6 万地点）
気温，降水量，風速，日射量，日照時間，相対湿度，葉の濡れ

日照時間－日射量変換モデル
水温，地温，葉の濡れ推定モデルなど

気象ジェネレータ

ModelDataReader

平年気象データ
NormalValue
Utilities

ユーザデータ

UserDataReader

あらかじめ計算された平年値（アメダスや NOAA）

ユーザが観測した気象データ（テキストウィザードを利用して CSV 形式などのテキストファイルを読み込む）

図 21 JAMF の気象ジェネレータと気象データ取得元
気象ジェネレータは，農業モデルからのリクエストに応じて，MetBroker，気象データ推定モデル，平年気象データ，ユー
ザデータの 4 種類の気象データ取得元から気象データを取得し，リクエストに適うデータオブジェクトとして，農業モデルに返す．
各要素の Courier 体の文字列は，JAMF のインタフェース名やクラス名である．

44

中央農業総合研究センター研究報告第 20 号（2013. 11）

ることにより，気象ジェネレータはデータベース

う場合に利用される．現在までの気象データは，気ごとにアクセスプログラムを記述することなしに，

象データベースなどからの実測値を利用し，それ以MetBroker が扱う国内外の様々な気象データベー

降の予測用データとして平年値が挿入される．異常スを利用可能になる．また，MetBroker のデータ

気象や温暖化の影響を反映させたるため，平年気温

取得機能により，ユーザは農業モデルの実行地点を，データに定数値を加算する機能がある．JAMF の気

気象観測地点 ID によって指定するか，2 点の緯度

象ジェネレータでは，アメダスや National Oceanic

経度を指定した矩形領域内に存在するすべての気象and Atmospheric Administration（NOAA）が提供

観測地点として指定するかを選択できる．

する National Weather Service（NWS）(173) などの主気象データ推定モデルは，農業モデルの実行地点

要な気象データベースの平年値を XML 形式のデーで観測されていないために MetBroker から取得でタで保持している（表 7）．当初は，平年値用クラ

きない気象データを，その他の観測されている気象

スのオブジェクトをシリアライズしたものを保存形

データから気象モデルを利用して推定する機能を提式としていたが，バイナリファイルで可読性がない

供する．JAMF の気象ジェネレータでは，日射量，ことと，平年値用クラスの修正を行うとデシリアラ

土壌温度，土壌水分，水田水温，葉の濡れを推定す

イズ操作が煩雑になるため，ファイルサイズが数倍る機能を提供している．例えば，日射量は日照時間に増加する（表 8）という欠点があるが，保存形式から推定され，葉の濡れは降水量から推定される．

を XML 形式に変更した．

データ推定に利用されるモデルは複数登録すること

ユーザデータは，ユーザの手元にある気象データが可能であり，ユーザが選択できる．日射量を利用が記録されたテキストファイルを，農業モデルで利する農業モデルは，国内で日射量を観測している約用できるように取り込む機能を提供する．主にユー

150 ヶ所の気象観測地点でしか実行できないが，気ザによって観測された気象データや，MetBroker

象データ推定機能により，日照時間を観測しているが対応していない種類の気象データを扱うために利約 1000 ヶ所のアメダスの気象観測地点でも実行可用される．JAMF が提供するテキストデータウィ能となり，農業モデルの実行可能地点を日本全国の98
多くの地点に広げることができる．

ザードを利用することにより，固定長形式や CSV

平年気象データは，農業モデルが未来の予測を行形式などのテキストデータ形式に柔軟に対応でき
る．

表 7 平年値データの保存形式によるファイルサイズ
保存形式
シリアライズ

気温
その他

日別値
9KB
6KB

XML

気温
その他

37KB
13KB

時別値
39KB
1112 行
376 行

330KB

8794 行

日別気温は最高，最低，平均の 3 要素を含むため，その他の気象要素よりファイルサイズが大きくなる．

99

表 8 データベースごとの平年値データの合計ファイルサイズ
保存形式
シリアライズXML

アメダス（9600 ファイル）
207MB
1600MB

NOAA/NWS（44000 ファイル）
274MB
763MB

NOAA/NWS は日別値のみ扱うのに対し，アメダスはファイルサイズの大きい時別値を扱うため，保存形式を XML にした
ときの合計ファイルサイズの増加率が大きい．
ファイル数は，観測地点数×気象要素数に対応している．

田中慶：農業シミュレーションモデルにおける分散協調システムのためのフレームワークに関する研究45

図 22 は JAMF を利用した気象データ取得元の設

データ用のテキストデータウィザードの機能が定を行うためのソースコードである．JAMF の気設定された UserDataReader オブジェクトを象ジェネレータ関係のプログラムは，datareader

返す．

パッケージとして提供される．農業モデルが利個々の農業モデルで異なる，必要な気象データの用 す る 気 象 デ ー タ の 設 定 は， 実 行 デ ー タ 用 の設定に関する記述のみで，気象ジェネレータの気象

ExecutionDataImpl クラスを継承するクラスでデータ取得元設定ための GUI コンポーネント群（図行われる．

23）が自動的に生成される．これらの GUI コンポー

1. 実 行 に 必 要 な 気 象 要 素 がネント群に限らず，気象データの取得機能，取得しaddSequenceElement() メソッドによってたデータを農業モデルの実行用データオブジェクト設定される．ここでは気温と葉の濡れが設定さとしてまとめる機能などは，JAMF が提供するデれている．

フォルト機能が自動的に継承される．このように，

2. 気 象 デ ー タ に 関 す る 属 性 を 管 理 す る た め の新しい農業モデルのためにデフォルトと異なる部分

DataSourceAttribute オブジェクトが取得のみを新たに開発するだけで済むところが，フレーされる．

3. 気温のデータ取得元として MetBroker とユー
ザデータが addUsableDataSource() メソッ

ドによって設定される．葉の濡れに対しては，
100 さらに setDataEstimateModel() メソッド
によって葉の濡れ推定モデルも設定される．

4. getUserDataReader() メ ソ ッ ド は ユ ー ザ

ムワークを利用したアプリケーション構築の利点である．
JAMF の 気 象 ジ ェ ネ レ ー タ で， 各 取 得 元から気象データを取得する管理を行うのはModelDataReader クラスであり，ユーザの設定に応じて，DataReader インタフェースを実装した MetBrokerReader クラスや UserDataReader

import amf.data;
import amf.datareader;public class SampleModelData extends ExecutionDataImpl{
public SampleModelData(){setResolution(Duration.ONE_HOUR);//モデルの実行サイクルの設定（時別）
addValueElement(LEAF_WETNESS_THRESHOLD);
setValue_(LEAF_WETNESS_THRESHOLD, 80.0);}}//値の定義（葉の濡れの閾値）//値の設定addSequenceElement(AIRTEMPERATURE);//時系列データの定義（気温）
addSequenceElement(LEAFWETNESS);//時系列データの定義（葉の濡れ）
DataSourceAttribute dsAttrAirTemp = getDataSourceAttribute(AIRTEMPERATURE);
DataSourceAttribute dsAttrLeafWet = getDataSourceAttribute(LEAFWETNESS);//時系列データの取得元設定
dsAttrAirTemp.addUsableDataSource(DataSourceElement.MET_BROKER);//MetBroker
dsAttrAirTemp.addUsableDataSource(DataSourceElement.USER_DATA);//ユーザデータ
dsAttrLeafWet.addUsableDataSource(DataSourceElement.MET_BROKER);
dsAttrLeafWet.addUsableDataSource(DataSourceElement.USER_DATA);
dsAttrLeafWet.addUsableDataSource(DataSourceElement.ESTIMATED_DATA); //推定モデル
setDataEstimateModel(LEAFWETNESS, new LeafWetnessEstimateModel());

public UserDataReader getUserDataReader(){//ユーザデータの設定 気温と葉の濡れ
UserDataReaderImpl udReader = new UserDataReaderImpl();udReader.addTextDataElement(
new TextDataElement(AIRTEMPERATURE, AIRTEMPERATURE.toString(), "C"));
udReader.addTextDataElement(
new TextDataElement(LEAFWETNESS, LEAFWETNESS.toString(), ""));
return udReader;}…

図 22 JAMF を利用した気象データ取得元設定を行うためのソースコード

101
46

中央農業総合研究センター研究報告第 20 号（2013. 11）

気象データ
取得元の設定DataSourceUI

欠測値の補間方法・未来のデータの設定
DevoidCancelerUIMetBroker の設定

MetBrokerUI

気象観測地点選択用地図

MetStationSelectorMap

気象データ推定モデルの設定DataEstimateModelUI

テキストデータウィザード
TextDataInputUI

図 23 気象ジェネレータのための GUI コンポーネント群
図 22 の気象データの設定プログラムのみで，GUI コンポーネント群は JAMF により生成される．
個々の農業モデルで異なる，必要な気象データの種類や取得元のみ指定すれば，各モデル共通で利用できる GUI コンポーネント群のプログラムは，JAMF により自動的に継承される．
各要素の Courier 体の文字列は，JAMF のインタフェース名やクラス名である．

クラスに実際の気象データ取得を委譲する．
MetBroker へ 接 続 す る getConnection()などは datareader パッケージとは別に，broker

パッケージとしてまとめられている．

メ ソ ッ ド， 気 象 観 測 地 点 リ ス ト を 取 得 す る

JAMF の 気 象 ジ ェ ネ レ ー タ の 欠 測 値 の 補 間

listStations() メ ソ ッ ド， リ ク エ ス ト 用 のや 未 来 の 予 測 用 に 平 年 値 を 挿 入 す る 機 能 は，

オブジェクトの生成を行い，気象データを取得する

ドによって行われ，補間方法を過去と未来に分けsupplyMetData() メ ソ ッ ド な ど，MetBroker 関て設定できる．ユーザはこれらの設定を図 23 のStationMetRequest や SpatialMetRequest

連操作を行うメソッドを持つ KMetBroker クラス

DevoidCanceler クラスの fillDevoid() メソッ

GUI コンポーネントで行える．平年気象データに

田中慶：農業シミュレーションモデルにおける分散協調システムのためのフレームワークに関する研究

47

関するクラスは data.normalvalue パッケージ

データ本体の前のヘッダ部分に，データ観測者，機としてまとめられている．平年気象データを利用

関，連絡先，測定方法，備考，データ観測地点情報

するときに温暖化の影響を反映させたい場合には，などが埋め込まれている．データ本体は固定長テキ

setAirTempAddValue() メソッドによって気温

ストで記録されている．

に一定値を加算できる．

GUI コ ン ポ ー ネ ン ト 群 の う ち， 気 象 デ ー タ 取

JAMF の農業モデル用のデータ関連のクラスは，

data パッケージとしてまとめられている．農業

得元設定用の DataSourceUI クラスと気象デーモデル用のデータには，実行のための設定値を格

ク ラ ス は gui パ ッ ケ ー ジ で，MetBroker 関 連

ルの計算結果を格納するための結果データがある

タ 推 定 モ デ ル 設 定 用 の DataEstimateModelUI

納するための実行用データと，気象データやモデの 設 定 用 の MetBrokerUI ク ラ ス な ど は gui.

（図 25）．実行用データには ExecutionData イン

TextDataInputUI クラスなどは gui.textdataある．同様に結果データ用には ResultData イン

metbroker パッケージで，ユーザデータ設定用のパッケージで提供される．

タフェースと ExecutionDataImpl 抽象クラスがタフェースと ResultDataImpl 抽象クラスがある．両データ用のインタフェースとクラスともに

2） データ構造

シミュレーションモデルの実行は，入力データを計算式によって出力データに変換する作業のことでModelData インタフェースと，そのデフォルト実装を提供する ModelDataImpl 抽象クラスを継承している．

ある．モデルの実行過程では，データの集合に対し

ア プ リ ケ ー シ ョ ン 開 発 者 は， 農 業 モ デ ル

値の設定や取得のような基本的操作を繰り返し実行

が 利 用 す る 値， 日 付， 時 系 列 デ ー タ な ど を，することが多い．このような基本操作を効率良く実ExecutionDataImpl を継承したデータ用クラス

行できるようなデータ構造を利用することにより，データ操作の煩雑さから解放され，モデルの全体的な開発に集中できる．また，工夫されたデータ構造の利用は，モデル実行効率の向上につながる

(18)

．

（図 22）に設定する記述を行う．

，
農業モデルのデータクラスは，真偽（boolean），日付（Calendar），時系列デー
数値（double），文字列（String）の 5 つの型をタ（Sequence）

MS-DOS 時代には，データはソフトウェアが直標準で扱える．データクラスを拡張することにより，接読み書きできる ASCII コードを利用し，固定長

これ以外の型を扱うことも可能である．JAMF で形式やカンマ区切り形式で記録されていた．実験をはこれらのデータを取得するための isState()，

行った圃場，年，番号などは，ファイル名 8 文字 +拡張子 3 文字の制限のもと，ファイル名により管理
されていた

(99)

．また，ファイルサイズ節約のために，

データ項目名を短縮形で表し，可読性を犠牲にして

getValue() ，getDate() ，getSequence() ，getText() メソッドを ModelData インタフェー
スで定義している．データを設定するメソッドはis または get を set にする．各データを特定するためのキーを引数としてとる．これらのメソッド

いた．
IBSNAT グループでは DSSAT 用のデータ標準(100)以外の方法ではデータにアクセスすることはできな．IBSNAT

い．これは一般的なデータのカプセル化の手法であファイルでは計測項目に共通語彙を割り当て，ファるが，農業モデルを AMADIS の構成要素とし，複イルの構造と書式が定められている．DSSAT を用数のモデルを連携させ，相互にデータのやりとりをいた実験や調査の文書化に採用され，モデルの比較行う場合に重要なことである．

のための IBSNAT ファイルを定めたや改善を支援している．しかし，各計測値の計測方

デ ー タ ク ラ ス で 扱 う デ ー タ は， デ ー タ を 設

法，単位，計測項目の定義などの曖昧さに問題があっ

定 し た り 取 得 し た り す る 前 に， デ ー タ を 特 定た．

す る た め の キ ー を addValueElement() や

その後，IBSNAT ファイルは ICASA のデータ標
準

(101)

として引き継がれ，XML 形式での記述の検討が行われている．ICASA のデータ標準（図 24）
では，addSequenceElement() メソッドを用いて登録しなければならない．登録されていないキーでデー
タオブジェクトへアクセスを行うと例外が発生す102
中央農業総合研究センター研究報告48

第 20 号（2013. 11）$WEATHER:KSAS!The following data subset is desirable.
*GENERAL@ PEOPLE
Wagger,M.G. Kissel,D.
@ INSTITUTES
Kansas State Univ.
@ CONTACTS
Hunt,L.A. thunt@uoguelph.ca@ NOTESWind and dewpoint included; wind in m/s as average over 24h
Data from DSSAT 3.0 file
@ DISTRIBUTION
Use at will but acknowledge source. No secondary distribution@ VERSIONICASA1.0 10-08-2006 (GH,JW,LAH;email)! And additional data items can be added for comprehensive documentation:@ METHODS
Standard Met Station instruments@ PUBLICATIONSNone of direct application@ FLAG FLAG_DETAILS
0 All data ok
1 SRAD estimated from sun hours!And data subsets similar to the following are necessary for all stations.
*WEATHER_STATION:KSAS2004@ NAME
Example weather dataset@ COUNTRY REGION LOCATIONUSA Kansas Ashland
@ LAT
LONG
ELEV TAV TAMP TEMHT WNDHT CO2 CO2A
37.1137 -90.4567 81
8.5 18.9 2.0
2.0
370 1.1@ YEAR DOY SRAD TMAX TMIN RAIN FLAGW
2004 1
11.5 1.4 -1.4 3.5
1
2004 2
11.4 0.0 -2.1 2.5
0[data series truncated]=

図 24 ICASA データ標準による気象データ形式
データ本体の前のヘッダ部分に，データ観測者，機関，連絡先，測定方法，備考，データ観測地点情報などが記述されている．データ本体は固定長テキストで記録されている．

る．これは，データを表やグラフなどへの表示を自とにより，XML 文書に含まれる要素名，要素に含動化するために必要なことであり，プログラミング

まれる属性，要素値の型，要素が現れる順番，要素ミスを防ぐためでもある．

や属性が必須かどうかを知ることができる．逆に，結果データをファイルに出力するためのクラススキーマでユーザが生成した XML ファイルの妥当

は broker.xml や data.xml パ ッ ケ ー ジ と し て性を検証できる．また，XML Stylesheet Language

まとめられている．XML 形式ファイル（図 26）とTransformations（XSLT）(283) により，XML 文書のして出力する場合は，Java Architecture for XML

全部または必要部分を抜き出して，別の XML 文書(238)

Binding（JAXB）を利用した Sequence2XML ク

ラスによりシリアライズ化されて出力される．逆にXML ファイルからデータオブジェクトへのデシリや CSV 形式に変換できる．

ResultData2CSV ク ラ ス に よ り CSV 形 式

で，Sequence2KML ク ラ ス で Google Earth 用 のアライズも可能である．MetBroker から取得した

Keyhole Markup Language（KML）形式ファイル

気象データには，メタデータとして気象観測地点情として出力できる．また，util パッケージに含ま報しか付随しないので，ICASA データ標準のような観測者や観測方法に関する情報は含まれない．
(285)

XML 文書の構造は，XML スキーマ（Schema）

metxml.xsd で定義されている．スキーマを見るこれる SequenceC や SequenceTM クラスを利用することにより，時系列データをグラフや表として表
示できる．

103
田中慶：農業シミュレーションモデルにおける分散協調システムのためのフレームワークに関する研究

農業モデル用データ
ModelData

•
•
•
•
•
•
•
•

気象データ取得期間
モデルの実行期間
実行間隔
真偽
数値
日付
時系列値
文字列

IntervalInterval
DurationbooleandoubleCalendarSequence
String

インタフェースで定義された以下のアクセスメソッドを通してのみ，
データオブジェクトの状態を取得
したり，変更したりできる．
取得用
isState()getValue()
getDate()getSequence()
getText()

設定用
setState()
setValue()
setDate()setSequence()
setText()

継承
実行用データExecutionData

49

継承
結果データ

農業モデル

ResultData

Model• 実行地点リスト• 実行地点WeatherStation[]

WeatherStation

気象ジェネレータ
ModelDataReader

データ表示

データシリアライズ

SequenceC
SequenceTM

ResultData2CSVSequence2XML
Sequence2KML

グラフ，表，地図

CSV，XML，KML
ファイル

図 25 JAMF のデータ構造と関係
JAMF では農業モデル用データのための ModelData インタフェースを提供している．ModelData はデータとして，真偽，
数値，日付，時系列値，文字列を扱える．ModelData 内のデータにアクセスするためには，インタフェースで定義された
isState()，getValue()，getDate()，getSequence()，getText()メソッドを利用しなければならない．データを設定するメソッドは get を set にする．各データを特定するためのキーを引数としてとる．

3） モデル実行エンジン

終了日に達した場合，枯死条件などを満たして異常JAMF のモデル実行の中心的役割を担っている

終了した場合などがある．1 回のループで進むモデのがモデル実行エンジン（図 27）である．モデル

ル内時間は，作物モデルでは 1 日，病害モデルでは

実行エンジン関連のクラスは model パッケージに

1 時間であることが多い．

まとめられている．

ModelExecutor クラスは DSSAT のメインプロ

アプリケーションの実行ボタンがクリックさグラム（図 18）に相当し，作物モデル，病害虫モれるなどして，農業モデルの実行が開始すると，デル，気象モデルなどの計算部分である Model イ

モ デ ル 実 行 エ ン ジ ン ModelExecutor ク ラ ス のンタフェースを実装したクラスはモジュールに相レータから気象データ取得，終了条件を満たすまで

run() メソッドが毎回実行される．DSSAT のルー

execute() メソッドにより，初期化，気象ジェネ

当する．ループ処理中は Model インタフェースののループ処理，結果出力の順に実行される．終了条

プ処理では，モジュール内の計算や集計などの処理

件は農業モデルにより，ある変数が定められた値にを個別に呼び出していたが，JAMF のモデル実行

達した場合や，ユーザにより設定された実行期間のエンジンのループ処理では，簡単化のために各モデ

104
中央農業総合研究センター研究報告50

第 20 号（2013. 11）<?xml version="1.0" encoding="UTF-8" standalone="no"?><dataset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespace
SchemaLocation="http://localhost/metbroker/metbroker/schema/metxml.xsd"><data><source id="amedas"><name lang="ja">アメダス</name>気象観測地<region id="08">
点情報<name lang="ja">茨城県</name><station id="40336"><name lang="ja">つくば</name><interval start="2010/1/1" end="2010/2/1"/><duration id="daily">
気象データ<name lang="ja">日別値</name>情報</duration><element id="airtemperature"><name lang="ja">気温</name><subelement id="Min" unit="℃"><name lang="ja">最低</name><value date="2010/1/1">-2.7</value>
最低気温<value date="2010/1/2">-2.3</value>[data series truncated]</subelement><subelement id="Max" unit="℃"><name lang="ja">最高</name><value date="2010/1/1">8.2</value>
最高気温<value date="2010/1/2">11.3</value>[data series truncated]</subelement><subelement id="Ave" unit="℃"><name lang="ja">平均</name><value date="2010/1/1">2.6</value>
平均気温<value date="2010/1/2">4.5</value>[data series truncated]</subelement></element><element id="rain"><name lang="ja">雨量</name><subelement id="Total" unit="mm"><name lang="ja">合計</name>
降水量<value date="2010/1/1">0.0</value><value date="2010/1/2">0.0</value>[data series truncated]</subelement></element>[data series truncated]</station></region></source></data></dataset>

図 26 JAMF の気象データ用の XML 書式
MetBroker から取得した気象データには，メタデータとして気象観測地点情報しか付随していないので，ICASA データ標準のように観測者や観測方法に関する情報は含まれていない．

ルのループ内処理単位で呼び出しを行う．
モデルの計算処理関連で，アプリケーション開4） ユーザインタフェース

基本的な Java アプレット用の GUI コンポーネン

発者が作成する必要がある部分は，Model インタ

トは，Java の開発環境 Java Development Kit（JDK）

行う run() メソッドのみである．農業モデル実行

されている．それらを拡張したり，組み合わせたりのための他の部分は JAMF が提供する機能が自動した農業モデル用のカスタム GUI コンポーネント

的に継承される．

用クラスは gui パッケージにまとめられている．

フェースを実装するクラスで，農業モデルの計算をの java.awt や javax.swing パッケージで提供

ユーザインタフェース開発のためのプログラム

105
田中慶：農業シミュレーションモデルにおける分散協調システムのためのフレームワークに関する研究

51

農業モデル

モデル実行エンジン

Model

ModelExecutor

開始
作物モデル

ループ
処理

初期化

気象データ取得

初期化
気象データ取得
計算
集計
終了判定（DVI）
結果出力

繰り返し

気象モデル
初期化
気象データ取得
ループ処理
計算

計算・集計・
終了判定などのループ処理病害虫モデル

ループ
処理

結果出力

終了

初期化
気象データ取得
計算
集計
終了判定（期間）
結果出力

図 27 JAMF のモデル実行エンジンと各モデルの関係
農業モデルの実行が開始すると，モデル実行エンジンにより，初期化，気象データ取得，ループ処理，結果出力の順に実行される．ループ処理中は各農業モデルのループ処理用メソッドが毎回実行される．

は，画面上での表示位置やサイズの設定，マウス操

定欄などを追加することは可能であるが，設定項目

作での選択項目の変更や，キーボード入力に対するが多い場合にはパラメータ設定用画面を別に設ける

イベント処理など，煩雑な作業が多い．JAMF では，ようにしている．

NetBeans(236)

や Eclipse(48)などの統合開発環境のよ

うな GUI による画面作成ツールを提供していない（2） 結果表示画面

が，多くの農業モデルに対応できるデフォルトの農業モデルの結果データのうち，開花日，収穫日

メイン画面や結果表示画面を提供している．JAMFなどの日付や収量などの数値は表で，気象データやによる農業モデルは，主にメイン画面，気象データ

DVI などの時系列データはグラフや表で表示して取得元設定画面，結果表示画面から構成される（図いる．

23，図 28）．

表 は JDK 標 準 の JTable ク ラ ス が 提 供 さ れ ている．JAMF では，JAMF が扱う時系列データ用（1） メイン画面

農業モデルのメイン画面用 AbstractModelUI

クラスを自動的に表に変換できるように拡張した

KTable クラスと，複数の表を切り替えて表示した

クラスは，タイトル欄，実行期間設定ボックス，気り，データをダウンロードできたりする機能を持つ

象データ設定ボタン，実行ボタンなどのデフォルト

KTableFrame クラスなどを提供している．

メイン画面コンポーネントのための抽象クラスであグラフは Java のグラフ用ライブラリ JFreeChart

り，各ボタンに対するイベント処理も定義されてい(185)

る．各モデル用に継承したクラスで，パラメータ設

gui.chart パ ッ ケ ー ジ に ま と め ら れ て い る．

を 利 用 し，JAMF 用 に 拡 張 さ れ た ク ラ ス が106
中央農業総合研究センター研究報告52

第 20 号（2013. 11）

気象データ取得元設定画面
図 23（英語） AbstractModelUI （日本語）

実行結果表示画面

KTableFrame, KTable

KChartFrame, KChart

MultipleStationResultMap

図 28 JAMF を利用して構築した農業モデルのアプリケーション実行画面
メイン画面で実行期間を設定し，気象データ取得元設定画面（図 23）で実行地点の設定を行った後，メイン画面の実行ボタ
ンをクリックすると，モデルの実行結果が表，グラフ，地図で表示される．
各要素の Courier 体の文字列は，JAMF のインタフェース名やクラス名である．

JAMF で は， 複 雑 な JFreeChart を 容 易 に 利 用 で
き る よ う に 拡 張 し た JFCTimeSeriesChart とザに短時間で情報を伝えることができる (259)．
ま た， 地 図 イ ン タ フ ェ ー ス は 地 点 情 報 の 入 力

JFreeChartAttribute クラスや，複数のグラフといった利用法でも操作性において優れている．

提供している．

タベース－（地域）－地点」と階層的に 2 または 3を選択表示するための KChartFrame クラスなどを

MetBroker の気象観測地点を選択するために「デー段階の選択操作をしたり，緯度経度の値を入力した（3） 地図インタフェース

りするよりは，地図上でクリックして地点選択でき

農業モデルの実行には入力として気象データや圃る方が地点の位置を確認でき，素早く行える．

場に関するデータを必要とするため，入力データをJAMF の 地 図 イ ン タ フ ェ ー ス 関 連 の ク ラ ス は基に計算した出力データと共に，地点と関連づけら

gui.map パッケージにまとめられている．農業モ

れるデータを扱うことが多い．農業モデルが扱う地

デルの結果データの数値，日付，時系列データはと点と関連づけられた数値や日付といった情報をユー

もに MultipleStationResultMap クラスによっ

ザに直感的に示す方法として地図インタフェースがて地図上に表示できる（図 28）．

ある．地図インタフェース上に一度に表示できる情JAMF 用の地図は ChizuBroker (178) から取得され報は，表やグラフで表示する場合と比べて制約を受る．ChizuBroker は，指定された緯度経度を中心とけることがあるが，視認性において優れており，ユー

する地図画像を提供する中間アプリケーションであ田中慶：農業シミュレーションモデルにおける分散協調システムのためのフレームワークに関する研究

53

る．ChizuBroker は MetBroker と同様，
インターネッ

さらに，農業モデルの機能ごとにプログラム行数

ト上で公開されている地図提供サービスとユーザがを見ていくと，主要部分であるモデル計算部分は，利用するアプリケーションの間にあって，ユーザの新規に開発されたプログラムのうち 66% を占め，

要求や地図画像を仲介する．開発者はアプリケー

開発者が主要部分の開発に専念できることを示してションで利用する地図画像を ChizuBroker 経由でいる．データ取得に関するプログラムは，フレーム取得するように開発することにより，様々な地図提ワークの中で最も多い 44% を占めるが，新規に開供元から，統一的な手続きで地図画像を取得できる

発したプログラムでは 4% にすぎず，データ取得部

ようになる．しかし，地図提供者は著作権の関係か分に関してはほとんど自動化できることを示していら地図画像の二次利用を禁止している場合が多いた

る．画面表示部分の行数の割合はどちらも 2 番目でめ，ChizuBroker は対応する地図サービスを増やす

あるが，フレームワークでは GUI コンポーネントことができず，成功しなかった．

のためのプログラムが主であるのに対し，新規に開発されたプログラムでは，モデルの画面レイアウト（4） 多言語対応

や，画面を操作したときのイベント処理が主になっ農業モデルのアプリケーションが国内だけでなている．

く，広く海外でも利用されるためには，画面の表示

フレームワークを利用する利点は開発行数の削減

言語が日本語だけでなく，最低限，英語表示に切りだけではない．気象データ取得のために MetBroker

替えられることが望ましい（図 28）．

を利用するには，MetBroker を利用する手順を学Java にはユーザの実行環境（システムや Web習する必要がある．また，結果を表示するための表，

ブラウザの言語設定）に応じてアプリケーショ

グラフや地図を利用するためにも，それぞれの GUI

ンの表示言語を自動的に切り替えることができコンポーネントの利用方法を学習し，モデルのプロ

る， 多 言 語 対 応（Internationalization; i18n） の た

グラムが保持するデータとそれらへの入力データのめの ResourceBundle クラスが提供されている．

変換方法についても考慮する必要がある．フレーム

JAMF では，農業モデルでよく利用される言語リワークの利用により，これらの学習のための時間を

ソースを用意した ModelResourceBundle クラス

節約できる．さらに，フレームワークが機能拡張さを util パッケージで提供している．

6.

アプリケーション構築

すでに JAMF を利用して 20 以上の農業モデルのアプリケーションを構築した（表 9）．その経験から JAMF の機能と有用性の検証を行う．
FORTRAN で書かれていた葉いもち感染好適日(81)れた場合には，JAR ファイルの更新だけでその恩恵を受けることができる．

7.

考察

本章では，先ず 3 つの農業モデル開発グループ

それぞれによる農業モデルの構造の研究と，開発言語選択の検討を行った後，農業モデルを Web アプ

を，農業モデル用フレー

リケーションとして実装するための農業モデル用フムワーク JAMF を利用して，MetBLASTAM（図レームワーク JAMF を構築し，その利用により農28）として Java に移植したときのプログラム行

業モデルのプログラム開発効率と拡張性が高められ数（コメント行を除く）の比較を行った（表 10）．

たことを示した．

JAMF を利用して MetBLASTAM 用に新たに記述「成長の限界」に触発されて始まった農業モデル

したプログラム行数は 960 行であった．このプロのプログラム開発において，1970 年代（図 1 の初グラムが呼び出した JAMF 内のプログラム行数は期まで）は DYNAMO や CSMP などのシミュレー

17,361 行であった．JAMF を利用することにより，ション言語が利用された．その後 FORTRAN で新規のプログラム開発行数を全体の 5% で済ますこの開発環境が普及すると，1980 年代の多くの農業とができた．このことは，JAMF の利用が 95% 分

モデルは FORTRAN で実装されるようになった．

の開発工程を省いたとも，また，17,361 行分のプロ

1990 年代（図 1 後半）に実装が始まった農業モデ

グラムを再利用できたともいえる．

ルのうち，それ以前のプログラム資産を引き継ぐ農推定モデル BLASTAM

107
中央農業総合研究センター研究報告54

第 20 号（2013. 11）

表 9 JAMF を利用して構築した農業モデルのアプリケーション一覧 (248)
農業モデル名108

内容SIMRIW (95,97,260)
JAPONICA (79,246,80)
RiceHeadingMaturity (229)
RiceDVI (305)
MetBLASTAM (81,250)
WheatHeading (145)
WheatRipening (130)WheatDuthie (47)PearSugiura (233)
PearDuthie (47)
PearMills (155,141)
InsectDVR (117,291)
WeedEmergence (247)
WeedDamage (247)
SunRiseSet (118)
SolarRadiationKuwagata (146)
LeafWetnessOhtani (193)
LeafWetnessSuzuki (245)
SWEB（Surface Wetness Energy Balance）(143)
PaddyWaterTempKuwagata (131)
MetBrokerDemo (133,255)

水稲生育予測モデル

葉いもち感染好適日推定モデル
小麦の出穂期予測モデル
小麦の出穂期・成熟期予測モデル
小麦赤かび病予察モデル
ナシの開花日・収穫期・果実体積予測モデル
ナシの黒星病・黒斑病発生予察モデル
昆虫の世代推定モデル
雑草発生予察モデル
雑草害予測モデル
日出・日没・夜明・日暮計算
全天日射量推定モデル
葉の濡れデータ推定モデル
水田の水温データ推定モデル
気象データ表示

表 10 JAMF を利用して構築された MetBLASTAM のプログラム行数

モデル計算部分
データ取得部分
画面表示部分
多言語対応部分
合計

JAMF を利用してMetBLASTAM 用に新規に作成されたプログラム行数
636 行 （66%）
39 行 （4%）
251 行 （26%）
34 行 （4%）
960 行 （100%）

MetBLASTAM が呼び出した JAMF 内のプログラム行数
2296 行 （13%）
7612 行 （44%）
6689 行 （39%）
764 行
（4%）
17361 行 （100%）

MetBLASTAM が呼び出した JAMF 内のプログラムとは，JAMF を利用しなければ開発する必要があったプログラムと考えることができる．または，複数の農業モデルを実装する場合に再利用されるプログラムと考えることもできる．
MetBLASTAM のプログラム行数は，MetBLASTAM 用に新規に作成された 960 行 + MetBLASTAM から呼び出された JAMF
内の 17361 行で，18321 行である．JAMF を利用することにより，MetBLASTAM のために新規に作成するプログラムは，全体の 5.2%で済む．
プログラム行数はコメント行を除いた行数である．

業モデルでは FORTRAN が使い続けられた．それ

農業機械などの他の分野に比べ，先端技術を試行錯以外の新規に実装された農業モデルは，オブジェク

誤しながら積極的に利用してきたことである．農業

ト指向プログラミングによる保守性の高さの利点をシミュレーションモデル実装に利用したプログラミ

享受するために，C++ や Java などのオブジェクト

ング言語は，そのときの主流な言語が選択され，そ指向言語で実装されるようになった．AMADIS のの変化は主要なプログラミング言語の推移（図 12）

構成要素開発においても Java が広く用いられた．

と重なっている．増殖情報ベースプロジェクトの開農業情報分野における情報技術の利用の特徴は，始時には，登場して間もなかったがオブジェクト指田中慶：農業シミュレーションモデルにおける分散協調システムのためのフレームワークに関する研究

55

向言語として注目されつつあった Java が標準開発

タを利用でき，必要に応じて未来予測のために平年言語として選択された．また，分散オブジェクトの値や，未観測データの代わりに気象モデルによる推実装に，登場間もない HORB や Java RMI を利用

定データや，ユーザにより観測されたデータを利用

した．

できる．

本研究では AMADIS のシステム全体としてのJAMF のモデルデータクラスは農業モデルが扱機能を検証するために，AMADIS の構成要素としう真偽値，数値，日付，時系列値を効率的に処理し，て，プロトタイプとなるいくつかの農業モデルを短設定画面や結果表示画面などのユーザインタフェー

期間に実装する必要があった．参考文献に書かれスの自動的な構築に貢献する．オブジェクト指向言た数式から農業モデルの計算部分を実装したもの

語のインタフェースを利用したカプセル化の特徴をもあるが，多くは FORTRAN や BASIC で実装さ生かし，データのアクセスは公開されたメソッドのれ，レガシー化していたプログラムの Java への移利用に限定されている．これにより安全性と，ユー植によって実装された．もとのプログラムを利用し，

ザインタフェース関連プログラムの再利用性を高め

Java Native Interface（JNI）などを利用したラッパーている．

プログラムで対応する方法もあったが，メソッドやJAMF を利用することにより，アプリケーション

データのマッピングを個々の農業モデル用に行わな

開発者は主にモデルの計算部分のプログラム開発のければならなかったため，短期間に確実に行える，

みで，農業モデルを Web アプリケーションとしてモデル計算部分を Java に移植する方法を選択した．

実装可能になった．その効果は〈III.6〉（表 10）に農業モデルの計算部分は個々のモデルで異なる示した通りである．プログラム行数の割合で示すと，が，農業モデルの実行の流れ（図 20），モデル実行MetBLASTAM のために新規に開発したプログラ

エンジン（図 27），気象ジェネレータ（図 21），デー

ム行数は全体の 5.2% で，残りは JAMF のライブラ

タ構造（図 25），
各種設定や結果表示のための GUI（図リ内のプログラムが呼び出されていた．これは今後28）に関するプログラムはほぼ共通している．これ

新しい農業モデルを実装する場合に，すべてを開発

らのプログラムをまとめ，本研究の目的の 1 つであする場合の 5% 程度のプログラム記述量で済ますこる農業モデル用フレームワーク JAMF を構築した．

とができることを示している．

農業モデル開発グループによる農業モデル

さ ら に，JAMF を 利 用 す る こ と に よ り，は 1990 年 代 の 同 時 期 に 影 響 し 合 い な が ら 実

MetBroker アクセス，グラフ，表，地図などの複装 さ れ た た め， プ ロ グ ラ ム 構 造 に 共 通 点 が 多

雑な GUI コンポーネント操作や，そこに表示する

い．Wageningen グ ル ー プ の FSE ド ラ イ バ（ 図

時系列データ操作といった処理を自動化できた．そ15），IBSNAT グ ル ー プ の DSSAT-CSM（ 図 17），のため，アプリケーション開発者がそれらについて

APSRU グループの APSIM エンジン（図 19）のい

学習する時間を省け，農業モデルのプログラム開発

ずれも，モデル実行エンジンとリンクした作物モデが容易になった．フレームワークである JAMF がルや病害虫モデルのモジュールに対し，終了条件を機能拡張された場合には，そのプログラムライブラ

満たすまで時間ループ内で計算，集計を繰り返し実リの JAR ファイルを更新するだけで，改良された

行する．JAMF のモデル実行エンジンもこれらと機能を農業モデルアプリケーションに反映させるこ

同様な機能を持つように設計，実装を行った．

とができる．特定の農業モデル用に機能拡張する必JAMF の気象ジェネレータは農業モデルが利用す

要があれば，個々の農業モデルのプログラムの中でる気象データを，データ取得元である MetBroker，ライブラリ内のクラスに対する拡張をすることで対平年データ，推定データ，ユーザデータから取得

応できる．

し，実行用に加工する．特に，アプリケーション開JAMF を利用して約 20 の生育予測モデルや病害発者に負担を強いることなく，国内外の多くの気象虫発生予察モデルなどを実装することにより，多様データベースを利用可能とする MetBroker を利用

な農業モデル Web アプリケーション構築に利用でしていることが特徴である．気象ジェネレータによきることを示した．ドキュメントの整備された農業

り，MetBroker 経由で世界中の気象観測地点のデーモデルで，複雑なユーザインタフェースを必要とし中央農業総合研究センター研究報告56

第 20 号（2013. 11）

なければ，1 ～ 2 日間で AMADIS の構成要素とな

ターネット上で公開し，いくつかの試験場での生育

る Web アプリケーションを構築できた．また，開予測や病害虫発生予察に利用されてきたことによ発した Web アプリケーションを数年にわたりイン

り，長期の安定運用を行えることが示された．

III.
1.

Ⅳ．AMADIS 要素間連携手法

はじめにが構築された．

農業モデルが AMADIS の構成要素として機能し，本章では，最初に農業モデル間のメッセージ交換

相互に作用する連携を行うためには，分散オブジェ

手法について検討する．次に農業モデルにメッセークトとしてネットワークを通し，他の農業モデル

ジ交換機能を持たせるために，〈III〉で構築した農とメッセージ交換を行えなければならない．JAMF

業モデル用フレームワーク JAMF を改良する．まを利用した農業モデルでは，モデル実行エンジンがた，農業モデルを Java サーブレット化するのに合中心となり，各農業モデル間の連携を実現している．

わせて，Ajax を利用した優れた操作性や地図イン

各農業モデルと JAMF のモデル実行エンジンの間タフェースなどを持たせる．最後に改良した農業モには，クライアントであるモデル実行エンジンが，デル用フレームワークを利用して実アプリケーショ

サーバである農業モデルを呼び出す，クライアント・ンを構築し，その有用性を示す．

サーバ（Client-server; C/S）モデルの関係が構成されている．しかし，JAMF により Java アプレット
として実装された農業モデルを，セキュリティ対策

2.

メッセージ交換

AMADIS の各要素はインターネット上に分散しがなされたネットワーク上に分散させて運用するこて存在しているので，要素間のリクエストや結果はとは難しく，そのための改良が必要である．

メッセージ交換（Message Exchange）によって行

ユーザインタフェースにおいては，JavaScript とわれる．

CSS（Cascading Style Sheet） を 利 用 し て 動 的 な

JAMF の構築に利用した Java は，登場時からネッWeb ページを作成できる DHTML の登場により，トワークやマルチスレッドを利用するためのクラス

Java アプレットや Flash を利用しなくても，表現ライブラリが含まれていたので，分散処理プログラ

力が高く，操作性の良い Web アプリケーション

ムの開発に適していた．農業モデルを Java アプレッを構築できるようになった．同時に Java の役割はトとして実装していた当時には，メッセージ交換にJava アプレットやスタンドアロンアプリケーショ

はソケット，CORBA，Java RMI などが検討され，ンを構築することから，Java サーブレットなどの

主に Java RMI が利用されていた．Java サーブレッ

サーバサイドプログラムを構築することに遷移してトによる Web アプリケーションとしての実装が中いった．Java はもともとネットワークや XML 文

心となると，その後登場した SOAP，REST，GWT

書を扱うプログラム開発が容易だったために，Web

RPC などが検討された．

アプリケーション開発言語としての不動の地位を確立していった．

図 29 に示したいくつかのメッセージ交換手法のサンプルプログラム示し，AMADIS の構成要

Ajax の登場は，画面遷移を必要としない Web ア

素間の通信に適した手法を選択する．サンプルプ

プリケーション構築を可能にした．それにより，ス

ログラムでは，クライアントからサーバに対し，

タンドアロンアプリケーションと同様な操作を行え

気象データ取得用リクエストがテキストまたはる，多くの Web アプリケーションが登場した．さStationMetRequest オブジェクトとして送信さらに，複数の Web サービスを組み合わせて，よりれ，サーバで MetBroker から気象データを取得し魅力的な Web サービスを構築するマッシュアップ

た後，サーバからクライアントに対し，テキストま（Mashup）の手法が提案された．特に Google マッ

たは StationDataSet オブジェクトとして送信さ

プと位置情報を持つデータの組み合わせは効果的で，多くの優れたマッシュアップアプリケーション

れる．メッセージとして送受信可能なオブジェクトの条件はシリアライズ化可能（Serializable イ

109
田中慶：農業シミュレーションモデルにおける分散協調システムのためのフレームワークに関する研究

サーバ
プログラム
ソケット

クライアントプログラム（図 31）

SocketServer
CORBA

Station
MetRequest

Java RMI

Station
DataSet

SOAP

SocketClient（図 32）RMIIIOPServer
MetBroker から
気象データを取得するプログラム（図 30）

57

RMIIIOPClient（図 33）
RMIClient

RMIServer（図 34）

WSService

WSClient

GWT RCP （図 43）
GWTService

GWTClient
インターネット

図 29 様々なメッセージ交換手法
簡単のために，サーバでは計算などを行わずに，MetBroker から取得した気象データをそのままクライアントに返している．

ンタフェースを実装）であることである．メッセー

スを用いないため，クライアント側で受信したオブジをオブジェクトのまま送信できるか，テキストにジェクトを利用する前に，型検査が必要である．ま変換して送信しなければならないかは，メッセージ

た，サーバで複数のクライアントからの要求を同時交換手法による．図 30 はサンプルプログラムのサーに処理できるようにするためには，スレッドを利用

バにおいて，MetBroker から気象データを取得すする必要がある（図 31）．

るためのクラスである．気象データオブジェクト

StationDataSet は dumpDuration() メ ソ ッ ド

により CSV 形式のテキストに変換できる．

2） CORBA

Common Object Request Broaker Architecture（CORBA）は，ネットワーク上の分散環境でのオ

1） ソケット

ブジェクト間通信をサポートするためのミドルウェ

ジに含まれるサーバ用の ServerSocket とクライ

Object Management Group（OMG）によって標準ソケットを利用したメッセージ交換プログラムを容プンな仕様であり，複数の環境や言語の混在した分易に開発できる．

散アプリケーションを構築できる．また，
アプリケー

Java の登場時から存在する java.net パッケー

アント用の Socket クラスを利用することにより，

ソ ケ ッ ト 通 信 で は int や double な ど のア 基 盤 技 術 で あ る (188,192)．CORBA は 標 準 化 機 構化が行われている (190)．環境や言語に依存しないオーションから利用可能なサービスが豊富に用意されてプ リ ミ テ ィ ブ 型 と 文 字 列 の 他 に， シ リ ア ラ イ

おり，高機能な分散アプリケーション構築が可能で

ズ 化 可 能（Serializable） な オ ブ ジ ェ ク ト もある．

ObjectOutputStream と ObjectInputStream

CORBA の異なる ORB 間のメッセージ交換のプ

クラスを利用することにより送受信可能である．他

ロトコルとして Internet Inter-ORB Protocol（IIOP）のメッセージ交換手法のようにサーバインタフェーが利用されている．しかし，実際のネットワーク運

中央農業総合研究センター研究報告58

第 20 号（2013. 11）110

import java.text.*;
import java.util.*;import net.agmodel.physical.*;import net.agmodel.weatherData.*;public class SimpleMetBroker{
public static final String REQUEST = "start:2010/4/1,end:2010/5/1,elements:airtemperature,rain,
resolution:daily,sourceid:amedas,stationid:40336";//気象データを返します．
public StationDataSet getData(String request){
try{
return getData(createStationMetRequest(request));}catch(Exception e){e.printStackTrace();return null;}}//気象データを返します．
public StationDataSet getData(StationMetRequest smr){
MetBrokerHTTP broker = null;
String sessionID = null;try{//MetBroker に接続
broker = new MetBrokerHTTP("www.agmodel.org", 80);
Locale locale = Locale.getDefault();
String language = locale.getLanguage();
String country = locale.getCountry();
String encoding = System.getProperty("file.encoding");sessionID = broker.getConnection("test", language, country, encoding);//気象データを取得
return broker.supplyMetData(sessionID, smr);}}
catch(Exception e){e.printStackTrace();return null;}
finally{if(broker != null){try{broker.disconnect(sessionID);}
catch(Exception e){}}}//文字列から StationMetRequest を生成します．
public StationMetRequest createStationMetRequest(String request) throws ParseException{...
return new StationMetRequest(interval, elements, resolution, sourceID, stationID, true, false);}}//デフォルトの StationMetRequest を生成します．
public StationMetRequest createStationMetRequest(){...
return new StationMetRequest(interval, elements, resolution, sourceID, stationID, true, false);}

図 30 メッセージ交換プログラムで利用される気象データ取得プログラム
コンパイル方法 javac -classpath genericbroker.jar SimpleMetBroker.java田中慶：農業シミュレーションモデルにおける分散協調システムのためのフレームワークに関する研究

59

111

//ソケットサーバ用クラス SimpleSocketServer.java /////////////////////////////////////////
import java.io.*;import java.net.*;import net.agmodel.weatherData.StationDataSet;
public class SimpleSocketServer{
public static final int SOCKET_SERVER_PORT = 10000;}//受付ポート

public static void main(String[] argv) throws Exception{
ServerSocket serverSocket = null;try{//受付ポートを指定して，serverSocket = new ServerSocket(SOCKET_SERVER_PORT);//サーバソケットを作成
while(true){
Socket socket = serverSocket.accept();//クライアントからの接続待機
SocketServerMain serverMain = new SocketServerMain(socket); //スレッドでクライアント処理
serverMain.start();}}catch(IOException e){e.printStackTrace();}finally{try{
if(serverSocket != null)serverSocket.close();//サーバソケットの終了}
catch(IOException e){}}}//クライアント処理用スレッドクラス
class SocketServerMain extends Thread{
private Socket socket;
private SocketAddress address;
public SocketServerMain(Socket socket){this.socket = socket;
this.address = socket.getRemoteSocketAddress();}
public void run(){try{//クライアントから MetBroker へのリクエストオブジェクトをメッセージとして取得
ObjectInputStream in = new ObjectInputStream(socket.getInputStream());
StationMetRequest smr = (StationMetRequest)in.readObject();//MetBroker から気象データ取得
SimpleMetBroker mb = new SimpleMetBroker();
str = mb.getData(smr);//クライアントへ気象データオブジェクトをメッセージとして送信
ObjectOutputStream oos = new ObjectOutputStream(socket.getOutputStream());
oos.writeObject(sds);}}}
catch(IOException e){e.printStackTrace();}finally{try{
if(socket != null)socket.close();}catch (IOException e){}}

図 31―1 Socket によるメッセージ交換のサーバとクライアントのコード

112
中央農業総合研究センター研究報告60

第 20 号（2013. 11）//ソケットクライアント用クラス SimpleSocketClient.java /////////////////////////////////////
import java.io.*;import java.net.*;import java.text.*;
import net.agmodel.weatherData.StationDataSet;
public class SimpleSocketClient{public static final int SOCKET_SERVER_PORT = 10000;
public static void main(String args[]){String host = (args.length < 1) ? "localhost" : args[0];Socket socket = null;
SocketAddress address = null;try{
socket = new Socket(host, SOCKET_SERVER_PORT);
address = socket.getRemoteSocketAddress();//サーバの受付ポート//サーバに接続//MetBroker へのリクエストオブジェクトをメッセージとしてサーバへ送信
ObjectOutputStream out = new ObjectOutputStream(socket.getOutputStream());
SimpleMetBroker mb = new SimpleMetBroker();
StationMetRequest smr = mb.createStationMetRequest();out.writeObject(smr);//サーバから気象データオブジェクトをメッセージとして受信
ObjectInputStream is = new ObjectInputStream(socket.getInputStream());
StationDataSet sds = (StationDataSet)is.readObject();
DateFormat df = new SimpleDateFormat("yyyy/M/d");String str = sds.dumpDuration(df, ",", "¥n", "日時", "-");}}}
catch(Exception e){e.printStackTrace();}finally{try{
if(socket != null)socket.close();}catch (IOException e){}}//サーバとの接続終了

図 31―2 Socket によるメッセージ交換のサーバとクライアントのコード
コンパイル方法 javac –classpath .;genericbroker.jar SimpleSocket*.java
実行方法 （サーバ起動）
java –classpath .;genericbroker.jar SimpleSocketServer（クライアント実行） java –classpath .;genericbroker.jar SimpleSocketClient

用環境では HTTP しかファイアウォールを通過でる．

きないように設定されていることが多いため，個別

RMI と異なるところは，リモートインタフェース

対応の可能な限定されたユーザ向けのシステム以外の実装クラスを作成すること，
rmic を -iiop オプショ

では，IIOP を利用してインターネット上で稼働す

ン を 指 定 し て 実 行 し，_SimpleRMIIIOPImpl_

る分散システムを構築することは難しい．

Tie と _SimpleRMIIIOPInterface_Stub クJava による CORBA サーバやアプリケーション

ラスを生成しておくこと，rmiregistry の代わりに構築は，図 32 に示されるように Remote Method

ネ ー ム サ ー ビ ス Object Request Broker Daemon

Invocation over Internet Inter-ORB Protocol（RMI-（ORDB）を起動することである．

(237)

．Java

CORBA の複雑さを解消するために，最初の Java

Remote Method Protocol（JRMP）をトランスポー

ベースの分散オブジェクト技術として HORB (89) が，トとして使用して Java 言語だけで開発することも，

電子技術総合研究所（現 産業技術総合研究所）でInternet InterORB Protocol（IIOP）を使用して他開発された．CORBA と比べると分散処理のためのの CORBA 対応言語を併用して開発することもでき

コード変更が少ない．

IIOP） を 利 用 す る こ と で 可 能 で あ る113
田中慶：農業シミュレーションモデルにおける分散協調システムのためのフレームワークに関する研究

61//リモートインタフェース SimpleRMIIIOPInterface.java //////////////////////////////////////////
import java.rmi.*;import net.agmodel.weatherData.*;public interface SimpleRMIIIOPInterface extends Remote{
StationDataSet getData(StationMetRequest smr) throws RemoteException;}//リモートオブジェクトの実装クラス SimpleRMIIIOPImpl.java ///////////////////////////////////////
import java.rmi.RemoteException;
import javax.rmi.PortableRemoteObject;import net.agmodel.weatherData.*;public class SimpleRMIIIOPImpl extends PortableRemoteObject implements SimpleRMIIIOPInterface{public SimpleRMIIIOPImpl() throws RemoteException{
super();//invoke rmi linking and remote object initialization}}

public StationDataSet getData(StationMetRequest smr) throws RemoteException{
SimpleMetBroker mb = new SimpleMetBroker();
return mb.getData(smr);}//RMI サーバー用クラス SimpleRMIIIOPServer.java /////////////////////////////////////////////////リモートオブジェクト実装のインスタンスを作成し，ネームサービスの名前にバインドする
import javax.naming.*;
public class SimpleRMIIIOPServer{
public static void main(String[] args){
try{//Step 1: Instantiate the SimpleRMIIIOP servant
SimpleRMIIIOPImpl ref = new SimpleRMIIIOPImpl();//Step 2: Publish the reference in the Naming Service using JNDI API
Context initialNamingContext = new InitialContext();
initialNamingContext.rebind("SimpleRMIIIOPService", ref);System.out.println("SimpleRMIIIOP Server: ready");}}}
catch(Exception e){e.printStackTrace();}

図 32―1 RMI-IIOP によるメッセージ交換のサーバとクライアントのコード

3） Java RMI

RMI 関連のクラスは java.rmi パッケージにまと

分散オブジェクト同士のメッソドのやりとりを，普ラ rmic によって，あらかじめリモートオブジェク

通のオブジェクトのメソッドの呼び出しと同様に行

トのスタブ（Stub）とスケルトン（Skelton）クラえるようにする仕組みで，JDK1.1 から導入されたスを生成しておく必要があったが，J2SE 5.0 から不(241)要となった．

Java Remote Method Invocation（Java RMI）は．内部ではソケットを利用しているが，通信にめられている．初期の頃は，RMI スタブコンパイ

関する高度な知識がなくても，容易にネットワーク

リモートオブジェクトの参照はネームサービス

アプリケーションを構築できるようになっている．

rmiregistry によって管理されている．RMI サーバ

RMI を利用した分散システムは，リモートからが自分自身の存在するホストのネームサーバに対し呼び出すメソッドを定義した Remote インタフェーてリモートオブジェクトへの参照を登録することにスを継承したリモートインタフェース，それを実装

より，クライアントはリモートオブジェクトの参照

した RMI サーバ用クラス，RMI クライアント用クを得ることができ，リモートメソッドを呼び出すこラスの 3 つのプログラムから構成される（図 33）．

とができる．

114
中央農業総合研究センター研究報告62

第 20 号（2013. 11）//クライアントアプリケーション用クラス SimpleRMIIIOPClient.java ////////////////////////////////////リモートメソッド getData()を呼び出す
import java.text.*;
import javax.rmi.PortableRemoteObject;import javax.naming.*;
import net.agmodel.weatherData.*;public class SimpleRMIIIOPClient{public static void main(String args[]){try{
Context ic = new InitialContext();//STEP 1: Get the Object reference from the Name Service using JNDI call.
Object objref = ic.lookup("SimpleRMIIIOPService");
System.out.println("Client: Obtained a ref. to SimpleRMIIIOP server.");//STEP 2: Narrow the object reference to the concrete type and invoke the method.
SimpleRMIIIOPInterface hi = (SimpleRMIIIOPInterface)PortableRemoteObject.narrow(objref,
SimpleRMIIIOPInterface.class);
SimpleMetBroker mb = new SimpleMetBroker();
StationMetRequest smr = mb.createStationMetRequest();StationDataSet sds = hi.getData(smr);
DateFormat df = new SimpleDateFormat("yyyy/M/d");System.out.println(sds.dumpDuration(df, ",", "¥n", "日時", "-"));}}}
catch(Exception e){e.printStackTrace( );return;}

図 32―2 RMI-IIOP によるメッセージ交換のサーバとクライアントのコード
コンパイル方法 javac –classpath .;genericbroker.jar SimpleRMIIIOP*.java
rmic –classpath .;genericbroker.jar -iiop SimpleRMIIIOPImpl
実行方法 （ネームサービス起動）
start orbd -ORBInitialPort 1050
（サーバ起動）start java -classpath .;genericbroker.jar -Djava.naming.factory.initial=com.sun.jndi.cosnaming.
CNCtxFactory -Djava.naming.provider.url=iiop://localhost:1050 SimpleRMIIIOPServer（クライアント実行）
java -classpath .;genericbroker.jar -Djava.naming.factory.initial=com.sun.jndi.cosnaming.
CNCtxFactory -Djava.naming.provider.url=iiop://localhost:1050 SimpleRMIIIOPClient4） SOAP

ジ交換用のプロトコルで，主に Web サービスにおJava API for XML-based RPC（JAX-RPC） は，

けるメッセージ交換で利用されている．SOAP は

図 35 に示されるように Java アプリケーションから

v.1.2 以前は Simple Object Access Protocol の略で

Web Services Description Language（WSDL） であったが，現在では固有名詞となっている．SOAP記述された Java ベースの Web サービスを呼び出によるメッセージは，ルーティング，セキュリティ，(239)．当初は Remote Procedure

トランザクションなどのためのメタ情報を格納す

Call（RPC）に主眼が置かれて開発されていたが，る SOAP Header と，主要な情報を格納する SOAP

Web サービスでは RPC 以外にメッセージ交換でやBody から構成される SOAP Envelope により表現

り取りを行うことも多いため，メッセージ交換をされる．SOAP による通信では，XML 文書のメッ含めた Web サービスを扱えるように拡張された．

セ ー ジ を Hypertext Transfer Protocol（HTTP），

そ れ が 図 34 に 示 さ れ る Java API for XML Web

Simple Mail Transfer Protocol（SMTP），FileServices（JAX-WS）で，Java での SOAP の基盤とTransfer Protocol（FTP）などのプロトコルで交換すことを可能にしたして利用されている
SOAP

(284)

(242)

．

は状態を持たない，一方向のメッセーしている．サービスを利用するクライアントとサーバが SOAP の生成，
解釈エンジンを持つことにより，

田中慶：農業シミュレーションモデルにおける分散協調システムのためのフレームワークに関する研究

63

115

//リモートインタフェース SimpleRMI.java ////////////////////////////////////
import java.rmi.*;import net.agmodel.weatherData.*;public interface SimpleRMI extends Remote{
StationDataSet getData(StationMetRequest smr) throws RemoteException;}//RMI サーバクラス SimpleRMIServer.java ///////////////////////////////////
import java.rmi.*;import java.rmi.registry.*;import java.rmi.server.UnicastRemoteObject;import net.agmodel.weatherData.*;public class SimpleRMIServer implements SimpleRMI{
public StationDataSet getData(StationMetRequest smr){
SimpleMetBroker mb = new SimpleMetBroker();
return mb.getData(smr);}
public static void main(String args[]){try{
SimpleRMIServer obj = new SimpleRMIServer();
SimpleRMI stub = (SimpleRMI)UnicastRemoteObject.exportObject(obj, 0);//リモートオブジェクトのスタブをレジストリに登録
Registry registry = LocateRegistry.getRegistry();
registry.bind("SimpleRMI", stub);
System.out.println("SimpleRMIServer ready");}}}
catch(Exception e){e.printStackTrace();}//RMI クライアントクラス SimpleRMIClient.java //////////////////////////////
import java.text.*;
import java.util.*;import java.rmi.registry.*;import net.agmodel.weatherData.*;public class SimpleRMIClient{public static void main(String[] args){
String host = (args.length < 1) ? null : args[0];try{Registry registry = LocateRegistry.getRegistry(host);
SimpleRMI stub = (SimpleRMI)registry.lookup("SimpleRMI");
SimpleMetBroker mb = new SimpleMetBroker();
StationMetRequest smr = mb.createStationMetRequest();StationDataSet sds = stub.getData(smr);
DateFormat df = new SimpleDateFormat("yyyy/M/d");System.out.println(sds.dumpDuration(df, ",", "¥n", "日時", "-"));}
catch(Exception e){e.printStackTrace();}}}

図 33 Java RMI によるメッセージ交換のサーバとクライアントのコード
コンパイル方法 javac –classpath .;genericbroker.jar SimpleRMI*.java
実行方法 （RMI レジストリ起動）
start rmiregistry –J-classpath –Jgenericbroker.jar（サーバ起動）start java –classpath genericbroker.jar –Djava.rmi.server.codebase=file:./ SimpleRMIServer（クライアント実行）
java –classpath .;genericbroker.jar SimpleRMIClient

116
中央農業総合研究センター研究報告64

第 20 号（2013. 11）//Web サービス用クラス SimpleWS.java ////////////////////////////////////////////////////
package dissertation.ws;
import java.text.*;
import javax.jws.*;
import net.agmodel.weatherData.StationDataSet;@WebService
public class SimpleWS{@WebMethod
public String getData(String request){
SimpleMetBroker mb = new SimpleMetBroker();
StationDataSet sds = mb.getData(request);
DateFormat df = new SimpleDateFormat("yyyy/M/d");return sds.dumpDuration(df, ",", "¥n", "日時", "-");}}//Web サービス用クラス SimpleWSServiceLauncher.java ///////////////////////////////////////
package dissertation.ws;
import javax.xml.ws.Endpoint;
public class SimpleWSServiceLauncher{public static void main(String[] args){
Endpoint.publish("http://localhost:8888/simplews", new SimpleWS()); //Web サービスの公開}}//Web サービスクライアント用クラス SimpleWSClient.java //////////////////////////////////////
package dissertation.ws;
public class SimpleWSClient{public SimpleWSClient() {SimpleWSService service = new SimpleWSService();
SimpleWS port = service.getSimpleWSPort();String result = port.getData(SimpleMetBroker.REQUEST);
System.out.println(result);}}//Web サービスのポートを取得//Web サービスの実行

public static void main(String[] args){
new SimpleWSClient();}

図 34 JAX-WS によるメッセージ交換のサーバとクライアントのコード
コンパイル方法 cd dissertation¥ws
javac -classpath ..¥..;..¥..¥lib¥genericbroker.jar SimpleWS*.java
wsgen -d ..¥.. -classpath ..¥..;..¥..¥lib¥genericbroker.jar dissertation.ws.SimpleWS
cd ..¥..
サーバ起動
start java -classpath .;lib¥genericbroker.jar dissertation.ws.SimpleWSServiceLauncher
wsimport -d . http://localhost:8888/simplews?wsdl
実行方法
java -classpath ..¥.. dissertation.ws.SimpleWSClient

異なる環境間でのオブジェクト呼び出しが可能になしない XML 形式で，通信をファイアウォールによっる．SOAP の Java による実装として Apache Axisて遮られない HTTP で行っているため，Java RMI

2

(13)

がある．

と比べると動作速度は遅くなる．特に送受信する

Web サービスは，異なるアーキテクチャのアプ

データの構造が複雑かつ大量になると，XML の組

リケーションの相互運用を行えるという利点があ

み立て，パースといった処理でのパフォーマンス低る．しかし，情報を特定のプラットフォームに依存下が問題となる．

117
田中慶：農業シミュレーションモデルにおける分散協調システムのためのフレームワークに関する研究

65<?xml version="1.0" encoding="UTF-8"?><!-- Published by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.1.6 in JDK 6. --><!-- Generated by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.1.6 in JDK 6. --><definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://ws.dissertation/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/"
targetNamespace="http://ws.dissertation/" name="SimpleWSService"><types><xsd:schema><xsd:import namespace="http://ws.dissertation/"
schemaLocation="http://localhost:8888/simplews?xsd=1"></xsd:import></xsd:schema></types><message name="getData"><part name="parameters" element="tns:getData"></part></message><message name="getDataResponse"><part name="parameters" element="tns:getDataResponse"></part></message><portType name="SimpleWS"><operation name="getData"><input message="tns:getData"></input><output message="tns:getDataResponse"></output></operation></portType><binding name="SimpleWSPortBinding" type="tns:SimpleWS"><soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"></soap:binding><operation name="getData"><soap:operation soapAction=""></soap:operation><input><soap:body use="literal"></soap:body></input><output><soap:body use="literal"></soap:body></output></operation></binding><service name="SimpleWSService"><port name="SimpleWSPort" binding="tns:SimpleWSPortBinding"><soap:address location="http://localhost:8888/simplews"></soap:address></port></service></definitions>

図 35 図 34 で生成された WSDL ファイル

5） REST

Representational State Transfer（REST）

返す．JavaScript の eval 関数で簡単にオブジェク

はトに変換できる．XML と比べるとデータの転送量

HTTP を使って通信を行う手法で，HTTP の GETが少なくて済み，XML をパースする必要がないのメソッドを使って URL にアクセスすると XML が(52)

で高速に処理できる．JavaScript に特化したデータ．ある形式であるが，単純な処理で書き出しや読み込みをURL にアクセスして XML を得るという流れは，行えるため，他の多くのプログラミング言語で扱え

Web ブラウザが URL にアクセスして HTML を得る．

返ってくるものが REST と呼ばれている

るのと同じである．REST は Web ブラウザの Ajax
や，クライアントアプリケーションから使われることが多いが，サーバ間のシステム連携でも利用でき

6） 農業モデル連携手法

AMADIS の各要素はネットワーク上に分散し，る．REST の最大の特徴は，Web ブラウザに URL

各サーバのプラットフォームは様々であるため，要を入力すれば動作確認できることであり，テスト用

素間の連携は，情報を特定のプラットフォームに依

アプリケーション開発の手間を省略できる．

存しない XML 形式で，通信をファイアウォールに

JavaScript Object Notation（JSON）は REST とよって遮られない HTTP で行う，REST によるメッ

ほぼ同じだが，レスポンスとして XML ではなくセージ交換を基本とする（図 36）．ただし，ユーザ

JavaScript のオブジェクト表記法を使ったデータをインタフェースを Google Web Toolkit〈IV.3.3）
（5）
〉

118
中央農業総合研究センター研究報告66

第 20 号（2013. 11）

作物モデル
ユーザ
Web ブラウザ
Ajax

インター
ネット

モデル実行
エンジン

インター
ネット

メッセージ
GWT RPC, REST

メッセージ
REST

病害虫モデル
気象モデル

図 36 AMADIS 要素間のメッセージ交換
モデル実行エンジンとユーザインタフェース間のメッセージ交換には REST または GWT RPC を用いる．モデル実行エンジンと各モデル間のメッセージ交換には REST を用いる．

で開発する場合には，モデル実行エンジンとユーザ
インタフェース間の通信に GWT RPC を用いる．

1） Java サーブレット

Java サーブレット (244) は，サーバでデータを処理

農業モデル連携のための REST によるメッセー

し，動的な Web ページを生成するサーバサイドプ

ジ交換を実現するために，パラメータを指定した

ログラムである．サーブレットの登場以降，サーバ

URL によるリクエストに対し，結果を XML 形式

側で Java プログラムを稼動させるサーバサイドア

で返す REST アプリケーションとしての機能が必

プリケーション開発言語としての Java の利用が急要である．これは，Java アプレットとして実装さ速に進んだ．

れた農業モデルを，Java サーブレットとして実装
し直すことで実現できる．

サーブレットでも Web ページの HTML は生成できるが，静的な部分も含めてすべてを print()

メソッドで出力するのは煩雑で，拡張性，保守性が3.

サーバサイドアプリケーション低下する．MVC モデルの点からも，サーブレット

Web アプリケーションの操作性を低下させる原ではデータの入出力処理のみ行い，画面生成は JSP

因は，通信や画面遷移による待ち時間である．Javaが担当するように機能を分離するのが適当である．

アプレットのようにクライアントサイドで計算を行

JSP (243) を利用すると，静的な部分は HTML で，うと，農業モデルのプログラムや，農業モデルの計

動的な部分は Java で記述でき，画面デザインとプ算を行うために大量の気象データをサーバからクラ

ログラム開発の棲み分けが容易になる．さらに，プ

イアントへ送信する必要があり，農業モデルの実行

ログラム部分をライブラリとして，タグの記述で呼時間はユーザの通信環境や計算機環境に大きく依存

び出せるようにした JSP Tag Library（JSTL）をしていた．Java サーブレットようにサーバサイド

利用することにより，Web 画面開発効率を高めらで計算を行う場合，高性能なサーバで計算して実行れる．

時間を短縮し，少量の結果データのみを送信するこサーブレットや JSP を実行するのは Web コンテとにより通信時間を減らせる．また，Ajax は非同ナであり，Apache Tomcat (9) などがある．Tomcat

期通信と，DHTML による動的な表示内容の更新には Web サ ー バ と し て の 機 能 も 持 つ が，Apache

より，画面遷移の回数を減らすか，不要とする．

HTTP Server (8) ほ ど 速 く な く， 頑 健 で な い た

JAMF を用いて Java で実装した農業モデルのプ

め，実運用では Apache と連携させて利用される．

ログラムを利用しつつ，通信や画面遷移による待ちApache が HTTP リクエストを受け付け，必要に応時間を短縮できるのが，サーブレットとしての農業

じて Tomcat にリクエストが渡されて処理される．

モデル Web アプリケーションである．また，アプTomcat へ サ ー ブ レ ッ ト を 配 備 す る に は，

リケーションの出力を XML 形式にすれば，REST

webapps ディレクトリに Web Application Archive

アプリケーションとすることができる．

（WAR）ファイルを置くだけである．WAR ファ
イルには，サーバプログラム，画面表示用の JSP
ファイル，CSS ファイルや画像ファイル，サーブ田中慶：農業シミュレーションモデルにおける分散協調システムのためのフレームワークに関する研究

67

レットの動作を規定する配備記述子（Deployment

Web 上で場所を検索して地図を表示するサービス

Descriptor）web.xml ファイルなどが含まれ，ZIPが登場し，その利便性から同様の地図サービスが多形式でアーカイブされている．

数出現した．初期の地図サービスには表 11 のようなものがある．これらは主に国内の地図や地図ソフ

2） 地図サービストを開発していた会社によるものである．これらの圃場の位置と結びつけられる農業モデルは，気象サービスでは，Common Gateway Interface（CGI）

観測地点の選択や結果データの表示において地図イのパラメータで緯度，経度，ズームレベルを指定しンタフェースが必須である〈III.5.4）
（3）
〉
．地図デー

て，目的とする場所を表示する機能に限定されていタの取得には商用またはオープンソースの地図サーた (147)．しかも，Web ページから地図画像のみを取ビスを利用することになる．前者は使用料が高額でり出して再利用することが禁じられていた．
その後，表 12 のような Web 検索サービス大手にあり，後者としては 1996 年に Minnesota 大学によっ(144)がある．MapServer はよる地図サービスが相次いで公開された．これらは，オープンソースのソフトウェアであるが，商用のサービスをプログラムから利用するための API が

地図サービスに劣らない機能を持っている．Open

公開されていることが共通しており，そこが表 11

Geospatial Consortium（OGC）が公開している地の地図サービスと大きく異なるところである．縮尺

図画像提供標準インタフェースに対応していれば，に応じて表示する地図解像度の選択や，表示に必要て開発された MapServer

(186)

．

な範囲の地図の切り出しなどは，地図サービス側でしかし，機能の豊富さと自由度の高さがかえって利行われる．Google マップや Yahoo! 地図では UI コ
119
ンポーネントとして組み込むこともできる．そのた

ユーザのデータを自由に地図上に表示できる用対象ユーザを限定してしまっていた．

インターネットの利用が一般的になってくると，

め，この API を利用することにより，地図を利用

表 11 初期の主な Web 地図サービス
提供者
サイバーマップ・
ジャパン

サービス名

サービス開始時期

URL

マピオン

1997 年 4 月

http://www.mapion.co.jp/

インクリメント P

マップファン

1997 年 7 月

http://www.mapfan.com/

国土地理院

ウォッちず

2000 年 7 月 地形図
閲覧システムとして

http://watchizu.gsi.go.jp/

ゼンリンデータコム

いつもガイド2001 年 4 月
Do-map として

http://www.its-mo.com/

120

表 12 API が公開されている主な Web 地図サービス
提供者

サービス名

サービス
開始時期

URL
（下段は API ドキュメント）Minnesota 大学

MapServer

1996 年

http://mapserver.org/
http://mapserver.org/documentation.html

Google マップ

2005 年 2 月

http://maps.google.co.jp/
http://www.google.com/apis/maps/

Google Earth

2005 年 6 月

http://earth.google.co.jp/
http://earth.google.com/kml/kml_tut.html

Yahoo!

Yahoo! 地図

2005 年 11 月

http://map.yahoo.co.jp/
http://developer.yahoo.com/maps/

Microsoftbing 地図2005 年 12 月

http://bing.com/maps/
https://connect.microsoft.com/bingmapsapps

Google

68

中央農業総合研究センター研究報告第 20 号（2013. 11）

121<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml"><head><meta http-equiv="content-type" content="text/html; charset=utf-8"/><meta http-equiv="content-style-type" content="text/css" /><meta http-equiv="content-script-type" content="text/javascript" /><script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=..."
type="text/javascript"></script><script type="text/javascript">
var map, icon;
function init(){map = new GMap2(document.getElementById('map'));map.addControl(new GLargeMapControl());
map.addControl(new GMapTypeControl());
map.addControl(new GOverviewMapControl());
map.setCenter(new GLatLng(latitude, longitude), scale);createIcon();getStationData();}function createIcon(){//目印の準備var baseIcon = new GIcon();baseIcon.shadow = 'img/shadow.png';
baseIcon.iconSize = new GSize(12, 20);
baseIcon.shadowSize = new GSize(22, 20);
baseIcon.iconAnchor = new GPoint(6, 20);
baseIcon.infoWindowAnchor = new GPoint(5, 1);
icon = new GIcon(baseIcon);icon.image = 'img/pin.png';}
function getStationData(){//地点データを非同期に取得（Ajax による処理）
var request = GXmlHttp.create();request.open('GET', 'station.xml', true);
request.onreadystatechange = function(){if(request.readyState == 4){
var xmlDoc = request.responseXML;
var stations = xmlDoc.documentElement.getElementsByTagName('stations');for(var i=0; i<stations.length; i++){var latitude = parseFloat(stations [i].getAttribute('latitude'));var longitude = parseFloat(stations [i].getAttribute('longitude'));var point = new GPoint(longitude, latitude);var name = stations [i].getAttribute('name');var marker = createMarker(point, name);
map.addOverlay(marker);}}}
request.send(null);}function createMarker(point, name){
var marker = new GMarker(point, icon);GEvent.addListener(marker, 'click', function(){marker.openInfoWindowHtml(name);});
return marker;}</script></head><body onload="init()"><div id="map" style="width: 600px; height: 400px"></div></body></html>//地点データをもとに目印を生成

図 37 Google マップ上に地点情報を表示する HTML と JavaScript田中慶：農業シミュレーションモデルにおける分散協調システムのためのフレームワークに関する研究するアプリケーション構築が容易となった．

69

ラウザ用のプラグインのインストールを不要としながら，マウスによる直感的な操作で，滑らかに地図

3） Googleが表示されることが注目された．さらに，それが農業モデル用の地図インタフェースとして利用できうことでも注目された．

Google は，Google マップや Google Earth などのる Web サービスを含め，多くの Web サービスを提(68)

Ajax という既存の技術のみで実現されているとい
Google は同時に Google ローカルという，Google．
それらの API は公開されているので，が持つ膨大な地点情報を含むデータと地図を結Web アプリケーションから利用したり，気象デー

びつけるサービスも提供した．さらに，ユーザがタや農業モデルの結果データと組み合わせて，マッGoogle マップに目印，線や領域を自由に追加し，シュアップアプリケーションを構築したりできる．

他のユーザと Web 上で共有したり，重ねて表示しまた，Ajax アプリケーション構築を Java で行えるたりできるマイマップや，ルート検索，ストリート

Google Web Toolkit を提供している．

ビューなどのユーザの要求に応える地図用の新機能供しているを追加し続けている．

（1） Google マップ

Google マップの API (67) は公開されているので，Google マップ (66) は Google が提供する地図サービ

ユーザのデータを地図上に目印として表示したり，スである．これは地図，航空写真，地図 + 写真な目印をクリックしたときに吹き出しを表示させたどの方式で表示でき，全世界から道路名表示レベル

りできる．吹き出しに表示する内容は HTML 形式

までの 20 段階程度のズーム表示を行うことができで記述するため，他の Web ページへのリンクや画る．

像を入れることもでき，編集も容易である．Google

Google マップ以前の地図検索サイトの地図は，地図の周りに配置された移動ボタンや縮尺変更ボタ

マップを利用して地点情報を地図上に表示するHTML と JavaScript の主要部分を図 37 に示す．

ンをクリックすることにより，新しい地図画像をリ

Google マップを利用した地図インタフェースは，

ロードしていた．この方法は，毎回処理が終わるまJava サーブレット版農業モデル (248) で利用するためで操作が中断してしまうため，ユーザにストレスを122感じさせることがあった．Google
マップが公開さに開発された．図 38 は MetBroker が扱う気象観測

れると，Java アプレットや Flash といった Web ブプの地図を表示することに関しては，サンプルプ

地点選択に利用した実行画面である．Google マッ

図 38 Google マップを利用した気象観測地点選択用地図インタフェース
http://pc105.narc.affrc.go.jp/metbroker/

70

中央農業総合研究センター研究報告第 20 号（2013. 11）123<?xml version="1.0" encoding="UTF-8"?><kml xmlns="http://earth.google.com/kml/2.0"><Document><name>MetBroker 気象観測地点</name><open>1</open><Style id="orangeN"><IconStyle><scale>0.5</scale><Icon><href>img/orange.png</href></Icon></IconStyle><LabelStyle><scale>0</scale>
アイコン</LabelStyle>
スタイル</Style>・・・
情報<StyleMap id="orange"><Pair><key>normal</key><styleUrl>orangeN</styleUrl></Pair>・・・</StyleMap>
・・・<LookAt><longitude>135</longitude><latitude>38</latitude>
初期視点<range>8000000</range><tilt>0</tilt>
情報<heading>0</heading></LookAt><Folder><name>アメダス</name><LookAt>
データ<longitude>134.0</longitude><latitude>33.5</latitude>
ベース<range>3031665.0</range>
情報</LookAt><Folder><name>北海道</name><LookAt><longitude>142.5929946899414</longitude>
地域<latitude>43.471500396728516</latitude>
情報<range>664794.6089286384</range></LookAt><Placemark><name>宗谷岬</name><description>宗谷岬 (11001) <a href="http://.../">気象データ</a></description><Snippet></Snippet><LookAt><longitude>141.93499755859375</longitude><latitude>45.52000045776367</latitude>
地点<range>10000</range></LookAt>
情報<StyleUrl>#orange</StyleUrl><Point><coordinates>141.93499755859375,45.52000045776367,0</coordinates></Point></Placemark>・・・</Folder>・・・
階層構造</Folder>・・・</Document></kml>

図 39 Google Earth 上に地点を表示させるための KML データ

田中慶：農業シミュレーションモデルにおける分散協調システムのためのフレームワークに関する研究

71

ログラムを大きく変更する必要はないが，取得し表示される URL に「&output=kml」を追加すると，た XML データを処理し，目印や吹き出しの内容にGoogle マップで表示している内容を Google Earth

反映させるためには，JavaScript による Documentで表示できる．

Object Model（DOM）プログラミングが必要であ

図 39 は Google Earth 上に地点情報を表示する

る．サンプルプログラムでは目印の表示のみであった め の KML デ ー タ の 一 部 で あ る．KML デ ー タ

たが，パスやポリゴンを描画する API も提供されは XML のルート要素である Document 要素の中ている．年々，安定性と処理速度の向上が図られているが，地図上に大量の目印を表示するときには，処理に長時間かかったり，動作が不安定になったりするため，その対策が必要になる．

Google Earth，LookAtる．各 Folder 要素は name 要素（名前）要 素（ 視 点 ） を 持 っ て い る． 末 端 の Folder 要

素 は さ ら に Placemark 要 素（ 目 印 ） を 持 っ て

い る．Placemark 要 素 は 目 印 の name 要 素（ 名（2） Google Earth(69)の Folder 要素が階層構造になって構成されていは衛星写真や航空写真の地図デー

タをストリーミング表示するためのスタンドアロンのソフトウェアである．衛星写真の上に目印やポリ，
前），coordinates 要 素（ 緯 度， 経 度， 高 度 ）StyleUrl 要素（アイコン形式）や description

要素（クリックされたときに表示される吹き出しの内容）が記述された各要素を持っている．

ゴンを描画したり，吹き出しを表示したりできるこ

図 39 のような地点情報を繰り返していくことにとは Google マップと同様であるが，データに高度より，Google Earth を利用した MetBroker の気象や日時を関連づけて表示したり，鳥瞰する視点を観測地点選択用地図インタフェース（図 40）を構設定したり，複数の KML ファイルや，ネットワー

築できる．地球上に多数描画された点が気象観測地

クを通じて得られる様々な種類のデータをレイヤ

点であり，クリックすると気象観測地点の情報と，として重ねて表示できる．また，Google マップは気象データ取得アプリケーションへのリンクが含ま

JavaScript のプログラムによりデータを加工し，地れた吹き出しが表示される．MetBroker が扱う 2.3

図上に表示するデータレイヤを構築するのに対し，万ヶ所の気象観測地点（GD-DR&TR を除く）を表

Google Earth では KML 形式のデータによってデー124
タレイヤを構築する．Google マップとの連携も図示する KML ファイルは 33 万行になり，ファイル

られ，Google マップのページにある「リンク」できい場合やアイコン画像を含める場合は，ZIP ファ

サイズは 17MByte であった．ファイルサイズが大図 40 Google Earth を利用した気象観測地点選択インタフェース
http://pc105.narc.affrc.go.jp/metbroker/kml/metbroker_ja.kmz

中央農業総合研究センター研究報告72

第 20 号（2013. 11）

イルとして圧縮してまとめられた KMZ ファイルとURL で指定されたリンク先のサーバで KML デー

して扱う．この場合，ファイルサイズは 1.2MByte

タが動的に生成され，Google Earth に返されて表示になった．KML ファイルや KMZ ファイルは Webされる．

ページのリンク先に指定することにより，クリック
したときに Google Earth を起動して表示させるこKML データの Folder 要素内のデータの有効期間を設定する TimeSpan 要素を利用することにより，Google Earth で時系列データをアニメーションとができる．
Keyhole Markup Language（KML） は Keyhole

表示できる．図 42 はユーザが指定した期間の気象（2004 年に Google により買収された）によって仕データを MetBroker から取得し，動的に KML デー

様が決められた XML 形式のデータである．2008 年

タを生成するサービスによって，Google Earth 上に

4 月に地理情報を記述する OGC 標準の 1 つとしてアニメーション表示している画面である．

承認された．詳しい仕様がドキュメント(70,187)として公開されているので，ユーザが独自のデータを加（3） Ajax

工して，地図上に目印を表示したり，目印をクリッ

Ajax (60) とは Asynchronous JavaScript + XML という既存の技術の組み合わせに対して付けられた名クしたときに吹き出しを表示したりできる．
Google Earth 上に表示できるオブジェクトは目前である．Ajax は Google マップ上にユーザのデー

印以外に，パスやポリゴンもある．さらに CAD でタを表示する（図 37）ときのデータ取得手法とし作成した 3D オブジェクトの表示も可能であり，3Dても利用されるため，Google マップを利用したア

(71)

も提

プリケーション構築には欠かせない技術である．

供されている．大量の目印を表示させることも問題

Ajax の動的な画面表示は次のように実現されていなく，MetBroker が扱う 2.3 万ヶ所の気象観測地点

る．

を表示しても，データの読み込みから表示までも数

１．JavaScript の XMLHttpRequest を 利 用 し た 非秒であった．

同期通信により，
XML データをサーバから取得する．

モデリングツールである Google SketchUp

最新のデータやユーザの要求に応じたデータを動的に KML データとして生成し，Google Earth で

２．JavaScript で CSS や DOM を動的に変更して，データを Web ページに反映させる．

表示するためにネットワークリンク機能がある．図41 はネットワークリンク機能を利用した KML ファイルである．NetworkLink 要素は Url 要素を持ち，（4） マッシュアップ

125
近年，
マッシュアップ（Mashup）と呼ばれる，
ネッ

そこに設定されている URL に，KML データの読トワーク上の複数のソースから提供されるコンテン

み込み時や，設定された時間ごとにアクセスする．

ツを組み合わせた複合型ソフトウェアが注目されて<?xml version="1.0" encoding="UTF-8"?><kml xmlns="http://earth.google.com/kml/2.0"><NetworkLink><name>2007/4/1 0:00-2007/4/2 0:00 気温 (1hour, amedas)</name><LookAt><longitude>134</longitude><latitude>33</latitude><range>3753490</range><tilt>0</tilt><heading>0</heading></LookAt><flyToView>1</flyToView><Url><href>http://pc105.narc.affrc.go.jp/metbroker/kml/weather-sequencedata.kmz?element=airtemperature&amp;duration=1hour&amp;area=amedas&amp;interval=2007/4/1 0:00-2007/4/2 0:00&amp;lang=ja</href></Url></NetworkLink></kml>

図 41 Google Earth 上に動的に生成するデータを表示させるための KML

126

田中慶：農業シミュレーションモデルにおける分散協調システムのためのフレームワークに関する研究73

図 42 Google Earth 上に表示したアニメーション表示可能な時別気温値
http://pc105.narc.affrc.go.jp/metbroker/kml/
上部のスライドバーによりアニメーション表示の設定や表示日時の選択を行える．

いる．マッシュアップブームの先駆けとなったのは，

トから取得して JavaScript で扱うためには，同一

Google の地図情報と Craigslist の不動産情報を組み生成元ポリシー（Same Origin Policy）のセキュリ合わせた HausingMaps であった．すでに Web 上

ティ制限を回避する工夫が必要である．

に存在していた情報が，地図と組み合わさることによって，数段利用しやすくなり，多くの新たなユー
ザを獲得した有名な例である(156,207)．

（5） Google Web Toolkit
最新の Web アプリケーション構築において，大地図と気象データを組み合わせた Weather Bonk

規模な JavaScript のコードや Ajax コンポーネント

や Global Cloud Map な ど の よ う な マ ッ シ ュ ア ッの作成，再利用，保守が必須となっている．しかプサイトもいくつかある．図 38，図 40，図 42 のしスクリプト言語である JavaScript による大規模

Google マップや Google Earth と MetBroker から取な開発の作業効率は良くない．この問題を解決で得したデータを結びつけたアプリケーションもマッ

きる Ajax アプリケーション構築フレームワークがシュアップアプリケーションの一例である．農業モ

Google Web Toolkit（GWT）である (73)．

デルで利用されるデータの多くは位置情報を持ち，HTML と JavaScript で開発していた Ajax アプ

随時更新されるため，地図インタフェースと組み合

リケーションの Web 画面の作成を，GWT ではす

わせて，マッシュアップアプリケーションとしてのべて Java で開発できる．Java のコードは GWT に構築に適している．

よりクロスコンパイルされ，主要なブラウザに対応

マッシュアップアプリケーション構築は，無料でした JavaScript のコードに変換されるため，ブラ入手できる開発環境や実行環境を利用し，Web アウザによる違いを考慮したプログラムが不要となプリケーションとデータを結びつけることで行える．また，生成された JavaScript は最適化されてる．そのため，IT 技術者だけでなく誰でもアイデいるため，開発者が直接 JavaScript で記述するよア次第で開発を始めることができる．自分のデータ，

り，ファイルの読み込み時間，処理時間の双方でパ

もしくは既存の公開データを Google マップ上に表

フォーマンスの向上が期待できる．

示するには，Google マップの API に合わせて，デー

よく利用される UI コンポーネントは標準で提供

タを加工するだけである．しかし，データを他サイされているが，GWT 用ライブラリを組み込めば，

74

中央農業総合研究センター研究報告第 20 号（2013. 11）

Google マップやグラフなどの複雑な UI コンポーネ

すべての作業を Apache Ant (10) を利用して行う．作

ントを利用できるようになる．また，各自で開発し業内容は XML 形式のビルドファイルに記述される．

た UI コンポーネントを JAR ファイルにパッケージ化しておけば，別の Web アプリケーションで再利（6） GWT RPC用できる．Java で開発された UI コンポーネントがGWT で は ク ラ イ ア ン ト と サ ー バ 間 の 通 信 に，コンパイルされると，
HTML で記述された Web ペー

Ajax ア プ リ ケ ー シ ョ ン で 標 準 的 に 利 用 さ れ る

ジが生成されるのではなく，DOM による Web ペー

JSON，XML に 加 え，GWT Remote Procedure

ジを構築するための JavaScript コードが生成される．

Call（RPC）を提供している．GWT RPC を利用す

GWT では，必要なライブラリファイルのコピー，コンパイル，Javadoc によるドキュメントの生成，ると，シリアライズ化可能な Java のオブジェクト
127をそのまま通信で利用でき，メッセージ交換が容易

JAR ファイルや WAR ファイルの生成，サーバへのになり効率化できる．GWT RPC は Java RMI と似配備までの，Web アプリケーション構築のためのていて，リモートサービスと非同期通信用の 2 つの//モデルを実行するサーブレットのインタフェース ModelService.java //////////////////////////////////
package net.agmodel.gwt.model.client.rpc;
import com.google.gwt.user.client.rpc.*;
public interface ModelService extends RemoteService{
Result[] execute(String execID, ExecutionParameter[] exParams, String lang);}//モデルを実行するサーブレットの非同期インタフェース ModelServiceAsync.java ////////////////////////
package net.agmodel.gwt.model.client.rpc;
import com.google.gwt.user.client.rpc.AsyncCallback;public interface ModelServiceAsync{
void execute(String execID, ExecutionParameter[] exParams, String lang,
AsyncCallback<Result[]> callback);}//モデルを実行するサーブレットクラス ModelServiceImpl.java //////////////////////////////////////
package net.agmodel.gwt.model.server;
import com.google.gwt.user.server.rpc.RemoteServiceServlet;
public abstract class ModelServiceImpl extends RemoteServiceServlet implements ModelService{
public Result[] execute(String execID, ExecutionParameter[] exParams, String lang){...
List<Result> resultList = new ArrayList<Result>();try{...
//exParam の個数回モデルを繰り返し実行する．
for(int i=0; i<exParams.length; i++){...
try{
ExecutionData data = createExecutionData(exParams[i]);Result result = executeModel(data, broker, exParams[i]); //気象データを取得してモデルを実行
resultList.add(result);}
catch(Exception e){}...
}}catch(Exception e){}return resultList.toArray(new Result[0]);}}図 43 GWT RPC によるサーバとクライアント間通信のコード
ExecutionParameter や Result オブジェクトの配列がクライアントとサーバ間でやりとりされる．

田中慶：農業シミュレーションモデルにおける分散協調システムのためのフレームワークに関する研究

75

インタフェースと，その実装クラス（図 43）を作JSP と JavaScript を組み合わせて開発する方法と，成し，サーブレットとして登録することにより利用すべてを Google Web Toolkit で開発する方法の 2

できる．ブラウザからリモートメソッドを呼び出す

つがある．表 14 に JAMF-S を利用して実装されたと，GWT RPC は引数で渡されたオブジェクトをシ

農業モデルが示されている．これらのうちのほと

リアライズし，サーバ上のメソッドを呼び出す．まんどは，初期に実装された Servlet API 版である．

た，メソッドからの返り値のオブジェクトをクライ

GWT 登 場 後 に，MetBrokerDemo と SIMRIW のアントのためにデシリアライズする．

GWT 版が実装された．
Servlet API によるサーブレットでは，ユーザからのリクエスト HttpServletRequest オブジェ

4） サーブレット版農業モデル用フレームワーク

クトは，サーバの HttpServlet クラスを継承し主流になった Ajax アプリケーションとするために，受け取って処理される．その結果は画面遷移後の新農業モデルを REST アプリケーション化し，近年，たクラスの doGet() または doPost() メソッドでJAMF を利用して Java アプレットとして実装した

しい Web 画面を JSP で生成して表示される．Web

農業モデルを，Java サーブレットとして実装し直画面に非同期通信を行い，取得したデータを動的にす必要がある．

UI コンポーネントに反映させる JavaScript プログ

農業モデルの実行の流れ（図 20）は，基本的にラムを埋め込めば，Ajax アプリケーションにできJava アプレットと変わらない．大きな変更点は，る．また，結果を ServletOutputStream オブジェ

気象データの取得やモデルの計算をサーバで行うよ
うにすることと，ユーザインタフェースの構築をアクトに書き出すことにより，グラフ画像や，ZIP ファイルなどのバイナリファイルとして出力できる．

プレット用の Swing コンポーネントから，HTMLGWT は Ajax アプリケーション構築用フレーム

コンポーネントを利用して行うようにすることであ

ワークであるので，クライアント用の Web 画面もる．

含めて，すべて Java で開発でき，コンパイルすれ

気象データの取得やモデルの計算はサーバでば Ajax アプリケーションとなる．GWT ではサー行うように変更されるが，それらのプログラム自バプログラムも，クライアント画面もすべて Java

体の変更は必要ない．それらを呼び出していたで開発できるため，Java のオブジェクト指向プロ

Java ア プ レ ッ ト 用 プ ロ グ ラ ム AbstractModel

グラミングの特徴を生かし，既存のプログラムに対（ 表 6） を，Java サ ー ブ レ ッ ト 用 プ ロ グ ラ ム

する拡張を容易に行える．デフォルト機能のみを実AbstractModelServlet に取り替えるだけであ装した農業モデルの半完成品を GWT のライブラリる．さらに，Java のプラットフォーム非依存の特としてまとめることにより，デフォルト機能と異な徴〈III.2.5）〉により，サーバでの実行のためにプロる部分のみの開発で，サーブレット版農業モデルを

グラムを修正したり，コンパイルし直したりする必実装できるようになる．

要もない．
Java アプレット用の農業モデル実装フレームワークを JAMF として構築したように，Java サー

いずれの方法で開発しても，サーブレットプログ
ラムの働きは，配備記述子 web.xml ファイルの設定で制御する．

ブレット用の農業モデル実装フレームワークをJava Agricultural Model Framework for Servlet（JAMF-S）として構築する．JAMF-S はサーブレッ

5） MetXML

MetBroker は多くの気象データベースのデータトでも利用可能な JAMF のプログラムはそのままに統一的な手法でアクセスすることを可能にし，気利用したが，サーバでの実行用のモデル実行エンジ

象データを利用する農業アプリケーション構築におン，グラフ画像ファイル生成用のサーブレット，UI

いて，気象データ取得のためのプログラム開発コスコンポーネントとそのイベント処理用プログラム，

トを大幅に削減した．しかし，アプリケーション開

RPC 用プログラムなど（表 13）が新たに開発された．

発者には Java や SOAP による開発スキルが必要で

サーブレットの開発には Tomcat の Servlet API，あったため，MetBroker を利用しているアプリケー

128

中央農業総合研究センター研究報告76

第 20 号（2013. 11）

表 13 JAMF-S のパッケージ構成（主要部）
分類

パッケージ名サーバ

serverui
event
resource
rpc

ユーザインタフェース

RPC

data

パッケージの内容
サーバ実行版のモデル実行エンジン，RPC の実装クラス，グラフ画像や XML ファイルを生成するサーブレットクラスを提供
Web ページ用 UI コンポーネントを提供
UI コンポーネント用のイベントとイベントハンドラを提供
多言語対応のためのリソースを提供
RPC のインタフェースと非同期インタフェースを提供
RPC での通信に利用するためのシリアライズ可能なデータ用ク
ラスを提供

129

表 14 JAMF-S を利用して実装した農業モデルのアプリケーション一覧 (248)
農業モデル名（Servlet API 版）(95,97,260)（GWT 版）
RiceHeadingMaturity (229)
RiceDVI (305)
MetBLASTAM (81,250)
WheatHeading (145)
WheatDuthie (47)
SolarRadiationKuwagata (146)
MetBrokerDemo（Servlet API 版）

内容

SIMRIW

MetBroker(133,255,258,261)

MetBrokerDemo（GWT 版）
MetBroker-i
MetBroker Taglib

FieldServer (56,254)
ImageChangeDetection (120,256)

水稲生育予測モデル
葉いもち感染好適日推定モデル
小麦の出穂期予測モデル
小麦赤かび病予察モデル
全天日射量推定モデル

気象データ表示

気象データ表示（携帯電話用）
気象データ表示用 JSP 用カスタムタグ
フィールドサーバの観測データ，撮影画像表示
フィールドサーバで撮影した間欠画像の変化抽出

ション開発者は未だに多くない．一方，XML 形式（1） MetBroker ICS

でデータを扱うことはすでに一般的になっており，

MetBroker ICS（ 図 47） は MetBroker か ら 取様々なプログラミング言語を利用して XML データ

得できる気温，降水量のデータを Google カレンを処理することは難しくなくなっている．

ダー (65) に表示するための Web サービスである．

そこで，必要な気象データの種類などを URL の

Google カレンダーは定期的に，MetBroker ICS かパラメータ文字列（図 45）で指定して XML デー

ら iCalendar 形式のテキストデータを取得して，最タ（図 46）として取得できる REST アプリケーショ

新の気象データを Google カレンダーの予定欄に表ン MetXML（図 44）を開発した．MetXML を利用示する．

することにより，農業アプリケーション開発者は，

iCalendar 形式のデータは，Internet Engineering

URL パラメータ構築のための文字列処理と XML

Task Force のカレンダー・スケジュール作業部会

データ処理のプログラム開発のみで，気象データをで定められた，スケジュール管理用アプリケーショ扱えるようになる．MetXML は URL のパラメータンで利用されるテキスト形式の標準書式 (36) である．

の設定により，気象データだけでなく MetBroker
で利用できるデータベースや気象観測地点などの（2） 携帯電話用アプリケーション

情報も取得できる．また，XML 形式だけでなく，Web ブラウザでの利用を想定して開発された

CSV 形式でのデータ取得や HTML によるグラフや

サーブレットも，簡易な表示インタフェースを用意

表によるデータ出力もできる．

するだけで，携帯電話での利用に適した Web アプ

130

田中慶：農業シミュレーションモデルにおける分散協調システムのためのフレームワークに関する研究

リクエスト
MetRequest

MetBroker

MetRequest 生成

気象データ
MetSequence

MetSequence を
XML に変換

気象データ
ベース

URL 生成URL アクセス

MetXML

77

アプリ
ケーション

気象データ
（XML 形式）

XML パース
モデル実行

図 44 MetXML と農業モデル用アプリケーションとの関係

131

MetXML が MetBroker とやりとりを行うため，農業モデル用アプリケーション開発者は灰色部分の気象データ取得用 URL
生成と XML パースのプログラムを開発するのみで気象データを取得できる．

気象データベース ID = amedas(アメダス),
aclima(気象官署), noaa(NOAA) など

気象観測地点 ID =つくば

データの期間 =2010 年 4 月

http://pc105.narc.affrc.go.jp/metbroker/?source=amedas&station=40336&interval=2010/4/1-2010/5/1&elements=airtemperature,rain&resolution=daily&output=xml&lang=ja
気象データの要素 = airtemperature(気温),rain(降水量), wind(風向風速), humidity(湿度),radiation(日射量), brightsunlight(日照時間)

データの観測間隔 =daily(日別), houly(時別)

データの出力形式 = xml,
csv, chart, table

図 45 MetXML から気象データを取得する URL パラメータ
この URL にアクセスすることにより，アメダスの気象観測地点つくばの 2010 年 4 月の気温と降水量の日別値が MetBroker
から取得され，XML 形式で返される．
http://pc105.narc.affrc.go.jp/metbroker/

リケーションにするができる（図 48）．

モデルの実装，REST や GWT RPC によるアプリ

携帯電話用の農業モデルは，画面サイズやキー操

ケーション間のメッセージ交換が必要であるため，作の制約から表示内容や操作性をパソコン用と同等

JAMF の機能を利用することによる有効性を示すにすることは難しい．しかし，携帯電話は圃場でののに適している．

作業中に利用するための端末として，電源やネット
ワーク環境の面から適当である．

水 稲 生 育 予 測 モ デ ル と し て SIMRIW〈IV.4.2）〉を選択した．SIMRIW は水稲生育予測モデルとしてよく知られたモデルで，国内での利用事例も多い．

4.

SIMRIW を利用した水稲栽培可能性予測支援ツール

本節では，
〈III〉
，
〈IV〉で構築した農業モデル用
フレームワーク JAMF と JAMF-S（以降，JAMF必要とする気象データが気温と日射量だけであり，
地域パラメータを必要とせず，潜在成長のみを対象とするため，本章で扱うモデルとしての規模や必要データ数が適当であることが選択理由である．

とのみ記す）を利用した実アプリケーションを構築
し，JAMF の有効性を示す．
実アプリケーションとして水稲栽培可能性予測支

1） 背景

GEOSS (62) では，各国が連携して様々な地球観測

援ツールを構築する．水稲栽培可能性予測支援ツー

データや予測データを蓄積し，これらのデータを統ルは，水稲生育予測モデルによって全球を対象とし融合して人類に有益な情報に変換することをめざした栽培可能性を提示するツールである．このツールており，国際的に共通な利用ニーズの 1 つが農業分の構成は図 49 に示されるように，ツール全体を構野となっている．

築するために，JAMF を利用したいくつかの農業

日本での GEOSS の推進母体である DIAS (42) には，

78

中央農業総合研究センター研究報告第 20 号（2013. 11）132<?xml version="1.0" encoding="UTF-8" standalone="no"?><dataset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://pc105.narc.affrc.go.jp/
metbroker/metbroker/schema/metxml.xsd"><data><source id="amedas"><name lang="ja">アメダス</name><region id="08"><name lang="ja">茨城県</name><station id="40336"><name lang="ja">つくば</name><interval start="2010/4/1" end="2010/4/30"/><duration id="daily"><name lang="ja">日別値</name></duration><element id="airtemperature"><name lang="ja">気温</name><subelement id="Min" unit="℃"><name lang="ja">最低</name><value date="2010/4/1">1.5</value><value date="2010/4/2">8.3</value><value date="2010/4/3">4.5</value><value date="2010/4/4">1.4</value>...
</subelement><subelement id="Max" unit="℃"><name lang="ja">最高</name><value date="2010/4/1">21.2</value><value date="2010/4/2">20.4</value><value date="2010/4/3">15.2</value><value date="2010/4/4">11.0</value>...
</subelement><subelement id="Ave" unit="℃"><name lang="ja">平均</name><value date="2010/4/1">12.5</value><value date="2010/4/2">13.5</value><value date="2010/4/3">9.1</value><value date="2010/4/4">6.8</value>...
</subelement></element><element id="rain"><name lang="ja">雨量</name><subelement id="Total" unit="mm"><name lang="ja">合計</name><value date="2010/4/1">0.0</value><value date="2010/4/2">4.0</value><value date="2010/4/3">0.0</value><value date="2010/4/4">0.0</value>...
</subelement></element></station></region></source></data></dataset>

スキーマ
情報

気象観測
地点情報

気象データ
情報

最低気温

最高気温

平均気温

降水量

図 46 図 45 の URL にアクセスすると返される XML 形式の気象データ

田中慶：農業シミュレーションモデルにおける分散協調システムのためのフレームワークに関する研究

79

133

BEGIN:VCALENDAR PRODID:MetBroker for ICS VERSION:2.0 CALSCALE:GREGORIAN
METHOD:PUBLISH X-WR-CALNAME:MetBroker / 土浦 X-WR-CALDESC:MetBroker / アメダス / 茨城県 / 土浦 X-WR-TIMEZONE:Asia/Tokyo BEGIN:VEVENT UID:metbroker/am
edas/40341/20101116 DTSTART;VALUE=DATE:20101115 DTEND;VALUE=DATE:201011
16 LOCATION:土浦 SUMMARY:13.6℃/5.2℃ 4mm DESCRIPTION:2010/11/21 7:12 作成
1:00 気温:8.8℃ 雨量:0mm
・・・
・・・
・・・
0:00 気温:10.3℃ 雨量:0mm END:VEVENT BEGIN:VEVENT UID:metbroker/amedas/403
41/20101117 DTSTART;VALUE=DATE:20101120 DTEND;VALUE=DATE:20101121 LOCATI
ON:土浦 SUMMARY:17.0℃/5.8℃ 0mm DESCRIPTION:2010/11/21 7:12 作成
1:00 気温:10.3℃ 雨量:0mm
2:00 気温:10.2℃ 雨量:0mm
3:00 気温:8.5℃ 雨量:0mm
4:00 気温:7.6℃ 雨量:0mm
5:00 気温:6.6℃ 雨量:0mm
6:00 気温:6.2℃ 雨量:0mm
7:00 気温:5.8℃ 雨量:0mm
8:00 気温:9.5℃ 雨量:0mm
9:00 気温:12.7℃ 雨量:0mm
10:00 気温:14.6℃ 雨量:0mm
11:00 気温:16.6℃ 雨量:0mm
12:00 気温:16.6℃ 雨量:0mm
13:00 気温:16.9℃ 雨量:0mm
14:00 気温:17.0℃ 雨量:0mm
15:00 気温:16.5℃ 雨量:0mm
16:00 気温:15.4℃ 雨量:0mm
17:00 気温:13.6℃ 雨量:0mm
18:00 気温:12.3℃ 雨量:0mm
19:00 気温:11.4℃ 雨量:0mm
20:00 気温:10.5℃ 雨量:0mm
21:00 気温:10.1℃ 雨量:0mm
22:00 気温:9.6℃ 雨量:0mm
23:00 気温:10.0℃ 雨量:0mm
0:00 気温:10.0℃ 雨量:0mm END:VEVENT BEGIN:VEVENT UID:metbroker/amedas/403
41/20101117 DTSTART;VALUE=DATE:20101121 DTEND;VALUE=DATE:20101121 LOCATI
ON:土浦 SUMMARY:8.5℃/5.7℃ 0mm DESCRIPTION:2010/11/21 7:12 作成
1:00 気温:8.5℃ 雨量:0mm
・・・
7:00 気温:�℃ 雨量:�mm END:VEVENT END:VCALENDAR

図 47 MetBroker ICS による Google カレンダーへのアメダスデータの表示
Google カレンダーは定期的に，MetBroker ICS から iCalendar 形式のテキストデータ（右下）を取得する．そのデータのうち，日別の最高，最低気温，降水量が Google カレンダーの予定欄（上）に表示され，その部分をクリックすると予定詳細欄に時別値（左下）が表示される．
http://pc105.narc.affrc.go.jp/metbroker/ics/

134
中央農業総合研究センター研究報告80

第 20 号（2013. 11）

図 48 携帯電話用気象データ取得サーブレット MetBroker-i
携帯電話用気象データ取得サーブレット MetBroker-i に i-mode HTML Simulator II (184) でアクセスした画面．
135
Web ブラウザでの利用を想定して開発されたサーブレットも，簡易な表示インタフェースを用意するだけで，携帯電話での利用に適した表示にできる．

モデル計算部

気象ジェネレータ
アメダス

JAMF を利用して移植

FORTRAN 版
オリジナル
SIMRIW

MetBroker

SIMRIW
JAMF を利用して開発

GD-DR&TR
新規対応

気象値推定モデル

日長モデル

REST
JAMF を改良して開発
マルチスレッド対応
気象データ再利用

JAMF を利用して開発

日照時間―日射量 変換モデル

水稲栽培可能性判定ツール
JAMF を利用して開発
REST
GWT RPC

全球の水稲栽培可能性
XML データ生成ツール

水稲栽培可能性データ
XML ファイル
KML ファイル

Java アプレット版
SIMRIW UI

JAMF-S でサーブレット化

データ表示用
アプリケーション

Java サーブレット版
SIMRIW UIFlash 版
Google Earth 版
触れる地球版

パラメータ付き
URL でリンク

図 49 水稲栽培可能性予測支援ツールの構成〈III〉，〈IV〉で構築した農業モデル実装フレームワーク JAMF，JAMF-S とメッセージ交換手法を利用している部分を，背景灰色の白抜き文字で示している．

田中慶：農業シミュレーションモデルにおける分散協調システムのためのフレームワークに関する研究「安全な農作物生産管理技術とトレーサビリティシ
ステムの開発」の課題がある．これは，DIAS コア

813） 気象データ

SIMRIW は気象データとして日別の気温と日射システムで提供されるデータ群を利用して，農業生量を利用している．実行に必要な気象データの種産管理支援情報や，地球温暖化による食糧生産へ類が少ないことは，全球で農業モデルを実行可能にの影響等を長期的にも短期的にも，誰でも簡単に知するために有利な条件である．しかし，日射量は気ることができるシステムを構築することが目的であ

温や降水量に比べると入手しづらいことを考慮しる．本節で開発する水稲栽培可能性予測支援ツールて，SIMRIW に日照時間－日射量変換モデル (146) をは DIAS のシステムを構成するアプリケーションの組み込んで利用できるようにした．この変換モデル

1 つである．

を利用することにより，日射量は観測していないが，日照時間を計測しているアメダス観測地点 (119)2） 水稲生育予測モデル

で SIMRIW が実行可能になった．

文献として公開されているものだけでも，多く

農業モデル用フレームワーク JAMF〈III.5〉の気の水稲生育モデル（表 1）がある．水稲栽培可能性

象ジェネレータ〈III.5.1）〉では，
MetBroker〈II.2.5）〉

予測の対象を全球とした場合，世界中で栽培試験をを通して各種気象データベースの気象データを取得

行って地域パラメータを決定することは不可能なたしている．主な気象データベースとして，国内用

め，地域パラメータを必要としないモデルを採用すにアメダス，海外用に NOAA/NWS を利用できる．

る必要がある．Simulation Model for Rice-Weather

しかし，NOAA/NWS からは日射量，日照時間と(95,97)は，地域パラメータを持もに取得できないため，海外地点での SIMRIW 実

たないが，品種パラメータの推定に気象条件の異な

行は，日射量を扱うその他の気象データベースを利る広範な地域の栽培データが利用されていれば予用できる一部の国を除いて困難であった．今回，全Relations（SIMRIW）(164)，この条件に適っている．

球を対象とするために，新たに GD-DR&TR〈I.3.3）

また，国内を対象に気候変動の影響を予測するため（6）〉をデータベース化して MetBroker で扱えるよ

測精度が安定するので(96,165)

うにした．気温，降水量，日射量を GD-DR&TR かSIMRIW は京都大学の堀江らによって開発され

ら 1 度グリッド（陸地のみ）で取得できるようになった水稲生育モデルである．このモデルは，発育速たため，SIMRIW を利用した全球を対象としたシ度（DVR）を積分した発育指数（DVI）で作物のミュレーションが可能となった．MetBroker が新に利用されたこともある

．

(40)

である．

たに GD-DR&TR を扱えるようになったことに伴っSIMRIW では発育速度の計算において，日長感応て，SIMRIW 実行に関するプログラムを変更する性の時期であるかと，発育相が栄養成長相，生殖成必要はなかった．これは，農業モデルが気象データ

長相，成熟相かによって DVR 計算式を使い分けるを MetBroker 経由で取得するように開発すること

発育ステージを決定する発育速度モデル

ことにより，予測精度の向上が図られている(94,164)．

による利点の 1 つである．

SIMRIW は施肥された灌漑水田での栽培を前提とした潜在成長のみをシミュレートするため，水スト
レスや窒素ストレスの影響をシミュレートすること

4） SIMRIW プログラム

FORTRAN で書かれたオリジナルの SIMRIW プ

ログラムと，8 品種（ジャポニカ米 5 品種：イシカ

はできない．
SIMRIW は 23 個の品種パラメータを持っている．

リ，ササニシキ，コシヒカリ，日本晴，ミズホ；イ

これらの値は栽培試験データをもとにシンプレック

ンディカ米 3 品種：IR36，IR64，IR58）のパラメー．出穂期までの DVR を計算

タが科学研究費補助金の報告書 (97) に付録として記するための 6 つのパラメータは，品種ごとに異なる載されている．このプログラムの入出力部を除く，値が設定されているが，それ以外のパラメータでは，モデル計算部をもとに，農業モデル用フレームワー

ジャポニカ米とインディカ米で異なる値が設定され

ク JAMF を利用して，Web アプリケーション版の

るか，すべての品種で同じ値が設定されている．

SIMRIW (257) を Java で実装した．

ス法

(77)

で求められた(94)

オブジェクト指向プログラミングの特徴を生か

136
82

中央農業総合研究センター研究報告第 20 号（2013. 11）

実行開始
実行条件設定エリア（全球），品種，気温加算値，CO2 濃度，スレッド分割数
MetBroker から気象データ観測地点リストを取得（エリア内のモデル実行に必要な気象要素を観測している地点）
スレッド分割（実行地点を各スレッドに振り分け）
スレッド 1スレッド 2・・・

スレッド n

地点 ID: m の実行
MetBroker から気象データ取得
モデル実行時のパラメータ（品種，気温加算値，CO2
濃度，移植日）設定
モデル実行

結果（移植日・収穫日・収量）を XML で出力

パラメー
タを変更
して繰り
返し

地点を
変更して
繰り返し

スレッド終了すべてのスレッドが終了後全地点の結果を集めた XML ファイルを生成終了

図 50 水稲栽培可能性データ生成の実行サイクル
モデル実行エンジンの改良部分が灰色の背景色で示されている．

し，モデル計算部や状態変数が適切に設計されているので，開発されたプログラムの保守や再利用は容5） モデル実行エンジンの改良

SIMRIW を含めて，既存の Web アプリケーショ

易である．これまでに，Java アプレット版，Java

ン版農業モデルは，ユーザとの対話形式による実行

サーブレット版，計算高速化のためのモデル実行エを想定した実装であった．そのため，「気象データ取

ンジン改良などが行われてきたが，モデル計算部分

得－実行－結果表示」という実行サイクルで，1 回を修正する必要はなかった．また，降水量による閾

の実行ごとに気象データを取得し，表示した実行結値や，移植直後の低温による枯死条件の導入では，果を保存するかはユーザの操作に委ねられていた．

モデルの終了条件判定部分へのわずかな追加のみで

JAMF を利用して実装された農業モデルを実行す済んだ．

るための中核的なプログラムであるモデル実行エン

田中慶：農業シミュレーションモデルにおける分散協調システムのためのフレームワークに関する研究

83

137

<?xml version="1.0" encoding="UTF-8" standalone="no"?><cultivation_possibility><cultivar>Koshihikari</cultivar><year>1990</year><air_temp_add_value>0</air_temp_add_value><co2 unit="ppm">350</co2><station region_id="12032" source_id="GD-DR&amp;TR" station_id="19401"><place_name>latitude=36.5_longitude=140.5</place_name><place latitude="36.5" longitude="140.5"/><area ne_latitude="37.0" ne_longitude="141.0"
sw_latitude="36.0" sw_longitude="140.0"/></station><yields><yield><transplanting_date>1990/3/22</transplanting_date><heading_date>1990/8/1</heading_date><maturity_date>1990/9/12</maturity_date><weight state="14%moist"><actual_brown_rice unit="t/ha">5.61</actual_brown_rice></weight></yield>
・・・</yields><possibility>true</possibility><max_yield><transplanting_date>1990/3/30</transplanting_date><heading_date>1990/8/2</heading_date><maturity_date>1990/9/12</maturity_date><weight state="dry"><crop_including_roots unit="t/ha">18.14</crop_including_roots><panicle unit="t/ha">9.48</panicle><potential_brown_rice unit="t/ha">6.48</potential_brown_rice><actual_brown_rice unit="t/ha">4.86</actual_brown_rice></weight><weight state="14%moist"><potential_brown_rice unit="t/ha">7.54</potential_brown_rice><potential_rough_rice unit="t/ha">9.92</potential_rough_rice><actual_brown_rice unit="t/ha">5.65</actual_brown_rice><actual_rough_rice unit="t/ha">7.44</actual_rough_rice></weight><sequential_data><element id="airtemperature" name="Air temp."><subelement name="ave." unit="C"><value date="1990/3/30">11.1</value>
・・・</subelement></element><element id="radiation" name="Radiation"><subelement name="Global" unit="MJ/m2"><value date="1990/3/30">14.61</value>
・・・</subelement></element><element id="DVI" name="DVI"><subelement name="max." unit=""><value date="1990/3/30">0.2</value>・・・<value date="1990/9/11">2.0</value></subelement></element></sequential_data></max_yield></cultivation_possibility>

図 51 地点ごとの栽培可能性データの XML ファイル
データベース GD-DR&TR，地点番号 19401 の栽培可能性データ GD-DR&TR19401.xml

品種
気温加算値
CO2 濃度

地点情報

移植日を 1/1～
12/31 で実行
した場合の出穂日，収穫日，
収量が並ぶ

栽培可能性

最大収量となったときの条件最大収量となったときの，気温，
日射量，DVI 値の時系列データ中央農業総合研究センター研究報告84

ジン〈III.5.3）〉を改良することにより，同じ実行地
点で品種や各設定（移植日 1/1 ～ 12/31，
気温加算値，

第 20 号（2013. 11）

6） 栽培可能性データの出力形式

全球の栽培可能性データ生成には長時間を要する

CO2 濃度）のみを変更して実行する場合には，一度ため，あらかじめ計算した結果を XML ファイルと取得した気象データを再利用して繰り返し実行でき

して保存し，データ表示アプリケーションが呼び出るようにし，実行時に最も時間を要していた気象デー

すようにしている．

タ取得の効率化を図った．同時に，マルチスレッド

水稲栽培可能性の計算結果は，地点，品種，各設を利用した高速化を行った．また，実行結果は画面定につき 1 つの XML ファイル（ファイル名は「デーに表示する代わりに XML 形式のファイルとして出タベース ID + 地点 ID .xml」）に出力される（図力するようにした．水稲栽培可能性データ生成の実

51）．XML ファイル中には，収穫に達したすべての行サイクルを図 50 に示す．図中のモデル実行エンジ場合の移植日，収穫日，収量が記録され，そのうち

ンの改良部分が灰色の背景色で示されている．

の最大収量時の気象データや DVI 値の時系列デー
タも記録される．ファイルサイズは，すべての移植日で栽培可能な場合で 100KByte（3200 行），全138

く栽培不可の場合で 500Byte（14 行），全球すべて<?xml version="1.0" encoding="UTF-8" standalone="no"?><cultivation_possibility><cultivar>Koshihikari</cultivar><year>1990</year><air_temp_add_value>0</air_temp_add_value><co2 unit="ppm">350</co2><stations><station region_id="03010" source_id="GD-DR&amp;TR" station_id="50506"><place_name>latitude=-50.5_longitude=-74.5</place_name><place latitude="-50.5" longitude="-74.5"/><area ne_latitude="-50.0" ne_longitude="-74.0"
sw_latitude="-51.0" sw_longitude="-75.0"/><possibility>false</possibility></station>
・・・<station region_id="12032" source_id="GD-DR&amp;TR" station_id="19401"><place_name>latitude=36.5_longitude=140.5</place_name><place latitude="36.5" longitude="140.5"/><area ne_latitude="37.0" ne_longitude="141.0"
sw_latitude="36.0" sw_longitude="140.0"/><possibility>true</possibility><max_yield><transplanting_date>1990/3/30</transplanting_date><heading_date>1990/8/2</heading_date><maturity_date>1990/9/12</maturity_date><weight state="dry"><crop_including_roots unit="t/ha">18.14</crop_including_roots><panicle unit="t/ha">9.48</panicle><potential_brown_rice unit="t/ha">6.48</potential_brown_rice><actual_brown_rice unit="t/ha">4.86</actual_brown_rice></weight><weight state="14%moist"><potential_brown_rice unit="t/ha">7.54</potential_brown_rice><potential_rough_rice unit="t/ha">9.92</potential_rough_rice><actual_brown_rice unit="t/ha">5.65</actual_brown_rice><actual_rough_rice unit="t/ha">7.44</actual_rough_rice></weight></max_yield></station>
・・・</stations></cultivation_possibility>

図 52 すべての地点の栽培可能性データを集めた XML ファイル
全球の栽培可能性データ max-yield.xml

品種
気温加算値
CO2 濃度

地点情報と栽培可能性（false）

地点情報と
栽培可能性
（true）
栽培可能な場合は，移植日，
出穂日，収穫
日，収量（図 51 の最大収量の情報が抜き出されている）

139
田中慶：農業シミュレーションモデルにおける分散協調システムのためのフレームワークに関する研究85

図 53 Java サーブレット版 SIMRIWJAMF のデフォルトのユーザインタフェースで開発した SIMRIW の設定画面と結果表示画面．一般の Web アプリケーションとして実行することもできるが，図 55 や図 57 からパラメータ付き URL で呼び出すこともできる．

の 1.5 万地点の合計で 600MByte 程度（ZIP 圧縮で

max-yield.xml は約 23 万行で，ファイルサイズは46MByte）になる．

10MByte（ZIP 圧縮で 600KByte）になる．

さらに，全球すべての 1.5 万地点のファイルから，最大収量データのみを集めた全球データの XML
フ ァ イ ル max-yield.xml が 生 成 さ れ る（ 図 52）．

7） 表示アプリケーション

JAMF のデフォルトのユーザインタフェースは

140
中央農業総合研究センター研究報告86

第 20 号（2013. 11）141
図 54 水稲栽培可能性予測支援ツールのトップページ画面

図 55 品種を指定した栽培可能性表示画面（Flash 版）

研究者を対象としているため，入力インタフェース

稲栽培可能性データを表示する Web アプリケーには設定項目が多く，出力インタフェースは時系列

ション (232) を，Adobe Flex (3) を利用して開発した．

値のグラフや表による表示が中心で，一般向けでは

全 球 の XML フ ァ イ ル max-yield.xml の サ イ ズ はなかった（図 53）．そのため，誰でも利用できるこ

10MByte 程度と大きく，リアルタイムに解釈するとを考慮した新しいユーザインタフェースを開発しことは難しい．そのため，XML データをあらかじた．

め地図上に表示する画像に変換しておき，Google
マップ上にレイヤ表示している．

（1） Flash 版
Adobe Flash を利用して，Google マップ上に水水稲栽培可能性データは，ツールのトップページ（図 54）を経て，指定した品種の栽培可能性表示画

142
田中慶：農業シミュレーションモデルにおける分散協調システムのためのフレームワークに関する研究

87

143
図 56 収量最大となる品種の表示画面（Flash 版）

図 57 栽培可能性表示画面（Google Earth 版）

面（図 55）や，収量最大となる品種の表示画面（図ら 変 換 さ れ た max-yield.kmz（ 約 300KByte） は，

56）のように表示される．図 55 の地図上の地点を

max-yield.xml を変換した KML ファイルとアイコ

クリックすれば，地点情報や成長曲線，移植日別のンの画像ファイルを ZIP 形式でまとめたものであ

収量のグラフが地図の下に表示される．

る．max-yield.xml から max-yield.kmz への変換は，同じ XML 形式どうしの変換なので容易である．

（2） Google Earth 版

Google Earth 表示用の KML ファイルは Flash 版

Google Earth 上に水稲栽培可能性データを表示の表示確認用に作成したものであったが，複数の品するには，max-yield.xml を KML ファイルに変換

種やパラメータのデータを重ね合わせ表示して比較することで可能である（図 57）．max-yield.xml かすることや，時系列データのアニメーション表示が144
中央農業総合研究センター研究報告88

第 20 号（2013. 11）

図 58 栽培可能性表示画面（触れる地球版）
手で撫でることにより表示地域を回転させているところ．陸地の白色でないところが栽培可能地域を表している．

可能であるため，Flash 版と同様に実利用されていと，1 地点あたり 17,520 回モデルを実行することにる．MetBroker が扱う 2.3 万地点の気象観測地点用なる．これを 1.5 万地点で実行するのに要した時間の KML ファイルを Google Earth で表示するのには，Core i7-860 の PC で 7 日間であった．取得した問題がなかった〈IV.3.3）（2）〉ように，全球の 1.5

気象データの再利用による気象データ取得回数の万地点の栽培可能性データ用 KML ファイルはスト

削減と，スレッド分割による高速化による，JAMF

レス無く表示される．

のモデル実行エンジンの改良で 2 日間強に短縮された．全球での栽培可能性データの生成には長時間を（3） 触れる地球版
触れる地球

(63)

は地球のダイナミズムを体感でき要するため，あらかじめ計算したデータを表示用に利用している．

るデジタル地球儀である．触れる地球は球体の内部

気象データのあるすべての年（GD-DR&TR は 40から陸地，海やその上に重ねるデータを投影し，手年間）で，多くのパラメータの組み合わせで実行しで触れることにより，見たい地域に移動させたり，ようとすると，データ表示前にあらかじめデータを拡大させたりできるインタフェースを持つ．触れる

計算しておくとしても，かなりの時間を要する．今

地球用の表示データ（図 58）は，データ制作会社

回の条件では 3 ヶ月間かかるため，40 年間のうちに依頼して Google Earth 用の KML ファイルを加の 5 年分の計算を行った．また，モデルの計算式に工することにより作成される．触れる地球版は本成

枯死条件の変更などのために修正を加えた場合に果をイベントで展示するために利用した．

は，すべて計算し直さなければならない．ただし，対象エリアを数十地点程度に絞り込めば実行時間が

8） 結果

8 品種，気温加算値 3 通り，CO2 濃度 2 通りの条

件の組み合わせで，移植日を 365 日間で実行する

1 分以内に収まるので，ユーザによるオンデマンドでの実行が可能である．
このシステムのモデル実行エンジンに投入する作田中慶：農業シミュレーションモデルにおける分散協調システムのためのフレームワークに関する研究

物モデルは，JAMF を利用して実装したモデルで

89

装できる．

あれば入れ替え可能である．そのため，パラメータ1990 年代後半の増殖情報ベースプロジェクト進

や入力データを用意できるなら，より複雑な水稲生

行時には，分散協調システム構築用に CORBA や育モデルと入れ替えできる柔軟性がある．また，国HORB の利用が検討されたが，複雑さのために本や地域ごとに適したモデルに切り替えて栽培可能性

格的な利用に至らなかった．その後，プロジェクト

データを生成するような発展性もある．さらに，他の主なアプリケーション構築に Java を利用するこの作物の栽培可能性データを生成するために，水稲とになったことと，Java RMI の登場により，分散以外の作物モデルと入れ替えることもできる．

協調システムのオブジェクト間通信に RMI が利用

水稲栽培可能性データは XML 形式で保存されてされた．農業モデルと MetBroker の通信にも RMIいるので，図 51 や図 52 の XML ファイルを解釈すが利用されていた．しかし，実運用段階でファイアるための XML パーサを組み込めば，ユーザの要求

ウォール越しに RMI による通信が行えない場合がを反映した新たな表示用アプリケーションを開発であるという問題が起きた．この問題は，MetBroker

きる．

を HTTP による通信を行う Java サーブレットとし水稲栽培可能性データの表示用アプリケーションて実装し直すことで解決された．この修正において（図 55 ～図 58）は，操作性や視認性などにおいては MetBroker のインタフェースの変更も行われた

優れ，洗練されたユーザインタフェースを持つもの

ため，農業モデル側でも MetBroker との接続処理として開発された．世界の食糧問題に関心のある研を中心にプログラムの修正が必要であった．

究者以外の一般の方が，気候変動が食糧生産に与え農業モデルの REST アプリケーション化のためる影響などを容易に体感できるようなツールにするに，Java アプレットから Java サーブレットとしためである．2010 年 7 月に開催された DIAS フォーて実装し直す必要があり，Java サーブレット用のラムの会場に展示された「触れる地球」を体験した

農業モデル実装フレームワーク JAMF-S が構築さ

一般参加者は，データ統融合技術の進歩に驚きながれ た．Java サ ー ブ レ ッ ト 化 に よ る 大 き な 変 更 点

ら世界の食糧問題に強い関心を示していた．その意

は，気象データの取得やモデルの計算を行うのがク

味では，水稲栽培可能性予測シミュレータは，研究

ライアントからサーバに移ったことと，ユーザイの成果を分かりやすく伝えるアウトリーチ活動のたンタフェースの構築を Swing コンポーネントからめの教育ツールとしての価値も持っている．

HTML コンポーネントを利用するようになったこ

今後，SIMRIW の対応品種を増やすとともに，とである．モデル実行エンジンから呼び出される，水稲以外の作物モデルにもこのツールを適用してい農業モデルの計算やデータ，気象ジェネレータのプ

く予定である．また，このツールを利用して栽培可

ログラムに対する変更は必要なかった．

能性を判定するには 1 度グリッドでは粗すぎるた

ユーザインタフェースとなる Web 画面は，当め，0.1 度グリッドデータを MetBroker 経由で利用

初，JSP により HTML+JavaScript で生成していた．

するための作業を進めている．

Ajax 登場以前は JavaScript の役割はコンボボック
ス用リストの生成や入力値の確認程度で，小規模5.

考察であったために開発の負担は少なかった．その後，本章では，複数の作物モデルや病害虫モデル，気Web アプリケーションの Ajax 化により JavaScript

象モデルなどのサブモデルと連携，相互作用を行うの 役 割 が 増 し て く る と，prototype.js (205) な ど のためのメッセージ交換手法を検討した後，農業モ

Ajax ア プ リ ケ ー シ ョ ン 構 築 用 の JavaScript ラ イ

デルを REST アプリケーションとして実装可能な，

ブラリを利用できるようになったが，JavaScript

新たな農業モデル用フレームワーク JAMF-S を構のコード量は激増していった．また，JavaScript，

築した．JAMF-S には Google による様々な Web サー

HTML，CSS のデバッグを行える Firebug (161) の利

ビスを利用する機能も追加された．JAMF-S を利用

用により，デバッグ作業が効率化されたが，規模のすると，Ajax アプリケーションとして，またマッ

大きな JavaScript 開発は，コンパイラ言語である

シュアップアプリケーションとして農業モデルを実Java による開発に比べて負担が大きく，開発や保中央農業総合研究センター研究報告

90

守の効率が落ちた．

第 20 号（2013. 11）

JAMF の有効性を示すために実アプリケーショ

Google Web Toolkit が登場すると，クライアント

ンとして，「SIMRIW を利用した水稲栽培可能性予画面も含めてすべてを Java で開発できるようにな

測支援ツール」を構築した．1 年分のデータを生成

り，ライブラリ化して再利用することが容易になっするためには，全球の 1 度グリッド（陸地のみ）のた．これにより，JavaScript 開発の問題は解消した．

1.5 万地点に対し，8 品種，気温加算値 3 通り，CO2

また，Google は Ajax アプリケーションやマッシュ

濃度 2 通りの条件の組み合わせで，移植日を 365 日

アップアプリケーションの起源となる Google マッ

間で実行し，1 地点あたり 17,520 回モデルを実行す

プや Google Earth などの API を公開した Web サー

ることになった．JAMF のモデル実行エンジンをビスを提供しており，地図インタフェース開発におそのまま利用すると，1 年分のデータ生成に 1 週間

いて重要な地位を占めている．

を要した．そのため，取得した気象データの再利用

REST アプリケーションは AMADIS 要素間連携

による気象データ取得回数の削減と，スレッド分割のために構築されたものであったが，結果として受によるモデル実行エンジンの改良で計算時間は 2 日け取った XML データを加工して再利用するアプリ

間に短縮できた．この改良にあたっては，オブジェ

ケーションも現れた．病害の発生条件は日々の気象

クト指向で構築された JAMF の特徴を生かし，モ

条件で変化し，防除適期も長くない．そのため，病デル実行エンジンのプログラムを拡張することによ

害発生予察モデルを病害防除の適期を判断するため

り，最小限のプログラミングで対応できた．このこに利用するには，ユーザは日常的に病害発生予察モとから，JAMF の利用により，個々の農業モデル

デルを実行して最新の病害発生予測情報を得る必要

を Web アプリケーションとして効率的に構築できがある．この手間を改善するために，病害発生予察るだけでなく，実装するアプリケーションに応じて，モデルを定期的に実行し，実行結果の XML データ

モデル実行エンジンなどの JAMF の中核機能に対を RSS に変換してユーザに配信するサービス

(230)

や，

Google カレンダー上に表示するサービスなどが構する拡張による機能追加や変更が柔軟に行えることが示された．

築された．

IV.
1.

Ⅴ．総合考察各章の考察を選択した．

本論文の目的は，農業用の意思決定支援システム〈II〉では，農業用の意思決定支援システムのたを，既存のレガシー化しつつある農業モデルやデー

めの分散協調型システム AMADIS の構成と，各種タベースを組み合わせて構築可能とする分散協調シ

サーバ，農業モデル，データベースなどの構成要

ステムと，その構築手法について研究することであ素を紹介した．
〈I〉で紹介した農業モデルに対するる．

AMADIS の特徴は，農業モデル自身やデータベー〈I〉では農業シミュレーションモデルの歴史と共スまでをコンポーネントとして扱うことができ，そに，海外の主な農業モデル開発グループにより開発

れらがネットワークで結びつけられることである．

された農業モデルについて，作物モデルを中心に紹AMADIS は 2 つの農業情報技術のためのプロジェ介した．また，国内向けの農業用意思決定支援シス

クト研究において構築された巨大なシステムである

テムを構築するにあたり，集中型システムと分散型

ため，本論文では主に，農業モデルを AMADIS 構

システムの比較，検討を行った．既存の農業モデル

成要素として実装するためのフレームワーク構築にやデータベースが全国の研究機関で運用されている関する研究を行った．

こと，今後の保守や拡張も開発元で行われる方が望〈III〉では，海外のモデル開発グループによる農ましいこと，情報技術の進化やネットワーク普及の業モデルの開発言語や構造についての研究を行っ度合から，分散協調型システムとして構築することた後，農業モデル用フレームワーク JAMF を構田中慶：農業シミュレーションモデルにおける分散協調システムのためのフレームワークに関する研究91

築した．農業モデルの多くは，数値計算が得意な

後登場した REST へ移行した．REST では文字列

FORTRAN やそれに似たシミュレーション言語で処理で設定できる URL のパラメータにより，農業開発されていたが，規模が大きくなり保守が難しくモデルの実行条件を指定でき，結果は XML 形式でなってくると，過去のプログラム資産より，開発効

出力されるため，他の Web サービスと組み合わせ率，拡張性，保守性を重視するようになり，それらて，マッシュアップアプリケーションを構築するこに優れたオブジェクト指向言語での開発に推移しつとが容易であった．また，サーバやクライアントのつある．本研究ではオブジェクト指向言語であるこ環境に依存しないプラットフォーム非依存性というとと，Web アプリケーション開発に適しているこ

利点も享受できた．

とからプログラム開発言語として Java を選択した．

最後に，JAMF や JAMF-S の有効性を示すため

また，レガシー化した農業モデルを利用する上で，の実アプリケーションとして，「SIMRIW を利用しそのプログラムサイズの小ささや，最新の技術の利た水稲栽培可能性予測支援ツール」を構築した．こ用に対する制限を設けないためにも，ラッパーにれは全球の気象データを利用して様々な条件で生よる方法でなく，Java に移植する方法を選択した．

育予測を行い，地点ごとに水稲の栽培が可能かを判

その後の機能拡張などが円滑に行えたことからも，定するツールである．大量の繰り返し計算が必要でこの選択は正しかった．

あったため，モデル実行エンジンに対して，マルチ農業モデル用フレームワーク JAMF を構築するスレッドや入力データ再利用の仕組みの導入が必要ために参考にした，モデル開発グループによる農業であったが，オブジェクト指向で構築された JAMF

モデルの構造は，同時期に開発されたことから多くの拡張性の特徴を生かし，最小限の改良で対応できの類似点があり，実行制御方法やモジュール構造なた．また，実運用の面でも問題ないことを示した．

どが JAMF に取り入れられた．

これにより，AMADIS のための農業モデル実装

JAMF は農業モデルの計算を制御するためのモ基盤技術が確立し，多様な農業モデルを Web アプ

デル実行エンジン，実行に必要な気象データを用

リケーションとして効率的に開発，拡張，保守でき意する気象ジェネレータ，データ構造，ユーザインることが示された．また，農業モデル連携による機タフェース，各種ユーティリティプログラムを提供

能拡張を実現できたことから，提案した分散協調シ

し，農業モデルを Web アプリケーションとして実ステム型アーキテクチャの正当性が検証された．

装できる．農業モデルの実行は，気象データを取得
して，終了条件が成立するまで繰り返し計算を行い，結果を出力するという共通した流れがあり，設定画
面や結果表示画面も共通している部分が多い．その2.

本システムの有効性

1） 農業モデル用フレームワーク JAMF

農業モデルはユーザが限られていることもあり，

ため，JAMF が提供する共通部分のプログラムを研究，開発の主体は大学や農業試験場の研究室単位利用すると，個々の農業モデルを実装するために新であることが多かった．有名なモデルの中には 20

たに開発するプログラム行数は 5% 程度で済み，そ～ 30 年前のコードがそのまま使われているものもの大半は農業モデルの計算部分となる．このことかあった．それらのプログラムの中には，設計，開発

ら，JAMF を利用することにより，農業モデルの後の保守，ドキュメントが不十分であったり，GUI

プログラム開発者はわずかな労力で農業モデルを実操作に非対応であったりと，プログラムがレガシー装でき，さらに農業モデルの中核部分であるモデル化する要因を抱えているものが少なくなかった．ま

計算部分の実装に集中できるようになった．

た，気象データの形式や取得を固有の方法で行って〈IV〉では，複数の農業モデルがネットワークをいるためにプログラムの再利用を妨げているものも通して連携するための，メッセージ交換手法についあった．

ての研究を行った後，メッセージ交換機能を持つよ本研究で構築した農業モデル用フレームワーク

うに JAMF を改良した JAMF-S を構築した．メッ

JAMF を利用して農業モデルを実装すると，オブセージ交換手法として当初は Java RMI を選択した

ジェクト指向プログラミングの特徴である保守性やが，セキュリティ対策に起因する問題により，その拡張性の高さ，MetBroker 対応の気象ジェネレー

中央農業総合研究センター研究報告92

タを利用した気象データの取得，Google などにより提供される Web サービスとのマッシュアップが可能となる．

第 20 号（2013. 11）2） 農業モデル・データベース分散協調シス
テム AMADIS

本研究で提案した農業用の意思決定支援シス

JAMF を利用してレガシー化した農業モデルを

テ ム AMADIS は， 分 散 協 調 型 シ ス テ ム で あ る．

Web アプリケーションとして復活させるためには，

AMADIS では農業モデルや各種データベースまで

農業モデルの計算部分を Java で書き直すことになをコンポーネント化し，全国の大学や試験場などのる．元のプログラムサイズは小さく，データ入出力

開発元で運用したまま，ネットワークで結びつけてなどのモデルの本質でないプログラムの占める割

協調動作させることが大きな特徴である．分散協調合が大きいために，計算部分の割合が半分程度で型とした理由は，農業モデルやデータベースが小規あることが多く，書き換えのための負担は大きく模で地域性が高く，開発元による保守や拡張が迅速ない．このことは，葉いもち感染好適日推定モデに行える点で優れているからである．

ル MetBLASTAM の構築を例にして示した．農業

農業モデルの機能をより詳細にするために，機能モデルのプログラムを新規に開発したり，他言語か追加のためのプログラムを開発するだけでなく，他ら移植したりする場合に必要なプログラムは全体の農業モデルと連携させることによって実現できるの 5.2% のみで，残りはフレームワークのプログラ

柔軟性が，分散協調型の優れているところである．

ムライブラリにより提供されていた．さらに，新規

実際に，JAMF を利用して AMADIS の構成要素とに開発するプログラムの大半が個々の農業モデルにして実装した作物モデルに，同様に JAMF を用い固有な計算部分であることから，プログラム開発者て実装した病害モデルや気象モデルなどを連携させはモデル計算部分の実装に集中できることが示されたアプリケーションを構築できたことから，分散協た．すでに MetBLASTAM 以外にも 20 以上の農業

調型システム AMADIS のアーキテクチャの有効性

モデル（表 9）を Web アプリケーションとして構が示された．

築し，誰でも利用できる形でインターネット上に公開し，長期間の運用をすることにより安定性も示した．また，JAMF の API とサンプルプログラムを

3.

残された課題〈III.3〉で触れたように，プログラムをモジュー公開しているので，ある程度のプログラミング経験

ル構造化してもインタフェースが異なると相互があれば，農業モデルを Web アプリケーションと利 用 が 難 し い (114)．JAMF-S で は 容 易 化 の た め にして構築できるようになっている．

AMADIS の 要 素 間 の 通 信 に REST を 採 用 し た．

農業モデルが AMADIS の構成要素となるには，

REST のリクエストは URL のパラメータで行うた農業モデル間で相互に連携するためのネットワー

め，事前にパラメータの妥当性を検査することがでクを介したメッセージ交換機能が不可欠であるた

きない．レスポンスは XML で返されるため，
スキー

め，JAMF は REST アプリケーションとして農業マ宣言されていれば，スキーマにより XML の内容

モデルを実装できるようになっている．REST でを事前に理解できる．ただし，同じ意味に対する要は URL のリクエスト文で農業モデルの実行条件を素名の違いを吸収するためにはオントロジーの利指定し，実行結果は XML 形式で取得できるため，用が必要である．今後，AMADIS の要素間通信でリクエストの生成も実行結果の処理も容易である．

REST 利用により，このことが問題化するようであ

また，通信には HTTP を利用するため，ファイアれば，複雑化するが SOAP を併用することが考えウォールに起因する問題が起こりにくい．さらに，られる．

サーバやクライアントの環境に依存しないプラット
フォーム非依存性という利点も享受できた．

農業モデルは対象作物の品種と，栽培地域に関するパラメータを利用することにより，品種や地域にこれらの結果から，JAMF が AMADIS の構成要よる生育の差を表現し，予測精度を向上させている．

素である多様な農業モデルを，相互連携機能のある

しかし，数年分の気象データと生育データを集め，

Web アプリケーションとして，効率的に開発，拡張，

シンプレックス法や遺伝的アルゴリズムなどでこれ保守できるという有効性が示された．

らのパラメータを推定する〈II.2.8）〉ことは，一般

田中慶：農業シミュレーションモデルにおける分散協調システムのためのフレームワークに関する研究

93の利用者には難しい．すでに遺伝的アルゴリズムでではテレビやラジオが利用されてきたが，携帯情報

パラメータを推定するためのプログラム開発は行っ

端末の普及により電子メール，RDF Site Summaryていたが，それを AMADIS の要素として提供する（RSS），Twitter を利用する例が増えてきている．

までには至っていない．農業モデルの精度向上の

例えば，災害情報がメール (268) や Twitter (51) で配信

ために，農業モデルにパラメータ推定機能を組み込されている．

み，ユーザが必要に応じて利用できるようにする予

農業分野では，農協から農家への FAX による情定である．パラメータ推定に利用する観測データを報配信などが行われていた．JAMF や JAMF-S を

ユーザ自身で用意できない場合には，気象データは利用した例としては，病害虫発生予察情報などの農MetBroker から，水稲の栽培情報はイネデータベー業モデルの結果をメール (251) や RSS (230) で配信するシスから取得できる．

ステムが構築された．また，気象データを Google

IT システム（サーバやネットワーク，システム

カレンダーに表示〈IV.3.5）（1）〉したり，フィールを運用するデータセンター，それらを監視，運用すドサーバの観測データを Twitter で配信 (88) したりる仕組み）は，構築時だけでなく管理，維持してする試みもなされている．

いくにもコストがかかる．プロジェクト研究において AMADIS 関連で研究開発した多くのアプリケー
ションを維持するためには，OS，アプリケーショ

3） クラウドコンピューティング

計算機処理をネットワーク経由で提供するサービンの保守，ドメイン管理なども必要である．しかし，スは，1960 年代には大型計算機の CPU を遠隔利用

プロジェクト終了後には，それらを維持するためのする形で存在していたが，2006 年に提唱されたク

予算，人的資源がなくなり問題となっている．

ラウドコンピューティング（Cloud Computing）(222)
が注目を集めている．世界中に分散したユーザが

4.

今後の展望

サーバを意識せずにサービスを受けることが，クラ1） 他の Web サービスとの連携

ウド以前のサービスと異なるところである．それまJAMF-S で実装された農業モデルの REST アプ

でユーザが IT システム（ハードウェア，
ソフトウェ

リケーションは，Web ブラウザ上でユーザインタ

ア，データベースなど）を保有，管理していたのにフェースにより実行条件を設定するだけでなく，パ対し，クラウドコンピューティングではネットワー

ラメータ付き URL により実行条件を設定できる．

ク経由のサービスという形で IT システムを利用でそのため，リクエスト用 URL の文字列操作のみで，きる．最低限のネットワーク環境があれば利用でき，

ネットワーク処理に対応したどのようなプログラミ

必要に応じて利用する資源を調節できる柔軟性があ

ング言語からも農業モデルを呼び出すことができる．

る．

クラウドコンピューティングには以下の 3 つの形

また，出力された XML 形式の結果データはテキ態がある．① Software as a Service（SaaS）はインスト形式で可読性があり，XML 処理が可能なプロ

ターネット経由で電子メールやグループウェアなど

グラミング言語で容易に扱うことができる．Googleのソフトウェアを提供するサービスで，Microsoft

マップなどの Web サービス上に表示したり，他のOnline Services (153) や Google Apps (72) などがある．

農業モデルなどの入力データとして利用したりする② Platform as a Service（PaaS）はインターネット

ことにより，マッシュアップアプリケーションも容経由で，アプリケーションサーバやデータベースな易に構築できる．また，サーブレットとして出力をどのアプリケーション実行用プラットフォームを提表やグラフに表示するだけでなく，表示用プログラ

供するサービスで，Google App Engine（GAE）(74)，

ムを変更するだけで，携帯電話や Google カレンダー

Face.com (220) や Microsoft Windows Azure (154) などなど多様な出力先への対応ができる．

がある．③ Infrastracture as a Service（IaaS）はユー
ザ自身が OS を含むシステムを導入可能な，イン

2） 情報配信

一般情報を広く素早く伝える手段として，今ま

ターネット経由のインフラを提供するサービスで，Amazon S3 (5)や Amazon EC2（Elastic Compute

中央農業総合研究センター研究報告94

Cloud）(6) などがある．

第 20 号（2013. 11）

考えられる．HTTP によるネットワーク経由のリ

Google App Engine for Java（GAEj） で は 標 準の Java 技術を使用して Web アプリケーションを構

ソースアクセスが行えることから，GAEj 上の農業モデル間の連携も可能である．

築し，Google のスケーラブルなインフラ環境で実農業の現場で利用される主な IT 機器は，屋外行できる．GAEj は，信頼性の高い永続データの格で利用することから携帯電話，スマートフォン，

納，HTTP によるネットワーク経由のリソースア

PDA などのモバイル端末である．クラウドコン

クセス，メールメッセージ送信，画像データ処理，

ピューティングの利用は，ネットワークに接続でき

Google アカウントによるユーザ認証，スケジューる環境にあれば，クラウドコンピューティングが提ルタスク実行などのスケーラブルなサービスを提供

供する高速な計算機資源や，膨大な記憶容量を利用している．GAE では 1 日単位で無料割り当て分の可能となることを意味する．このことは，パソコン

リソースが定められており，それを超える使用を行と比べて CPU やメモリなどの機能に制限のあるモう場合に課金される．

バイル端末に与える影響の方が大きく，工夫次第でクラウドコンピューティングは〈V.3〉で述べた
IT システムの管理，維持の問題を解決できる可能

今までになかったアプリケーションが誕生し，農業現場で利用される可能性がある．

性がある．GAEj のアプリケーション構築は，GWT

このように，Java がサーバサイドプログラム開によるサーブレット開発とほぼ同じで，WAR ファ発の主流となっていることもあり，JAMF で実装

イルの配備先を Tomcat から App Engine へ変更すされた農業モデルは様々な環境で利用できる．今後，る程度である．JAMF-S と GWT を利用し，Java サー農業モデル実装基盤技術として更なる研究を進める

ブレットとしていくつかの農業モデルを開発していことで多くの活用と発展が期待できる．

るので，GAEj の利用は比較的スムーズに行えると謝辞
本研究の実施ならびに本論文のとりまとめにあた

業環境技術研究所），桑形恒男 博士（同），溝口勝

り，ご指導ならびにご助言をいただいた，平藤雅之

博士（東京大学），星岳彦 博士（東海大学），鈴木博士（筑波大学，北海道農業研究センター）に深甚

剛伸氏（長野県農業総合試験場）に感謝の意を表しなる感謝の意を表します．また，本論文をとりまとます．

めるにあたりご指導をいただいた，二宮正士 博士

なお，本研究の一部は，農林水産省研究プロジェ（東京大学，当時 筑波大学，中央農業総合研究センクト「増殖情報ベースによる生産支援システム開ター），林武司 博士（筑波大学，中央農業総合研究

発のための基盤研究」，「データベース・モデル協調センター），竹澤邦夫 博士（同）に感謝の意を表しシステムの開発」，文部科学省 科学技術振興調整費

ます．

重点解決型研究等の推進「地球環境データ統合・情本研究の遂行にあたり，システム構築についてご

報融合基盤技術の開発」，国家基幹技術「海洋地球協力をいただいた，木浦卓治氏（中央農業総合研究

観測探査システム」の基幹要素であるデータ統合・センター），深津時広 博士（同），Dr. Matthew R.

解析システムの支援によって行われた．プロジェク

Laurenson（元 中央農業総合研究センター），山川

ト研究において貴重なご助言，ご協力を頂いた関係

敦之氏（同）に感謝の意を表します．また，農業モ者諸氏に感謝申し上げます．

デルの実装についてご協力をいただいた，渡邊朋也

また，研究を進めるにあたり，ご支援，ご協力を博士（中央農業総合研究センター），菅原孝治 博士頂きながら，ここにお名前を記すことが出来なかっ（同），南石晃明 博士（九州大学），高橋渉氏（富山

た多くの方々に心より感謝申しあげます．

県農林水産総合技術センター），
長谷川利拡 博士（農田中慶：農業シミュレーションモデルにおける分散協調システムのためのフレームワークに関する研究

95

引用文献
1. Acock, B. and J.F. Reynolds (1989) The rationale

16. Arnold, K., J. Gosling, and D. Holmes (2001) プロ

for adopting a modular generic structure for

グラミング言語 Java, 第 3 版 . ピアソンエデュケー

crop simulators. Acta Horticulturae 248:391-396,

ション , 東京 , 597pp., ISBN4-8947-1343-7.

http://​www.actahort.org/​books/​248/​248_49.htm.

17. Basstanie, L.J.M. and H.H. van Laar (1982) Intro-

2. Adobe (2000) ActionScript Technology Center.

duction of CSMP by an elementary simulation pro-http://​www.adobe.com/​devnet/​actionscript.html

gram in Simulation of plant growth and crop production,

3. A d o b e ( 2 0 0 4 ) F l e x D e v e l o p e r C e n t e r .

F.W.T. Penning de Vries and H.H. van Laar, Eds.
Pudoc, Wageningen, the Netherlands, ch.2.2, 50-65,

http://​www.adobe.com/​devnet/​flex.html
4. A g g a r w a l , P . K . , M . J . K r o p f f , K . G . C a s s -ISBN90-220-0809-6.

man, and H.F.M. ten Berge (1997) Simulat-

18. Bentley, J. (2000) 珠玉のプログラミング , 2nd ed.

ing genotypic strategies for increasing rice

ピアソンエデュケーション , 東京 , 305pp., ISBN4-

yield potential in irrigated tropical environ-

8947-1236-9.

m e n t s . F i e l d C r o p s R e se a r c h 5 1 ( 1 -2):5-17,

19. Black, J.N., C.W. Bonython, and J.A. Prescott (1954)
Solar radiation and the duration of sunshine.

doi:10.1016/S0378-4290(96)01044-1.
5. Amazon (2006) Amazon S3. http://​aws.amazon.

Quartely Journal of the Royal Meteorological Society 80:231-235, doi:10.1002/qj.49708034411.

com/​s3/
6. A m a z o n(2006)

AmazonEC2.

20. Bloch, J. (2001) Effective Java プログラミング言語ガイド . ピアソン・エデュケーション , 東京 , 236pp.,

http://​aws.amazon.com/​ec2/
7. Ångström, A. (1924) Solar and terrestrial radiation. Quartely Journal of the Royal Meteorological

ISBN4-8947-1436-1.
21. Bolte, J. (1998) Object-Oriented Programming forSociety 50:121-126, doi:10.1002/qj.49705021008.

Decision Systems in Agricultural Systems Modeling

8. Apache Software Foundation (1995) Apacheand Simulation, R.M. Peart and R.B. Curry, Eds.

HTTP Server Project. http://​httpd.apache.org/

Marcel Dekker, New York, USA, ch.17, 629-650,

9. Apache Software Foundation (1999) Apache Tom-

22. Booch, G. (1995) Booch 法 : オ ブ ジ ェ ク ト 指 向 分

cat. http://​tomcat.apache.org/
10. Apache Software Foundation (2000) Apache Ant.

t i o nS o f t w a r e( 2 0 0 0 )F o u n d a -A p a c h e

S t r u t s .

tion

S o f t w a r e(2001)

Apache23. Boote, K.J., J.W. Jones, and G. Hoogenboom (1998)

F o u n d a -Agricultural Systems Modeling and Simulation, R.M.

Tapestry.

Peart and R.B. Curry, Eds. Marcel Dekker, New

http://​tapestry.apache.org/
13. Apache Software Foundation (2004) ApacheAxis2/Java. http://​ws.apache.org/​axis2/
14. APSIM (2006) APSIM Wiki. http://​www.apsim.
info/
15. Argent, R.M. and A.E. Rizzoli (2004) Developmentof Multi-Framework Model Components. Proceedings of the 2nd Biennial Meeting of iEMSs 1, Osnabrück, 365-370.

5.
Simulation of Crop Growth: CROPGRO Model in

http://​struts.apache.org/
12. A p a c h e

析と設計 , 第 2 版 . アジソンウェスレイパブリッ
シャーズジャパン , 東京 , 625pp., ISBN4-7952-9654-

http://​ant.apache.org/
11. A p a c h e

ISBN0-8247-0041-4.

York, USA, ch.18, 651-692, ISBN0-8247-0041-4.
24. Boote, K.J., J.W. Jones, G. Hoogenboom, W.D.
Batchelor, and C.H. Porter (2000) CROPGRO Plant
Growth and Partitioning Module in DSSAT v4 DataManagement and Analysis Tools, vol.4. Universityof Hawaii, Gainesville, Honolulu, USA, ch.2, 127,
ISBN1-886684-08-1.

中央農業総合研究センター研究報告96

第 20 号（2013. 11）

25. Bouma, J. and J.W. Jones (2001) An international

34. Croft, B.A., J.L. Howes, and S.M. Welch (1976) A

collaborative network for agricultural systems

Computer-based, Extension Pest Management De-

applications (ICASA). Agricultural Systems 70(2-livery System. Environmental Entomology 5(1):20-

3):355-368, doi:10.1016/S0308-521X(01)00051-8.

34.

26. Bouman, B.A.M., H. van Keulen, H.H. van

35. David, O., S.L. Markstrom, K.W. Rojas, L.R. Ahuja,

Laar, and R. Rabbinge (1996) The 'Schooland I.W. Schneider (2002) The Object Modelingof de Wit' Crop Growth Simulation Mod-

System in Agricultural System Models in Field Re-

els: A Pedigree and Historical Over-search and Technology Transfer, L.R. Ahuja, L. Ma,

view. Agricultural Science 52(2-3):171-198,

and T.A. Howell, Eds. Lewis Publishers, Florida,

doi:10.1016/0308-521X(96)00011-X.

USA, ch.15, 317-330, ISBN1-56670-563-0.

27. Bouman, B.A.M., M.J. Kropff, T.P. Tuong,

36. Dawson, F. and D. Stenerson (1998) Internet Cal-

M.C.S. Wopereis, H.F.M. ten Berge, and H.H.

endaring and Scheduling Core Object Specifica-

van Laar (2001) ORYZA2000: modeling low-tion (iCalendar). RFC 2445.

land rice. International Rice Research Insti-

37. Deerwester, S., S.T. Dumais, G.W. Furnas, T.K.

tute, Wageningen University and ResearchLandauer, and R. Harshman (1990) Indexing byCentre, Los Baños, Wageningen, 235pp.,

Latent Semantic Analysis. Journal of American

ISBN971-22-0171-6, with CD-ROM.

Society of Information Science 41(6):391-407,

28. Brennan, R.D., C.T. de Wit, W.A. Williams, and E.V.

doi:10.1002/(SICI)1097-4571(199009)41:63.0.CO;2-9.

Quattrin (1970) The Utility of a Digital Simula-

38. de Wit, C.T. (1965) Photosynthesis of leaf canopies.

tion Language for Ecological Modeling. Oecologia

Agricultural Research Report 663. Pudoc, Wa-(Berl.) 4(2):113-132, doi:10.1007/BF00377096.

geningen, the Netherlands, 57pp.

29. Bruhn, J.A., W.E. Fry, and G.W. Fick (1980) Simu-

39. de Wit, C.T. (1970) Dynamic Concepts in biology.

lation of Daily Weather Data Using Theoretical

Proceedings of the International Biological Pro-

Probability Distributions. Journal of Applied Me-gram / Plant Production Technical Meeting, Tre-

teorology 19(9):1029-1036.

bon, 17-23.

30. J.N. Buxton, Ed. (1968) Simulation Programming

40. de Wit, C.T., R. Brouwer, and F.W.T. Penning deLanguages. North-Holland Publishing Company,

Vries (1970) The simulation of photosynthetic sys-

Amsterdam, the Netherlands, 463pp.

tems. Proceedings of the International Biological

31. Canpolat, N. and J.P. Bolte (1993) Object-oriented
implementation of the CERES-Wheat model.
ASAE Paper 934052.

Program / Plant Production Technical Meeting,
Trebon, 47-70.
41. de Wit, C.T. (1978) Simulation of assimilation,

32. Carbonell, J. and J. Goldstein (1998) The Use of

respiration and transpiration of crops. Pudoc, Wa-

MMR, Diversity-Based Reranking for Reordering

geningen, the Netherlands, 148pp., ISBN90-220-

Documents and Producing Summaries. Proceed-

0601-8, with FST source code of BACROS andings of 21st Annual international ACM-SIGIRPHOTON.

Conference on Research and Development in Information Retrieval, 335-336.

42. DIAS (2006) DIAS デ ー タ 統 合・ 解 析 シ ス テ ム .
http://​www.editoria.u-tokyo.ac.jp/​dias/

33. Confalonieri, R. and S. Bocchi (2005) Evaluation of

43. Donatelli, M., G. Bellocchi, L. Carlini, and M. Co-

CropSyst for simulating the yield of flooded ricelauzzi (2005) CLIMA: a component-based weather

in northern Italy. European Journal of Agronomy

generator. Proceedings of MODSIM 2005, Mel-

23(4):315-326, doi:10.1016/j.eja.2004.12.002.

bourne, 627-633.

田中慶：農業シミュレーションモデルにおける分散協調システムのためのフレームワークに関する研究

97

44. Donatelli, M. and A.E. Rizzoli (2008) A Design for

56. 深津時広・平藤雅之 (2003) 圃場モニタリングの

Framework-Independent Model Components of

ためのフィールドサーバの開発 . 農業情報研究

Biophysical Systems. Proceedings of the 4th Bien-

12(1):1-12, J-GLOBAL ID:200902251820992584.

nial Meeting of iEMSs, 727-734.

57. Gao, L., Z. Jin, Y. Huang, and L. Zhang (1992) Rice

45. Donatelli, M., G. Bellocchi, E. Habyarimana, R.

Clock model - a computer model to simulate rice

Confalonieri, and B. Baruth (2009) CLIMA: adevelopment. Agricultural and Forest Meteorol-

weather generator framework. Proceedings ofogy 60(1-2):1-16, doi:10.1016/0168-1923(92)90071-B.

18th World IMACS / MODSIM Congress, Cairns,

58. Garner, W.W. and H.A. Allard (1920) Effect of the852-858.

relative length of day and night and other factors

46. Drenth, H., H.F.M. ten Berge, and J.J.M. Riethovenof the environment on growth and reproduction(1994) ORYZA simulation modules for potential

in plants. Journal of Agricultural Research 18:553-

and nitrogen limited rice production (SARP Re-

606.

search Proceedings). AB-DLO, TPE-WAU, IRRI,

59. Garner, W.W. and H.A. Allard (1923) Further

Wageningen, the Netherlands, 223pp., ISBN90-

studies in photoperiodism, the response of the73384-28-1, with FSE source code of ORYZA_N

plant to relative length of day and night. Journal

and ORYZA_0.

of Agricultural Research 23:871-920.

47. Duthie, J.A. (1997) Models of the Response of Fo-

60. Garett, J.J. (2005) Ajax: A New Approach to Web

liar Parasites to the Combined Effects of Temper-

Applications. http://​w ww.adaptivepath.com/​

ature and Duration of Wetness. Phytopathology

ideas/​essays/​archives/​000385.php

87:1088-1095.

61. Geng, S., F.W.T. Penning de Vries, and I. Supit

48. T h e E c l i p s e F o u n d a t i o n ( 2 0 0 1 ) E c l i p s e .
http://​www.eclipse.org/(1986) A Simple Method for Generating Daily
Rainfall Data. Agricultural and Forest Meteorol-

49. E c m a I n t e r n a t i o n a l ( 2 0 0 9 ) E C M A S c r i p t

ogy 36(4):363-376, doi:10.1016/0168-1923(86)90014-6.

Language Specification, 5th ed., 241pp.

62. GEO (2009) Gr oup on Ear t h Obs er vation.

http://​www.ecma-international.org/​publications/​
standards/​Ecma-262.htm

63. G K T E C H ( 2 0 0 1 )50. FAO (2010) 世界の食糧不安の現状 2008 年報告 .
国際農林業協働協会 , 東京 , 56pp.
51. 消

防

庁

(2010)

http://​www.earthobservations.org/

FDMA_JAPAN.

http://​twitter.com/​FDMA_JAPAN52. Fielding, R.T. (2000) Architectural Styles and the
Design of Network-based Software Architectures.
University of California Irvine, Dissertation.
53. Forrester, J.W. (1961) Industrial Dynamics. The
MIT Press, Cambridge, USA, 464pp., ISBN0-26256001-1.
54. Forrester, J.W. (1971) World Dynamics. WrightAllen Press, Cambridge, USA, 142pp.
55. F u k a i , S . a n d M . C o o p e r ( 1 9 9 5 ) D e velopment of drought-resistant culti-

触

れ

る

地

球 .

http://​www.tangible-earth.com/
64. Google (2001) Google 検 索 . http://​www.google.
co.jp/
65. G o o g l e(2005)

GoogleCalendar.

http://​w ww.google.com/​g ooglecalendar/​a bout.
html
66. Google (2005) Google マ ッ プ . http://​maps.google.
co.jp/
67. G o o g l e ( 2 0 0 5 ) G o o g l e M a p s A P I .
http://​code.google.com/​apis/​maps/
68. Google (2005) Google code. http://​c ode.google.
com/
69. Google (2006) Google Earth. http://​earth.google.
co.jp/

vars using physiomorphological traits

70. Google (2006) KML チュートリアル . http://​code.

in rice. Field Crops Research 40(2):67-86,

google.com/​a pis/​k ml/​d ocumentation/​k ml_tut.

doi:10.1016/0378-4290(94)00096-U.

html

中央農業総合研究センター研究報告98

71. G o o g l e(2006)

GoogleSketchUp.

( 2 0 0 6 )G o o g l e

83. Hillyer, C., J. Bolte, F. van Evert, and A. Lamaker(2003) The ModCom modular simulation system.

http://​sketchup.google.com/
72. G o o g l e

第 20 号（2013. 11）

A p p s .

http:/​/​www.google.com/​apps/
73. G o o g l e ( 2 0 0 6 ) G o o g l e W e b T o o l k i t .
http://​code.google.com/​webtoolkit/
74. G o o g l e ( 2 0 0 8 ) G o o g l e A p p E n g i n e .
http://​code.google.com/​appengine/

European Journal of Agronomy 18(3-4):333-343,
doi:10.1016/S1161-0301(02)00111-9.
84. 平 藤 雅 之 (1999) 増 殖 情 報 ナ ビ ゲ ー タ .
http://​agrinfo.narc.affrc.go.jp/
85. Hirafuji, M., K. Tanaka, T. Kiura, and A. Otsuka (2000) Modelbase System: A Distributed

75. Graf, B., O. Rakotobe, P. Zahner, V. Deluc-

Model Database on The Internet. Proceedings ofchi, and A.P. Gutierrez (1990) A Simula-

IWS2000 International Workshop on Asia Pacifiction Model for the Dynamics of Rice Growth

Advanced Network and its Applications Applica-

and Development: Part I - The Carbon Bal-tion Area, Tsukuba, 57-61.

ance. Agricultural Systems 32(4):341-365,
doi:10.1016/0308-521X(90)90099-C.
76. Gregersen, J.B., P.J.A. Gijsbers, and S.J.P.
Westen (2007) OpenMI: Open modelling interface. Journal of Hydroinformatics 9(3):175-191,
doi:10.2166/hydro.2007.023.
77. 芳賀敏郎・橋本茂司 (1980) 非線形回帰 , 回帰分
析と主成分分析 . 日科技連出版社 , 東京 , 204-217,
ISBN4-8171-2011-8.

86. 平藤雅之 (2004) フィールドサーバによるユビキタ
ス環境とセンサネットワークの構築 . 第 18 回 回路とシステム ワークショップ 講演要旨集 , 軽井沢 ,175-180.
87. 平

藤

雅

之 (2005) Field Server.

http://​model.job.affrc.go.jp/​FieldServer/​default.
htm
88. 平

藤

雅

之 (2010) Sensor Cloud.

http://​twitter.com/​sensorcloud78. 長谷川浩 (1999) 圃場試験における土壌－作物系包89. Hirano, S. (1997) HORB: Distributed execu-

括的シミュレーションモデル [14]. 農業および園芸

tion of Java programs. Lecture Notes in Com-74(12):64-68.

puter Science 1274/1997:29-42, doi:10.1007/3-540-

79. Hasegawa, T. and T. Horie (1997) Modeling the63343-X_36.

effects of nitrogen nutrition on rice growth and

90. Hirao, T., Y. Sasaki, and H. Isozaki (2001) An Ex-

development in Applications of Systems Approaches

trinsic Evaluation for Question-Biased Text Sum-at the Field Level, vol.2, M.J. Kropff, P.S. Teng,marization on QA tasks. Proceedings of NAACL

P.K. Aggarwal, J. Bouma, B.A.M. Bouman, J.W.

2001 workshop on Automatic Summarization, 61-

Jones, and H.H. van Laar, Eds. Kluwer Academic

68.

Publisher, Dordrecht, the Netherlands, 243-257,
ISBN0-7923-4286-0.

91. Holland, J.H. (1975) Adaptation in Natural andArtificial Systems: An Introductory Analysis with

80. Hasegawa, T., K. Tanaka, W. Takahashi, andApplications to Biology, Control and Artificial In-

R.L. Williams (2001) JAPONICA, a field-level

telligence. University of Michigan Press, 206pp.,

rice growth model, and its use. Proceedings ofISBN0472084607.

the NIAES-STA International Workshop 2001

92. 本田茂広・下村道彦・南石晃明・木浦卓治・二宮

on Crop Monitoring and Prediction at Regional

正士・大谷信博 (1998) 青果物市況情報データベー

Scales:85-94.

ス NAPAS を用いた JAVA-RMI と HORB の性能

81. 林孝・越水幸男 (1988) 葉いもち発生予察のコン
ピュータプログラム (BLASTAM) の開発 . 東北農業試験場研究報告 78:123-138.
82. 林陽生・石郷岡康史・横沢正幸・鳥谷均・後藤慎吉 (2001) 温暖化が日本の水稲栽培の潜在的特性に及ぼすインパクト . 地球環境 6(2):141-148.

比較 . 情報処理学会研報 98(15):43-48.
93. 堀江武 (1981) 気象と作物の光合成，蒸散そして生長に関するシステム生態学的研究 . 京都大学 , 博士
論文 .

田中慶：農業シミュレーションモデルにおける分散協調システムのためのフレームワークに関する研究

99

94. 堀 江 武・ 中 川 博 視 (1990) イ ネ の 発 育 過 程 の

101. Hunt, L.A., G. Hoogenboom, J.W. Jones, and J.W.

モデル化と予測に関する研究 第 1 報 モデル

White (2006) ICASA Version 1.0 Data Standardsの基本構造とパラメータ推定法および出穂予

for Agricultural Research and Decision Support.

測 へ の 適 用 . 日 本 作 物 学 会 紀 事 59(4):687-695,International Consortium for Agricultural System

J-GLOBAL ID:200902079851988600.

Applications.

95. Horie, T., H. Nakagawa, H.G.S. Centeno, and M.J.

102. IBM (1975) Continuous System Modeling Pro-

Kropff (1995a) The Rice Crop Simulation Modelgram III (CSMP III), Program Reference Manual.,

SIMRIW and Its Testing in Modeling the Impact of

206pp., SH19-7001-3.

Climate Change on Rice Production in Asia, R.B. Mat-

103. ICASA (2004) International Consortium for Agri-thews, M.J. Kropff, D. Bachelet, and H.H. van Laar,

cultural Systems Applications. http://​www.icasa.

Eds. CAB International, Wallingford, UK, ch.5, 51-

net/

66, ISBN0-85198-959-4.
96. Horie, T., H. Nakagawa, M. Ohnishi, and J.
Nakano (1995b) Rice Production in Japan under Current and Future Climates in Model-

104. IPCC (2007) Climate Change 2007: The PhysicalScience Basis. Cambridge University Press, Cambridge, United Kingdom, ISBN978-0521-88009-1.
105. I R R I( 2 0 0 4 )O R Y Z A 2 0 0 0 .

ing the Impact of Climate Change on Rice Pro-

http://​www.knowledgebank.irri.org/​oryza2000/

duction in Asia, R.B. Matthews, M.J. Kropff,

106. ISO/IEC JTC1/SC22/WG5 (1982) Welcome

D. Bachelet, and H.H. van Laar, Eds. CAB

to the official home of Fortran Standards.

International, Wallingford, UK, ch.8, 143-164,

http://​www.nag.co.uk/​SC22WG5/

ISBN0-85198-959-4.
97. 堀 江 武・ 井 上 直 人・ 大 西 政 夫・ 中 川 博 視・ 松 井

107. Iwaki, H. (1977) Computer Simulation of Growth
Process of Paddy Rice. JARQ 11(1):6-11.

勤 (1995) 水稲の生育・生産過程の動的予測モデ

108. Izumi, T., M. Yokozawa, and M. Nishimori (2009)

ルの開発 . 平成 6 年度科学研究費補助金（一般研

Parameter estimation and uncertainty analysis

究 A）研究成果報告書 , 研究課題番号 03404007,

of a large-scale crop model for paddy rice: Appli-

SIMRIW の FORTRAN ソースコード付 .

cation of a Bayesian approach. Agricultural and

98. Horie, T., H. Yoshida, S. Kawatsu, K. Katsura, K.
Homma, and T. Shiraiwa (2005) Effects of elevatedForest Meteorology 149(2):333-348, doi:10.1016/
j.agrformet.2008.08.015.

atmospheric CO2 concentration and increased

109. Jacobson, I., P. Jonsson, M. Christerson, andtemperature on rice: implications for Asian rice

G. Overgaard (1995) オ ブ ジ ェ ク ト 指 向 ソ フ

production in Rice is life: scientific perspectives forト ウ ェ ア 工 学 OOSE. ト ッ パ ン , 東 京 , 491pp.,

the 21st century. IRRI, Manila, Philippines, 536-539,

ISBN4-8101-8066-2.

ISBN971-22-0204-6.
99. Hunt, L.A. and K.J. Boote (1998) Data formodel operation, calibration, and evalua-110. Johnson, R.E. and V.F. Russo (1991) Reusing Object-Oriented Designs. University of Illinois technical report UIUCDCS:91-1696.

tion in Understanding Options for Agricultural

111. J o h n s o n , R . E . ( 1 9 9 7 ) C o m p o n e n t s , F r a m e -Production, G.Y. Tsuji, G. Hoogenboom, andworks, Patterns. ACM 40(10):39-42,

P.K. Thornton, Eds. Kluwer Academic Pub-doi:10.1145/258366.258378.

lishers, Dordrecht, the Netherlands, 9-39,
ISBN0-7923-4833-8.

112. C.A. Jones and J.R. Kiniry, Eds. (1986) CERES-Maize: A Simulation Model of Maize

100. Hunt, L.A., J.W. White, and G. Hoogenboom (2001)

Growth and Development. Texas A&M

Agronomic data: advances in documentation

University Press, Texas, USA, 194pp.,

and protocols for exchange and use. Agricul-

ISBN0-89096-269-3, with 5 inch floppy disk.

tural Systems 70(2-3):477-492, doi:10.1016/S0308521X(01)00056-7.

中央農業総合研究センター研究報告100

第 20 号（2013. 11）113. Jones, J.W., G.Y. Tsuji, G. Hoogenboom, L.A.

123. Kiura, T., K. Tanaka, M.R. Laurenson, S. Honda,

Hunt, P.K. Thornton, P.W. Wilkens, D.T. Imam-and M. Shimomura (2000) Distributed Agricultur-ura, W.T. Bowen, and U. Singh (1998) Decision

al Model System. Proceedings of AFITA2000 2nd

support system for agrotechnology transfer:

Asian Conference for Information Technology in

DSSAT v3 in Understanding Options for Agricul-

Agriculture, Suwon, 251-256.

tural Production, G.Y. Tsuji, G. Hoogenboom, and124. Kobayashi, K. (1994) A very simple model of crop

P.K. Thornton, Eds. Kluwer Academic Pub-

growth: derivation and application. International

lishers, Dordrecht, the Netherlands, 129-156,

Rice Research Notes 19(3):50-51.

ISBN0-7923-4833-8.

125. 近藤純正・中村亘・山崎剛 (1991) 日射量および下114. Jones, J.W., B.A. Keating, and C.H. Porter

向き大気放射量の推定 . 天気 38(1):41-48.

(2001) Approaches to modular model develop-

126. Kouno, T., M. Ayabe, H. Hitomi, T. Machida, and S.

ment. Agricultural Systems 70(2-3):421-443,

Moriizumi (2000) Development of Relational Sys-

doi:10.1016/S0308-521X(01)00054-3.

tem between Plant Pathology Database and Pes-

115. Jones, J.W., G. Hoogenboom, C.H. Porter, K.J.

ticide Database. Proceedings of AFITA2000 2nd

Boote, W.D. Batchelor, L.A. Hunt, P.W. Wilkens,

Asian Conference for Information Technology in

U. Singh, A.J. Gijsman, and J.T. Ritchie (2003) The

Agriculture, Suwon, 140-144.

DSSAT cropping system model. European Jour-

127. Kouno, T., T. Machida, and R. Tagami (2002) Im-

nal of Agronomy 18(3-4):235-265, doi:10.1016/S1161-

provement of Crop Protection Support System

0301(02)00107-7.

"PaDB". -Addition of cultivation calendar and116. Keating, B.A., P.S. Carberry, G.L. Hammer, M.E.
Probert, M.J. Robertson, D. Holzworth, N.I. Huth,

Distributed databases-. Agricultural Information
Research 11(1):51-63.

J.N.G. Hargreaves, H. Meinke, Z. Hochman, et al.

128. Kralisch, S. and P. Krause (2006) JAMS - A(2003) An overview of APSIM, a model designed

Framework for Natural Resource Model Devel-

for farming systems simulation. European Journal

opment and Application. Proceedings of the 3rdof Agronomy 18(3-4):267-288, doi:10.1016/S1161-

Biennial Meeting of iEMSs, Burlington.

0301(02)00108-9.

129. Kropff, M.J., H.H. van Laar, and R.B. Matthews

117. 桐谷圭治 (1997) 日本産昆虫，ダニ，線虫の発育零(1994) ORYZA 1, An ecophysiological model for ir-

点と有効積算温度 . 農業環境技術研究所資料 21:1-

rigated rice production (SARP Research Proceed-

72, ISSN0912-7542.

ings). AB-DLO, TPE-WAU, IRRI, Wageningen, the118. 岸田恭允 (1985) 九州・沖繩地方における日出没、南中、可照時間、薄明 . 九州農試研究資料 65:55,
ISSN0453-0365, BASIC ソースコード付 .
119. 気象

庁(2002)

アメ

Netherlands, 110pp.
130. 黒瀬義孝・丸山篤志・大場和彦 (2004) インターネッ
トを使った小麦の出穂期，成熟期予測情報の公開 .

ダス .

http://​www.jma.go.jp/​jp/​amedas/

九州農業研究 66:23.
131. Kuwagata, T., T. Hamasaki, and T. Watanabe

120. 喜 多 泰 代 (2007) 二 次 元 濃 度 ヒ ス ト グ ラ ム を 用(2008) Modeling water temperature in a rice

いた画像間変化抽出 . 電子情報通信学会論文誌

paddy for agro-environmental research. Agricul-

J90-D(8):1957-1965.

tural and Forest Meteorology 148(11):1754-1766,

121. 北野宏 (1993) 遺伝的アルゴリズム . 産業図書 , 東
京 , 328pp., ISBN4782851367.

doi:10.1016/j.agrformet.2008.06.011.
132. Larsen, G.A. and R.B. Pense (1981) Stochastic

122. 木浦卓治 (1996) 開発ソフトウェア・データベー

Simulation of Daily Climate Data. United States

ス 所 在 情 報 . http://​agrinfo.narc.affrc.go.jp/​fs/​

Department of Agriculture Statistical Reporting

cdrom/​shiryou/​shiryou4/​html/

Service Research Division, Washington, D.C., Report No. AGES810831.

田中慶：農業シミュレーションモデルにおける分散協調システムのためのフレームワークに関する研究

101

133. Laurenson, M.R., T. Kiura, and S. Ninomiya (2000)

140. Littleboy, M., D.M. Silburn, D.M. Freebairn, D.R.

Accessing online weather databases from Java.

Woodruff, G.L. Hammer, and J.K. Leslie (1992)

Proceedings of IWS2000 International Workshop

Impact of soil erosion on production in croppingon Asia Pacific Advanced Network and its Appli-

systems. I. Development and validation of a simu-

cations Application Area, Tsukuba, 193-198.

lation model. Australian Journal of Soil Research134. Laurenson, M.R. (2001) MetBroker Programmers
Guide. http://​w ww.agmodel.net/​P rogrammersGuide.pdf
135. Laurenson, M.R., T. Kiura, and S. Ninomiya (2002)

30(5):757-774, doi:10.1071/SR9920757.
141. MacHardy, W.E. and D.M. Gardoury (1989) A Revision of Mills's Criteria for Predicting Apple Scab
Infection Periods. Phytopathology 79:304-310.

Providing Agricultural Models with Mediated Ac-

142. Maclean, J.L., D.C. Dawe, B. Hardy, and G. Het-

cess to Heterogeneous Weather Databases. Ap-tel (2002) Rice Almanac, 3rd ed. IRRI, Los Baños,

plied Engineering in Agriculture 18(5):617-625.

Philippines, 253pp.

136. Leavesley, G.H., P.J. Restrepo, L.G. Stannard,

143. Magarey, R.D., J.M. Russo, R.C. Seem, and D.M.

L.A. Frankoski, and A.M. Sautins (1996) The

Gadoury (2005) Surface wetness duration underModular Modeling System (MMS) - A Mod-

controlled environmental conditions. Agricul-

eling Framework for Multidisciplinary Re-

tural and Forest Meteorology 128(1-2):111-122,

search and Operational Applications in GIS

doi:10.1016/j.agrformet.2004.07.017.

and Environmental Modeling: Progress and Research Issues. Wiley, Ft. Collins, USA, 155-158,
ISBN0-470-23677-9.
137. Leffelaar, P.A. and T.J. Ferrari (1989) Some elements of dynamic simulation in Simulation and

144. University of Minnesota (2008) MapServer. http:/​/​
mapserver.org/
145. 丸山篤志・大場和彦・黒瀬義孝 (2002) 秋播性程度の異なるコムギ 3 品種の DVR 法による出穂期予測 .
九州農業研究 64:15.

systems management in crop protection, R. Rabbinge,

146. Masaki, Y., T. Kuwagata, and Y. Ishigooka (2009)

S.A. Ward, and H.H. van Laar, Eds. Pudoc, Wa-

Precise estimation of hourly global solar radia-

geningen, the Netherlands, ch.2.1, 19-45, ISBN90-

tion for micrometeorological analysis by using

220-0899-1.

data classification and hourly sunshine. Theo-138. Leffelaar, P.A. (1999) A simulation language:
Continuous System Modeling Program III in On

retical and Applied Climatology 100(3-4):283-297,
doi:10.1007/s00704-009-0191-0.

Systems Analysis and Simulation of Ecological Pro-

147. 増井俊之 (1999) インターフェイスの街角 (16) 地図

cesses with Examples in CSMP, FST and FORTRAN

データベースの活用 , UNIX MAGAZINE., http://​(Current Issues in Production Ecology), 2nd ed.,pitecan.com/​articles/​UnixMagazine/​PDF/​if9903.

P.A. Leffelaar, Ed. Kuluwer Academic Publish-

pdf.

ers, the Netherlands, Dordrecht, ch.3, 29-40,
ISBN0-7923-5526-1.

148. 松田昭美 (1959) 暖地における水稲栽培と気象要因の統計学的研究 (1). 農業気象 15(1):15-20.

139. Leffelaar, P.A., C. Rappoldt, and D.W.G. van

149. McCown, R.L. and J. Williams (1989) AUSIM: a

Kraalingen (1999) Simulation using a gen-cropping systems model for operational research.

eral purpose computer language in On Systems

Proceedings of the Simulation Society of Austra-

Analysis and Simulation of Ecological Processes

lia and International Association for Mathematics

with Examples in CSMP, FST and FORTRAN (Cur-and Computers in Simulation 8th Biennial Confer-

rent Issues in Production Ecology), 2nd ed., P.A.

ence, Canberra, 54–59.

Leffelaar, Ed. Kuluwer Academic Publishers,
the Netherlands, Dordrecht, ch.10, 143-168,
ISBN0-7923-5526-1.

中央農業総合研究センター研究報告102

第 20 号（2013. 11）150. McCown, R.L., G.L. Hammer, J.N.G. Hargreaves,

162. Munakata, K. (1976) Effects of temperature and

D.P. Holzworth, and D.M. Freebairn (1996) APSIM:

light on the reproductive growth and ripening ofa Novel Software System for Model Development,

rice. Proceedings of the Symposium on Climate &Model Testing and Simulation in Agricultural Sys-

Rice, IRRI, 187-207.

tems Research. Agricultural Systems 50(3):255-271,
doi:10.1016/0308-521X(94)00055-V.
151. McMennamy, J.A. and J.C. O'Toole (1983) RICEMOD: a physiologically based rice growth andyield model, IRRI Research Paper Series 87. IRRI,
Los Baños, Philippines, 33pp.
152. Meadows, H.D., L.D. Meadows, J. Randers, andW.W. Behrens III (1972) 成長の限界 . ダイヤモン
ド社 , 東京 , 203pp., ISBN4478200017.
153. Microsoft (2008) Microsoft Online Services.
http://​www.microsoft.com/​online/

163. Nakagawa, H., K. Sudo, and T. Horie (1993) A Prediction System of Rice Development Stage for the
Crop Management. Proceedings of First Asian
Crop Science Conference, Korea, 243-249.
164. 中川博視・堀江武 (1995) イネの発育過程のモデル化と予測に関する研究 第 2 報 幼穂の分化・発達過程の気象的予測モデル . 日本作物学会紀事 64(1):3342, J-GLOBAL ID:200902155333059180.
165. Nakagawa, H., T. Horie, and T. Matsui (2003) Effects of climate change on rice production andadaptive technologies in Rice Science: Innovations

154. Microsoft (2010) Microsoft Windows Azure.

and Impact for Livelihood, Proceedings of the Inter-

http://​www.microsoft.com/​windowsazure/national Rice Research Conference, T.W. Mew, D.S.

155. Mills, W.D. and A.A. Laplante (1951) Diseases andBrar, S. Peng, D. Dawe, and B. Hardy, Eds. IRRI,

insects in the orchard. Cornell Extension Bulletin

Chinese Academy of Engineering, Chinese Acad-

711:20-28.

emy of Agricultural Sciences, Manila, Philippines,

156. Mills, E. (2005) Mapping a revolution with 'mashups'. http://​news.com.com/​2009-1025_3-5944608.
html
157. Monsi, M. and T. Saeki (1953) Über den Lichtfak-

635-658, ISBN971-22-01848.
166. Nelson, R. (2002) Description of ClimGen, a Weather Generation Program. http:// ​www.bsyse.wsu.
edu/​climgen/​documentation/​description.htm.

tor in den Pfanzengesellschaften und seine Be-

167. 二宮正士 (2000) インターネットを活用した農業判

deutung für die Stoffproduktion. Japanese Journal

断支援構築に向けて . 農林水産技術研究ジャーナ

of Botany 14:22-52.

ル 23(4):46-54.

158. Monteith, J.L. (1972) Solar Radiation and Produc-168. 二宮正士 (2001) インターネット上の気象データのtivity in Tropical Ecosystems. The Journal of Ap-

効率利用を可能にする支援ソフト MetBroker. 農

plied Ecology 9(3):747-766.

林水産技術研究ジャーナル 24(3):9-12.

159. Monteith, J.L. and C.J. Moss (1977) Climate andthe Efficiency of Crop Production in Britain. Philo-169. 二宮正士 (2001) IT 農業に向けた技術開発の考え方 .
農林水産研究ジャーナル 24(7):16-23.

sophical Transactions of the Royal Society of Lon-

170. 二宮正士 (2001) 農林水産省を中心とする農業 IT

don. Series B, Biological Sciences 281(980):277-294.

研究プロジェクトの現状と今後の課題 . 農業機械

160. Mori, T., M. Nozawa, and Y. Asada (2005)

学会誌 63(4):4-11.

Multi-Answer-Focused Multi-Document Sum-

171. 二 宮 正 士・LaurensonMatthew・ 木 浦 卓 治 (2003)

marization Using a Question-Answering En-

分散協調型農業情報システムと気象データ利用

gine. ACM Transactions on Asian Language

仲 介 ソ フ ト ウ ェ ア MetBroker. 農 業 お よ び 園 芸

Information Processing (TALIP) 4(3):305-320,

78(1):175-181.

doi:10.1145/1111667.1111672.
161. Mozilla (2005) Firebug. http://​getfirebug.com/

172. Nix, H.A. (1984) Minimum Data Sets for Agrotechnology Transfer. Proceedings of the International
Symposium on Minimum Data Sets for Agrotechnology Transfer, ICRISAT, Patancheru, India,
181-188.

田中慶：農業シミュレーションモデルにおける分散協調システムのためのフレームワークに関する研究

173. N O A A ( 2 0 0 4 ) N a t i o n a l W e a t h e r S e r v i c e .

103191. O M G ( 2 0 0 2 ) M o d e l D r i v e n A r c h i t e c t u r e .
http://​www.omg.org/​mda/

http://​www.weather.gov/
174. Noguchi, Y. (1981) Solar Radiation and Sunshine

192. OMG (2008) Common Object Request Broker

Duration in East Asia. Archives for Meteorology,

Archtecture (CORBA) Specification., 540pp.

Geophysics, and Bioclimatology 29(1-2):111-128,

193. 大谷徹・田中慶・菅原幸治・LaurensonMatthew・

doi:10.1007/BF02278195.

渡邊朋也・梅本清作 (2001) ナシ黒星病の感染予測

175. 農研センター ; 現 農研機構 中央農研 (1999) 増殖情

モデルによる発生予察の試み . 農業情報学 3:39-41.

報 ベ ー ス . http://​agrinfo.narc.affrc.go.jp/​zousoku.

194. Otsuka, A. and S. Ninomiya (1998) Web-based,

htm
176. 農 研 機 構

Conceptual Retrieval System of Agricultural Cas中 央 農 研 (2000) AgModel.

177. 農 研 機 構

es. Proceedings of AFITA1998 1st Asian Conference for Information Technology in Agriculture,

http://​www.agmodel.org/
中 央 農 研 (2000) MetBroker.

http://​w ww.agmodel.org/​p rojects/​m etbroker.

Wakayama, 203-206.
195. Papajorgji, P.J. and T.M. Shatar (2004) Using
the Unified Modeling Language to develop soil

html
中 央 農 研 (2000) ChizuBroker.

water-balance and irrigation-scheduling models.

http://​www.agmodel.org/​projects/​chizubroker.

Environmental Modelling & Software 19:451-459,

html

doi:10.1016/S1364-8152(03)00160-9.

178. 農 研 機 構

179. 農研機構 中央農研 (2005) データベース・モデル協

196. Papajorgji, P.J., H.W. Beck, and J.L. Braga

調システム . http://​www.agmodel.net/​DataModel/(2004) An architecture for developing service-180. 農 研 機 構 中 央 農 研 (2005) イ ネ デ ー タ ベ ー ス .

oriented and component-based environmen-

http://​www.agmodel.org/​RiceDB/
181. 農林水産省 (2003) 農林業家のパソコン・インター
ネットの利用等に関する意向調査結果 .

tal models. Ecological Modelling 179(1):61-76,
doi:10.1016/j.ecolmodel.2004.05.013.
197. Papajorgji, P.J. and P.M. Pardalos (2006) Software

182. 農林水産省 農林水産技術会議事務局 (2007) デー

Engineering Techniques Applied to Agricul-

タベース・モデル協調システムの開発 . 研究成果

tural Systems. Springer, New York, USA, 247pp.,

448., 139pp.

ISBN0-387-28170-3.
地 域 の IT を 取

198. Papajorgji, P.J., R. Clark, and E. Jallas (2009) The

り 入 れ た 農 林 水 産 業 の 取 組 事 例 .

Model Driven Architecture Approach: A Frame-

http://​www.maff.go.jp/​j/​finding/​zirei/​08_it/

work for Dveloping Complex Agricultural Sys-

184. NTT ド コ モ (2006) 作 ろ う i モ ー ド コ ン テ ン ツ .

tems in Advances in Modeling Agricultural Systems.

http://​w ww.nttdocomo.co.jp/​s ervice/​imode/​

Springer, New York, USA, 1-18, ISBN0-387-75180-

make/

7.

183. 農 林 水 産 省 (2008)

185. Object Refinery Limited (2005) JFreeChart.
http://​www.jfree.org/​jfreechart/

199. Penning de Vries, F.W.T. (1980) Simulation models of growth of crops, particularly under nutrient

186. OGC (2002) OpenGIS Web Map Service (WMS)

stress. Proceedings of the 15th Colloquium of the

Implementation Specification. OGC01-068r3.,

International Potash Institute, Wageningen, 213-

http://​www.opengeospatial.org/​standards/​wms.

226.

187. O G C ( 2 0 0 8 ) O G C K M L . O G C 0 7 - 1 4 7 r 2 ,http://​www.opengeospatial.org/​standards/​kml.

200. Penning de Vries, F.W.T. (1982) Systems analysis
and models of crop growth in Simulation of plant

188. OMG (1991) CORBA. http://​www.corba.org/

growth and crop production, F.W.T. Penning de

189. O M G ( 1 9 9 4 ) U n i f i e d M o d e l i n g L a n g u a g e .

Vries and H.H. van Laar, Eds. Pudoc, Wagenin-

http://​www.uml.org/
190. O M G ( 1 9 9 7 ) O b j e c t M a n a g e m e n t G r o u p .
http://​www.omg.org/

gen, the Netherlands, ch.1.2, 9-19, ISBN90-2200809-6.

中央農業総合研究センター研究報告104

第 20 号（2013. 11）201. Penning de Vries, F.W.T., D.M. Jansen, H.F.M. ten

211. Richardson, C.W. and D.A. Wright (1984) WGEN:

Berge, and A. Bakema (1989) Simulation of eco-

A Model for Generating Daily Weather Variables.

physiological processes of growth in several an-

United States Department of Agriculture Agricul-

nual crops. Pudoc, Wageningen, the Netherlands,

ture Research Service, ARS-8, with FORTRAN

271pp., ISBN90-220-0937-8, with CSMP source

source code of WGEN.

code of MACROS.

212. Richardson, G.P. and A.L. Pugh III (1981) Intro-

202. Pickering, N.B., J.W. Hansen, J.W. Jones, C.M.

duction to System Dynamics Modeling. Productiv-

Wells, V.K. Chan, and D.C. Godwin (1994) Weath-

ity Press, Portland, USA, 413pp., ISBN0-915299-24-

erMan: A Utility for Managing and Generating

0.

Daily Weather Data. Agronomy Journal 86:332337.

213. Ritchie, J.T. (1981) Soil Water Availability. Plant
and Soil 58(1-3):327-338, doi:10.1007/BF02180061.

203. Plentinger, M.C. and F.W.T. Penning de Vries

214. Ritchie, J.T., E.C. Alocilja, U. Singh, and G. Uehara(1996) CAMASE, Register of Agro-ecosystems(1987) IBSNAT and the CERES-Rice model inModels. AB-DLO, Wageningen, the Netherlands,

Weather and Rice. IRRI, Los Baños, Philippines, 271-

420pp.

281, ISBN971-104-178-2.

204. Porter, C.H. and J.W. Jones (1998) Module Struc-215. Ritchie, J.T., D.C. Godwin, and S. Otter-Nacke

ture in DSSAT v4 Crop Model Documentation, vol.4,(1988) CERES-wheat: A Simulation Model ofJ.W. Jones, G. Hoogenboom, K.J. Boote, and C.H.

Wheat Growth and Development. Texas A&M

Porter, Eds. ICASA, University of Hawaii, Hawaii,

University Press, Texas, USA.

USA, ch.Appendix C, 7.
205. Prototype Core Team (2006) Prototype JavaScript
Framework. http://​www.prototypejs.org/

216. Ritchie, J.T., U. Singh, D.C. Godwin, and W.T.
Bowen (1998) Cereal growth, development andyield in Understanding Options for Agricultural

206. Rahman, J.M., S.P. Seaton, and S.M. Cuddy (2004)

Production, G.Y. Tsuji, G. Hoogenboom, and P.K.

Making Frameworks More Useable: Using Model

Thornton, Eds. Kluwer Academic Publishers, Dor-Introspection and Metadata to Develop Modeldrecht, the Netherlands, 79-98, ISBN0-7923-4833-8.

Processing Tools. Environmental Modelling

217. Rizzoli, A.E., G.H. Leavesley, J.C. Ascough II,

and Software 19(3):275-284, doi:10.1016/S1364-

R.M. Argent, I.N. Athanasiadis, V. Brilhante,

8152(03)00153-1.

F.H.A. Claeys, O. David, M. Donatelli, P. Gijs-

207. Ramsey, P. (2006) Mashing Up the Enterprise.

bers, et al. (2008) Integrated Modelling Frame-

http://​w ww.gpsworld.com/​g is/​integration-and-works for Environmental Assessment andstandards/​mashing-up-enterprise-7450

Decision Support in Environmental Modelling,

208. Rappoldt, C. and D.W.G. Kraalingen (1996) The

Software and Decision Support, A.J. Jakeman, A.A.

Fortran Simulation Translator FST version 2.0.

Voinov, A.E. Rizzoli, and S.H. Chen, Eds. Else-Introduction and Reference Manual. AB-DLO,

vier, Amsterdam, the Netherlands, ch.7, 101-118,

Wageningen, Quantitative Approaches in Systems

ISBN0-08-056886-6.

Analysis No. 5.

218. Rumbaugh, J.R., M.R. Blaha, W. Lorensen, F.

209. Reynolds, J.F. and B. Acock (1997) Modular-

Eddy, and W. Premerlani (1992) オブジェクト指向

it y a n d g e ne ri c n e s s i n p l a n t a n d e c o s ys -方法論 OMT. トッパン , 東京 , 544pp., ISBN4-8101-

tem models. Ecological Modelling 94(1):7-16,

8527-0.

doi:10.1016/S0304-3800(96)01924-2.
210. Richardson, C.W. (1981) Stochastic simulation ofdaily precipitation, temperature, and solar radiation. Water Resources Research 17(1):182-190,
doi:10.1029/WR017i001p00182.

219. Sagan, C. (2008) 20 世紀 in 百億の星と千億の生命 .
新潮社 , 東京 , ch.18, 357-372, ISBN978-4-10-2294055.
220. s a l e s f o r c e . c o m ( 2 0 0 8 ) F o r c e . c o m .
http://​www.salesforce.com/​platform/田中慶：農業シミュレーションモデルにおける分散協調システムのためのフレームワークに関する研究

105

221. 佐藤理史 (1998) 情報検索 , 長尾真・黒橋禎夫・佐234. 杉浦俊彦・黒田治之・杉浦裕義 (2007) 温暖化がわ

藤理史・池原悟・中野洋 編 , 言語情報処理 , 言が国の果樹生育に及ぼしている影響の現状 . 園芸

語 の 科 学 9 巻 . 岩 波 書 店 , 東 京 , 第 2 章 , 51-93,

学研究 6(2):257-263.

ISBN4-00-010859-X.
222. Schmidt, E. (2006) A Conversation With Google
CEO Eric Schmidt. Proceedings of Search Engine
Strategies Conference, San Jose.
223. 清野豁 (1993) アメダスデータのメッシュ化について . 農業気象 48(4):379-383.
224. Seligman, N.G. (1990) The crop model record:
promise or poor show? in Theoretical Production

235. Sun Microsystems (1995) The Source for Java Developers. http://​java.sun.com/
236. Sun Microsystems (1999) NetBeans. http://​netbeans.org/
237. Sun Microsystems (1999) Java RMI over IIOP.
http://​java.sun.com/​products/​rmi-iiop/
238. Sun Microsystems (2003) JAXB Reference Implementation. https://​jaxb.dev.java.net/

Ecology: Reflections and Prospects, R. Rabbinge, J.

239. Sun Microsystems (2003) Java API for XML-

Goudriaan, H. van Keulen, F.W.T. Penning de

based RPC JAX-RPC 1.1 Sprcifications., 167pp.,

Vries, and H.H. van Laar, Eds. Pudoc, Wagenin-

https:// ​jax-rpc.dev.java.net/.

gen, the Netherlands, 249-258, ISBN90-220-1004-X.
225. Sencha (2006) Ext JS. http://​www.sencha.com/​
products/​js/
226. Sequeira, R.A., P.J.H. Sharpe, N.D. Stone, K.M. El-

240. Sun Microsystesms (2003) JavaServer Faces.
https:/​/​javaserverfaces.dev.java.net/
241. Sun Microsystems (2004) Java Remote Method
Invocation Specification., 121pp.

Zik, and M.E. Makela (1991) Object-oriented simu-

242. Sun Microsystems (2005) The Java API for

lation; plant growth and discrete organ to organ

XML Web Services (JAX-WS) 2.0., 143pp.,

interactions. Ecological Modelling 58(1-4):55-89,

https:// ​jax-ws.dev.java.net/.

doi:10.1016/0304-3800(91)90030-5.
227. Stöckle, C.O., S.A. Martin, and G.S. Campbell(1994) CropSyst, a Cropping Systems Simulation Model: Water/Nitrogen Budgets andCrop Yield. Agricultural Systems 46(3):335-359,
doi:10.1016/0308-521X(94)90006-2.

243. Sun Microsystems (2009) JavaServer Pages Specification Version 2.2., 594pp., http://​java.sun.com/​
products/jsp/.
244. Sun Microsystems (2009) Java Servlet Specification Version 3.0., 230pp.
245. 鈴木剛伸・木浦卓治・菅原幸治 (2000) Java を利用

228. Stöckle, C.O., M. Donatelli, and R. Nelson (2003)

したリンゴ黒星病感染予測モデルの作成 -- 情報のCropSyst, a cropping systems simulation model.

共有化をめざしたモデルの作成方法 . 農業情報学

European Journal of Agronomy 18(3-4):289-307,

2:100-103.

doi:10.1016/S1161-0301(02)00109-0.

246. 高橋渉・長谷川利拡・田中慶 (1998) 窒素の影響を

229. 須藤健一・牛尾昭浩・吉田智一・高橋英博・寺元

考慮した水稲生長モデルの GUI の開発とその検郁博 (2010) 兵庫県立農林水産技術総合センター研証 : JAPONICA の開発と富山県における施肥試

究報告（農業）58:31-35.

験への適用 . 日本作物学会紀事 67( 別号 2):126-127,

230. 菅原幸治・田中慶 (2008) 病害発生予測情報の RSS
自動配信システム . 農研機構 , 成果情報 .
231. 杉原保幸・羽生寿郎 (1980) 水稲の気候生産力の評
価に関する研究 I. 水稲の気候生産力評価の試み .
農業気象 36(2):71-79.
232. 杉村昌彦 (2009) イネの栽培可能性予測シミュレー
ター . http://​dias.tkl.iis.u-tokyo.ac.jp/​simriw/​jp/233. 杉浦俊彦 (1997) ニホンナシの気象生体反応の解析と生育予測モデルの開発 . 京都大学学位論文 .

naid:110001726385.
247. 高柳繁 (1991) 雑草害早期診断法開発のためのメヒ
シバとダイズ単植群落の成長・発育モデルの策定 .
雑草研究 36(4):372-379.
248. 田 中 慶 (1997) Javaに よ る 作 物 生育、 病 害 虫・ 雑 草 発 生 予 測 モ デ ル .
http://​cse.naro.affrc.go.jp/​ketanaka/​model/

中央農業総合研究センター研究報告106

第 20 号（2013. 11）

慶 (1997) Java Agricultural Mod-

261. 田中慶 (2010) アメダスなどの気象データを XML

el Framework API Documentation.

形式でアプリに取り込める MetXML. 農研機構 , 成

http://​cse.naro.affrc.go.jp/​ketanaka/​model/​docs/​

果情報 .

249. 田中

amf/262. Tang, L., Y. Zhu, D. Hannaway, Y. Meng, L. Liu,

250. 田中慶・林孝 (2002) MetBroker に対応した葉いも

L. Chen, and W. Cao (2009) RiceGrow: A rice

ち感染好適日推定プログラム Java 版 MetBLAS-

growth and productivity model. Wageningen

TAM. 農研機構 , 成果情報 .

Journal of Life Science 57(1):83-92, doi:10.1016/

251. 田中慶 (2004) 各種モデルを定期的に実行し結果を配信する自動システム . 農林水産技術会議 , 成果情

j.njas.2009.12.003.
263. ten Berge, H.F.M., M.C.S. Wopereis, J.J.M.
Riethoven, T.M. Thiyagarajan, and R. Sivasamy報.
252. 田中慶 (2004) Field Server Data & Image Viewer.
http://​pc105.narc.affrc.go.jp/​fieldserver/(1994) ORYZA_0 model applied to optimize N
use in rice in N Economy of Irrigated Rice: Field

253. 田中慶 (2006) Java による作物生育・病害虫発生予and Simulation Studies (SARP Research Proceedings),

測モデル開発のためのフレームワーク . 農業情報

H.F.M. ten Berge, M.C.S. Wopereis, and J.C. Shin,

研究 15(2):183-194, doi:10.3173/air.15.183.

Eds. AB-DLO, TPE-WAU, IRRI, Wageningen, the254. Tanaka, K., T. Fukatsu, and M. Hirafuji (2006)

Netherlands, 235-253.

Data and Image Viewer Application for Field-

264. Teng, P.S. and S. Savary (1992) Implement-

Server. Proceedings of SICE-ICASE International

ing the Systems Approach in Pest Manage-

Joint Conference 2006, Busan, 4852-4855.

ment. Agricultural Systems 40(1-3):237-264,255. Tanaka, K. (2006) The Utility Web Applications

doi:10.1016/0308-521X(92)90023-H.

for MetBroker. Proceedings of AFITA2006 5th

265. Teng, P.S., W.D. Bachelor, H.O. Pinnschmidt, andInternational Conference of the Asian Federation

G.G. Wilkerson (1998) Simulation of pest effects onof Information Technology in Agriculture, Banga-

crops using coupled pest-crop models: the poten-

lore, 603-609.

tial for decision support in Understanding Options

256. Tanaka, K., Y. Kita, M. Hirafuji, and S. Ninomiya

for Agricultural Production, G.Y. Tsuji, G. Hoogen-(2008) An Image Change Detection Application

boom, and P.K. Thornton, Eds. Kluwer Academic

for Field Server. Proceedings of World Con-

Publishers, Dordrecht, the Netherlands, 221-266,

ference on Agricultural Information and IT /ISBN0-7923-4833-8.

IAALD AFITA WCCA2008, Atsugi, 49-54.
257. 田中慶( 2 0 0 8 a )S I M R I W .

http://​pc105.narc.affrc.go.jp/​simriw/

266. 戸松豊和 (1997) フレームワーク , JAVA プログラ
ムデザイン . ソフトバンク パブリッシング , 東京 ,第 6 章 , 149-160, ISBN4-7973-0221-6.

258. 田中慶 (2008) MetBroker から取得した気象データ

267. Tsuji, G.Y., A. du Toit, A. Jintrawet, J.W. Jones,

を Google Earth 上に表示する Web アプリ . 農研

W.T. Bowen, R.M. Ogoshi, and G. Uehara (2002)

機構 , 成果情報 .

Benefit of Models in Research and Decision Sup-

259. 田中慶・平藤雅之 (2009) 農業モデルにおける Web

port: The IBSNAT Experience in Agricultural Sys-

地図サービスを利用した地図インタフェース . 農

tem Models in Field Research and Technology Transfer,

業情報研究 18(2):98-109, doi:10.3173/air.18.98.

L.R. Ahuja, L. Ma, and T.A. Howell, Eds. Lewis

260. Tanaka, K., T. Kiura, M. Sugimura, S. Ninomiya,

Publishers, Florida, USA, ch.5, 71-89, ISBN1-56670-

and M. Mizoguchi (2010) Tool for Predicting the563-0.

Possibility of Rice Cultivation using SIMRIW.

268. つくば市 (2004) つくば市 災害通知メールサービ

Proceedings of AFITA 2010 International Confer-ス . http://​www1.city.tsukuba.ibaraki.jp/​MailSys/​ence, Bogor, 199-204.

disaster/田中慶：農業シミュレーションモデルにおける分散協調システムのためのフレームワークに関する研究107269. Uehara, G. and G.Y. Tsuji (1993) The IBSNAT

279. van Kraalingen, D.W.G. (1995) The FSE system

Project in Systems Approaches for Agricultural De-

for crop simulation, version 2.1. AB-DLO, Wa-

velopment, F.W.T. Penning de Vries, P. Teng, andgeningen, Simulation Reports AB-TPE.

K. Metselaar, Eds. Kluwer Academic Publishers,

280. van Kraalingen, D.W.G. and C. Rappoldt (2000)

Dordrecht, the Netherlands, 505-513, ISBN0-7923-

Reference manual of the FORTRAN utility li-

1880-3.

brary TTUTIL v.4. AB-DLO, Wageningen, Quan-

270. Uehara, G. and G.Y. Tsuji (1998) Overview oftitative Approaches in System Analysis.

IBSNAT in Understanding Options for Agricultural

281. van Laar, H.H., J. Goudriaan, and H. van Keulen

Production, G.Y. Tsuji, G. Hoogenboom, and P.K.

(1997) SUCROS97: Simulation of crop growth for

Thornton, Eds. Kluwer Academic Publishers, Dor-potential and water-limited production situations.

drecht, the Netherlands, 1-7, ISBN0-7923-4833-8.

Quantitative Approaches in Systems Analysis

271. 浦昭二 編 (1990) FORTRAN77 入門 , 第改訂版 . 培
風館 , 東京 , 424pp., ISBN4-563-01358-7.
272. van der Plank, J.E. (1963) Plant Disease; Epidemics and Control. Academic Press, New York, USA,349pp.
273. van Evert, F.K. and G.S. Campbell (1994) CropSyst: A Collection of Object-Oriented Simulation
Models of Agricultural Systems. Agronomy Journal 86:325-331.
274. van Evert, F. and B. Rutgers (2005) Getting started with the.NET version of MODCOM.

14:58, with FST source code of SUCROS97.
282. W3C (1996) Extensible Markup Language (XML).
http://​www.w3.org/​XML/
283. W3C (1999) XSL Transformations (XSLT).
http://​www.w3.org/​TR/​xslt
284. W 3 C ( 2 0 0 0 ) S O A P S p e c i f i c a t i o n s .
http://​www.w3.org/​TR/​soap/
285. W 3 C( 2 0 0 6 )X M L

S c h e m a .

http://​www.w3.org/​XML/​Schema
286. W a g e n i n g e n U n i v e r s i t y ( 1 9 9 7 ) S U C R O S .
http://​www.csa.wur.nl/​UK/​Downloads/​SUCROS/

275. van Keulen, H., F.W.T. Penning de Vries, and E.M.

287. Wageningen UR (2003) MODCOM - FrameworkDrees (1982) A summary model for crop growthfor Component-based Modeling. http:/​/​www.mod-

in Simulation of plant growth and crop production.

com.wur.nl/

Pudoc, Wageningen, the Netherlands, ch.3.1, 87-

288. W a g e n i n g e n U R ( 2 0 0 5 ) F S T W i n /​97, ISBN90-220-0809-6, with FST source code ofF S E W i n / ​F S E W i n R u n O n l y . h t t p : / /​SUCROS.

w w w . c s a . w u r . n l / ​U K / D​ o w n l o a d s /​276. H. van Keulen and J. Wolf, Eds. (1986) Model-

FSTWin+FSEWin+FSEWinRunOnly/

ling of agricultural production: weather, soils and289. Wallach, D. (1984) The Organization of Agronomic

crops, 9022008584th ed. Pudoc, Wageningen, theExperiment Data for Crop Modeling. Proceed-

Netherlands, 479pp.

ings of the International Symposium on Minimum

277. van Kraalingen, D.W.G., W. Stol, P.W.J. Uithol, and
M.G.M. Verbeek (1991) User manual of AB/TPE
Weather System. AB-DLO, Wageningen, AB/TPE
internal communication.

Data Sets for Agrotechnology Transfer, ICRISAT,
Patancheru, India, 147-154.
290. Washington State University (2003) CropSyst.
http://​www.bsyse.wsu.edu/​CS_Suite/​CropSyst/

278. van Kraalingen, D.W.G., C. Rappoldt, and H.H. van

291. 渡邊朋也・田中慶 (2002) 長距離移動性イネウンカ

Laar (1994) The Fortran Simulation Translator

類の近年の飛来傾向と気象解析に関する新しい取(FST), a simulation language in Modelling Potential

り組み . 植物防疫 56:1-4.

Crop Growth Processes, J. Goudriaan and H.H. vanLaar, Eds. Kluwer Academic Publishers, Dordrecht, the Netherlands, ch.Appendix 5, 219-230,
ISBN0-7923-3220-2.

中央農業総合研究センター研究報告108

第 20 号（2013. 11）292. Weihong, L. and J. Goudriaan (1991) Leaf wetness

300. Wopereis, M.C.S., B.A.M. Bouman, T.P. Tuong,in rice crop caused by dew formation: a simula-

H.F.M. ten Berge, and M.J. Kropff (1996) ORYZA_

tion study in Simulation and systems analysis for rice

W: Rice growth model for irrigated and rainfed

production (SARP), F.W.T. Penning de Vries, H.H.

environments (SARP Research Proceedings). AB-

van Laar, and M.J. Kropff, Eds. Pudoc, Wagenin-

DLO, TPE-WAU, IRRI, Wageningen, the Nether-gen, the Netherlands, 320-327, ISBN90-220-1059-7.

lands, 159pp., ISBN90-73384-39-7, with FSE source

293. Welch, S.M. (1984) Developments in ComputerBased IPM Extension Delivery Systems.
Annual Review of Entomology 29:359-381,
doi:10.1146/annurev.en.29.010184.002043.

code of ORYZA_W.
301. WRDC (2002) World Radiation Data Centre.
http://​wrdc-mgo.nrel.gov/
302. Wu, G.W. and L.T. Wilson (1998) Parameteriza-

294. Wiederhold, G. (1992) Mediators in the architec-tion, Verification, and Validation of a Physi-ture of future information systems. IEEE Com-ologically Complex Age-structured Rice Simula-puter 25(3):38-49, doi:10.1109/2.121508.

tion Model. Agricultural Systems 56(4):483-511,

295. Wiederhold, G. (1999) Mediation to deal with heterogeneous data sources. Proceedings of 2nd International Conference, INTEROP'99, Zurich, 1-16,
ISBN3-540-65725-8.
296. Wilkens, P.W. (2004) Weather Data Editing Pro-

doi:10.1016/S0308-521X(97)00070-X.
303. Yahoo! (1997) Yahoo! デ ィ レ ク ト リ 検 索 .
http://​dir.yahoo.co.jp/
304. Yahoo! Developer Network (2005) YUI Library.
http://​developer.yahoo.com/​yui/gram (Weatherman) in DSSAT v4 Data Management305. 矢島正晴・寺島一男・丸山幸夫 (1999) 我が国で栽and Analysis Tools, vol.2, P.W. Wilkens, G. Hoogen-

培されている水稲主要品種の発育パラメータ . 日

boom, C.H. Porter, J.W. Jones, and O. Uryasev,

本作物學會紀事 68( 別号 2):64-65.

Eds. University of Hawaii, Honolulu, USA, ch.4, 56,
ISBN1-886684-07-3.
297. Williams, R.L. (2002) TRYM: a simplified processmodel in use by the NSW rice industry in Model-

306. Yin, X.Y. and C.H. Qi (1994) Studies on the rice
growth calendar simulation model(RICAM) and
its application. Acta Agronomica Sinica 20(3):339346.

ling Irrigated Cropping Systems, with Special Attention

307. 吉 田 智 一・ 高 橋 英 博・ 大 原 源 二 (2003) XML

to Rice–Wheat Sequences and Raised Bed Planting, E.

Web Service 化 に よ る レ ガ シ ー モ デ ル の

Humphreys and J. Timsina, Eds. CSIRO Land and統 合 . 農 業 情 報 研 究 12(1):13-24, J-GLOBAL

Water Technical Report 25/02, 51-56.

ID:200902257937045398.

298. WMO (2004) World Meteorological Organization.
http://​www.wmo.int/
299. WMO (2008) Guide to Agricultural Meteorological
Practices (GAMP). WMO-No.134.

308. Yu, X., A. Yamakawa, T. Kiura, T. Hasegawa,and S. Ninomiya (2007) CROWIS: A System for
Sharing and Integrating Crop and Weather
Data. 農 業 情 報 研 究 16(3):124-131, J-GLOBAL
ID:200902208580433342.
309. Zeigler, B.P., H. Praehofer, and T.G. Kim (2000)
Theory of Modeling and Simulation, 2nd ed. Academic Press, San Diego, USA, 510pp., ISBN0-12778455-1.

田中慶：農業シミュレーションモデルにおける分散協調システムのためのフレームワークに関する研究

109

摘要
人類は農業技術の進歩による食糧増産によって加などの構成要素を結びつけて問題解決を行うため

速度的な人口増加に対応してきたが，異常気象，新に，AMADIS には，適した農業モデルやデータを興国の食生活の欧米化，バイオエタノール原料とし見つけるための検索機能，要素のネットワーク上でての消費などにより，途上国の食糧不足は未だに解の所在情報を管理する機能，複数の要素を結びつけ消されていない．さらに，国内では気候変動によるるための通信プロトコル，農業モデルを実行する機栽培時期や最適品種の変化，高齢化した篤農家の知能などが必要である．本論文では AMADIS に必要識が失われつつあるという問題にも直面している．

なこれらの機能のうち，主に構成要素としての農業

このような状況において，意思決定支援のための農モデルのプログラム開発手法，要素間の連携手法に

業シミュレーションモデル（以降，農業モデル）をついての研究を行った．

中心とした情報技術の果たす役割が大きくなっている．

国内で開発された農業モデルのレガシープログラ
ムを分析したところ，データの入力や結果表示以外

システムダイナミクスの成果に刺激を受け，植物の，農業モデルの中核である計算部分のプログラム

成長を動的に説明する植物生育モデルが開発され始の割合は半分程度であった．国内の農業モデルのプ

めたのは 1970 年代であった．その後，生育予測モ

ログラムサイズが大きくないことと，構成要素とし

デルや病害虫発生予察モデルなどの農業モデルが意ての農業モデル Web アプリケーションを短期間に思決定支援や圃場試験の代替として広く利用される

いくつか開発する必要があったことから，レガシー

ようになった．1990 年代には大規模な農業モデル

モデル用のラッパープログラムを開発して対応するが Wageningen，IBSNAT，APSRU の各開発グルー

方法ではなく，Java に移植する方法をとることにプにより開発され，国内では水稲生育予測モデル

した．Java はオブジェクト指向言語であり，そのSIMRIW が開発された．

特徴を生かしてプログラム開発を行えば，開発効率

農業関連のデータには，農業モデルの実行に必須の向上だけでなく，その後の拡張や保守も容易になである気象データ，農業モデルの開発やパラメータ

る．また，ネットワーク，分散オブジェクト，スレッ

推定に利用される栽培データなどがある．古くから

ド，XML，多言語対応などの Web アプリケーショ

各地の観測所や試験場で観測されてきたデータの中

ン構築に有用な標準 API を持っている．その後，
サーには，印刷物としてしか記録されていないものがあ

バサイドアプリケーション構築の主流言語となり，る一方，データベース化されてネットワーク経由で開発言語選択は正しさが示された．

利用できるものもある．

農業モデルのプログラムを開発するにあたり，3

国内の農業モデルやデータベースの特徴は，小規

つの農業モデル開発グループによるモデル開発手

模で地域性が高く，大学や研究機関などに分散して法と周辺技術の研究を行った．3 グループとも 1990

いることである．また，農業モデルのプログラムに

年代にお互いに影響し合いながら開発を行ったた

はレガシー化してしまっているものも多く，データ

め，似たような仕組みになっている．いずれもモ

ベースはそれぞれの操作方法が異なっている．これ

ジュール構造をとり，モデルの計算を管理するモデらの多様な農業モデルやデータベースを結びつけて

ル実行エンジンを中心とし，そこに生育モデル，病意思決定支援システムを構築する場合，その後の運害モデル，土壌モデルなどのモジュールを部品とし用や保守を考慮すると，農業モデルやデータベースて組み込むようになっている．実行エンジンでは初を開発元で管理し，ネットワークで結びつける分散期化後，時間ループにより終了条件を満たすまで計協調型が適していると考えられた．

算と集計が繰り返される．農業モデルの実行に必要

本論文では，意思決定支援を行うための分散協調システムを提案し，AMADIS（Agricultural Models

な気象データは気象ジェネレータと呼ばれるプログラムにより提供される．

and Databases with Distributed Cooperative

本論文での農業モデルのプログラム開発では，先System）と名付けた．農業モデルやデータベース

ず農業モデル用フレームワークを構築し，それを利110

中央農業総合研究センター研究報告第 20 号（2013. 11）

用して農業モデルのプログラムを開発することにしキュメントの整備された農業モデルで，複雑なユーた．フレームワークは特定の目的のアプリケーショ

ザインタフェースを必要としなければ，1 ～ 2 日間ン構築のために再利用できるようにまとめられたプ

で AMADIS の構成要素となる Web アプリケーショ

ログラムライブラリである．フレームワークは半完ンを構築できる．

成品のアプリケーションであるので，農業モデルのAMADIS の構成要素となるためには，要素間でプログラム開発は，フレームワークで提供されるデネットワークを介したメッセージ交換機能が必要

フォルト機能に足りない部分のみで済む．このフである．当初は RMI を利用していたが，ファイアレ ー ム ワ ー ク を JAMF（Java Agricultural Model

ウォールに起因する不具合のため，HTTP 通信で

Framework）と名付けた．

XML 形式のデータをやりとりする，REST を利用

JAMF はモデル実行エンジン，モデルデータ，気することにした．REST では，Web アプリケーショ

象ジェネレータ，ユーザインタフェース，ユーティンの URL パラメータとしてリクエストを送信でき，

リティプログラムなどのプログラムパッケージから

結果は XML 形式で返されるので，直接 Web ブラ構成される．モデル実行エンジンは 3 つの開発グ

ウザで見ることができる．リクエストの構築は文字ループのものより簡易であるが，同様な機能を持っ列処理で済み，結果の処理は Ajax ブームにより一ている．モデルデータクラスは農業モデルが扱う真般的になった XML プログラミングで済む．さらに，偽値，数値，日付，時系列値を効率的に処理し，ユー

サーバやクライアントの環境を特定しないプラット

ザインタフェースの自動的な構築に貢献する．気象

フォーム非依存性をもたらした．

ジェネレータは農業モデルが利用する気象データ

JAMF により Java アプレットとして実装されを，データ取得元である MetBroker，平年データ，

た 農 業 モ デ ル を，REST ア プ リ ケ ー シ ョ ン と し

推定データ，ユーザデータから取得し，実行用に加て Java サーブレットに変換するためのフレーム工する．MetBroker は様々な気象データベースとワーク JAMF-S（JAMF for Servlet）を構築した．

農業モデルの間にあって，統一的なデータベースア

JAMF と JAMF-S で異なるところは，気象データ

クセス手法と，データ形式を提供するミドルウェアの取得やモデルの計算を行うのがクライアントからである．気象ジェネレータにより，MetBroker 経サーバに移ったことと，ユーザインタフェースの構由で世界中の気象観測地点のデータを利用でき，必築を Swing コンポーネントから HTML コンポーネ

要に応じて未来予測のために平年値や，未観測デー

ントを利用するようになったことである．これらのタの代わりに気象モデルによる推定データや，ユー

変更のために，サーブレット用のモデル実行エンジ

ザが観測したデータを利用できる．

ン，インタフェース用の JSP，グラフ画像生成用サー

JAMF を利用して農業モデルのプログラムを開ブレットなどを新たに開発した．モデル実行エンジ

発するには，農業モデルの計算，データ，インタンから呼び出される，農業モデルの計算やデータ，フェースに関する約 10 個のプログラムを開発する

気象ジェネレータに対する変更は必要なかった．

ことになる．それらは JAMF で提供される機能にJava サーブレット化に合わせ，地図インタフェー

対する追加部分のプログラムである．FORTRAN

スに Google マップを利用し，Ajax アプリケーショ

から Java に移植した MetBLASTAM のソースコーン化した．インタフェース部分の JavaScript によ

ドの行数を数えたところ，MetBLASTAM 用に開る 開 発 は Java に 比 べ て 煩 雑 で あ っ た が，Google

発したコードは，農業モデルのすべての機能のうちWeb Toolkit の登場により，すべての開発が一貫しの 5.2%（約 1000 行，
コメント行を除いたソースコーて Java のみで行えるようになり，開発，保守が効ドの割合）にすぎなかった．その内訳は，モデルご率化された．

とに異なる計算部分が 66%，各モデル共通のデータ

JAMF の有効性を示すために実アプリケーション

取得部分が 4% であった．JAMF を利用して約 20

として，「SIMRIW を利用した水稲栽培可能性予測の作物生育予測モデルや病害虫発生予察モデルなど

支援ツール」を構築した．これは全球の気象データを実装することにより，多様な農業モデル Web アを利用して様々な条件で生育予測を行い，地点ごと

プリケーション構築に利用できることを示した．ドに水稲の栽培が可能かを判定するツールである．大田中慶：農業シミュレーションモデルにおける分散協調システムのためのフレームワークに関する研究

111

量の繰り返し計算を必要としたために，モデル実行

装し，開発効率，保守性，拡張性に優れたプログラ

エンジンに対して，マルチスレッド化や入力データ

ムを開発できる基盤的技術が JAMF として確立さの再利用のための改良が必要であったが，オブジェれたことが示された．また，複数の農業モデルを柔クト指向で構築された JAMF の特徴を生かし，最軟に連携させて，より詳細な機能を持つ農業モデル

小限のプログラミングで対応できた．

を構築できるという，分散協調型として提案した農以上のことより，多様な農業モデルを AMADISの構成要素である Web アプリケーションとして実業用の意思決定支援システム AMADIS の正当性が検証された．

112

中央農業総合研究センター研究報告第 20 号（2013. 11）

中央農研研究報告

20：１－ 115
（2013）

113

Bull.NARO.Agric.Res.Cent.

A Study on a Framework for Distributed Cooperative System
in an Agricultural Simulation Model
Kei Tanaka＊

Summary
People have dealt with ever-faster population

be recorded only for printed material, while othergrowth by increasing food production based

data may be put into a database and shared over aon the development of agricultural technology.

network.

However, food shortages in developing countries

The domestic agricultural model and database

have been left unsolved due to abnormal climates,

are characterized by their high regionality withwesternized eating habits in emerging countries,

small size and dispersal to universities andand the use of cereal as a raw material for bio-

research institutes. And also many programs of

ethanol. Also, in Japan, we are facing changes tothe agricultural model have become legacy andthe cultivating season and the best breed of farmmany databases are operated in a specific manner.

product caused by climate change, and the problem

Thus, there is a need to build a decision makingof the knowledge of aging farmers not being

system connected to these various agricultural

passed on. In these circumstances, information

models and databases, considering future operation

technology centering on agricultural simulationand maintenance. To this end, it was thoughtmodels (hereinafter called “agricultural model”) tothat a distributed cooperative system, which

help farmers make decisions is playing a more andmanages agricultural models and databases at themore important role.

development site and connects with networks, isAffected by the results of system dynamics,

suitable.

the development of a plant growth model toIn this dissertation, we suggested a distributed

dynamically describe plant growth began in thecooperative system to help farmers make decisions,

1970s. And then, an agricultural model such as

and named it the Agricultural Model and Databases

the growth prediction model, and disease and pest

with Distributed Cooperative System (AMADIS).

damage forecasting model, became widely used as

To solve problems in connecting components suchan alternative way to help farmers make decisions

as agricultural models and databases, AMADIS

and as an alternative to field trials. In the 1990s,

needs to have a search function allowing people

large agricultural models were developed by eachto find a suitable agricultural model and data,

development group of Wageningen, IBSNAT, anda management function to manage the location

APSRU, and the paddy-rice growth prediction

information of each component on the network,

model SIMRIW was developed in Japan.

communication protocols to connect multiple

Agricultural data includes meteorological data

components, and an executive function tothat is required by the agricultural model, andexecute agricultural models. In this dissertation,cultivation data that is used to develop agricultural

we conducted research mainly on a method tomodels and assume parameters. Among data

develop a program in the agricultural model as athat has been obtained at weather stations andcomponent and the cooperative method between

experiment stations for many years, some may

components, from the functions required for*NARO Agricultural Research Center Agroinformatics Division

114

中央農業総合研究センター研究報告

AMADIS.

第 20 号（2013. 11）

using a framework. The framework is a program

Analyzing the legacy program of a domesticallylibrary which is organized to be reused for building

developed agricultural model showed that thethe specific target application. The framework is

calculation part of the program—the core of thealso a semi-finished application so developing the

agricultural model—other than data reading

program of the agricultural model requires only

and result display, accounts for approximately

deficient parts of the default functions provided

half of the program. The program size of theby framework. We named this framework Java

domestic agricultural model is not large andAgricultural Model Framework (JAMF).

some Web applications of the agriculture model

JAMF consists of many program packages,

as components need to be developed quickly.

such as the model execution engine, model data,

Therefore, translation into Java was adopted

the weather generator, user interfaces, and utility

rather than developing wrapper programs for the

programs. The model execution engine is simpler

legacy model. Java is an object-oriented language,

than the ones used by the three development

and developing programs in a way that exploits

groups but has the same functionalities. The

its characteristics not only makes development

model data class effectively processes Boolean

more efficient but also makes future expansion andvalue, numeric value, date, and time-series data

maintenance easier. It also has standard APIs thatthat are handled by the agricultural model, andare useful for building Web applications, such ashelps to automatically build user interfaces. The

networks, distributed objects, thread, XML, andweather generator acquires meteorological data

multi-language support. After that, Java became aused by the agricultural model from MetBroker,

main language for building server-side applications

average year data, estimation data, and user

and it is apparent that the choice of development

data, and converts them for use in the model.

language was right.

MetBroker is middleware between various

When agricultural programs were developed,

weather databases and the agricultural model,

we studied the method of developing models andand provides unified database access methods andperipheral technology using three agricultural

data forms. The weather generator allows the data

model development groups. These three groups

at weather stations all over the world to be used

developed while influencing each other in thevia MetBroker, and normal year value, estimation

1990s, so their developed structures were similar.

data from the meteorological model instead of non-All of them have a module structure and center

observation data, and data observed by users canon a model execution engine to manage model

be used to make predictions, as required.

calculations. They all use modules such as

To develop the programs of the agricultural

growth models, disease models, and soil models

model using JAMF, approximately ten programs

as components. Calculation and accumulation

related to agricultural model calculations, data,

are repeated on the execution engine until theand interfaces need to be developed. Those aretermination criteria are met by time loop after

additional programs to the functions provided

initialization. The meteorological data required forby JAMF. The number of lines of source code

executing the agricultural model are provided by aof MetBLASTAM translated into Java fromprogram called a “weather generator.”

FORTRAN took only 5.2% (about 1,000 lines, theTo develop the program of the agricultural

ratio of source code without comment lines) ofmodel in this dissertation, a framework for an

all functions of the agricultural model. In moreagricultural model was first built and programs ofdetail, 66% was for calculations that varied by

the agricultural model were secondary developedmodel and 4% was for data acquired, part of田中慶：農業シミュレーションモデルにおける分散協調システムのためのフレームワークに関する研究

115

which was common to every model. Implementing

data, and weather generator which are called fromapproximately twenty plant growth prediction

the model execution engine, did not need to bemodels and disease and pest damage forecastingchanged.

models using JAMF shows that it can be used toWhen we changed them to Java Servlet, webuild various agricultural model Web applications.

redeveloped them as Ajax application that uses

If it is an agricultural model with a maintained

Google Maps for the map interface. Although, thedocument and does not require complex

development with JavaScript for the interface partuser interfaces, Web applications that can be

was more complex than Java, by emerging thecomponents of AMADIS can be built within a day

Google Web Toolkit, the whole development could

or two.

be carried out consistently only with Java, and thisTo become a component of AMADIS, message

made the development and maintenance efficient.

exchange functionality between components via

We built a simulator for cultivation possiblity

a network is required. Although we used RMI atof rice using SIMRIW as an actual application

first, we decided to use REST to exchange data in

to show the effectiveness of JAMF. It is a tool

XML form using HTTP because of a defect caused

that predicts plant growth with various criteria

by a firewall. For REST, requests can be sent as ausing global meteorological data and examines

URL parameter of a Web application and the result

whether rice cultivation is possible or not at eachcan be received in XML form, so users can see itsite. Although it required a massive repetitiveon a Web browser. Request building needs only

calculation and the model execution engine should

strings process, and the result process needs only

have been improved for multi-threading and reuses

XML programming that has become more popularof reading data, we were able to accommodate

thanks to the boom in the use of Ajax. And it also

the modification with the minimum amount ofprovides platform-independence which means notprogramming by exploiting the characteristics ofspecifying a server/client environment.

JAMF built with an object-oriented system.

The framework JAMF-S (JAMF for Servlet) for

For all of the above reasons, we showed

converting the agricultural model implemented bythat a basic technique that can develop an

JAMF as a Java applet to a Java servlet as a REST

excellent program in the development efficiency,

application has been built. JAMF-S differs frommaintainability, and the extendibility to implement

JAMF in terms of moving the process of obtaining

an agricultural model as Web application that wasmeteorological data and model calculation from thethe component of AMADIS has been build asclient to the server, and using HTML components

JAMF. Moreover, the validity of decision support

from a Swing component to build user interfaces.

system AMADIS for the agriculture proposed

Those changes meant that the model execution

as a distributed cooperative system, which canengine for servlets, JSP for interfaces, and servlets

construct agricultural model with more detailed

for graphic image generation needed to be newly

function by making multiple agricultural models

developed. Agricultural model calculation andcooperate flexibly, was verified.