Web技術による分散データベース利用

 

*1安藤 英俊、*2伊藤

 

*1山梨大学総合情報処理センター

400-8510 甲府市武田4-4-37

TEL0552-20-8084

FAX0552-20-8792

ando@ccn.yamanashi.ac.jp

 

*2山梨大学工学部コンピュータ・メディア工学科

400-8511 甲府市武田4-3-11

TEL & FAX0552-20-8516

itoyo@pine.ese.yamanashi.ac.jp

 

 

概要

 

 インターネット技術を利用しネットワーク上で分散した環境で協調作業を行うための技術、およびデータベースとの連携について述べる。まずはじめに機械製品の設計から生産・保守を含む過程を分散ネットワーク環境で支援する方法について紹介する。製品のライフサイクル全般を計算機支援するためには、それぞれの過程で種類の異なる様々なアプリケーションを利用しなければならない。さらにこれらのプロセス全体が効率よく行われるためには、情報ネットワークによるプロセスの統合が重要な鍵になる。本稿ではこの様な種類の異なるアプリケーション同士が、情報を共有しながら共同作業を効率よく行えるような、情報ネットワーク環境の実現法を述べる。次にWeb技術を使ったクライアント・サーバ型のシステムを構築する際に利用できる技術と、それらを導入する際に検討すべき項目などについて述べる。

 

 

キーワード

 

 インターネット、分散協調ネットワーク、製品ライフサイクル、STEPJavaCORBA

 

 

 

 

1. はじめに

 

 環境保護や資源利用の効率化に向けて、工業製品の設計や生産のみでなく、その利用・保守・リサイクル・廃棄の全ライフサイクルプロセスを考慮に入れて、工業活動を最適化することが近年特に強く要求されている。利用・保守・リサイクル・廃棄などの過程は、従来は設計段階で良く検討されていないことが多く、それらのためのデータも十分に提供されなかった。例えば、保守部品が不足するときの代替部品の可能性や、リサイクルのための材料組成データ、などを知ることは簡単ではなかった。しかも、それらのデータの必要性が生じる作業環境は屋外であったりして、計算機を利用することも困難であった。このような問題を解決するためには、

 1.ライフサイクル全体を考えて、製品設計時に、利用・保守・リサイクル・廃棄などに必要なデータをすべて生成しておくこと

 2.そのデータを表現、貯蔵できるデータ表現形式を確立すること

 3.通常のオフィスにおけるような情報環境から隔離されていても、必要に応じてそれらのデータにアクセスし、利用できるような、情報ネットワーク環境を構築すること

などが必要である。ここでは、主に2.および3.の課題を研究する。

 

 

2.研究の概要

 

 ここではまずライフサイクル支援に必要なデータモデルの確立と、それらのデータへの遠隔地からの利用を可能とする情報ネットワーク環境の開発を行う。

 

 

2.1 製品の利用・保守・廃棄管理のデータモデル

 

 製品の利用・保守・廃棄管理のプロセスを重視して、これらの評価が十分にできるプロダクトモデル情報のデータモデルを構築する。ISO 10303 STEPSTandard for the Exchange of Product model data)などの標準データ表現は十分考慮しつつも、これらに欠けている属性情報は随時新規に導入する。(STEPとは製品モデル情報を交換・記述するための国際規格である。詳しくはSTEP推進センターのページhttp://www.jstep.jipdec.or.jp/を参照)属性データ表現として次の3種類を分類し、適切な表現データモデルを構築する。

・過去の蓄積データ主体の「浅い」が、量が膨大なデータ:
適切なデータの探索が重要であり、プロダクトライフサイクルの進展に従ってデータが蓄積され、自動的に構造化されるような仕組みが必要となる。

・製品の利用・保守・廃棄に関連する物理プロセスに基礎を置く「深い」データ:
プロセスの定量的な解析モデルのみでなく、数値解析に基礎をおくミクロなモデルから定性的なマクロモデルまで、種々のモデルを目的に応じて利用できるような仕組みが必要である。

・明示的な属性データの背後にあって、その由来、制約などを表現する背景データ:
いわゆるプロダクトモデルは、設計や生産に直接関係する情報のみを表現するが、ライフサイクルモデリングにおいては、データの予め予測しにくい利用が想定され、そのような場合には明示的な属性情報の背後にある情報が重要になる。これらを背景情報と呼び、そのためのデータモデルを確立する必要がある。

 

 

2.2 プロダクトライフサイクル支援のための分散情報環境

 

 従来から設計生産の高度計算機支援のためのプロダクトモデルの表現手法は良く研究されてきたが、決定的な手法は見いだされていなかった。データ表現の透明性を高め、データ交換や共有に資するためには、データ表現が静的とならざるを得ず、応用処理からは独立となる。現状のSTEPなどが代表的なものである。個別の応用処理を重視すると深い意味処理を可能とする動的なデータ表現が必要となり、これは個別応用には効率的であるが、他応用との連携においてデータの整合性管理を行うことが極めて困難となる。プロダクトライフサイクル支援のためには、非常に広範囲のデータを、長期間、地域的に分散した状態で提供しなければならない。データの管理は静的で中立的に、データの処理は専用的で動的に行わざるを得ない。そのために、ネットワーク情報環境において、静的・中立的データと、動的・専用的データとの、相互変換を柔軟に行う必要がある。このために、以下のような分散情報環境構築の方法論を確立する。

・階層的に構造化されたオブジェクト機構を基礎として、プロダクトライフサイクルに係わる属性情報とその処理手続きをデータモデルとして表現する。属性データの背後にあって、それらに意味的拘束を与えたり応用処理を行うための処理手続きの構造化を重視する。

・中立表現と応用表現との対応関係の記述方式を確立し、それらを標準的なネットワーク環境のメカニズムにより実装する方式を確立する。特に、クライアント側には最小限の機能しか仮定せず、簡易な実装環境が実現できることを重視する。

 

 

3.情報ネットワークのアーキテクチャ

 

 上述のようにプロダクトライフサイクルを支援するためには、設計・生産・利用・保守・廃棄の各プロセスにおいて、様々な種類の異なるアプリケーションが用いられる。そしてこれらのアプリケーションは同一のプロダクトモデル、様々なデータモデルに対して非同期的にアクセスを行う必要がある。この様な、異なる種類のアプリケーション同士が同一のデータに対して透過的にアクセスできるようなネットワーク環境の構築が、プロダクトライフサイクル支援には必要になる。本研究ではこのためのネットワーク環境をCORBA/STEP/Javaの技術を使って開発することとした。CORBA(The Common Object Request Broker: Architecture and Specification)OMG(Object Management Group)が規定した、オブジェクト指向における分散したクライアント・サーバ環境で利用されるオブジェクト連携機構である。(http://www.omg.org/他参照)

 このためのアーキテクチャとして、図2に示す様なネットワーク環境を提案する。プロダクトライフサイクルを支援するための各種アプリケーションはネットワークを通じてSTEPデータベースおよび各種ライフサイクル支援サービスを提供するサーバに接続される。ネットワーク上での各種通信はCORBA/Javaを利用し、製品データやライフサイクルモデルのデータはSTEPの形式で記述してSTEPデータサーバ上に格納される。アプリケーションからはサービスに対して特定の処理のリクエストを送ったり、STEPデータサーバに対してデータの読み出し・書き込みのリクエストを送る。現在のSTEPで扱えないワークフローやドキュメントなどに関するサービスに対しては、CORBAあるいはJRMI (Java Remote Method Invocation)を用いて、リモートサービス上の関数の呼び出しを行う。これに対してSTEPデータサーバに対しては、データをJOS (Java Object Serialization)を用いて転送し、アプリケーション自身がデータ処理を行う。

 STEPデータサーバはSTEP(AIM)の形式でデータを保持するが、データを要求するクライアントアプリケーションに対しては、よりアプリケーションの内部データ構造に近い形式(ARM相当)に変換してデータを提供できるようにする。この変換を実行時に行うのがデータマッピング・モジュールである。データマッピングはマッピング記述言語で記述されたデータ間の対応関係に基づいて行われる。特にデータ記述言語EXPRESSで記述された2つの異なる構造を持つモデル同士のマッピングを定義する言語が、EXPRESSマッピング言語である。マッピング言語の必要性はSTEPの世界でも認識されており、様々な言語が提案されている。ISO STEPとしてはEXPRESS-Xという言語を標準マッピング言語として開発して行く予定であるが、EXPRESS-VEXPRESS-MBRIITYEXPRESS-HLDAIなどのマッピング言語開発者らが標準化に参加している。特にEXPRESS-HLDAIは日本で開発されたマッピング言語である。(http://www.jstep.jipdec.or.jp/ja/hldai/hldaimain.htm参照)EXPRESSマッピング言語を利用することによって、様々なメリットが考えられる。一般にSTEP(AIM)の形式のデータはアプリケーションに依存しない中立な形でのプロダクトモデルの正確な記述には適している。しかしそのため、データ構造が複雑でアプリケーションからのアクセス方法も複雑になり、データ量も大きくなるのでネットワーク上での転送時間も増大する。一方アプリケーションの内部データ構造をEXPRESSで記述したARM形式のデータは、データ構造が簡潔で理解しやすくサイズも小さくてすむ。データマッピング・モジュールで実行時にARM形式とAIM形式のマッピングを行えば、STEPデータサーバ内部には常に中立なSTEP(AIM)形式でデータが保持されるが、それを利用する各アプリケーションからは自分の内部データと同じ構造のデータとして読み書きすることができるので、STEP標準のSDAI(Standard Data Access Interface)を利用するのに比べてアプリケーションの開発が非常に楽になる。またデータ転送の量も押さえられるメリットもある。一方SDAIを利用した場合には、開発は大変だがインタフェースは一度実装してしまえば、任意の形式のSTEPデータに対して利用可能であるというメリットがある。本研究ではアプリケーションのタイプに応じて、この2つのアクセス方法を使い分ける。この様なアーキテクチャの情報ネットワーク環境を開発するために、現在以下の項目に分けて作業を行っている。

・モデルデータのマッピング:

 このネットワーク環境での重要な技術要素であるEXPRESSマッピング言語の開発と評価。データベースを機能単位に分けて構造化し、アプリケーションデータとの対応をEXPRESSマッピング言語によって記述する。得られるデータがアプリケーションから利用しやすいように、効率よくマッピングする手法を開発する。

EXPRESSコードのコンパイル:

 EXPRESSで記述されたモデル、あるいはEXPRESSマッピング言語でマッピングされた結果のモデルをアプリケーションで利用するためのコードを生成する。これらのコードにはJavaのクラスコードやIDLのコード、クライアントからサーバのデータを読み書きするためのコード、データ変更を効率よく行うためのコードなどが含まれる。

・オブジェクトデータの転送方法の確立:

 複雑なデータ構造を持つオブジェクトをネットワーク上で効率よく転送する技術の確立。例えばSTEP Part21形式のデータをOMGのサービスで利用する方法や、JavaのオブジェクトにしてJOSを利用する方法など、複数の方法を比較検討して最適の手法を確立する。

 以上、ライフサイクルモデリング支援のための情報ネットワーク環境のアーキテクチャについて述べた。本研究は現在進行中であるが、以下のような研究成果が期待される。

・非オフィス環境での技術情報アクセスの基本技術が得られる。これを元に、例えば、修理現場での図面検索、廃棄処理の危険情報検索、などのための情報環境が整備される。基本的には簡易な情報端末に、必要に応じてデータと処理プロセスをダウンロードして利用する形態が実現できる。

・車両などの長寿命製品について、予防保全システムおよびリサイクル・廃棄のための統合システムの構築が可能となる。本技術は、広範囲の製品について波及効果がある。

・一般の人が利用できる情報ネットワーク環境にライフサイクル情報とその利用法が提供され、CORBA/Java機構により、ネットワークに提供されている他の種々の情報と併せて、多様なライフサイクル支援の可能性ができる。

 

 

4.Webとデータベースの連携によるクライアント・サーバ型システムの構築

 

 上記についてはWeb技術による分散データベースの工学的な応用であったが、Web技術とデータベース技術の連携はより一般的な分野への利用が可能である。特に最近Webサーバとデータベースを連携させ、クライアントとしてWebブラウザを利用して、データベース上の様々なデータを活用する方法がよく用いられている。例えばRDBWebサーバと連携させ、帳票処理などをクライアントのパソコン上のブラウザを介して行うなどである。山梨大学では学生の科目履修申告をこのような仕組みを利用して行うことを試みている。それ以外にも教職員な学生の検索システムなどが容易に構築できる他、センター業務としてはアカウント管理やログ管理などにも利用できる。

 Web技術を利用することの大きな利点の一つは、その技術が世界的に広まっているおかげでクライアントやサーバを比較的自由に選ぶことができ、構築したシステムが長期的に利用できることである。しかしWeb技術とデータベースの連携には幾つかのやり方があり、それによって利用するソフトウェアコンポーネントも変わってくるので、適用する業務の性質を良く考えてアーキテクチャを決める必要がある。例えばクライアント側で一番単純なHTMLフォームを利用する場合にはクライアント側の負荷は軽くなり、より多くの環境で利用可能になる。クライアント側にもう少し性能があり多少の処理をまかせられる場合には、クライアント側でJavaScriptなどを利用することにより、サーバ側での処理を一部クライアント側で代行できるのでサーバの負荷を減らし、より多くのユーザが同時に利用できるシステムを構築することができる。しかしJavaScriptの機能は比較的限られているので、それで足りない場合にはJava AppletJava Applicationなどを利用することになる。

 クライアント側での処理に対応してサーバ側で利用する技術も考慮しなければならない。クライアント側でHTMLフォームやJavaScriptなどを利用するだけならば、サーバ側では基本的なCGI機能だけで処理が可能になる。今まではPerlなどによるCGIプログラムが良く利用されていたが、サーバにより負荷の少なく記述しやすいPHPなどのスクリプト言語が今後はより広く用いられるであろう。さらに先進的なやり方としてはWebサーバ側でJava Servletを用いる方法があり、これによってさらに効率的な処理が可能になると期待される。

 データベースとしてどのような技術を選ぶかは業務に大きく依存するが、一般の事務的なしょりであれば大概の場合RDBで十分なことが多い。しかし工学分野のように複雑で大規模なデータを処理する必要がある場合や、マルチメディアのようにテキスト形式では扱いにくいデータを処理する場合には、OODB(オブジェクト指向データベース)の導入を検討しなければならない。

いずれの仕組みを選んだ場合でもWebサーバとはODBCJDBCなどの、標準的なインタフェースで繋ぐことができるのでだいたい心配はない。一方で最近の商用データベースでは、

自社製品に自前のWebサーバを組み込んだものが多数登場してきており、データベースをWeb技術の連携に対する関心の高さがうかがえる。サーバ上で稼働するOSについてはUnixWindows NTなどが候補として挙げられるが、どちらを用いてもデータベースとWebサーバのインタフェースとして上述のJDBCODBCなどが利用できるので問題ない。

 その他の検討事項としては例えばセキュリティの問題などがある。Webサーバとブラウザの間での通信に関してはSSL(Secure Socket Layer)という暗号化通信が標準化されているので、これが広く利用できる。またクライアント数や負荷の大きさなど、業務の規模によってはサーバの分散などを検討しなければならないが、Webサーバの仮想的な分散やデータベースサーバの分散などに関しても幾つかの技術があるので必要に応じて導入することになる。

 さらに今後の方向としてはクライアントとデータサーバだけの2階層システムでなく、その中間にアプリケーションサーバやミドルウェアなどを導入した3階層システムが広く利用されるようになる。3階層にすることによって例えばサーバ側でのデータ変更をアプリケーションサーバが吸収して抽象化することによって、クライアント側での変更が不要になる。また負荷分散の変更にも柔軟に対応できるため、長期的に利用しながら成長させて行けるシステムを構築することができる。

 

 

5.まとめ

 

 以上Web技術による分散データベース利用に関して述べた。製品ライフサイクルの支援に関しては、JavaCORBASTEPなどを組み合わせることによって、地理的に分散した環境でのネットワークを利用した協調作業環境の基盤が構築できる。ただ製造分野で利用される製品データなどは数百MB以上になる場合があるので、そのような製品を対象にする場合には極めて高速なネットワークが必要となる。特に遠隔地同士で利用する場合には超高速なバックボーンが不可欠である。

 Webとデータベースの連携を利用したクライアント・サーバ型システムに関しては、すでに現場での利用が始まっており今後も増大して行くと思われる。利用可能な技術はたくさんあり、また日々進歩しているので、自分の業務にはどの技術が適しているのか、個々の技術がいつ頃利用可能になるか、多の技術と組み合わせた場合の得失はどうかなど検討すべき点は多い。今後はさらに多くの事例にこれらの技術を適用し、将来的な技術発展の方向性などについて検討して行きたい。

 

 

参考文献

 

F.Kimura, et al. Product Life Cycle Modelling for Inverse Manufacturing, Life Cycle Modelling for Innovative Products and Processes, Krause & Jansen Ed. IFIP (1996)

J.Owen STEP: An Introduction,Information Geometers(1993)

M.Hardwick, et al. EXPRESS-X Reference Manual, URL=http://www.rdrc.rpi.edu/express-x/homepage.html, (1996)

"PHP: Hypertext Processor", URL=http://www.php.net/

 

1 : ライフサイクルモデリングのための分散環境利用例

2 : CORBA/JavaSTEPによるクライアント・サーバ環境