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 12 20 3 (20) ( 4) ( 6) ( 0) ( )内は技術者・研究者のみ アンケート結果(3) 分散オブジェクトについて 良く理解している: 4 ( 3 10%) 少しは知っている: 29 (18 60%) 言葉は知っている: 28 ( 7 23%) 聞いたこともない: 3 ( 2) ( )内は技術者・研究者のみ アンケート結果(4) CORBA ・使った: ・ある程度知っている: ・言葉ぐらいは知っている: ・聞いたこともない: 4 12 30 18 ( )内は技術者・研究者のみ HORB ( 2) 6( 2) ( 8) 10( 7) (16) 29(15) ( 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) プロセスc (オブジェクトc) プロセスd (オブジェクトd) プロセス=オブジェクトとみなし 分散処理技術にオブジェクト技術を適用する ー>リモートを意識せずに設計できる 分散オブジェクト技術 • HORB (電総研,NJK) • RMI (JavaSoft社) • CORBA (CORBA準拠ORB製品) • Voyager (ObjectSpace社) • DCOM (Microsoft社) 2.HORBの機能概要 HORBの中心的人物 HORBオリジナル開発者 平野 聡 (通産省工業技術院電子技術総合研究所) 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 クライアントオブジェクト サーバオブジェクト Server_Proxy Server_Skeleton クライアント側の代理オブジェクト サーバ側の黒衣オブジェクト ORB (オブジェクト間通信機構) JavaVM クライアントマシン JavaVM サーバマシン HORBCコンパイラ サーバオブジェクト (Server.java) コンパイル HORBCコンパイラ 生成 生成 クライアント側の代理オブジェクト サーバ側の黒衣オブジェクト (Server_Proxy.java) (Server_Skeleton.java) オブジェクト起動モデル 生成モデル クライアントからオブジェクトリファレンス(Proxy)を生成す るとサーバ側でリモートオブジェクトが生成されます。この モデルでは予めサーバ側でリモートオブジェクトを起動し ておく必要はありません。 接続モデル 既に起動しているリモートオブジェクトの参照をクライアン トから得て接続します。このモデルでは予めサーバ側でリ モートオブジェクトを起動しておく必要があります。 非同期メソッド呼び出し 通常の呼出しでは、呼出し側はメソッドの処理が終了するまで待機します。こ れに対して非同期呼出しでは、呼出し側はメソッドの処理の終了を待たずに 処理を続行します。 OneWay OneWay型非同期メソッド呼び出しは戻り値無し、例外スロー 無しのメソッド呼び出しに使用することができます。Async型 メソッド呼び出しよりスレッドやソケットの資源を消費しません。 Async Async型非同期呼び出しは戻り値や例外をクライアントで キャッチしたい場合の呼び出しに使用することができます。 OneWay型非同期メソッド呼び出し :Client :Server 1.非同期呼出し後、 ただちにリターン 2a.クライアントの独自処理 2b.サーバのリクエスト 処理 Async型非同期メソッド呼び出し :Client :Server 1.非同期呼出し後、 ただちにリターン 2a.クライアントの独自処理 4.Clientの非同期呼び出し 結果取得処理 2b.サーバのリクエスト 処理 3.処理完了通知を Clientに返す。 3.HORBを利用した設計例と RMI との設計工数比較 (「手話学習システム・マスコット」を例に) 手話学習教材 いつでも・ どこでも ・ 誰でも インタラクティブに学習できる教材の開発 Javaと HORBを利用 HORB : 電子総合研究所の平野氏が開発した Java分散オブジェクト技術 なぜ、 Java/HORB なのか アプレット : インターネットの上を自由に飛びまわる マルチスレッド : スムーズなアニメーション インタプリタ : プラットフォームに依存しない オブジェクト指向 : 生産性が高く、技術移転が容易 極めて容易なJava分散オブジェクト技術: サーバ・クライアント システムの開発が容易 手話学習システム「マスコット」 mascotサーバ マスコット君 手話アニメデータを を呼び出す 呼び出す Javaアプレット アニメーションを実行 マスコット君 学習者 手話アニメデータ 作成者 mascot へアクセス 単語入力 Javaアプレット HORB Java分散 オブジェクト技術 Javaアプレット アニメデータ internet 手話アニメデータ 作成者 Java 手話アニメDBへ のアクセス アニメデータ 手話アニメDB 学習者 学習者 手話アニメデータ 作成者 岡山理科大学 数理情報学科 大西研究室 手話アニメーション座標データ 自動抽出・自動登録システム 「ホープ」を開発 多人数での分散協調作業 インターネット上でのシステムの公開 「いつでも、どこでも、誰でも、手軽に」 単語データの作成作業が可能 多くの人の協力による分散作業 NetVサーバー ホープ 手話データを 作成者登録をする を呼び出す 登録する Javaアプレット (hope) 手話アニメ作成者 ホープ Javaアプレット(hope) 手話アニメDBへ のアクセス インターネット Mascotサーバー http://mascot.mis.ous.ac.jp 大 西 研 究 室 手話アニメの作成 hopeへアクセス データの登録 手話アニメ 作成者 学習者 http://study.netv.harenet.ne.jp NetVサーバー「ホープ」 のパスワードを教える 手話データの コピー・貼り付け 手話アニメDB ホープ 手話アニメDB 「マスコット」・「ホープ」 のデモ http://mascot.mis.ous.ac.jp/horb/Mascot/ アプレット ー サーバ プログラミング CLIENT SyuwaAp Douga 単語 単語入力 アニメーシ ョン表示 手話座標データ 座標データ JVM (ハッシュテーブル) HORBによるマスコットの分散化手順 (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.java horbc DougaD_Proxy.class DougaD_Skeleton.class (3)クライアントにダウンロードされるクラス SyuwaAp.java の改造 HORBライブラリへの参照の追加 package horb.hv31 import java.applet.*; import java.awt.*; import java.util.*; 従来 import java.applet.*; import java.awt.*; import java.util.*; import horb.orb.*; HORB版 ホストのURLの取得 なし 従来 String host; try { host = getDocumentBase().gethost(); } catch(Exception e) if(host == null || host.length() == 0 host = “localhost”; 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 ORB Microsoft Access hellodb.mdb 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 を起動 マスコットの改造に要した工数 改造部分(追加・変更) HORB RMI サーバ側 DougaD 1・0 16・1 クライアント側 SyuwaAp 8・2 4・2 ― 11・0 9・2 31・3 インタフェース 合 計 4.HORBと他の分散オブジェクト製品間の ベンチマークテスト比較 http://horb.etl.go.jp/horb-j/HORBProj/benchmark/ (株)NJK 冨岡 学のテストより テスト環境 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) HORB はオープンソースソフトウエアの一種 HORB =「オリジナルな部分」+ 「貢献による部分」 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自体の改変版を使用または配布する場合 以下のどちらかにしたがった手順を踏むこと。 1.商用ソースコードライセンスを取得する。 2.改変部分を、インターネットでソースコードの形で、ただで手に入 るようにする。 改変部分は Open Source Definition(http://www.opensource.org/osd.html) また は同様の条件に従う使用許諾契約に従って許諾されていなければならない。 ー> 無償 B.貢献による部分に関するライセンス HORBに付加する部分を開発した場合、その部分のラ イセンスは下記条件で開発者にある。 ソースコードで再配布する場合 • 所定の著作権表示、条件リスト、免責事項を改変せずにファイル の最初の数行に入れる。 バイナリー形式で再配布する場合 • 所定の著作権表示、条件リスト、免責事項の複製をドキュメン テーション内、あるいは配布と共にパッケージに入れられて提供 される物の中に入れる。 C.コマーシャル(商用)ライセンス HORBを改変し、オープンソースソフトウエアとしてイン ターネットで公開することなしに、HORBの改変された版 を使用、販売、配布したいときにはコマーシャルライセン スが必要になる。 詳細については [email protected] 宛てに メールでの問い合わせで対応している。 6.HORBの利用例 胎児心拍陣痛図転送システム 研究者:愛媛大学医学部付属病院医療情報部 木村映善、立石憲彦、石原謙 DatabaseServer MailServer 患者宅・CTG端末 CTGServer 胎児心拍陣痛図転送システム(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関連講習会 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/ 学習教材・記事 萩本: JavaPress 11月発売号から連載 HomePage関連 萩本: @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日(予定)
© Copyright 2024 ExpyDoc