[[開発/設計/議論]]


*議論の目的 [#ybf118f1]
現時点のJ2SE版SIPropプロトタイプの仕様をJ2MEに沿った形に落とし込むことを
目的としています。


*各部分の問題点 [#h107b1d0]
**制御モジュール [#d1e6d2bb]
-DIとして動作する
--クラスローダーが存在しない
-CPUやメモリの制限
--多くの制御モジュールをインスタンス化できない

***解決案 [#ycfd6984]
-事前コンパイル方式
--汎用的な形で定義した制御モジュールをある程度専用的なモジュールに変換す
る

もちろん、SE→ME変換などの言うものを作成するとなると一つのプロジェクトと
して成り立ってしまうくらいでかい話となるため、当面は、使えるクラスを絞った形とします。~
具体的には、モジュールはMEで使えるクラスだけを使うような形となります。

---独自言語方式
---Factoryパターンによる、同一クラス名変換方式
---Mapなどを利用した独自クラスローダー作成方式


**スクリプト [#u361f560]
-スクリプトエンジンの不在


***解決案 [#ydd25865]
-制御モジュールへの取り込み
--条件分けなどを、制御モジュールへ取り込んでしまう。

この場合、新たな問題点として、柔軟性が劇的に下がってしまう可能性がある。

これを解決する案として、
 制御モジュールセット
という概念を設定します。

例えば、N社の網で使用することが事前解っている場合、
 どのモジュールを呼び出すべきかのベストプラクティスも判明する
という点を利用して、
 N社用制御モジュールセット
などを定義することにより、100%に近い動作をさせるということです。~
また、より100%に近づけるため、エラーが出た場合には、そのパケット情報か
ら、新しい制御モジュールセットをネットワークからダウンロードするような機
能も検討したいと思います。


**メッセージ変換部 [#l13200b4]
-テンプレートエンジンの不在

***解決案 [#y8d62f89]
-事前コンパイル方式
--テンプレートから、ヘッダークラスを生成する

-テンプレートの単純化
--SIPropにおいては、パケットの組み立てがメイン動作となるため、テンプレートは用いず、正規表現による置換や独自プログラムによる置換を考慮する


**各部分の問題点まとめ(J2ME用のエンジンの構造概要) [#b6640eac]
以上の点から、J2ME用のエンジンは、下記のような構成となることが想定されま
す。

-モジュールセットとして限定された数個の制御モジュール
--スクリプトも内包する
--SE版から生成する
-モジュールセットとして動作させるためのコントロール制御モジュール
--B2BUAとして動作させるためのもので、独自に実装を行う
-ヘッダークラス
--テンプレートからクラスを生成する
-トランスポート部
--MEのSocketは特殊であるため、独自で実装する必要がある


*議論の論点 [#yde962df]
-上記方法でよいのか?
--現実可能か?
--他に方法はないか?
-他の方法

※随時、方法論を募集中です。
*結論 [#n1f70324]

**制御モジュール [#w7325bd0]
-制御モジュールセット+事前コンパイル方式
J2MEで使用可能なクラスに限定して、制御モジュールを作成するようにする。各モジュールのロード方法は、下記の2パターンを実際に試してみて良い方を採用する。

*結論 [#n1f70324]
--Factoryパターンによる、同一クラス名変換方式
--Mapなどを利用した独自クラスローダー作成方式

※ただいま、議論中。

**スクリプト [#z5ed8323]
-次期Verisonで、考慮する。


**メッセージ変換部 [#d9b4f122]
-テンプレートの単純化
--SIPropにおいては、パケットの組み立てがメイン動作となるため、テンプレートは用いず、正規表現による置換や独自プログラムによる置換を考慮する。