Develop XCube_Service (1/2)
XCube_ServiceXCube名前空間のCVSの未完成のクラスの1つです。 このクラスには、以下の目標があります:

  • 通常、このクラスは、モジュール間接続に使用されます。
  • デリゲートは、一種の関数ポインタであって、このクラスとは似て非なるものです。
  • ユーザはWebサービス・アダプターへどんなXCubeサービスも適合させることができます。
  • また、ユーザはどんなXCubeサービスクライアントもWebサービスに接続することができます。

しかし、多くの問題があります。 1の問題はLegacyモジュールが何をWebサービスライブラリとして収録するかということです。Legacyモジュール群はGPLであり、私たちがそのライセンスを変えることはできません。私は、それがGPLである以上は、LegacyパッケージがPEARライブラリを直に収録することはできないと考えています。しかし、フルスクラッチ・プログラムであるXCube名前空間はデュアルライセンスを用いてGPLから離れることが可能です。例えば、テストBaseモジュールであるXOOPS Cube Shadeは別のライセンスを持っています。 言い換えれば、XShadeGPLライブラリだけではなく、PEARライブラリを持つことができるということです。

したがって、私たちは、Baseモジュール側にウェブサービスを実装するためのライブラリを持たせなければなりません。 そして、XCube名前空間には、特定のライブラリがあるべきではないでしょう。それぞれのBaseモジュールがライブラリと、アダプターのインスタンスを作成する Factory のためのデリゲートを持つことが必要です。

今日、ウェブサービスに関するクラスデザインのテストためのexReviewsf.jpexmodulesプロジェクトにコミットされました。このモジュールはXCube名前空間の抽象レイヤーを伴わず、未だWebサービスを直接インプリメントしています。 言い換えれば、現在のXCube_Serviceでウェブサービスを実装することは、困難で、間違っているのです。
|