### XFire Home Bug/Issue Reporting Download FAQ Get Involved License News Stack Comparison Support User's Guide XFire Team ### M5 Javadocs Reports ### M6-SNAPSHOT Javadocs Reports ### Developers Developer Space CVS Building Architecture Interesting Projects Release Process | 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: A service contract (Let's call it `ServiceInfo` for now) A service endpoint (make up from a the contract, and some binding information) 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. Attachments: graph.png (image/png) servicemodel.pdf (application/pdf) servicemodel.pdf (application/pdf) servicemodel.pdf (application/pdf) servicemodel.pdf (application/pdf)