KVMにもHORBをっ!


 
 このページは、ひとりのフリーソフトウェア書きの、愛と懇願のページだったりします。
 何を、何故、懇願してるかは・・・・・・まあ中身を読んでやってくださいませ。
 


 

0.まずは前振り

 ええと、まあこのページの作り手である私の趣味の一つに、フリーソフトウェア作りなんてのがあります。

 この頃は、Java言語なんぞで旧暦の算出プログラムやら占いプログラムやらになんてえものを作るのに血道をあげてなんぞおります。
 
 で、アプリケーションをつくって悦に入ってるそうこうしているうちにまた別の凝ってしまうものにぶつかってしまいました。
 そうちっちゃくて軽くってそれでいてとってもお利口なPalmデバイス

 惚れこんで、気が付けば使用頻度一番の電子機器となってしまっておりました。

 こうなると、Palmの上でも自作ソウトウェアに動いて頂きたいと思うのが人情と言うもの。
 
 おお!頃合いもばっちりにPalmで動くJava(KVM)なんてのが、Javaの産みの親であるSUNから発表されもしてる! こりゃあもう、どこのどなたかわかりませんが、どっか天の方からでもこっちの方を見てらっしゃるどなたかの思し召し(?)ってモノでしょう。
 

1.ヒープでひぃこら

 さてさて本題、前振りのようなわけで、勢い込んでPalmデバイスへ自作占いアプリの移植を開始したのですが・・・・・・・・・

  「え?ヒープ不足でうごかな・・・い!?」
 
 占いソフトなんてのは、ただ「吉」/「凶」程度のメッセージだけ出したところで面白うはございません。

 なるたけ細かにケースわけして、いろいろなメッセージを出そうと、ソフトの中にメッセージリソースを持たせていたのですが、それが仇となってしまいました。

 なにしろPalmデバイスには大容量メモリが付いているわけでなし、ヒープそうそう取れるわけはございません(私の所有しているIBM WorkPad30Jに至っちゃ、確保できるヒープサイズはたったの70kb程度だったりしております)。

 それでも何とか動かそうと、メッセージリソースがしがし削って作ったのがこれ、Palm用占いアプリケーション

 まあ、頑張ればなんとかなるものです。
 

2.難しいことはおしつけちゃえっ!

 でも、やっぱり寂しいのですよね、占い結果として短いメッセージしか出てこない占いアプリって。

 で、考えたんですがぁ・・・・・・・・・

 良く考えてみたら、世の中まとめてと言うか猫も杓子も(どっかの政治家も)皆そろって「インターネット!」インターネット言う時代。

 外出中に外からほかのコンピュータに乗り込むためのワイヤレス接続手段だって、携帯にPHSにIr接続可能型公衆電話とみちみちているではございませんか。

 これを利用すれば、

なんて具合にたっくさんのメッセージだの何だのは大容量ストレージをしこたま抱え込んだサーバマシンに押し付けて、Palmデバイスには情報入力(占われたい人間の生年月日等)と最終的な結果(占いメッセージ)の表示だけをさせるなんてシステムが作れることは明白じゃないですか。

 これでちょっと非力なPalmデバイスでも、潤沢なメッセージを表示してみせられる占いアプリが作れる!実現できる!!
 

3.『押し付け』る作業も一苦労だったり

 で、サーバに厄介ゴトを押し付ける算段なのですが、これはもう何らかの通信手段を使って、Palmデバイスとサーバ間の情報送受方法を組み立てるしかありません。

 なんだか、大掛かりな上に有名どころは商用製品ばっかりで、い〜っぱいお金のかかりそうなCORBAなんて仕掛けは無視するとして、あとはどんな方法で情報を送受ができたかなあ?

 と言うわけでちょっと調べたところ候補にあがってきた手段が下表の3つ。

 で、それぞれを使って、クライアント/サーバ形式に書き換えたJava版の占いソフトがこれまた以下の通り(※表中のそれぞれの方式名をクリックするとソースのアーカイブがダウンロード出来ます・・・・・・・・・ちなみに、と言うソースとREADME以外(あとRMIの場合はサーバ側のクラス/メソッド名をクライアント側が理解するためのインターフェースに関するソースが1本多く入っています)は、3つのアーカイブの内容は、一切合切同じです)。

 それぞれのソフトを書いた感触と言うか感想と言うかは・・・
 

方式 
コーディング量
コンパイラ
実行時 
備考
HORB
極小
要HORBC
要HORB 
クライアントとサーバを直結した場合と比べてソースのコーディング量がほとんどかわらない
RMI
中 
要rmic 
要rmiregstry
サーバ側の構造をクライアント側に認識させるためのインタフェースの記述が必要である
Socket
特大
− 
− 
サーバに対する複数クライアントからの同時接続対応処理等を総て自力でコーディングする必要がある

ってなところでしょうか・・・はあ、シンドかったぁ

 特にSocket使った複数クライアント同時接続型プログラムなんて、もう絶対に書きたくないぞ、本当にっ!!

 え?Palmデバイス用のアプリを書くために調査してたはずなのに「なんでJava(JVM)版の方のプログラムを改造してるんだ?」ですって?

 それが、その・・・調べてわかったんですが、今の時点でのKVM(Palm用Java)って、中途半端なソケット機能こそサポートしてるんですが、あとはRMIも何も作り込み無し。

 外付けORBも、はなっから使用検討を行わなかったCORBAは言うにおよばず、HORBもまだ対応してくれていなかったのですよ。

 実験用程度にでも、この状態でどぉ〜やってソースを書けというんだあ!?
 

4.もう懇願するしかないっ!(・・・かな?)

 絶叫していてもソフトウェアは出来たりいたしません。

 叫んでいる暇があったらコーディングして、プログラムを形にして見せるのがプログラマの心意気ってものでしょう。

 とはいえ・・・・・・・・・ですねえ、一度でもSocket以外の手段で通信部分を書いちゃうとですねえ、もぉ〜二度とSoketみたいにヤヤコシくて/記述量イッパイで/保守タイヘンな方法で、ソース書く気がおきないんですよお!

 ORB、特にHORB様っ!! 何とかKVMも相手にしてやって下さいよぉお〜!!

 というわけで、ヒープ不如意な小型デバイスと日々格闘を繰り返すフリーウェアプログラマは、日夜かように懇願を繰り返すのでありました。
 

−以上、お粗末!−

(Copyright(c)原 嘉彦/篠田の狐工房 2000.7.25)


注意注意注意注意注意注意注意注意注意注意注意注意

 ここからダウンロードした各プログラム/ソースコードに関する著作権等一切の権利は、作者 原 嘉彦にあります。

 ソースコードに関しては、参考にされるのも参照されるのも、加工されて使う分には一切制限は致しません。ただし、その結果として参照したプログラム等にどのような不都合が起きても、原 嘉彦は一切責任をとりません。

 同様に、ダウンロードしたプログラムを使用された結果、使用したコンピュータ等にどのような不都合が起きても、原 嘉彦は一切責任をとりません。

 雑誌/CD等への収録、他ホームページへの掲載と言ったような、他の表現の場への転載等作者の意図しない形での使用を望まれる場合は、以下のアドレスまでその旨御連絡下さい。

 ケースバイケースで対応させていただきます。

 原 嘉彦(篠田の狐工房房主)/shinodas@din.or.jp