samuel and saml20
Sun, Dec 11, 2005
I posted a while ago about SAML2 and XMLBeans and possibly implementing this in SAMUEL. Well, I’ve had a chance to look into it more and have come up with the architecture, based on the schemata for Guanxi and SAML, on top of which lies a concrete implementation of the schemata. Accessing this is the implementation of the XAL interfaces, which the core applications use, insulating them from the underlying schema classes.
This introduces the XAL (XML Schema Abstraction Layer), which provides schema services to the top level applications, allowing them to load a particular schema provider. For example, the default SchemaImpl will be XMLBeans. The default XAL::Implementation will therefore be XMLBeans specific implementations of the XAL::Interfaces. The default SchemaImpl layer will be created using the XMLBeans tools.
The applications can always rely on the interfaces remaining constant so the API doesn’t change. To implement a new schema provider, one should develop new layers to replace the XAL::Implementation and SchemaImpl layers.
In effect, the XAL::Implementation layer is the driver to control the SchemaImpl layer.
I’ve got the SchemImpl layer ready now, using XMLBeans so the next task is to define the interfaces to provide suitable coverage of the SAML schema and develop an XMLBeans-specific implementation.
Probably best to develop against the Guanxi schema first to see if this architecture is useable or whether it might just be a bit too abstracted.