There's been a bit of a gap without any posts here, so I'm going to try to write some posts that clarify what we're doing and where we're going with the project.
In our original design for XMarks, we talked about building an architecture that would make it easy to create a web service for the exchange of assessment and marks data, and we identified a kind of "design pattern" for this kind of web service:

Click on the thumbnail to view a larger size image.
The scenario we're envisaging is that an institution is using one or more assessment tools to support teaching and learning, and that they need to transfer marks back from the assessment tool into a central student records system.
So there would effectively be a pair of web services:
- a student records system/central records system service (which could be described variously as the SRS, the CRS or the "central" service),
- an assessment tool service (which we'll describe as the "local" service)
We have designed XMarks as a symmetrical architecture, with the same classes and interfaces for both the "local" and the "central" service.
We are implementing XMarks for Moodle as an assessment tool, and for our own bespoke student records system at the other end.
And building a web services architecture which we hope will encapsulate away a lot of the detail and enable relatively painless deployment.
More on the design in a second posting.