XCube_Service is one of uncompleted classes in CVS of XCube namespace. This class has the following goals:
- Usually, this class is used for connecting between modules.
- Delegate is a kind of function pointer and different from this class.
- User can adapt any XCube services to the web service adapter.
- Also, users can connect any XCube service clients to web services.
But, there are a lot of problems. The first problem is what Legacy modules contain, as the web service library. Legacy modules are GPL and we can’t change that license. I think that Legacy package can’t contain PEAR libraries, because that’s GPL. But, XCube namespace that is the full scratched program, can get away from GPL with using dual license. For example, XOOPS Cube Shade that is test base module, has another license. In other words, XShade can have PEAR libraries not only GPL libraries.
Therefore, we have to let the base module have libraries to implement web services. Plus, XCube namespace should not have specific library. It’s necessary that each base modules have the library and the delegate to factory that creates an instance of the adapter.
Today, exReview for testing class design about web services, has been committed to exmodules project project in sf.jp. This module is implementing a web service directly yet, without abstract layer of XCube namespace. In other words, implementing a web service by current XCube_Service is difficult and wrong.