開発/設計/議論
議論の目的 †
現時点のJ2SE版SIPropプロトタイプの仕様をJ2MEに沿った形に落とし込むことを
目的としています。
各部分の問題点 †
制御モジュール †
解決案 †
- 事前コンパイル方式
- 汎用的な形で定義した制御モジュールをある程度専用的なモジュールに変換す
る
もちろん、SE→ME変換などの言うものを作成するとなると一つのプロジェクトと
して成り立ってしまうくらいでかい話となるため、当面は、使えるクラスを絞った形とします。
具体的には、モジュールはMEで使えるクラスだけを使うような形となります。
- 独自言語方式
- Factoryパターンによる、同一クラス名変換方式
- Mapなどを利用した独自クラスローダー作成方式
スクリプト †
解決案 †
- 制御モジュールへの取り込み
- 条件分けなどを、制御モジュールへ取り込んでしまう。
この場合、新たな問題点として、柔軟性が劇的に下がってしまう可能性がある。
これを解決する案として、
制御モジュールセット
という概念を設定します。
例えば、N社の網で使用することが事前解っている場合、
どのモジュールを呼び出すべきかのベストプラクティスも判明する
という点を利用して、
N社用制御モジュールセット
などを定義することにより、100%に近い動作をさせるということです。
また、より100%に近づけるため、エラーが出た場合には、そのパケット情報か
ら、新しい制御モジュールセットをネットワークからダウンロードするような機
能も検討したいと思います。
メッセージ変換部 †
解決案 †
- テンプレートの単純化
- SIPropにおいては、パケットの組み立てがメイン動作となるため、テンプレートは用いず、正規表現による置換や独自プログラムによる置換を考慮する
各部分の問題点まとめ(J2ME用のエンジンの構造概要) †
以上の点から、J2ME用のエンジンは、下記のような構成となることが想定されま
す。
- モジュールセットとして限定された数個の制御モジュール
- モジュールセットとして動作させるためのコントロール制御モジュール
- B2BUAとして動作させるためのもので、独自に実装を行う
- ヘッダークラス
- トランスポート部
- MEのSocketは特殊であるため、独自で実装する必要がある
結論 †
制御モジュール †
- 制御モジュールセット+事前コンパイル方式
J2MEで使用可能なクラスに限定して、制御モジュールを作成するようにする。各モジュールのロード方法は、下記の2パターンを実際に試してみて良い方を採用する。
- Factoryパターンによる、同一クラス名変換方式
- Mapなどを利用した独自クラスローダー作成方式
スクリプト †
メッセージ変換部 †
- テンプレートの単純化
- SIPropにおいては、パケットの組み立てがメイン動作となるため、テンプレートは用いず、正規表現による置換や独自プログラムによる置換を考慮する。