Develop XCube_Service (1/2)
XCube_Service
はXCube
名前空間のCVS
の未完成のクラスの1
つです。
このクラスには、以下の目標があります:
- 通常、このクラスは、モジュール間接続に使用されます。
- デリゲートは、一種の関数ポインタであって、このクラスとは似て非なるものです。
-
ユーザはWebサービス・アダプターへどんなXCubeサービスも適合させることができます。
-
また、ユーザはどんなXCubeサービスクライアントもWebサービスに接続することができます。
しかし、多くの問題があります。
第1
の問題はLegacy
モジュールが何をWeb
サービスライブラリとして収録するかということです。Legacy
モジュール群はGPL
であり、私たちがそのライセンスを変えることはできません。私は、それがGPL
である以上は、Legacy
パッケージがPEAR
ライブラリを直に収録することはできないと考えています。しかし、フルスクラッチ・プログラムであるXCube
名前空間はデュアルライセンスを用いてGPL
から離れることが可能です。例えば、テストBase
モジュールであるXOOPS Cube Shadeは別のライセンスを持っています。
言い換えれば、XShade
はGPL
ライブラリだけではなく、PEAR
ライブラリを持つことができるということです。
したがって、私たちは、Base
モジュール側にウェブサービスを実装するためのライブラリを持たせなければなりません。
そして、XCube
名前空間には、特定のライブラリがあるべきではないでしょう。それぞれのBase
モジュールがライブラリと、アダプターのインスタンスを作成する
Factory
のためのデリゲートを持つことが必要です。
今日、ウェブサービスに関するクラスデザインのテストためのexReviewはsf.jp
のexmodules
プロジェクトにコミットされました。このモジュールはXCube
名前空間の抽象レイヤーを伴わず、未だWeb
サービスを直接インプリメントしています。
言い換えれば、現在のXCube_Service
でウェブサービスを実装することは、困難で、間違っているのです。