|

(1) アプリケーションサーバー機能(OpenTrace Core)の開発
OpenTrace
Core は、ユーザからのリクエストに応じた様々な処理を行うサーバプログラムの実装である。具体的には、OpenTrace
WebAPIからのリクエストに応じる機能、データベースを操作する機能、環境負荷を動的に計算する機能、ユーザ管理(認証)機構、のそれぞれについて開発を行った。
図1 システム全図
OpenTraceにおいて、最も頻繁に利用される機能は検索である。そこで、多種多様なクエリに対応できるように、データベースにはPostgreSQLを、全文検索エンジンにHyperEstraierを、そして空間データベースにはPostGISを利用した。これに伴い、HyperEstraierをPostgreSQLにバインディングするプラグインも開発した。また、データベース上のデータはXMLやJSON4 によってやりとりされることを前提としているため、それに特化したO/Rマッピング5ソフトウェアを開発し、コーディングの質と効率を上げた。
(2) データベース・スキーマ(OpenTrace DataBase)の設計
データベース設計に際しては、下記に示すようなポリシーを定めた。
・ 多国語に対応させること
・ サーバを分散させることを前提とし、一元管理するべきデータなのか、分散管理するべきか、コピーを共有しても構わないのか、大きくカテゴライズすること
・ CO2排出だけでなく、水産資源や野生生物の利用についても、環境負荷計算の対象とすること
・ LCAからのデータ移行のため、生産物のライフサイクルも考慮すること
・ 情報の信頼度の管理、ブラックボックスや、暫定値を認めること
以上をもとにデータ構造を設計した結果を、次の図に示す。

図2 OpenTrace Database
Schema
(3) 外部ネットワークからアクセスするためのAPI(OpenTrace WebAPI)の開発
現在、ユーザ認証や環境情報についての検索・登録など、40種類ほどのサービスが利用可能であり、検索結果のソートやフィルタリング機能も有している。サーバからの戻り値は、XML もしくは JSON のいずれかを選択できる。また、JSONP6 も利用できるため、クライアント側でjavascriptからデータを扱うのが極めて容易となった。
後述するOpenTraceExamples
の開発にもJSONPを利用している。
(4) OpenTrace ライセンス(OpenTrace License)の策定
このライセンスは、生産者自身が積極的にOpenTraceの利用の連鎖を推し進めるためのものであり、生産物の売買契約にこのライセンスを付帯させ、下流(原材料メーカ等)から上流(製品メーカ)へと、OpenTraceの利用をライセンスを含めて伝播させることを想定し、策定した。
本ライセンスの有効性については弁護士と相談して言質を得たが、実際にこのライセンスに従わなかった(債務不履行)という理由でなんらかの法的措置に訴えるケースは考え難い。あくまで精神条項的な意味合いが強いのも事実であるが、このライセンスはOpenTraceの理念を示したものであり、生産者の環境に配慮するという強い意思表示の方法ともなり得る重要なドキュメントとなった。
(5) 環境ラベルのデザインと発行アプリケーションの作成
CO2等の排出だけでなく、水産資源の利用、あるいは生産物が辿った距離による指標の必要性から、3種類の環境ラベルを用意した。

図3 環境ラベルデザイン3種
また、これらのラベルを印刷することができ、画像ファイルとしても保存可能なアプリケーションも作成した。このアプリケーションは、パラメータを渡すことで、任意の数値、任意のトレースレベルの環境ラベルを生成することができる。プロダクト情報へのリンクが埋め込まれているQRコードを作成することも可能で、Webブラウザ上から実行できるのも特徴である。
図4 アプリケーションスクリーンショット
(6) サンプルウェブアプリケーション(OpenTrace Examples)の作成
サンプルアプリケーションは、OpenTraceAPIを網羅的に利用することで、OpenTraceの基本的なツールとしての機能を提供するとともに、チュートリアルとしての役割も担う。提供する主な機能としては、製品情報の検索と閲覧、編集(登録)がある。
実体は
javascript + html ( + Adobe Flash )により書かれた Webアプリケーションであり、前述のOpenTrace WebAPI を使用して、OpenTraceの内部データにアクセスしている。
(6)-1 検索機能
特に利用頻度が高いと思われるのがこの検索機能である。ここでは3種類の検索方法を実装した。これは、製品の環境負荷がどれくらいなのか、どの場所で作られているのか、原料は何なのか、といった疑問に答えるインターフェースとなる。
カテゴリ検索は、もっともスタンダードな検索といえる。左上カテゴリメニューから、製品が含まれているであろうカテゴリを選んだうえで、タグにより絞込み検索をかけることができる。
図5 カテゴリ検索画面
位置による検索も可能である。地名を入力するか、地図で範囲を指定することで、その周辺にある生産ノードを検索・表示することができる。
図6 地図検索画面
また、プロダクトコード( EANコード等 )によって製品を指定することも可能である。コードを直接入力しても良いが、カメラがあればバーコードを読み取らせることで、ダイレクトに製品情報にアクセスできる。
図7 プロダクトコード検索(バーコードリーダ)
(6)-2 閲覧機能
これは、製品情報を詳しく閲覧するためのものであり、環境負荷情報に限らず、製品に紐付けされた情報についても閲覧することができる。
図8 詳細情報画面(CO2排出)
図9 詳細情報画面(水産資源利用)
図10 詳細情報画面(栄養素)
(6)-3 編集機能
製品情報を編集するための機能を提供する画面である。閲覧と編集は表裏一体のアプリケーションとして実装されており、閲覧画面で『編集する』ボタンにチェックをいれると、すべての情報が編集可能になる。テキストや画像、地図上の位置といったすべてのオブジェクトについて、画面切り替えを伴わず編集できるため、効率良く(ストレス無く)作業できることを特徴としている。
図11 編集画面(移行前)
図12 編集画面(編集中)
(6)-4 コンテキストの閲覧( +編集機能 )
製品同士の繋がりを、よりグラフィカルに提示するためのアプリケーションとして、コンテキストビューアを作成した。これは、製品がどのような原材料から構成されているかを、ノードを遡って表示するものである。また、このビューアは編集機能も有しており、生産ノードや生産物を追加したり原材料を付け替えたりすることも可能である。
図13 コンテキストビュー
図14 コンテキストビュー(ズーム時)
|