平成12年10月13日 岡山理科大学 数理情報学科 大西 荘一 岡山理科大学HORB研究会(HORB岡山支部) IAJ Java部会主催 第1回岡山セミナー Java分散オブジェクト技術 HORB 平成12年10月13日 岡山理科大学 数理情報学科 大西 荘一 岡山理科大学HORB研究会(HORB岡山支部)
アンケート結果(1) 岡山セミナー参加者の職種 技術者・研究者: 30 (47%) 教員: 2 ( 3%) 管理職: 3 ( 5%) 学生: 18 (28%) 事務職: 4 ( 6%) その他: 7 合計 64
アンケート結果(2) Java言語について 仕事で使っている: 29 (20) 趣味で使っている: 12 ( 4) 使ったことがない: 20 ( 6) 全く知らない: 3 ( 0) ( )内は技術者・研究者のみ
アンケート結果(3) 分散オブジェクトについて 良く理解している: 4 ( 3 10%) 少しは知っている: 29 (18 60%) 言葉は知っている: 28 ( 7 23%) 聞いたこともない: 3 ( 2) ( )内は技術者・研究者のみ
アンケート結果(4) ( )内は技術者・研究者のみ ・使った: 4 ( 2) 6( 2) CORBA HORB ・使った: 4 ( 2) 6( 2) ・ある程度知っている: 12 ( 8) 10( 7) ・言葉ぐらいは知っている: 30 (16) 29(15) ・聞いたこともない: 18 ( 4) 19( 6) ( )内は技術者・研究者のみ
アンケート(5) Java分散オブジェクト技術を使うことを 検討していますか? ・真剣に検討している: 11( 4) ・少し考えている: 41(24) ・全く考えていない: 12( 2) ( )内は技術者・研究者のみ
今日のお話 1.分散オブジェクトとは 2.HORBの機能概要・・・(HORB Flyer‘s Guideより) 3.HORBを利用した設計例とRMIとの設計工数比較 (「手話学習システム・マスコット」を例に) 4.ORB比較ベンチマーク・テスト・・・(冨岡テストより) 5.HORBのライセンスについて・・(HORB ドキュメントより) 6.HORBの利用例・・・・ (HORB活用事例などより) 7.HORBの 開発・利用 推進形態・・・(HORB Open HP)
1.分散オブジェクト技術とは 分散処理技術 オブジェクト技術 分散オブジェクト技術 参考: 「分散オブジェクトコンピューティング」 河込和宏、他3名 共立出版 1999.7 「Java分散オブジェクト入門」 中山 茂 技報堂出版 2000.3
分散処理技術 アプリケーションA プロセスa プロセスb プロセスc プロセスd
ー>リモートを意識せずに設計できる アプリケーションB サーバ・クライアントも分散処理の一種 サーバ クライアント プロセスa (オブジェクトa) サーバ クライアント プロセスb (オブジェクトb) プロセスd (オブジェクトd) プロセスc (オブジェクトc) プロセス=オブジェクトとみなし 分散処理技術にオブジェクト技術を適用する ー>リモートを意識せずに設計できる
分散オブジェクト技術 HORB (電総研,NJK) RMI (JavaSoft社) CORBA (CORBA準拠ORB製品) Voyager (ObjectSpace社) DCOM (Microsoft社)
参考資料: HORB Flyer’s Guide 平野 聡 (通産省工業技術院電子技術総合研究所) HORB Open開発リーダ 萩本 順三 ( (株)豆蔵 ) 参考資料: HORB Flyer’s Guide http://openlab.etl.go.jp/horb-j/doc/guide/guide.htm
HORBの主要な機能と特徴 100%JAVA SUNのJavaと100%互換性があり、あらゆるJava処理系で動作します。 CORBAのサポート CORBA IIOP(Ver2.0)をサポートしています。 IDLレス IDLを書く必要はありません。あなたのクラス定義がそのままリモートオブジェクトになります。CORBAプロトコルを使用する場合でもIDLを書く必要はありません。CORBA IDLはクラス定義から自動生成されます。もちろんIDLコンパイラも装備しています。 超高速・軽量 RMIや他のORBより高速です。またランタイム環境が小さいため組み込み用途にも向いています。 動的オブジェクト生成 HORB特有のリモートオブジェクトの動的生成と接続が簡単に行えます。 非同期メソッド 非同期メソッド呼び出しとFutureをサポートしています。組み込み用途に向いています。 オープンソース Javaで書かれたフルソースコードがパッケージについてます。商用でも無償でも使えます。
HORBによる相互運用性 HORB HORBプログラム JavaVM JavaVM JavaVM Windows UNIX Macintosh
HORBの構成 HORB HORBサーバ(ORB) HORBCコンパイラ HORBクラスライブラリ
HORBサーバ(ORB) Client Server ORB クライアントオブジェクト サーバオブジェクト Server_Proxy Server_Skeleton クライアント側の代理オブジェクト サーバ側の黒衣オブジェクト ORB (オブジェクト間通信機構) JavaVM JavaVM クライアントマシン サーバマシン
(Server_Skeleton.java) HORBCコンパイラ サーバオブジェクト (Server.java) コンパイル HORBCコンパイラ 生成 生成 クライアント側の代理オブジェクト サーバ側の黒衣オブジェクト (Server_Proxy.java) (Server_Skeleton.java)
オブジェクト起動モデル 生成モデル 接続モデル クライアントからオブジェクトリファレンス(Proxy)を生成するとサーバ側でリモートオブジェクトが生成されます。このモデルでは予めサーバ側でリモートオブジェクトを起動しておく必要はありません。 接続モデル 既に起動しているリモートオブジェクトの参照をクライアントから得て接続します。このモデルでは予めサーバ側でリモートオブジェクトを起動しておく必要があります。
非同期メソッド呼び出し OneWay Async 通常の呼出しでは、呼出し側はメソッドの処理が終了するまで待機します。これに対して非同期呼出しでは、呼出し側はメソッドの処理の終了を待たずに処理を続行します。 OneWay OneWay型非同期メソッド呼び出しは戻り値無し、例外スロー無しのメソッド呼び出しに使用することができます。Async型メソッド呼び出しよりスレッドやソケットの資源を消費しません。 Async Async型非同期呼び出しは戻り値や例外をクライアントでキャッチしたい場合の呼び出しに使用することができます。
OneWay型非同期メソッド呼び出し :Client :Server 1.非同期呼出し後、 ただちにリターン 2b.サーバのリクエスト処理 1.非同期呼出し後、 ただちにリターン 2b.サーバのリクエスト処理 2a.クライアントの独自処理
Async型非同期メソッド呼び出し :Client :Server 1.非同期呼出し後、 ただちにリターン 2b.サーバのリクエスト処理 1.非同期呼出し後、 ただちにリターン 2b.サーバのリクエスト処理 2a.クライアントの独自処理 3.処理完了通知をClientに返す。 4.Clientの非同期呼び出し結果取得処理
(「手話学習システム・マスコット」を例に) 3.HORBを利用した設計例と RMI との設計工数比較 (「手話学習システム・マスコット」を例に)
HORB : 電子総合研究所の平野氏が開発した 手話学習教材 いつでも・ どこでも ・ 誰でも インタラクティブに学習できる教材の開発 Javaと HORBを利用 HORB : 電子総合研究所の平野氏が開発した Java分散オブジェクト技術
なぜ、 Java/HORB なのか アプレット : インターネットの上を自由に飛びまわる オブジェクト指向 : 生産性が高く、技術移転が容易 マルチスレッド : スムーズなアニメーション インタプリタ : プラットフォームに依存しない オブジェクト指向 : 生産性が高く、技術移転が容易 極めて容易なJava分散オブジェクト技術: サーバ・クライアント システムの開発が容易
internet 手話学習システム「マスコット」 mascotサーバ 手話アニメDB 学習者 HORB 手話アニメデータを 呼び出す マスコット君 を呼び出す Javaアプレット アニメーションを実行 マスコット君 学習者 mascotへアクセス 単語入力 Javaアプレット 手話アニメデータ 作成者 HORB Java分散 オブジェクト技術 Javaアプレット アニメデータ internet Java 手話アニメDBへのアクセス 手話アニメデータ 作成者 アニメデータ 手話アニメDB 学習者 学習者 岡山理科大学 数理情報学科 大西研究室 手話アニメデータ 作成者
手話アニメーション座標データ 自動抽出・自動登録システム 「ホープ」を開発 手話アニメーション座標データ 自動抽出・自動登録システム 「ホープ」を開発
多人数での分散協調作業 多くの人の協力による分散作業 インターネット上でのシステムの公開 「いつでも、どこでも、誰でも、手軽に」 単語データの作成作業が可能 多くの人の協力による分散作業
インターネット NetVサーバー Mascotサーバー 手話アニメDB 手話アニメDB ホープ を呼び出す 手話データを 登録する Javaアプレット(hope) http://study.netv.harenet.ne.jp 作成者登録をする 手話アニメの作成 手話アニメ作成者 ホープ hopeへアクセス Javaアプレット(hope) 手話アニメ 作成者 データの登録 手話アニメDBへのアクセス インターネット 学習者 Mascotサーバー NetVサーバー「ホープ」のパスワードを教える http://mascot.mis.ous.ac.jp 手話アニメDB 手話データの コピー・貼り付け 大西研究室 手話アニメDB ホープ
「マスコット」・「ホープ」 のデモ http://mascot.mis.ous.ac.jp/horb/Mascot/ 「マスコット」・「ホープ」 のデモ http://mascot.mis.ous.ac.jp/horb/Mascot/
アプレット ー サーバ プログラミング
(1) サーバ側クラス(DougaD)の改造 (2) サーバ側クラス(DougaD)をhorbc でコンパイル (3) クライアントにダウンロードされるクラス SyuwaAp の改造 (4) SyuwaAp.javaをjavacでコンパイル (5) HTML ファイルの<applet>タグの変更 (6) horbサーバの起動
(1)サーバ側クラス(DougaD)の改造 なし package horb.hv31; 従来 HORB版
(2)DougaDクラスをhorbcでコンパイル >horbc DougaD.java DougaD.class DougaD_Proxy.class DougaD.java horbc DougaD_Skeleton.class
(3)クライアントにダウンロードされるクラス SyuwaAp.java の改造 HORBライブラリへの参照の追加 import java.applet.*; import java.awt.*; import java.util.*; package horb.hv31 import java.applet.*; import java.awt.*; import java.util.*; import horb.orb.*; 従来 HORB版
ホストのURLの取得 なし 従来 HORB版 String host; try { host = getDocumentBase().gethost(); } catch(Exception e) if(host == null || host.length() == 0 host = “localhost”; 従来 HORB版
代理オブジェクトの生成 従来 HORB版 DougaD dougad; dougad = new DougaD(); DougaD_Proxy dougad; try { dougad =new DougaD_Proxy( new HorbURL(host,null) ); } catch(Exception e) HORB版
コネクションの破棄 なし Dougad._release(); dougad = null; 従来 HORB版
(5)HTMLファイルの<applet>タグの変更 <applet code=“SyuwaAp.class” width= 従来 <applet codebass=“../../” code=“horb.hv31.SyuwaAp.class” ….. HORB版
(6)HORBサーバの起動 >horb
手話学習アプレット マスコット Horb V3.1c のアーキテクチャ Mascot Server CLIENT JDBC API SyuwaAp.class JDBC Driver Manager JDBC-ODBC Bridge Douga.class Application Detabase Cache.class DougaD.class ODBC-Driver DougaD_Proxy. class DougaD_Skelton. class HORB Server Microsoft Access hellodb.mdb ORB
RMIによる アプレットーサーバ プログラミング
RMI によるマスコットの分散化手順 (1) リモートインタフェース( Inter.java)の作成 (2) サーバ側クラス( DougaD.java)の改造 (3) クライアント側クラス( SyuwaAp.java)の改造 (4) Inter,DougaD,SyuwaAp,をjavacでコンパイル (5) DougaD.classを rmic でコンパイル (6) HTMLファイルの<applet>タグの変更 (7) サーバ側で rmiregistory, DougaD を起動
マスコットの改造に要した工数
4.HORBと他の分散オブジェクト製品間の ベンチマークテスト比較 http://horb.etl.go.jp/horb-j/HORBProj/benchmark/ (株)NJK 冨岡 学のテストより
テスト環境 マシン スペック CPU:Intel PentiumⅢ550MHz 1台のマシン上でサーバ・クライアント プログラムを動作 1台のマシン上でサーバ・クライアント プログラムを動作 マシン スペック CPU:Intel PentiumⅢ550MHz メモリ:128MB OS:Microsoft Windows 98 JDK: JDK 1.2
リモートメソッド呼び出しの比較 作成者:(株)エヌジェーケー 冨岡 学 氏
オブジェクト配列の転送時間の比較 作成者:(株)エヌジェーケー 冨岡 学 氏
int型配列の転送速度の比較 作成者:(株)エヌジェーケー 冨岡 学 氏
double型配列の転送速度の比較 作成者:(株)エヌジェーケー 冨岡 学 氏
byte型配列の転送速度の比較 作成者:(株)エヌジェーケー 冨岡 学 氏
5.HORBのライセンスについて (http://openlab.etl.go.jp/horb-j/copyright.htm) A.オリジナルな部分に対するライセンス B.貢献による部分に対するライセンス C.商用ライセンス(オリジナルを改変することによる) 参考:http://www.opensource.org/osd.html http://www.geocities.co.jp/SiliconValley-PaloAlto/9803/osd-ja/osd-ja.html
平和利用が前提 A.オリジナルな部分に関するライセンス ・平野聡博士、電子技術総合研究所、の財産 ・通商産業省工業技術院の電子技術総合研究所の研究員である 平野聡博士がHORBの配布を管理 HORB使用許諾契約書(HORB使用許諾契約書 第3.1版)に従う http://openlab.etl.go.jp/horb-j/copyright.htm 平和利用が前提 軍隊や兵器関連、防衛行為関連、反社会的活動のための使用を禁止
有償か無償か? ー> 無償 ・HORB自体を改変しない場合 ・HORB自体の改変版を使用または配布する場合 ー> 無償 ・HORB自体の改変版を使用または配布する場合 以下のどちらかにしたがった手順を踏むこと。 1.商用ソースコードライセンスを取得する。 2.改変部分を、インターネットでソースコードの形で、ただで手に入 るようにする。 改変部分は Open Source Definition(http://www.opensource.org/osd.html) また は同様の条件に従う使用許諾契約に従って許諾されていなければならない。
B.貢献による部分に関するライセンス HORBに付加する部分を開発した場合、その部分のライセンスは下記条件で開発者にある。 ソースコードで再配布する場合 所定の著作権表示、条件リスト、免責事項を改変せずにファイルの最初の数行に入れる。 バイナリー形式で再配布する場合 所定の著作権表示、条件リスト、免責事項の複製をドキュメンテーション内、あるいは配布と共にパッケージに入れられて提供される物の中に入れる。
C.コマーシャル(商用)ライセンス HORBを改変し、オープンソースソフトウエアとしてインターネットで公開することなしに、HORBの改変された版を使用、販売、配布したいときにはコマーシャルライセンスが必要になる。 詳細については horb-license@bungo.etl.go.jp 宛てに メールでの問い合わせで対応している。
6.HORBの利用例
胎児心拍陣痛図転送システム 研究者:愛媛大学医学部付属病院医療情報部 木村映善、立石憲彦、石原謙
胎児心拍陣痛図転送システム(1)
胎児心拍陣痛図転送システム(2)
イントラネット内の電子メールを電話で確認出 来る。 著作者 :株式会社PFU URL :http://www.pfu.co.jp/meltol/ 利用形態 :有償 概 要 イントラネット内の電子メールを電話で確認出 来る。 システムの機能 ・メルトル君に電話をするとメールの到着を確 認できる。 ・自分のメールアドレスにメールが到着すると、 メールが届いたことを電話やポケベルに通知 することが出来る。 ・メールの一覧や内容をFAXに出力することが できる。
概 要 世界中の既存のホームページを教材として活用し、「意見交換の中でテーマに対する理解を深めていく」学習スタイルを実現する。 著作者 :NTT東日本 URL :http://www.ntt-east.co.jp/product/business/category/p33251.html 利用形態 :価格は要問い合わせ 概 要 世界中の既存のホームページを教材として活用し、「意見交換の中でテーマに対する理解を深めていく」学習スタイルを実現する。 システムの機能 評価登録 ホームページに対する評価を 学習者が登録できる。 ワールドマップ 教材として登録されたホームページの構成マップを学習者に提示する。 ページ情報 ホームページを登録した学習者のコメントを表示する。
著作者 :日本アドバンス・テクノロジー株式会社 秋山 朋之 URL :http://vrml.nat.co.jp/InterPlay/index.htm 利用形態 :OpenSource
HORBを用いた駐車場支援システム 概 要 駐車が不得手な人でも安全かつ確実に駐車できるよう支援するこ とを目的に開発されたシステム。 著作者 :矢崎総業株式会社 車載統合システム開発事業部 ITS推進部 URL :http://www.yazaki-group.com/ 利用形態 :不明 概 要 駐車が不得手な人でも安全かつ確実に駐車できるよう支援するこ とを目的に開発されたシステム。 システムの機能 ・GPS、慣性センサ、ステアリングセンサ、車速センサからデータを取 り込み、高精度な車両の位置/姿勢をリアルタイムに算出する。 ・車両の位置姿勢情報と車両区画情報から、駐車場に駐車するため の最適な経路を生成する。
7.HORBの開発・利用 推進形態 HORB Open http://www.horbopen.org/ 運営委員会 開発グループ 運営委員会 開発グループ ・工業技術院電子総合研究所からの委託 ・コントリビュータ ユーザーズグループ ・岡山支部(岡山理科大学HORB研究会) 議論の場:HORB ML IAJ Java部会 HORB BOF HORB関係情報発信の場:HORB Open HP
付録:HORBのセミナー・学習教材 HORB関連講習会 2.平成12年10月20日 1.平成12年10月19日 1.平成12年10月19日 「CBOP分散オブジェクトセミナー」 (無料) 詳細情報 URL: http://www.cbop.gr.jp/2000sokaiB.htm 2.平成12年10月20日 「HORB BOF開設記念セミナー」 詳細情報 URL: http://www.iaj.or.jp/bukai/java/event/2000/seminar/1020/
学習教材・記事 HomePage関連 第4回HORBシンポジューム 萩本: JavaPress 11月発売号から連載 萩本: @IT(技術情報ページ) Java関連ガイド http://www.atmarkit.co.jp HORBの連載 10月10日にリリース予定 平野・萩本:「デザインパターンによるHORB2.0アーキテクチャ概説」 http://www.mamezou.com/OOTips/Store/Horb/pattern/index.html 第4回HORBシンポジューム 日時:平成13年3月2日(予定)