IAJ Java部会 第1回岡山セミナー

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日(予定)