Schematronic Progress

| No Comments

Progress with Schematronic has been moving right along, things are progressing nicely. Here's a quick update:

Trying out SQL Relay's Python API, but haven't gotten too far yet

  • Using Beaker for sessions
  • Psyco helps a little
  • Added some thread locks to flow

Its also worth mentioning that the newer version of mod_wsgi is really nice. The ability to group processes is very cool.

Back in the Saddle

| No Comments

Schematronic is moving along slowly and steadily. I'm glad I decided to keep it more Nexista-ish as opposed to Cocoon. I'm also leaning towards using the original libxml2 and libxslt libraries. They aren't "pythonic" as they say, but I'm more familiar with the standard interfaces, such as those in the xml / xslt api's for perl and php.

I still have a lot to learn when it comes to python, and I'm pleased to say that my work on Nexista and Aortica has really helped a ton, and it has already spurred new developments with schematronic. It took me about a week and a half to get Aortica "usable" (its still missing auth, and bunch of plugins, and a bunch of actions, but it works!), so I'm hoping to get an operational schematronic out in the next week or so. Today I've managed to get the xsl handler to transform flow, as well as get config to parse the config file.

Speaking of configuration, while Aortica is all about mod_perl2 and Nexista is all about PHP5 and mod_fcgid / fastCGI, Schematronic is all about python and wsgi. Therefore its going to have its own little configuration idiosyncrasies. Not a big deal, just some small decisions that will have to be made at some point.

Major to-dos:

  • Database abstraction - pretty much decided on using adoDB, but I'd love it if I could find something simpler like DBI / MDB2
  • Sitemap / Fence parsing and dispatching

What is Schematronic?

| No Comments

Schematronic is… my first python application, not initially destined for production use, instead a paythway for learning python.

It uses CherryPy and a lot of ideas from pycoon and nexista.

Schematronic is… is a work-in-progress experimental python-powered Nexista port.

What does that mean? Schematronic uses a sitemap (or what I like to call a fence file) to dispatch requests to resources, commonly things like data (SQL or XML) and views (XSL). It meshes up loosely with the Cocoon concept of XML pipelines.

As of June 2008, progress with Schematronic has picked up substantially. I’m going to try and get an instance of Schematronic running on Google’s app engine. Should be interesting!

Schematronic Design

Initialization & Startup

The Schematronic Design centers around running as a WSGI application daemon. Upon startup, the sitemap and configuration will be loaded.

Runtime Requests

Each request will reference the persistent sitemap and configuration objects. Each request will generate a flow document which can be rendered out via XSL. I think that the foundry process of Nexista, which builds php files of the parsed XML data, can be done programmatically with python reflection, fast enough to bypass the foundry process. Along these lines, the Nexista handlers will be the most important modules to port, when getting Schematronic up and running.

WSGI Applications?

Should each of the handlers / components be WSGI applications?

Development

Development of Schematronic applications will be pretty much like Nexista apps, though a lot more “pythonic”. Loosely coupled, modular, and WSGI compatible… hopefully. Luckily there are already a bunch of WSGI middleware modules which might be usable for Schematronic.

Related Concepts

  • Caching
  • Authentication / Authorization / Sessions
  • Error / Exception Handling
  • Debugging
  • XML Parsing
  • RESTful Request Routing
  • Output buffering


Categories