XFireHome M5M6-SNAPSHOTDevelopersDeveloper Space |
This scrap page is here to describe some thoughts on the XFire service model. Currently, the ObjectService interface has Operations. The standard Service does not. This means that you cannot do operation-based web services without being based on an object, We could create an interface that falls in between these two, and that contains the operations-based methods. I'm thinking about calling this interface WebService, but I'm open for a better name. Another way to tackle this is to split the Service into a couple of classes (see below). Dan suggested looking at the Indigo object model. I've attached a bit of UML which describes this model (graph.png). I think that we can certainly learn things from it. For instance, we should separate the service class into two elements:
The ServiceInfo class is assembled using a ServiceInfoAssembler, similarly to the ServiceFactory now. The difference being that the ServiceAssembler interface just has one method: create(), and no overloaded methods. There are various implementations for this interface (one based on Annotations, another based on Reflection, or on a XML file), but there is little similar code, hence a very small interface. I've created a JIRA issue to track progress: http://jira.codehaus.org/browse/XFIRE-55. I've updated the service model UML, to reflect the current state of affairs (servicemodel.pdf). The darker yellow classes are currently not implemented, but show how future expansions might fit into the model. ![]() ![]() ![]() ![]() ![]() |