- PR -

バックアップからオブジェクトを再構築

投稿者投稿内容
しんにぃ
会議室デビュー日: 2006/09/05
投稿数: 17
投稿日時: 2006-09-05 14:11
初めてスレッドを立てさせてもらうのでわからないことだらけなのですがよろしくお願いします。

僕は今大学4年生で、分散オブジェクト技術を研究テーマにしています。
大まかな研究目的は、高可用性分散オブジェクトの実現であり、オブジェクトのバックアップ(内部変数やオブジェクトを生成しているクラスファイルなど)を他のコンピュータに置いて、なんらかの障害によりオリジナルとの通信が不可能になった場合に、バックアップからオブジェクトを再構築してサービスの継続を可能にしようといった感じです。
そこでjavaで書かれたHORBという分散オブジェクトミドルウェアの利用を考えているのですが、なにぶんJavaすら最近学び始めたばかりなのでなにをどういじればいいのか、何から学べばいいのかがわからない状態です。。。
HORBをいじったことのある方などアドバイスをいただけたらと思いスレッドを立てさせていただきました。
みなさんご指導よろしくお願いします。
uk
ぬし
会議室デビュー日: 2003/05/20
投稿数: 1155
お住まい・勤務地: 東京都
投稿日時: 2006-09-05 15:10
これだけ読むと、クラスタ対応のJ2EEアプリケーションサーバで実現できていること
のように思いますが、それとは異なることでしょうか。また、CORBAやRMIではなく、
非標準のHORBを使う目的はなんでしょうか。

#HORBってまだ開発続けてたんですね
しんにぃ
会議室デビュー日: 2006/09/05
投稿数: 17
投稿日時: 2006-09-05 15:43
ukさん、さっそくの返信ありがとうございます。

クラスタ対応のJ2EEアプリケーションサーバというものについて知識がなかったので軽くですが調べてみました。
ukさんのおっしゃっているのは、WebLogic Serverクラスタ機能のことであっているでしょうか?たしかに同じような手法で高可用性を実現しているみたいですね。
ただ、ちょっと見ただけではわからなかったのですが、これは自身のPCのメモリ上で動作しているオブジェクトをそのまま他のPCのメモリ上に複製して動悸を取りながら動作させるのではなく、オブジェクトの情報を他のPCにバックアップしておき、そこから再構築しているのでしょうか?

またHORBの利用については、研究するにあたって無償でフルソースコードが提供されていること、想定している環境がアドホックネットワークなのでマルチプラットフォームなJavaを利用した方がいいかと思いました。
知識が浅くてすいません。
uk
ぬし
会議室デビュー日: 2003/05/20
投稿数: 1155
お住まい・勤務地: 東京都
投稿日時: 2006-09-05 16:16
引用:

ukさんのおっしゃっているのは、WebLogic Serverクラスタ機能のことであっているでしょうか?たしかに同じような手法で高可用性を実現しているみたいですね。


WebLogicに限りませんが、まあそういうものです。

引用:

ただ、ちょっと見ただけではわからなかったのですが、これは自身のPCのメモリ上で動作しているオブジェクトをそのまま他のPCのメモリ上に複製して動悸を取りながら動作させるのではなく、オブジェクトの情報を他のPCにバックアップしておき、そこから再構築しているのでしょうか?


上記の二つをどのように区別しているのかわからないのですが、複製先が揮発性の
メモリか永続化できるディスクか、ということでしょうか。それとも、アクティブ/
アクティブな動作モデルか、アクティブ/スタンバイな動作モデルか、ということで
しょうか。

引用:

またHORBの利用については、研究するにあたって無償でフルソースコードが提供されていること、想定している環境がアドホックネットワークなのでマルチプラットフォームなJavaを利用した方がいいかと思いました。


インフラ系の技術にはあまり詳しくないのですが、IPが載るのであればCORBAでもRMI
でもいいような気がしますが。それともORBのレベルから自作されるのでしょうか。
あしゅ
ぬし
会議室デビュー日: 2005/08/05
投稿数: 613
投稿日時: 2006-09-05 16:27
WebLogicに限らず、大半のJ2EEサーバが実装しています。

引用:

しんにぃさんの書き込み (2006-09-05 15:43) より:
ただ、ちょっと見ただけではわからなかったのですが、これは自身のPCのメモリ上で動作しているオブジェクトをそのまま他のPCのメモリ上に複製して動悸を取りながら動作させるのではなく、オブジェクトの情報を他のPCにバックアップしておき、そこから再構築しているのでしょうか?


前者はSession Replicationと呼ばれる方式ですね。
JBossのTreeCacheについて調べて見るとよいと思います。

後者は今ではあまり使われていないように思います。
以前はDBに永続化しているJ2EEサーバもあったのですが。
整合性やパフォーマンス上の問題なのかもしれません。
しんにぃ
会議室デビュー日: 2006/09/05
投稿数: 17
投稿日時: 2006-09-05 17:05
ukさんへ

僕の研究では、アクティブ/アクティブ型とアクティブ/スタンバイ型とで区別しているのだと思います。
アドホックネットワーク環境において端末の移動などによりネットワークが分断されてしまうことが頻繁にあるようなので、そういった場合にオブジェクトのバックアップをネットワークの末端のノードに配置しておき、オリジナルとの接続が不可能になった場合にシームレスにサービスの継続(新規メソッドの呼び出しなど)が可能になればと考ええています。
その場合、末端のノードすべてにアクティブ/アクティブ型でレプリケーションしていると、メモリ消費が膨大になってしまうと思い、アクティブ/スタンバイ型を採用しようと思ったわけです。
また、実際HORB、CORBA、RMIなどのちがいについてあまり詳しくないので安易に手にいれやすいものを使おうと思ったのですがHORBを利用するのはあまり薦められたものではないのでしょうか?ORBから自作というよりは、HORBを改良して使おうかと思っているのですが。この点についてはまだあまり深く考えていなかったのでアドバイス等お願いします。

あしゅさんへ

返信ありがとうございます。Session Replicationというのですね。勉強になります。JBossについても調べてみたいと思います。

あまり使われていないのですか。。。やはり再構築時に時間かがかかるのが問題なのでしょうか?
nagise
ぬし
会議室デビュー日: 2006/05/19
投稿数: 1141
投稿日時: 2006-09-05 17:44
引用:

しんにぃさんの書き込み (2006-09-05 17:05) より:
ukさんへ
アドホックネットワーク環境において端末の移動などによりネットワークが分断されてしまうことが頻繁にあるようなので、そういった場合にオブジェクトのバックアップをネットワークの末端のノードに配置しておき、オリジナルとの接続が不可能になった場合にシームレスにサービスの継続(新規メソッドの呼び出しなど)が可能になればと考ええています。



参照系のサービスだけ継続して提供するのですかね?
更新系サービスだとデータの整合性がとれないわけですが。
接続が切れている間はキャッシュした情報を利用してサービス継続する、
という意味合いに聞こえますが、認識が間違ってるのかなぁ。
しんにぃ
会議室デビュー日: 2006/09/05
投稿数: 17
投稿日時: 2006-09-06 20:03
nagiseさんへ

そうですね。いまのところ接続が切れた場合に、直前までの状態を再現したオブジェクトを再構築して、サービスの継続ができればと考えています。
ただ、これがどのような環境(対象とするアプリケーションなど)で役に立つかがまだ考えれていないのです。。。なにか思いつくものあるでしょうか?

スキルアップ/キャリアアップ(JOB@IT)